/* Generated by build-catalogue.py */

@layer components {
h1,h2,h3{font-family:var(--font-display)}
.nav{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--rule)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);
          flex-wrap:wrap;
  max-width:var(--max-content);margin-inline:auto;padding:var(--sp-3) var(--margin)}
.wordmark{font-family:var(--font-display);font-size:var(--t-h4);letter-spacing:0.06em;
  text-decoration:none;text-transform:uppercase;color:inherit}
.wordmark span{color:var(--ink-3)}
.nav-links{display:none;gap:var(--sp-6)}
  @media(min-width:768px){.nav-links{display:flex}}
.nav-links a{font-size:var(--t-caption);letter-spacing:0.04em;color:var(--ink-2);
  text-decoration:none;padding-block:var(--sp-1);border-bottom:1px solid transparent;
  transition:border-color var(--dur-1) var(--ease-standard)}
.nav-links a:hover,.nav-links a[aria-current]{border-bottom-color:var(--accent)}
.btn{display:inline-flex;align-items:center;border:1px solid var(--ink);background:transparent;
  color:var(--ink);font:inherit;font-size:var(--t-caption);letter-spacing:0.06em;
  text-transform:uppercase;padding:calc(var(--sp-3) + 1px) var(--sp-5) var(--sp-3);
  text-decoration:none;transition:background var(--dur-1) var(--ease-standard),
  color var(--dur-1) var(--ease-standard)}
.btn:hover{background:var(--ink);color:var(--on-fill-h)}
.btn-primary{background:var(--fill);border-color:var(--fill);color:var(--on-fill)}
.btn-primary:hover{background:var(--fill-h);border-color:var(--fill-h);color:var(--on-fill-h)}
.mono{font-family:var(--font-mono);font-size:10px;line-height:1rem;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--ink-3)}
.wt{grid-column:1/-1;max-width:var(--max-text)}
.full{grid-column:1/-1}
.lede{margin-top:var(--sp-5);font-size:var(--t-body-lg);line-height:var(--lh-body-lg);
  color:var(--ink-2);max-width:46ch}
.hh{margin-top:var(--sp-10);max-width:24ch}
.p{margin-top:var(--sp-4);color:var(--ink-2)}
.cta{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-6);align-items:center}
.cta small{flex-basis:100%;font-size:var(--t-caption);line-height:1.25rem;color:var(--ink-3)}
.list{margin:var(--sp-6) 0 0;padding:0;list-style:none;max-width:var(--max-text)}
/* .marklist stands the fin in the inline start padding, and this rule sets
   that padding, so the room for it is given back here. */
.list.marklist li{padding-inline-start:1.9em}
/* .list li carries its own block padding, and the component pins the bullet to
   the top of the item, which lands it above the heading rather than beside it.
   Push it down by that padding. */
.list.marklist li::before{top:calc(var(--sp-4) + 0.34em)}
.list li{border-top:1px solid var(--rule);padding:var(--sp-4) 0;color:var(--ink-2);
  font-size:var(--t-caption);line-height:1.35rem}
.list li b{display:block;color:var(--ink);font-weight:var(--w-medium);
  font-size:var(--t-body);line-height:var(--lh-body);margin-bottom:var(--sp-2)}
.onward{grid-column:1/-1;display:grid;gap:var(--sp-5) var(--gutter);margin-top:var(--sp-10);
  grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));border-top:1px solid var(--ink);
  padding-top:var(--sp-5)}
.onward a{text-decoration:none;color:inherit;display:block}
.onward a strong{display:block;font-family:var(--font-display);font-size:var(--t-h4);
  line-height:var(--lh-h4);font-weight:var(--w-medium)}
.onward a p{margin-top:var(--sp-2);font-size:var(--t-caption);line-height:1.25rem;color:var(--ink-3)}
.onward a:hover strong{color:var(--accent)}
.foot{background:var(--surface-2);border-top:1px solid var(--rule);margin-top:var(--sp-10)}
.foot-in{max-width:var(--max-content);margin-inline:auto;padding:var(--sp-8) var(--margin);
  display:flex;flex-wrap:wrap;gap:var(--sp-7);justify-content:space-between;
  font-size:var(--t-caption);line-height:1.35rem;color:var(--ink-2)}
.foot a{color:var(--ink);text-decoration:none}
.foot a:hover{text-decoration:underline}
.srcs{grid-column:1/-1;columns:2 320px;column-gap:var(--gutter);margin-top:var(--sp-5);
  font-size:var(--t-caption);line-height:1.35rem}
.sources li{break-inside:avoid;color:var(--ink-2)}
.sources a{color:var(--ink);word-break:break-word}
.sources b{font-weight:var(--w-medium);color:var(--ink)}
.srcs-h{grid-column:1/-1;margin-top:var(--sp-10);border-top:1px solid var(--rule);
  padding-top:var(--sp-4)}
}

@layer components {
h1{font-size:var(--t-h1);line-height:var(--lh-h1);font-weight:300}
h2{font-size:var(--t-h3);line-height:var(--lh-h3);font-weight:300}
.wordmark{text-transform:none;letter-spacing:0.01em;font-weight:400}
}

/* LuckyFin: white ground, quiet Plex typography, geometry given room to breathe. */
.shop{--shop-muted:#53636c;max-width:1440px;margin:0 auto;padding:0 48px 80px;font-family:'IBM Plex Sans',sans-serif;color:#0c2130}
.shop *, .shop *:before,.shop *:after{box-sizing:border-box}.shop img{display:block;width:100%;height:auto;object-fit:contain}.shop h1,.shop h2{font-family:'IBM Plex Sans',sans-serif;font-weight:400;letter-spacing:-.035em;line-height:1.14;margin:0}.shop h1{font-size:clamp(32px,3.5vw,52px)}.shop h2{font-size:28px}.shop p{line-height:1.6}.shop a{color:inherit}.shop a:focus-visible,.shop button:focus-visible,.shop input:focus-visible,.shop textarea:focus-visible,.shop select:focus-visible{outline:2px solid var(--safe);outline-offset:5px}.shop-opening{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:7%;padding:24px 0 40px}.shop-opening-image{display:block;background:#f4f6f7}.shop-opening-image img{aspect-ratio:1;object-fit:contain}.shop-opening p{max-width:37ch;font-size:18px;margin:24px 0}.shop-link{text-underline-offset:6px}.shop-categories{display:flex;flex-wrap:wrap;gap:8px 26px;padding:22px 0;border-bottom:1px solid #d8e0e4;font-size:15px}.shop-categories a{text-decoration:none;padding:5px 0}.shop-categories a[aria-current]{text-decoration:underline;text-underline-offset:8px}.shop-heading{margin:32px 0}.shop-heading h1{font-size:36px}.shop-heading p{color:var(--shop-muted);margin:12px 0 0;max-width:60ch}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 24px}.shop-card{min-width:0}.shop-card>a{display:block;text-decoration:none}.shop-card-image{background:#f4f6f7;overflow:hidden}.shop-card-image img{aspect-ratio:1;object-fit:contain;transition:transform .25s ease}.shop-card a:hover img{transform:scale(1.025)}.shop-card h2{font-size:18px;letter-spacing:-.015em;line-height:1.4;margin:16px 0 5px}.shop-card p{font-size:14px;margin:0;color:var(--shop-muted)}.shop-collection{padding:44px 0 12px}.shop-collection>h2{margin:0 0 25px}.shop-story{max-width:720px;margin:72px auto 0;padding:0 0 30px}.shop-story p{font-size:18px}.shop-note{font-size:13px!important;line-height:1.6!important;color:var(--shop-muted)}.product-top{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:6%;padding:30px 0 64px;align-items:start}.product-gallery{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;min-width:0}.gallery-thumbs{display:flex;flex-direction:column;gap:12px}.gallery-thumb{padding:0;border:1px solid transparent;background:#f4f6f7;cursor:pointer}.gallery-thumb[aria-pressed=true]{border-color:#0c2130}.gallery-thumb img{aspect-ratio:1;object-fit:contain}.gallery-main{margin:0;min-width:0}.gallery-main>img{aspect-ratio:1;object-fit:contain;background:#f4f6f7}.gallery-main figcaption{font-size:12px;color:var(--shop-muted);padding:12px 0}.product-buy{padding-top:10px;min-width:0}.product-buy h1{font-size:clamp(30px,3vw,42px);margin-bottom:14px}.product-line{font-size:15px;text-decoration:none}.product-code{font-size:12px;color:var(--shop-muted);margin:10px 0}.product-price{font-size:16px;margin:18px 0 26px}.field-title{font-size:14px;margin:0 0 10px}.size-chips{display:flex;flex-wrap:wrap;gap:8px}.size-chip{display:inline-block;border:1px solid #9eacb4;padding:10px 14px;font-size:14px;text-decoration:none;line-height:1.5}.size-chip:first-child{border-color:#0c2130}.product-actions{display:grid;gap:10px;margin-top:25px}.shop-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;background:var(--primary);color:var(--on-fill)!important;border:1px solid var(--primary);text-decoration:none;cursor:pointer;font:inherit;font-size:15px;text-align:center}.shop-button.secondary{background:white;color:#0c2130!important;border-color:#9eacb4}.product-description{margin-top:26px;font-size:16px;max-width:48ch}.product-details{display:grid;grid-template-columns:1fr 1fr;gap:8%;border-top:1px solid #d8e0e4;padding:48px 0}.product-details h2{margin-bottom:24px}.product-details table{border-collapse:collapse;width:100%;font-size:14px}.product-details th,.product-details td{padding:13px 0;border-bottom:1px solid #d8e0e4;text-align:left;vertical-align:top;line-height:1.5;overflow-wrap:anywhere}.product-details th{font-weight:400;color:var(--shop-muted);width:35%;padding-right:15px}.product-details p{max-width:55ch}.shop-quote{scroll-margin-top:100px;border-top:1px solid #d8e0e4;padding:48px 0;display:grid;grid-template-columns:1fr 1fr;gap:8%}.shop-quote p{max-width:45ch}.shop-field{display:grid;gap:8px;margin:18px 0;font-size:14px}.shop-field input,.shop-field textarea,.shop-field select,.quote-output{font:inherit;background:white;border:1px solid #9eacb4;border-radius:0;padding:12px;min-width:0;width:100%;color:#0c2130}.shop-field input{max-width:100px}.shop-quote form>.shop-button{width:100%;margin-top:8px}.quote-output{height:170px}.quote-status{font-size:14px}.quote-product{margin:0}.shop [hidden]{display:none!important}
@media(min-width:1300px){.shop-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.product-gallery{grid-template-columns:76px minmax(0,1fr)}}
@media(max-width:900px){.shop{padding-inline:24px}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-top{gap:28px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.product-gallery{grid-template-columns:1fr}.gallery-thumbs{order:2;flex-direction:row}.gallery-thumb{width:56px}.shop-opening{gap:30px}.shop-opening h1{font-size:36px}}
@media(max-width:650px){.shop{padding:0 18px 48px}.shop-opening{display:flex;flex-direction:column;gap:26px;align-items:stretch;padding-top:0}.shop-opening-image{margin-inline:-18px}.shop-opening h1{font-size:34px;max-width:15ch}.shop-opening p{font-size:16px}.shop-categories{gap:7px 20px;font-size:14px}.shop-grid{gap:28px 14px}.shop-card h2{font-size:16px;margin-top:12px}.shop-card p{font-size:13px}.shop-heading h1{font-size:30px}.shop-heading p{font-size:15px}.product-top{display:flex;flex-direction:column;gap:20px;padding-top:0}.product-gallery{width:calc(100% + 36px);margin-inline:-18px;gap:10px}.gallery-thumbs,.gallery-main figcaption{padding-inline:18px}.product-buy{width:100%}.product-buy h1{font-size:34px}.product-details,.shop-quote{grid-template-columns:1fr;gap:34px;padding-block:32px}.shop h2{font-size:25px}.shop-card h2{font-size:16px}.shop-story{margin-top:50px}.shop-story p{font-size:16px}.shop-collection{padding-top:30px}.product-details table{font-size:13px}}
@media(prefers-reduced-motion:reduce){.shop-card-image img{transition:none}}

.product-colours{border:0;padding:0;margin:22px 0 0;min-width:0}.product-colours legend{font-size:14px;padding:0;margin-bottom:10px}.product-colours>div{display:flex;gap:12px}.product-colours button{width:36px;height:36px;border-radius:50%;border:2px solid #fff;outline:1px solid #b8c9ce;background:var(--swatch);padding:0;cursor:pointer}.product-colours button[aria-pressed=true]{outline:2px solid #0c2130;outline-offset:2px}.selected-colour{font-size:13px;margin:10px 0 0}.product-colours .shop-note{margin:5px 0 0;max-width:42ch}
@media(max-width:900px){.product-gallery{grid-template-columns:48px minmax(0,1fr)}.gallery-thumbs{order:0;flex-direction:column}.gallery-thumb{width:48px}}
@media(max-width:650px){.product-gallery{grid-template-columns:42px minmax(0,1fr);gap:8px}.gallery-thumbs{padding:8px 0 0 6px}.gallery-thumb{width:36px}.gallery-main figcaption{padding-inline:0}}

#request{scroll-margin-top:100px}#requestPreview{margin-top:24px;min-width:0}#requestPreview iframe{display:block;width:100%;height:360px;border:0;background:#f3f6f6}#requestForm .shop-field{display:block}#requestForm .shop-field>span{font-size:12px;color:#53636c;margin-left:6px}#requestForm input,#requestForm textarea{display:block;max-width:none;margin-top:8px}#requestForm #fQty{max-width:100px}#requestForm button:disabled{opacity:.6;cursor:default}@media(max-width:650px){#requestPreview iframe{height:300px}#requestForm input,#requestForm textarea{font-size:16px}}
.order-handoff{display:grid;gap:8px;margin-top:12px}.order-handoff textarea{display:block;width:100%;min-width:0;resize:vertical;padding:10px;border:1px solid #9eacb4;background:white;color:#0c2130;font:14px/1.5 'IBM Plex Sans',sans-serif}.order-handoff a{overflow-wrap:anywhere}

.shop-button:not(.secondary):hover{background:var(--deep);color:var(--on-fill-h)!important;border-color:var(--deep)}

.shop-brand-intro{padding:28px 0 8px;max-width:780px}.shop-brand-intro h1{font-size:clamp(28px,3.5vw,46px)}.shop-brand-intro p{font-size:16px;max-width:54ch;margin:14px 0 0}.collection-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:24px}.collection-heading .shop-link{font-size:14px}@media(max-width:650px){.shop-brand-intro{padding-top:24px}.shop-brand-intro p{font-size:15px}.collection-heading{margin-bottom:18px}}

/* Catalogue density is a visitor preference, shared across category pages. */
.grid-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:0;padding:0;margin:0 0 24px;min-width:0}.grid-controls legend{float:left;margin-right:12px;padding:10px 0;font-size:14px}.grid-controls button{min-height:44px;padding:9px 14px;border:1px solid #bacbd5;background:white;color:#071827;font:inherit;font-size:14px;cursor:pointer}.grid-controls button[aria-pressed=true]{border-color:#0067b8;background:#0067b8;color:white}.catalogue-grid[data-size=large]{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogue-grid[data-size=medium]{grid-template-columns:repeat(3,minmax(0,1fr))}.catalogue-grid[data-size=compact]{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px 16px}.catalogue-grid[data-size=compact] .shop-card h2{font-size:16px;letter-spacing:-.01em}.catalogue-grid .shop-card{min-width:0}.catalogue-grid .shop-card h2{overflow-wrap:anywhere}@media(max-width:650px){.catalogue-grid[data-size=large]{grid-template-columns:1fr}.catalogue-grid[data-size=medium]{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogue-grid[data-size=compact]{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 10px}.catalogue-grid[data-size=compact] .shop-card h2{font-size:14px}.catalogue-grid[data-size=compact] .shop-card p{font-size:12px}}
