/* Pretiles · Hidrodem */
:root{
  --ink:#0a1622; --ink2:#10202f; --steel:#6189a0; --cyan:#13afdf; --teal:#5cb6c0; --sand:#e9e4da; --orange:#ff8a3d;
  --light:#f3f6f8; --line:#d9e2e8; --lineD:rgba(255,255,255,.12); --txt:#22313d; --mut:#5c6d7a;
  --save:#1f9d55; --cancel:#d33b3b;
  --pad:clamp(16px,4vw,48px); --max:1240px;
  --f-h:'Barlow Condensed',system-ui,sans-serif; --f-t:'Barlow',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:#d6e2ea;font:17px/1.6 var(--f-t);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
[hidden]{display:none!important}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
h1,h2,h3{font-family:var(--f-h);font-weight:800;margin:0;line-height:.98;letter-spacing:-.005em;text-transform:uppercase;color:#fff}
h2{font-size:clamp(36px,5vw,64px)}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--max);margin:auto;padding:0 var(--pad)}
.kicker{font:700 14px/1 var(--f-t);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);margin-bottom:16px}
.lead{font-size:19px;color:#b8c8d3;max-width:60ch}
[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
[data-reveal].in{opacity:1;transform:none}

/* ---------- Cabecera ---------- */
.top{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s;background:linear-gradient(180deg,rgba(6,16,26,.78),rgba(6,16,26,0))}
.top.is-solid{background:rgba(10,22,34,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.top__in{max-width:var(--max);margin:auto;padding:14px var(--pad);display:flex;align-items:center;gap:24px}
.top__logo img{height:34px;width:auto}
.top__nav{display:flex;gap:4px;margin-left:auto}
.top__nav a{text-decoration:none;font:600 15px var(--f-t);color:#b8c8d3;padding:8px 12px;border-radius:8px}
.top__nav a:hover,.top__nav a.is-on{color:#fff;background:rgba(255,255,255,.08)}
.top__cta{text-decoration:none;font:700 15px var(--f-t);background:var(--cyan);color:#fff;padding:10px 18px;border-radius:10px;box-shadow:0 10px 26px -12px var(--cyan)}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:12px;font:700 17px var(--f-t);text-decoration:none;border:2px solid transparent;transition:transform .15s,box-shadow .2s,background .2s}
.btn:active{transform:scale(.97)}
.btn--pri{background:var(--cyan);color:#fff;box-shadow:0 14px 34px -14px var(--cyan)}
.btn--pri:hover{background:#0f9cc8}
.btn--ghost{border-color:rgba(255,255,255,.4);color:#fff}
.btn--ghost:hover{border-color:#fff}

/* ---------- Historia 3D ---------- */
.story{position:relative}
.stage{position:sticky;top:0;height:100svh;width:100%;overflow:hidden;background:linear-gradient(180deg,#8fb8cf 0%,#cfdfe6 55%,#e6e2d6 100%)}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block}
.stage__fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage__shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(6,16,26,.82) 0%,rgba(6,16,26,.55) 34%,rgba(6,16,26,0) 60%),linear-gradient(0deg,rgba(6,16,26,.35),transparent 30%)}
.loader{position:absolute;right:24px;bottom:24px;display:flex;align-items:center;gap:10px;font-size:14px;color:#fff;background:rgba(6,16,26,.6);padding:10px 14px;border-radius:10px;transition:opacity .5s}
.loader span{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin .8s linear infinite}
.loader.done{opacity:0;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.labels{position:absolute;inset:0;pointer-events:none}
.lbl{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px;white-space:nowrap;font:700 14px var(--f-t);color:#fff;background:rgba(6,16,26,.85);border:1px solid rgba(255,255,255,.2);padding:6px 10px 6px 8px;border-radius:999px;opacity:0;transition:opacity .3s;will-change:transform}
.lbl i{width:10px;height:10px;border-radius:50%;background:var(--c,#ff8a3d);box-shadow:0 0 0 4px color-mix(in srgb,var(--c,#ff8a3d) 35%,transparent)}
.rail{position:absolute;right:clamp(14px,3vw,36px);top:50%;translate:0 -50%;display:flex;flex-direction:column;gap:10px;z-index:3}
.rail button{display:flex;align-items:center;justify-content:flex-end;gap:10px;border:0;background:none;padding:4px 0;color:#fff}
.rail b{font:700 13px var(--f-t);opacity:0;transform:translateX(6px);transition:opacity .25s,transform .25s;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.rail i{width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:rgba(6,16,26,.4);transition:background .3s,transform .3s}
.rail button:hover b,.rail button.is-on b{opacity:1;transform:none}
.rail button.is-on i{background:var(--cyan);border-color:var(--cyan);transform:scale(1.35)}
.play{position:absolute;right:clamp(16px,3vw,36px);bottom:26px;z-index:3;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.35);background:rgba(6,16,26,.55);backdrop-filter:blur(6px);color:#fff;padding:10px 16px 10px 12px;border-radius:999px;font:700 14px var(--f-t)}
.play:hover{border-color:#fff}
.play svg{width:18px;height:18px;fill:#fff}

.steps{position:relative;z-index:2;margin-top:-100svh;pointer-events:none}
.step{min-height:100svh;display:flex;flex-direction:column;justify-content:center;max-width:var(--max);margin:auto;padding:110px var(--pad) 80px;pointer-events:none}
.step>*{max-width:520px;pointer-events:auto}
.step h1{font-size:clamp(44px,5.8vw,84px);margin:6px 0 22px;max-width:12ch;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.step h1 span{color:var(--cyan)}
.step h2{font-size:clamp(36px,4.6vw,60px);margin-bottom:18px;text-shadow:0 2px 20px rgba(0,0,0,.4)}
.step p{color:#dbe6ed;font-size:18px;text-shadow:0 1px 10px rgba(0,0,0,.45)}
.step .lead{font-size:20px;color:#e3edf3}
.step__n{font:800 16px var(--f-h)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)!important;margin-bottom:12px}
.step:not(.step--hero)>*{background:none}
.step:not(.step--hero){align-items:flex-start}
.step:not(.step--hero) .card{background:rgba(6,16,26,.72)}
.ticks{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px}
.ticks li{position:relative;padding:8px 14px 8px 44px;background:rgba(6,16,26,.6);border:1px solid var(--lineD);border-radius:12px;font-weight:600;color:#fff;backdrop-filter:blur(4px)}
.ticks li::before{content:"";position:absolute;left:14px;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,138,61,.3)}
.note{display:flex;gap:12px;background:rgba(255,138,61,.14);border:1px solid rgba(255,138,61,.45);border-radius:14px;padding:14px 16px;color:#ffe2cf!important;backdrop-filter:blur(4px)}
.note svg{color:var(--orange);width:24px;height:24px;margin-top:2px}
.big{font-size:22px!important;line-height:1.4;background:rgba(6,16,26,.6);border-left:4px solid var(--cyan);padding:16px 18px;border-radius:0 14px 14px 0}
.big b{color:#fff}
.wins{list-style:none;padding:0;margin:4px 0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.wins li{background:rgba(6,16,26,.65);border:1px solid var(--lineD);border-radius:14px;padding:14px;font-size:15px;color:#cfdce5;backdrop-filter:blur(4px)}
.wins b{display:block;font:800 28px/1 var(--f-h);color:var(--cyan);text-transform:uppercase;margin-bottom:4px}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.hint{display:flex;align-items:center;gap:12px;font-size:15px;color:#cfdce5!important;margin-top:40px}
.mouse{width:22px;height:34px;border:2px solid rgba(255,255,255,.7);border-radius:12px;position:relative}
.mouse::after{content:"";position:absolute;left:50%;top:6px;width:4px;height:7px;margin-left:-2px;border-radius:2px;background:#fff;animation:wheel 1.6s infinite}
@keyframes wheel{to{transform:translateY(12px);opacity:0}}

/* ---------- Secciones ---------- */
.sec{padding:clamp(80px,10vw,140px) 0;position:relative;overflow:hidden}
.sec--light{background:var(--light);color:var(--txt)}
.sec--light h2,.sec--light h3{color:var(--ink)}
.sec--light .lead{color:var(--mut)}
.head{margin-bottom:44px;max-width:860px}
.head h2,.info h2,.about h2,.contact h2{margin-bottom:18px}

/* Comparativa */
.vs{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 30px 60px -40px rgba(10,22,34,.4)}
.vs__head,.vs__row{display:grid;grid-template-columns:1fr 1.4fr 1.4fr}
.vs__head b{padding:20px 22px;font:800 20px/1.1 var(--f-h);text-transform:uppercase;color:var(--mut)}
.vs__head .vs__us{background:var(--ink);color:#fff;position:relative}
.vs__head .vs__us::after{content:"Hidrodem";position:absolute;right:16px;top:-1px;font:700 11px var(--f-t);letter-spacing:.1em;background:var(--cyan);color:#fff;padding:4px 8px;border-radius:0 0 8px 8px}
.vs__row{border-top:1px solid var(--line)}
.vs__row>span{padding:18px 22px;font:700 16px var(--f-t);color:var(--ink);background:#f8fafb}
.vs__row p{margin:0;padding:18px 22px;display:flex;gap:10px;font-size:16px;color:var(--mut)}
.vs__row p:last-child{background:#eef8fb;color:var(--ink);font-weight:600}
.vs__row svg{width:22px;height:22px;margin-top:1px}
.vs__row .no{color:#c0392b}
.vs__row .ok{color:var(--save)}
.vs__row{opacity:0;transform:translateX(-16px);transition:opacity .5s,transform .5s}
.vs.in .vs__row{opacity:1;transform:none}
.vs.in .vs__row:nth-child(3){transition-delay:.08s}.vs.in .vs__row:nth-child(4){transition-delay:.16s}.vs.in .vs__row:nth-child(5){transition-delay:.24s}.vs.in .vs__row:nth-child(6){transition-delay:.32s}.vs.in .vs__row:nth-child(7){transition-delay:.4s}

/* Galería */
.gal{overflow:hidden;cursor:grab;padding:10px 0 30px;touch-action:pan-y}
.gal.drag{cursor:grabbing}
.gal__track{display:flex;gap:24px;padding:0 max(var(--pad),calc((100vw - var(--max))/2 + var(--pad)));transition:transform .7s cubic-bezier(.2,.8,.2,1);will-change:transform}
.gal.drag .gal__track{transition:none}
.slide{flex:0 0 min(720px,82vw);margin:0;perspective:1000px}
.slide__in{position:relative;border-radius:22px;overflow:hidden;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .5s,opacity .5s;transform:rotateY(14deg) scale(.88);filter:brightness(.55) saturate(.7);opacity:.85}
.slide.is-on .slide__in{transform:none;filter:none;opacity:1}
.slide img{width:100%;aspect-ratio:16/10;object-fit:cover;user-select:none;-webkit-user-drag:none;pointer-events:none}
.slide figcaption{position:absolute;inset:auto 0 0;padding:60px 24px 20px;background:linear-gradient(transparent,rgba(6,16,26,.88));color:#fff;font-size:17px;font-weight:600;transform:translateY(20px);opacity:0;transition:transform .5s .15s,opacity .5s .15s}
.slide.is-on figcaption{transform:none;opacity:1}
.slide figcaption b{display:block;font:800 26px/1 var(--f-h);text-transform:uppercase;color:var(--cyan);margin-bottom:6px}
.gal__ctrl{display:flex;align-items:center;justify-content:center;gap:18px}
.round{width:52px;height:52px;border-radius:50%;border:1px solid var(--lineD);background:rgba(255,255,255,.05);display:grid;place-items:center;color:#fff}
.round:hover{background:var(--cyan);border-color:var(--cyan)}
.gal__dots{display:flex;gap:8px}
.gal__dots button{width:10px;height:10px;border-radius:5px;border:0;background:rgba(255,255,255,.3);padding:0;transition:width .3s,background .3s}
.gal__dots button.is-on{width:32px;background:var(--cyan)}

/* Infografía */
.info__in{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
.info__img{perspective:1200px}
.info__img img{border-radius:22px;box-shadow:0 40px 80px -40px rgba(10,22,34,.55);transition:transform .25s ease-out;background:#fff}

/* Empresa */
.about{background:var(--ink)}
.about__bg{position:absolute;inset:0;opacity:.18}
.about__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4)}
.about__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 20%,transparent)}
.about__in{position:relative;display:grid;gap:40px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--lineD);border:1px solid var(--lineD);border-radius:22px;overflow:hidden}
.stats div{background:rgba(10,22,34,.85);padding:26px 24px;backdrop-filter:blur(6px)}
.stats b{display:block;font:800 clamp(48px,6vw,76px)/1 var(--f-h);color:#fff;font-variant-numeric:tabular-nums}
.stats b i{font-style:normal}
.stats span{color:#9fb3c1;font-size:16px}
.more{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.more a{display:grid;grid-template-columns:1fr auto;gap:2px 10px;text-decoration:none;padding:18px 20px;border:1px solid var(--lineD);border-radius:16px;background:rgba(255,255,255,.04);transition:border-color .2s,transform .2s}
.more a:hover{border-color:var(--cyan);transform:translateY(-3px)}
.more b{font:800 22px var(--f-h);text-transform:uppercase;color:#fff}
.more span{grid-column:1;color:#9fb3c1;font-size:15px}
.more svg{grid-row:1/3;grid-column:2;align-self:center;color:var(--cyan)}

/* Contacto */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,5vw,70px);align-items:start}
.c-rows{display:grid;gap:10px;margin-top:26px}
.c-rows a{display:flex;align-items:center;gap:14px;text-decoration:none;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--ink);transition:border-color .2s}
.c-rows a:hover{border-color:var(--cyan)}
.c-rows svg{width:42px;height:42px;padding:10px;border-radius:12px;background:#e3f5fb;color:var(--cyan)}
.c-rows small{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.c-rows b{font-size:17px}
.form{background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(20px,3vw,32px);display:grid;gap:14px;box-shadow:0 30px 60px -45px rgba(10,22,34,.45)}
.form label{display:grid;gap:6px;font:700 14px var(--f-t);color:var(--mut);min-width:0}
.form input,.form textarea{width:100%;min-width:0;border:1.5px solid var(--line);border-radius:10px;padding:13px 14px;font:inherit;font-size:16px;color:var(--ink);background:#fbfcfd;resize:vertical}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--cyan);background:#fff}
.form .bad{border-color:var(--cancel)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form__actions{display:flex;gap:12px;margin-top:4px}
.btn-save,.btn-cancel{min-height:52px;padding:0 24px;border-radius:12px;border:0;font:700 17px var(--f-t);color:#fff}
.btn-save{background:var(--save);flex:1}
.btn-save:hover{background:#188a49}
.btn-cancel{background:var(--cancel)}
.btn-cancel:hover{background:#b92c2c}
.form__note{font-size:13.5px;color:var(--mut);margin:0}

.foot{background:#060e17;padding:40px 0}
.foot__in{display:flex;flex-wrap:wrap;align-items:center;gap:20px 40px}
.foot__in img{height:30px;width:auto}
.foot__in p{margin:0;color:#8aa0af;font-size:15px}
.foot nav{margin-left:auto;display:flex;gap:18px}
.foot nav a{color:#b8c8d3;font-size:15px;text-decoration:none}
.foot nav a:hover{color:#fff}
.toast{position:fixed;left:50%;bottom:24px;translate:-50% 20px;z-index:200;background:#fff;color:var(--ink);padding:12px 20px;border-radius:12px;font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .25s,translate .25s;white-space:nowrap}
.toast.is-on{opacity:1;translate:-50% 0}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .top__nav{display:none}
  .top__cta{margin-left:auto}
  .vs__head,.vs__row{grid-template-columns:1fr 1fr}
  .vs__head span{display:none}
  .vs__row>span{grid-column:1/-1;padding:14px 16px 6px;background:none}
  .vs__row p{padding:8px 14px 16px;font-size:15px}
  .vs__head b{padding:16px 14px;font-size:17px}
  .info__in,.contact{grid-template-columns:1fr}
  .stats,.more{grid-template-columns:1fr}
  .stats div{display:flex;align-items:baseline;gap:16px}
}
@media (max-width:720px){
  .stage__shade{background:linear-gradient(0deg,rgba(6,16,26,.94) 0%,rgba(6,16,26,.78) 45%,rgba(6,16,26,.3) 75%,rgba(6,16,26,.45) 100%)}
  .step{justify-content:flex-end;padding:90px var(--pad) 90px}
  .step--hero{justify-content:flex-end}
  .step h1{font-size:clamp(42px,12vw,60px)}
  .step h2{font-size:clamp(32px,9vw,44px)}
  .step p{font-size:16.5px}
  .step .lead{font-size:17px}
  .ticks li{padding:8px 12px 8px 40px;font-size:15px}
  .wins{grid-template-columns:1fr 1fr 1fr;gap:6px}
  .wins li{padding:10px 8px;font-size:13px}
  .wins b{font-size:22px}
  .rail{top:auto;bottom:auto;top:84px;translate:0;right:12px;gap:6px}
  .rail b{display:none}
  .play{bottom:auto;top:78px;right:42px;padding:8px 12px 8px 10px;font-size:13px}
  .hint{display:none}
  .f2{grid-template-columns:1fr}
  .foot nav{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  [data-reveal]{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
