:root { --ink:#09202d; --muted:#607783; --paper:#f8fbfc; --line:rgba(70,118,139,.18); --aqua:#7fdce9; --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --display:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --mono:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; color:var(--ink); font-family:var(--sans); background:radial-gradient(circle at 5% 12%,rgba(126,224,244,.13),transparent 25rem),radial-gradient(circle at 95% 11%,rgba(158,193,255,.1),transparent 28rem),var(--paper); transition:background .75s ease,color .45s ease; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button { cursor:pointer; }
.section-wrap { width:min(1060px,calc(100% - 48px)); margin-inline:auto; }
.reveal { opacity:0; transform:translateY(12px); transition:opacity .5s ease,transform .5s ease; }
.reveal.visible { opacity:1; transform:none; }

.site-header { width:min(1210px,calc(100% - 48px)); min-height:65px; margin:16px auto 0; padding:9px 11px 9px 16px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; position:sticky; top:12px; z-index:10; border:1px solid rgba(255,252,247,.88); border-radius:21px; background:rgba(255,250,244,.64); box-shadow:0 14px 34px rgba(108,70,45,.11),inset 0 1px 0 white; backdrop-filter:blur(22px) saturate(145%); -webkit-backdrop-filter:blur(22px) saturate(145%); }
.brand { display:inline-flex; align-items:center; gap:10px; justify-self:start; }
.header-logo { display:block; width:93px; height:auto; }
.brand-divider { width:1px; height:26px; background:rgba(122,86,62,.24); }
.brand-copy { display:flex; flex-direction:column; gap:2px; line-height:1; }
.brand-copy b { font:700 9px var(--display); letter-spacing:.1em; }
.brand-copy small { color:var(--muted); font:500 7px var(--mono); letter-spacing:.11em; }
.solution-switch { display:flex; gap:3px; padding:3px; border:1px solid rgba(255,252,247,.88); border-radius:15px; background:rgba(255,250,244,.45); box-shadow:inset 0 1px 0 white; }
.solution-tab { min-height:35px; padding:0 16px; border:1px solid transparent; border-radius:11px; background:transparent; color:#7c6a5d; font-size:11px; font-weight:600; }
.solution-tab.active { border-color:rgba(255,252,247,.92); background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,215,169,.78)); color:var(--ink); box-shadow:0 5px 12px rgba(147,92,47,.12),inset 0 1px 0 white; }
.header-cta { justify-self:end; display:inline-flex; align-items:center; gap:10px; padding:11px 14px; border:1px solid rgba(255,252,247,.85); border-radius:14px; background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(255,211,162,.78)); box-shadow:0 6px 16px rgba(143,90,46,.11),inset 0 1px 0 white; font-size:11px; font-weight:700; }
.header-cta span { color:#a85b31; font-size:16px; }

.hero { min-height:640px; display:grid; grid-template-columns:1.18fr .82fr; align-items:center; gap:80px; padding:60px 0 82px; }
.eyebrow { margin:0; color:#8c5d43; font:500 10px var(--mono); letter-spacing:.13em; }
h1,h2,p { margin-top:0; }
.hero h1 { max-width:650px; margin:18px 0 20px; font:600 clamp(52px,6vw,79px)/1.02 var(--display); letter-spacing:-.065em; }
.hero-intro { max-width:570px; color:var(--muted); font-size:16px; line-height:1.7; }
.button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; gap:27px; padding:13px 18px; border:1px solid rgba(255,255,255,.86); border-radius:15px; font-size:12px; font-weight:700; transition:transform .18s ease; }
.button:hover { transform:translateY(-2px); }
.button span { color:#a85b31; font-size:19px; }
.button-primary { margin-top:22px; background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(255,213,165,.82)); box-shadow:0 11px 24px rgba(139,88,44,.14),inset 0 1px 0 white; }
.experience-line { display:flex; align-items:center; gap:12px; margin-top:42px; color:#836e5f; font:500 9px var(--mono); letter-spacing:.1em; }
.experience-line strong { color:var(--ink); font:600 21px var(--display); letter-spacing:-.06em; }
.experience-line i { width:1px; height:21px; background:var(--line); }
.hero-photo { position:relative; max-width:385px; justify-self:end; padding:9px; border:1px solid rgba(255,252,247,.88); border-radius:28px; background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(252,205,161,.64)); box-shadow:0 24px 50px rgba(92,55,32,.18),inset 0 1px 0 white; }
.hero-photo img { display:block; width:100%; aspect-ratio:.82; object-fit:cover; object-position:50% 18%; border-radius:20px; background:#e7e7e5; filter:grayscale(.3) contrast(1.03); mix-blend-mode:normal; }

.focus-section { padding-bottom:92px; }
.solution-stage { min-height:380px; position:relative; display:grid; grid-template-columns:1fr 290px; overflow:hidden; border:1px solid rgba(255,252,247,.88); border-radius:28px; background:rgba(255,250,244,.56); box-shadow:0 20px 45px rgba(105,66,41,.11),inset 0 1px 0 white; backdrop-filter:blur(19px) saturate(140%); }
.stage-content { max-width:630px; padding:52px 55px; position:relative; z-index:1; }
.stage-content h2,.booking-intro h2 { margin:17px 0; font:600 clamp(36px,4vw,55px)/1.06 var(--display); letter-spacing:-.06em; }
.stage-content > p:not(.eyebrow) { max-width:520px; color:var(--muted); font-size:14px; line-height:1.7; }
.simple-points { display:flex; flex-wrap:wrap; gap:7px; margin:25px 0 21px; }
.simple-points span { padding:7px 10px; border:1px solid rgba(255,252,247,.75); border-radius:18px; background:rgba(255,250,244,.42); color:#786552; font-size:10px; }
.product-offerings { max-width:540px; margin:18px 0 0; padding:12px 14px; border:1px solid rgba(74,149,181,.22); border-radius:15px; background:rgba(235,249,252,.48); color:#486570; font-size:12px; line-height:1.6; }
.product-offerings strong { color:var(--ink); font-weight:650; }
.text-link { display:inline-flex; align-items:center; gap:10px; padding-bottom:5px; border-bottom:1px solid #806753; font-size:12px; font-weight:700; }
.text-link span { color:#a85b31; font-size:17px; }
.focus-orb { position:absolute; inset:0 0 0 auto; width:290px; overflow:hidden; border-left:1px solid rgba(255,252,247,.7); background:linear-gradient(145deg,rgba(255,238,214,.88),rgba(244,191,139,.75)); }
.focus-orb::before,.focus-orb::after { content:""; position:absolute; border:1px solid rgba(143,86,51,.15); border-radius:50%; }
.focus-orb::before { width:390px; height:390px; right:-120px; top:-76px; }
.focus-orb::after { width:255px; height:255px; right:2px; top:6px; }
.water-test-animation,.air-test-animation { position:absolute; inset:0; display:grid; place-items:center; opacity:0; pointer-events:none; }
.ro-scene { position:relative; width:208px; height:281px; isolation:isolate; }
.ro-scene::after { content:""; position:absolute; z-index:-1; left:12px; bottom:-8px; width:183px; height:24px; border-radius:50%; background:rgba(63,169,204,.18); filter:blur(9px); }
.ro-tap { position:absolute; left:0; top:0; width:205px; height:138px; filter:drop-shadow(0 16px 18px rgba(20,97,126,.16)); }
.ro-deck { position:absolute; z-index:3; left:34px; top:105px; width:64px; height:18px; border:1px solid rgba(246,254,255,.94); border-radius:6px; background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(138,209,233,.76)); box-shadow:inset 0 3px 5px rgba(255,255,255,.74),0 5px 9px rgba(38,112,146,.12); }
.ro-neck { position:absolute; z-index:2; left:52px; top:14px; width:15px; height:101px; border:1px solid rgba(246,254,255,.95); border-radius:5px; background:linear-gradient(90deg,rgba(255,255,255,.99),rgba(148,215,238,.78)); box-shadow:inset 4px 0 5px rgba(255,255,255,.48),5px 0 9px rgba(36,112,151,.1); }
.ro-neck::before { content:""; position:absolute; left:6px; top:-1px; width:107px; height:16px; border:1px solid rgba(246,254,255,.95); border-radius:5px; background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(139,208,232,.78)); box-shadow:inset 0 3px 4px rgba(255,255,255,.76); }
.ro-neck::after { content:""; position:absolute; left:-4px; bottom:1px; width:22px; height:12px; border:1px solid rgba(246,254,255,.9); border-radius:4px; background:linear-gradient(90deg,rgba(255,255,255,.96),rgba(137,205,228,.76)); }
.ro-handle { position:absolute; z-index:5; left:15px; top:76px; width:37px; height:9px; border:1px solid rgba(246,254,255,.95); border-radius:3px; background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(143,211,233,.78)); box-shadow:inset 0 2px 3px rgba(255,255,255,.84),0 4px 7px rgba(39,116,149,.1); transform:rotate(-14deg); transform-origin:right center; }
.ro-handle::after { content:""; position:absolute; left:-8px; top:-4px; width:16px; height:16px; border:1px solid rgba(246,254,255,.96); border-radius:4px; background:linear-gradient(135deg,#fff,rgba(151,216,237,.92)); }
.ro-spout { position:absolute; z-index:4; left:158px; top:25px; width:17px; height:94px; border:1px solid rgba(246,254,255,.96); border-radius:5px; background:linear-gradient(90deg,rgba(255,255,255,.99),rgba(137,207,231,.78)); box-shadow:inset 0 2px 3px rgba(255,255,255,.74); }
.ro-spout::after { content:""; position:absolute; right:-5px; bottom:-4px; width:26px; height:7px; border:1px solid rgba(246,254,255,.96); border-radius:4px; background:linear-gradient(90deg,rgba(255,255,255,.92),rgba(103,194,224,.82)); }
.ro-stream { position:absolute; z-index:3; left:163px; top:117px; width:9px; height:73px; border-radius:999px; background:linear-gradient(90deg,rgba(255,255,255,.72),rgba(179,241,255,1) 55%,rgba(63,169,204,.66)); box-shadow:0 0 13px rgba(204,251,255,.84); transform-origin:top center; }
.ro-stream::before,.ro-stream::after { content:""; position:absolute; top:3px; height:73px; border-radius:999px; background:rgba(229,255,255,.72); }.ro-stream::before { left:-4px; width:2px; }.ro-stream::after { right:-4px; width:2px; animation:ro-water-shimmer .8s linear infinite; }
.ro-glass { position:absolute; left:130px; top:176px; width:78px; height:105px; overflow:hidden; border:2px solid rgba(246,254,255,.92); border-top:0; border-radius:0 0 22px 22px; background:linear-gradient(90deg,rgba(255,255,255,.26),rgba(218,248,255,.09) 55%,rgba(255,255,255,.18)); box-shadow:inset 11px 0 15px rgba(255,255,255,.34),inset -8px -10px 17px rgba(76,169,201,.15),0 16px 28px rgba(25,102,135,.16); }
.ro-glass::before { content:""; position:absolute; z-index:4; top:0; left:-8px; width:90px; height:11px; border:2px solid rgba(246,254,255,.94); border-radius:10px; background:rgba(224,251,255,.48); }
.ro-glass::after { content:""; position:absolute; z-index:5; top:14px; right:9px; width:5px; height:56px; border-radius:999px; background:linear-gradient(180deg,rgba(255,255,255,.64),transparent); opacity:.72; }
.ro-fill { position:absolute; left:-5%; bottom:-4%; width:110%; height:9%; border-radius:48% 48% 18px 18px; background:linear-gradient(180deg,rgba(215,255,255,.96),rgba(53,171,207,.96)); box-shadow:inset 0 9px 17px rgba(255,255,255,.42); }
.ro-fill::after { content:""; position:absolute; left:-6%; top:-5px; width:112%; height:10px; border-radius:50%; background:linear-gradient(90deg,rgba(255,255,255,.7),rgba(181,245,255,.95),rgba(255,255,255,.7)); animation:ro-water-surface 1.15s ease-in-out infinite; }
.ro-bubble { position:absolute; z-index:2; width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.92); opacity:0; }
.ro-bubble-one { left:17px; bottom:24px; }.ro-bubble-two { left:48px; bottom:19px; width:5px; height:5px; }.ro-bubble-three { left:33px; bottom:47px; width:4px; height:4px; }
.solution-stage:not(.air-mode) .water-test-animation { opacity:1; }
.solution-stage:not(.air-mode) .ro-tap { animation:ro-tap-settle 5.6s ease-in-out infinite; }
.solution-stage:not(.air-mode) .ro-handle { animation:ro-handle-turn 5.6s ease-in-out infinite; }
.solution-stage:not(.air-mode) .ro-stream { animation:ro-stream-flow 5.6s ease-in-out infinite; }
.solution-stage:not(.air-mode) .ro-fill { animation:ro-glass-refill 5.6s cubic-bezier(.4,0,.2,1) infinite; }
.solution-stage:not(.air-mode) .ro-bubble { animation:ro-bubble-rise 2s ease-in infinite; }.solution-stage:not(.air-mode) .ro-bubble-two { animation-delay:.5s; }.solution-stage:not(.air-mode) .ro-bubble-three { animation-delay:1.05s; }
@keyframes ro-tap-settle { 0%,100% { transform:translateY(0); } 54% { transform:translateY(-2px); } }
@keyframes ro-handle-turn { 0%,9% { transform:rotate(-14deg); } 16%,84% { transform:rotate(0deg); } 93%,100% { transform:rotate(-14deg); } }
@keyframes ro-stream-flow { 0%,9% { opacity:0; transform:scaleY(.08); } 16%,83% { opacity:1; transform:scaleY(1); } 91%,100% { opacity:0; transform:scaleY(.08); } }
@keyframes ro-glass-refill { 0%,11% { height:9%; } 22% { height:17%; } 77% { height:76%; } 89% { height:72%; } 100% { height:9%; } }
@keyframes ro-bubble-rise { 0%,10% { transform:translateY(0) scale(.4); opacity:0; } 24% { opacity:.9; } 88%,100% { transform:translateY(-61px) scale(1); opacity:0; } }
@keyframes ro-water-surface { 0%,100% { transform:translateX(-3px) scaleX(.94); } 50% { transform:translateX(3px) scaleX(1.05); } }
@keyframes ro-water-shimmer { 0%,100% { opacity:.2; transform:translateY(-2px); } 50% { opacity:.8; transform:translateY(4px); } }
.solution-stage.air-mode .focus-orb { background:linear-gradient(145deg,rgba(249,244,234,.94),rgba(218,201,168,.76)); }
.uv-scene { position:relative; width:222px; height:184px; display:grid; place-items:center; }
.uv-scene::before { content:""; position:absolute; width:218px; height:142px; border-radius:50%; background:radial-gradient(circle,rgba(83,191,255,.42),rgba(101,192,255,.16) 38%,transparent 72%); filter:blur(13px); opacity:.9; }
.uv-chamber { position:relative; isolation:isolate; width:220px; height:182px; overflow:hidden; border:1px solid rgba(255,253,246,.9); border-radius:32px; background:radial-gradient(circle at 72% 40%,rgba(203,243,255,.64),rgba(243,236,221,.58) 43%,rgba(164,136,92,.19)); box-shadow:inset 12px 11px 20px rgba(255,255,255,.62),inset -13px -16px 24px rgba(94,70,37,.14),0 20px 34px rgba(88,68,37,.13); }
.uv-chamber::before { content:""; position:absolute; z-index:7; left:30px; top:25px; width:160px; height:43px; border:1px solid rgba(250,252,255,.3); border-radius:10px; background:linear-gradient(140deg,#172d3b,#081623 68%,#04101a); box-shadow:inset 0 4px 8px rgba(255,255,255,.08),0 10px 18px rgba(12,42,59,.24); }
.uv-chamber::after { content:""; position:absolute; z-index:10; inset:10px; border:1px solid rgba(255,255,255,.52); border-radius:24px; background:linear-gradient(108deg,rgba(255,255,255,.18),transparent 26%,transparent 75%,rgba(255,255,255,.1)); pointer-events:none; }
.uv-vent { display:none; }
.uv-lamp { position:absolute; z-index:9; left:46px; top:35px; width:128px; height:11px; border:1px solid rgba(239,253,255,.98); border-radius:999px; background:linear-gradient(90deg,#52bfff 0%,#c6f6ff 18%,#fff 50%,#a5edff 78%,#4faeff 100%); box-shadow:0 0 12px rgba(74,196,255,.98),0 0 34px rgba(47,164,255,.72),inset 0 2px 4px white; }
.uv-lamp::before,.uv-lamp::after { content:""; position:absolute; top:-4px; width:14px; height:15px; border:1px solid rgba(235,251,255,.78); border-radius:4px; background:linear-gradient(180deg,#315d74,#152c3e); box-shadow:inset 0 1px 2px rgba(255,255,255,.2); }.uv-lamp::before { left:-8px; }.uv-lamp::after { right:-8px; }
.uv-beam { position:absolute; z-index:2; left:43px; top:46px; width:134px; height:125px; clip-path:polygon(5% 0,95% 0,100% 100%,0 100%); background:linear-gradient(180deg,rgba(71,189,255,.5),rgba(97,207,255,.2) 54%,transparent); filter:blur(.2px); transform:scaleY(.2); transform-origin:top center; opacity:.04; }
.uv-clean-wave { position:absolute; z-index:4; left:48px; top:51px; width:124px; height:4px; border-radius:999px; background:linear-gradient(90deg,transparent,rgba(230,252,255,1),transparent); box-shadow:0 0 8px rgba(97,211,255,1),0 0 19px rgba(41,168,255,.92); opacity:0; transform-origin:left center; }
.uv-particle { position:absolute; z-index:3; display:block; background:rgba(154,84,81,.72); box-shadow:0 0 10px rgba(137,79,69,.28); }
.uv-virus { width:18px; height:18px; border-radius:50%; background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.88),rgba(220,122,119,.9) 42%,rgba(123,55,65,.86)); clip-path:polygon(50% 0%,61% 19%,78% 8%,80% 28%,100% 35%,83% 50%,100% 65%,79% 71%,78% 92%,61% 80%,50% 100%,39% 80%,22% 92%,21% 71%,0 65%,17% 50%,0 35%,20% 28%,22% 8%,39% 19%); }
.uv-bacteria { width:24px; height:11px; border-radius:999px; background:linear-gradient(90deg,rgba(186,123,68,.88),rgba(255,232,181,.92),rgba(166,95,61,.9)); }
.uv-bacteria::before,.uv-bacteria::after { content:""; position:absolute; top:3px; width:8px; height:4px; border-top:1px solid rgba(137,75,55,.76); border-radius:50%; }.uv-bacteria::before { left:-7px; transform:rotate(24deg); }.uv-bacteria::after { right:-7px; transform:rotate(-24deg); }
.uv-virus-one { left:73px; top:103px; }.uv-virus-two { left:163px; top:88px; width:14px; height:14px; }.uv-virus-three { left:135px; top:145px; width:12px; height:12px; }.uv-bacteria-one { left:84px; top:144px; }.uv-bacteria-two { left:149px; top:119px; width:19px; }
.solution-stage.air-mode .air-test-animation { opacity:1; }
.uv-chamber.pulse { animation:uv-chamber-arrive .7s cubic-bezier(.16,.82,.25,1) both; }
.uv-chamber.pulse .uv-lamp { animation:uv-lamp-ignite 5.8s ease-in-out infinite; }
.uv-chamber.pulse .uv-beam { animation:uv-beam-sweep 5.8s ease-in-out infinite; }
.uv-chamber.pulse .uv-clean-wave { animation:uv-clean-sweep 5.8s ease-in-out infinite; }
.uv-chamber.pulse .uv-particle { animation:uv-neutralize 5.8s cubic-bezier(.22,.7,.25,1) infinite both; }.uv-chamber.pulse .uv-virus-two { animation-delay:.48s; }.uv-chamber.pulse .uv-virus-three { animation-delay:.92s; }.uv-chamber.pulse .uv-bacteria-one { animation-delay:1.26s; }.uv-chamber.pulse .uv-bacteria-two { animation-delay:1.58s; }
@keyframes uv-chamber-arrive { from { opacity:0; transform:scale(.86) translateY(12px); } to { opacity:1; transform:scale(1) translateY(0); } }
@keyframes uv-lamp-ignite { 0%,9% { opacity:.58; box-shadow:0 0 8px rgba(74,196,255,.54),0 0 18px rgba(47,164,255,.24),inset 0 2px 4px white; } 17%,77% { opacity:1; box-shadow:0 0 18px rgba(125,227,255,1),0 0 48px rgba(40,162,255,.92),inset 0 2px 4px white; } 89%,100% { opacity:.7; box-shadow:0 0 11px rgba(74,196,255,.72),0 0 25px rgba(47,164,255,.4),inset 0 2px 4px white; } }
@keyframes uv-beam-sweep { 0%,10% { opacity:.03; transform:scaleY(.12); } 20%,78% { opacity:.98; transform:scaleY(1); } 90%,100% { opacity:.08; transform:scaleY(.25); } }
@keyframes uv-clean-sweep { 0%,15% { opacity:0; transform:translateY(-5px) scaleX(.5); } 29%,73% { opacity:1; transform:translateY(101px) scaleX(1); } 86%,100% { opacity:0; transform:translateY(110px) scaleX(.55); } }
@keyframes uv-neutralize { 0%,13% { opacity:0; transform:translate3d(-8px,18px,0) scale(.54) rotate(-24deg); } 20%,44% { opacity:1; transform:translate3d(0,0,0) scale(1) rotate(0deg); filter:blur(0); } 56% { opacity:.96; transform:translate3d(2px,-2px,0) scale(1.16) rotate(32deg); box-shadow:-8px 7px 0 -5px rgba(219,137,97,.92),9px -6px 0 -5px rgba(255,230,164,.9),0 0 15px rgba(91,205,255,.82); } 76%,100% { opacity:0; transform:translate3d(6px,-7px,0) scale(.12) rotate(245deg); filter:blur(3px); box-shadow:0 0 17px rgba(78,197,255,.42); } }
.source-note { margin:15px 0 0; color:#6a8184; font:9px/1.6 var(--mono); }
.source-note a { text-decoration:underline; }

.review-section { display:grid; grid-template-columns:175px 1fr; column-gap:50px; align-items:start; padding:43px 0; border-block:1px solid rgba(255,255,255,.68); }
#reviews { scroll-margin-top:104px; }
.review-label { margin:0; color:#557a7d; font:500 9px var(--mono); letter-spacing:.12em; }
.review-note { max-width:145px; margin:12px 0 0; color:var(--muted); font-size:10px; line-height:1.5; }
.review-carousel { min-width:0; padding:27px 30px 24px; border:1px solid rgba(255,255,255,.78); border-radius:25px; background:rgba(255,255,255,.42); box-shadow:0 18px 44px rgba(42,83,97,.1),inset 0 1px 0 rgba(255,255,255,.86); backdrop-filter:blur(18px) saturate(135%); }
.review-slide { display:none; }
.review-slide.active { display:block; animation:review-in .35s ease; }
.review-slide blockquote { max-width:630px; margin:0; color:#2b4149; font:400 clamp(15px,1.35vw,17px)/1.68 var(--sans); letter-spacing:-.015em; }
.review-slide blockquote p { margin:0; }
.review-slide blockquote p + p { margin-top:1em; }
.review-slide footer { display:flex; align-items:end; justify-content:space-between; gap:22px; margin-top:21px; }
.review-slide footer .review-byline { display:flex; flex-direction:column; gap:5px; }
.review-slide footer b { font-size:11px; }
.review-slide footer small { color:#73858b; font:500 8px var(--mono); letter-spacing:.08em; }
.review-stars { display:inline-flex; align-items:center; gap:6px; color:#e5a327; font-size:12px; letter-spacing:.08em; line-height:1; white-space:nowrap; }
.review-stars small { color:#9d7b42; font-size:8px; letter-spacing:.04em; }
.review-slide footer a { width:max-content; padding-bottom:4px; border-bottom:1px solid #668184; color:#3d6568; font-size:10px; font-weight:700; white-space:nowrap; }
.review-controls { display:flex; align-items:center; gap:11px; margin-top:23px; }
.review-control { width:29px; height:29px; display:grid; place-items:center; border:1px solid rgba(123,153,163,.36); border-radius:50%; background:rgba(255,255,255,.4); color:var(--ink); }
.review-control:not(:disabled):hover { background:rgba(189,239,249,.62); }
.review-control:disabled { cursor:default; opacity:.35; }
.review-controls span { color:var(--muted); font:500 9px var(--mono); letter-spacing:.08em; }
@keyframes review-in { from { opacity:0; transform:translateX(9px); } to { opacity:1; transform:none; } }

.booking-section { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(60px,11vw,140px); padding:100px 0; align-items:start; }
.booking-intro { position:sticky; top:95px; }
.booking-intro > p:last-child { max-width:320px; color:var(--muted); font-size:13px; line-height:1.7; }
.booking-widget { padding:31px 35px; border:1px solid rgba(255,255,255,.85); border-radius:27px; background:rgba(255,255,255,.57); box-shadow:0 20px 50px rgba(32,79,88,.13),inset 0 1px 0 white; backdrop-filter:blur(20px) saturate(145%); }
.booking-step { display:flex; gap:14px; margin-bottom:12px; }
.booking-step > span { color:#519092; font:500 10px var(--mono); padding-top:2px; }
.booking-step p { display:flex; flex-direction:column; gap:4px; margin:0; }
.booking-step b { font-size:12px; }
.booking-step small { color:#7c9093; font-size:10px; }
.calendar { margin:0 0 31px 28px; }
.calendar-head { height:30px; display:flex; align-items:center; justify-content:space-between; }
.calendar-head button { width:29px; height:29px; border:1px solid transparent; border-radius:50%; background:transparent; color:var(--ink); }
.calendar-head button:hover { border-color:var(--line); }
.calendar-head b { font-size:11px; }
.calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; }
.calendar-weekdays { margin-top:10px; color:#7a9093; font:9px var(--mono); }
.calendar-days { gap:1px; margin-top:7px; }
.calendar-days button { height:31px; border:0; border-radius:50%; background:transparent; color:var(--ink); font-size:10px; }
.calendar-days button:not([disabled]):hover { background:rgba(171,246,239,.42); }
.calendar-days button.selected { background:var(--ink); color:white; box-shadow:2px 2px 0 var(--aqua); }
.calendar-days button[disabled] { color:#c7d2d3; cursor:default; }
.calendar-days .empty { display:block; height:31px; }
.time-slots { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 31px 28px; }
.time-slot { min-height:40px; border:1px solid rgba(255,255,255,.82); border-radius:12px; background:rgba(255,255,255,.4); color:#557176; font-size:10px; font-weight:700; }
.time-slot.active { border-color:var(--ink); background:rgba(207,250,246,.72); color:var(--ink); }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:0 0 25px 28px; }
.contact-fields label { display:flex; flex-direction:column; gap:7px; }
.contact-fields label span { color:#70878a; font-size:9px; }
.contact-fields input { min-width:0; width:100%; padding:4px 0 9px; border:0; border-bottom:1px solid #b8c7c9; outline:0; background:transparent; color:var(--ink); font-size:11px; }
.contact-fields input:focus { border-color:var(--ink); }
.field-wide { grid-column:span 2; }
.submit-booking { width:calc(100% - 28px); margin:0 0 0 28px; }
.form-disclaimer { margin:14px 0 0 28px; color:#829396; font-size:8px; }
.booking-success { display:flex; align-items:center; gap:10px; width:calc(100% - 28px); margin:20px 0 0 28px; padding:14px; background:rgba(211,250,246,.72); color:#295254; }
.booking-success > span { width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:var(--aqua); font-size:11px; }
.booking-success p { margin:2px 0 0; font-size:10px; }
.booking-success b { font-size:11px; }
.submit-booking:disabled { cursor:default; opacity:.72; }
.honeypot { display:none !important; }

/* Anti-gravity glass: slow staggered drift with a tactile hover lift. */
.hero-photo,.solution-stage,.review-carousel,.booking-widget { transform-style:preserve-3d; will-change:transform; transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s ease; }
@media (prefers-reduced-motion:no-preference) {
  .hero-photo.visible,.solution-stage,.review-section.visible .review-carousel,.booking-widget.visible { animation:anti-gravity-drift 8s ease-in-out infinite; }
  .solution-stage { animation-delay:-2.2s; }
  .review-section.visible .review-carousel { animation-delay:-4.8s; }
  .booking-widget.visible { animation-delay:-1.1s; }
}
@media (hover:hover) {
  .hero-photo.visible:hover,.solution-stage:hover,.review-section.visible .review-carousel:hover,.booking-widget.visible:hover { animation-play-state:paused; transform:translate3d(0,-8px,0) scale(1.004); box-shadow:0 29px 60px rgba(35,73,88,.16),inset 0 1px 0 rgba(255,255,255,.92); }
}
@keyframes anti-gravity-drift { 0%,100% { transform:translate3d(0,0,0); } 50% { transform:translate3d(0,-6px,0); } }
@media (prefers-reduced-motion:reduce) { .hero-photo,.solution-stage,.review-carousel,.booking-widget,.ro-tap,.ro-stream,.ro-fill,.ro-bubble,.ro-fill::after,.ro-stream::after,.uv-chamber,.uv-lamp,.uv-beam,.uv-clean-wave,.uv-particle { animation:none !important; } }

.site-footer { width:min(1060px,calc(100% - 48px)); min-height:112px; margin-inline:auto; display:flex; align-items:center; gap:34px; border-top:1px solid rgba(255,255,255,.7); }
.site-footer img { width:126px; height:auto; }
.footer-branch { margin:0; color:#657b7f; font-size:10px; font-style:normal; line-height:1.55; }
.footer-branch span { display:block; color:#8b9a9d; font-size:8px; letter-spacing:.12em; text-transform:uppercase; }
.footer-journal { margin-left:auto; color:#667e82; font:500 8px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.footer-journal span { color:#217e9f; font-size:11px; }
.footer-journal:hover { color:var(--ink); }
.footer-review { color:#667e82; font:500 8px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.footer-review span { color:#217e9f; font-size:11px; }
.footer-review:hover { color:var(--ink); }

/* Water purification: cool blue glass */
.site-header { border-color:rgba(246,254,255,.88); background:rgba(248,253,255,.63); box-shadow:0 14px 34px rgba(31,83,112,.12),inset 0 1px 0 white; }
.brand-divider { background:rgba(59,116,141,.23); }
.solution-switch { border-color:rgba(246,254,255,.88); background:rgba(248,253,255,.46); }
.solution-tab { color:#617987; }
.solution-tab.active { border-color:rgba(246,254,255,.95); background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(181,239,249,.77)); box-shadow:0 5px 12px rgba(35,114,150,.12),inset 0 1px 0 white; }
.header-cta,.button-primary { border-color:rgba(246,254,255,.9); background:linear-gradient(135deg,rgba(255,255,255,.91),rgba(182,239,249,.81)); box-shadow:0 10px 24px rgba(36,112,151,.14),inset 0 1px 0 white; }
.header-cta span,.button span,.text-link span { color:#217e9f; }
.eyebrow { color:#3b7896; }
.experience-line { color:#607c8b; }
.hero-photo { border-color:rgba(246,254,255,.9); background:linear-gradient(135deg,rgba(255,255,255,.83),rgba(162,222,240,.66)); box-shadow:0 24px 50px rgba(24,85,110,.19),inset 0 1px 0 white; }
.solution-stage { border-color:rgba(246,254,255,.9); background:rgba(248,253,255,.57); box-shadow:0 20px 45px rgba(28,91,119,.11),inset 0 1px 0 white; }
.simple-points span { border-color:rgba(246,254,255,.82); background:rgba(246,253,255,.46); color:#547080; }
.text-link { border-color:#5b7888; }
.focus-orb { border-left-color:rgba(246,254,255,.72); background:linear-gradient(145deg,rgba(224,251,255,.9),rgba(139,207,235,.77)); }
.focus-orb::before,.focus-orb::after { border-color:rgba(32,107,140,.16); }
.ro-tap { filter:drop-shadow(0 14px 18px rgba(20,97,126,.14)); }

/* Air quality: light sand glass */
body.air-theme { --ink:#252019; --muted:#746a5b; --paper:#faf9f6; --line:rgba(113,96,70,.17); --aqua:#d2b77f; background:radial-gradient(circle at 5% 12%,rgba(231,213,183,.14),transparent 25rem),radial-gradient(circle at 95% 11%,rgba(219,201,169,.1),transparent 28rem),var(--paper); }
body.air-theme .site-header { border-color:rgba(255,253,248,.9); background:rgba(253,250,244,.66); box-shadow:0 14px 34px rgba(93,77,52,.1),inset 0 1px 0 white; }
body.air-theme .brand-divider { background:rgba(108,91,65,.22); }
body.air-theme .solution-switch { border-color:rgba(255,253,248,.9); background:rgba(253,250,244,.48); }
body.air-theme .solution-tab { color:#716657; }
body.air-theme .solution-tab.active { border-color:rgba(255,253,248,.94); background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(235,221,194,.8)); box-shadow:0 5px 12px rgba(112,91,57,.1),inset 0 1px 0 white; }
body.air-theme .header-cta,body.air-theme .button-primary { border-color:rgba(255,253,248,.88); background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(233,218,187,.8)); box-shadow:0 10px 24px rgba(103,83,49,.12),inset 0 1px 0 white; }
body.air-theme .header-cta span,body.air-theme .button span,body.air-theme .text-link span { color:#8d6b3f; }
body.air-theme .eyebrow { color:#7d6643; }
body.air-theme .experience-line { color:#786d5c; }
body.air-theme .hero-photo { border-color:rgba(255,253,248,.9); background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(229,212,180,.66)); box-shadow:0 24px 50px rgba(83,67,43,.14),inset 0 1px 0 white; }
body.air-theme .solution-stage { border-color:rgba(255,253,248,.9); background:rgba(252,249,242,.6); box-shadow:0 20px 45px rgba(88,72,45,.1),inset 0 1px 0 white; }
body.air-theme .simple-points span { border-color:rgba(255,253,248,.8); background:rgba(252,249,242,.48); color:#6e6658; }
body.air-theme .product-offerings { border-color:rgba(161,131,82,.25); background:rgba(248,242,229,.58); color:#6e6352; }
body.air-theme .text-link { border-color:#79694e; }
body.air-theme .booking-success { background:rgba(238,226,199,.76); color:#5b4c37; }
body.air-theme .booking-success > span { background:#d6b77c; color:#403421; }
body.air-theme .footer-journal span { color:#8d6b3f; }
body.air-theme .footer-review span { color:#8d6b3f; }
@media (hover:hover) { body.air-theme .hero-photo.visible:hover,body.air-theme .solution-stage:hover,body.air-theme .review-section.visible .review-carousel:hover,body.air-theme .booking-widget.visible:hover { box-shadow:0 29px 60px rgba(88,72,45,.14),inset 0 1px 0 rgba(255,255,255,.92); } }

@media (max-width:800px) { .section-wrap,.site-header,.site-footer { width:min(100% - 32px,590px); } .site-header { grid-template-columns:1fr auto; min-height:65px; gap:10px; } .header-logo { width:87px; } .brand-divider { height:23px; } .solution-switch { grid-column:1 / -1; grid-row:2; width:100%; } .solution-tab { flex:1; min-height:42px; } .header-cta { display:none; } .hero { min-height:0; grid-template-columns:1fr; gap:37px; padding:55px 0 65px; } .hero h1 { font-size:clamp(46px,13vw,64px); } .hero-photo { max-width:360px; justify-self:start; } .focus-section { padding-bottom:70px; } .solution-stage { min-height:615px; grid-template-columns:1fr; } .stage-content { padding:37px 27px; } .focus-orb { top:auto; bottom:0; width:100%; height:255px; border-left:0; border-top:1px solid rgba(255,255,255,.68); } .water-test-animation,.air-test-animation { transform:scale(.84); transform-origin:50% 50%; } .review-section { grid-template-columns:1fr; gap:18px; } .review-slide footer { align-items:start; flex-direction:column; } .review-control { width:38px; height:38px; } .booking-section { grid-template-columns:1fr; gap:37px; padding:72px 0; } .booking-intro { position:static; } .booking-widget { padding:27px 18px; } .calendar-head button,.calendar-days button,.calendar-days .empty { height:36px; } .time-slot { min-height:44px; } .site-footer { flex-wrap:wrap; gap:17px; padding:26px 0; } .footer-branch { width:100%; } .footer-journal { margin-left:0; } }
@media (max-width:430px) { .experience-line { align-items:flex-start; flex-wrap:wrap; } .experience-line i { display:none; } .experience-line span:last-child { width:100%; } .calendar,.time-slots,.contact-fields { margin-left:0; } .time-slots,.contact-fields { grid-template-columns:1fr; } .field-wide { grid-column:span 1; } .submit-booking { width:100%; margin-left:0; } .form-disclaimer { margin-left:0; } }

/* Mobile refinement: center key moments and keep every touch target comfortably spaced. */
@media (max-width:800px) {
  .section-wrap,.site-header,.site-footer { width:min(100% - 28px,590px); }
  .site-header { margin-top:12px; padding:10px 12px 12px; border-radius:19px; }
  .solution-switch { margin-top:3px; }
  .hero { gap:31px; padding:48px 0 66px; text-align:center; }
  .hero h1,.hero-intro { margin-inline:auto; }
  .hero .button { width:min(100%,330px); }
  .experience-line { justify-content:center; margin-top:29px; }
  .hero-photo { max-width:326px; justify-self:center; margin-top:3px; }
  .focus-section { padding-bottom:64px; }
  .solution-stage { min-height:600px; border-radius:24px; }
  .stage-content { padding:36px 24px 31px; text-align:center; }
  .stage-content > p:not(.eyebrow) { margin-inline:auto; }
  .product-offerings { text-align:left; }
  .simple-points { justify-content:center; margin:21px 0; }
  .focus-orb { height:240px; }
  .water-test-animation,.air-test-animation { transform:scale(.78); }
  .source-note { max-width:420px; margin:17px auto 0; text-align:center; }
  .review-section { gap:20px; padding:40px 0; }
  .review-heading { text-align:center; }
  .review-note { margin-inline:auto; }
  .review-carousel { padding:25px 21px 23px; border-radius:22px; }
  .review-slide footer { align-items:center; text-align:center; }
  .review-controls { justify-content:center; margin-top:20px; }
  .booking-section { gap:34px; padding:76px 0; }
  .booking-intro { text-align:center; }
  .booking-intro > p:last-child { margin-inline:auto; }
  .booking-widget { padding:27px 22px; border-radius:24px; }
  .calendar,.time-slots,.contact-fields { margin-left:0; }
  .time-slots { margin-bottom:28px; }
  .submit-booking { width:100%; margin-left:0; }
  .form-disclaimer { margin-left:0; text-align:center; }
  .booking-success { width:100%; margin-left:0; }
  .site-footer { display:grid; grid-template-columns:1fr auto auto; justify-items:end; gap:16px 13px; padding:30px 0 32px; text-align:right; }
  .site-footer img,.footer-branch { grid-column:1 / -1; justify-self:start; text-align:left; }
  .footer-branch { width:auto; }
  .footer-journal { grid-column:2; justify-self:end; margin-left:0; }
  .footer-review { grid-column:3; justify-self:end; margin-left:0; }
}

@media (max-width:430px) {
  .section-wrap,.site-header,.site-footer { width:calc(100% - 24px); }
  .site-header { gap:8px; }
  .header-logo { width:80px; }
  .brand { gap:8px; }
  .brand-copy b { font-size:8px; }
  .brand-copy small { font-size:6.5px; }
  .hero { padding:43px 0 59px; }
  .hero h1 { font-size:clamp(42px,12.5vw,53px); }
  .hero-intro { font-size:15px; }
  .experience-line { flex-wrap:nowrap; }
  .experience-line span:last-child { width:auto; }
  .solution-stage { min-height:584px; }
  .stage-content { padding:32px 20px 27px; }
  .focus-orb { height:231px; }
  .water-test-animation,.air-test-animation { transform:scale(.73); }
  .simple-points { gap:6px; }
  .simple-points span { padding:7px 9px; }
  .review-carousel { padding:23px 18px 21px; }
  .booking-section { padding:66px 0; }
  .booking-widget { padding:25px 17px; }
  .calendar-head button,.calendar-days button,.calendar-days .empty { height:40px; }
  .time-slot { min-height:48px; }
}
