/* Product design — page-specific sections (kit styles in service-page.css). Prefix: sv-design-. */

/* Hero: the title wraps around the roll-on as it opens. --fw: film width, --fs: title size. */
.sv-design-hero{padding-bottom:64px}
.sv-design-hero-stage{--fw:clamp(250px,25vw,360px);--fs:clamp(44px,5.4vw,82px);--gap:clamp(22px,3vw,44px);position:relative;max-width:var(--sv-max);margin:34px auto 0}
.sv .sv-design-hero h1{position:absolute;z-index:0;left:0;right:0;top:calc(var(--fw)*.625);translate:0 -50%;display:grid;grid-template-columns:minmax(0,1fr) var(--fw) minmax(0,1fr);column-gap:var(--gap);align-items:start;margin:0;font-size:var(--fs);line-height:1}
.sv-design-h1a{grid-column:1;text-align:right}
.sv-design-h1b{grid-column:3;text-align:left}
.sv-design-h1a,.sv-design-h1b{text-wrap:balance}
.sv-design-hero-film{position:relative;z-index:1;width:var(--fw);margin:0 auto;border-radius:14px;overflow:hidden;background:#d8586c}
.sv-design-hero-film video{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.sv-design-hero .sv-hero-foot{margin-top:44px}
.sv-design-hero .sv-hero-foot p{text-wrap:balance}

/* Liquid Aroma: the confirmed design case */
.sv-design-case{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;padding:40px var(--sv-pad) 170px}
.sv-design-case-copy{grid-column:1/8;grid-row:1;align-self:start}
.sv-design-case-head h2{font-size:clamp(40px,4.6vw,70px);line-height:1;margin:18px 0 30px}
.sv-design-case-intro p{font:16px/1.6 var(--display);color:var(--sv-soft);max-width:430px;margin-bottom:20px}
.sv-design-case-intro .tags{color:var(--sv-soft)}
.sv-design-case figure{margin:0}
.sv-design-case figcaption{font:13px/1.4 var(--sans);color:var(--sv-muted);margin-top:12px}
.sv-design-case figcaption span{color:var(--sv-fg);margin-right:8px}
.sv-design-case .sv-design-case-pack{grid-column:10/13;grid-row:1}
.sv-design-case-pack div{border-radius:12px;overflow:hidden;background:#eeeeec}
.sv-design-case-pack img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transform:scale(1.55);transform-origin:53.6% 50.8%}
.sv-design-case .sv-design-case-family{grid-column:1/13;grid-row:2;margin-top:130px}
.sv-design-case-family img{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;border-radius:14px;background:#9bb7d6}
/* The exploded view of the Mystique roll-on (4:5), beside the review. */
.sv-design-case .sv-design-case-parts{grid-column:2/7;grid-row:3;margin-top:130px}
.sv-design-case-parts div{border-radius:14px;overflow:hidden;background:#d8586c}
.sv-design-case-parts img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.sv-design-case-quote{grid-column:8/13;grid-row:3;align-self:center;margin:130px 0 0}
.sv-design-case-quote p{font:400 clamp(26px,2.6vw,40px)/1.2 var(--serif);letter-spacing:-.02em}
.sv-design-case-quote footer{display:flex;gap:22px;align-items:center;margin-top:28px;font:14px/1 var(--sans)}

/* From parts to product: the build, scrubbed by scroll */
.sv-design-build{padding:110px 0 120px}
.sv-design-build-head{padding:0 var(--sv-gutter);text-align:center}
.sv-design-build-head h2{font-size:clamp(44px,5.6vw,84px);line-height:1;margin:20px 0 28px}
.sv-design-build-head p:last-child{font:16px/1.6 var(--display);color:var(--sv-soft);max-width:460px;margin:0 auto;text-wrap:balance}
.sv-design-build-track{position:relative;height:320vh;margin-top:30px}
.sv-design-build-sticky{--w:min(1180px,calc((100svh - 250px)*16/9),calc(100vw - 2*var(--sv-gutter)));position:sticky;top:0;height:100vh;height:100svh;display:grid;align-content:center;justify-items:center;row-gap:18px;padding:84px 0 24px}
.sv-design-build-frame{width:var(--w);aspect-ratio:16/9;margin:0;border-radius:14px;overflow:hidden;background:#eef0f2}
.sv-design-build-frame video{display:block;width:100%;height:100%;object-fit:cover}
.sv-design-build-steps{width:var(--w);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px;list-style:none;margin:6px 0 0;padding:0}
.sv-design-build-steps li{position:relative;padding-top:14px;font:14px/1.35 var(--sans);color:var(--sv-muted);transition:color .4s var(--ease)}
.sv-design-build-steps li span{display:block;font-size:12px;margin-bottom:4px;opacity:.7}
.sv-design-build-steps li:before,.sv-design-build-steps li:after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--sv-line)}
.sv-design-build-steps li:after{background:var(--sv-fg);transform-origin:left;scale:clamp(0,calc((var(--scrub,0) - var(--a))/(var(--b) - var(--a))),1) 1}
/* Lines show progress; only the step on screen reads at full strength. */
.sv-design-build-steps li.is-current{color:var(--sv-fg)}
.sv-design-build-credit{width:var(--w);font:12px/1.4 var(--sans);color:var(--sv-muted)}
.sv-design-build-credit .sv-link{margin-left:8px;color:var(--sv-fg)}

/* One form, three finishes */
.sv-design-finish{padding:110px var(--sv-pad) 60px}
.sv-design-finish-head{text-align:center;max-width:760px;margin:0 auto 64px}
.sv-design-finish-head h2{font-size:clamp(40px,4.6vw,70px);line-height:1;margin:18px 0 26px}
.sv-design-finish-head p:last-child{font:16px/1.6 var(--display);color:var(--sv-soft);max-width:440px;margin:0 auto}
.sv-design-finish-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:clamp(300px,46vw,660px);border-radius:14px;overflow:hidden;background:#08081a}
.sv-design-finish-band figure{margin:0;min-width:0;overflow:hidden}
.sv-design-finish-band video{display:block;width:100%;height:100%;object-fit:cover}
.sv-design-finish-names{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:16px 0 0;padding:0;text-align:center;font:14px/1 var(--sans)}
.sv-design-finish-names i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:0;border:1px solid var(--sv-line)}
.sv-design-finish-names .is-white i{background:#e9e9ea}
.sv-design-finish-names .is-pink i{background:#9a6371}
.sv-design-finish-names .is-black i{background:#1d1d1f}
.sv-design-finish-credit{font:13px/1.5 var(--sans);color:var(--sv-muted);text-align:center;margin-top:44px}
.sv-design-finish-credit .sv-link{margin-left:10px;color:var(--sv-fg)}

/* Questions follow the start note directly: same tone, so no band is needed above them
   (the bottom padding before the switch to related stays as the kit sets it). */
.sv-design .sv-faq{padding-top:30px}

/* Material still needed: drafting frames, numbered in order of the process. */
.sv-design-needed{counter-reset:sv-need;padding-top:40px}
.sv-design-needed .sv-needed-slot{counter-increment:sv-need}
.sv-design-needed .sv-needed-frame{position:relative;aspect-ratio:5/4;border:0;border-radius:4px;background:
 linear-gradient(color-mix(in srgb,currentColor 5%,transparent) 1px,transparent 1px) -1px -1px/32px 32px,
 linear-gradient(90deg,color-mix(in srgb,currentColor 5%,transparent) 1px,transparent 1px) -1px -1px/32px 32px,
 color-mix(in srgb,currentColor 2.5%,transparent)}
.sv-design-needed .sv-needed-frame:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.7;background:
 linear-gradient(currentColor,currentColor) left top/16px 1px no-repeat,linear-gradient(currentColor,currentColor) left top/1px 16px no-repeat,
 linear-gradient(currentColor,currentColor) right top/16px 1px no-repeat,linear-gradient(currentColor,currentColor) right top/1px 16px no-repeat,
 linear-gradient(currentColor,currentColor) left bottom/16px 1px no-repeat,linear-gradient(currentColor,currentColor) left bottom/1px 16px no-repeat,
 linear-gradient(currentColor,currentColor) right bottom/16px 1px no-repeat,linear-gradient(currentColor,currentColor) right bottom/1px 16px no-repeat}
.sv-design-needed .sv-needed-frame:after{content:counter(sv-need,decimal-leading-zero);position:absolute;top:16px;left:18px;font:12px/1 var(--sans);color:var(--sv-muted)}
.sv-design-needed .sv-needed-frame span{display:grid;justify-items:center;gap:14px;color:var(--sv-fg)}
.sv-design-needed .sv-needed-frame span:before{content:"";width:22px;height:22px;background:linear-gradient(currentColor,currentColor) center/100% 1px no-repeat,linear-gradient(currentColor,currentColor) center/1px 100% no-repeat;opacity:.6}

@media(max-width:1000px){
 .sv-design-hero-stage{--fw:min(64vw,300px);--fs:clamp(44px,7vw,64px);--gap:18px;margin-top:26px}
 .sv .sv-design-hero h1{position:relative;top:auto;translate:none;display:block}
 .sv-design-h1a{display:block;text-align:left}
 .sv-design-h1b{display:block;text-align:right;margin-top:calc(var(--fw)*1.25 + var(--gap)*2)}
 .sv-design-hero-film{position:absolute;left:50%;top:calc(var(--fs) + var(--gap));translate:-50% 0;margin:0}
}
@media(max-width:760px){
 .sv-design-hero{padding-bottom:40px}
 .sv-design-case{display:flex;flex-direction:column;padding-bottom:110px}
 .sv-design-case-head h2{font-size:40px;margin-bottom:24px}
 .sv-design-case .sv-design-case-pack{width:66%;align-self:flex-end;margin-top:40px}
 .sv-design-case .sv-design-case-family{margin-top:56px}
 .sv-design-case-family img{aspect-ratio:4/3}
 .sv-design-case .sv-design-case-parts{width:84%;margin-top:56px}
 .sv-design-case-quote{margin-top:48px}
 .sv-design-case-quote p{font-size:26px}
 .sv-design-build{padding-top:110px}
 .sv-design-build-head h2{font-size:40px}
 .sv-design-build-track{height:300vh;margin-top:20px}
 .sv-design-build-sticky{--w:calc(100vw - 2*var(--sv-gutter));padding:70px 0 20px;row-gap:14px}
 .sv-design-build-frame{aspect-ratio:4/3}
 .sv-design-build-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
 .sv-design-build-steps li{font-size:13px}
 .sv-design-finish{padding-top:90px;padding-bottom:30px}
 .sv-design-finish-head{margin-bottom:40px}
 .sv-design-finish-head h2{font-size:40px}
 .sv-design-finish-band{height:300px}
 .sv-design-finish-names{font-size:13px}
 .sv-design-needed .sv-needed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}
 .sv-design-needed .sv-needed-slot figcaption{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
 .sv-design-build-track{height:auto}
 .sv-design-build-sticky{position:relative;height:auto;padding-top:0}
 .sv-design-build-steps li{color:var(--sv-fg)}
 .sv-design-build-steps li:after{scale:1 1}
}
