/* Vibe96 — Search / catalogue page (/search). Package 188: moved out of the page's <style> block;
   colours use the central tokens from vibe96.css. */
/* ═══ Search — scoped to this page ═══ */
.sr{--ink:var(--v96-ink);--body:var(--v96-body);--soft:var(--v96-faint);--faint:#A3A8B8;--purple:var(--v96-purple);--purple-d:var(--v96-purple-d);--lav:#F3EFFD;--line:#E7E4EF;--card-line:#E3E0EC;
    flex:1;font-family:"Manrope",system-ui,sans-serif;color:var(--ink);background:#FCFCFE;-webkit-font-smoothing:antialiased}
.sr *{box-sizing:border-box}
:where(.sr) a,:where(.sr) a:hover{text-decoration:none;color:inherit}   /* low priority, so .v-btn colours win (200) */
.sr p{margin:0}
.sr .wrap{width:var(--v96-wrap);margin:0 auto;padding:0}   /* 205: same edges as the header logo */
.sr .eyebrow{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--purple)}

/* hero */
.sr .hero{background:linear-gradient(180deg,#F8F5FF 0%,#FAF8FE 60%,#FBFAFE 100%);border-bottom:1px solid #EEEAF6;padding:clamp(20px,1.15vw,22px) 0 clamp(18px,1.1vw,21px)}
.sr .hero-top{display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(14px,.9vw,17px)}
.sr .hero h1{margin:clamp(10px,.75vw,14px) 0 0;font-size:clamp(28px,2.1vw,40px);font-weight:800;letter-spacing:-.045em;line-height:1.1}
.sr .hero h1 span{color:var(--purple)}
.sr .hero-aside{font-size:14px;line-height:1.75;color:var(--body);text-align:right}
.sr .bar{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #DCD6EE;border-radius:12px;padding:6px 6px 6px clamp(14px,1.2vw,22px);box-shadow:0 6px 24px rgba(58,30,150,.05)}
.sr .bar svg.lens{color:#9A8FC2;flex:none}
.sr .bar input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:17px;color:var(--ink);height:clamp(42px,2.5vw,48px)}
.sr .bar input::placeholder{color:#8A8EA3}
.sr .bar .hint{font-size:13px;color:var(--soft);white-space:nowrap}
.sr .bar button{gap:clamp(14px,1.2vw,24px);height:clamp(42px,2.5vw,48px);padding:0 clamp(16px,1.15vw,22px);white-space:nowrap}

.sr .bar:focus-within{border-color:#B79CF9;box-shadow:0 0 0 4px rgba(115,31,249,.08)}
.sr .under{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;align-items:center;margin-top:clamp(10px,.7vw,14px);font-size:13px;color:var(--soft)}
.sr .try{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sr .try a{padding:6px 12px;border:1px solid #DDD8EA;border-radius:999px;background:#fff;color:var(--v96-text);font-size:13px}
.sr .try a:hover{border-color:var(--purple);color:var(--purple)}
.sr .trust{display:flex;gap:10px;align-items:center}
.sr .trust .code{color:#8C6FE0;font-weight:700;letter-spacing:-.05em}
.sr .trust i{width:3px;height:3px;border-radius:50%;background:#B7B2C8;display:block}

/* layout */
.sr .body{display:grid;grid-template-columns:clamp(250px,16vw,307px) minmax(0,1fr);gap:0;padding-top:clamp(28px,2.2vw,43px);padding-bottom:clamp(24px,1.6vw,30px)}
.sr aside{padding-right:clamp(20px,1.5vw,28px);border-right:1px solid #ECE9F2;margin-right:clamp(24px,1.95vw,37px)}

/* filters */
.sr .f-head{display:flex;align-items:center;justify-content:space-between}
.sr .f-head b{display:flex;gap:10px;align-items:center;font-size:19px;font-weight:700;letter-spacing:-.02em}
.sr .f-head a{font-size:13px;color:var(--purple);font-weight:600}
.sr .f-sub{font-size:13px;color:var(--soft);margin:clamp(8px,.6vw,12px) 0 clamp(16px,1.2vw,24px)}
.sr details{border-top:1px solid #ECE9F2;padding:clamp(14px,1.05vw,20px) 0}
.sr details:first-of-type{border-top:0;padding-top:0}
.sr summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:14px;font-weight:700;letter-spacing:-.01em}
.sr summary::-webkit-details-marker{display:none}
.sr summary::after{content:"+";color:var(--soft);font-weight:500;font-size:15px}
.sr details[open] summary::after{content:"–"}
.sr .opts{display:flex;flex-direction:column;gap:clamp(12px,.9vw,17px);margin-top:clamp(12px,.95vw,18px)}
.sr .opt{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--v96-text);cursor:pointer}
.sr .opt input{width:15px;height:15px;margin:0;accent-color:var(--purple);flex:none}
.sr .opt .n{margin-left:auto;font-size:13px;color:var(--faint)}
.sr .price{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:end;margin-top:clamp(12px,.95vw,18px)}
.sr .price label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--soft)}
.sr .price input{height:clamp(38px,2.25vw,43px);border:1px solid #DCD8E6;border-radius:7px;padding:0 11px;font:inherit;font-size:13px;color:var(--ink);background:#fff;width:100%}
.sr .price span{color:var(--faint);padding-bottom:12px}
.sr .price-note{font-size:13px;color:var(--soft);margin-top:10px}
.sr .apply{margin-top:14px;height:36px;padding:0 14px;border:1px solid #DCD8E6;border-radius:8px;background:#fff;font:inherit;font-size:13px;font-weight:700;color:var(--purple);cursor:pointer}
.sr .helpcard{margin-top:clamp(16px,1.2vw,24px);border-radius:14px;background:#EEE8FC;padding:clamp(18px,1.4vw,26px) clamp(16px,1.05vw,20px)}
.sr .helpcard svg{color:var(--purple)}
.sr .helpcard h3{margin:clamp(12px,1vw,18px) 0 clamp(10px,.8vw,14px);font-size:19px;font-weight:700;letter-spacing:-.025em;line-height:1.2}
.sr .helpcard p{font-size:13px;color:var(--body);line-height:1.7}
.sr .helpcard a{display:flex;justify-content:space-between;align-items:center;margin-top:clamp(14px,1.1vw,20px);font-size:13px;font-weight:700;color:var(--purple)}

/* results head */
.sr .r-head{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:flex-start}
.sr .r-head h2{margin:0;font-size:24px;font-weight:700;letter-spacing:-.03em}
.sr .r-head p{font-size:13px;color:var(--body);margin-top:8px}
.sr .tools{display:flex;gap:14px;align-items:center;font-size:13px;color:var(--soft)}
.sr .tools select{height:clamp(38px,2.1vw,41px);min-width:clamp(130px,7.9vw,152px);border:1px solid #DCD8E6;border-radius:8px;padding:0 10px 0 14px;font:inherit;font-size:13px;color:var(--ink);background:#fff}
.sr .toggle{display:flex;border:1px solid #DCD8E6;border-radius:8px;padding:3px;background:#fff}
.sr .toggle a{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;color:var(--faint)}
.sr .toggle a.on{background:#EFE9FD;color:var(--purple)}
.sr .r-row{display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:space-between;align-items:center;margin:clamp(14px,1vw,19px) 0 clamp(12px,.75vw,14px)}
.sr .chips{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:13px;color:var(--soft)}
.sr .chip{display:inline-flex;gap:8px;align-items:center;padding:8px 13px;border-radius:7px;background:#EEE8FC;border:1px solid #E1D6FA;color:var(--purple);font-size:13px;font-weight:500}
.sr .chip b{font-weight:500;opacity:.6}
.sr .r-row .how{display:inline-flex;gap:8px;align-items:center;font-size:13px;color:var(--body)}
.sr .r-row .how:hover{color:var(--purple)}
.sr .closest{margin:0 0 16px;padding:12px 16px;border-radius:10px;background:#FFF7E8;color:var(--v96-amber);font-size:13px}

/* cards */
.sr .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,1.25vw,24px) clamp(16px,1.2vw,23px)}
.sr .card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--card-line);border-radius:12px;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.sr .card:hover{border-color:#CDBDF6;box-shadow:0 14px 36px rgba(62,28,160,.07)}
.sr .shot{display:block;background:linear-gradient(180deg,#EFEBFA,#F5F2FC);padding:clamp(12px,.8vw,16px) clamp(12px,.8vw,16px) 0;overflow:hidden}
.sr .shot img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top left;border-radius:6px 6px 0 0;box-shadow:0 0 0 1px rgba(40,24,110,.06)}
.sr .save{position:absolute;top:clamp(12px,.85vw,16px);right:clamp(12px,.85vw,16px);margin:0}
.sr .save button{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;border:1px solid #E1DDEB;background:#fff;color:var(--v96-text);cursor:pointer;fill:none}
.sr .save button:hover{color:var(--v96-red);border-color:#F3C2BD}
.sr .save button.on{color:var(--v96-red);fill:var(--v96-red)}
.sr .c-body{display:flex;flex-direction:column;flex-grow:1;padding:clamp(16px,1.1vw,21px) clamp(16px,1.05vw,20px) 0}
.sr .c-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sr .c-cat{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--purple)}
.sr .c-tool{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--soft);padding:4px 8px;border-radius:6px;background:#F4F3F8;white-space:nowrap}
.sr .c-tool img.ti{width:14px;height:14px;display:block;flex:none;object-fit:contain}
.sr .c-tool i.td{width:6px;height:6px;border-radius:50%;background:#B8AEC6;flex:none}
.sr .card h3{margin:clamp(9px,.58vw,11px) 0 clamp(6px,.42vw,8px);font-size:22px;font-weight:700;letter-spacing:-.035em;line-height:1.2}
.sr .c-line{font-size:14px;color:#747A8C;line-height:1.55}
.sr .c-why{font-size:13px;color:var(--purple-d);margin-top:6px}
.sr .c-feat{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:clamp(16px,1.55vw,30px);font-size:13px;color:var(--body)}
.sr .c-feat span{display:inline-flex;gap:5px;align-items:center}
.sr .c-feat svg{color:#8B7CC4}
.sr .c-stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:clamp(10px,.8vw,14px)}
.sr .c-stack span{padding:5px 11px;border:1px solid #E6E3EE;border-radius:5px;background:#F7F6FA;font-size:13px;color:#6A6F82}
.sr .c-review{display:flex;justify-content:space-between;align-items:center;margin-top:clamp(12px,.8vw,15px);padding-bottom:clamp(12px,.85vw,16px);border-bottom:1px solid #EEECF3;font-size:13px}
.sr .c-review span{display:inline-flex;gap:6px;align-items:center}
.sr .c-review.warn{color:#9A6A14}
.sr .c-review.ok{color:#1B7F4B}
.sr .c-review.pending{color:#9A6A14}
.sr .c-review a{color:inherit;opacity:.9}
.sr .c-price{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:clamp(13px,.85vw,16px) 0 clamp(11px,.65vw,12px)}
.sr .c-price .amt{font-size:clamp(24px,1.6vw,31px);font-weight:800;letter-spacing:-.04em}
.sr .c-price .amt small{font-size:13px;font-weight:500;letter-spacing:0;color:var(--faint);margin-left:6px}
.sr .c-price .amt s{font-size:14px;font-weight:500;color:var(--faint);margin-left:8px;letter-spacing:0}
.sr .c-price .incl{font-size:13px;color:var(--soft);margin-top:4px}
.sr .c-price .offer{display:inline-block;margin-left:8px;font-size:13px;font-weight:700;color:var(--v96-red);background:var(--v96-red-bg);border-radius:999px;padding:3px 8px;vertical-align:middle;letter-spacing:0}
.sr .view{gap:clamp(12px,1vw,18px);height:clamp(38px,1.9vw,37px);padding:0 clamp(12px,.75vw,14px);white-space:nowrap}

.sr .c-foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:clamp(10px,.62vw,12px) clamp(16px,1.05vw,20px);border-top:1px solid #EEECF3;background:#FBFAFD;font-size:13px;color:var(--body)}
.sr .c-foot label{display:inline-flex;gap:7px;align-items:center;cursor:pointer}
.sr .c-foot input{width:14px;height:14px;margin:0;accent-color:var(--purple)}
.sr .c-foot .gil{display:inline-flex;gap:6px;align-items:center;color:var(--purple)}
.sr .c-foot .lic{text-align:right;color:var(--faint)}

/* launch card */
.sr .launch{display:flex;flex-direction:column;justify-content:center;border-radius:12px;border:1px solid #E0D5FA;background:linear-gradient(160deg,#F3EEFE 0%,#E9E1FC 100%);padding:clamp(24px,1.95vw,37px);position:relative;overflow:hidden;min-height:100%}
.sr .launch .mark{position:absolute;top:clamp(40px,4.2vw,80px);right:clamp(24px,2vw,38px);color:#A98BF0;opacity:.9}
.sr .launch .eyebrow{font-size:13px}
.sr .launch h3{margin:clamp(12px,1vw,18px) 0 clamp(14px,1.2vw,22px);font-size:clamp(24px,1.6vw,31px);font-weight:800;letter-spacing:-.045em;line-height:1.13}
.sr .launch p{font-size:14px;color:var(--body);line-height:1.7}
.sr .launch .ways{display:flex;flex-wrap:wrap;gap:8px;margin:clamp(18px,1.4vw,26px) 0 clamp(26px,2.2vw,42px)}
.sr .launch .ways span{padding:6px 10px;border:1px solid #D5C8F5;border-radius:6px;background:rgba(255,255,255,.45);font-size:13px;color:#6A5AA8}
.sr .launch a.go{display:flex;width:100%;justify-content:space-between}   /* 205: a standard blue button (v-btn) — white text */
.sr .launch .note{font-size:13px;color:var(--soft);margin-top:12px}

/* below */
.sr .foot-row{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:clamp(18px,1.4vw,26px);font-size:13px;color:var(--soft)}
.sr .foot-row a{justify-self:end;font-weight:700;color:var(--purple)}
.sr .tip{display:flex;align-items:center;gap:clamp(14px,1vw,20px);margin-top:clamp(18px,1.35vw,26px);border:1px solid var(--card-line);border-radius:12px;background:#fff;padding:clamp(16px,1.2vw,24px) clamp(18px,1.4vw,26px)}
.sr .tip .ico{width:clamp(38px,2.2vw,42px);height:clamp(38px,2.2vw,42px);border-radius:9px;background:#EFE9FD;color:var(--purple);display:grid;place-items:center;flex:none}
.sr .tip b{display:block;font-size:18px;font-weight:700;letter-spacing:-.025em}
.sr .tip span.d{display:block;font-size:13px;color:var(--body);margin-top:6px}
.sr .tip a{margin-left:auto;display:inline-flex;gap:14px;align-items:center;font-size:13px;font-weight:700;color:var(--purple);white-space:nowrap}

/* shortlist */
/* The compare bar floats at the bottom of the screen once a project is ticked, so buyers always see the next step. */
.sr .shortlist{position:fixed;left:50%;bottom:18px;z-index:60;width:min(1180px,calc(100% - 200px));display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;border:1px solid var(--v96-soft-line);border-radius:16px;background:#fff;padding:14px 18px;margin:0;box-shadow:0 24px 50px -18px rgba(33,26,49,.35),0 2px 6px rgba(33,26,49,.06);transform:translate(-50%,calc(100% + 40px));opacity:0;visibility:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s,visibility 0s linear .35s}
.sr .shortlist.on{transform:translate(-50%,0);opacity:1;visibility:visible;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s}
.sr .shortlist.pulse{animation:cmpPulse .9s ease-out 1}
@keyframes cmpPulse{0%{box-shadow:0 0 0 0 rgba(118,36,244,.45),0 24px 50px -18px rgba(33,26,49,.35)}100%{box-shadow:0 0 0 14px rgba(118,36,244,0),0 24px 50px -18px rgba(33,26,49,.35)}}
.sr .shortlist .hint{font-size:13px;font-weight:700;color:var(--v96-purple)}
body.cmp-open{padding-bottom:110px}
/* Numbered pages */
.sr .pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:34px 0 26px}
.sr .pager .nums{display:flex;align-items:center;gap:6px}
.sr .pager .num,.sr .pager .step{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border:1px solid var(--v96-line);border-radius:10px;background:#fff;font-size:15px;font-weight:700;color:var(--v96-ink)}
.sr .pager a.num:hover,.sr .pager a.step:hover{border-color:var(--v96-line-2);color:var(--v96-purple)}
.sr .pager .num.on{background:var(--v96-purple);border-color:var(--v96-purple);color:#fff}
.sr .pager .step{padding:0 16px}
.sr .pager .step.off{color:#C9C1D6;background:#FBFAFD}
.sr .pager .gap{min-width:24px;text-align:center;color:var(--v96-faint);font-weight:700}
.sr .shortlist .who{display:flex;gap:14px;align-items:center;padding-right:clamp(12px,1vw,20px);border-right:1px solid #ECE9F2}
.sr .shortlist .who svg{color:var(--purple)}
.sr .shortlist .who b{display:block;font-size:13px;font-weight:700}
.sr .shortlist .who span{display:block;font-size:13px;color:var(--soft);margin-top:3px}
.sr .picked{display:flex;flex-wrap:wrap;gap:10px;flex:1;min-width:0}
.sr .picked span{display:inline-flex;gap:14px;align-items:center;padding:clamp(10px,.75vw,14px) 16px;border-radius:7px;background:#F1ECFD;border:1px solid #E1D6FA;font-size:13px;color:var(--purple)}
.sr .picked button{border:0;background:none;color:var(--purple);cursor:pointer;font-size:14px;line-height:1;padding:0}
.sr .picked .empty{background:transparent;border:1px dashed #DCD4F0;color:var(--soft)}
.sr .shortlist .clear{border:0;background:none;font:inherit;font-size:13px;color:var(--soft);cursor:pointer}
.sr .shortlist .go{gap:clamp(16px,1.3vw,26px);height:clamp(44px,2.55vw,49px);padding:0 clamp(16px,1.1vw,22px)}
.sr .shortlist .go[aria-disabled="true"]{opacity:.45;pointer-events:none}

.sr .empty-state{grid-column:1/-1;border:1px dashed #DCD4F0;border-radius:12px;padding:40px;text-align:center;color:var(--body);font-size:14px}
.sr .empty-state a{color:var(--purple);font-weight:700}

/* list view: the same card, laid out sideways */
.sr .grid.list{grid-template-columns:1fr}
.sr .grid.list .card{display:grid;grid-template-columns:clamp(250px,22vw,340px) minmax(0,1fr);grid-template-rows:1fr auto}
/* Package 227: the image is never stretched to the card's height. A square list image fills the panel;
   without one, the wide cover is shown whole at 16:10, centred in the panel. */
.sr .grid.list .shot{grid-row:1/3;aspect-ratio:auto;height:auto;padding:18px;display:flex;align-items:center}
.sr .grid.list .shot img{height:auto;aspect-ratio:16/10;border-radius:8px}
.sr .grid.list .shot.sq{align-items:flex-start}
.sr .grid.list .shot picture{display:block;width:100%}
.sr .grid.list .shot.sq img{aspect-ratio:1/1;object-fit:cover;object-position:center}
.sr .grid.list .c-top{padding-right:46px}   /* keeps the "built with" tag clear of the heart */
.sr .grid.list .c-foot{grid-column:2}
.sr .grid.list .launch{min-height:260px}

@media (max-width:1280px){ .sr .grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
.sr .f-toggle{display:none;height:38px;padding:0 14px;border:1px solid #DCD8E6;border-radius:8px;background:#fff;font:inherit;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
.sr .f-toggle b{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;border-radius:999px;background:#EFE9FD;color:var(--purple);font-size:13px}
@media (max-width:900px){
  .sr .body{grid-template-columns:1fr}
  .sr aside{border-right:0;margin-right:0;padding-right:0;display:none;margin-bottom:22px;padding:18px;border:1px solid var(--card-line);border-radius:12px;background:#fff}
  .sr aside.open{display:block}
  .sr aside .helpcard{display:none}
  .sr .f-toggle{display:inline-block}
  .sr .tools{flex-wrap:wrap}
  .sr .hero-aside{text-align:left}
  .sr .bar .hint{display:none}
  .sr .grid.list .card{grid-template-columns:1fr}
  .sr .grid.list .shot{grid-row:auto;aspect-ratio:auto;padding:12px 12px 0;display:block}
  .sr .grid.list .shot img,.sr .grid.list .shot.sq img{height:auto;aspect-ratio:16/10;object-position:top left;border-radius:6px 6px 0 0}
  .sr .grid.list .shot picture{height:100%}
  .sr .grid.list .c-foot{grid-column:1}
}
@media (max-width:620px){
  .sr .tip{flex-wrap:wrap}
  .sr .tip a{margin-left:0}
  .sr .picked{flex-basis:100%}
  .sr .tools > span{display:none}
  .sr .grid{grid-template-columns:1fr}
  .sr .bar{flex-wrap:wrap;padding:6px}
  .sr .bar input{padding-left:8px}
  .sr .bar button{width:100%;justify-content:space-between}
  .sr .foot-row{grid-template-columns:1fr}
  .sr .foot-row a{justify-self:start}
  .sr .shortlist .who{border-right:0}
  .sr .shortlist{width:calc(100% - 24px);bottom:86px;padding:12px 14px}
  body.cmp-open{padding-bottom:190px}
  .sr .pager{gap:8px}.sr .pager .num.far{display:none}
  .sr .pager .num,.sr .pager .step{min-width:40px;height:40px;font-size:14px}
}
/* 328: phone filters — a bottom sheet with 44 px rows and a sticky "Show results" button */
.sr .f-sheet-head,.sr .f-sheet-foot{display:none}
@media (max-width:900px){
  body.f-sheet-on{overflow:hidden}
  body.f-sheet-on::after{content:"";position:fixed;inset:0;background:rgba(28,23,40,.45);z-index:1000}
  body.f-sheet-on #v96chat,body.f-sheet-on .sr .shortlist,body.f-sheet-on .cmp-bar{display:none}
  .sr aside.open{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:1001;max-height:86vh;overflow:auto;margin:0;padding:0 18px;border-radius:18px 18px 0 0;border:0;box-shadow:0 -20px 40px -20px rgba(28,23,40,.35)}
  .sr aside.open .f-sheet-head{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:1;margin:0 -18px;padding:14px 18px;background:#fff;border-bottom:1px solid var(--card-line)}
  .sr .f-sheet-head b{font-size:17px}
  .sr .f-sheet-head button{width:44px;height:44px;border:0;border-radius:10px;background:#F4F2F7;font-size:24px;line-height:1;cursor:pointer}
  .sr aside.open .f-sheet-foot{display:block;position:sticky;bottom:0;margin:12px -18px 0;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--card-line)}
  .sr .apply-m{width:100%;height:50px;border:0;border-radius:10px;background:var(--purple);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
  .sr aside.open .opt{min-height:44px;font-size:15px}
  .sr aside.open .opt input{width:20px;height:20px}
  .sr aside.open .opts{gap:0}
}
@media (max-width:620px){.sr .card p,.sr .card small,.sr .price-note,.sr .incl,.sr .r-head p{font-size:14px}}
/* 329: in the phone filter sheet the sheet header already says "Filters" — keep only "Reset all" from the panel heading */
@media (max-width:900px){.sr aside.open .f-head b{display:none}.sr aside.open .f-head{justify-content:flex-end}.sr aside.open .f-head a{min-height:44px;display:inline-flex;align-items:center}}

/* 329: phones — text no smaller than 14px (labels in capitals no smaller than 12px). Generated from the rules above that set a smaller size. */
@media (max-width:560px){
  .sr .bar .hint,
  .sr .under,
  .sr .try a,
  .sr .f-head a,
  .sr .f-sub,
  .sr .opt,
  .sr .price label,
  .sr .price input,
  .sr .price-note,
  .sr .apply,
  .sr .helpcard p,
  .sr .helpcard a,
  .sr .r-head p,
  .sr .tools,
  .sr .tools select,
  .sr .chips,
  .sr .chip,
  .sr .r-row .how,
  .sr .closest,
  .sr .c-tool,
  .sr .c-why,
  .sr .c-feat,
  .sr .c-stack span,
  .sr .c-review,
  .sr .c-price .amt small,
  .sr .c-price .incl,
  .sr .c-price .offer,
  .sr .c-foot,
  .sr .launch .eyebrow,
  .sr .launch .ways span,
  .sr .launch .note,
  .sr .foot-row,
  .sr .tip span.d,
  .sr .tip a,
  .sr .shortlist .hint,
  .sr .shortlist .who b,
  .sr .shortlist .who span,
  .sr .picked span,
  .sr .shortlist .clear,
  .sr .f-toggle{font-size:14px}
}
/* 329: phones — standalone links and small buttons get a 44px tap height */
@media (max-width:560px){
  .sr .r-row .how,.sr .c-foot a,.sr .c-foot label,.sr .foot-row a,.sr .tip a,.sr .try a,.sr .shortlist .clear,.sr .chip{min-height:44px;display:inline-flex;align-items:center}
  .sr .c-foot label input{width:20px;height:20px}
  .sr .helpcard a{min-height:44px}
}

/* 338: personal order and the reason a card fits */
.sr .c-fit{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:2px 9px;border-radius:999px;background:var(--v96-soft);font-size:12.5px;font-weight:700;color:var(--v96-purple-d)}
.sr .sr-foryou{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:var(--v96-tint);font-size:14px;line-height:1.55;color:var(--v96-body)}
.sr .sr-foryou a{font-weight:700;color:var(--v96-purple)}
