@font-face{font-family:Open;src:url(assets/open-sans.ttf) format("truetype");font-display:swap}
@font-face{font-family:Open Condensed;src:url(assets/open-sans-condensed.ttf) format("truetype");font-weight:700;font-display:swap}
:root{--navy:#00205c;--blue:#385cad;--mint:#52c5b4;--lilac:#d2abff;--paper:#f7f4ee;--ink:#233b60;--line:#dedbd4;--display:"Open Condensed","Arial Narrow",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--navy);font:16px/1.55 Open,Arial,sans-serif}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
p,h1,h2,h3,figure{margin:0}
button,summary,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #496eda;outline-offset:5px}
[id]{scroll-margin-top:25px}
.wrap{width:min(1240px,calc(100% - 104px));margin-inline:auto}
.skip{position:fixed;top:12px;left:12px;z-index:5;transform:translateY(-180%);background:white;padding:10px 14px;border-radius:6px}
.skip:focus{transform:none}
.header{border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:83px;gap:24px}
.logo{width:116px}
nav{display:flex;gap:34px;font-size:.91rem;font-weight:700}
nav a:hover,.faq a:hover,.footer a:hover{text-decoration:underline;text-underline-offset:4px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:12px 21px;border-radius:100px;font-size:.88rem;font-weight:700;line-height:1.4;transition:background .2s,color .2s}
.arrow{display:inline-block;position:relative;width:11px;height:11px;flex:0 0 11px;margin-inline-start:2px;vertical-align:-1px}
.arrow::before,.arrow::after{content:"";position:absolute}
.arrow::before{top:0;right:0;width:7px;height:7px;border-top:1.6px solid currentColor;border-right:1.6px solid currentColor}
.arrow::after{height:1.6px;width:11px;right:0;top:1px;background:currentColor;transform:rotate(-45deg);transform-origin:right center}
.header-cta{border:1px solid var(--navy)}
.header-cta:hover{background:var(--navy);color:white}
.hero{min-height:590px;display:grid;grid-template-columns:1fr 1.04fr;gap:55px;align-items:center;padding-block:44px 50px}
.hero-copy{padding-bottom:4px}
.eyebrow{display:flex;align-items:center;gap:9px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.115em}
.soap-foam{position:relative;display:block;flex:0 0 26px;height:20px;color:var(--blue)}
.soap-foam i{position:absolute;display:block;width:12px;height:12px;left:1px;bottom:1px;border:1.4px solid currentColor;border-radius:50%;background:radial-gradient(circle at 34% 29%,white 0 12%,transparent 16%),linear-gradient(135deg,#fff8,#52c5b45c 58%,#d2abffbb);transform-origin:center;--bubble-delay:0s}
.soap-foam i:nth-child(2){width:9px;height:9px;left:12px;bottom:8px;--bubble-delay:.26s}
.soap-foam i:nth-child(3){width:6px;height:6px;left:20px;bottom:2px;--bubble-delay:.51s}
.soap-foam i::after{content:"";position:absolute;inset:-4px;border:2px dotted currentColor;border-radius:50%;opacity:0}
@keyframes foam-rise{
  0%{opacity:0;transform:translateY(4px) scale(.25)}
  22%,60%{opacity:1;transform:translateY(0) scale(1)}
  72%{opacity:1;transform:translateY(-3px) scale(1.18)}
  74%,87%{opacity:1;transform:translateY(-5px) scale(1.3);border-color:transparent;background:transparent}
  89%,100%{opacity:0;transform:translateY(-7px) scale(1.4)}
}
@keyframes foam-burst{0%,73%,100%{opacity:0}74%{opacity:.85;transform:scale(.55)}88%{opacity:0;transform:scale(1.3)}}
@media(prefers-reduced-motion:no-preference){
  .eyebrow.reveal-in .soap-foam i{animation:foam-rise 1.85s var(--bubble-delay) 2}
  .eyebrow.reveal-in .soap-foam i::after{animation:foam-burst 1.85s var(--bubble-delay) 2}
}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.015em;line-height:1}
h1{font-size:clamp(4.4rem,7.2vw,7.7rem);text-transform:uppercase;margin:0 0 24px;line-height:.91;letter-spacing:-.023em}
h1 em{font-style:normal;color:var(--blue)}
.hero-description{font-size:1.12rem;max-width:410px;color:var(--ink);margin-bottom:26px}
.primary{background:var(--navy);color:white;padding:16px 23px}
.primary:hover{background:var(--blue)}
.fine{font-size:.74rem;color:var(--ink);margin-top:13px}
.hero-photo{position:relative;min-width:0;background:var(--blue);border-radius:32px 32px 110px 32px;overflow:hidden;aspect-ratio:1.12}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 47%}
.hero-photo figcaption{position:absolute;bottom:14px;left:16px;color:white;background:#00205ce8;border-radius:30px;padding:3px 9px;font-size:.65rem}
.features{background:var(--navy);color:white}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);padding-block:26px}
.feature-grid article{display:flex;align-items:center;gap:16px;padding-inline:24px;border-right:1px solid #ffffff36}
.feature-grid article:first-child{padding-left:0}
.feature-grid article:last-child{border:0;padding-right:0}
.feature-grid h2{font-size:1.45rem;letter-spacing:0}
.feature-grid p{font-size:.84rem;margin-top:5px;color:#f0f4fc}
.feature-icon{display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:16px;position:relative}
.feature-icon img{width:29px;max-height:37px;object-fit:contain}
.mint{background:var(--mint)}
.lilac{background:var(--lilac)}
.sky{background:#a9bcff}
.bubbles,.bubbles::before,.bubbles::after{position:absolute;width:22px;height:22px;border:2px solid var(--navy);border-radius:50%}
.bubbles{top:25px;left:15px}
.bubbles::before,.bubbles::after{content:"";width:13px;height:13px;top:-13px;left:15px}
.bubbles::after{width:8px;height:8px;top:9px;left:22px}
.section-space{padding-block:82px}
.section-head h2{font-size:clamp(3.25rem,6vw,5.4rem);text-transform:uppercase;margin-top:12px}
.section-head>p:not(.eyebrow){margin-top:14px}
.steps-grid,.location-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:35px}
.steps-grid{list-style:none;padding:0;margin-bottom:0}
.steps-grid li,.location-grid article{border-radius:21px;padding:25px;min-width:0}
.steps-grid li{border:1px solid var(--line)}
.step-number{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--lilac);font:700 1.45rem/1 var(--display);margin-bottom:22px}
.steps-grid h3,.location-grid h3{font-size:2.2rem}
.steps-grid p,.location-grid p{font-size:.95rem;margin-top:11px;color:var(--ink)}
.locations{background:#e8dafb}
.location-grid article{background:var(--paper);display:flex;flex-direction:column;align-items:flex-start;min-height:207px}
.location-grid p{margin-bottom:22px}
.route{margin-top:auto;font-size:.91rem;font-weight:700;display:inline-flex;align-items:center;gap:12px;border-bottom:1px solid var(--navy);padding-bottom:2px}
.route:hover{color:var(--blue);border-color:var(--blue)}
.faq{display:grid;grid-template-columns:.95fr 1.05fr;gap:45px}
.faq .support-button{margin-top:22px;text-decoration:none}
.faq-list{border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line);padding-block:17px}
summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.32rem}
details[open] summary::after{content:"−"}
details p{margin-top:10px;font-size:.94rem;color:var(--ink)}
details a{text-decoration:underline}
.footer{background:var(--navy);color:white}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:31px;font-size:.86rem}
.footer a:last-child{font-weight:700}
@media(max-width:1050px){
  .wrap{width:calc(100% - 64px)}
  .hero{gap:30px;min-height:auto}
  h1{font-size:clamp(3.8rem,8vw,6rem)}
  .feature-grid article{padding-inline:14px;gap:10px}
  .feature-grid h2{font-size:1.25rem}
}
@media(max-width:740px){
  .wrap{width:calc(100% - 36px)}
  .header-inner{min-height:67px}
  .logo{width:96px}
  nav{display:none}
  .header-cta{padding:9px 13px;font-size:.79rem;gap:9px}
  .hero{grid-template-columns:1fr;gap:25px;padding-block:33px 29px}
  h1{font-size:clamp(2.95rem,12vw,6rem);margin:0 0 18px}
  .hero-description{font-size:1rem;margin-bottom:20px}
  .hero-photo{border-radius:24px 24px 68px 24px;aspect-ratio:1.2}
  .feature-grid,.steps-grid,.location-grid,.faq{grid-template-columns:1fr}
  .feature-grid{padding-block:8px}
  .feature-grid article,.feature-grid article:first-child,.feature-grid article:last-child{padding:14px 0;border-right:0}
  .feature-grid article:not(:last-child){border-bottom:1px solid #ffffff36}
  .feature-icon{width:48px;height:48px;flex-basis:48px;border-radius:12px}
  .feature-icon img{max-height:29px;width:25px}
  .bubbles{top:20px;left:9px}
  .section-space{padding-block:51px}
  .steps-grid,.location-grid{margin-top:26px;gap:12px}
  .steps-grid li,.location-grid article{padding:20px}
  .location-grid article{min-height:0}
  .faq{gap:25px}
  .footer-inner{flex-wrap:wrap}
  .footer-inner p{order:3;width:100%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

[hidden]{display:none!important}
.hero{column-gap:clamp(32px,5.2vw,76px)}
.headline-line{display:block}
.hero-visual{position:relative;isolation:isolate;min-width:0;padding:0 12px 18px 0}
.hero-photo{aspect-ratio:1.12;border-radius:34px 34px 115px 34px}
.hero-photo img{transform:scale(1.015)}
.hero-photo figcaption{bottom:15px}
.hero-bubbles{position:absolute;inset:0;pointer-events:none;z-index:-1}
.hero-bubbles i,.stage-bubble{position:absolute;border:2px solid currentColor;border-radius:50%}
.hero-bubbles i:nth-child(1){width:118px;height:118px;top:-22px;right:-11px;color:var(--mint)}
.hero-bubbles i:nth-child(2){width:52px;height:52px;top:-32px;right:81px;color:var(--blue)}
.hero-bubbles i:nth-child(3){width:122px;height:122px;bottom:-8px;left:-20px;color:var(--lilac)}
.hero-bubbles i:nth-child(4){width:48px;height:48px;bottom:47px;left:-35px;color:var(--mint)}
.hero-bubbles i:nth-child(5){width:26px;height:26px;bottom:-19px;left:73px;color:var(--blue)}
.hero-guide{display:flex;gap:11px;align-items:center;position:absolute;right:0;bottom:2px;min-height:66px;padding:9px 15px 9px 10px;border:1px solid #ddd9d1;border-radius:17px;background:var(--paper);box-shadow:0 12px 28px #00205c24;font-size:.72rem;line-height:1.35;transition:transform .24s,box-shadow .24s}
.hero-guide:hover{transform:translateY(-4px);box-shadow:0 17px 32px #00205c35}
.hero-guide strong{display:block;font-size:.91rem}
.guide-icon{display:grid;place-items:center;background:var(--lilac);border-radius:11px;width:42px;height:42px}
.guide-icon img{width:19px}
.feature-grid article{transition:background .25s}
.feature-icon{transition:transform .25s}
.feature-grid article:hover .feature-icon{transform:translateY(-4px) rotate(-5deg)}

.cycle{margin-top:30px;display:grid;grid-template-columns:.88fr 1.12fr;min-height:320px;border-radius:28px;border:1px solid var(--line);overflow:hidden}
.cycle-stage{display:grid;place-items:center;position:relative;isolation:isolate;overflow:hidden;min-height:300px;background:var(--lilac);color:#00205c55;transition:background .4s}
.cycle-stage[data-stage="1"]{background:var(--mint)}
.cycle-stage[data-stage="2"]{background:#a9bcff}
.stage-bubble{width:116px;height:116px}
.bubble-one{top:-20px;left:-27px}
.bubble-two{right:-25px;bottom:-40px;width:178px;height:178px}
.bubble-three{right:54px;bottom:40px;width:44px;height:44px}
.machine{width:156px;height:192px;position:relative;display:grid;place-items:center;background:var(--paper);border:3px solid var(--navy);border-radius:17px;box-shadow:10px 10px 0 #00205c35;transform:rotate(-7deg);transition:transform .4s}
.machine-controls{position:absolute;inset:0 0 auto;height:40px;border-bottom:3px solid var(--navy);display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:0 12px}
.machine-controls i{height:7px;width:7px;border:1.5px solid var(--navy);border-radius:50%;background:var(--mint)}
.machine-door{display:grid;place-items:center;position:absolute;top:62px;width:102px;height:102px;border:6px solid var(--navy);border-radius:50%;background:#385cad;overflow:hidden}
.drum{position:relative;width:100%;height:100%;opacity:.42;transition:opacity .3s}
.drum span{position:absolute;display:block;width:58px;height:33px;border-radius:32px 22px 28px 22px;background:var(--lilac);top:41px;left:10px;transform:rotate(16deg)}
.drum span:nth-child(2){background:var(--mint);left:25px;top:23px;transform:rotate(-37deg);width:52px}
.drum span:nth-child(3){background:#fff8ed;left:9px;top:19px;transform:rotate(35deg);width:42px;height:25px}
.stage-basket{position:absolute;width:98px;height:auto;top:58%;left:calc(50% - 129px);padding:8px 9px;background:var(--mint);border:2px solid var(--navy);border-radius:13px;transform:rotate(9deg);transition:transform .4s,background .4s}
[data-stage="1"] .stage-basket{background:var(--paper);transform:translate(23px,-15px) rotate(-11deg)}
[data-stage="1"] .machine,[data-stage="2"] .machine{transform:rotate(0)}
[data-stage="1"] .drum,[data-stage="2"] .drum{opacity:1}
[data-stage="2"] .stage-basket{transform:translate(-18px,16px) rotate(2deg)}
[data-stage="2"] .machine-door{background:#edf4ff}
[data-stage="2"] .drum{opacity:0}
.cycle-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(20px,4vw,47px);min-width:0}
.cycle-copy .steps-grid{display:block;margin:0}
.cycle-copy .steps-grid li{border:0;padding:8px 0}
.cycle-copy .steps-grid h3{font-size:clamp(2.4rem,4.1vw,4rem)}
.cycle-copy .steps-grid p{max-width:360px}
.cycle-controls{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.cycle-controls button,.cycle-next{cursor:pointer;font:700 .85rem/1.35 Open,Arial,sans-serif;color:var(--navy)}
.cycle-controls button{border:1px solid var(--line);border-radius:30px;background:transparent;padding:8px 12px;transition:background .2s,border-color .2s}
.cycle-controls button:hover{border-color:var(--navy)}
.cycle-controls button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:white}
.is-interactive .steps-grid{min-height:178px}
.cycle-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}
.cycle-progress{color:var(--ink);font-size:.79rem}
.cycle-next,.cycle-route{background:var(--mint);border:0;min-height:44px}
.cycle-next:hover,.cycle-route:hover{background:var(--navy);color:white}
.location-grid article{transition:transform .24s,box-shadow .24s}
.location-grid article:hover,.location-grid article:focus-within{transform:translateY(-4px);box-shadow:0 12px 23px #00205c16}
summary::after{transition:transform .2s}
details[open] summary::after{transform:rotate(180deg)}

@keyframes wash-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes wash-float{50%{transform:translateY(-9px)}}
@keyframes wash-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:no-preference){
  .headline-line{animation:wash-enter .62s cubic-bezier(.22,.75,.24,1) both}
  .headline-line + .headline-line{animation-delay:.10s}
  .hero-guide{animation:wash-enter .55s .24s both}
  .hero-bubbles i{animation:wash-float 3.7s ease-in-out 2}
  .hero-bubbles i:nth-child(even){animation-delay:.28s}
  [data-stage="1"] .drum{animation:wash-spin 1.45s linear 3}
  .is-interactive .steps-grid li:not([hidden]),.reveal-in{animation:wash-enter .43s both}
}
@media(max-width:1050px){
  .hero{gap:30px}
  .hero-guide{right:-4px}
  .hero-bubbles i:nth-child(4){left:-18px}
}
@media(max-width:740px){
  .hero-visual{margin-top:5px;padding:0 4px 20px 0}
  .hero-photo{border-radius:24px 24px 68px 24px;aspect-ratio:1.2}
  .hero-guide{right:0;bottom:0;min-height:56px}
  .hero-bubbles i:nth-child(1){right:-8px;top:-11px;width:76px;height:76px}
  .hero-bubbles i:nth-child(2){right:62px;top:-16px;width:35px;height:35px}
  .hero-bubbles i:nth-child(3){left:-11px;bottom:1px;width:77px;height:77px}
  .hero-bubbles i:nth-child(4){display:none}
  .hero-bubbles i:nth-child(5){bottom:6px;left:51px;width:24px;height:24px}
  .cycle{grid-template-columns:1fr;margin-top:23px}
  .cycle-stage{min-height:235px}
  .cycle-controls{margin-bottom:14px}
  .is-interactive .steps-grid{min-height:0}
  .cycle-footer{margin-top:12px}
}
