Description
Clear Comfort CCW100 AOP Pool System*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }:root { –blue-lightest: #e9f7ff; –blue-light: #dff2ff; –blue-mid: #c6e7ff; –blue-border: #d7ebff; –blue-soft: #f3fbff; –blue-accent: #0a79c6; –blue-deep: #0a4f7a; –blue-navy: #071a2b; –blue-mid-dark: #12324b; –blue-hero-grad: #19a6db; –white: #ffffff; –off-white: #fdfeff; –text-main: #071a2b; –text-mid: #12324b; –text-soft: #4a6a82; –sans: ‘DM Sans’, system-ui, sans-serif; –serif: ‘DM Serif Display’, Georgia, serif;}html { scroll-behavior: smooth; }body { background: var(–white); color: var(–text-main); font-family: var(–sans); font-weight: 300; overflow-x: hidden;}/* ── SCROLL REVEAL ── */.reveal { opacity: 0; transform: translateY(32px); transition: opacity 0.75s cubic-bezier(0.22,1,0.36,1), transform 0.75s cubic-bezier(0.22,1,0.36,1);}.reveal.from-left { transform: translateX(-36px); }.reveal.from-right { transform: translateX(36px); }.reveal.scale-in { transform: scale(0.95); }.reveal.visible { opacity: 1; transform: none; }.reveal.delay-1 { transition-delay: 0.1s; }.reveal.delay-2 { transition-delay: 0.2s; }.reveal.delay-3 { transition-delay: 0.32s; }.reveal.delay-4 { transition-delay: 0.46s; }.reveal.delay-5 { transition-delay: 0.62s; }/* ── HERO ── */.hero { background: linear-gradient(160deg, #e9f7ff 0%, #f5fbff 45%, #e0f2ff 100%); padding: 90px 48px 80px; position: relative; overflow: hidden;}.hero-orb { position: absolute; border-radius: 50%; pointer-events: none;}.hero-orb-1 { width: 600px; height: 600px; background: radial-gradient(circle, rgba(10,121,198,0.08) 0%, transparent 70%); top: -160px; right: -120px;}.hero-orb-2 { width: 340px; height: 340px; background: radial-gradient(circle, rgba(25,166,219,0.07) 0%, transparent 70%); bottom: -60px; left: -40px;}.hero-inner { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; position: relative; z-index: 2;}.hero-eyebrow { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px; border-radius: 999px; background: var(–blue-light); border: 1px solid var(–blue-mid); color: var(–blue-deep); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 22px;}.hero-title { font-family: var(–serif); font-size: clamp(42px, 5.5vw, 72px); font-weight: 400; line-height: 1.05; letter-spacing: -0.5px; color: var(–blue-navy); margin-bottom: 22px;}.hero-title em { font-style: italic; color: var(–blue-accent);}.hero-sub { font-size: 17px; line-height: 1.75; color: var(–text-mid); max-width: 500px; margin-bottom: 36px;}.hero-stats { display: flex; gap: 28px; padding: 22px 0; border-top: 1px solid var(–blue-border);}.hero-stat-num { font-family: var(–serif); font-size: 32px; font-weight: 400; color: var(–blue-navy); line-height: 1;}.hero-stat-label { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(–text-soft); margin-top: 4px;}.badge-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; align-items: center;}.badge { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; background: var(–white); border: 1px solid var(–blue-border); border-radius: 100px; font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(–blue-deep); box-shadow: 0 4px 12px rgba(10,121,198,0.07); line-height: 1; white-space: nowrap; position: relative; z-index: 1;}.hero-img-wrap { position: relative;}.hero-img-wrap img { width: 100%; border-radius: 22px; display: block; border: 1px solid var(–blue-border); box-shadow: 0 32px 64px rgba(7,26,43,0.14), 0 8px 20px rgba(7,26,43,0.08);}.hero-badge { position: absolute; bottom: -18px; left: -18px; background: var(–blue-navy); color: white; border-radius: 16px; padding: 14px 18px; font-size: 11px; font-weight: 600; letter-spacing: 0.5px; box-shadow: 0 12px 32px rgba(7,26,43,0.25);}.hero-badge span { display: block; font-family: var(–serif); font-size: 20px; font-weight: 400; margin-top: 2px; color: var(–blue-mid);}/* ── SECTION EYEBROW ── */.section-eyebrow { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border-radius: 999px; background: var(–blue-soft); border: 1px solid var(–blue-border); color: var(–blue-deep); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 16px;}.section-title { font-family: var(–serif); font-size: clamp(34px, 4vw, 56px); font-weight: 400; line-height: 1.06; letter-spacing: -0.5px; color: var(–blue-navy); margin-bottom: 18px;}.section-title em { font-style: italic; color: var(–blue-accent); }.section-body { font-size: 16px; line-height: 1.8; color: var(–text-mid); margin-bottom: 28px;}/* ── PARALLAX QUOTE BAND ── */.parallax-band { position: relative; height: 420px; overflow: hidden; display: flex; align-items: center; justify-content: center;}.parallax-bg { position: absolute; inset: -80px 0; background: linear-gradient(160deg, #071a2b 0%, #0d3352 50%, #071a2b 100%); will-change: transform;}.parallax-bg-overlay { position: absolute; inset: -80px 0; background-image: url(‘https://cdn.shopify.com/s/files/1/0922/3326/9536/files/ClearComfortAOPPoolSystemWithInstallationKitAdvancedOxidationProcessCCW100-SYSMANDiscountPoolMart1.jpg?v=1738617551’); background-size: cover; background-position: center; opacity: 0.06; will-change: transform;}.parallax-content { position: relative; z-index: 2; text-align: center; padding: 0 24px; max-width: 860px;}.parallax-content blockquote { font-family: var(–serif); font-size: clamp(26px, 4vw, 48px); font-weight: 400; font-style: italic; color: #ffffff; line-height: 1.22; letter-spacing: -0.3px; text-shadow: 0 2px 20px rgba(0,0,0,0.3);}.parallax-content cite { display: block; margin-top: 20px; font-family: var(–sans); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: #7ecfff; font-style: normal; opacity: 1;}/* ── FAMILY SECTION ── */.family-section { padding: 100px 48px; background: var(–white); overflow: hidden;}.family-inner { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center;}.img-frame { position: relative;}.img-frame img { width: 100%; border-radius: 20px; display: block; border: 1px solid var(–blue-border); box-shadow: 0 28px 56px rgba(7,26,43,0.12);}.img-frame-glow { position: absolute; top: -20px; right: -20px; width: 140px; height: 140px; border-radius: 50%; background: radial-gradient(circle, rgba(10,121,198,0.15) 0%, transparent 70%); pointer-events: none;}.benefit-list { list-style: none; display: flex; flex-direction: column; gap: 12px; margin-bottom: 28px;}.benefit-list li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; color: var(–text-mid); line-height: 1.55;}.benefit-list li::before { content: ”; display: block; width: 6px; height: 6px; border-radius: 50%; background: var(–blue-accent); margin-top: 7px; flex-shrink: 0;}.card-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 8px;}.mini-card { background: linear-gradient(180deg, var(–blue-soft) 0%, var(–white) 100%); border: 1px solid var(–blue-border); border-radius: 18px; padding: 18px 16px; transition: box-shadow 0.3s ease, transform 0.3s ease;}.mini-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(10,121,198,0.12);}.mini-card-label { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(–blue-deep); font-weight: 700; margin-bottom: 6px;}.mini-card-title { font-family: var(–serif); font-size: 17px; font-weight: 400; color: var(–blue-navy); margin-bottom: 6px;}.mini-card-body { font-size: 13px; color: var(–text-soft); line-height: 1.6;}/* ── CALLOUT CARD ── */.callout-card { background: var(–white); border: 1px solid var(–blue-border); border-radius: 20px; padding: 20px 18px; box-shadow: 0 12px 28px rgba(7,26,43,0.07); display: flex; gap: 14px; align-items: flex-start; margin-top: 18px; max-width: 680px; transition: box-shadow 0.3s ease, transform 0.3s ease;}.callout-card:hover { transform: translateY(-3px); box-shadow: 0 20px 40px rgba(7,26,43,0.1);}.callout-icon { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: linear-gradient(180deg, #2fd2ff 0%, var(–blue-accent) 100%); box-shadow: 0 10px 20px rgba(10,121,198,0.22); flex-shrink: 0; font-size: 20px;}.callout-text-title { font-size: 14px; font-weight: 700; color: var(–blue-navy); margin-bottom: 4px;}.callout-text-body { font-size: 14px; color: var(–text-mid); line-height: 1.6;}/* ── STATS SECTION ── */.stats-section { padding: 90px 48px; background: var(–blue-soft); position: relative; overflow: hidden;}.stats-ring { position: absolute; border-radius: 50%; border: 1px solid var(–blue-border); pointer-events: none;}.stats-inner { max-width: 1320px; margin: 0 auto; position: relative; z-index: 2;}.stats-header { text-align: center; margin-bottom: 56px;}.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; background: var(–blue-border); border-radius: 22px; overflow: hidden; box-shadow: 0 16px 40px rgba(7,26,43,0.08);}.stat-cell { background: var(–white); padding: 44px 28px; text-align: center; transition: background 0.3s ease;}.stat-cell:hover { background: var(–blue-lightest); }.stat-num { font-family: var(–serif); font-size: clamp(40px, 4.5vw, 60px); font-weight: 400; color: var(–blue-navy); line-height: 1; letter-spacing: -1px;}.stat-unit { font-family: var(–serif); font-size: 22px; font-weight: 400; color: var(–text-soft);}.stat-label { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(–text-soft); margin-top: 10px;}.stat-desc { font-size: 13px; color: var(–blue-border); margin-top: 5px; line-height: 1.5; color: var(–text-soft);}/* ── STICKY HOW IT WORKS ── */.sticky-wrapper { position: relative; height: 360vh;}.sticky-stage { position: sticky; top: 0; height: 100vh; background: linear-gradient(160deg, var(–blue-lightest) 0%, #f0faff 50%, var(–blue-soft) 100%); overflow: hidden; display: flex; align-items: center; justify-content: center;}.sticky-orb { position: absolute; border-radius: 50%; pointer-events: none; transition: all 1.2s cubic-bezier(0.22,1,0.36,1);}.sticky-inner { max-width: 1320px; width: 100%; padding: 0 48px; position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;}.sticky-left { position: relative; }.sticky-step-indicator { display: flex; gap: 8px; margin-bottom: 28px;}.step-dot { width: 28px; height: 3px; border-radius: 2px; background: var(–blue-border); transition: background 0.5s ease, width 0.5s ease;}.step-dot.active { background: var(–blue-accent); width: 48px;}.sticky-step-label { font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase; color: var(–blue-accent); font-weight: 700; margin-bottom: 10px;}.sticky-step-title { font-family: var(–serif); font-size: clamp(32px, 3.8vw, 52px); font-weight: 400; color: var(–blue-navy); line-height: 1.1; margin-bottom: 18px; transition: opacity 0.5s ease, transform 0.5s ease;}.sticky-step-body { font-size: 16px; line-height: 1.8; color: var(–text-mid); max-width: 420px; transition: opacity 0.5s ease;}.sticky-right { display: flex; align-items: center; justify-content: center;}/* process visual */.process-visual { width: 320px; height: 320px; position: relative; flex-shrink: 0;}.process-ring { position: absolute; border-radius: 50%; border: 1px solid; top: 50%; left: 50%; transform: translate(-50%,-50%); transition: all 1s cubic-bezier(0.22,1,0.36,1);}.process-ring-1 { width: 320px; height: 320px; border-color: rgba(10,121,198,0.12); animation: rotate-slow 20s linear infinite;}.process-ring-2 { width: 220px; height: 220px; border-color: rgba(10,121,198,0.2); animation: rotate-slow 14s linear infinite reverse;}.process-ring-3 { width: 120px; height: 120px; border-color: rgba(10,121,198,0.35); animation: rotate-slow 8s linear infinite;}@keyframes rotate-slow { from { transform: translate(-50%,-50%) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg); }}.process-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 76px; height: 76px; border-radius: 50%; background: linear-gradient(160deg, var(–blue-hero-grad) 0%, var(–blue-accent) 100%); display: flex; align-items: center; justify-content: center; font-family: var(–serif); font-size: 24px; color: white; font-style: italic; box-shadow: 0 0 40px rgba(10,121,198,0.3); transition: all 1s cubic-bezier(0.22,1,0.36,1);}.process-node { position: absolute; width: 44px; height: 44px; border-radius: 50%; background: rgba(10,121,198,0.06); border: 1px solid var(–blue-border); display: flex; align-items: center; justify-content: center; font-size: 18px; transition: all 0.8s cubic-bezier(0.22,1,0.36,1);}.process-node.active { background: rgba(10,121,198,0.12); border-color: var(–blue-accent); box-shadow: 0 0 20px rgba(10,121,198,0.2);}#node-0 { top: calc(50% – 160px – 22px); left: calc(50% – 22px); }#node-1 { top: calc(50% – 22px); left: calc(50% + 116px); }#node-2 { top: calc(50% + 116px); left: calc(50% – 22px); }#node-3 { top: calc(50% – 22px); left: calc(50% – 160px); }/* mobile steps fallback */.mobile-steps { display: none; }.mobile-step-card { background: var(–white); border: 1px solid var(–blue-border); border-radius: 20px; padding: 26px 22px; border-left: 3px solid var(–blue-accent);}.mobile-step-num { font-size: 10px; letter-spacing: 2.5px; text-transform: uppercase; color: var(–blue-accent); font-weight: 700; margin-bottom: 8px;}.mobile-step-title { font-family: var(–serif); font-size: 24px; font-weight: 400; color: var(–blue-navy); margin-bottom: 10px;}.mobile-step-body { font-size: 14px; line-height: 1.75; color: var(–text-mid);}/* ── COLD PLUNGE / ATHLETES ── */.plunge-section { padding: 110px 48px; background: linear-gradient(160deg, var(–blue-navy) 0%, #0a2a45 70%, var(–blue-navy) 100%); position: relative; overflow: hidden;}.plunge-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 70% 80% at 70% 50%, rgba(25,166,219,0.12) 0%, transparent 65%); pointer-events: none;}.plunge-inner { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; position: relative; z-index: 2;}.plunge-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18); color: #a8e3ff; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 18px;}.plunge-title { font-family: var(–serif); font-size: clamp(34px, 4.5vw, 56px); font-weight: 400; font-style: italic; color: #f0f8ff; line-height: 1.06; margin-bottom: 18px;}.plunge-body { font-size: 16px; line-height: 1.8; color: rgba(255,255,255,0.65); margin-bottom: 28px;}.plunge-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px;}.plunge-pill { display: inline-block; padding: 8px 16px; border-radius: 100px; border: 1px solid rgba(168,227,255,0.25); font-size: 13px; color: rgba(255,255,255,0.7); transition: all 0.3s ease;}.plunge-pill:hover { border-color: #a8e3ff; color: #a8e3ff; background: rgba(168,227,255,0.08);}.plunge-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 24px;}.plunge-mini { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.14); border-radius: 18px; padding: 16px 14px; transition: background 0.3s ease, transform 0.3s ease;}.plunge-mini:hover { background: rgba(255,255,255,0.11); transform: translateY(-3px);}.plunge-mini-label { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: #a8e3ff; font-weight: 700; margin-bottom: 8px;}.plunge-mini ul { list-style: none; font-size: 13px; color: rgba(255,255,255,0.8); line-height: 1.7;}.plunge-mini ul li::before { content: ‘— ‘; color: rgba(168,227,255,0.5);}.plunge-callout { padding: 20px 18px; border-left: 2px solid var(–blue-accent); background: rgba(255,255,255,0.05); border-radius: 0 14px 14px 0;}.plunge-callout-title { font-size: 14px; font-weight: 700; color: white; margin-bottom: 5px;}.plunge-callout-body { font-size: 14px; color: rgba(255,255,255,0.5); line-height: 1.7;}.plunge-img video { width: 100%; border-radius: 20px; display: block; border: 1px solid rgba(255,255,255,0.14); box-shadow: 0 36px 72px rgba(0,0,0,0.35); aspect-ratio: 1/1; object-fit: cover;}/* ── BENEFITS GRID ── */.benefits-section { padding: 110px 48px; background: var(–white);}.benefits-inner { max-width: 1320px; margin: 0 auto;}.benefits-header { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; margin-bottom: 56px;}.benefits-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;}.benefit-card { padding: 28px 22px; border-radius: 20px; border: 1px solid var(–blue-border); background: linear-gradient(180deg, var(–blue-soft) 0%, var(–white) 80%); position: relative; overflow: hidden; transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease;}.benefit-card::before { content: ”; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(–blue-accent), transparent); opacity: 0; transition: opacity 0.4s ease;}.benefit-card:hover { transform: translateY(-6px); box-shadow: 0 20px 44px rgba(10,121,198,0.12);}.benefit-card:hover::before { opacity: 1; }.benefit-icon { font-size: 26px; margin-bottom: 14px; display: block;}.benefit-title { font-family: var(–serif); font-size: 19px; font-weight: 400; color: var(–blue-navy); margin-bottom: 8px; line-height: 1.25;}.benefit-body { font-size: 13px; color: var(–text-soft); line-height: 1.7;}/* ── INSTALL FACTORS ── */.install-section { padding: 90px 48px; background: var(–blue-lightest); position: relative; overflow: hidden;}.install-inner { max-width: 1320px; margin: 0 auto; position: relative; z-index: 2;}.install-header { text-align: center; margin-bottom: 48px;}.install-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;}.install-card { background: var(–white); border: 1px solid var(–blue-border); border-radius: 20px; padding: 26px 20px; transition: background 0.3s ease, transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s ease;}.install-card:hover { background: var(–blue-soft); transform: translateY(-5px); box-shadow: 0 16px 36px rgba(10,121,198,0.1);}.install-icon { width: 46px; height: 46px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 22px; margin-bottom: 14px;}.install-card-title { font-family: var(–serif); font-size: 19px; font-weight: 400; color: var(–blue-navy); margin-bottom: 8px;}.install-card-body { font-size: 13px; color: var(–text-soft); line-height: 1.7;}/* ── FAMILY HEALTH BANNER ── */.family-banner { padding: 80px 48px; background: var(–white);}.family-banner-inner { max-width: 1320px; margin: 0 auto;}.family-banner-card { border-radius: 26px; background: linear-gradient(90deg, var(–blue-accent) 0%, var(–blue-hero-grad) 55%, #5ad6ff 100%); padding: 52px 32px; box-shadow: 0 20px 48px rgba(7,26,43,0.14);}.family-banner-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center;}.family-banner-title { font-family: var(–serif); font-size: clamp(30px, 3.8vw, 48px); font-weight: 400; color: white; line-height: 1.08; margin-bottom: 14px;}.family-banner-body { font-size: 16px; color: rgba(255,255,255,0.88); line-height: 1.75;}.family-banner-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;}.fbc { background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.22); border-radius: 18px; padding: 18px 16px; transition: background 0.3s ease, transform 0.3s ease;}.fbc:hover { background: rgba(255,255,255,0.2); transform: translateY(-3px);}.fbc-title { font-size: 13px; font-weight: 700; color: white; margin-bottom: 6px;}.fbc-body { font-size: 13px; color: rgba(255,255,255,0.8); line-height: 1.6;}/* ── SECTION: image layout ── */.feature-section { padding: 100px 48px; overflow: hidden;}.feature-section.alt { background: var(–blue-soft); }.feature-section.white { background: var(–white); }.feature-inner { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center;}/* ── SPECS + WARRANTY ── */.specs-section { padding: 110px 48px; background: var(–blue-soft); position: relative; overflow: hidden;}.specs-inner { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start;}.specs-table { border: 1px solid var(–blue-border); border-radius: 20px; overflow: hidden; background: var(–white); box-shadow: 0 12px 28px rgba(7,26,43,0.06);}.spec-row { display: flex; align-items: center; padding: 16px 22px; border-bottom: 1px solid var(–blue-border); transition: background 0.2s ease;}.spec-row:last-child { border-bottom: none; }.spec-row:hover { background: var(–blue-lightest); }.spec-key { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(–text-soft); font-weight: 600; width: 200px; flex-shrink: 0;}.spec-val { font-family: var(–serif); font-size: 17px; font-weight: 400; color: var(–blue-navy);}.warranty-card { background: var(–blue-navy); border-radius: 22px; padding: 36px 30px; color: white; position: relative; overflow: hidden; box-shadow: 0 20px 44px rgba(7,26,43,0.2);}.warranty-card::before { content: ”; position: absolute; top: -80px; right: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(25,166,219,0.15) 0%, transparent 70%);}.warranty-title { font-family: var(–serif); font-size: 32px; font-weight: 400; font-style: italic; color: white; margin-bottom: 28px; position: relative;}.warranty-item { display: flex; align-items: flex-start; gap: 14px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,0.08);}.warranty-item:last-of-type { border-bottom: none; }.warranty-dot { width: 8px; height: 8px; border-radius: 50%; background: var(–blue-accent); flex-shrink: 0; margin-top: 6px;}.warranty-text { font-size: 15px; color: rgba(255,255,255,0.75); line-height: 1.5;}.warranty-text strong { display: block; font-family: var(–serif); font-size: 20px; font-weight: 400; color: white; margin-bottom: 2px;}/* ── DIAGRAMS ── */.diagrams-section { padding: 80px 48px 110px; background: var(–white);}.diagrams-inner { max-width: 1320px; margin: 0 auto;}.diagrams-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 44px;}.diagrams-grid img { width: 100%; border-radius: 16px; border: 1px solid var(–blue-border); display: block; transition: transform 0.5s cubic-bezier(0.22,1,0.36,1), box-shadow 0.5s ease;}.diagrams-grid img:hover { transform: scale(1.02); box-shadow: 0 22px 52px rgba(7,26,43,0.1);}/* ── RESPONSIVE ── */@media (max-width: 960px) { .hero-inner, .family-inner, .plunge-inner, .specs-inner, .benefits-header, .feature-inner, .family-banner-grid { grid-template-columns: 1fr; gap: 36px; } .hero { padding: 90px 24px 60px; } .stats-grid, .benefits-grid, .install-grid { grid-template-columns: repeat(2, 1fr); } .diagrams-grid { grid-template-columns: 1fr; } .family-section, .plunge-section, .benefits-section, .install-section, .specs-section, .diagrams-section, .family-banner, .feature-section { padding: 72px 24px; } .stats-section { padding: 72px 24px; } .hero-badge { display: none; } .sticky-wrapper { height: auto !important; } .sticky-stage { position: relative !important; height: auto !important; padding: 72px 24px !important; display: block !important; } .sticky-inner { display: none !important; } .mobile-steps { display: flex; flex-direction: column; gap: 16px; position: relative; z-index: 2; max-width: 600px; margin: 0 auto; } .mobile-steps-header { margin-bottom: 24px; } .mobile-steps-eyebrow { font-size: 10px; letter-spacing: 2.5px; text-transform: uppercase; color: var(–blue-accent); font-weight: 700; margin-bottom: 8px; } .mobile-steps-title { font-family: var(–serif); font-size: 30px; font-weight: 400; color: var(–blue-navy); }}@media (max-width: 600px) { .stats-grid, .benefits-grid, .install-grid, .card-row, .plunge-cards, .family-banner-cards { grid-template-columns: 1fr; } .hero-stats { gap: 18px; } .sticky-stage { padding: 56px 20px !important; }} Clear Comfort CCW100 AOP
Water your family actually
wants to be in.
The CCW100 uses Advanced Oxidation Process technology to eliminate contaminants and reduce chlorine demand to drinking water levels — so your pool feels clean, not chemical.
90 GPM Max flow rate 10W Power draw 5 min Annual service ✓ NSF Certified ✓ 5 Year Warranty ✓ 90-Day Guarantee
NSF CertifiedResidential Pool “Less chlorine than the water you shower in — every single time you swim.” Advanced Oxidation Process Technology
For families & sensitive swimmers
The smart alternative for families who want less chlorine.
AOP reduces chlorine demand to drinking water standards or below — limiting exposure to chloramines and other disinfection by-products that cause irritation and harsh chemical odor.
- Less chlorine smell at the pool surface
- Reduced skin and eye irritation
- Gentler water for kids and frequent swimmers
- Non-corrosive, pH neutral water care
- Works with tablets, liquid chlorine, or salt systems
What you feel Softer water Gentle on skin, eyes, and hair — even for daily swimmers What it protects Your equipment Non-corrosive formula supports long-term surface and equipment protection ⏱️ Designed for easy, low-touch maintenance Annual cartridge exchange in about 5 minutes. Clean, clear water with less chemical handling and less day-to-day adjustment. For athletes & daily use
Ideal for daily cold plunge, recovery, and high-use pools.
Hydroxyl radicals rapidly eliminate organic contaminants introduced through heavy daily use — sweat, body oils, environmental debris — without requiring aggressive chlorination. Maintain sanitary conditions while keeping chlorine extremely low.
Ice bath & recovery tubs Athletic training facilities Swim training pools High bather load Daily cold plunge Why it matters
- Less drying on skin and hair
- Comfortable back-to-back sessions
- No need to over-chlorinate
Great fit for
- Ice bath & recovery tubs
- Athletic training facilities
- High bather load pools
Cleaner water without harsh chemical exposure By reducing chlorine to drinking water levels or less, the CCW100 supports a more comfortable daily recovery environment while maintaining full sanitation performance. Healthy, clean water for the whole family.
Inspired by nature, Clear Comfort technology produces powerful hydroxyl radicals that rapidly oxidize and destroy the toughest contaminants — while reducing the harmful disinfection by-products created during chlorine sanitation.
Eliminate irritation Swim comfortably with less harsh chemical exposure to eyes and skin. Lessen allergy risk Helps reduce irritation linked to chlorine disinfection by-products. Reduce toxic exposure AOP lowers chlorine levels while maintaining full sanitation performance. 5-min annual service Simple cartridge swap once a year — nothing else to think about.
AOP that fits into real equipment pads.
The preassembled manifold fits into just 11 inches of cut pipe and works with most plumbing configurations. Non-corrosive and pH neutral, it’s designed to operate without a degas vessel in typical residential installs.
Manifold 11-inch fit Integrates into common plumbing layouts with minimal disruption. Equipment friendly Non-corrosive Supports long-term protection of pool surfaces and components.
Less chlorine.
Less by-products.
AOP reduces chlorine to drinking water standards or below, while minimizing the harmful disinfection by-products that aggravate sensitive eyes, skin, hair, and respiratory concerns. Compatible with tablets, liquid chlorine, or salt systems — while working to minimize overall chlorine demand.
Chlorine use Any method, minimized Works alongside tablets, liquid, or salt while reducing overall demand. Maintenance 5-min annual swap One cartridge change per year — that’s all it takes.
By the numbers
Performance you can actually measure.
0 GPM Max water flow Handles high-demand residential pools 0 Gallons treated in 8 hours Covers even the largest backyards 0 W Power consumption Less than a nightlight — runs constantly 0 min Annual maintenance One cartridge swap per year. That’s it. How it works AOP in four steps. Step 01 Air enters the system. Ambient air is drawn directly into the CCW100. No water ever enters the unit — keeping it sealed, safe, and virtually maintenance-free between annual cartridge swaps. Step 02 Oxygen becomes atomic oxygen. A patented AOP converts O₂ into highly reactive atomic oxygen (O₁) — one of the most powerful natural oxidizers known. Step 03 Hydroxyl radicals form. Treated air injects into pool plumbing via venturi. When O₁ meets water, it forms hydroxyl radicals — 2.8× stronger than chlorine, naturally. Result Contaminants destroyed. Chlorine minimized. Hydroxyl radicals oxidize organic contaminants on contact, reducing chlorine demand to often below drinking water levels. Step 01 Air enters the system. Ambient air — ordinary oxygen from the environment — is drawn directly into the CCW100. No water ever enters the unit, keeping it sealed, safe, and virtually maintenance-free between annual cartridge swaps. O₂ 🌬️ ⚡ 💧 ✨ Why it matters
Everything you gain.
AOP isn’t just a sanitation upgrade — it’s a fundamentally better relationship with your pool water, built around your family’s health.
💧 The best chlorine alternative Clean, fresh-feeling water with chlorine levels at or below drinking water standards. ⏱️ Easy & quick maintenance Annual cartridge change takes about 5 minutes. Less daily chemistry to manage. ✅ Trusted quality NSF certified and backed by strong system warranties and guarantees. 🏆 Excellent support Dedicated help for installation, setup, and ongoing water chemistry questions. 🌿 Fewer disinfection by-products Hydroxyl radicals attack the organic compounds that react with chlorine to form harmful DBPs. 🛡️ Non-corrosive & pH neutral Protects your surfaces, plumbing, and equipment from aggressive chlorine chemistry. 🔋 10-watt operation Runs all day on less power than a nightlight. Set it and genuinely forget it. 📐 Fits 11 inches of pipe The preassembled manifold integrates into existing plumbing — no major rework required. Installation
What affects installation cost
for a CCW100 AOP system
Pricing varies by pool layout and plumbing work needed. These are the most common factors.
🧩 Existing plumbing Pipe access, pad space, and layout complexity can all influence labor time and approach. 💡 Installer experience First-time installs may include extra setup checks and routing decisions that add time. 📐 Pool-specific needs Custom plumbing runs or unusual equipment layouts can require extra materials and time. 🛠️ Replacing old systems Removing existing UV or sanitizer equipment adds removal, re-plumbing, and possible inspection steps. Specifications
Built to last.
Every detail of the CCW100 is engineered for residential performance, easy integration, and years of reliable operation.
Max Flow Rate90 GPM Treatment Capacity43,200 gal / 8 hrs Dimensions12 ft 8 in × 3 in Injection MethodVenturi Operating Voltage110V – 230V Power Consumption10 watts ApplicationsMedium – large residential CertificationNSF Certified Our guarantee to you. 90-Day Money BackTry it in your pool. Not satisfied? Return it. 5-Year System WarrantyFull coverage on the CCW100 unit itself. 1-Year Cartridge WarrantyYour annual replacement, protected from day one. Dedicated Support Expert help available for installation questions, system setup, and ongoing water chemistry guidance. Technical diagrams
See how it fits in.
// ── SCROLL REVEAL ──────────────────────────────const revealEls = document.querySelectorAll(‘.reveal’);const revealObs = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) e.target.classList.add(‘visible’); });}, { threshold: 0.1, rootMargin: ‘0px 0px -40px 0px’ });revealEls.forEach(el => revealObs.observe(el));// ── PARALLAX ───────────────────────────────────const paraBg = document.getElementById(‘parallax-bg’);const paraImg = document.getElementById(‘parallax-img’);function onScroll() { if (paraBg) { const band = paraBg.closest(‘.parallax-band’); const rect = band.getBoundingClientRect(); const speed = 0.32; const offset = -(rect.top * speed); paraBg.style.transform = `translateY(${offset}px)`; paraImg.style.transform = `translateY(${offset * 0.55}px)`; } driveStickySection();}window.addEventListener(‘scroll’, onScroll, { passive: true });// ── STICKY SCROLL DRIVER ───────────────────────const stickySteps = [ { label: ‘Step 01’, title: ‘Air enters the system.’, body: ‘Ambient air — ordinary oxygen from the environment — is drawn directly into the CCW100. No water ever enters the unit, keeping it sealed, safe, and virtually maintenance-free.’, centerText: ‘O₂’, activeNode: 0, orbA: { top: ‘-100px’, right: ‘-80px’ }, }, { label: ‘Step 02’, title: ‘Oxygen becomes atomic oxygen.’, body: ‘A patented Advanced Oxidation Process converts O₂ into highly reactive atomic oxygen (O₁). This natural process creates one of the most powerful oxidizers known.’, centerText: ‘O₁’, activeNode: 1, orbA: { top: ‘20%’, right: ‘10%’ }, }, { label: ‘Step 03’, title: ‘Hydroxyl radicals form.’, body: ‘Treated air is injected into the pool plumbing via a venturi. When O₁ meets water, it forms hydroxyl radicals — nature’s most powerful natural sanitizer, 2.8× stronger than chlorine.’, centerText: ‘·OH’, activeNode: 2, orbA: { top: ‘40%’, right: ‘-40px’ }, }, { label: ‘Result’, title: ‘Contaminants destroyed. Chlorine minimized.’, body: ‘Hydroxyl radicals oxidize organic contaminants on contact, dramatically reducing the pool’s chlorine demand. The result: sanitary, clear water with chlorine levels often below drinking water standards.’, centerText: ‘✓’, activeNode: 3, orbA: { top: ‘60%’, right: ‘5%’ }, },];let currentStep = -1;function driveStickySection() { const wrapper = document.getElementById(‘sticky-wrapper’); if (!wrapper) return; const rect = wrapper.getBoundingClientRect(); const total = wrapper.offsetHeight – window.innerHeight; const scrolled = -rect.top; const progress = Math.max(0, Math.min(1, scrolled / total)); const stepIndex = Math.min(stickySteps.length – 1, Math.floor(progress * stickySteps.length)); if (stepIndex === currentStep) return; currentStep = stepIndex; const step = stickySteps[stepIndex]; const label = document.getElementById(‘sticky-label’); const title = document.getElementById(‘sticky-title’); const body = document.getElementById(‘sticky-body’); const center = document.getElementById(‘process-center’); [label, title, body].forEach(el => { el.style.transition = ‘none’; el.style.opacity = ‘0’; el.style.transform = ‘translateY(10px)’; }); setTimeout(() => { label.textContent = step.label; title.textContent = step.title; body.textContent = step.body; if (center) center.textContent = step.centerText; [label, title, body].forEach(el => { el.style.transition = ‘opacity 0.45s ease, transform 0.45s ease’; el.style.opacity = ‘1’; el.style.transform = ‘none’; }); }, 160); document.querySelectorAll(‘.step-dot’).forEach((dot, i) => { dot.classList.toggle(‘active’, i === stepIndex); }); document.querySelectorAll(‘.process-node’).forEach((node, i) => { node.classList.toggle(‘active’, i === stepIndex); }); const orbA = document.getElementById(‘orb-a’); if (orbA && step.orbA) { orbA.style.top = step.orbA.top; orbA.style.right = step.orbA.right; }}// ── COUNTER ANIMATION ──────────────────────────function animateCounter(el) { const target = parseInt(el.getAttribute(‘data-target’), 10); const duration = 1600; const start = performance.now(); function tick(now) { const elapsed = now – start; const progress = Math.min(elapsed / duration, 1); const ease = 1 – Math.pow(1 – progress, 3); el.textContent = Math.round(ease * target).toLocaleString(); if (progress { entries.forEach(e => { if (e.isIntersecting) { animateCounter(e.target); counterObs.unobserve(e.target); } });}, { threshold: 0.5 });document.querySelectorAll(‘.counter’).forEach(el => counterObs.observe(el));
Explore more from our collection.
Reviews
There are no reviews yet.