/* Motion comparison only; the shop itself keeps its approved controls. */
.motion-page{width:var(--page);max-width:1320px;margin:30px auto 64px}
.motion-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;padding:32px 0}
.motion-heading h1{font-size:clamp(34px,4vw,54px);line-height:1.08}
.motion-heading p{max-width:56ch;margin-top:18px;color:var(--muted);font-size:15px;line-height:1.65}
.motion-switch{display:flex;align-items:center;gap:12px;min-height:48px;font-size:14px;flex-shrink:0;cursor:pointer}
.motion-switch input{width:21px;height:21px;accent-color:var(--green)}
.motion-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-block:1px solid var(--line);padding:28px 0}
.motion-option{min-width:0}
.motion-option h2{font-size:32px;margin:0 0 12px}
.motion-option>p{font-size:14px;line-height:1.6;min-height:48px;max-width:34ch}
.motion-stage{background:var(--boreal-sage);padding:40px 18px;margin:22px 0;display:flex;flex-direction:column;align-items:center;gap:30px;min-width:0}
[data-motion-option=lather] .motion-stage{background:var(--boreal-clay)}
[data-motion-option=water] .motion-stage{background:var(--boreal-lavender)}
.motion-example{position:relative;isolation:isolate;overflow:hidden;max-width:100%;transition:background-color .2s,color .2s}
.motion-example>span,.motion-example>svg{position:relative;z-index:2}
.motion-stage>.button{width:100%;max-width:310px;min-height:56px;padding:12px 16px;gap:12px;font-size:14px;justify-content:space-between}
.motion-stage>.button:hover{background:#304737}
.motion-text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:6px 0;text-decoration:none;border-bottom:1px solid #7c8873;font-size:14px}
.motion-text-link:hover{text-decoration:underline;text-underline-offset:5px}
.motion-example::before,.motion-example::after{content:'';position:absolute;pointer-events:none;z-index:1;opacity:0;animation-play-state:paused}
.motion-example.motion-live::before,.motion-example.motion-live::after{animation-play-state:running}
/* A bounded, warm reflection; labels stay above it and never shimmer. */
.motion-satin::before{inset:-80% auto -80% -70%;width:50%;background:linear-gradient(105deg,transparent 14%,#f8f5ee12 35%,#f1dfb62b 50%,#f8f5ee12 65%,transparent 86%);transform:translateX(0) skewX(-14deg);animation:boreal-satin 7s cubic-bezier(.16,1,.3,1) infinite paused}
.motion-satin.motion-text-link::before{background:linear-gradient(105deg,transparent 15%,#b59c5840 50%,transparent 85%)}
@keyframes boreal-satin{0%,8%{transform:translateX(0) skewX(-14deg);opacity:0}12%{opacity:1}38%{transform:translateX(470%) skewX(-14deg);opacity:1}43%,100%{transform:translateX(470%) skewX(-14deg);opacity:0}}
/* A broad, diffused lather reflection, rather than flying bubbles. */
.motion-lather::before{inset:-100% auto -100% -100%;width:95%;border-radius:48%;background:radial-gradient(ellipse,#f8f5ee29 0%,#e8ecd91f 36%,transparent 70%);filter:blur(3px);animation:boreal-lather 8s cubic-bezier(.22,.7,.25,1) infinite paused}
.motion-lather::after{inset:0;border-bottom:1px solid #f1dfb64d;animation:boreal-lather-edge 8s ease-out infinite paused}
.motion-lather.motion-text-link::before{background:radial-gradient(ellipse,#a6b4994d 0%,transparent 70%)}
@keyframes boreal-lather{0%,10%{transform:translateX(0) rotate(-20deg);opacity:0}18%{opacity:1}48%{transform:translateX(235%) rotate(18deg);opacity:1}56%,100%{transform:translateX(235%) rotate(18deg);opacity:0}}
@keyframes boreal-lather-edge{0%,15%,60%,100%{opacity:0}30%,42%{opacity:1}}
/* A thin water reflection, kept on the surface rather than moving the control. */
.motion-water::before{left:-70%;top:10%;height:80%;width:60%;background:linear-gradient(115deg,transparent 24%,#dce6d412 42%,#f8f5ee29 49%,#dce6d412 57%,transparent 76%);animation:boreal-water 9s cubic-bezier(.16,1,.3,1) infinite paused}
.motion-water::after{left:-70%;bottom:0;height:2px;width:60%;background:linear-gradient(90deg,transparent,#f1dfb6,transparent);animation:boreal-water-line 9s ease-out infinite paused}
.motion-water.motion-text-link::before{background:linear-gradient(115deg,transparent 24%,#859b783b 49%,transparent 76%)}
.motion-water.motion-text-link::after{background:linear-gradient(90deg,transparent,#527145,transparent)}
@keyframes boreal-water{0%,16%{transform:translateX(0);opacity:0}22%{opacity:1}47%{transform:translateX(300%);opacity:1}52%,100%{transform:translateX(300%);opacity:0}}
@keyframes boreal-water-line{0%,16%{transform:translateX(0);opacity:0}24%{opacity:.8}52%{transform:translateX(300%);opacity:.8}58%,100%{transform:translateX(300%);opacity:0}}
.motion-option .motion-note{min-height:0;font-size:14px;color:var(--green)}
.motion-option>small{display:block;font-size:12px;margin-top:8px;color:var(--muted)}
.motion-help{max-width:80ch;font-size:13px;color:var(--muted);line-height:1.65;margin-top:24px}
#motion-feedback{font-size:14px;margin-top:18px;min-height:44px;color:var(--green)}
@media(max-width:1000px){.motion-options{grid-template-columns:1fr;gap:28px}.motion-option{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.motion-option h2,.motion-option>p,.motion-option>small{grid-column:1}.motion-option h2{font-size:30px}.motion-stage{grid-column:2;grid-row:1/5;margin:0;padding:28px 18px;align-self:start}.motion-option>p{min-height:0}.motion-heading{display:block}.motion-switch{margin-top:16px}}
@media(max-width:540px){.motion-page{margin-top:14px}.motion-heading{padding:20px 0}.motion-heading h1{font-size:36px}.motion-heading p{font-size:14px;margin-top:12px}.motion-options{padding:20px 0;gap:28px}.motion-option{display:block}.motion-option h2{font-size:29px;margin-bottom:8px}.motion-stage{padding:28px 18px;margin:14px 0;gap:18px}.motion-stage>.button{min-height:54px}.motion-switch{font-size:13px}}
@media(prefers-reduced-motion:reduce){.motion-example::before,.motion-example::after{animation:none!important;opacity:0!important}.motion-example{transition:none}.motion-example:active{background-color:var(--boreal-oat);color:var(--green)}}
/* Approved: L’eau boréale. Reflection stays behind the control’s content. */
.boreal-water{position:relative;isolation:isolate;overflow:hidden}
.boreal-water::before,.boreal-water::after{content:'';position:absolute;pointer-events:none;z-index:-1;opacity:0;animation-play-state:paused}
.boreal-water::before{left:-70%;top:8%;height:84%;width:60%;background:linear-gradient(115deg,transparent 24%,#dce6d412 42%,#f8f5ee26 49%,#dce6d412 57%,transparent 76%);animation:boreal-water 9s cubic-bezier(.16,1,.3,1) infinite paused}
.boreal-water::after{left:-70%;bottom:1px;height:2px;width:60%;background:linear-gradient(90deg,transparent,#c5ac6b,transparent);animation:boreal-water-line 9s ease-out infinite paused}
.boreal-water:is(.secondary,.add-soap,.quiet-link,.availability-link,.refill-option-action)::before,.category-nav .boreal-water::before{background:linear-gradient(115deg,transparent 24%,#859b782e 49%,transparent 76%)}
.boreal-water:is(.quiet-link,.availability-link,.refill-option-action)::after{background:linear-gradient(90deg,transparent,#527145,transparent)}
.boreal-water.water-active::before,.boreal-water.water-active::after{animation-play-state:running}
.boreal-water:not(.water-active)::before,.boreal-water:not(.water-active)::after{opacity:0;animation-name:none}
.motion-preference{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px;cursor:pointer}
.motion-preference input{width:18px;height:18px;accent-color:var(--green)}
@media(prefers-reduced-motion:reduce){.boreal-water::before,.boreal-water::after{animation:none!important;opacity:0!important}}

.boreal-water.water-active::before,.boreal-water.water-active::after{animation-delay:var(--water-delay,0s)}
