/* Story parts on the shop and category pages, staging (story-parts.php). Francis, 19 Oct 2026: "B", story-size
   headings in the sections below the products, and the still story parts of the home page (DESIGN.md section 7).
   Nothing here moves with the scroll. Built by _build_parts_css.py from shym-story.css, then this page's own rules. */
.shym-cat .shym-part{--slow:cubic-bezier(.16,1,.3,1);--soft:cubic-bezier(.65,0,.35,1)}

/* ---------- the reviews row and the project strips, as on the home page ---------- */
.shym-cat .shym-part__voices a.shym-home__gbadge{background:var(--cream)}
.shym-cat .shym-part__voices .shym-home__gbadge-go{background:var(--white)}
.shym-cat .shym-part__voices-row{display:grid;grid-template-columns:var(--cols,repeat(3,minmax(0,1fr)));gap:16px}
.shym-cat .shym-part__voices-row.has-film{grid-template-columns:minmax(0,1.1fr) var(--cols,repeat(3,minmax(0,1fr)))}
.shym-cat figure.shym-part__voices-film{display:flex;flex-direction:column;margin:0;padding:0;border-radius:0;background:none}
.shym-cat figure.shym-part__voices-film .shym-home__vreview-media{border-radius:18px}
.shym-cat figure.shym-part__voices-film figcaption{padding:14px 2px 0}
.shym-cat figure.shym-part__quote{display:flex;flex-direction:column;margin:0;padding:clamp(24px,2vw,32px);border-radius:18px;background:var(--cream)}
.shym-cat figure.shym-part__quote .shym-look-stars svg{width:18px;height:18px}
.shym-cat blockquote.shym-part__quote-words{margin:16px 0 0;padding:0;border:0;font:500 var(--fs,clamp(17px,1.1vw,21px))/1.55 var(--font);font-style:normal;letter-spacing:-.005em;color:var(--ink);quotes:none}
.shym-cat figure.shym-part__quote.is-fit blockquote.shym-part__quote-words{flex:1 1 auto;min-height:0;overflow:hidden}
.shym-cat blockquote.shym-part__quote-words:before,.shym-cat blockquote.shym-part__quote-words:after{content:none}
.shym-cat figcaption.shym-part__quote-who{margin-top:auto;padding-top:20px;font:600 15px/1.4 var(--font);color:var(--ink)}
.shym-cat .shym-part__projs{--n:var(--count,7);--closed:clamp(64px,6vw,116px);--gap:12px;--open-w:calc(100cqw - var(--n) * (var(--closed) + var(--gap)));display:flex;gap:var(--gap);height:clamp(420px,66vh,660px);container-type:inline-size}
.shym-cat a.shym-part__proj,.shym-cat a.shym-part__proj:visited{position:relative;display:block;flex:0 0 var(--closed);min-width:0;overflow:hidden;isolation:isolate;border-radius:18px;background:rgba(255,255,255,.06);color:var(--white);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:flex-grow .9s var(--slow),flex-basis .9s var(--slow)}
.shym-cat a.shym-part__proj.is-on{flex:1 1 0}
.shym-cat a.shym-part__proj:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.shym-cat .shym-part__proj-pic{position:absolute;inset:0;display:block;opacity:.62;transition:opacity .7s var(--soft)}
.shym-cat a.shym-part__proj.is-on .shym-part__proj-pic,.shym-cat a.shym-part__proj:hover .shym-part__proj-pic{opacity:1}
.shym-cat .shym-part__proj-pic img{position:absolute;top:0;left:50%;width:var(--open-w);max-width:none;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transform:translateX(-50%);transition:transform 1.4s var(--slow)}
.shym-cat a.shym-part__proj:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(38,34,47,.78) 0%,rgba(38,34,47,.3) 30%,rgba(38,34,47,0) 55%);pointer-events:none}
.shym-cat .shym-part__proj-side{position:absolute;left:50%;bottom:24px;z-index:2;font:600 15px/1 var(--font);letter-spacing:.01em;white-space:nowrap;color:var(--white);writing-mode:vertical-rl;transform:translateX(-50%) rotate(180deg);transition:opacity .5s .25s}
.shym-cat a.shym-part__proj.is-on .shym-part__proj-side{opacity:0;transition:opacity .2s}
.shym-cat .shym-part__proj-words{position:absolute;left:clamp(22px,2.4vw,36px);right:104px;bottom:clamp(22px,2.4vw,34px);z-index:2;display:flex;flex-direction:column;gap:8px;opacity:0;transform:translate3d(0,18px,0);transition:opacity .25s,transform .4s var(--slow)}
.shym-cat a.shym-part__proj.is-on .shym-part__proj-words{opacity:1;transform:none;transition:opacity .7s var(--soft) .35s,transform 1s var(--slow) .35s}
.shym-cat .shym-part__proj-words b{font:600 clamp(28px,2.8vw,48px)/1.02 var(--font);letter-spacing:-.035em;white-space:nowrap;color:var(--white)}
.shym-cat .shym-part__proj-words i{font:500 16px/1.4 var(--font);white-space:nowrap;color:rgba(255,255,255,.88)}
.shym-cat .shym-part__proj-go{position:absolute;right:clamp(22px,2.4vw,32px);bottom:clamp(22px,2.4vw,32px);z-index:2;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--white);color:var(--ink);opacity:0;transform:scale(.6);transition:opacity .25s,transform .4s var(--slow),background .3s,color .3s}
.shym-cat .shym-part__proj-go svg{width:18px;height:18px}
.shym-cat a.shym-part__proj.is-on .shym-part__proj-go{opacity:1;transform:none;transition:opacity .6s .45s,transform .8s var(--slow) .45s,background .3s,color .3s}
.shym-cat a.shym-part__proj.is-on:hover .shym-part__proj-go,.shym-cat a.shym-part__proj.is-on:focus-visible .shym-part__proj-go{background:var(--orange);color:var(--white)}
.shym-cat a.shym-part__proj-all,.shym-cat a.shym-part__proj-all:visited{position:relative;display:flex;flex:0 0 var(--closed);flex-direction:column;align-items:center;justify-content:space-between;min-width:0;padding:22px 0 24px;border-radius:18px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.16);color:var(--white);text-decoration:none;transition:background .35s,box-shadow .35s}
.shym-cat a.shym-part__proj-all:hover,.shym-cat a.shym-part__proj-all:focus-visible{background:var(--orange);box-shadow:none}
.shym-cat a.shym-part__proj-all:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.shym-cat .shym-part__proj-all-go{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--white);color:var(--ink);transition:transform .4s var(--slow)}
.shym-cat .shym-part__proj-all-go svg{width:18px;height:18px}
.shym-cat a.shym-part__proj-all:hover .shym-part__proj-all-go{transform:translateX(3px)}
.shym-cat .shym-part__proj-all-words{font:600 16px/1 var(--font);letter-spacing:.01em;white-space:nowrap;writing-mode:vertical-rl;transform:rotate(180deg)}
@media (max-width:1024px){
  .shym-cat .shym-part__voices-row,.shym-cat .shym-part__voices-row.has-film{display:flex;gap:12px;margin-right:calc(50% - 50vw);padding-right:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}
  .shym-cat .shym-part__voices-row::-webkit-scrollbar{display:none}
  .shym-cat .shym-part__voices-row>figure{flex:0 0 min(340px,44vw);scroll-snap-align:start}
  .shym-cat .shym-part__projs{--n:min(var(--count,7),5);--closed:60px;height:460px}
  .shym-cat a.shym-part__proj:nth-child(n+6){display:none}
}
@media (hover:hover) and (min-width:768px){
  .shym-cat a.shym-part__proj.is-on:hover .shym-part__proj-pic img{transform:translateX(-50%) scale(1.035)}
}
@media (max-width:767px){
  .shym-cat .shym-part__voices-row,.shym-cat .shym-part__voices-row.has-film{padding-right:16px}
  .shym-cat .shym-part__voices-row>figure{flex-basis:78vw}
  .shym-cat blockquote.shym-part__quote-words{font-size:16px;line-height:1.55}
  .shym-cat .shym-part__voices-row,.shym-cat .shym-part__voices-row.has-film{align-items:flex-start}
  .shym-cat .shym-part__projs{--gap:8px;--open-h:min(104vw,460px);flex-direction:column;height:auto}
  .shym-cat a.shym-part__proj:nth-child(n+6){display:block}
  .shym-cat a.shym-part__proj,.shym-cat a.shym-part__proj:visited{flex:0 0 auto;height:64px;transition:height .8s var(--slow)}
  .shym-cat a.shym-part__proj.is-on{flex:0 0 auto;height:var(--open-h)}
  .shym-cat .shym-part__proj-pic img{top:50%;left:0;width:100%;height:var(--open-h);transform:translateY(-50%)}
  .shym-cat .shym-part__proj-side{left:18px;bottom:auto;top:50%;writing-mode:horizontal-tb;transform:translateY(-50%)}
  .shym-cat .shym-part__proj-words{right:76px}
  .shym-cat .shym-part__proj-words b{font-size:clamp(26px,7.6vw,34px)}
  .shym-cat .shym-part__proj-words i{font-size:15px}
  .shym-cat .shym-part__proj-go{width:44px;height:44px}
  .shym-cat a.shym-part__proj-all,.shym-cat a.shym-part__proj-all:visited{flex:0 0 auto;flex-direction:row-reverse;height:64px;padding:0 10px 0 18px}
  .shym-cat .shym-part__proj-all-words{writing-mode:horizontal-tb;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .shym-cat a.shym-part__proj,.shym-cat a.shym-part__proj *{transition:none !important}
}

/* ---------- the showroom on the Saunas page, as on the home page ---------- */
.shym-cat .shym-part.is-show .shym-part__show{position:relative;background:var(--cream)}
.shym-cat .shym-part.is-show .shym-part__show .shym-part__stage{padding:clamp(80px,9vw,128px) var(--gut)}
.shym-cat .shym-part.is-show .shym-part__show-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px 48px;margin:0 0 40px}
.shym-cat .shym-part.is-show .shym-part__show-head .shym-look-link{margin-top:16px}
.shym-cat .shym-part.is-show h2.shym-part__h2.is-mid{font-size:clamp(34px,3.4vw,52px);line-height:1}
.shym-cat .shym-part.is-show p.shym-part__count{margin:6px 0 0;font:600 15px/1 var(--font);letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.shym-cat .shym-part.is-show p.shym-part__count b{font-weight:600;color:var(--ink)}
.shym-cat .shym-part.is-show ol.shym-part__models{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 24px;margin:0;padding:0;list-style:none}
.shym-cat .shym-part.is-show li.shym-part__model{position:relative;display:flex;flex-direction:column;gap:16px;margin:0}
.shym-cat .shym-part.is-show .shym-part__model-word{display:none}
.shym-cat .shym-part.is-show a.shym-part__model-pic{display:block;aspect-ratio:4/3;line-height:0;-webkit-user-drag:none}
.shym-cat .shym-part.is-show a.shym-part__model-pic img{width:100%;height:100%;max-width:none;object-fit:contain;object-position:50% 100%}
.shym-cat .shym-part.is-show a.shym-part__model-pic.is-shot img{mix-blend-mode:multiply}
.shym-cat .shym-part.is-show h3.shym-part__model-name{margin:0;padding:0;font:600 clamp(24px,2vw,30px)/1.1 var(--font);letter-spacing:-.025em;text-transform:none;color:var(--ink)}
.shym-cat .shym-part.is-show .shym-part__pills{display:none}
.shym-cat .shym-part.is-show .shym-part__pills button.shym-part__pill,.shym-cat .shym-part.is-show .shym-part__pills button.shym-part__pill:hover,.shym-cat .shym-part.is-show .shym-part__pills button.shym-part__pill:focus{display:inline-flex;align-items:center;height:32px;margin:0;padding:0 13px;border:0;border-radius:999px;background:var(--white);box-shadow:none;font:500 13px/1 var(--font);letter-spacing:normal;text-transform:none;color:var(--ink);cursor:pointer;transition:background .3s,color .3s}
.shym-cat .shym-part.is-show .shym-part__pills button.shym-part__pill.is-on{background:var(--ink);color:var(--white)}
.shym-cat .shym-part.is-show .shym-part__pills button.shym-part__pill:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__show{z-index:2;box-sizing:border-box;height:calc((var(--n,6) - .4) * 62vh + 100vh + 28px);padding-bottom:28px;margin-top:-100vh;margin-top:-100svh;border-radius:28px 28px 0 0}
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__show .shym-part__stage{position:sticky;top:0;height:100vh;height:100svh;min-height:560px;padding:0;overflow:hidden}
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__show-head{position:absolute;left:var(--gut);right:var(--gut);top:clamp(32px,7vh,80px);z-index:4;margin:0}
.shym-cat .shym-part.is-show.is-js:not(.is-still) ol.shym-part__models{display:block;position:absolute;inset:0}
.shym-cat .shym-part.is-show.is-js:not(.is-still) li.shym-part__model{position:absolute;inset:0;display:block}
.shym-cat .shym-part.is-show.is-js:not(.is-still) li.shym-part__model.is-far{visibility:hidden}
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__model-word{display:block;position:absolute;left:50%;top:47%;z-index:1;font:600 min(33vw,calc(172vw / var(--c,6)))/.8 var(--font);letter-spacing:-.05em;white-space:nowrap;color:var(--white);transform:translate3d(calc(-50% + var(--d,0) * 36vw),-50%,0);opacity:clamp(0,1 - var(--ad,0) * 2.2,1);pointer-events:none;user-select:none}
.shym-cat .shym-part.is-show.is-js:not(.is-still) a.shym-part__model-pic{position:absolute;left:50%;bottom:19vh;z-index:2;width:min(46vw,720px);height:min(54vh,580px);aspect-ratio:auto;transform:translate3d(calc(-50% + var(--d,0) * var(--slide,62vw)),0,0) scale(calc(1 - var(--ad,0) * .2));transform-origin:50% 100%;opacity:clamp(0,1 - (var(--ad,0) - .45) * 1.9,1);will-change:transform}
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__model-info{position:absolute;left:var(--gut);bottom:clamp(28px,6vh,64px);z-index:3;max-width:340px;opacity:calc(1 - var(--ad,0) * 3.4);transform:translate3d(0,calc(var(--ad,0) * 28px),0)}
.shym-cat .shym-part.is-show.is-js:not(.is-still) li.shym-part__model:not(.is-on) .shym-part__model-info{visibility:hidden}
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__pills{position:absolute;right:var(--gut);bottom:clamp(28px,6vh,64px);z-index:4;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:50vw}
@media (max-width:1024px){
  .shym-cat .shym-part.is-show ol.shym-part__models{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  .shym-cat .shym-part.is-show ol.shym-part__models{grid-template-columns:1fr}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__show{height:calc((var(--n,6) - .4) * 54vh + 100vh + 28px)}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__show-head .shym-look-link{display:none}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__model-word{top:40%;font-size:min(30vw,calc(150vw / var(--c,6)))}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) a.shym-part__model-pic{width:92vw;height:38vh;bottom:29vh;--slide:108vw}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__model-info{right:var(--gut);max-width:none;bottom:clamp(20px,4vh,40px)}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__model-info .shym-look-btn{position:absolute;right:0;bottom:0}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__pills{display:none}
}

/* ---------- this page's own rules ---------- */
/* the stars of the reviews: a live page has the old header, so the new header's star rules (shym-shell.css) are not
   on it */
.shym-cat :where(.shym-part) .shym-look-stars{display:flex;gap:2px}
.shym-cat :where(.shym-part) .shym-look-stars svg{display:block;width:16px;height:16px;fill:var(--star)}
/* the showroom: the page's gutter, no sheet over a film (the home page's slides over its film), the heading on one
   line with the guide's sentence under it, the "Why" line in place of the count and the price */
.shym-cat .shym-part.is-show{--gut:clamp(16px,3.4vw,48px)}
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__show{margin-top:0;border-radius:0;z-index:auto}
/* the heading on 2 lines (Francis, 19 Oct 2026: "make this 2 rows") */
.shym-cat .shym-part.is-show .shym-part__show-head h2.shym-part__h2{max-width:11em}
.shym-cat .shym-part.is-show p.shym-part__show-lead{margin:14px 0 0;max-width:640px;font:400 16px/1.6 var(--font);color:var(--body)}
.shym-cat .shym-part.is-show p.shym-part__model-why{margin:10px 0 20px;max-width:340px;font:400 15px/1.55 var(--font);color:var(--body)}
.shym-cat .shym-part.is-show+.shym-part.is-projects{margin-top:0}
/* the site's header stays on screen on a shopping page (the home page's steps away), so the stage stays on screen
   under it, and its head sits a little lower than the home page's */
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__show .shym-part__stage{top:var(--shym-main-h,76px);height:calc(100vh - var(--shym-main-h,76px));height:calc(100svh - var(--shym-main-h,76px))}
.shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__show-head{top:clamp(20px,4.4vh,48px)}
.shym-cat .shym-part.is-show p.shym-part__show-lead{max-width:640px}
/* the site's Additional CSS says "p, div { font-family: Inter !important }": every paragraph and box of the parts keeps
   Albert Sans (DESIGN.md), as the first new page's wrapper does (shym-home.css) */
.shym-cat .shym-part p,.shym-cat .shym-part div{font-family:var(--font) !important}
/* the story section head: the eyebrow and the heading at the left, the line or the score at the right */
.shym-cat .shym-part__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px 48px;margin:0 0 clamp(28px,3.4vw,48px)}
.shym-cat p.shym-part__eyebrow{margin:0 0 16px;padding:0;font:600 12.5px/1.2 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
/* the story heading, the two-line size (DESIGN.md section 7: a heading that needs two lines may stop at 88px) */
.shym-cat h2.shym-part__h2{margin:0;padding:0;max-width:11em;font:600 clamp(40px,5.2vw,88px)/.96 var(--font);letter-spacing:-.04em;text-transform:none;color:var(--ink)}
.shym-cat .shym-part__side{flex:none;max-width:400px}
.shym-cat p.shym-part__lead{margin:0;font:400 17px/1.6 var(--font);color:var(--body)}
.shym-cat .shym-part__side a.shym-home__gbadge{margin:0}
/* the Sauna life row: its head in the page column, the row of videos under it as before */
.shym-cat .shym-part.is-people .shym-part__head{margin-bottom:clamp(28px,3.4vw,44px)}
/* the guide as 4 square photo tiles: the number and the name on the photo; the tile's text shows over it when a mouse
   points at it, the keyboard reaches it, or a finger taps it (Francis, 19 Oct 2026: "too much text") */
.shym-cat ul.shym-part__gt{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}
.shym-cat li.shym-part__gt-tile{position:relative;aspect-ratio:1/1;margin:0;overflow:hidden;isolation:isolate;border-radius:18px;background:var(--ink);color:var(--white);outline:none;-webkit-tap-highlight-color:transparent}
.shym-cat li.shym-part__gt-tile:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.shym-cat .shym-part__gt-pic{position:absolute;inset:0;border-radius:0;background:none}
.shym-cat .shym-part__gt-pic img{transition:transform 1s var(--slow)}
/* the shade at the foot under the name; a darker one over the whole photo while the text shows */
.shym-cat li.shym-part__gt-tile:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(38,34,47,.8) 0%,rgba(38,34,47,.25) 36%,rgba(38,34,47,0) 58%);pointer-events:none}
.shym-cat li.shym-part__gt-tile:before{content:"";position:absolute;inset:0;z-index:1;background:rgba(38,34,47,.72);opacity:0;transition:opacity .45s var(--soft);pointer-events:none}
.shym-cat .shym-part__gt-words{position:absolute;left:22px;right:22px;bottom:20px;z-index:2;display:flex;flex-direction:column}
.shym-cat .shym-part__gt-n{margin:0 0 8px;font:600 13px/1 var(--font);letter-spacing:.08em;color:rgba(255,255,255,.78);font-variant-numeric:tabular-nums}
.shym-cat h3.shym-part__gt-name{margin:0;padding:0;font:600 clamp(22px,1.9vw,30px)/1.08 var(--font);letter-spacing:-.025em;text-transform:none;color:var(--white)}
.shym-cat p.shym-part__gt-text{max-height:0;margin:0;overflow:hidden;opacity:0;font:400 15px/1.55 var(--font);color:rgba(255,255,255,.92);transition:max-height .6s var(--slow),margin .6s var(--slow),opacity .3s}
/* the round "more" sign at the top right, a plus that turns into a cross while the text shows */
.shym-cat .shym-part__gt-more{position:absolute;top:16px;right:16px;z-index:2;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--white);color:var(--ink);transition:transform .45s var(--slow),background .3s,color .3s}
.shym-cat .shym-part__gt-more svg{width:16px;height:16px}
.shym-cat li.shym-part__gt-tile.is-open:before,.shym-cat li.shym-part__gt-tile:focus-visible:before{opacity:1}
.shym-cat li.shym-part__gt-tile.is-open p.shym-part__gt-text,.shym-cat li.shym-part__gt-tile:focus-visible p.shym-part__gt-text{max-height:14em;margin-top:12px;opacity:1;transition:max-height .6s var(--slow),margin .6s var(--slow),opacity .45s .12s}
.shym-cat li.shym-part__gt-tile.is-open .shym-part__gt-more,.shym-cat li.shym-part__gt-tile:focus-visible .shym-part__gt-more{transform:rotate(45deg)}
.shym-cat li.shym-part__gt-tile.is-open .shym-part__gt-pic img,.shym-cat li.shym-part__gt-tile:focus-visible .shym-part__gt-pic img{transform:scale(1.05)}
@media (hover:hover) and (pointer:fine){
  .shym-cat li.shym-part__gt-tile:hover:before{opacity:1}
  .shym-cat li.shym-part__gt-tile:hover p.shym-part__gt-text{max-height:14em;margin-top:12px;opacity:1;transition:max-height .6s var(--slow),margin .6s var(--slow),opacity .45s .12s}
  .shym-cat li.shym-part__gt-tile:hover .shym-part__gt-more{transform:rotate(45deg)}
  .shym-cat li.shym-part__gt-tile:hover .shym-part__gt-pic img{transform:scale(1.05)}
}
/* the help: the question and the two buttons on one line, in a white panel */
.shym-cat .shym-part__gt-help{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 40px;margin:24px 0 0;padding:22px 24px 22px 32px;border-radius:18px;background:var(--white)}
.shym-cat .shym-part__gt-help h3.shym-cat__help-title{margin:0}
.shym-cat .shym-part__gt-help .shym-cat__help-btns{margin:0}
/* the projects and the reviews: the page's space between parts */
.shym-cat .shym-part.is-reviews{margin-top:clamp(56px,6vw,88px)}
/* the projects on a still dark band over the whole width, the home page's colours (Francis, 19 Oct 2026: "darken the
   background for recent projects", "Yes go"): the narrow photos dimmed, white words, the last tile white at 8%.
   The cream guide above and the cream reviews under it touch the band, so no white strip shows between them. */
.shym-cat .shym-part.is-projects{margin-top:clamp(56px,6vw,88px);padding:clamp(72px,8vw,120px) 0;background:var(--ink);color:var(--white)}
.shym-cat .shym-cat__guide+.shym-part.is-projects{margin-top:0}
.shym-cat .shym-part.is-projects+.shym-part.is-reviews{margin-top:0}
.shym-cat .shym-part.is-projects p.shym-part__eyebrow{color:rgba(255,255,255,.72)}
.shym-cat .shym-part.is-projects h2.shym-part__h2{color:var(--white)}
/* the Sauna life row: when it comes on screen its first cards are dealt in one after another, rising and turning
   straight, the home page's look in about a second, with no hold on the scroll (Francis: "Lets try A"). The script
   arms the row (is-armed) and starts it (is-in); with no script, or for less motion, the cards simply stand there.
   While the cards come in, the row lets them show above and below it (overflow-x clip), then it clips again. */
.shym-cat .shym-part.is-people.is-armed .shym-home__rail{overflow-x:clip;overflow-y:visible}
.shym-cat .shym-part.is-people.is-armed .shym-home__track>a.shym-home__clip:nth-child(-n+6){opacity:0;transform:translate3d(0,62vh,0) rotate(var(--r,6deg));transition:opacity .5s var(--soft) calc(var(--k,0) * 90ms),transform 1.15s var(--slow) calc(var(--k,0) * 90ms)}
.shym-cat .shym-part.is-people.is-armed.is-in .shym-home__track>a.shym-home__clip:nth-child(-n+6){opacity:1;transform:none}
.shym-cat .shym-part.is-people .shym-home__track>a.shym-home__clip:nth-child(1){--k:0;--r:-7deg}
.shym-cat .shym-part.is-people .shym-home__track>a.shym-home__clip:nth-child(2){--k:1;--r:6deg}
.shym-cat .shym-part.is-people .shym-home__track>a.shym-home__clip:nth-child(3){--k:2;--r:-5deg}
.shym-cat .shym-part.is-people .shym-home__track>a.shym-home__clip:nth-child(4){--k:3;--r:8deg}
.shym-cat .shym-part.is-people .shym-home__track>a.shym-home__clip:nth-child(5){--k:4;--r:-6deg}
.shym-cat .shym-part.is-people .shym-home__track>a.shym-home__clip:nth-child(6){--k:5;--r:5deg}
.shym-cat .shym-part__voices{padding:clamp(64px,7vw,104px) 0;background:var(--cream)}
/* 1600 px and wider: the reviews and the projects take the home page's wide column, 1800 px (Francis, 19 Oct 2026:
   "the testimonials and recent projects sections should be wide layouts as they are on the home page"). The guide
   stays in the page column, in line with the product cards above it. */
@media (min-width:1600px){
  .shym-cat .shym-part.is-reviews .shym-cat__wrap,.shym-cat .shym-part.is-projects .shym-cat__wrap{width:min(1800px,calc(100% - 48px))}
}
@media (max-width:1024px){
  .shym-cat .shym-part__head{flex-direction:column;align-items:flex-start}
  .shym-cat ul.shym-part__gt{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
  .shym-cat .shym-part.is-people.is-armed .shym-home__track>a.shym-home__clip{opacity:1 !important;transform:none !important;transition:none !important}
}
@media (max-width:767px){
  .shym-cat h2.shym-part__h2{font-size:clamp(38px,10.6vw,56px)}
  .shym-cat .shym-part.is-show{--gut:16px}
  .shym-cat .shym-part.is-show h2.shym-part__h2.is-mid{font-size:clamp(30px,8.4vw,40px)}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) p.shym-part__show-lead{display:none}
  .shym-cat .shym-part.is-show p.shym-part__model-why{margin:8px 0 14px;font-size:14px}
  .shym-cat .shym-part.is-show.is-js:not(.is-still) .shym-part__model-info .shym-btn{position:static}
  .shym-cat p.shym-part__lead{font-size:16px}
  .shym-cat ul.shym-part__gt{display:flex;gap:12px;margin-right:-16px;padding-right:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}
  .shym-cat ul.shym-part__gt::-webkit-scrollbar{display:none}
  .shym-cat li.shym-part__gt-tile{flex:0 0 78vw;scroll-snap-align:start}
  .shym-cat h3.shym-part__gt-name{font-size:24px}
  .shym-cat .shym-part__gt-help{padding:20px}
  .shym-cat .shym-part__gt-help .shym-cat__help-btns{width:100%}
  .shym-cat .shym-part__gt-help .shym-cat__help-btns .shym-btn{flex:1 1 100%}
}
