/* ============================================================
   HidroSegre — "Las compuertas"
   Un solo fondo continuo, de arriba abajo. El ritmo lo marcan
   las compuertas de acero que se abren al bajar y el agua que
   limpia lo que hay detrás. Ni un bloque de color plano.
   ============================================================ */

@property --w{syntax:"<percentage>";inherits:true;initial-value:0%}

/* ---------- 1. tokens ---------- */
:root{
  /* el suelo: una sola tinta */
  --bg:#04090c;
  --bg-2:#0a141a;

  /* la luz */
  --foam:#f2f8fb;
  --mist:#a7c0cb;
  --mist-2:#718995;

  /* el agua */
  --hydro:#5cb9e0;
  --hydro-2:#8fd4ef;
  --hydro-deep:#1d6d92;

  /* el acero de las compuertas */
  --steel-1:#33596b;
  --steel-2:#101f28;

  --tide:rgba(122,190,220,.15);
  --tide-2:rgba(122,190,220,.32);
  --rule:1px solid var(--tide);

  --wrap:clamp(1rem,4.4vw,5.5rem);
  --maxw:96rem;

  --f:"Archivo","Archivo Fallback",system-ui,-apple-system,sans-serif;
  --exp:'wdth' 118;

  --e-out:cubic-bezier(.16,1,.3,1);
  --dirt:0;
}

@font-face{
  font-family:"Archivo Fallback";
  src:local("Arial Narrow"),local("Helvetica Neue"),local("Arial");
  size-adjust:96%;ascent-override:92%;descent-override:24%;line-gap-override:0%;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{
  margin:0;background:var(--bg);color:var(--foam);
  font-family:var(--f);
  font-size:clamp(1rem,.94rem + .28vw,1.115rem);
  line-height:1.62;font-variation-settings:'wdth' 100,'wght' 400;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}

/* materia: charcos de luz fijos y un grano finísimo sobre todo */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(120% 70% at 78% -10%,rgba(92,185,224,.07),transparent 60%),
    radial-gradient(90% 60% at 4% 108%,rgba(29,109,146,.12),transparent 62%);
}
body::after{
  content:"";position:fixed;inset:0;z-index:140;pointer-events:none;opacity:.2;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}

img,video,canvas,svg{display:block;max-width:100%}
img,video{height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
::selection{background:var(--hydro);color:#062029}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--wrap);position:relative;z-index:1}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--foam);color:#06131a;padding:.75rem 1.25rem}
.skip:focus{left:0}
:where(a,button,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--hydro);outline-offset:3px}

/* ---------- 2. tipografía ---------- */
.h2,.h3,.hero__h1,.phead__h1,.band__t,.welfare__t,.closer__t,.svc__t,.rail__body h3{
  font-variation-settings:'wdth' 124,'wght' 780;
  letter-spacing:-.05em;line-height:.9;text-wrap:balance;color:var(--foam);
}
.hero__h1,.phead__h1{font-size:clamp(2.2rem,6.2vw,5.3rem);text-transform:uppercase}
.h2,.band__t,.welfare__t,.closer__t{font-size:clamp(1.8rem,4vw,3.4rem)}
.svc__t{font-size:clamp(1.7rem,3.3vw,2.8rem);text-transform:uppercase}
.h3{font-size:clamp(1.28rem,2vw,1.8rem);line-height:1.05}
.prose{max-width:66ch;color:var(--mist)}
.prose + .prose{margin-top:1.15em}
.ln{display:block;overflow:hidden}
.ln > span{display:block;will-change:transform}

.kicker{
  display:flex;align-items:baseline;gap:.9rem;
  font-size:clamp(1.02rem,1.5vw,1.3rem);
  font-variation-settings:'wdth' 100,'wght' 480;
  color:var(--hydro);letter-spacing:-.01em;margin-bottom:clamp(.9rem,1.6vw,1.5rem);
}
.kicker__rule{flex:0 0 clamp(3.4rem,7vw,7rem);height:8px;overflow:visible}
.kicker__rule path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;opacity:.75}

/* ---------- 3. la compuerta ---------- */
.gate{position:relative;overflow:hidden;isolation:isolate}
.gate__leaves{position:absolute;inset:0;z-index:6;pointer-events:none;display:flex}
.gate__leaf{
  position:relative;flex:1 1 0;min-width:0;height:100%;will-change:transform;
  background:
    linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,0) 18%),
    linear-gradient(115deg,transparent 34%,rgba(255,255,255,.09) 47%,transparent 58%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 9px),
    linear-gradient(155deg,var(--steel-1),var(--steel-2) 78%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),
             inset 0 1px 0 0 rgba(255,255,255,.22),
             0 0 50px rgba(0,0,0,.55);
}
/* los remaches */
.gate__leaf::before{
  content:"";position:absolute;inset:12px;pointer-events:none;opacity:.75;
  background-image:radial-gradient(circle,rgba(255,255,255,.22) 1.3px,transparent 1.6px);
  background-size:28px 28px;background-position:8px 8px;
}
/* el filo mojado */
.gate__leaf::after{
  content:"";position:absolute;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,transparent,var(--hydro-2),transparent);opacity:.9;
}
.gate--split .gate__leaf:first-child::after{right:0}
.gate--split .gate__leaf:last-child::after{left:0}
.gate--slats .gate__leaf::after{right:0;width:1px;
  background:linear-gradient(180deg,transparent,rgba(143,212,239,.5),transparent)}
.gate--slats .gate__leaf:last-child::after{display:none}

/* ---------- 4. el sistema de lavado ---------- */
.wash-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}
[data-wash]{position:relative}
[data-wash] > *:not(.wash-canvas):not([class*="__media"]):not(.gate__leaves){position:relative}
.wash-dirty{
  filter:sepia(calc(var(--dirt)*.6)) saturate(calc(1 - var(--dirt)*.6))
         contrast(calc(1 - var(--dirt)*.1)) brightness(calc(1 - var(--dirt)*.14));
}
.washing{will-change:filter}

/* ---------- 4b. el marco de cine ---------- */
.frame{position:fixed;inset:0;z-index:145;pointer-events:none}
.frame i{position:absolute;left:0;right:0;height:var(--bar,34px);background:#000;
  box-shadow:0 0 30px rgba(0,0,0,.9);will-change:height}
.frame i:first-child{top:0}
.frame i:last-child{bottom:0}
.frame i::after{content:"";position:absolute;left:0;right:0;height:1px;background:rgba(122,190,220,.22)}
.frame i:first-child::after{bottom:0}
.frame i:last-child::after{top:0}
/* viñeta de objetivo: sobre el contenido, nunca sobre los controles */
.vig{position:fixed;inset:0;z-index:95;pointer-events:none;
  background:radial-gradient(130% 95% at 50% 45%,transparent 42%,rgba(0,0,0,.5) 100%)}
body{padding-block:var(--bar,34px)}
.hdr{top:var(--bar,34px)}
.wapp{bottom:calc(var(--bar,34px) + clamp(.9rem,2vw,1.6rem))}
.tide{top:var(--bar,34px)}

/* ---------- 5. capas fijas ---------- */
.jet{position:fixed;inset:0;z-index:120;pointer-events:none}
.jet canvas{width:100%;height:100%}

.cur{position:fixed;inset:0;z-index:135;pointer-events:none;opacity:0}
.cur i{position:absolute;top:0;left:0;display:block;border-radius:50%;will-change:transform}
.cur__ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(143,212,239,.5);
  background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.26),rgba(92,185,224,.08) 60%,transparent 70%)}
.cur__dot{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:var(--hydro-2)}
html.has-cur,html.has-cur *{cursor:none!important}
html.has-cur :where(input,textarea,select){cursor:text!important}

.tide{position:fixed;top:0;left:0;right:0;height:2px;z-index:101;pointer-events:none}
.tide i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--hydro-deep),var(--hydro) 55%,var(--hydro-2));will-change:transform}

.curtain{position:fixed;inset:0;z-index:190;pointer-events:none;opacity:0}
.curtain span{position:absolute;inset:0;display:block;transform:scaleY(0);transform-origin:bottom;
  background:linear-gradient(180deg,rgba(29,109,146,0),var(--hydro-deep) 22%,#06232f)}

/* ---------- 6. cabecera ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:100;
  transition:background .5s var(--e-out),box-shadow .5s var(--e-out),transform .5s var(--e-out)}
.hdr::before{content:"";position:absolute;inset:0 0 auto;height:190%;pointer-events:none;
  transition:opacity .5s var(--e-out);
  background:linear-gradient(180deg,rgba(5,14,19,.75),rgba(5,14,19,0))}
.hdr.is-solid{background:rgba(10,23,30,.86);backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 1px 0 0 var(--tide)}
.hdr.is-solid::before{opacity:0}
.hdr.is-up{transform:translate3d(0,-102%,0)}
.hdr__in{position:relative;max-width:var(--maxw);margin-inline:auto;
  padding:clamp(.75rem,1.5vw,1.15rem) var(--wrap);display:flex;align-items:center;gap:clamp(1rem,3vw,3rem)}
.hdr__logo{flex:0 0 auto;line-height:0;position:relative;display:block;width:clamp(9.5rem,12.5vw,12.5rem)}
.hdr__logo img{width:100%;height:auto}
.hdr__logo-ink{display:none}
.hdr__nav{margin-inline-start:auto}
.hdr__nav ul{display:flex;gap:clamp(1rem,2.4vw,2.4rem)}
.hdr__nav a{position:relative;text-decoration:none;font-size:.97rem;color:var(--mist);
  font-variation-settings:'wdth' 96,'wght' 500;padding-block:.35rem;display:block;transition:color .4s}
.hdr__nav a span{position:relative;display:block;overflow:hidden}
.hdr__nav a span::after{content:attr(data-txt);position:absolute;inset:0;color:var(--foam);
  clip-path:inset(0 100% 0 0);transition:clip-path .5s var(--e-out)}
.hdr__nav a:hover span::after,.hdr__nav a:focus-visible span::after{clip-path:inset(0 0 0 0)}
.hdr__nav a[aria-current="page"]{color:var(--hydro-2)}
.hdr__nav a[aria-current="page"]::before{
  content:"";position:absolute;left:50%;bottom:-.45rem;width:8px;height:10px;margin-left:-4px;
  background:currentColor;clip-path:path("M4 0C4 0 8 5.1 8 7.3A4 4 0 0 1 0 7.3C0 5.1 4 0 4 0Z");
}
.hdr__cta{flex:0 0 auto}

.burger{display:none;width:2.75rem;height:2.75rem;position:relative;margin-inline-start:auto}
.burger i{position:absolute;left:.5rem;right:.5rem;height:2px;background:var(--foam);
  transition:transform .45s var(--e-out)}
.burger i:nth-child(1){top:1.05rem}
.burger i:nth-child(2){bottom:1.05rem}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(.28rem) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){transform:translateY(-.28rem) rotate(-45deg)}

.mnav{position:fixed;inset:0;z-index:99;background:var(--bg-2);color:var(--foam);
  display:flex;flex-direction:column;justify-content:center;gap:2rem;
  padding:6rem var(--wrap) 3rem;visibility:hidden;will-change:transform}
.mnav.is-open{visibility:visible}
.mnav__grime{position:absolute;inset:0;opacity:.4;pointer-events:none}
.mnav__list{display:flex;flex-direction:column;gap:.2rem;position:relative}
.mnav__list a{text-decoration:none;font-size:clamp(2rem,10vw,3.4rem);
  font-variation-settings:var(--exp),'wght' 720;letter-spacing:-.045em;text-transform:uppercase;
  padding-block:.35rem;border-bottom:var(--rule);opacity:0;transform:translateY(45%)}
.mnav__list a[aria-current="page"]{color:var(--hydro-2)}
.mnav__foot{position:relative;display:flex;flex-direction:column;gap:.35rem;color:var(--mist-2);opacity:0}
.mnav__foot a{text-decoration:none}

/* ---------- 7. botones y enlaces ---------- */
.btn{
  --bg-b:var(--foam);--fg:#06171f;
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  padding:.92em 1.55em;text-decoration:none;overflow:hidden;isolation:isolate;
  font-size:.95rem;font-variation-settings:'wdth' 104,'wght' 620;text-transform:uppercase;
  background:var(--bg-b);color:var(--fg);
  transition:transform .5s var(--e-out),box-shadow .5s var(--e-out),color .4s;
}
.btn span{position:relative;z-index:2}
.btn::before{content:"";position:absolute;inset:0;z-index:1;background:var(--hydro);
  clip-path:polygon(-30% 0,-8% 0,-18% 100%,-40% 100%);transition:clip-path .6s var(--e-out)}
.btn:hover,.btn:focus-visible{transform:translateY(-2px);box-shadow:0 18px 34px -22px rgba(0,0,0,.9)}
.btn:hover::before,.btn:focus-visible::before{clip-path:polygon(-30% 0,130% 0,130% 100%,-40% 100%)}
.btn:active{transform:translateY(0)}
.btn--ghost{--bg-b:rgba(6,17,23,.5);--fg:var(--foam);backdrop-filter:blur(6px);box-shadow:inset 0 0 0 1px rgba(242,248,251,.4)}
.btn--ghost:hover,.btn--ghost:focus-visible{--fg:#06171f}
.btn--foam{--bg-b:var(--hydro);--fg:#06171f}
.btn--foam::before{background:var(--foam)}

.lnk{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--hydro-2);
  font-variation-settings:'wdth' 98,'wght' 520;font-size:.96rem}
.lnk svg{width:2.1rem;height:.65rem;overflow:visible}
.lnk svg path{fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .5s var(--e-out)}
.lnk:hover svg path,.lnk:focus-visible svg path{transform:translateX(.35rem)}
.lnk span{background-image:linear-gradient(currentColor,currentColor);background-size:0% 1px;
  background-repeat:no-repeat;background-position:0 100%;transition:background-size .5s var(--e-out)}
.lnk:hover span,.lnk:focus-visible span{background-size:100% 1px}

/* ---------- 8. héroe ---------- */
.hero{position:relative;min-height:calc(100svh - var(--bar,34px) * 2);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;
  padding-block:clamp(7rem,12vw,10rem) clamp(1.75rem,4vw,3.25rem);cursor:none}
.hero a,.hero button{cursor:pointer}
.hero__media{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.hero__media::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;
  background:radial-gradient(120% 85% at 50% 42%,transparent 38%,rgba(0,0,0,.72) 100%)}
.hero__media::after{content:"";position:absolute;inset:0;z-index:3;
  background:linear-gradient(180deg,rgba(5,14,19,.6) 0%,rgba(5,14,19,.16) 26%,rgba(5,14,19,.5) 56%,rgba(5,14,19,.93) 100%)}
#hero-grime{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.hero__grid{position:relative;z-index:4;width:100%;max-width:var(--maxw);margin-inline:auto;
  padding-inline:var(--wrap);display:flex;flex-direction:column;gap:clamp(1.6rem,3.2vw,2.8rem)}
.hero__h1{text-shadow:0 4px 34px rgba(3,10,14,.6)}
.hero__panel{margin-inline-start:auto;width:min(100%,36rem);
  border-top:1px solid rgba(242,248,251,.28);padding-top:1.35rem;
  display:flex;flex-direction:column;gap:1.4rem}
.hero__lead{max-width:52ch;color:#dbe8ee;font-size:clamp(.98rem,1.1vw,1.06rem);line-height:1.55}
.hero__acts{display:flex;flex-wrap:wrap;gap:.7rem}
.hero__lance{position:fixed;top:0;left:0;width:52px;height:52px;z-index:130;pointer-events:none;
  opacity:0;transform:translate3d(-100px,-100px,0);
  background:conic-gradient(from 210deg at 50% 50%,rgba(255,255,255,.9),rgba(143,212,239,.35) 26%,transparent 30%);
  mask:radial-gradient(circle at 50% 50%,#000 0 46%,transparent 47%);
  -webkit-mask:radial-gradient(circle at 50% 50%,#000 0 46%,transparent 47%)}
.hero__lance::after{content:"";position:absolute;inset:38%;border-radius:50%;background:var(--foam);
  box-shadow:0 0 18px 4px rgba(143,212,239,.75)}

/* ---------- 9. ritmo de secciones ---------- */
.sec{padding-block:clamp(4.5rem,9vw,8.5rem);position:relative}
.sec__head{max-width:62rem}
.sec__head--split{display:grid;gap:clamp(1.5rem,4vw,4rem);
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:end;max-width:none}
.sec__lead{color:var(--mist);max-width:52ch}
.sec--why{padding-bottom:0}
.sec--why .sec__head{margin-bottom:clamp(2.5rem,5vw,4.5rem)}

.wall{display:grid;grid-template-columns:repeat(4,1fr);border-top:var(--rule);border-bottom:var(--rule)}
.wall__tile{position:relative;overflow:hidden;
  padding:clamp(1.7rem,2.8vw,2.8rem) clamp(1.2rem,2vw,2rem) clamp(2rem,3vw,3rem);
  border-inline-end:var(--rule);display:flex;flex-direction:column;gap:.7rem}
.wall__tile:last-child{border-inline-end:0}
.wall__tile::after{content:"";position:absolute;inset-block:0;inset-inline-end:-1px;width:2px;z-index:8;
  background:var(--hydro);transform:scaleY(0);transform-origin:top;transition:transform .7s var(--e-out)}
.wall__tile:hover::after{transform:scaleY(1)}
.wall__icon{width:clamp(2.5rem,3.4vw,3.1rem);height:auto;margin-bottom:.85rem;color:var(--foam);overflow:visible}
.wall__tile h3{font-size:clamp(1.06rem,1.45vw,1.28rem);font-variation-settings:'wdth' 100,'wght' 620;
  letter-spacing:-.02em;line-height:1.14;text-wrap:balance;color:var(--foam)}
.wall__tile p{color:var(--mist);font-size:.96rem;line-height:1.5}
.wall--contact{grid-template-columns:repeat(3,1fr);border-top:0}
.wall__tile--c h2{font-size:1.02rem;font-variation-settings:'wdth' 96,'wght' 520;color:var(--hydro)}
.wall__v{font-size:clamp(1.35rem,2.6vw,2.05rem);font-variation-settings:var(--exp),'wght' 680;
  letter-spacing:-.038em;line-height:1.04;color:var(--foam)}
.wall__v a{text-decoration:none}
.wall__v a:hover{color:var(--hydro-2)}

.band{position:relative;overflow:hidden;min-height:calc(100svh - var(--bar,34px) * 2);display:flex;align-items:center;
  padding-block:clamp(5rem,10vw,9rem)}
.band__media{position:absolute;inset:0;z-index:0;overflow:hidden}
.band__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band__media::after{content:"";position:absolute;inset:0;z-index:7;
  background:linear-gradient(90deg,rgba(4,10,14,.9),rgba(4,10,14,.4) 62%,rgba(4,10,14,.2)),
             radial-gradient(120% 90% at 50% 50%,transparent 36%,rgba(0,0,0,.7) 100%)}
.band__in{position:relative;z-index:8}
.band__t{max-width:20ch}
.band__tel{--w:0%;display:block;position:relative;width:fit-content;
  margin-top:clamp(1.6rem,3vw,2.6rem);text-decoration:none;
  font-size:clamp(2.2rem,7.4vw,5.6rem);font-variation-settings:var(--exp),'wght' 760;
  letter-spacing:-.05em;line-height:1}
.band__tel span{display:block;color:rgba(242,248,251,.38)}
.band__tel::after{content:attr(data-tel);position:absolute;inset:0;color:var(--foam);pointer-events:none;
  clip-path:polygon(0 0,var(--w) 0,calc(var(--w) - 7%) 100%,0 100%);
  text-shadow:0 0 30px rgba(92,185,224,.5)}
.band__tel:hover{--w:112%;transition:--w .7s var(--e-out)}

.sec--svc{padding-bottom:clamp(3rem,5vw,4.5rem)}
.sec--svc .sec__head--split{margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.rail{position:relative;overflow:hidden}
.rail__track{display:flex;gap:clamp(1rem,1.6vw,1.6rem);padding-inline:var(--wrap);will-change:transform}
.rail__panel{flex:0 0 clamp(19rem,32vw,30rem);display:flex;flex-direction:column;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
  box-shadow:inset 0 0 0 1px var(--tide)}
.rail__media{position:relative;aspect-ratio:16/9;overflow:hidden}
.rail__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rail__grime{position:absolute;inset:0;width:100%;height:100%;z-index:5}
.rail__body{padding:clamp(1.2rem,1.8vw,1.7rem);display:flex;flex-direction:column;gap:.55rem;flex:1}
.rail__body h3{font-size:clamp(1.12rem,1.65vw,1.45rem);text-transform:none;letter-spacing:-.032em}
.rail__d{color:var(--hydro);font-variation-settings:'wdth' 98,'wght' 480;font-size:.95rem}
.rail__body .lnk{margin-top:auto;padding-top:.9rem}
.rail__after{margin-top:clamp(2.5rem,5vw,4rem)}

/* ---------- 10. cabecera de página ---------- */
.phead{position:relative;overflow:hidden;min-height:calc(100svh - var(--bar,34px) * 2);
  display:flex;align-items:flex-end;padding-block:clamp(8rem,14vw,12rem) clamp(2.5rem,5vw,4.5rem)}
.phead--short{min-height:calc(78svh - var(--bar,34px) * 2)}
.phead--legal{min-height:calc(52svh - var(--bar,34px) * 2)}
.phead__media{position:absolute;inset:0;z-index:0;overflow:hidden}
.phead__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%;will-change:transform}
.phead__media::after{content:"";position:absolute;inset:0;z-index:7;
  background:linear-gradient(180deg,rgba(5,14,19,.66) 0%,rgba(5,14,19,.24) 26%,rgba(5,14,19,.6) 58%,rgba(5,14,19,.96) 100%)}
.phead__media::before{content:"";position:absolute;inset:0;z-index:7;
  background:linear-gradient(90deg,rgba(4,10,14,.8),rgba(4,10,14,.18) 62%,transparent),
             radial-gradient(120% 85% at 50% 45%,transparent 40%,rgba(0,0,0,.6) 100%)}
.phead__in{position:relative;z-index:8}
.phead__h1{text-shadow:0 4px 34px rgba(3,10,14,.65)}
.phead__lead{margin-top:1.4rem;max-width:46ch;color:#d6e4ea}

.pair{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--tide)}
.pair__fig{position:relative;margin:0;overflow:hidden}
.pair__fig img{width:100%;aspect-ratio:2.1/1;object-fit:cover}
.pair__fig figcaption{position:absolute;left:0;bottom:0;z-index:8;
  background:var(--bg);color:var(--foam);padding:.7rem 1.1rem;
  font-variation-settings:'wdth' 96,'wght' 560;font-size:.94rem;box-shadow:0 0 0 1px var(--tide)}

.story{display:grid;gap:clamp(1.8rem,4vw,4.5rem);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}
.pull{margin-top:clamp(1.8rem,3vw,2.6rem);padding-top:1.4rem;border-top:1px solid var(--tide-2);
  font-size:clamp(1.2rem,2.2vw,1.75rem);line-height:1.24;letter-spacing:-.03em;
  font-variation-settings:'wdth' 106,'wght' 580;color:var(--hydro-2);max-width:22ch}

.place{position:relative;display:grid;gap:clamp(2rem,5vw,5rem);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.place__txt .prose{margin-top:1.2rem}
.hose{position:absolute;left:calc(50% - 1.5rem);top:2rem;width:3rem;height:calc(100% - 4rem);z-index:0;pointer-events:none}
.hose__p{stroke:var(--hydro);stroke-width:2;stroke-linecap:round;opacity:.6}
.values{display:flex;flex-direction:column;position:relative}
.values__it{border-top:var(--rule);padding-block:clamp(1.3rem,2.4vw,2rem)}
.values__it:last-child{border-bottom:var(--rule)}
.values__it h3{font-size:clamp(1.18rem,1.85vw,1.55rem);font-variation-settings:var(--exp),'wght' 680;
  letter-spacing:-.035em;margin-bottom:.4rem;color:var(--foam)}
.values__it p{color:var(--mist);max-width:44ch}

.welfare{position:relative;overflow:hidden;min-height:calc(100svh - var(--bar,34px) * 2);display:flex;align-items:center;
  padding-block:clamp(5rem,10vw,8rem)}
.welfare__media{position:absolute;inset:0;overflow:hidden}
.welfare__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.welfare__media::after{content:"";position:absolute;inset:0;z-index:7;
  background:linear-gradient(90deg,rgba(4,10,14,.94) 0%,rgba(4,10,14,.72) 42%,rgba(4,10,14,.28) 100%),
             radial-gradient(120% 90% at 50% 50%,transparent 38%,rgba(0,0,0,.68) 100%)}
.welfare__in{position:relative;z-index:8}
.welfare__t{max-width:16ch}
.welfare__d{margin-top:1.3rem;max-width:48ch;color:#d6e4ea}

/* ---------- 11. servicios ---------- */
.svc{padding-block:clamp(3.5rem,7vw,7rem) 0;border-top:var(--rule)}
.svc:first-of-type{border-top:0}
.svc__grid{display:grid;gap:clamp(1.8rem,4vw,4.5rem);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start}
.svc__sticky{position:sticky;top:clamp(6rem,10vw,8rem)}
.svc__hero{margin-top:clamp(1.4rem,2.6vw,2.2rem);overflow:hidden;position:relative}
.svc__hero img{width:100%;aspect-ratio:2.35/1;object-fit:cover}
.svc__list{display:flex;flex-direction:column}
.svc__list li{position:relative;padding:clamp(.95rem,1.7vw,1.35rem) 0 clamp(.95rem,1.7vw,1.35rem) 2.4rem;
  border-bottom:var(--rule);color:var(--foam);line-height:1.42;font-size:clamp(1rem,1.15vw,1.08rem)}
.svc__list li:first-child{border-top:var(--rule)}
.svc__drop{position:absolute;left:0;top:calc(clamp(.95rem,1.7vw,1.35rem) + .48em);width:11px;height:14px;
  background:var(--hydro);transform-origin:50% 100%;
  clip-path:path("M5.5 0C5.5 0 11 7 11 10a5.5 5.5 0 0 1-11 0C0 7 5.5 0 5.5 0Z")}
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--tide);margin-top:clamp(2.5rem,5vw,4.5rem)}
.strip__it{margin:0;overflow:hidden;position:relative}
.strip__it img{width:100%;aspect-ratio:2.35/1;object-fit:cover}

.closer{position:relative;overflow:hidden;min-height:calc(100svh - var(--bar,34px) * 2);display:flex;align-items:center;
  padding-block:clamp(5rem,10vw,9rem);margin-top:clamp(4rem,8vw,7rem)}
.closer__media{position:absolute;inset:0;overflow:hidden}
.closer__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.closer__media::after{content:"";position:absolute;inset:0;z-index:7;
  background:linear-gradient(90deg,rgba(4,10,14,.9),rgba(4,10,14,.5)),
             radial-gradient(120% 90% at 50% 50%,transparent 38%,rgba(0,0,0,.66) 100%)}
.closer__in{position:relative;z-index:8;display:flex;flex-direction:column;align-items:flex-start;gap:clamp(1.6rem,3vw,2.4rem)}
.closer__t{max-width:22ch}

/* ---------- 12. contacto ---------- */
.film{padding-block:clamp(4rem,8vw,8rem)}
.film__head{margin-bottom:clamp(1.8rem,3.5vw,3rem);display:grid;gap:clamp(1rem,3vw,3rem);
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}
.film__head .h2{font-size:clamp(1.6rem,2.8vw,2.5rem)}
.film__frame{position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px var(--tide)}
.film__frame video{width:100%;aspect-ratio:2.35/1;object-fit:cover;display:block}
#film-grime{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}
.film__play{position:absolute;z-index:8;left:50%;top:50%;transform:translate(-50%,-50%);
  width:clamp(4.5rem,8vw,6rem);aspect-ratio:1;background:var(--foam);color:#06171f;
  display:grid;place-items:center;transition:background .4s,color .4s,transform .5s var(--e-out)}
.film__play svg{width:44%;height:44%;fill:currentColor}
.film__play:hover{background:var(--hydro);transform:translate(-50%,-50%) scale(1.06)}
.film__frame.is-playing .film__play{opacity:0;pointer-events:none}

.form{padding-block:0 clamp(4rem,8vw,8rem)}
.form__grid{display:grid;gap:clamp(2rem,5vw,5rem);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start}
.form__aside .h2{font-size:clamp(1.55rem,2.5vw,2.3rem)}
.form__aside .sec__lead{margin-top:1.2rem}
.nap{margin-top:clamp(1.6rem,3vw,2.4rem);display:flex;flex-direction:column;gap:.3rem;
  font-size:clamp(1.05rem,1.5vw,1.26rem);font-variation-settings:'wdth' 100,'wght' 520}
.nap a{color:var(--hydro-2);text-decoration:none}
.nap a:hover{text-decoration:underline;text-underline-offset:.25em}

.fld{display:flex;flex-direction:column;gap:.45rem;margin-bottom:clamp(1.1rem,2vw,1.5rem)}
.fld label{font-size:.92rem;font-variation-settings:'wdth' 96,'wght' 520;color:var(--mist)}
.fld input,.fld textarea{font:inherit;color:var(--foam);background:rgba(255,255,255,.05);border:0;
  border-bottom:1px solid var(--tide-2);padding:.9rem .95rem;width:100%;
  transition:background .35s,border-color .35s}
.fld input:hover,.fld textarea:hover{background:rgba(255,255,255,.08)}
.fld input:focus,.fld textarea:focus{outline:none;background:rgba(92,185,224,.13);
  border-bottom-color:var(--hydro);box-shadow:0 1px 0 0 var(--hydro)}
.fld textarea{resize:vertical;min-height:8rem}
.fld--check{flex-direction:row;align-items:flex-start;gap:.7rem;flex-wrap:wrap;margin-top:.5rem}
.fld--check input{width:1.15rem;height:1.15rem;flex:0 0 auto;margin-top:.28rem;accent-color:var(--hydro)}
.fld--check label{font-size:.91rem;flex:1;min-width:12rem}
.fld--check label a{color:var(--hydro-2)}
.fld__err{color:#ffa590;font-size:.87rem;font-variation-settings:'wdth' 96,'wght' 500}
.fld.is-bad input,.fld.is-bad textarea{border-bottom-color:#ffa590;box-shadow:0 1px 0 0 #ffa590}
/* trampa para robots: sólo la ve quien no es humano */
.trampa{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__send{margin-top:.8rem}
.form__send[disabled]{opacity:.55;pointer-events:none}
.form__note{margin-top:1rem;color:var(--hydro-2);font-variation-settings:'wdth' 96,'wght' 520;min-height:1.5em}

.rgpd{margin-top:clamp(3rem,6vw,5rem);color:var(--mist);font-size:.92rem;line-height:1.55}
.rgpd > *{max-width:74ch}
.rgpd::before{content:"";display:block;height:1px;background:var(--tide);margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.rgpd__t{font-size:.94rem;font-variation-settings:'wdth' 92,'wght' 620;color:var(--foam);margin-bottom:.6rem}
.rgpd ul{margin:.6rem 0;display:flex;flex-direction:column;gap:.25rem}
.rgpd li{padding-left:1rem;position:relative}
.rgpd li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;background:var(--hydro)}
.rgpd a{color:var(--hydro-2)}

/* ---------- 13. legales ---------- */
.legal{padding-block:clamp(3.5rem,7vw,6.5rem)}
.legal__grid{display:grid;gap:clamp(2rem,5vw,4.5rem);grid-template-columns:minmax(0,15rem) minmax(0,1fr);align-items:start}
.legal__nav{position:sticky;top:clamp(6rem,10vw,8rem)}
.legal__nav ul{display:flex;flex-direction:column}
.legal__nav a{display:block;padding:.7rem 0;border-bottom:var(--rule);text-decoration:none;
  font-variation-settings:'wdth' 94,'wght' 480;font-size:.94rem;color:var(--mist);
  transition:color .35s,transform .45s var(--e-out)}
.legal__nav a:hover{color:var(--hydro-2);transform:translateX(.5rem)}
.legal__nav a[aria-current="page"]{color:var(--hydro-2);font-variation-settings:'wdth' 94,'wght' 620}
.legal__body{max-width:74ch}
.legal__body p{color:var(--mist);margin-bottom:1.05em}
.legal__h{font-size:clamp(1.1rem,1.75vw,1.4rem);font-variation-settings:var(--exp),'wght' 660;
  letter-spacing:-.03em;line-height:1.12;color:var(--foam);
  margin:2.2em 0 .75em;padding-top:.9em;border-top:var(--rule);text-wrap:balance}
.legal__body > .legal__h:first-child{margin-top:0;padding-top:0;border-top:0}
.legal__list{margin:0 0 1.2em;display:flex;flex-direction:column;gap:.4rem;color:var(--mist)}
.legal__list li{padding-left:1.15rem;position:relative}
.legal__list li::before{content:"";position:absolute;left:0;top:.66em;width:6px;height:6px;background:var(--hydro);opacity:.8}
ol.legal__list{counter-reset:l}
ol.legal__list li{counter-increment:l}
ol.legal__list li::before{content:counter(l);background:none;width:auto;height:auto;top:0;
  color:var(--hydro);font-variation-settings:'wdth' 90,'wght' 620;font-size:.85em}

/* ---------- 14. pie ---------- */
.ftr{position:relative;overflow:hidden;padding-top:clamp(3.5rem,7vw,6rem);border-top:var(--rule)}
.ftr__flood{position:absolute;left:0;right:0;bottom:0;height:100%;z-index:0;transform:scaleY(0);transform-origin:bottom;
  background:linear-gradient(180deg,rgba(29,109,146,0),rgba(29,109,146,.3) 30%,rgba(29,109,146,.52))}
.ftr__flood::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(143,212,239,.9),transparent)}
.ftr__in{position:relative;z-index:1;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--wrap);
  display:grid;gap:clamp(1.8rem,3.5vw,3rem);grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));
  padding-bottom:clamp(2.5rem,5vw,4rem)}
.ftr__brand{display:flex;flex-direction:column;align-items:flex-start}
.ftr__drop{width:clamp(9.5rem,15vw,13rem);height:auto;margin-bottom:1.5rem}
.ftr__claim{max-width:26ch;color:var(--foam);font-variation-settings:'wdth' 100,'wght' 460;
  font-size:clamp(1rem,1.4vw,1.16rem);line-height:1.35;letter-spacing:-.015em}
.ftr__col h2{font-size:.92rem;font-variation-settings:'wdth' 94,'wght' 620;color:var(--foam);
  margin-bottom:.9rem;padding-bottom:.55rem;border-bottom:var(--rule)}
.ftr__col ul{display:flex;flex-direction:column;gap:.42rem}
.ftr__col a{text-decoration:none;color:var(--mist);transition:color .3s}
.ftr__col a:hover{color:var(--hydro-2)}
.ftr__col li{font-size:.94rem;color:var(--mist)}
.ftr__col--nap a{color:var(--foam)}
.ftr__base{position:relative;z-index:1;border-top:var(--rule);padding:1.1rem var(--wrap);
  text-align:center;font-size:.85rem;color:var(--mist-2)}

.wapp{position:fixed;right:clamp(.9rem,2vw,1.6rem);bottom:clamp(.9rem,2vw,1.6rem);z-index:110;
  width:3.35rem;height:3.35rem;display:grid;place-items:center;background:var(--hydro);color:#06171f;
  text-decoration:none;box-shadow:0 14px 32px -14px rgba(0,0,0,.9);
  transition:background .35s,transform .5s var(--e-out)}
.wapp:hover{background:var(--foam);transform:translateY(-3px)}
.wapp svg{width:1.6rem;height:1.6rem;fill:currentColor}
.wapp span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

/* ---------- 15. carga ---------- */
body.is-loading .hero__h1 .ln > span,
body.is-loading .phead__h1 .ln > span{transform:translateY(105%)}

/* ---------- 16. responsive ---------- */
@media (max-width:1080px){
  .hero__panel{max-width:46rem}
  .sec__head--split,.film__head{grid-template-columns:1fr}
  .story,.place,.svc__grid,.form__grid{grid-template-columns:1fr}
  .svc__sticky{position:static}
  .hose{display:none}
  .wall{grid-template-columns:repeat(2,1fr)}
  .wall__tile:nth-child(2n){border-inline-end:0}
  .wall__tile:nth-child(-n+2){border-bottom:var(--rule)}
  .legal__grid{grid-template-columns:1fr}
  .legal__nav{position:static}
  .legal__nav ul{flex-direction:row;flex-wrap:wrap;gap:.4rem 1.2rem}
  .legal__nav a{border-bottom:0;padding:.35rem 0}
  .ftr__in{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  :root{--bar:20px}
  .cur{display:none}
  .hdr__nav,.hdr__cta{display:none}
  .burger{display:block}
  .hero{cursor:auto}
  .hero__lance{display:none}
  .wall--contact{grid-template-columns:1fr}
  .wall--contact .wall__tile{border-inline-end:0;border-bottom:var(--rule)}
  .pair{grid-template-columns:1fr}
  .strip{grid-template-columns:1fr}
  .strip__it:nth-child(n+3){display:none}
  .rail__track{flex-direction:column;padding-inline:var(--wrap)}
  .rail__panel{flex:1 1 auto;width:100%}
  .ftr__in{grid-template-columns:1fr}
}
@media (max-width:520px){
  .hero__acts{flex-direction:column;align-items:stretch}
  .hero__acts .btn{width:100%}
  .wall{grid-template-columns:1fr}
  .wall__tile{border-inline-end:0;border-bottom:var(--rule)}
  .wall__tile:last-child{border-bottom:0}
}

/* ---------- 17. movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .wash-canvas,#hero-grime,#film-grime,.rail__grime,.jet,.hero__lance,.ftr__flood,
  .gate__leaves,.cur,.tide{display:none!important}
  .wash-dirty{filter:none!important}
  .band__tel{--w:112%}
  body.is-loading .hero__h1 .ln > span,body.is-loading .phead__h1 .ln > span{transform:none}
  .hero{cursor:auto}
}
@media print{
  .hdr,.wapp,.jet,.curtain,.mnav,.wash-canvas,.gate__leaves,.cur,.tide,.frame,.vig{display:none!important}
  body{background:#fff;color:#000}
  body::before,body::after{display:none}
}
