/*! ==========================================================================
    SAN — Shop / Collections refinement
    Implements the Shop Collections Audit (20 Aug 2026).

    Loaded from layout/theme.liquid after theme.css so it can refine, never
    replace, the existing design language. Everything here is additive and
    scoped to new classes; no existing theme selector is overridden globally.

    Colours use the theme's own scheme variables (--color-foreground is an
    "R G B" triplet re-emitted per section), spacing uses the --sp-* scale,
    motion uses --animation-*. Nothing is hardcoded.

    Contents
      1. Product card — descriptor / differentiator / spec chip
      2. Product card — always-visible CTA
      3. Lineup — shared rhythm and link style
      4. Lineup — orient (H1 band)
      5. Lineup — decision strip
      6. Lineup — product bands
      7. Lineup — press row
      8. Lineup — system band (accessories)
      9. Lineup — why SAN
     10. Mobile refinements
   ========================================================================== *//*! 1. Product card — descriptor / differentiator / spec chip
    ---------------------------------------------------------
    Three pieces of text, each doing a different job:
      · eyebrow        san.role          — ladder role, only when set
      · descriptor     san.seo_tail      — plain-English category
      · differentiator san.tagline       — the one-clause claim
      · chip           san.chip / specs  — the number that separates products  */.product-card__descriptor{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);width:100%;margin-block-start:var(--sp-3)}.text-center .product-card__descriptor{align-items:center;text-align:center}.text-right .product-card__descriptor{align-items:flex-end;text-align:end}.product-card__descriptor>*{margin:0}.product-card__eyebrow{font-size:max(.625rem,10px);line-height:1;letter-spacing:.14em;text-transform:uppercase;color:rgb(var(--color-foreground) / .5)}.product-card__role{font-size:clamp(.8125rem,.95vw,.875rem);line-height:1.35;font-weight:500;color:rgb(var(--color-foreground) / .82);text-transform:none}.product-card__short{font-size:clamp(.75rem,.9vw,.8125rem);line-height:1.4;color:rgb(var(--color-foreground) / .62)}.product-card__chip{display:inline-flex;align-items:center;gap:var(--sp-1d5);max-width:100%;padding:var(--sp-1d5) var(--sp-2d5);border:1px solid rgb(var(--color-foreground) / .22);border-radius:3px;color:rgb(var(--color-foreground) / .78);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:max(.625rem,10px);line-height:1;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-card__availability{display:inline-flex;align-items:center;gap:var(--sp-1d5);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:max(.625rem,10px);line-height:1;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--color-foreground) / .55)}.product-card h3.product-card__heading{font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;text-transform:none;margin:0}/*! 2. Product card — always-visible CTA
    ------------------------------------
    Replaces the hover-only quick-add and the unlabelled 40px mobile cart
    glyph. Full width, labelled with its destination, 44px minimum target.   */.product-card__cta{width:100%}.product-card__cta .button{width:100%;min-height:44px;justify-content:center}.product-card__cta .btn-text{justify-content:center;text-align:center}.product-card .product-card__content{height:100%}.product-card__content>.product-card__cta{margin-block-start:auto;padding-block-start:var(--sp-4)}/*! 3. Lineup — shared rhythm and link style
    ---------------------------------------- */.san-lineup__block+.san-lineup__block{margin-block-start:var(--san-block-gap, var(--sp-20))}.san-eyebrow{display:block;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:max(.625rem,10px);line-height:1;letter-spacing:.18em;text-transform:uppercase;color:rgb(var(--color-foreground) / .5);margin-block-end:var(--sp-5)}.san-orient>.san-eyebrow,.san-band__head>.san-eyebrow{margin-block-end:0}.san-link{display:inline-flex;align-items:center;gap:var(--sp-1d5);font-size:clamp(.8125rem,.95vw,.9375rem);line-height:1.2;color:rgb(var(--color-foreground) / .75);text-decoration:none;border-block-end:1px solid rgb(var(--color-foreground) / .25);padding-block-end:3px;transition:color var(--animation-primary),border-color var(--animation-primary)}.san-link .icon{flex-shrink:0;transition:transform var(--animation-primary)}@media screen and (pointer:fine){.san-link:hover{color:rgb(var(--color-foreground));border-block-end-color:rgb(var(--color-foreground) / .7)}.san-link:hover .icon{transform:translate(calc(3px * var(--transform-logical, 1)))}}/*! 4. Lineup — orient (the H1 band)
    -------------------------------- */.san-orient{display:flex;flex-direction:column;gap:var(--sp-5);max-width:52ch}.san-orient__title{margin:0}.san-orient__sub{margin:0;font-size:clamp(1rem,1.35vw,1.1875rem);line-height:1.45;color:rgb(var(--color-foreground) / .72)}.san-orient__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-4);margin:0;padding:0;list-style:none;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:max(.625rem,10px);line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:rgb(var(--color-foreground) / .5)}.san-orient__meta li{display:inline-flex;align-items:center;gap:var(--sp-4)}.san-orient__meta li+li:before{content:"";display:block;width:3px;height:3px;border-radius:var(--rounded-full);background-color:currentColor;opacity:.6}/*! 5. Lineup — decision strip
    --------------------------
    Three tap targets framed by job, not by tier. It answers "which is right
    for me" in one glance without a table, and it anchors price upward: $99
    reads as remarkable rather than cheap (audit §2.2 / §4).                 */.san-decide__grid{display:grid;grid-template-columns:repeat(var(--san-decide-columns, 3),minmax(0,1fr));gap:var(--sp-4)}.san-decide__item{display:flex;align-items:stretch;justify-content:space-between;gap:var(--sp-4);min-height:164px;padding:clamp(var(--sp-5),1.6vw,var(--sp-7));border:1px solid rgb(var(--color-foreground) / .16);border-radius:var(--card-radius, 0px);color:inherit;text-decoration:none;transition:border-color var(--animation-primary),background-color var(--animation-primary)}.san-decide__body{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;justify-content:space-between;gap:var(--sp-6)}.san-decide__job{display:block;font-size:clamp(1rem,1.25vw,1.125rem);line-height:1.3;font-weight:500}.san-decide__foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1d5) var(--sp-3)}.san-decide__product{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:max(.6875rem,11px);line-height:1;letter-spacing:.12em;text-transform:uppercase;color:rgb(var(--color-foreground) / .6)}.san-decide__price{font-size:clamp(1.125rem,1.5vw,1.375rem);line-height:1;font-weight:500}.san-decide__arrow{display:flex;align-items:flex-end;flex-shrink:0;opacity:.45;transition:opacity var(--animation-primary),transform var(--animation-primary)}.san-decide__item:focus-visible{outline:2px solid rgb(var(--color-foreground) / .6);outline-offset:3px}@media screen and (pointer:fine){.san-decide__item:hover{border-color:rgb(var(--color-foreground) / .45)}.san-decide__item:hover .san-decide__arrow{opacity:1;transform:translate(calc(var(--sp-1) * var(--transform-logical, 1)))}}.san-decide__footer{margin-block-start:var(--sp-6)}/*! 6. Lineup — product bands
    ------------------------- */.san-band__head{display:flex;flex-direction:column;gap:var(--sp-3);margin-block-end:clamp(var(--sp-6),2vw,var(--sp-9));max-width:60ch}.san-band__title,.san-system__title{margin:0}.san-band__desc,.san-system__desc{font-size:clamp(.9375rem,1.1vw,1.0625rem);line-height:1.5;color:rgb(var(--color-foreground) / .7)}.san-band__desc p,.san-system__desc p,.san-band__aside p{margin:0}.san-band__aside{grid-column:span 2;align-self:center;font-size:clamp(1rem,1.35vw,1.1875rem);line-height:1.5;color:rgb(var(--color-foreground) / .72);max-width:34ch}.san-band__footer{margin-block-start:clamp(var(--sp-5),1.6vw,var(--sp-7))}/*! 7. Lineup — press row
    ---------------------
    Third-party credibility, once, exactly where doubt peaks. Renders as
    monochrome wordmarks until real logo files exist, then swaps to images
    with no markup change (audit §2.5 / §1 ADD).                             */.san-press{text-align:center}.san-press__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(var(--sp-6),3vw,var(--sp-14))}.san-press__item{display:inline-flex;align-items:center;color:rgb(var(--color-foreground) / .55);text-decoration:none;transition:color var(--animation-primary)}.san-press__item img{display:block;width:auto;filter:grayscale(1);opacity:.7;transition:opacity var(--animation-primary)}.san-press__wordmark{font-size:clamp(.8125rem,1.15vw,1rem);line-height:1;font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}@media screen and (pointer:fine){.san-press__item:hover{color:rgb(var(--color-foreground))}.san-press__item:hover img{opacity:1}}.san-press__rating{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);margin:var(--sp-6) 0 0;font-size:clamp(.8125rem,.95vw,.9375rem);line-height:1.3;color:rgb(var(--color-foreground) / .7)}/*! 8. Lineup — system band (accessories)
    -------------------------------------
    Deliberately a different visual language from the product cards so the
    accessories stay crawlable and linkable without competing with the main
    journey (audit §2.6 / §3).                                               */.san-system__head{display:flex;flex-direction:column;gap:var(--sp-3);margin-block-end:clamp(var(--sp-5),1.8vw,var(--sp-8));max-width:60ch}.san-system__grid{display:grid;grid-template-columns:repeat(var(--san-system-columns, 2),minmax(0,1fr));gap:var(--sp-4)}.san-system-card{padding:clamp(var(--sp-4),1.2vw,var(--sp-5));border:1px solid rgb(var(--color-foreground) / .16);border-radius:var(--card-radius, 0px);transition:border-color var(--animation-primary)}@media screen and (pointer:fine){.san-system-card:hover{border-color:rgb(var(--color-foreground) / .34)}}.san-system-card .horizontal-product__media{width:clamp(72px,7vw,104px)}.san-system-card .horizontal-product__title{font-size:clamp(.9375rem,1.1vw,1.0625rem)}.horizontal-product__role{margin:0;font-size:clamp(.75rem,.9vw,.8125rem);line-height:1.35;color:rgb(var(--color-foreground) / .75)}.horizontal-product__compat{margin:0;font-size:max(.6875rem,11px);line-height:1.35;color:rgb(var(--color-foreground) / .55)}.san-system-card .horizontal-product__quantity .button{min-height:44px}.san-system__footer{margin-block-start:clamp(var(--sp-5),1.6vw,var(--sp-7))}/*! 9. Lineup — why SAN
    -------------------
    Enough to signal that there is real engineering here, short enough that it
    is not a manifesto. The depth already lives on the linked pages.         */.san-why__title-lead{margin:0 0 var(--sp-5)}.san-why__grid{display:grid;grid-template-columns:repeat(var(--san-why-columns, 3),minmax(0,1fr));gap:0 var(--sp-8)}.san-why__item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:64px;padding-block:var(--sp-5);border-block-start:1px solid rgb(var(--color-foreground) / .16);color:inherit;text-decoration:none;transition:border-color var(--animation-primary)}.san-why__text{display:flex;flex-direction:column;gap:var(--sp-1d5);min-width:0}.san-why__title{font-size:clamp(.9375rem,1.1vw,1.0625rem);line-height:1.25;font-weight:500}.san-why__line{font-size:clamp(.75rem,.9vw,.8125rem);line-height:1.35;color:rgb(var(--color-foreground) / .6)}.san-why__arrow{display:flex;flex-shrink:0;opacity:.45;transition:opacity var(--animation-primary),transform var(--animation-primary)}@media screen and (pointer:fine){.san-why__item:hover{border-block-start-color:rgb(var(--color-foreground) / .5)}.san-why__item:hover .san-why__arrow{opacity:1;transform:translate(calc(var(--sp-1) * var(--transform-logical, 1)))}}/*! 10. Mobile refinements
    ----------------------
    74.6% of sessions. The primary design target, not an adaptation.
    No horizontal scrolling anywhere; two-column product grids; every tap
    target at or above 44px; tightened section rhythm.                       */@media screen and (max-width:767px){.san-lineup__block+.san-lineup__block{margin-block-start:var(--san-block-gap-mobile, var(--sp-14))}.san-orient{max-width:none;gap:var(--sp-4)}.san-decide__grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-2d5)}.san-decide__item{align-items:center;gap:var(--sp-3);min-height:64px;padding:var(--sp-4) var(--sp-5)}.san-decide__body{justify-content:center;gap:var(--sp-1d5)}.san-decide__job{font-size:.9375rem}.san-decide__arrow{align-items:center}.san-band__aside{max-width:none;margin-block-start:var(--sp-2)}.san-press__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5) var(--sp-4);justify-items:center}.san-system__grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-2d5)}.san-system-card .horizontal-product{flex-wrap:wrap}.san-system-card .horizontal-product__quantity{width:100%}.san-system-card .horizontal-product__quantity .button{width:100%;justify-content:center}.san-why__grid{grid-template-columns:minmax(0,1fr)}.san-why__item:last-child{border-block-end:1px solid rgb(var(--color-foreground) / .16)}.product-card__descriptor{gap:var(--sp-1d5);margin-block-start:var(--sp-2d5)}.product-card__content>.product-card__cta{padding-block-start:var(--sp-3)}}
/*# sourceMappingURL=/cdn/shop/t/288/assets/san-collection.css.map */
