:root{--vino:#8e1f2d;--dark:#741925;--red:#f04452;--charcoal:#19232c;--ink:#20232a;--light:#eef2f6;--white:#fff;--blue:#0a4d8c}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:#090d10;color:white;font-family:Inter,Arial,sans-serif;display:grid;place-items:center;overflow:hidden}.stage{position:relative;width:min(100vw,177.7778vh);aspect-ratio:16/9;overflow:hidden;background:#19232c;box-shadow:0 30px 90px #000a;container-type:inline-size;cursor:pointer}.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transform:scale(1.015);transition:opacity .55s,transform .7s,visibility .55s}.slide.active{opacity:1;visibility:visible;transform:scale(1)}.layer{position:absolute;inset:0;pointer-events:none}.background{background-color:#202a30;background-position:center;background-size:cover}.overlay{background:linear-gradient(100deg,#19232cf5 0%,#19232cdd 43%,#74192566 100%)}.texture{background-image:linear-gradient(#ffffff 1px,transparent 1px),linear-gradient(90deg,#ffffff 1px,transparent 1px);background-size:3.5cqw 3.5cqw;opacity:.06;mask-image:linear-gradient(120deg,transparent 38%,#000)}.geometry:before{content:"";position:absolute;right:-16%;top:-20%;width:37%;height:145%;background:linear-gradient(115deg,#74192599,#8e1f2d44);transform:skew(-25deg);border-left:1px solid #f0445266}.geometry:after{content:"";position:absolute;bottom:0;right:0;width:18%;height:1px;background:linear-gradient(90deg,transparent,var(--red))}.protagonist{z-index:2}.product{position:absolute;object-fit:contain;filter:drop-shadow(0 1.5cqw 1.3cqw #0009)}.content{z-index:3;pointer-events:auto;position:absolute;inset:0;padding:5.4% 6.2%}.brand{z-index:4;position:absolute;left:6.2%;right:6.2%;bottom:4.5%;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.brand .mtc{font:800 1.4cqw Montserrat,Arial;letter-spacing:.14em}.brand img{width:5cqw;max-height:2.5cqw;object-fit:contain}.brand .page{font:700 1cqw Montserrat,Arial,sans-serif;color:var(--red)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Montserrat,Arial,sans-serif}h1{font-size:5.3cqw;letter-spacing:-.06em;line-height:.98;font-weight:800}h2{font-size:3.3cqw;letter-spacing:-.05em;line-height:1.08;font-weight:800}p{font-size:1.15cqw;line-height:1.55;color:#e0e3e4}.eyebrow{font-size:.78cqw;letter-spacing:.24em;text-transform:uppercase;color:#f19ca4;font-weight:700;margin-bottom:1.5cqw}.accent{color:#e87983}.topline{display:flex;justify-content:space-between;align-items:center;font-size:.72cqw;letter-spacing:.2em;color:#ffffffa3;text-transform:uppercase}.topline strong{font:800 1.65cqw Montserrat,Arial,sans-serif;color:#fff;letter-spacing:.13em}.intro{margin-top:8.3cqw;max-width:59%}.intro p{margin-top:1.6cqw;max-width:34cqw}.redline{height:.35cqw;background:var(--vino);width:8cqw;margin-top:2.3cqw}.section-heading{max-width:70%;margin-top:4.6cqw}.section-heading p{margin-top:1.1cqw;max-width:52cqw}.glass{border:1px solid #ffffff29;background:#ffffff14;backdrop-filter:blur(12px);box-shadow:inset 0 1px #ffffff15,0 1.4cqw 3cqw #0003}.columns{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2cqw}.stats{position:absolute;left:6.2%;right:44%;bottom:18%;grid-template-columns:repeat(3,1fr)}.stat{padding:1.5cqw 1.25cqw;min-height:8.5cqw}.stat b{display:block;color:#f7f7f5;font:700 1.55cqw Montserrat,Arial,sans-serif;line-height:1.1;margin-bottom:.7cqw}.stat span{font-size:.9cqw;color:#d2d5d6}.image-space{position:absolute;right:7%;top:22%;width:34%;height:52%;border:1px solid #e16b7880;transform:skew(-7deg);background:#11191a50}.image-space img{width:100%;height:100%;object-fit:cover}.timeline{position:absolute;left:8%;right:8%;top:56%;display:grid;grid-template-columns:repeat(3,1fr)}.timeline:before{content:"";position:absolute;top:.75cqw;left:0;right:5%;height:1px;background:#ffffffaa}.step{position:relative}.dot{height:1.5cqw;width:1.5cqw;border-radius:50%;background:#8e1f2d;border:2px solid #fff;box-shadow:0 0 2cqw #f0445266}.step strong{display:block;font:800 2.3cqw Montserrat,Arial,sans-serif;margin:1.6cqw 0 .5cqw}.step span{font-size:1.05cqw;color:#e0e3e4}.service-grid{position:absolute;left:6.2%;right:6.2%;bottom:15%;display:grid;grid-template-columns:repeat(4,1fr);gap:1.15cqw}.service{min-height:14cqw;padding:7cqw 1.3cqw 1.4cqw;position:relative}.service:before{content:"";position:absolute;left:0;top:0;width:32%;height:.42cqw;background:var(--vino)}.service h3{font-size:1.18cqw;line-height:1.3}.service img{position:absolute;height:8cqw;width:95%;object-fit:contain;bottom:6.5cqw;left:2.5%;filter:drop-shadow(0 1cqw .5cqw #0008)}.video-title{position:absolute;left:6.2%;top:8%}.video-wrap{position:absolute;left:18%;top:19%;width:64%;aspect-ratio:16/9;border:1px solid #b34855;box-shadow:0 1.5cqw 4cqw #000c;background:#000}.video-wrap iframe{width:100%;height:100%;border:0}.caption{position:absolute;bottom:9%;left:18%;width:64%;text-align:center;font-size:1cqw;color:#d7d6d4;font-style:italic}.equipment{position:absolute;left:6.2%;right:6.2%;top:28%;bottom:14%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:1cqw 3cqw}.equip{position:relative;display:flex;align-items:end;justify-content:center;padding:0 0 .9cqw;border-bottom:1px solid #ffffff42;font-size:1cqw;font-weight:600}.equip:before{content:"";position:absolute;bottom:19%;width:65%;height:14%;border-radius:50%;background:#a42136;filter:blur(1.2cqw);opacity:.65}.equip img{position:absolute;bottom:18%;width:90%;height:76%;object-fit:contain;filter:drop-shadow(0 .9cqw .6cqw #0008)}.light-slide{color:#20232a}.light-slide .overlay{background:linear-gradient(110deg,#eef2f6f5,#eef2f6e9)}.light-slide .texture{opacity:.035}.light-slide .geometry:before{opacity:.14}.light-slide .topline,.light-slide .topline strong{color:#424b53}.light-slide .eyebrow{color:var(--vino)}.light-slide .brand{color:#20232a}.logo-grid{position:absolute;left:6.2%;right:6.2%;top:38%;bottom:16%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:1cqw}.logo-cell{background:#fff;box-shadow:0 .5cqw 1.5cqw #19232c12;display:flex;align-items:center;justify-content:center;color:#364047;font:700 1.35cqw Montserrat,Arial,sans-serif}.logo-cell:first-child{color:#741925;font-size:1.7cqw}.logo-cell img{max-width:70%;max-height:55%;object-fit:contain}.footnote{position:absolute;bottom:10%;left:6.2%;color:#69727a;font-size:.85cqw}.parts-slide .overlay{background:linear-gradient(105deg,#19232cf5 10%,#19232cd9 46%,#0a4d8c80)}.parts-grid{position:absolute;left:6.2%;right:38%;top:40%;display:grid;grid-template-columns:1fr 1fr;gap:2.5cqw}.parts-grid strong{font:800 3cqw Montserrat,Arial,sans-serif;letter-spacing:-.06em;display:block}.parts-grid small{font-size:1cqw;color:#e4ebef}.parts-grid .wide{grid-column:span 2;font-size:1.55cqw}.parts-line{position:absolute;left:6.2%;bottom:16%;font-size:1.1cqw}.parts-logo{position:absolute;right:8%;top:36%;width:25%;height:21%;display:grid;place-items:center;font:800 2cqw Montserrat,Arial,sans-serif;color:#fff}.parts-logo img{max-width:70%;max-height:65%}.opps .overlay{background:linear-gradient(270deg,#19232cf7 0%,#19232cdd 45%,#19232c66 100%)}.opps-content{position:absolute;top:20%;left:51%;right:6%}.opps-content h2{margin-bottom:2cqw}.opps-list{display:grid;gap:.7cqw}.opp{padding:1.2cqw 1.5cqw;border-left:3px solid #a42d3d;font:700 1.12cqw Montserrat,Arial,sans-serif}.chips{display:flex;gap:.5cqw;flex-wrap:wrap;margin-top:1.5cqw}.chips span{font-size:.75cqw;border:1px solid #ffffff55;padding:.5cqw .75cqw;border-radius:2cqw}.closing{text-align:center;position:absolute;inset:0;padding-top:13%}.closing h2{font-size:4.8cqw}.contact{position:absolute;left:12%;right:30%;bottom:20%;display:grid;grid-template-columns:repeat(3,1fr);gap:1cqw;text-align:left}.contact a{font-size:1.05cqw;color:white;text-decoration:none;pointer-events:auto}.contact small{display:block;color:#f0a0a8;font-size:.7cqw;letter-spacing:.2em;margin-bottom:.6cqw}.qr{position:absolute;right:8%;bottom:16%;width:12%;padding:1cqw}.qr img{width:100%;display:block}.controls{position:absolute;z-index:10;right:2.2%;bottom:3%;display:flex;align-items:center;gap:.45cqw;opacity:.3;transition:opacity .2s}.stage:hover .controls,.controls:focus-within{opacity:1}.controls button{width:2.4cqw;height:2.4cqw;min-width:26px;min-height:26px;border:1px solid #ffffff66;border-radius:50%;color:white;background:#10191dcc;cursor:pointer}.controls button:hover{background:var(--vino)}.controls span{font-size:.7cqw;color:#fff;min-width:3.8cqw;text-align:center}.progress{position:absolute;z-index:11;bottom:0;left:0;width:10%;height:3px;background:var(--red);transition:width .4s}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.reduce-motion .slide,.reduce-motion .progress{transition:none}

.product-service-grid{position:absolute;left:6.2%;right:6.2%;bottom:15%;display:grid;grid-template-columns:repeat(4,1fr);gap:1.15cqw;z-index:1}.product-service-grid>div{height:14cqw;position:relative}.product-service-grid img{position:absolute;width:95%;height:8cqw;bottom:6.5cqw;left:2.5%;object-fit:contain;filter:drop-shadow(0 1cqw .5cqw #0008)}.product-equipment{position:absolute;left:6.2%;right:6.2%;top:28%;bottom:14%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:1cqw 3cqw}.product-equipment>div{position:relative}.product-equipment img{position:absolute;bottom:18%;left:5%;width:90%;height:76%;object-fit:contain;filter:drop-shadow(0 .9cqw .6cqw #0008)}.brand{justify-content:flex-end;gap:1.2cqw}.video-title .eyebrow{display:none}.video-title{top:10%}
/* Dirección visual: planos diagonales, fotografía visible y vidrio ahumado. */
.texture{display:none}.overlay{background:linear-gradient(105deg,#19232ce8 0%,#19232cab 49%,#19232c33 100%)}.geometry:before{right:auto;left:0;top:0;width:60%;height:100%;transform:none;border:0;clip-path:polygon(0 0,85% 0,53% 100%,0 100%);background:linear-gradient(115deg,#121d24df,#19232c99)}.geometry:after{left:0;top:0;right:auto;bottom:auto;width:64%;height:100%;clip-path:polygon(78% 0,84% 0,53% 100%,47% 100%);background:linear-gradient(125deg,#741925e8,#8e1f2dba,#60131ee8)}.slide:nth-child(2) .geometry:before,.slide:nth-child(4) .geometry:before,.slide:nth-child(6) .geometry:before,.slide:nth-child(8) .geometry:before{opacity:.25}.slide:nth-child(2) .geometry:after,.slide:nth-child(4) .geometry:after,.slide:nth-child(6) .geometry:after,.slide:nth-child(8) .geometry:after{left:auto;right:0;clip-path:polygon(86% 0,100% 0,100% 100%,53% 100%);opacity:.35}.glass{border:1px solid #ffffff55;border-radius:.8cqw;background:linear-gradient(135deg,#323a3db8,#1d252bc7);box-shadow:inset 0 1px #ffffff24,0 1.1cqw 3cqw #0007;backdrop-filter:blur(10px)}.stat{position:relative}.stat:before{content:'';position:absolute;top:0;left:0;width:35%;height:.65cqw;background:#8e1f2d;clip-path:polygon(0 0,100% 0,85% 100%,0 100%)}.image-space:empty{border:0;background:none}.light-slide .geometry{display:none}.parts-slide .geometry:before{opacity:.25}.opps .geometry:before{left:auto;right:0;clip-path:polygon(45% 0,100% 0,100% 100%,5% 100%);background:#142027e3}.opps .geometry:after{left:auto;right:0;clip-path:polygon(43% 0,49% 0,9% 100%,3% 100%)}.video-slide .background,.video-slide .overlay,.video-slide .texture,.video-slide .geometry,.video-slide .brand,.video-slide .topline,.video-slide .video-title,.video-slide .caption{display:none}.video-slide .content{padding:0}.video-slide .video-wrap{position:absolute;inset:0;width:100%;height:100%;border:0;box-shadow:none;aspect-ratio:auto}.video-slide .video-wrap iframe{width:100%;height:100%}.opps-content{top:18%;left:49%;right:5%}.opps-content h2{font-size:2.9cqw;margin-bottom:.7cqw}.lanyard-rail{position:relative;display:flex;gap:1cqw;height:19cqw;padding:3.4cqw 0 0;justify-content:center}.rail{position:absolute;top:1.2cqw;left:0;right:0;height:.24cqw;background:linear-gradient(#dee3e4,#767e82,#eee);box-shadow:0 .2cqw .6cqw #0009}.hang-card{position:relative;width:12cqw;height:14cqw;border:0;padding:0;background:none;cursor:pointer;perspective:80cqw;transform-origin:50% -2cqw;animation:hang-sway 6s ease-in-out infinite}.hang-card:nth-child(3){animation-delay:-1.5s}.hang-card:nth-child(4){animation-delay:-3s}.strap{position:absolute;bottom:100%;left:47%;height:2.8cqw;width:6%;background:linear-gradient(90deg,#631322,#b33c4d,#651520)}.flip{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.75,.2,1)}.hang-card[aria-pressed=true] .flip{transform:rotateY(180deg)}.face{position:absolute;inset:0;display:flex;flex-direction:column;text-align:left;backface-visibility:hidden;padding:1.15cqw;border:1px solid #ffffff65;border-radius:.6cqw;background:linear-gradient(150deg,#3b4248ed,#172027f7);box-shadow:0 1.2cqw 2cqw #0008,inset 0 1px #ffffff3d;color:#fff}.face:before{content:'';height:.42cqw;background:#a42b3a;position:absolute;top:0;left:0;width:42%;clip-path:polygon(0 0,100% 0,85% 100%,0 100%)}.face small{font:600 .56cqw Inter,Arial,sans-serif;letter-spacing:.12em;color:#d9a3a8}.face b{font:700 1.15cqw Montserrat,Arial,sans-serif;line-height:1.18;margin:auto 0}.face em{font:400 .75cqw Inter,Arial,sans-serif;color:#c6cccd;line-height:1.4}.face.back{transform:rotateY(180deg);background:linear-gradient(145deg,#731b28,#1d252b)}.opps .chips{margin-top:.3cqw}@keyframes hang-sway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}.reduce-motion .hang-card{animation:none}.reduce-motion .flip{transition:none}

.slide:nth-child(3) .component-art{background:url("assets/componentes/bisel-vino.webp") no-repeat right -7cqw bottom -7cqw / 28cqw auto;opacity:.35}.parts-slide .component-art{background:url("assets/componentes/vidrio-ahumado.webp") no-repeat right 6% center / 30cqw auto;opacity:.16}.video-slide .component-art{display:none}
.brand{right:13%}.video-slide .brand{display:none}


/* ===== v2 · auditoría 2026-11-10 ===== */
/* Legibilidad mínima en proyector */
.topline{font-size:.82cqw}.eyebrow{font-size:.86cqw}.contact small{font-size:.82cqw}.footnote{font-size:.95cqw}
.face small{font-size:.68cqw}.face em{font-size:.82cqw}.hang-card{width:13cqw;height:15cqw}
/* Controles siempre visibles en la diapositiva de video */
.stage.on-video .controls{opacity:1}
/* SplitText */
.split-line{overflow:hidden;display:block;padding-bottom:.06em}
.split-word{display:inline-block;will-change:transform,opacity}
/* SpotlightCard (React Bits) */
.spotlight{position:relative;overflow:hidden;isolation:isolate}
.spotlight:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(22cqw circle at var(--mx,50%) var(--my,50%),#c94b5c40,transparent 60%)}
.spotlight:hover:after{opacity:1}
/* Servicios con ícono y descripción */
.service{padding:2cqw 1.5cqw 1.6cqw;display:flex;flex-direction:column;justify-content:flex-end;gap:.6cqw}
.service .ico{position:absolute;top:1.8cqw;left:1.5cqw;width:2.6cqw;height:2.6cqw;fill:none;stroke:#f19ca4;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.service .idx{position:absolute;top:1.6cqw;right:1.5cqw;font:800 .9cqw Montserrat,Arial,sans-serif;color:#ffffff59;letter-spacing:.1em}
.service h3{font-size:1.35cqw}.service p{font-size:.95cqw;line-height:1.45;color:#c9cfd2}
/* Línea de tiempo legible sobre la foto */
.step{padding:1.2cqw 1.3cqw 1.3cqw;margin-right:1.5cqw;border-radius:.6cqw;background:linear-gradient(135deg,#19232ccc,#19232c99);backdrop-filter:blur(8px);border:1px solid #ffffff22}
.step .dot{position:absolute;top:-.75cqw;left:1.3cqw}.step strong{margin-top:.4cqw}.timeline:before{top:-.0cqw}
/* Equipos sin fotografía: tarjetas en lugar de huecos */
.equip em{display:none}.equip small.idx{display:none}
.no-photos .equip:before{display:none}
.no-photos .equipment{top:30%;gap:1.1cqw}
.no-photos .equip{flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:1.4cqw 1.5cqw;border:1px solid #ffffff2e;border-radius:.7cqw;background:linear-gradient(140deg,#2a3236cc,#151d22e6);backdrop-filter:blur(10px);font-size:1.35cqw;font-family:Montserrat,Arial,sans-serif;font-weight:700}
.no-photos .equip small.idx{display:block;position:absolute;top:1.2cqw;left:1.5cqw;font:800 .9cqw Montserrat,Arial,sans-serif;color:#f19ca4;letter-spacing:.1em}
.no-photos .equip em{display:block;font:400 .95cqw Inter,Arial,sans-serif;color:#c9cfd2;margin-top:.4cqw}
.no-photos .equip:after{content:"";position:absolute;left:0;top:0;width:28%;height:.35cqw;background:var(--vino)}
.no-photos .product-service-grid,.no-photos .product-equipment{display:none}
/* Marcas + LogoLoop */
.logo-grid{top:33%;bottom:30%}
.logo-loop-host{position:absolute;left:6.2%;right:6.2%;bottom:16.5%;height:5cqw}
.logoloop{position:relative;overflow:hidden;height:100%;display:flex;align-items:center;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.logoloop__track{display:flex;width:max-content;gap:4cqw;animation:logoloop var(--dur,28s) linear infinite}
.logoloop:hover .logoloop__track{animation-play-state:paused}
.logoloop__item{font:800 1.5cqw Montserrat,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#8a9298;white-space:nowrap;transition:color .25s}
.logoloop__item:hover{color:var(--vino)}
@keyframes logoloop{to{transform:translateX(-50%)}}
.reduce-motion .logoloop__track{animation:none}.reduce-motion .split-word{transform:none!important;opacity:1!important}

/* Video local de la diapositiva MTC en acción. */
.video-slide .video-wrap video{display:block;width:100%;height:100%;object-fit:cover}

/* Ajustes restaurados */
[data-count]>span{font:inherit;color:inherit;letter-spacing:inherit}
.logo-grid{top:41%;bottom:27%}.logo-loop-host{bottom:15%}
.no-photos .equipment{top:33%;bottom:13%}

/* ===== v3 · FoldText, DitherVeil, PixelSwap, AnimatedContent, DriftWall ===== */
/* Transición PixelSwap: la diapositiva saliente queda debajo mientras la nueva se arma en píxeles */
.slide{transition:none!important;transform:none!important}
.slide.leaving{opacity:1;visibility:visible;z-index:1}
.slide.active{z-index:2}
/* FoldText: el remarcado ya no usa el color plano */
.fold-text .accent{color:inherit}
h1.fold-text,h2.fold-text{display:block}
/* Diapositiva de maquinaria */
.drift-slide .geometry{display:none}
.drift-slide .overlay{background:linear-gradient(90deg,#19232cf7 0%,#19232ce6 36%,#19232c99 60%,#19232c66 100%)}
.drift-host{position:absolute;top:0;bottom:0;right:0;width:60%;z-index:1}
.drift-copy{position:absolute;left:6.2%;top:20%;width:34%;z-index:2}
.drift-copy p{margin-top:1.4cqw;max-width:30cqw}
.drift-copy .chips{margin-top:1.6cqw}
.drift-slide .content{pointer-events:auto}

/* ===== v4 · Grainient (fondo MTC), LightRays (maquinaria) y Lanyard (cierre) ===== */
.grain-layer{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.slide:not(.light-slide):not(.video-slide) .background{-webkit-mask-image:linear-gradient(100deg,transparent 16%,#000 60%);mask-image:linear-gradient(100deg,transparent 16%,#000 60%)}
.slide.opps:not(.light-slide):not(.video-slide) .background{-webkit-mask-image:linear-gradient(280deg,transparent 42%,#000 78%);mask-image:linear-gradient(280deg,transparent 42%,#000 78%)}
.slide:not(.light-slide):not(.video-slide) .overlay{background:linear-gradient(100deg,#0b101426 0%,#0b101400 40%,#19232c40 72%,#19232c80 100%)}
.slide.opps:not(.light-slide):not(.video-slide) .overlay{background:linear-gradient(280deg,#0b101426 0%,#0b101400 40%,#19232c40 72%,#19232c80 100%)}
.slide:not(.light-slide) .geometry:before{background:linear-gradient(115deg,#0b10142e,#0b101400)!important}
.rays-slide .background,.lanyard-slide .background,.rays-slide .geometry,.lanyard-slide .geometry,.rays-slide .component-art,.lanyard-slide .component-art{display:none}
.rays-slide .overlay,.lanyard-slide .overlay{background:radial-gradient(ellipse at 62% 30%,transparent 30%,#0b101466 100%)!important}
.rays-copy{position:absolute;left:6.2%;top:15%;width:30%;z-index:2}
.rays-copy p{margin-top:1.2cqw}
.showcase-host{position:absolute;inset:0}
.lanyard-host{position:absolute;inset:0}
.lanyard-copy{position:absolute;left:0;right:0;bottom:8.5%;text-align:center;z-index:2;display:flex;flex-direction:column;align-items:center}
.lanyard-copy .eyebrow{margin-bottom:.8cqw}
.lanyard-copy p{margin-top:.8cqw;font-size:.95cqw;color:#c9cfd2}
.lanyard-copy .contact{position:static;display:flex;gap:3.5cqw;margin-top:1.4cqw}
.lanyard-slide .topline{position:relative;z-index:2}
.brand .mtc img{width:6.4cqw;max-height:3.2cqw}
.logo-cell img{max-width:62%;max-height:46%}
/* Give animated glyphs room for accents, descenders and antialiased edges. */
h1.fold-text{line-height:1.13}
h2.fold-text{line-height:1.18}
.fold-text-piece{padding:.08em .08em;margin:-.08em -.08em}
.intro{margin-top:7.4cqw}
/* Generated industrial glass finish; content remains editable and accessible. */
.stat,.service,.step,.parts-logo{
  border:0;
  border-radius:.8cqw;
  background: url('assets/acabados/panel-industrial.webp') center / 100% 100% no-repeat;
  box-shadow:0 1cqw 2.5cqw #0006;
  backdrop-filter:blur(5px);
}
.stat:before,.service:before{display:none}
.stat{padding:1.9cqw 1.5cqw 1.4cqw}
.service{padding:2.2cqw 1.6cqw 1.6cqw}
.step{padding:1.5cqw 1.5cqw 1.3cqw}
/* Variantes de acabado para cada tipo de contenido. */
.stat{background-image:url('assets/acabados/panel-cifras.webp')}
.service{background-image:url('assets/acabados/panel-servicios.webp')}
.step,.parts-logo{background-image:url('assets/acabados/panel-horizontal.webp');background-size:100% 155%}

.redline{width:12cqw;height:1.1cqw;overflow:hidden;background:#741925}.redline img{width:100%;height:100%;object-fit:cover;object-position:center 65%;display:block}
/* El separador ilustrado aparece únicamente en portada e historia. */
.geometry{display:none!important}
.slide:nth-child(1) .geometry,.slide:nth-child(3) .geometry{display:block!important;background:url("assets/componentes/separador-diagonal.webp") center / 100% 100% no-repeat;opacity:.6}
.slide .geometry:before,.slide .geometry:after{display:none!important}

/* Ajustes de maquinaria y marcas. */
.accent{color:#ed3548}
.drift-host{overflow:visible;width:70%;z-index:1}
.drift-wall{overflow:visible;-webkit-mask-image:none;mask-image:none}
.drift-copy,.drift-slide .topline{z-index:2}
.drift-slide .topline{position:relative;pointer-events:none}
.brands-heading{margin-top:3cqw}
.brands-heading p{color:#596168;margin-top:.6cqw}
.brand-feature{position:absolute;left:6.2%;right:6.2%;top:39%;bottom:22%;display:grid;grid-template-columns:1.1fr 2fr;gap:1cqw}
.brand-feature-main,.brand-feature-side>div{border-radius:.7cqw;background:#fff;box-shadow:0 .5cqw 1.5cqw #19232c12}
.brand-feature-main{padding:2cqw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1cqw}
.brand-feature-main span{font:700 .65cqw Montserrat,Arial;letter-spacing:.16em;color:#9b2937}
.brand-feature-main img{width:78%;max-height:4cqw;object-fit:contain;object-position:left}
.brand-feature-main p{font-size:.8cqw;color:#626a70}
.brand-feature-side{display:grid;grid-template-columns:1fr 1fr;gap:1cqw}
.brand-feature-side>div{display:grid;place-items:center;padding:1cqw}
.brand-feature-side img{max-width:65%;max-height:3cqw;object-fit:contain}
.brand-more{position:absolute;left:6.2%;bottom:16%;font-size:.85cqw;color:#606970}
.brand-more strong{color:#394149}
.light-slide .footnote{bottom:11%}
/* Separador horizontal discreto en tres momentos de la presentación. */
.redline{background:#a81f35;height:.28cqw;width:9cqw;margin-top:2.3cqw}
.redline img{display:none}
.slide:nth-child(3) .section-heading:after,.slide:nth-child(9) .section-heading:after{content:'';display:block;width:9cqw;height:.28cqw;margin-top:1.3cqw;background:#a81f35}

/* Historia y sedes */
.timeline{grid-template-columns:repeat(4,1fr);gap:1.2cqw;left:6.2%;right:6.2%}
.timeline .step{margin:0;min-height:10cqw;padding:1.4cqw}
.timeline .step span{display:block;line-height:1.45;max-width:19cqw}
.locations-copy{position:absolute;left:6.2%;top:23%;width:37%}
.locations-copy p{margin-top:1.2cqw;max-width:32cqw}
.location-list{display:grid;gap:.7cqw;margin-top:2cqw}
.location-list div{display:flex;align-items:center;gap:1.1cqw;padding:.85cqw 1.2cqw;border:1px solid #ffffff30;border-radius:.5cqw;background:#182128bb;font:700 1.15cqw Montserrat,Arial,sans-serif}
.location-list b{color:#ed8993;font-size:.8cqw;letter-spacing:.1em}
.location-coverage{margin-top:1.4cqw;font-size:1cqw;color:#dce0e1}.location-coverage strong{color:#f19ca4}
.branch-map{position:absolute;left:44%;right:5%;top:19%;margin:0;padding:1.2cqw;border:1px solid #ffffff30;border-radius:1cqw;background:#172128df;box-shadow:0 1cqw 3cqw #0005}
.branch-map svg{display:block;width:100%;height:auto;overflow:visible}.branch-map path{fill:#a52d40;stroke:#29323a;stroke-width:1.2;stroke-linejoin:round}.branch-map image{filter:drop-shadow(0 2px 2px #0008)}.branch-map figcaption{text-align:right;font-size:.65cqw;color:#c3c9cc}

/* Diapositiva 8: mosaico de marcas inspirado en las tarjetas del componente de referencia. */
.brands-slide .brands-heading{margin-top:2.35cqw;max-width:82%}
.brands-slide .brands-heading h2{font-size:3.05cqw;color:#20232a}
.brands-slide .brands-heading p{margin-top:.65cqw}
.brand-mosaic{position:absolute;left:6.2%;right:6.2%;top:33%;bottom:23%;display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:.85cqw}
.brand-mosaic-col{display:flex;flex-direction:column;gap:.85cqw;min-width:0}
.brand-card{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.65cqw;padding:1.25cqw 1.45cqw;border:1px solid #d5d9dd;border-radius:.65cqw;background:#111;color:#fff;overflow:hidden}
.brand-card:after{content:"";position:absolute;right:-3cqw;top:-5cqw;width:9cqw;height:9cqw;border-radius:50%;background:#ffffff0c}
.brand-card--hero{background:#a7192d;border-color:#bd2539;padding:1.65cqw}
.brand-card-kicker{font:700 .63cqw Montserrat,Arial,sans-serif;letter-spacing:.14em;color:#f4bfc5}
.brand-card img{position:relative;z-index:1;display:block;width:82%;height:3.3cqw;max-height:3.3cqw;object-fit:contain;padding:.55cqw .8cqw;border-radius:.35cqw;background:#fff}
.brand-card--hero img{height:5.2cqw;max-height:5.2cqw;width:88%;padding:.8cqw 1cqw}
.brand-card p{font-size:.78cqw;line-height:1.4;color:#e1e3e5;max-width:90%}
.brand-carousel{position:absolute;left:6.2%;right:6.2%;bottom:8.7%;height:7.4%;display:flex;align-items:center;gap:1.2cqw;border-top:1px solid #cbd0d4}
.brand-carousel-label{flex:0 0 13cqw;font:800 .72cqw Montserrat,Arial,sans-serif;letter-spacing:.1em;color:#741925;line-height:1.45}
.brand-carousel-label small{font:500 .62cqw Inter,Arial,sans-serif;letter-spacing:0;color:#69727a;text-transform:none}
.brand-carousel .logo-loop-host{position:relative;inset:auto;left:auto;right:auto;bottom:auto;flex:1;height:100%;min-width:0}
.brand-carousel .logoloop{mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.brand-carousel .logoloop__track{gap:3cqw}
.brand-carousel .logoloop__item{font-size:1.18cqw;color:#424b53}
.brand-carousel .logoloop__item:nth-child(3n+1){color:#8e1f2d}

/* MTC brand mark moved to the upper-left corner */
.brand-mark{position:absolute;z-index:4;left:6.2%;top:2.2%;width:7cqw;height:3.2cqw;display:flex;align-items:center;pointer-events:none;color:#fff;font:800 1.1cqw Montserrat,Arial,sans-serif;letter-spacing:.1em}
.brand-mark img{display:block;width:100%;height:100%;max-height:none;object-fit:contain;object-position:left center}
.brand{left:auto;right:6.2%;bottom:4.5%}
.video-slide .brand-mark{display:none}


/* Mapa de sedes: estados con sucursal se pintan en rojo; los pines caen y flotan después. */
.branch-map path{fill:#2a353f;stroke:#3f4c57;stroke-width:1;transition:fill .3s}
.branch-map path.has-branch{fill:#2a353f;stroke:#3f4c57}
.slide.active .branch-map path.has-branch{animation:state-on .9s cubic-bezier(.22,.61,.36,1) calc(.9s + var(--i) * .3s) both}
.slide.leaving .branch-map path.has-branch{fill:#c22a3e;stroke:#ff8f9b}
@keyframes state-on{0%{fill:#2a353f;stroke:#3f4c57}45%{fill:#e8485c;stroke:#ffc2c9}100%{fill:#c22a3e;stroke:#ff8f9b}}
.branch-map image{filter:drop-shadow(0 4px 3px #000a)}
.branch-pin{opacity:0}
.branch-pin .pin-float{transform-box:fill-box;transform-origin:50% 100%}
.branch-pin .pin-pulse{fill:none;stroke:#ff6b7c;stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.slide.active .branch-pin,.slide.leaving .branch-pin{animation:pin-drop .8s cubic-bezier(.34,1.45,.64,1) calc(2s + var(--i) * .3s) both}
.slide.active .branch-pin .pin-float{animation:pin-float 3.2s ease-in-out calc(2.8s + var(--i) * .3s) infinite}
.slide.active .branch-pin .pin-pulse{animation:pin-pulse 2.4s ease-out calc(2.6s + var(--i) * .3s) infinite}
@keyframes pin-drop{0%{opacity:0;transform:translateY(-34px)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes pin-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes pin-pulse{0%{opacity:.85;transform:scale(.4)}100%{opacity:0;transform:scale(1.9)}}
.reduce-motion .branch-pin{opacity:1}.reduce-motion .branch-map path.has-branch{fill:#c22a3e;stroke:#ff8f9b}
.reduce-motion .slide .branch-map *{animation:none!important}

/* Logo MTC a la izquierda del número de diapositiva, en la misma fila */
.brand-mark{top:calc(5.4cqw + .55cqw - 1.4cqw);height:2.8cqw;width:4cqw}
.slide:not(.video-slide) .topline{padding-left:5.7cqw;min-height:1.1cqw}
.slide:not(.video-slide) .topline:before{content:"";position:absolute;margin-left:-.95cqw;width:1px;height:1.6cqw;background:#ffffff40}
.light-slide .topline:before{background:#20232a33!important}

/* ===== v5 · Separadores estilo referencia (reemplazan el PNG diagonal) ===== */
.stage .slide .geometry,.slide:nth-child(3) .component-art,.parts-slide .component-art{display:none!important}
.frame{display:none;filter:drop-shadow(0 0 1.1cqw #0009)}
.slide[class*="frame-"] .frame{display:block}
.frame i{position:absolute;inset:0;display:none}
/* Número de sección con subrayado rojo */
.slide:not(.video-slide) .topline>span:first-child{position:relative}
.slide:not(.video-slide) .topline>span:first-child:after{content:"";position:absolute;left:0;bottom:-.6cqw;width:2.2cqw;height:.18cqw;background:#e0364a}
/* Panel oscuro a la izquierda con banda roja (portada, MTC Parts) */
.frame-panel-left,.frame-panel-right{--ft:58%;--fb:42%;--bw:4%}
.frame-panel-left .background,.frame-panel-right .background{-webkit-mask-image:none!important;mask-image:none!important}
.frame-panel-left .f-panel,.frame-panel-left .f-band,.frame-panel-left .f-line,.frame-panel-left .f-corner,
.frame-panel-right .f-panel,.frame-panel-right .f-band,.frame-panel-right .f-line{display:block}
.frame-panel-left .f-panel{clip-path:polygon(0 0,var(--ft) 0,var(--fb) 100%,0 100%);background:linear-gradient(160deg,#1c252c,#141b21 55%,#0f1519)}
.frame-panel-left .f-band{clip-path:polygon(var(--ft) 0,calc(var(--ft) + var(--bw)) 0,calc(var(--fb) + var(--bw)) 100%,var(--fb) 100%);background:linear-gradient(180deg,#c92b40,#8e1f2d 55%,#5e1019)}
.frame-panel-left .f-line{clip-path:polygon(calc(var(--ft) + var(--bw) + 1%) 0,calc(var(--ft) + var(--bw) + 1.35%) 0,calc(var(--fb) + var(--bw) + 1.35%) 100%,calc(var(--fb) + var(--bw) + 1%) 100%);background:#e0485a;opacity:.6}
.frame-panel-left .f-corner{inset:auto auto 5.5% 2.6%;width:15%;height:19%;border-left:2px solid #c22a3e;border-bottom:2px solid #c22a3e}
/* Panel oscuro a la derecha (oportunidades) */
.frame-panel-right{--ft:50%;--fb:37%}
.frame-panel-right .f-panel{clip-path:polygon(var(--ft) 0,100% 0,100% 100%,var(--fb) 100%);background:linear-gradient(200deg,#1c252c,#141b21 55%,#0f1519)}
.frame-panel-right .f-band{clip-path:polygon(calc(var(--ft) - var(--bw)) 0,var(--ft) 0,var(--fb) 100%,calc(var(--fb) - var(--bw)) 100%);background:linear-gradient(180deg,#c92b40,#8e1f2d 55%,#5e1019)}
.frame-panel-right .f-line{clip-path:polygon(calc(var(--ft) - var(--bw) - 1.35%) 0,calc(var(--ft) - var(--bw) - 1%) 0,calc(var(--fb) - var(--bw) - 1%) 100%,calc(var(--fb) - var(--bw) - 1.35%) 100%);background:#e0485a;opacity:.6}
/* Esquina roja inferior derecha + retículas técnicas (sedes, servicios, marcas) */
.frame-corner .f-wedge,.frame-corner .f-band,.frame-corner .f-grid,.frame-corners .f-wedge,.frame-corners .f-band,.frame-corners .f-panel,.frame-corners .f-grid--a{display:block}
.frame-corner .f-wedge{clip-path:polygon(100% 70%,100% 100%,79% 100%);background:linear-gradient(135deg,#c92b40,#8e1f2d 60%,#5e1019)}
.frame-corner .f-band{clip-path:polygon(100% 61%,100% 66.5%,76.5% 100%,72.5% 100%);background:#741925;opacity:.9}
.f-grid{background-image:linear-gradient(#ffffff1c 1px,transparent 1px),linear-gradient(90deg,#ffffff1c 1px,transparent 1px);background-size:2.3cqw 2.3cqw}
.f-grid--a{inset:0 0 auto auto!important;width:15%;height:27%;-webkit-mask-image:radial-gradient(circle at 100% 0,#000 20%,transparent 72%);mask-image:radial-gradient(circle at 100% 0,#000 20%,transparent 72%)}
.f-grid--b{inset:auto auto 0 0!important;width:17%;height:32%;-webkit-mask-image:radial-gradient(circle at 0 100%,#000 20%,transparent 72%);mask-image:radial-gradient(circle at 0 100%,#000 20%,transparent 72%)}
/* Esquinas opuestas (historia) */
.frame-corners .f-wedge{clip-path:polygon(0 0,8.5% 0,0 21%);background:linear-gradient(160deg,#c92b40,#741925)}
.frame-corners .f-panel{clip-path:polygon(100% 74%,100% 100%,72% 100%);background:linear-gradient(160deg,#1c252c,#10161b)}
.frame-corners .f-band{clip-path:polygon(100% 66%,100% 72%,70.5% 100%,65.5% 100%);background:linear-gradient(180deg,#c92b40,#741925)}
.reduce-motion .frame{filter:none}

/* ===== v5 · Marcas en oscuro (antes blanca) ===== */
.brands-slide .brands-heading h2{color:#fff}
.brands-slide .brands-heading p{color:#c9cfd2}
.brands-slide .brand-card{border-color:#ffffff24;background:linear-gradient(150deg,#28323b,#151c22);box-shadow:0 1cqw 2.4cqw #0006}
.brands-slide .brand-card--hero{background:linear-gradient(150deg,#b41f33,#741925);border-color:#d0374b}
.brands-slide .brand-card p{color:#d3d8db}
.brands-slide .brand-carousel{border-top-color:#ffffff26}
.brands-slide .brand-carousel-label{color:#f19ca4}
.brands-slide .brand-carousel-label small{color:#9aa3a9}
.brands-slide .brand-carousel .logoloop__item{color:#aab3b9}
.brands-slide .brand-carousel .logoloop__item:nth-child(3n+1){color:#ed5a6b}

/* ===== v5 · Diapositiva 9 (MTC Parts) ===== */
.parts-slide .section-heading{max-width:52%}
.parts-slide .section-heading p{max-width:30cqw;margin-top:1.2cqw}
.parts-stack{position:absolute;left:6.2%;top:55%;width:27cqw;display:grid;gap:.7cqw;z-index:2}
.parts-row{position:relative;display:flex;align-items:baseline;gap:1.1cqw;padding:.95cqw 1.4cqw .95cqw 1.9cqw;border:1px solid #ffffff2b;border-radius:.6cqw;background:linear-gradient(120deg,#ffffff14,#ffffff05);backdrop-filter:blur(6px);box-shadow:0 .8cqw 2cqw #0005}
.parts-row:before{content:"";position:absolute;left:-.15cqw;top:24%;bottom:24%;width:.38cqw;background:#d12d42;transform:skewY(-14deg)}
.parts-row strong{font:800 2cqw Montserrat,Arial,sans-serif;letter-spacing:-.04em;min-width:9.6cqw}
.parts-row>span{font-size:1cqw;color:#d5dadd}
.parts-chips{position:absolute;left:6.2%;top:86%;margin:0!important}
.parts-hero{position:absolute;right:3%;bottom:4%;width:50%;height:78%;object-fit:contain;object-position:right bottom;filter:drop-shadow(0 1.5cqw 1.6cqw #000a);z-index:1}
.parts-slide .parts-logo{right:6.2%;top:17%;bottom:auto;width:16%;height:7.5%;z-index:2;font:800 1.35cqw Montserrat,Arial,sans-serif;letter-spacing:.06em}
.parts-logo b{color:#ed3548}

/* ===== v5 · Diapositiva 10: riel con nodos y fondos en tarjetas ===== */
.opps .rail{top:1.6cqw;height:2px;background:linear-gradient(90deg,transparent,#ffffff80 8%,#ffffff80 92%,transparent);box-shadow:none}
.opps .strap{left:calc(50% - 1px);width:2px;height:1.8cqw;background:linear-gradient(#e0364a,#8e1f2d)}
.opps .strap:before{content:"";position:absolute;top:-.65cqw;left:50%;width:1.3cqw;height:1.3cqw;transform:translateX(-50%);border-radius:50%;background:#8e1f2d;border:2px solid #fff;box-shadow:0 0 1.2cqw #f0445288}
.hang-card{--img:none}
.hang-card:nth-child(2){--img:url("assets/generados/opp-practicas.webp")}
.hang-card:nth-child(3){--img:url("assets/generados/opp-servicio.webp")}
.hang-card:nth-child(4){--img:url("assets/generados/opp-bolsa.webp")}
.opps .face.front{background:linear-gradient(180deg,#10161b33 0%,#10161bcc 48%,#10161bf5 100%),var(--img) center/cover no-repeat,linear-gradient(150deg,#3b4248,#172027)}
.opps .face.back{background:linear-gradient(145deg,#731b28f2,#1d252bf2),var(--img) center/cover no-repeat}
.opps .face b{margin:auto 0 .35cqw}
.opps .face em{font-size:.78cqw;line-height:1.35}
.opps .face .more{font:600 .7cqw Inter,Arial,sans-serif;font-style:normal;color:#f19ca4;margin-top:.6cqw}

/* ===== v5 · Muro de maquinaria: títulos automáticos ===== */
.drift-wall__inner{transition-duration:.9s}
.drift-wall__tile.is-auto .drift-wall__inner{opacity:1;transform:translateZ(var(--dw-lift));box-shadow:0 24px 60px -18px #000000b3,0 0 0 2px #e0364a}
.drift-wall__tile.is-auto img{filter:saturate(1.08)}
.drift-wall__label{left:0;right:0;bottom:0;padding:28px 12px 10px 22px;background:linear-gradient(transparent,#0b1014eb);font-size:12px;transform:translateY(12px);transition:opacity .8s ease,transform .9s cubic-bezier(.22,1,.36,1)}
.drift-wall__label:before{content:"";position:absolute;left:12px;bottom:11px;width:3px;height:13px;background:#e0364a}
.drift-wall__tile.is-auto .drift-wall__label{opacity:1;transform:none}
.brands-slide .overlay{background:linear-gradient(110deg,#11171cf0 0%,#141b21d9 55%,#19232cb3 100%)!important}
.brands-slide .brand-mosaic{top:35%}

/* ===== v5 · Fondos generados: si el archivo existe en assets/generados se usa; si no, queda el fondo actual ===== */
.slide:nth-child(1) .background{background-image:url("assets/generados/fondo-01-portada.webp"),url("assets/fondos/01.webp")!important}
.slide:nth-child(2) .background{background-image:url("assets/generados/fondo-02-sedes.webp"),url("assets/fondos/02.webp")!important}
.slide:nth-child(3) .background{background-image:url("assets/generados/fondo-03-historia.webp"),url("assets/fondos/03.webp")!important}
.slide:nth-child(4) .background{background-image:url("assets/generados/fondo-04-servicios.webp"),url("assets/fondos/04.webp")!important}
.slide:nth-child(8) .background{background-image:url("assets/generados/fondo-08-marcas.webp"),url("assets/fondos/07.webp")!important}
.slide:nth-child(9) .background{background-image:url("assets/generados/fondo-09-parts.webp"),url("assets/fondos/08.webp")!important}
.diagrams-slide--wirtgen .background{background-image:url("assets/generados/fondo-10-talento.webp"),url("assets/fondos/09.webp")!important}


/* ===== v7 · Formas y cards como imagen (assets/generados/formas/) =====
   app.js comprueba si existe cada imagen y agrega la clase img-<nombre> al <html>.
   Con la clase, la forma de código se oculta y se usa la imagen; sin ella, todo queda como antes. */

/* Separadores (imágenes 16:9 a pantalla completa) */
.img-sep-panel-izquierdo .frame-panel-left .frame,
.img-sep-panel-derecho .frame-panel-right .frame,
.img-sep-esquina .frame-corner .frame,
.img-sep-esquinas .frame-corners .frame{background:var(--sep) center/100% 100% no-repeat}
.img-sep-panel-izquierdo .frame-panel-left .frame{--sep:url("assets/generados/formas/sep-panel-izquierdo.webp")}
.img-sep-panel-derecho .frame-panel-right .frame{--sep:url("assets/generados/formas/sep-panel-derecho.webp")}
.img-sep-esquina .frame-corner .frame{--sep:url("assets/generados/formas/sep-esquina.webp")}
.img-sep-esquinas .frame-corners .frame{--sep:url("assets/generados/formas/sep-esquinas.webp")}
.img-sep-panel-izquierdo .frame-panel-left .frame i:not(.f-grid),
.img-sep-panel-derecho .frame-panel-right .frame i:not(.f-grid),
.img-sep-esquina .frame-corner .frame i:not(.f-grid),
.img-sep-esquinas .frame-corners .frame i:not(.f-grid){display:none!important}

/* La plantilla exacta recorta la imagen: aunque el generador entregue fondo opaco, la forma queda precisa */
.img-sep-panel-izquierdo .frame-panel-left .frame{-webkit-mask:url("assets/generados/plantillas/sep-panel-izquierdo.webp") center/100% 100% no-repeat;mask:url("assets/generados/plantillas/sep-panel-izquierdo.webp") center/100% 100% no-repeat}
.img-sep-panel-derecho .frame-panel-right .frame{-webkit-mask:url("assets/generados/plantillas/sep-panel-derecho.webp") center/100% 100% no-repeat;mask:url("assets/generados/plantillas/sep-panel-derecho.webp") center/100% 100% no-repeat}
.img-sep-esquina .frame-corner .frame{-webkit-mask:url("assets/generados/plantillas/sep-esquina.webp") center/100% 100% no-repeat;mask:url("assets/generados/plantillas/sep-esquina.webp") center/100% 100% no-repeat}
.img-sep-esquinas .frame-corners .frame{-webkit-mask:url("assets/generados/plantillas/sep-esquinas.webp") center/100% 100% no-repeat;mask:url("assets/generados/plantillas/sep-esquinas.webp") center/100% 100% no-repeat}

/* Nodo rojo (línea de tiempo de la diapo 3 y riel de la diapo 10) */
.img-nodo .timeline .dot,.img-nodo .opps .strap:before{background:url("assets/generados/formas/nodo.webp") center/contain no-repeat;border:0;box-shadow:none}

/* ===== v8 · Texturas generadas (assets/generados/cards/) aplicadas a cards y separadores ===== */
.slide .service-grid .service{background:url("assets/generados/cards/card-servicio.webp") center/100% 100% no-repeat}
.slide .timeline .step{background:url("assets/generados/cards/card-linea-tiempo.webp") center/100% 100% no-repeat}
.locations-slide .branch-map{background:url("assets/generados/cards/card-mapa.webp") center/100% 100% no-repeat}
.locations-slide .location-list div{background:url("assets/generados/cards/card-sede.webp") center/100% 100% no-repeat}
.brands-slide .brand-card{background:url("assets/generados/cards/card-marca.webp") center/100% 100% no-repeat}
.brands-slide .brand-card.brand-card--hero{background:url("assets/generados/cards/card-marca-principal.webp") center/cover no-repeat}
.brands-slide .brand-card:after{display:none}
.parts-slide .parts-row{background:url("assets/generados/cards/card-cifra.webp") center/100% 100% no-repeat}
.parts-slide .parts-logo{background:url("assets/generados/cards/card-insignia.webp") center/100% 100% no-repeat;border-color:transparent}
.opps .face.front{background:linear-gradient(180deg,#10161bd9 0%,#10161b26 26%,#10161bb8 52%,#10161bf2 100%),var(--img) center/cover no-repeat,url("assets/generados/cards/card-oportunidad-frente.webp") center/cover no-repeat}
.opps .face.back{background:linear-gradient(145deg,#00000026,#0000004d),url("assets/generados/cards/card-oportunidad-reverso.webp") center/cover no-repeat}
.lanyard-wall .lny-face.lny-front{background:url("assets/generados/cards/gafete-frente.webp") center/100% 100% no-repeat}
.lanyard-wall .lny-face.lny-back{background:url("assets/generados/cards/gafete-reverso.webp") center/cover no-repeat}
/* Separadores: la forma sigue siendo de código (nítida); las texturas generadas le dan metal y brillo */
.frame .f-panel:before,.frame .f-band:before,.frame .f-wedge:before,.frame .f-line:before{content:"";position:absolute;inset:0;background:var(--tex) center/cover no-repeat;opacity:var(--tex-o,1)}
.frame .f-panel{--tex:url("assets/generados/cards/card-sede.webp");--tex-o:.55}
.frame .f-band,.frame .f-wedge,.frame .f-line{--tex:url("assets/generados/cards/card-marca-principal.webp")}
.frame-corner .f-band{--tex:url("assets/generados/cards/card-oportunidad-reverso.webp")}

/* Acabados hechos sobre las plantillas exactas de assets/generados/plantillas/. */
.img-card-servicio .slide .service-grid .service{background:url("assets/generados/formas/card-servicio.webp") center/100% 100% no-repeat;border-color:transparent}
.img-card-linea-tiempo .slide .timeline .step{background:url("assets/generados/formas/card-linea-tiempo.webp") center/100% 100% no-repeat;border-color:transparent}
.img-card-fila .parts-slide .parts-row{background:url("assets/generados/formas/card-fila.webp") center/cover no-repeat;border-color:transparent}
.img-card-insignia .parts-slide .parts-logo{background:url("assets/generados/formas/card-insignia.webp") center/cover no-repeat;border-color:transparent}
.img-card-mapa .locations-slide .branch-map{background:url("assets/generados/formas/card-mapa.webp") center/100% 100% no-repeat;border-color:transparent}
.img-card-sede .locations-slide .location-list div{background:url("assets/generados/formas/card-sede.webp") center/cover no-repeat;border-color:transparent}
.img-card-marca .brands-slide .brand-card:not(.brand-card--hero){background:url("assets/generados/formas/card-marca.webp") center/100% 100% no-repeat;border-color:transparent}
.img-card-marca .brands-slide .brand-card:not(.brand-card--hero):after,.img-card-marca-principal .brands-slide .brand-card--hero:after{display:none}
.img-card-marca-principal .brands-slide .brand-card.brand-card--hero{background:url("assets/generados/formas/card-marca-principal.webp") center/100% 100% no-repeat;border-color:transparent}
.img-card-oportunidad .opps .face.front{background:linear-gradient(180deg,#10161b00 0%,#10161b26 26%,#10161bb8 52%,#10161bf2 100%),var(--img) center/cover no-repeat,url("assets/generados/formas/card-oportunidad.webp") center/100% 100% no-repeat;border-color:transparent}
.img-card-oportunidad-reverso .opps .face.back{background:linear-gradient(145deg,#00000026,#0000004d),url("assets/generados/formas/card-oportunidad-reverso.webp") center/100% 100% no-repeat;border-color:transparent}

/* Diagramas del folleto y vista ampliada */
.diagrams-slide .overlay{background:linear-gradient(110deg,#172129f7,#1c2931ef)}
.diagrams-heading{position:absolute;left:6.2%;top:15%}
.diagrams-heading h2{font-size:2.65cqw}
.diagrams-heading p{font-size:.9cqw;margin-top:.6cqw;color:#c9d0d3}
.diagram-grid{position:absolute;left:6.2%;right:6.2%;top:31%;bottom:13%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.1cqw}
.diagram-tile{min-width:0;display:flex;flex-direction:column;padding:0;border:1px solid #ffffff42;border-radius:.45cqw;overflow:hidden;background:#26343c;color:#fff;cursor:zoom-in;text-align:left}
.diagram-tile:hover,.diagram-tile:focus-visible{border-color:#f58a95;outline:2px solid #f58a95;outline-offset:2px}
.diagram-tile img{width:100%;height:calc(100% - 3.6cqw);min-height:0;object-fit:contain;background:#f7f7f7}
.diagram-tile span{display:flex;align-items:center;min-height:3.6cqw;padding:.55cqw .7cqw;font:600 .78cqw/1.25 Inter,Arial,sans-serif}
.diagram-source{position:absolute;left:6.2%;bottom:8%;font-size:.7cqw;color:#e9bdc2;text-decoration:none}
.diagram-source:hover{text-decoration:underline}
.image-viewer{position:fixed;inset:0;margin:auto;width:min(94vw,1500px);height:min(94vh,900px);max-width:none;max-height:none;padding:2.5rem;border:1px solid #ffffff38;border-radius:12px;background:#101820;color:white;overflow:hidden;cursor:default}
.image-viewer::backdrop{background:#000d}
.image-viewer figure{height:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.image-viewer img{display:block;max-width:100%;max-height:calc(100% - 2rem);object-fit:contain}
.image-viewer figcaption{font:600 16px/1.3 Inter,Arial,sans-serif;text-align:center}
.image-viewer__close{position:absolute;top:.5rem;right:.75rem;z-index:1;width:2.4rem;height:2.4rem;border:1px solid #ffffff80;border-radius:50%;background:#17232dee;color:white;font:28px/1 Arial,sans-serif;cursor:pointer}
.image-viewer__close:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media(max-width:700px){.image-viewer{padding:2.8rem 1rem 1rem}.image-viewer figcaption{font-size:14px}}


/* Mosaico de diagramas sin rótulos */
.diagrams-slide .topline{display:none}
.diagram-grid{top:5%;bottom:8%;left:6.2%;right:6.2%;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:.7cqw}
.diagram-tile{display:block;padding:.35cqw;background:#f4f4f4;border:1px solid #ffffff55;cursor:zoom-in}
.diagram-tile:nth-child(1),.diagram-tile:nth-child(6){grid-column:span 2}
.diagram-tile img{display:block;width:100%;height:100%;object-fit:contain;background:#f4f4f4}
.diagram-source{bottom:3.8%;font-size:.65cqw}

/* Diapositivas intermedias: presentación de cada máquina antes de sus diagramas */
.machine-intro .background,.machine-intro .geometry,.machine-intro .component-art,.machine-intro .grain-layer{display:none}
.machine-intro .overlay{background:#0b1014}
.machine-intro .protagonist{overflow:hidden}
.machine-intro__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 55%}
.machine-intro--protac .machine-intro__photo{object-position:62% 50%}
.machine-intro .protagonist:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b1014f5 0%,#0b1014e6 30%,#0b101480 50%,#0b101400 70%),linear-gradient(0deg,#0b1014b3 0%,#0b101400 30%)}
.machine-intro .topline{position:relative;z-index:2}
.machine-intro__copy{position:absolute;left:6.2%;top:18%;width:36%;z-index:2}
.machine-intro__kicker{display:inline-block;margin-bottom:1.2cqw;padding:.45cqw .8cqw;border-left:.25cqw solid #e0364a;background:#ffffff14;font:700 .8cqw Montserrat,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.machine-intro__copy p{margin-top:1.3cqw;max-width:31cqw;font-size:1.05cqw;line-height:1.5;color:#d6dde1}
.machine-specs{display:grid;gap:.7cqw;margin-top:2cqw;max-width:31cqw}
.machine-spec{display:grid;grid-template-columns:11cqw 1fr;align-items:center;gap:1cqw;padding:.75cqw 1cqw;border:1px solid #ffffff26;border-radius:.4cqw;background:#0b1014b3;backdrop-filter:blur(6px)}
.machine-spec strong{font:800 1.05cqw Montserrat,Arial,sans-serif;color:#ed3548;letter-spacing:.02em}
.machine-spec span{font-size:.82cqw;line-height:1.35;color:#e7ecef}
.machine-intro__next{display:inline-block;margin-top:2cqw;font:700 .8cqw Montserrat,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#ffffffb3}
/* Las imágenes de protac-spraypaver.com traen rótulos blancos: se muestran sobre fondo oscuro */
.diagrams-slide--protac .diagram-tile,.diagrams-slide--protac .diagram-tile img{background:#1d2830}
.diagrams-slide--protac .diagram-tile{border-color:#ffffff40}
/* Presentación de equipo simplificada: título y cifras clave */
.machine-intro__copy{top:24%}
.machine-specs{max-width:22cqw;margin-top:2.4cqw}
.machine-spec{grid-template-columns:1fr;padding:1cqw 1.3cqw;border-left:.25cqw solid #e0364a}
.machine-spec strong{font-size:1.35cqw}
.machine-intro--wirtgen .machine-intro__photo{object-position:center}
/* PROTAC: la máquina se recorre a la derecha y el fondo negro del estudio se funde con la diapositiva */
.machine-intro--protac .protagonist{background:#050608}
.machine-intro--protac .machine-intro__photo{left:auto;right:-6%;width:86%;object-position:center;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,transparent 0,#000 22%)}
.machine-intro--protac .protagonist:after{background:linear-gradient(90deg,#050608f2 0%,#050608b3 30%,#05060800 48%),linear-gradient(0deg,#050608b3 0%,#05060800 25%)}
.machine-intro .topline span{text-shadow:0 1px 8px #000,0 0 2px #000}
.diagrams-slide--protac .diagram-tile--light,.diagrams-slide--protac .diagram-tile--light img{background:#f4f4f4}
