/* NTPOOL v2 — static CSS, no build step. Fonts live in fonts.css. */

:root{
  --paper:#f5f3ec;--paper-2:#eceee4;--sage:#e3e8dc;--ink:#123a31;--ink-2:#1b4a3e;--deep:#0d2b26;
  --muted:#5f7266;--line:#cdd4c6;--water:#2f9aa0;--water-2:#7fd3cf;--focus:#1f7fa6;
  --serif:Marcellus,Georgia,serif;--sans:Karla,Arial,sans-serif;
  --gutter:clamp(20px,4.4vw,80px);--ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);
  --hh:76px;--wl:clamp(46px,6vw,96px);
  interpolate-size:allow-keywords;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 24px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.locked{overflow:hidden}
::selection{background:#b9ded6;color:var(--ink)}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
button{cursor:pointer;border-radius:0}
button,a,input,summary,label{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.process :focus-visible,.care-dark .care-prevent__head :focus-visible,.hero :focus-visible,.footer :focus-visible,.lightbox :focus-visible,.mobile-menu :focus-visible{outline-color:#9fe6df}
img{display:block;max-width:100%;height:auto}
figure{margin:0}
p,h1,h2,h3,dl,dd{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400}
h2{font-size:clamp(40px,5vw,80px);line-height:1.02;letter-spacing:-.035em;text-wrap:balance}
h3{font-size:28px;line-height:1.2;letter-spacing:-.02em}
p{max-width:66ch}
ul{padding:0;margin:0;list-style:none}
[hidden]{display:none!important}
.wrap{max-width:1520px;padding-inline:var(--gutter);margin-inline:auto}
.section-pad{padding-block:clamp(84px,10vw,150px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:10px;left:10px;z-index:1000;background:var(--paper);color:var(--ink);padding:14px 18px;transform:translateY(-180%)}
.skip-link:focus{transform:none}
.muted{color:var(--muted)}

/* ---------- type atoms ---------- */
/* v2: no kickers / eyebrows / 01-02 indexes. Hierarchy = scale, colour, composition. */
.dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:var(--water);box-shadow:0 0 0 4px #2f9aa022;flex-shrink:0}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:clamp(40px,5vw,72px)}
.heading-note{font-size:17px;line-height:1.6;max-width:360px;margin-bottom:8px;color:#4c6356}

/* ---------- NTpool icon set (inline sprite) ---------- */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:24px;height:24px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;--acc:var(--water)}
.ico--lg{width:30px;height:30px}
.ico--xl{width:44px;height:44px;stroke-width:1.3}
.ia{stroke:var(--acc)}
.iaf{fill:var(--acc);stroke:none}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips li{display:inline-flex;align-items:center;min-height:38px;padding:8px 15px;border:1px solid var(--line);border-radius:99px;background:#fbfaf6;font-size:14px;line-height:1.35;font-weight:600;color:var(--ink)}

/* ---------- links & buttons (micro-interactions) ---------- */
.text-link,.link-arrow{display:inline-flex;gap:28px;justify-content:space-between;align-items:center;min-height:44px;font-size:14px;font-weight:600;position:relative;padding-bottom:6px;transition:gap .35s var(--ease)}
.text-link::after,.link-arrow::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:1px;background:currentColor;opacity:.35}
.text-link::before,.link-arrow::before{content:'';position:absolute;left:0;right:0;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.text-link:hover::before,.link-arrow:hover::before{transform:scaleX(1);transform-origin:left}
.text-link>span,.link-arrow>span{display:inline-block;transition:transform .35s var(--ease)}
.text-link:hover>span,.link-arrow:hover>span{transform:translate(3px,-3px)}
.text-link:hover,.link-arrow:hover{gap:38px}
.inline-link{border-bottom:1px solid currentColor;font-weight:600;white-space:nowrap}
.inline-link span{display:inline-block;transition:transform .3s var(--ease)}
.inline-link:hover span{transform:translate(2px,-2px)}

.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:52px;padding:0 22px;font:600 14px/1 var(--sans);letter-spacing:.01em;border:1px solid currentColor;background:transparent;transition:color .45s var(--ease),border-color .45s,transform .2s var(--ease)}
.btn::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn:active{transform:scale(.975)}
.btn__arrow{font-size:19px;display:inline-block;transition:transform .4s var(--ease)}
.btn:hover .btn__arrow{transform:translate(3px,-3px) rotate(0deg)}
.btn--ghost:hover{color:var(--paper);border-color:var(--ink)}
.btn--solid{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn--solid::before{background:#2b6d5d}
.btn--wide{width:100%;max-width:380px}
.btn .tap{position:absolute;border-radius:50%;pointer-events:none;width:12px;height:12px;margin:-6px 0 0 -6px;background:#ffffff55;animation:tap .7s var(--ease-out) forwards;z-index:-1}
@keyframes tap{from{transform:scale(0);opacity:1}to{transform:scale(40);opacity:0}}

/* ---------- header ---------- */
.header{position:fixed;z-index:40;top:0;left:0;right:0;height:var(--hh);display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 var(--gutter);color:#fffdf5;transition:background .4s,color .4s,border-color .4s,box-shadow .4s;border-bottom:1px solid #ffffff22}
.header.scrolled{background:#f5f3ecf2;color:var(--ink);border-color:var(--line);box-shadow:0 10px 30px -24px #0d2b26;backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px)}
.header.menu-open{background:var(--deep);color:var(--paper);border-color:#ffffff1c;box-shadow:none}
.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;min-height:44px}
.brand img{width:51px;height:34px;object-fit:contain}
.header .logo-pos,.header.scrolled:not(.menu-open) .logo-neg{display:none}
.header.scrolled:not(.menu-open) .logo-pos{display:block}
.brand>span{font:400 28px/1 var(--serif);letter-spacing:-.045em}
.brand small{display:block;font:600 10.5px/1.3 var(--sans);letter-spacing:.12em;margin-top:5px;text-transform:uppercase}
.desktop-nav{display:flex;gap:4px;margin-left:auto}
.desktop-nav a{font-size:14px;position:relative;padding:10px 12px;border-radius:99px;transition:background .3s}
.desktop-nav a::after{content:'';position:absolute;bottom:4px;left:12px;right:12px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.desktop-nav a:hover::after,.desktop-nav a.is-current::after{transform:scaleX(1);transform-origin:left}
.header-cta{min-height:46px;font-size:13px;border-color:#ffffff70}
.header.scrolled .header-cta{border-color:var(--ink)}
.header:not(.scrolled) .header-cta::before{background:#fffdf5}
.header:not(.scrolled) .header-cta:hover{color:var(--ink)}
.menu-toggle{display:none;background:none;border:0;gap:14px;align-items:center;font-size:14px;font-weight:600;min-height:48px;min-width:48px;padding:4px 2px 4px 10px}
.menu-icon{width:24px;height:14px;position:relative}
.menu-icon::before,.menu-icon::after{content:'';position:absolute;left:0;width:24px;height:1.5px;background:currentColor;top:3px;transition:transform .35s var(--ease)}
.menu-icon::after{top:10px;width:16px;left:8px}
.menu-open .menu-icon::before{transform:translateY(3.5px) rotate(45deg)}
.menu-open .menu-icon::after{transform:translateY(-3.5px) rotate(-45deg);width:24px;left:0}

/* ---------- mobile menu ---------- */
.mobile-menu{position:fixed;z-index:35;inset:var(--hh) 0 0;background:var(--deep);color:var(--paper);padding:18px var(--gutter) calc(28px + env(safe-area-inset-bottom));overflow:auto;display:flex;flex-direction:column;opacity:0;transition:opacity .35s var(--ease)}
.mobile-menu.is-open{opacity:1}
.mobile-menu__water{position:absolute;inset:auto 0 0;height:40%;pointer-events:none;background:radial-gradient(120% 80% at 50% 120%,#2f9aa055,transparent 70%)}
.mobile-menu nav{position:relative;margin:6px 0 28px}
.mobile-menu nav a{display:flex;justify-content:space-between;align-items:center;min-height:56px;font:400 clamp(26px,6.8vw,40px)/1.1 var(--serif);letter-spacing:-.02em;border-bottom:1px solid #ffffff1f;transform:translateY(14px);opacity:0;transition:transform .55s var(--ease-out),opacity .45s;transition-delay:calc(var(--i)*40ms + 60ms)}
.mobile-menu.is-open nav a{transform:none;opacity:1}
.mobile-menu nav a .ico{color:#a8c4b7;--acc:#7fd3cf;width:26px;height:26px}
.mobile-menu nav a:active span{transform:translateX(6px)}
.mobile-menu nav a span{transition:transform .3s var(--ease)}
.mobile-menu__actions{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}
.mobile-menu__actions .btn{min-height:56px;color:var(--paper)}
.mobile-menu__actions .btn--solid{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.mobile-menu__actions .btn--solid::before{background:#cfe6dd}
.mobile-menu__actions .btn--ghost::before{background:var(--paper)}
.mobile-menu__actions .btn--ghost:hover{color:var(--ink)}
.mobile-menu__meta{position:relative;font-size:13px;line-height:1.7;color:#a8c4b7;margin-top:18px}

/* ---------- hero ---------- */
.hero{height:100svh;min-height:720px;max-height:1200px;position:relative;isolation:isolate;overflow:hidden;color:#fffdf5;background:#193c45}
.hero__media,.hero__img,.hero__video,.hero__start,.hero__flash,.shade{position:absolute;inset:0;width:100%;height:100%}
.hero__media{z-index:-3;transform-origin:50% 65%;animation:surface-push 35s var(--ease) forwards}
.hero__img,.hero__video{object-fit:cover;object-position:50% 57%;max-width:none}
.hero__video{display:none;opacity:0}
.hero__start{display:none;background:var(--intro-start,none) center/cover no-repeat,#173e46;transition:opacity .4s,visibility .4s}
.hero__flash{opacity:0;background:radial-gradient(ellipse at 50% 35%,#dceeff99,transparent 70%)}
.shade{z-index:-1;background:linear-gradient(0deg,#071d24e6 0%,#0f2d3a8c 32%,#13273d0a 66%,#071d2466 100%)}
/* caustic light: two drifting light nets, transform-only so it stays on the compositor */
.caustics{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none;mix-blend-mode:soft-light;opacity:.75;-webkit-mask-image:linear-gradient(to top,#000 0%,#000 20%,transparent 50%);mask-image:linear-gradient(to top,#000 0%,#000 20%,transparent 50%);transition:opacity 1.6s}
.caustics i{position:absolute;inset:-420px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='b'%3E%3CfeGaussianBlur stdDeviation='2.2'/%3E%3C/filter%3E%3Cg fill='none' stroke='%23fff' stroke-width='3.2' filter='url(%23b)' opacity='.9'%3E%3Cpath d='M0 40Q37.5 22 75 40T150 40T225 40T300 40M0 115Q37.5 133 75 115T150 115T225 115T300 115M0 190Q37.5 172 75 190T150 190T225 190T300 190M0 265Q37.5 283 75 265T150 265T225 265T300 265'/%3E%3Cpath d='M40 0Q22 37.5 40 75T40 150T40 225T40 300M115 0Q133 37.5 115 75T115 150T115 225T115 300M190 0Q172 37.5 190 75T190 150T190 225T190 300M265 0Q283 37.5 265 75T265 150T265 225T265 300' opacity='.7'/%3E%3C/g%3E%3C/svg%3E");background-size:300px 300px;will-change:transform;animation:drift-a 38s linear infinite}
.caustics i+i{background-size:430px 430px;opacity:.65;transform:rotate(17deg);animation:drift-b 52s linear infinite}
@keyframes drift-a{from{transform:translate3d(0,0,0)}to{transform:translate3d(300px,300px,0)}}
@keyframes drift-b{from{transform:rotate(17deg) translate3d(0,0,0)}to{transform:rotate(17deg) translate3d(-430px,430px,0)}}
.intro:not(.intro-done) .caustics{opacity:0}
.is-offscreen .caustics i,.is-offscreen .waterline path{animation-play-state:paused}
.ripples{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ripple{position:absolute;width:220px;height:220px;margin:-110px 0 0 -110px;border-radius:50%;border:1px solid #ffffffa0;box-shadow:0 0 0 18px #ffffff12,inset 0 0 30px #ffffff22;animation:ripple 1.5s var(--ease-out) forwards}
.ripple+.ripple{animation-delay:.12s}
@keyframes ripple{from{transform:scale(.08);opacity:.9}to{transform:scale(1);opacity:0}}
.surface-veil{display:none}

.hero-topline{position:absolute;top:calc(var(--hh) + 46px);left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.hero-main{position:absolute;bottom:calc(var(--wl) + 104px);left:var(--gutter);right:var(--gutter);display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:end;gap:40px}
.hero h1{font-size:clamp(60px,8.4vw,136px);line-height:.98;letter-spacing:-.045em;text-shadow:0 2px 40px #04161a40}
.line,.line__inner{display:block}
.line{clip-path:inset(-.3em -.2em -.25em -.2em)}
.line__inner{white-space:nowrap}
.side{padding-bottom:10px}
.side__lede{font-size:17px;line-height:1.6;color:#f4f4e8;margin-bottom:22px;text-shadow:0 1px 18px #04161a66}
.side__actions{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.hero .link-arrow{font-size:13px;text-transform:uppercase;letter-spacing:.08em;min-width:220px}
.link-arrow--quiet{opacity:.8}
.link-arrow--quiet:hover{opacity:1}
.hero-foot{position:absolute;bottom:calc(var(--wl) + 18px);left:var(--gutter);right:var(--gutter);padding-top:18px;display:flex;justify-content:space-between;align-items:center;gap:18px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.foot__rule{position:absolute;top:0;left:0;right:0;height:1px;background:#ffffff45;transform-origin:left}
.media-note{opacity:.75}
.scroll-link{display:flex;align-items:center;gap:18px;min-height:44px}
.scroll-link span{font-size:18px;line-height:1;display:inline-block;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(-2px)}50%{transform:translateY(4px)}}
.intro-skip,.intro-replay{position:absolute;z-index:8;bottom:calc(var(--wl) + 70px);right:var(--gutter);color:#fffdf5;background:#102b3580;border:1px solid #ffffff55;padding:12px 16px;min-height:44px;font-size:12px;display:flex;align-items:center;gap:28px;backdrop-filter:blur(8px)}
.intro-replay{bottom:auto;top:calc(var(--hh) + 84px);font-size:11px;background:transparent;border-color:#ffffff38}
.intro:not(.intro-done) .intro-replay{display:none}
.intro .hero__media{animation:none}
.intro.intro-done .hero__media{animation:surface-push 35s var(--ease) forwards}
.intro .hero__video{display:block}
.intro.intro-playing .hero__video{opacity:1}
.intro .hero__start{display:block}
.intro.intro-playing .hero__start{opacity:0;visibility:hidden}
.intro-hidden .shade{opacity:0}
.intro-hidden [data-intro-content]{visibility:hidden}
.intro-caption{display:none;position:absolute;bottom:calc(var(--wl) + 18px);left:var(--gutter);font-size:11px;letter-spacing:.1em;z-index:8}
.intro-hidden .intro-caption{display:block}
/* the surface line the camera breaks through, continuing into the page */
.waterline{position:absolute;left:0;bottom:-1px;width:100%;height:var(--wl);z-index:2;pointer-events:none;overflow:visible}
.waterline path{fill:var(--paper)}.waterline .waterline__back{fill:#cfe9e3}
.waterline__back{opacity:.38;animation:wave-l 16s linear infinite}
.waterline__front{animation:wave-r 23s linear infinite}
@keyframes wave-l{from{transform:translateX(0)}to{transform:translateX(-1440px)}}
@keyframes wave-r{from{transform:translateX(-1440px)}to{transform:translateX(0)}}
@keyframes surface-push{from{transform:scale(1)}to{transform:scale(1.045)}}

/* mobile & save-data: light CSS surfacing instead of the video */
.surface-lite .surface-veil{display:block;position:absolute;inset:-2px 0 0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#5fb7c4 0%,#1f6f80 22%,#0d3b4a 70%,#0a2c36 100%);animation:veil-down 1.7s cubic-bezier(.7,0,.2,1) .25s both}
.surface-lite .surface-veil::before{content:'';position:absolute;left:-10%;right:-10%;top:-28px;height:56px;border-radius:50%;background:radial-gradient(60% 50% at 50% 50%,#e8fbff 0%,#bfeaf0aa 30%,transparent 70%);filter:blur(4px)}
.surface-lite .hero__media{animation:lite-media 2.4s var(--ease-out) both,surface-push 35s var(--ease) 2.4s forwards}
.surface-lite .hero .line__inner{animation:lite-rise .9s var(--ease-out) both;animation-delay:calc(1.15s + var(--d,0s))}
.surface-lite .hero .line+.line .line__inner{--d:.14s}
.surface-lite .side,.surface-lite .hero-topline,.surface-lite .hero-foot{animation:lite-fade .8s var(--ease-out) 1.45s both}
.surface-lite .waterline{animation:lite-wave 1.2s var(--ease-out) 1.1s both}
@keyframes veil-down{from{transform:translateY(0)}to{transform:translateY(104%)}}
@keyframes lite-media{from{transform:scale(1.14) translateY(-2%)}to{transform:scale(1)}}
@keyframes lite-rise{from{transform:translateY(105%)}to{transform:none}}
@keyframes lite-fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes lite-wave{from{transform:translateY(100%)}to{transform:none}}

/* ---------- scroll reveal (only when html.motion; failsafe in head) ---------- */
.motion [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform 1.1s var(--ease-out)}
.motion [data-reveal].is-in{opacity:1;transform:none}
.depth{overflow:hidden}
.depth img{transform:scale(1.1);will-change:transform}

/* ---------- about ---------- */
.about{position:relative;padding-bottom:clamp(56px,6vw,96px)}
.statement{font-size:clamp(40px,5.4vw,88px);line-height:1.04;letter-spacing:-.035em;max-width:19ch}
.statement .muted{color:#7a8c7d}
/* inline photo inside the heading (replaces a kicker) */
.pill{display:inline-block;vertical-align:-.08em;width:1.9em;height:.82em;border-radius:99px;overflow:hidden;background:var(--sage);margin-inline:.02em;box-shadow:0 10px 26px -18px #0d2b26}
.pill img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform 1.4s var(--ease-out)}
.statement.is-in .pill img,.statement:not([data-reveal]) .pill img{transform:none}
/* Bratislava ~~~ Košice */
.route{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px 22px;margin-block:clamp(44px,5vw,80px) clamp(48px,6vw,96px)}
.route__city{font:400 clamp(20px,1.8vw,28px)/1 var(--serif);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:12px}
.route__city::before{content:'';width:11px;height:11px;border-radius:50%;border:1.5px solid var(--ink);background:var(--paper)}
.route__city--to{flex-direction:row-reverse}
.route__city--to::before{background:var(--water);border-color:var(--water);box-shadow:0 0 0 6px #2f9aa022}
.route__line{width:100%;height:34px;overflow:visible}
.route__line path{fill:none;stroke:var(--water);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round}
.motion .route[data-reveal] .route__line path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s var(--ease) .2s}
.motion .route.is-in .route__line path{stroke-dashoffset:0}
.route__note{grid-column:1/-1;justify-self:center;font-size:15px;color:var(--muted)}
.about-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,110px);align-items:end}
.about-copy{display:grid;gap:clamp(32px,3.4vw,52px)}
.about-photo__frame{aspect-ratio:4/5;background:var(--sage)}
.about-photo__frame img{width:100%;height:100%;object-fit:cover}
.about-photo figcaption{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);padding-top:12px}
.about-lede{font:400 clamp(24px,2.3vw,36px)/1.3 var(--serif);letter-spacing:-.015em;max-width:24ch}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.facts>div{border-top:1px solid var(--line);padding:24px 0 28px;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:start}
.facts .ico{grid-row:1/3;margin-top:-2px}
.facts dt{font:400 21px/1.25 var(--serif)}
.facts dd{font-size:15px;line-height:1.6;color:var(--muted)}
.facts dd .inline-link{color:var(--ink);margin-left:2px}

/* ---------- services ---------- */
.services{background:var(--paper);padding-top:clamp(56px,6vw,96px)}
.services-layout{display:grid;grid-template-columns:minmax(260px,32%) minmax(0,1fr);gap:clamp(36px,5vw,80px)}
.service-list{position:relative;align-self:start;border-top:1px solid var(--line)}
.service-indicator{position:absolute;left:0;top:0;width:2px;height:var(--h,80px);background:var(--ink);transform:translateY(var(--y,0));transition:transform .55s var(--ease-out),height .55s var(--ease-out)}
.service-tab{display:flex;align-items:center;gap:16px;width:100%;min-height:72px;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:16px 6px 16px 22px;font:400 22px/1.2 var(--serif);letter-spacing:-.015em;color:#6a7c6f;transition:color .35s,padding .45s var(--ease)}
.service-tab .ico{opacity:.7;transition:opacity .35s,transform .45s var(--ease)}
.service-tab.active .ico,.service-tab:hover .ico{opacity:1}
.service-tab.active .ico{transform:scale(1.08)}
.tab-arrow{margin-left:auto;font:300 20px var(--sans);opacity:0;transform:translate(-8px,8px);transition:opacity .35s,transform .45s var(--ease)}
.service-tab:hover{color:var(--ink);padding-left:28px}
.service-tab.active{color:var(--ink)}
.service-tab.active .tab-arrow,.service-tab:hover .tab-arrow{opacity:1;transform:none}
.service-photo{position:relative;overflow:hidden;background:var(--sage);aspect-ratio:16/9.4}
.service-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.service-photo:hover img{transform:scale(1.03)}
.service-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:44px 22px 16px;color:#fff;background:linear-gradient(transparent,#0c2a29a6);font-size:12.5px;font-weight:600;letter-spacing:.04em}
.service-photo--stat::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0c2a29e0 0%,#0c2a29a8 34%,#0c2a2900 72%);pointer-events:none}
.service-photo--stat figcaption{z-index:1;background:none}
.photo-stat{position:absolute;z-index:1;bottom:clamp(46px,4.4vw,64px);left:22px;display:flex;align-items:flex-end;gap:clamp(14px,1.6vw,24px);max-width:min(560px,92%);color:#fff}
.photo-stat b{font:400 clamp(64px,8vw,128px)/.82 var(--serif);letter-spacing:-.04em;white-space:nowrap}
.photo-stat span{font-size:15px;line-height:1.45;font-weight:600;max-width:220px;padding-bottom:4px}
.service-photo--draw{background:var(--sage);display:grid;place-items:center}
.service-photo--draw figcaption{background:none;color:var(--muted);padding-top:0}
.tank-drawing{width:86%;height:auto;overflow:visible}
.tank-drawing .td-ground{stroke:#7d927f;stroke-width:1.5;fill:none}
.tank-drawing .td-soil{fill:#d3d9c8}
.tank-drawing .td-tank rect{fill:#f6f5ee;stroke:var(--ink);stroke-width:2}
.tank-drawing .td-tank path{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.tank-drawing .td-weld{stroke-dasharray:3 6;opacity:.55}
.tank-drawing path.td-water{stroke:var(--water);stroke-width:2.2}
.tank-drawing text{font:600 15px var(--sans);fill:#4f6658;letter-spacing:.04em}
.service-copy{display:grid;grid-template-columns:1.25fr 1fr;gap:36px;margin-block:32px 24px}
.service-copy h3{font-size:clamp(26px,2.2vw,34px);margin-bottom:14px}
.service-copy p{font-size:16px;color:var(--muted);line-height:1.7}
.service-copy ul:not(.chips) li{display:flex;gap:10px;font-size:14px;line-height:1.5;border-bottom:1px solid var(--line);padding-block:12px}
.service-copy ul:not(.chips) li::before{content:'';flex-shrink:0;width:7px;height:7px;margin-top:7px;border-radius:50%;border:1.5px solid var(--water)}
.service-copy .chips{align-content:flex-start}
.service-panel+.service-panel{margin-top:60px}
.js .service-panel+.service-panel{margin-top:0}
.motion .service-panel.panel-enter .service-photo img{animation:panel-photo 1.1s var(--ease-out) both}
.motion .service-panel.panel-enter .service-photo{animation:panel-mask .9s var(--ease-out) both}
.motion .service-panel.panel-enter .service-copy>*,.motion .service-panel.panel-enter>.text-link{animation:lite-fade .7s var(--ease-out) both}
.motion .service-panel.panel-enter .service-copy>ul{animation-delay:.08s}
.motion .service-panel.panel-enter>.text-link{animation-delay:.14s}
@keyframes panel-mask{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
@keyframes panel-photo{from{transform:scale(1.1)}to{transform:scale(1)}}

/* ---------- gallery ---------- */
.gallery-section{background:var(--paper-2);position:relative}
.gallery-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;border-block:1px solid #c8d0c3;margin-bottom:26px;min-height:62px}
.filters{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-block:8px}
.filters::-webkit-scrollbar{display:none}
.filter{flex-shrink:0;min-height:44px;padding:0 16px;border:1px solid transparent;border-radius:99px;background:none;color:#5f7266;font-size:14px;font-weight:600;transition:background .3s,color .3s,border-color .3s,transform .2s}
.filter:hover{border-color:#b7c2b2;color:var(--ink)}
.filter:active{transform:scale(.96)}
.filter sup{font-size:11px;padding-left:3px;font-weight:500}
.filter.active{background:var(--ink);color:var(--paper)}
.gallery-count{font:600 13px var(--sans);letter-spacing:.06em;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
.viewer{display:grid;gap:0}
.viewer__stage{position:relative;aspect-ratio:16/8.2;background:#cfd9cd;overflow:hidden;touch-action:pan-y}
.viewer__open{position:absolute;inset:0;display:block;cursor:zoom-in;overflow:hidden}
.viewer__backdrop{position:absolute;inset:-40px;background:var(--bg,none) center/cover;filter:blur(26px) brightness(.75) saturate(1.1);opacity:0;transition:opacity .5s}
.viewer.is-contain .viewer__backdrop{opacity:1}
#viewer-img{position:relative;width:100%;height:100%;object-fit:cover;transition:opacity .45s var(--ease),transform .9s var(--ease-out),filter .45s}
.viewer.is-contain #viewer-img{object-fit:contain}
.viewer.is-changing #viewer-img{opacity:0;transform:scale(1.025);filter:blur(4px)}
.viewer.is-dragging #viewer-img{transition:none}
.viewer__zoom{position:absolute;right:18px;top:18px;display:flex;gap:12px;align-items:center;padding:10px 14px;background:#f5f3ecdd;color:var(--ink);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;backdrop-filter:blur(6px);transform:translateY(-6px);opacity:0;transition:opacity .35s,transform .35s var(--ease)}
.viewer__open:hover .viewer__zoom,.viewer__open:focus-visible .viewer__zoom{opacity:1;transform:none}
.viewer__nav{position:absolute;top:50%;width:58px;height:58px;margin-top:-29px;border-radius:50%;border:1px solid #ffffff80;background:#0d2b2655;color:#fff;font-size:20px;display:grid;place-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .3s,transform .25s var(--ease)}
.viewer__nav:hover{background:#0d2b26aa}
.viewer__nav:active{transform:scale(.92)}
.viewer__prev{left:20px}.viewer__next{right:20px}
.viewer__meta{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:24px;padding:20px 0 6px;border-bottom:1px solid #c8d0c3}
.viewer__cat{font-size:14px;font-weight:600;color:var(--water);min-width:150px}
.viewer__title{font-size:clamp(24px,2.3vw,34px)}
.viewer__hint{font-size:13px;color:var(--muted);text-align:right}
.filmstrip-wrap{position:relative;margin-top:18px}
.filmstrip{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:2px;padding:4px 2px 14px;scrollbar-width:thin;scrollbar-color:#9fb0a0 transparent;overscroll-behavior-x:contain}
.film-item{flex:0 0 clamp(118px,11.2vw,172px);scroll-snap-align:start}
.thumb{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#d3dccf;outline-offset:2px}
.thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.75);opacity:.78;transition:opacity .35s,filter .35s,transform .6s var(--ease)}
.thumb:hover img{opacity:1;filter:none;transform:scale(1.06)}
.thumb[aria-current="true"] img{opacity:1;filter:none}
.thumb::after{content:'';position:absolute;inset:0;border:2px solid transparent;transition:border-color .3s}
.thumb[aria-current="true"]::after{border-color:var(--ink);box-shadow:inset 0 0 0 2px #f5f3ec}

/* ---------- pond: full-bleed photo with annotations ---------- */
.pond{background:var(--paper);padding-top:clamp(84px,10vw,150px)}
.pond-head{margin-bottom:clamp(36px,4vw,60px)}
.pond-head h2{max-width:13ch}
.pond-figure{position:relative}
.pond-photo{position:relative;aspect-ratio:1855/980;overflow:hidden;background:#cfd9cd}
.pond-photo img{width:100%;height:100%;object-fit:cover}
.pond-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0b221e2e,transparent 30%,transparent 70%,#0b221e40);pointer-events:none}
.pond-notes{position:absolute;inset:0;pointer-events:none}
.pond-note{position:absolute;left:var(--x);top:var(--y);width:0;height:0}
.pond-dot{position:absolute;left:-19px;top:-19px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f5f3ecf2;color:var(--ink);box-shadow:0 6px 18px -8px #0b221e99}
.pond-dot .ico{width:22px;height:22px}
.pond-dot::after{content:'';position:absolute;inset:-7px;border-radius:50%;border:1px solid #ffffffb0;animation:pond-ping 3.2s var(--ease-out) infinite;animation-delay:calc(var(--d,0) * 1s)}
.pond-note:nth-child(2){--d:.6}.pond-note:nth-child(3){--d:1.2}.pond-note:nth-child(4){--d:1.8}.pond-note:nth-child(5){--d:2.4}
@keyframes pond-ping{0%{transform:scale(.8);opacity:0}25%{opacity:1}100%{transform:scale(1.7);opacity:0}}
.pond-label{position:absolute;top:-19px;width:clamp(200px,17vw,250px);padding:11px 14px 12px;background:#f5f3ecf0;color:var(--ink);font-size:13.5px;line-height:1.45;box-shadow:0 14px 30px -20px #0b221e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.pond-label b{display:block;font:400 19px/1.15 var(--serif);margin-bottom:3px}
.pond-note[data-side="r"] .pond-label{left:44px}
.pond-note[data-side="l"] .pond-label{right:44px}
.pond-label::before{content:'';position:absolute;top:19px;width:22px;height:1px;background:#f5f3ec}
.pond-note[data-side="r"] .pond-label::before{right:100%}
.pond-note[data-side="l"] .pond-label::before{left:100%}
.motion .pond-figure .pond-label{opacity:0;transform:translateY(8px);transition:opacity .7s var(--ease),transform .9s var(--ease-out);transition-delay:calc(var(--d,0) * .25s + .2s)}
.motion .pond-figure .pond-dot{transform:scale(.4);opacity:0;transition:transform .7s var(--ease-out),opacity .5s;transition-delay:calc(var(--d,0) * .25s)}
.motion .pond-figure.is-in .pond-label,.motion .pond-figure.is-in .pond-dot{opacity:1;transform:none}
.pond-caption{display:flex;justify-content:space-between;gap:20px;padding:14px var(--gutter) 0;font-size:13px;color:var(--muted)}
.pond-pins{display:none;position:absolute;inset:0}
.pond-pin{position:absolute;left:var(--mx);top:var(--my);width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;display:grid;place-items:center;background:#f5f3ecdd;color:var(--ink);box-shadow:0 6px 16px -8px #0b221e99;transition:transform .45s var(--ease-out),background .35s,color .35s;pointer-events:auto;cursor:pointer}
.pond-pin .ico{width:19px;height:19px}
.pond-pin.is-on{background:var(--ink);color:var(--paper);--acc:#7fd3cf;transform:scale(1.18)}
.pond-pin.is-on::after{content:'';position:absolute;inset:-6px;border-radius:50%;border:1.5px solid #ffffffd0;animation:pond-ping 2.6s var(--ease-out) infinite}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;padding:24px var(--gutter);background:#0b221ef7;color:var(--paper);margin:0;overflow:hidden}
.lightbox::backdrop{background:#0b221e}
.lightbox[open]{display:flex;flex-direction:column;animation:lb-in .35s var(--ease)}
@keyframes lb-in{from{opacity:0}to{opacity:1}}
.lightbox-top,.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}
.lightbox-top{font-size:12px;letter-spacing:.1em;padding-bottom:16px;border-bottom:1px solid #ffffff20}
.lightbox button{background:transparent;border:1px solid #ffffff50;color:var(--paper);min-width:52px;min-height:52px;font-size:20px;transition:background .3s,transform .2s}
.lightbox button:hover{background:#ffffff14}
.lightbox button:active{transform:scale(.94)}
.lightbox-close{display:flex;gap:18px;align-items:center;padding:4px 16px;font-size:13px!important}
.lightbox-close span{font-size:24px}
.lightbox-stage{display:flex;align-items:center;gap:24px;flex:1;min-height:0;padding-block:18px}
.lightbox-frame{flex:1;min-width:0;height:100%;display:grid;place-items:center;overflow:hidden;touch-action:pan-y}
#lightbox-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;transition:opacity .3s,transform .45s var(--ease-out)}
.lightbox.is-changing #lightbox-image{opacity:0}
.lightbox.is-dragging #lightbox-image{transition:none}
.lightbox-stage button{flex-shrink:0;border-radius:50%}
.lightbox-bottom{padding-top:16px;border-top:1px solid #ffffff20;min-height:48px}
.lightbox-bottom p{font-family:var(--serif);font-size:22px}
#lightbox-counter{font-size:13px;letter-spacing:.08em}
.lightbox-help{color:#a5bcae;font-size:12px;text-align:center;margin:12px auto 0}

/* ---------- process / build story ---------- */
.process{background:var(--ink);color:var(--paper);position:relative;overflow:clip;isolation:isolate}
.caustics--deep{z-index:-1;mix-blend-mode:screen;opacity:.07;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 75%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 75%,transparent)}
.caustics--deep i{animation-duration:70s}
.process-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:8%}
.process-sticky{position:sticky;top:calc(var(--hh) + 30px);align-self:start}
.process h2{font-size:clamp(38px,4vw,62px);margin-bottom:34px}
.process-image{position:relative;overflow:hidden;background:#0d2b26}
.process-stack{position:relative;aspect-ratio:16/10.5}
.process-stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .9s var(--ease),transform 1.6s var(--ease-out)}
.process-stack img.is-active{opacity:1;transform:none}
.process-water{position:absolute;left:0;right:0;bottom:0;height:calc(var(--lv,.2) * 52%);pointer-events:none;background:linear-gradient(180deg,#7fd3cf4d 0%,#2f9aa066 40%,#1b5f6a99 100%);box-shadow:inset 0 2px 0 #d8fbf5aa;transition:height 1.3s var(--ease-out)}
.process-water svg{position:absolute;left:0;bottom:100%;width:200%;height:14px;margin-bottom:-1px;fill:#7fd3cf4d;animation:wave-l 9s linear infinite}
.process-image figcaption{position:absolute;z-index:1;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-end;padding:40px 18px 16px;background:linear-gradient(transparent,#0a221bd9);font-size:12px;font-weight:600;letter-spacing:.08em}
#process-counter{font:400 24px/1 var(--serif);letter-spacing:0}
.small-note{font-size:13px;line-height:1.6;color:var(--muted)}
.process .small-note{color:#a9c0af;max-width:440px;margin-top:14px}
.process-rail{min-width:0}
.process-progress{position:sticky;top:var(--hh);z-index:3;display:flex;gap:6px;padding:16px 0 14px;background:linear-gradient(var(--ink) 80%,#123a3100)}
.process-progress a{flex:1;min-height:48px;font-size:12px;font-weight:600;color:#97b0a1;display:flex;flex-direction:column;gap:7px;transition:color .3s}
.process-progress a:hover{color:#fff}
.process-progress i{display:block;width:100%;height:2px;background:#ffffff26;position:relative;overflow:hidden}
.process-progress b{position:absolute;inset:0;background:#cfe9dc;transform:scaleX(var(--p,0));transform-origin:left;transition:transform .2s linear}
.process-progress a.active{color:#fff}
.process-progress em{font-style:normal;font-weight:500;font-size:12px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.process-steps{padding-top:30px}
.process-step{display:grid;grid-template-columns:64px 1fr;gap:20px;align-content:center;min-height:min(48vh,460px);padding-block:48px;border-top:1px solid #ffffff22;transition:opacity .6s var(--ease)}
.process-step:last-child{border-bottom:1px solid #ffffff22}
.js .process-step:not(.active){opacity:.62}
/* order of steps = the water level rising in the basin */
.level{width:56px;height:56px;overflow:visible;margin-top:-6px}
.level__basin{fill:none;stroke:#cfe9dc;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.level__water{fill:#7fd3cf;transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(var(--lv));transition:transform 1.2s var(--ease-out),fill .5s}
.js .process-step:not(.active) .level__water{fill:#5e8f84}
.motion .process-step:not(.seen) .level__water{transform:scaleY(0)}
.process-step h3{font-size:clamp(28px,2.5vw,38px);line-height:1.12;margin-bottom:18px;max-width:15ch}
.process-step p{font-size:16px;line-height:1.75;color:#c6d4c9}

/* ---------- turnkey: "Čo ponúkame?" ---------- */
.turnkey{background:var(--paper-2);padding-bottom:clamp(64px,7vw,110px)}
.turnkey.section-pad{padding-top:0}
.turnkey-title{position:absolute;z-index:1;left:0;right:0;bottom:clamp(54px,6vw,92px)}
.turnkey-title h2{color:#fffdf5;font-size:clamp(46px,7vw,112px);line-height:.98;letter-spacing:-.04em;max-width:11ch;text-shadow:0 2px 40px #0b221e66}
.turnkey-lede{font:400 clamp(21px,1.9vw,28px)/1.35 var(--serif);letter-spacing:-.01em;max-width:38ch;padding-top:clamp(30px,3vw,48px);margin-bottom:clamp(14px,1.6vw,24px)}
.turnkey-photo{position:relative;height:clamp(380px,50vw,720px);overflow:hidden;background:#cfd9cd}
.turnkey-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform:scale(1.12);transform-origin:72% 18%;filter:saturate(.78) contrast(1.06) brightness(.94)}
.turnkey-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0d2b2600 0%,#0d2b2622 40%,#0d2b2699 78%,#0d2b26e0 100%);pointer-events:none}
.turnkey-photo figcaption{position:absolute;right:var(--gutter);bottom:18px;z-index:1;color:#f5f3ecd0;font-size:13px;font-weight:600;letter-spacing:.04em}
.turnkey-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin-top:-1px;border-bottom:1px solid #c8d0c3;position:relative;z-index:1}
.turnkey-tab{display:flex;align-items:flex-start;gap:14px;min-height:92px;padding:24px 18px 18px 0;background:none;border:0;border-top:3px solid transparent;text-align:left;color:#5f7266;font:400 21px/1.2 var(--serif);letter-spacing:-.01em;transition:color .3s,border-color .4s var(--ease)}
.turnkey-tab small{display:block;font:600 11.5px var(--sans);letter-spacing:.12em;color:#7d8f80;margin-top:5px}
.turnkey-tab:hover{color:var(--ink)}
.turnkey-tab.active{color:var(--ink);border-top-color:var(--ink)}
.turnkey-tab .ico{opacity:.75}.turnkey-tab.active .ico{opacity:1}
.turnkey-panels{padding-top:30px;min-height:126px}
.turnkey-panel+.turnkey-panel{margin-top:24px}
.js .turnkey-panel+.turnkey-panel{margin-top:0}
.chips--lg li{min-height:46px;padding:10px 18px;font-size:15px;background:#f8f7f1}
.motion .turnkey-panel.panel-enter li{animation:lite-fade .6s var(--ease-out) both;animation-delay:calc(var(--i,0) * 35ms)}

/* ---------- builder ---------- */
.builder{background:var(--paper)}
.builder-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:7%;align-items:start}
.wish-preview{order:2;position:sticky;top:calc(var(--hh) + 24px);background:var(--sage);padding:26px 30px 28px;overflow:hidden}
#wish-form{order:1;min-width:0}
fieldset{border:0;margin:0 0 36px;padding:0;min-width:0}
legend{width:100%;display:flex;align-items:center;gap:12px;font:400 23px/1.2 var(--serif);margin-bottom:16px;padding:0}
legend .ico{width:26px;height:26px;color:var(--ink)}
.more{border-top:1px solid var(--line);padding-top:28px}
.chip--offer{display:flex;width:fit-content;margin-bottom:22px}
.chip--offer .ico{width:20px;height:20px;margin-left:-2px}
.chip--offer input:checked+span .ico{--acc:#7fd3cf}
.field{position:relative;display:grid;gap:8px;margin-bottom:20px}
.field label,.field-label{font-size:14px;font-weight:600}
.field label span,.field-label span{font-weight:400;color:var(--muted);margin-left:6px}
.field textarea{width:100%;min-height:96px;resize:vertical;padding:14px 16px 26px;border:1px solid var(--line);background:#fbfaf6;font:400 15px/1.55 var(--sans);color:var(--ink);transition:border-color .3s,box-shadow .3s}
.field textarea:hover{border-color:#9fb0a0}
.field textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--ink)}
.field-count{position:absolute;right:12px;bottom:8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.file-drop{display:flex;align-items:center;gap:14px;min-height:64px;padding:10px 14px;border:1px dashed #9fb0a0;background:#fbfaf6;cursor:pointer;font-size:14px;font-weight:600;transition:border-color .3s,background .3s}
.file-drop:hover{border-color:var(--ink);background:#f7f6ef}
.file-input:focus-visible+.file-note,.file-input:focus-visible~.file-note{color:var(--ink)}
.field--file:focus-within .file-drop{outline:3px solid var(--focus);outline-offset:3px}
.file-drop__text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#wish-photo-preview{width:64px;height:48px;object-fit:cover;border-radius:2px}
.file-note{font-size:13px;color:var(--muted)}
.choice-grid{display:grid;gap:8px}
.sizes{grid-template-columns:repeat(4,1fr)}
.two{grid-template-columns:1fr 1fr}
.three{grid-template-columns:repeat(3,1fr)}
.choice{position:relative;cursor:pointer;display:block}
.choice input,.chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;z-index:1;cursor:pointer}
.choice>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:78px;padding:12px 8px;border:1px solid var(--line);background:#fbfaf6;font-size:14px;font-weight:600;text-align:center;transition:background .35s,color .35s,border-color .35s,transform .2s var(--ease),box-shadow .35s}
.choice:hover>span{border-color:var(--ink);box-shadow:0 8px 20px -16px #0d2b26}
.choice:active>span{transform:scale(.965)}
.choice input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.choice input:focus-visible+span,.chip input:focus-visible+span{outline:3px solid var(--focus);outline-offset:3px}
.size-ico{display:block;width:calc(var(--l)*5.2px);height:calc(var(--w)*5.2px);border:1.5px solid currentColor;border-radius:2px;background:linear-gradient(135deg,#7fd3cf55,#2f9aa055);transition:transform .4s var(--ease)}
.size-ico--custom{border-style:dashed;background:none}
.choice input:checked+span .size-ico{background:linear-gradient(135deg,#7fd3cf,#2f9aa0);border-color:#d8f3ee;transform:scale(1.08)}
.opt-ico{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round}
.two .choice>span,.three .choice>span{flex-direction:row;gap:12px;min-height:60px}
.extras{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip>span{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px 0 12px;border:1px solid var(--line);border-radius:99px;background:#fbfaf6;font-size:14px;font-weight:600;transition:background .3s,color .3s,border-color .3s,transform .2s var(--ease)}
.chip:hover>span{border-color:var(--ink)}
.chip:active>span{transform:scale(.96)}
.chip b{width:22px;height:22px;border-radius:50%;border:1.5px solid #93a596;display:grid;place-items:center;transition:background .3s,border-color .3s}
.chip b::after{content:'';width:9px;height:5px;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform .3s var(--ease-out)}
.chip input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip input:checked+span b{background:var(--paper);border-color:var(--paper)}
.chip input:checked+span b::after{transform:translateY(-1px) rotate(-45deg) scale(1)}
.form-note{font-size:13px;line-height:1.7;color:var(--muted);margin-top:14px;max-width:440px}
.form-note .dot{margin-right:8px;vertical-align:1px}
.preview-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font:400 19px/1.2 var(--serif)}
.preview-badge{font:500 12.5px var(--sans);color:var(--muted)}
.pool-drawing{display:block;width:100%;height:auto;margin:10px 0 6px;overflow:visible;cursor:crosshair}
.pool-drawing text{font:500 15px var(--sans);fill:#2f5649}
.pool-drawing .dims path{fill:none;stroke:#5f7d70;stroke-width:1}
.deck{fill:#d6d8c6}
.tile{stroke:none}
.water{transition:fill .6s}
.water.is-custom{stroke:#2f5649;stroke-dasharray:6 5;stroke-width:1.5}
.wave-drift{animation:wave-drift 5s linear infinite}
@keyframes wave-drift{from{transform:translateX(0)}to{transform:translateX(60px)}}
.salt circle{fill:#fff;opacity:0;transition:opacity .5s}
.is-salt .salt circle{opacity:.85;animation:twinkle 2.6s ease-in-out infinite}
.salt circle:nth-child(2n){animation-delay:-1.2s}.salt circle:nth-child(3n){animation-delay:-.6s}
@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:.95}}
.steps path{fill:none;stroke:#e4fbf6;stroke-width:2;opacity:.85}
.d-extra{opacity:0;transition:opacity .45s var(--ease)}
.d-extra.on{opacity:1}
.edge{fill:none;stroke:#f3ecda;stroke-width:8}
.led circle.glow{fill:url(#g-led)}
.led circle.core{fill:#fff7cf}
.d-extra.on .glow{animation:led 2.8s ease-in-out infinite}
@keyframes led{0%,100%{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}
.led .glow{transform-box:fill-box;transform-origin:center}
.jet path{fill:none;stroke:#f2fffd;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:14 12}
.d-extra.on.jet path{animation:jet .9s linear infinite}
@keyframes jet{to{stroke-dashoffset:26}}
.cleaner rect{fill:#e9f2ea;stroke:#3e7a70;stroke-width:1.6}
.cleaner path{stroke:#3e7a70;stroke-width:3;stroke-linecap:round}
.d-extra.on .cleaner-run{animation:cleaner 6s ease-in-out infinite alternate}
@keyframes cleaner{from{transform:translateX(0)}to{transform:translateX(var(--run,120px))}}
.heat-box{fill:#e4e6d9;stroke:#5f7d70}
.heat-fan{fill:none;stroke:#5f7d70;stroke-width:1.4;transform-box:fill-box;transform-origin:center}
.d-extra.on .heat-fan{animation:spin 3s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pool-drawing .d-extra text{font-size:12px;fill:#5f7d70}
.shower-post{fill:none;stroke:#4a6a5d;stroke-width:3.2;stroke-linecap:round}
.drops path{stroke:#5fb7c4;stroke-width:2;stroke-linecap:round}
.d-extra.on .drops path{animation:drop 1s linear infinite}
.drops path:nth-child(2){animation-delay:-.35s}.drops path:nth-child(3){animation-delay:-.7s}
@keyframes drop{from{transform:translateY(-4px);opacity:0}30%{opacity:1}to{transform:translateY(22px);opacity:0}}
.roof-slat{fill:#f6faf3;opacity:.82;stroke:#c7d3c4;stroke-width:.8;transform-box:fill-box;transform-origin:center top;animation:slat-in .5s var(--ease-out) both;animation-delay:calc(var(--i)*28ms)}
@keyframes slat-in{from{transform:scaleY(0)}to{transform:none}}
.roof-seg{fill:#eef6ecb8;stroke:#fafffa;stroke-width:2.5;animation:seg-in .7s var(--ease-out) both;animation-delay:calc(var(--i)*70ms)}
.roof-seg-line{stroke:#ffffffcc;stroke-width:1.2;fill:none}
@keyframes seg-in{from{transform:translateX(140px);opacity:0}to{transform:none;opacity:1}}
.splash{fill:none;stroke:#f2fffd;stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:splash 1.2s var(--ease-out) forwards}
@keyframes splash{from{transform:scale(.1);opacity:1}to{transform:scale(1);opacity:0}}
.wish-summary{border-top:1px solid #becbb9;padding-top:22px;margin-top:6px}
.wish-summary h3{font-size:26px;margin-bottom:14px}
.wish-summary dl>div{display:grid;grid-template-columns:38% 1fr;gap:15px;border-bottom:1px solid #c9d2c1;padding:11px 0;font-size:14px}
.wish-summary dt{color:var(--muted)}
.wish-summary dd{text-align:right;font-weight:600}
.wish-summary dd.bump{animation:bump .5s var(--ease-out)}
@keyframes bump{0%{color:var(--water)}100%{color:inherit}}
.wish-summary>.text-link{display:flex;margin-top:20px}
.wish-summary>.small-note{margin-top:12px}
.demo-result{padding:24px 24px 18px;background:var(--sage);margin-top:26px;border-left:3px solid var(--water);scroll-margin-top:calc(var(--hh) + 40px)}
.demo-result h3{font:600 19px var(--sans);margin-bottom:8px}
.demo-result p{font-size:15px;margin-bottom:8px}
.demo-result .text-link{display:flex;width:fit-content;font-size:14px}

/* ---------- maintenance ---------- */
.maintenance{border-top:1px solid var(--line)}
.maintenance-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start}
.care-image{position:sticky;top:calc(var(--hh) + 30px)}
.care-image__frame{aspect-ratio:4/4.6;background:var(--sage)}
.care-image__frame img{width:100%;height:100%;object-fit:cover}
.care-image figcaption{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);padding-top:12px}
.care-content h2{margin-bottom:24px}
.care-lede{font-size:17px;color:var(--muted);margin-bottom:30px}
.accordions{margin-bottom:30px}
details{border-top:1px solid var(--line)}
details:last-child{border-bottom:1px solid var(--line)}
details::details-content{block-size:0;overflow:hidden;transition:block-size .45s var(--ease),content-visibility .45s allow-discrete}
details[open]::details-content{block-size:auto}
summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:68px;padding:16px 0;font:400 21px/1.3 var(--serif);transition:color .3s,padding .4s var(--ease)}
summary:hover{padding-left:8px}
summary::-webkit-details-marker{display:none}
.accordion-icon{position:relative;width:34px;height:34px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;transition:transform .45s var(--ease),background .3s,border-color .3s}
.accordion-icon::before,.accordion-icon::after{content:'';position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;background:currentColor;transition:transform .45s var(--ease)}
.accordion-icon::after{transform:rotate(90deg)}
details[open] .accordion-icon{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:rotate(180deg)}
details[open] .accordion-icon::after{transform:rotate(0)}
details>p{font-size:16px;color:var(--muted);padding:0 54px 26px 0;line-height:1.75}
/* prevention trio + eShop */
.maintenance{padding-bottom:0}
.care-dark{position:relative;overflow:clip;isolation:isolate;margin-top:clamp(84px,9vw,140px);padding-block:clamp(72px,8vw,120px);background:var(--ink);color:var(--paper)}
.care-dark .caustics--deep{opacity:.06}
.care-dark .care-prevent__head h3{color:var(--paper)}
.care-dark .care-prevent__head p{color:#c6d4c9}
.care-dark .care-prevent__head,.care-dark .prevent-list li,.care-dark .prevent-list li+li{border-color:#ffffff24}
.care-dark .prevent-list .ico{color:#e8f1ea;--acc:#7fd3cf}
.care-dark .prevent-list h4{color:var(--paper)}
.care-dark .prevent-list p{color:#b9cbbe}
.care-prevent__head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding-bottom:clamp(28px,3vw,44px);border-bottom:1px solid var(--line)}
.care-prevent__head h3{font-size:clamp(32px,3.4vw,52px);line-height:1.05;letter-spacing:-.03em;max-width:14ch}
.care-prevent__head p{font-size:16px;color:var(--muted);max-width:420px}
.prevent-list{display:grid;grid-template-columns:repeat(3,1fr)}
.prevent-list li{padding:34px 34px 38px 0;display:grid;gap:12px;align-content:start}
.prevent-list li+li{padding-left:34px;border-left:1px solid var(--line)}
.prevent-list .ico{margin-bottom:8px}
.prevent-list h4{margin:0;font:400 24px/1.2 var(--serif);letter-spacing:-.015em}
.prevent-list p{font-size:15px;line-height:1.65;color:var(--muted)}
.eshop-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(20px,3vw,48px);margin-top:clamp(36px,4vw,56px);padding:clamp(26px,3vw,40px) clamp(24px,3.4vw,52px);background:var(--paper);color:var(--ink);position:relative;overflow:hidden;isolation:isolate;transition:background .4s}
.eshop-band::before{content:'';position:absolute;inset:auto -10% -60% 30%;height:140%;z-index:-1;background:radial-gradient(closest-side,#7fd3cf55,transparent);transition:transform 1.2s var(--ease-out)}
.eshop-band:hover::before{transform:translateX(-12%)}
.eshop-band__num{font:400 clamp(72px,9vw,140px)/.85 var(--serif);letter-spacing:-.05em;color:var(--water)}
.eshop-band__text{font-size:15px;line-height:1.6;color:var(--muted)}
.eshop-band__text b{display:block;font:400 clamp(24px,2.4vw,36px)/1.15 var(--serif);color:var(--ink);letter-spacing:-.02em;margin-bottom:6px}
.eshop-band__go{display:inline-flex;align-items:center;gap:14px;min-height:52px;padding:0 22px;border:1px solid var(--ink);font-size:14px;font-weight:600;white-space:nowrap;transition:background .35s,color .35s}
.eshop-band__go span{transition:transform .35s var(--ease)}
.eshop-band:hover .eshop-band__go{background:var(--ink);color:var(--paper)}
.eshop-band:hover .eshop-band__go span{transform:translate(3px,-3px)}

/* ---------- contact ---------- */
.contact{background:var(--sage);position:relative;overflow:hidden;isolation:isolate}
.contact-rings{position:absolute;right:-180px;top:50%;width:760px;height:760px;margin-top:-380px;z-index:-1;pointer-events:none}
.contact-rings i{position:absolute;inset:0;border-radius:50%;border:1px solid #9fb59f66;animation:ring 9s var(--ease-out) infinite}
.contact-rings i:nth-child(2){animation-delay:-3s}.contact-rings i:nth-child(3){animation-delay:-6s}
@keyframes ring{from{transform:scale(.25);opacity:0}25%{opacity:1}to{transform:scale(1);opacity:0}}
.contact h2{font-size:clamp(38px,5vw,80px);max-width:18ch}
.contact h2 span{color:#6f866f}
.contact-links{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid #b5c2ae;margin-top:56px;padding-top:12px}
.contact-links a{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px 20px;padding:22px 0 18px;border-bottom:1px solid #b5c2ae;position:relative}
.contact-links small{grid-column:1/-1;font-size:15px;font-weight:600;color:var(--muted)}
.contact-big{font:400 clamp(28px,3vw,46px)/1.1 var(--serif);letter-spacing:-.02em;transition:transform .45s var(--ease)}
.contact-arrow{width:52px;height:52px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;font-size:20px;transition:background .35s,color .35s,transform .45s var(--ease)}
.contact-links a:hover .contact-arrow{background:var(--ink);color:var(--paper);transform:rotate(45deg)}
.contact-links a:hover .contact-big{transform:translateX(6px)}
.contact-address{margin-top:28px;font-size:15px;color:var(--muted)}

/* ---------- footer ---------- */
.footer{background:var(--deep);color:#e5e9dc;padding:72px 0 calc(30px + env(safe-area-inset-bottom))}
.footer-main{display:grid;grid-template-columns:1.3fr 1fr 1fr .9fr;gap:36px;padding-bottom:56px}
.footer-main>.brand{align-self:start}
.footer h3{font:600 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;color:#cfdccf}
.footer p{font-size:14px;line-height:1.85;color:#b4c8b7}
.footer-social{display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:14px}
.footer-social a{min-height:44px;display:inline-flex;align-items:center;gap:8px;transition:color .3s}
.footer-social a span{transition:transform .3s var(--ease)}
.footer-social a:hover{color:#fff}
.footer-social a:hover span{transform:translate(2px,-2px)}
.footer-bottom{border-top:1px solid #ffffff22;padding-top:26px;display:flex;justify-content:space-between;gap:24px;align-items:center}
.footer-bottom p{font-size:13px;line-height:1.7}
.footer-bottom strong{font-weight:600;color:#eef0e4;letter-spacing:.1em}
.to-top{width:48px;height:48px;border:1px solid #ffffff40;border-radius:50%;display:grid;place-items:center;flex-shrink:0;transition:background .3s,transform .3s var(--ease)}
.to-top:hover{background:#ffffff14;transform:translateY(-3px)}

/* ---------- mobile thumb bar ---------- */
.thumb-bar{display:none}

/* ======================= responsive ======================= */
@media(min-width:1600px){.hero-main,.hero-topline,.hero-foot{left:max(var(--gutter),calc((100vw - 1440px)/2));right:max(var(--gutter),calc((100vw - 1440px)/2))}}
@media(max-width:1100px){
  .desktop-nav a{padding:10px 8px;font-size:13px}
  .header{gap:14px}
  .hero-main{grid-template-columns:1fr 250px;gap:24px}
  .about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:44px}
  .facts{grid-template-columns:1fr}
  .pond-label{width:210px;font-size:13px}
  .turnkey-tab{font-size:19px;gap:12px}
  .prevent-list li{padding-right:24px}.prevent-list li+li{padding-left:24px}
  .services-layout{grid-template-columns:minmax(240px,34%) minmax(0,1fr);gap:36px}
  .service-tab{font-size:20px;min-height:68px}
  .service-copy{grid-template-columns:1fr;gap:16px}
  .process-layout{gap:6%}
  .builder-layout{gap:5%}
  .wish-preview{padding:24px}
  .viewer__hint{display:none}
  .process-progress em{display:none}
  .pool-drawing text{font-size:21px}
  .pool-drawing .d-extra text{font-size:17px}
  .preview-top>span:first-child{display:none}
  .preview-top{justify-content:flex-end}
  .viewer__meta{grid-template-columns:auto 1fr}
}
@media(max-width:900px){
  :root{--hh:68px}
  .desktop-nav{display:none}
  .header-cta{margin-left:auto}
  .menu-toggle{display:flex}
  .hero-main{grid-template-columns:1fr;gap:26px;bottom:calc(var(--wl) + 92px)}
  .hero h1{font-size:clamp(52px,10vw,96px)}
  .hero .side{display:flex;align-items:flex-end;justify-content:space-between;gap:32px}
  .side__lede{max-width:340px;margin:0;font-size:16px}
  .section-heading{flex-direction:column;align-items:flex-start;gap:18px}
  .heading-note{max-width:520px}
  .about-grid{grid-template-columns:1fr 1.3fr;gap:32px;align-items:start}
  .route{gap:14px 16px}
  /* pond on phone/tablet: markers stay on a taller crop, notes become a swipeable card row in sync */
  .pond-photo{aspect-ratio:16/10}
  .pond-photo img{object-position:50% 50%}
  .pond-pins{display:block}
  .pond-notes{position:static;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);padding:14px var(--gutter) 6px;pointer-events:auto;scrollbar-width:none;overscroll-behavior-x:contain}
  .pond-notes::-webkit-scrollbar{display:none}
  .pond-note{position:static;width:auto;height:auto;flex:0 0 min(82%,380px);scroll-snap-align:start;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:18px 18px 20px;background:#fbfaf6;border:1px solid var(--line);transition:border-color .35s,box-shadow .35s}
  .pond-note.is-on{border-color:var(--ink);box-shadow:0 14px 28px -24px #0b221e}
  .pond-dot{position:relative;left:auto;top:auto;width:42px;height:42px;background:var(--sage);box-shadow:none}
  .pond-note.is-on .pond-dot{background:var(--ink);color:var(--paper);--acc:#7fd3cf}
  .pond-dot::after{display:none}
  .pond-label{position:static;width:auto;padding:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;font-size:14.5px;color:var(--muted)}
  .pond-label b{color:var(--ink)}
  .pond-label::before{display:none}
  .motion .pond-figure .pond-label,.motion .pond-figure .pond-dot{opacity:1;transform:none}
  .pond-caption{padding-top:8px}
  .turnkey-tabs{grid-template-columns:1fr 1fr}
  .turnkey-tab{min-height:76px;border-top-width:2px}
  .prevent-list li{padding:28px 20px 30px 0}.prevent-list li+li{padding-left:20px}
  .care-prevent__head{flex-direction:column;align-items:flex-start;gap:16px}
  /* services: horizontal chips */
  .services-layout{grid-template-columns:1fr;gap:26px}
  .service-list{display:flex;gap:8px;overflow-x:auto;scroll-padding-inline:var(--gutter);border:0;margin-inline:calc(var(--gutter)*-1);padding:4px var(--gutter);scroll-snap-type:x proximity;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent);mask-image:linear-gradient(90deg,transparent,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent)}
  .service-list::-webkit-scrollbar{display:none}
  .service-indicator{display:none}
  .service-tab{flex-shrink:0;width:auto;min-height:48px;padding:0 18px!important;border:1px solid var(--line);border-radius:99px;font:600 15px/1 var(--sans);letter-spacing:0;scroll-snap-align:start;gap:10px;background:#fbfaf6}
  .service-tab.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .service-tab .ico{width:20px;height:20px;opacity:1}
  .service-tab.active .ico{--acc:#7fd3cf;transform:none}
  .tab-arrow{display:none}
  .service-copy{grid-template-columns:1.2fr 1fr;gap:28px}
  .viewer__stage{aspect-ratio:4/3}
  .viewer__nav{top:auto;bottom:14px;margin-top:0;width:52px;height:52px}
  .viewer__prev{left:auto;right:76px}.viewer__next{right:14px}
  .viewer__zoom{opacity:1;transform:none;top:auto;bottom:18px;left:14px;right:auto;padding:9px 12px}
  .process-layout{grid-template-columns:1fr 1fr;gap:5%}
  .process-step{grid-template-columns:1fr;gap:12px}
  .builder-layout{grid-template-columns:1fr 1fr;gap:4%}
  .sizes{grid-template-columns:repeat(3,1fr)}
  .three{grid-template-columns:1fr}
  .maintenance-layout{grid-template-columns:.9fr 1.1fr;gap:5%}
  .contact-links{grid-template-columns:1fr;gap:0}
  .footer-main{grid-template-columns:1fr 1fr;gap:36px}
  .footer-bottom{align-items:flex-end}
  .thumb-bar{display:grid;grid-template-columns:1fr auto;gap:8px;position:fixed;z-index:30;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:8px;background:#f5f3ecf0;border:1px solid var(--line);box-shadow:0 18px 40px -18px #0d2b26aa;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform:translateY(140%);visibility:hidden;transition:transform .5s var(--ease-out),visibility 0s linear .5s}
  .thumb-bar.is-shown{transform:none;visibility:visible;transition:transform .5s var(--ease-out)}
  .thumb-bar .btn{min-height:50px}
  .thumb-bar .btn--call{padding:0 18px;gap:14px}
}
@media(max-width:700px){
  :root{--gutter:22px;--hh:64px;--wl:44px}
  .header.scrolled{padding-block:0}
  .brand img{width:45px;height:30px}
  .brand>span{font-size:25px}
  .brand small{font-size:10.5px;letter-spacing:.08em}
  .header-cta{display:none}
  .menu-toggle{margin-left:auto}
  .hero{min-height:640px;max-height:none}
  .hero__img{object-position:center}
  .hero-topline{top:calc(var(--hh) + 30px);font-size:10.5px;letter-spacing:.12em}
  .hero-main{bottom:calc(var(--wl) + 88px);gap:24px}
  .hero h1{font-size:clamp(42px,12.4vw,64px);letter-spacing:-.045em;line-height:1.02}
  .hero .side{display:block;padding:0}
  .side__lede{font-size:16px;line-height:1.55;max-width:300px;margin-bottom:12px}
  .side__actions{flex-direction:row;gap:22px}
  .hero .link-arrow{min-width:0;font-size:12px;gap:16px}
  .hero-foot{bottom:calc(var(--wl) + 8px);font-size:11px;letter-spacing:.1em;padding-top:10px}
  .hero-foot .foot__text:nth-child(2){display:none}
  .intro-replay{display:none}
  .statement{font-size:clamp(34px,9.6vw,46px)}
  .route{grid-template-columns:auto minmax(0,1fr) auto;gap:12px 10px;margin-block:36px 44px}
  .route__city{font-size:18px;gap:8px}
  .route__line{height:26px}
  .route__note{justify-self:start;font-size:14px}
  .about-grid{grid-template-columns:1fr;gap:28px}
  .about-photo__frame{aspect-ratio:1/1}
  .about-lede{font-size:23px}
  .facts>div{padding:20px 0 22px}
  .facts dt{font-size:20px}
  h2{font-size:clamp(36px,10.4vw,48px)}
  .heading-note{font-size:15px}
  .service-photo{aspect-ratio:4/3}
  .photo-stat{top:16px;left:16px;max-width:180px}
  .photo-stat b{font-size:64px}
  .photo-stat span{font-size:13px}
  .service-photo--draw{aspect-ratio:4/3}
  .tank-drawing{width:94%}
  .tank-drawing text{font-size:20px}
  .pond-head h2{max-width:none}
  .pond-caption{flex-direction:column;gap:4px;font-size:12.5px}
  .turnkey-photo{height:clamp(360px,104vw,440px)}
  .turnkey-photo img{transform:none}
  .turnkey-photo figcaption{font-size:12px;bottom:12px;right:auto;left:var(--gutter)}
  .turnkey-title{bottom:44px}
  .turnkey-title h2{font-size:clamp(42px,12vw,56px)}
  .turnkey-lede{font-size:21px}
  .turnkey-tab{font-size:17px;min-height:68px;gap:10px;padding:12px 10px 12px 0}
  .turnkey-tab .ico{width:26px;height:26px}
  .turnkey-tab small{font-size:11px}
  .chips--lg li{min-height:42px;font-size:14px;padding:9px 14px}
  .prevent-list{grid-template-columns:1fr}
  .prevent-list li,.prevent-list li+li{padding:24px 0;border-left:0;border-bottom:1px solid var(--line);grid-template-columns:auto 1fr;gap:6px 18px}
  .prevent-list .ico{grid-row:1/3;margin:0;width:40px;height:40px}
  .prevent-list h4{font-size:22px}
  .eshop-band{grid-template-columns:auto 1fr;gap:14px 20px;padding:24px 22px;margin-inline:calc(var(--gutter)*-1)}
  .eshop-band__num{font-size:68px}
  .eshop-band__go{grid-column:1/-1;justify-content:space-between}
  .eshop-band__text b{font-size:22px}
  .service-copy{display:block;margin-block:24px 16px}
  .service-copy h3{font-size:27px}
  .service-copy p{font-size:15px}
  .service-copy ul{margin-top:16px}
  .gallery-toolbar{border:0;margin-bottom:16px;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);min-height:0}
  .filters{margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter)}
  .filter{border-color:#c7d0c2;font-size:14px;padding:0 15px}
  .gallery-count{display:none}
  .viewer__stage{aspect-ratio:1/1;margin-inline:calc(var(--gutter)*-1)}
  .viewer__meta{grid-template-columns:1fr;gap:4px;padding:16px 0 12px}
  .viewer__cat{min-width:0;font-size:11px}
  .viewer__title{font-size:25px}
  .film-item{flex-basis:104px}
  .filmstrip{margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);scroll-padding-inline:var(--gutter)}
  .lightbox{padding:16px 14px calc(14px + env(safe-area-inset-bottom))}
  .lightbox-top{font-size:11px;letter-spacing:.04em}
  .lightbox-stage{position:relative;padding-block:16px 76px;gap:0}
  .lightbox-stage>button{position:absolute;bottom:6px}
  .lightbox-prev{left:calc(50% - 62px)}.lightbox-next{right:calc(50% - 62px)}
  .lightbox-bottom p{font-size:19px;max-width:240px}
  .lightbox-help{font-size:11px}
  .process-layout{display:block}
  .process-sticky{display:contents}
  .process h2{margin-bottom:22px}
  .process-sticky>.small-note{display:none}
  .process-image{position:sticky;top:var(--hh);z-index:4;margin-inline:calc(var(--gutter)*-1)}
  .process-stack{aspect-ratio:auto;height:min(34svh,250px)}
  .process-image figcaption{padding:30px var(--gutter) 12px}
  #process-counter{font-size:22px}
  .process-progress{top:calc(var(--hh) + min(34svh,250px));gap:4px;margin-inline:calc(var(--gutter)*-1);padding:12px var(--gutter) 10px;background:var(--ink);box-shadow:0 18px 22px -18px #0b221e}
  .process-progress em{display:none}
  .process-steps{padding-top:8px}
  .process-step{grid-template-columns:44px 1fr;gap:12px;min-height:0;padding-block:32px}
  .js .process-step:not(.active){opacity:.62}
  .level{width:42px;height:42px;margin-top:-4px}
  .process-step h3{font-size:27px}
  .process-step p{font-size:15px}
  /* builder: sticky sketch above the options, summary after */
  .builder-layout{display:flex;flex-direction:column;gap:0}
  .wish-preview{display:contents}
  .wish-stage{width:calc(100% + var(--gutter)*2);order:0;position:sticky;top:var(--hh);z-index:6;background:var(--sage);margin-inline:calc(var(--gutter)*-1);padding:10px var(--gutter) 4px;border-bottom:1px solid #cdd6c6;box-shadow:0 14px 24px -22px #0d2b26}
  .preview-top{font-size:11px}
  .preview-badge{font-size:11px}.pool-drawing text{font-size:24px}.pool-drawing .d-extra text{font-size:19px}
  .pool-drawing{margin:2px auto 0;max-height:min(30vh,210px);width:auto;max-width:100%}
  #wish-form{order:1;padding-top:28px}
  .wish-summary{width:calc(100% + var(--gutter)*2);order:2;background:var(--sage);margin:8px calc(var(--gutter)*-1) 0;padding:24px var(--gutter)}
  legend{font-size:21px}
  .sizes{grid-template-columns:repeat(4,1fr);gap:6px}
  .choice>span{min-height:70px;font-size:13px;padding:10px 4px;gap:8px}
  .size-ico{width:calc(var(--l)*4.2px);height:calc(var(--w)*4.2px)}
  .three{grid-template-columns:repeat(3,1fr)}
  .two .choice>span,.three .choice>span{flex-direction:column;gap:6px;min-height:66px}
  .chip>span{font-size:14px;padding:0 14px 0 10px}
  .btn--wide{max-width:none}
  .wish-summary dl>div{grid-template-columns:34% 1fr;gap:12px}
  .maintenance-layout{display:flex;flex-direction:column-reverse;gap:34px}
  .care-image{position:static;width:100%}
  .care-image__frame{aspect-ratio:4/3}
  summary{font-size:19px;min-height:64px}
  details>p{font-size:15px;padding-right:10px}
  .contact-rings{width:520px;height:520px;margin-top:-260px;right:-260px}
  .contact h2{font-size:clamp(32px,9vw,44px)}
  .contact-links{margin-top:36px}
  .contact-big{font-size:clamp(26px,8vw,34px)}
  .contact-arrow{width:46px;height:46px}
  .footer{padding-top:52px;padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .footer-main{gap:30px 20px;padding-bottom:36px}
  .footer-main>.brand,.footer-social{grid-column:1/-1}
  .footer-social{flex-direction:row;flex-wrap:wrap;gap:4px 22px}
  .footer-social h3{width:100%;margin-bottom:4px}
  .footer p{font-size:14px}
  .footer-bottom{display:grid;grid-template-columns:1fr 48px;gap:18px}
  .footer-bottom p:first-child{grid-column:1/-1}
  .footer-bottom>.to-top{grid-row:2;grid-column:2}
}
@media(max-width:700px) and (max-height:640px){.wish-stage{position:relative;top:auto}}
@media(max-width:380px){.sizes{grid-template-columns:repeat(3,1fr)}.side__actions{flex-direction:column;gap:0}}

/* ---------- reduced motion: everything static and visible ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .hero__media{transform:none!important}
  .intro-replay{display:none!important}
  .hero__video,.hero__start,.surface-veil{display:none!important}
  .intro-hidden [data-intro-content]{visibility:visible!important}
  .intro-hidden .shade{opacity:1!important}
  .hero>.caustics{opacity:.45}.caustics--deep{opacity:.05}
  [data-reveal]{opacity:1!important;transform:none!important}
  .depth img{transform:none!important}
  .ripples{display:none}.contact-rings i{opacity:.7}.contact-rings i:nth-child(1){transform:scale(.45)}.contact-rings i:nth-child(2){transform:scale(.72)}
}

/* clean build: logo placeholder */
.logo-placeholder{display:inline-flex;align-items:center;justify-content:center;min-width:150px;min-height:44px;padding:0 14px;border:1.5px dashed currentColor;font:400 17px/1 var(--serif);letter-spacing:.08em;opacity:.9}
.footer .logo-placeholder{min-height:52px}
