{"version":3,"file":"CollectionGrid.BtR4Qo2P.mjs","names":["useMemo","useState","useRef","c","p","_Fragment","useLayoutEffect","useEffect","__esmMin","pe","init_npm_react_18_3_1","init_ssg_sandbox_shims","window","le","init_npm_react_dom_18_3_1","l","_e","Ha","p","c","init_jsx_runtime","ce","de","init_framer_BL70qLPA","addPropertyControls","RenderTarget","ControlType","init_CollectionData","collectionData","parsePreset","raw","out","seen","t","stripZeros","tok","ALL_PRODUCTS","x","dotColours","hex","DOT","s","fam","familySwatch","specialLine","finishesOf","f","printed","finishes","FINISH_PHRASE","tags","styles","STYLE_WORD","k","list","joinList","head","capFirst","priceMessage","fin","inner","fontVars","o","family","quoteFamily","weight","fstyle","CollectionGrid","props","bookLabel","DEFAULT_BOOK_LABEL","shortLabel","SHORT_BOOK_LABEL","onCanvas","isLive","presetList","preset","showFilters","showBar","products","PRODUCTS","filters","setFilters","dd","setDd","sheet","setSheet","lightbox","setLightbox","forced","setForced","coarse","setCoarse","reduce","setReduce","mounted","setMounted","wrapRef","listRef","ghostRef","barRef","pending","cleanupTimer","filtersRef","reduceRef","coarseRef","lastTrigger","skipRestore","applyFilterRef","applyFilter","mqCoarse","mqReduce","sync","key","GROUPS","g","el","onFilter","d","COLOURS","TAGS","visible","matches","filtered","grouped","sections","chipCounts","base","matchColour","matchTag","m","colourCounts","matchGroup","tagCounts","extraCount","nf","next","wrap","wrect","rects","els","nextIds","layer","id","useIsoLayout","pend","newHeight","moves","nr","or","dx","dy","sx","sy","ghosts","DUR","EASE","onDown","onKey","btn","lbIndex","lbProduct","openLightbox","triggerEl","closeLightbox","restore","raf","run","names","grid","rows","top","n","row","h","schedule","ro","html","prevOverflow","getPrice","w","section","opener","rsvp","q","bookFromLightbox","onHit","e","showingOpen","hasBoth","onToggle","card","hovering","cur","clearAll","dF","displayFont","lF","labelFont","iF","italicFont","bF","bodyFont","rootStyle","style","chips","CSS","look","lookFor","c$1","active","Dropdown","colourLabel","Option","c$2","FINISHES","STYLES","SlidersIcon","plural","Card","Lightbox","Sheet","p$1","closed","imgOf","open","both","cls","views","line","View","isCut","viewAlt","Kicker","Pills","onPrice","priceLabel","which","cut","alt","eager","p$2","dots","dotStyle","parts","large","panelRef","sel","onKeyDown","opts","i","setOpen","value","swatch","valueLabel","label","Chevron","selected","disabled","onPick","count","useTrap","ref","root","focusables","first","onClose","a","z","p$3","onNext","onPrev","CloseIcon","v","onBook","total","ArrowIcon","index","prev","c$3","onClear","DATA","FINISH_KEYS","groupIndex","hasClosed","hasOpen","LOOK","init_CollectionGrid","view","b","xs","dir"],"sources":["https:/framerusercontent.com/modules/L8quibQCxaAY0mq0x2WT/0T5BL6FXEBjZjRudaNdo/CollectionGrid.js"],"sourcesContent":["// @ts-nocheck\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useMemo,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{collectionData}from\"https://framerusercontent.com/modules/QHbN9mgizdqFBjkkPFKz/Vz0RsHFqjwf6llUCZ3Ek/CollectionData.js\";/**\n * DejaTen collection grid: one product, one square.\n *\n * Filter bar (format chips with counts and a colour dot, Colour and Finish and style\n * dropdowns, results line with Clear), a grouped grid of identical square plates (closed\n * view on entry, open view on hover with a settle, tap on touch screens, a Closed / Open\n * toggle for touch and keyboard), a centred text block (kicker, name, one italic line,\n * finish pills, \"Get a price for this design\"), FLIP reflow when a filter changes, and an\n * in-page lightbox. \"Get a price for this design\" opens the booking pop-up through the\n * \"dejaten:book\" event with the message pre-filled (falls back to scrolling to #rsvp).\n *\n * Data comes from the generated CollectionData.tsx: products with `hidden: true` are\n * skipped, image URLs are `images.closed` / `images.open` (either may be missing), and\n * `cutout.closed` / `cutout.open` say whether a view is a transparent cut-out (drawn on the\n * plate with a contact shadow) or a cropped photo (drawn in a soft rounded frame). Every\n * image is centred in its square with object-fit: contain and equal padding.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 1600\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */const DUR=350;const EASE=\"cubic-bezier(0.22, 0.61, 0.36, 1)\";const useIsoLayout=typeof window!==\"undefined\"?useLayoutEffect:useEffect;// ---------- data ----------\nconst DATA=collectionData&&typeof collectionData===\"object\"?collectionData:{};const GROUPS=Array.isArray(DATA.groups)?DATA.groups:[];const COLOURS=Array.isArray(DATA.colours)?DATA.colours:[];const TAGS=Array.isArray(DATA.tags)?DATA.tags:[];const FINISH_KEYS=[\"gold-foil\",\"silver-acrylic\",\"laser-cut\",\"seal\",\"watercolour\"];const FINISHES=TAGS.filter(t=>FINISH_KEYS.includes(t.key));const STYLES=TAGS.filter(t=>!FINISH_KEYS.includes(t.key));const groupIndex=new Map(GROUPS.map((g,i)=>[g.key,i]));const imgOf=(p,view)=>p&&p.images&&typeof p.images[view]===\"string\"&&p.images[view]||null;// Design concepts (`concept: true`) are new designs shown as examples on a market page. They\n// appear only where a preset names them (presetIds), never in the full collection, and always\n// carry a \"Design concept\" badge, so a concept is never mistaken for a suite the studio has made.\nconst ALL_PRODUCTS=(Array.isArray(DATA.products)?DATA.products:[]).filter(p=>p&&!p.hidden&&(imgOf(p,\"closed\")||imgOf(p,\"open\"))).map((p,i)=>({...p,_i:i})).sort((a,b)=>(groupIndex.has(a.group)?groupIndex.get(a.group):99)-(groupIndex.has(b.group)?groupIndex.get(b.group):99)||a._i-b._i);const PRODUCTS=ALL_PRODUCTS.filter(p=>!p.concept);const colourLabel=new Map(COLOURS.map(c=>[c.key,c.label]));const familySwatch=new Map(COLOURS.map(c=>[c.key,c.swatch]));const isCut=(p,view)=>p.cutout===true||p.cutout&&typeof p.cutout===\"object\"&&p.cutout[view]===true;const hasClosed=p=>!!imgOf(p,\"closed\");const hasOpen=p=>!!imgOf(p,\"open\");const hasBoth=p=>hasClosed(p)&&hasOpen(p);// presetIds (\"18, 28, 27\"): those products, in that order. Unknown ids and hidden products are\n// dropped (ALL_PRODUCTS already excludes hidden), \"9\" and \"09\" both match id \"09\". Concepts (\"c1\")\n// are found here only.\nconst stripZeros=v=>String(v).trim().replace(/^0+(?=\\d)/,\"\");function parsePreset(raw){if(typeof raw!==\"string\"||!raw.trim())return[];const out=[];const seen=new Set;raw.split(/[\\s,;]+/).forEach(tok=>{const t=stripZeros(tok);if(!t)return;const p=ALL_PRODUCTS.find(x=>String(x.id)===tok.trim()||stripZeros(x.id)===t);if(p&&!seen.has(p.id)){seen.add(p.id);out.push(p);}});return out;}const matchGroup=(p,g)=>g===\"all\"||p.group===g;const matchColour=(p,c)=>!c||p.colourFamily===c;const matchTag=(p,t)=>!t||Array.isArray(p.tags)&&p.tags.includes(t);const matches=(p,f)=>matchGroup(p,f.group)&&matchColour(p,f.colour)&&matchTag(p,f.tag);const finishesOf=p=>typeof p.finishLine===\"string\"?p.finishLine.split(\",\").map(s=>s.trim()).filter(Boolean):[];// Colour dot: the product's own colour name first (two-tone names make a split dot), the\n// colour family's swatch as the fallback. Warm, print-like values; nothing cool or grey.\nconst DOT={teal:\"#1F5A57\",navy:\"#1F2A44\",midnight:\"#1F2A44\",black:\"#2B2B2B\",charcoal:\"#44403C\",\"sky blue\":\"#9DB7C4\",sky:\"#9DB7C4\",ivory:\"#F3ECDD\",white:\"#FBF9F4\",cream:\"#F4EFE2\",purple:\"#8E7AA8\",lilac:\"#C3B1D8\",burgundy:\"#7B2D35\",sage:\"#A6B79E\",blush:\"#E8C9C0\",gold:\"#B8935A\",emerald:\"#2E5A4B\",silver:\"#C9C5BE\",\"rose gold\":\"#C89A8A\",green:\"#2E5A4B\",\"rani pink\":\"#A8285F\",indigo:\"#2A3266\",marigold:\"#E0A23A\",red:\"#A3202A\",mustard:\"#D2A12B\",magenta:\"#B0306E\",\"deep teal\":\"#1F5A57\",ochre:\"#B5651D\",sand:\"#C9B59A\",limestone:\"#D9CDB8\",\"warm white\":\"#F6F1E8\",copper:\"#B87333\",chocolate:\"#4B3621\",stone:\"#C8BCA8\",terracotta:\"#C2683F\",\"dusty blue\":\"#7E97B0\"};function dotColours(p){const parts=typeof p.colour===\"string\"?p.colour.toLowerCase().split(/\\s+(?:and|&)\\s+|\\s*\\/\\s*/):[];const hex=parts.map(s=>DOT[s.trim()]).filter(Boolean);if(hex.length)return hex.slice(0,2);const fam=familySwatch.get(p.colourFamily);return fam?[fam]:[];}// The italic line: one sentence built only from the data's finishLine and style tags.\n// Phrases add articles, never facts.\nconst FINISH_PHRASE={\"acrylic monogram\":\"an acrylic monogram\",\"rose-gold foil\":\"rose-gold foil\",\"gold foil\":\"gold foil\",\"silver foil\":\"silver foil\",\"white foil\":\"white foil\",\"coloured foil\":\"coloured foil\",seal:\"a seal\",\"patterned liner\":\"a patterned envelope liner\",\"marble liner\":\"a marble envelope liner\",\"illustrated liner\":\"an illustrated envelope liner\",\"floral liner\":\"a floral envelope liner\",\"botanical liner\":\"a botanical envelope liner\",\"watercolour print\":\"a watercolour print\",\"laser-cut\":\"laser cutting\",scroll:\"a scroll\",gold:\"gold detailing\",photo:\"a photo\",letterpress:\"letterpress\",\"blind emboss\":\"blind embossing\",emboss:\"embossing\",\"deckled edge\":\"a deckled edge\",\"silk cord\":\"a silk cord\",\"silk ribbon\":\"a silk ribbon\",\"paper-cut\":\"a paper-cut medallion\",\"seal mark\":\"a seal mark\",\"bronze foil\":\"bronze foil\",\"copper foil\":\"copper foil\",\"rope cord\":\"a rope-twist cord\",\"rope knot\":\"a rope knot\",\"vellum band\":\"a vellum band\",\"belly band\":\"a belly band\",linen:\"linen\",sailcloth:\"a sailcloth texture\"};const STYLE_WORD={classic:\"classic\",floral:\"floral\",cultural:\"cultural\",monogram:\"monogram\"};const joinList=xs=>xs.length<=1?xs.join(\"\"):`${xs.slice(0,-1).join(\", \")} and ${xs[xs.length-1]}`;const capFirst=s=>s?s.charAt(0).toUpperCase()+s.slice(1):s;function specialLine(p){const raw=finishesOf(p).map(f=>f.toLowerCase());const printed=raw.includes(\"print\");const finishes=raw.filter(f=>f!==\"print\").map(f=>FINISH_PHRASE[f]||f);const tags=Array.isArray(p.tags)?p.tags:[];const styles=Object.keys(STYLE_WORD).filter(k=>tags.includes(k)).filter(k=>!(k===\"monogram\"&&finishes.some(f=>f.includes(\"monogram\")))).map(k=>STYLE_WORD[k]);const list=joinList(finishes);if(styles.length){const head=`A ${styles.join(\", \")}${printed?\" printed\":\"\"} design`;return list?`${head} with ${list}.`:`${head}.`;}if(list)return`${capFirst(list)}${printed?\", printed\":\"\"}.`;return printed?\"A printed design.\":\"\";}// The pre-filled enquiry (brief item 7): name, format and finishes from the data. Guests and\n// the wedding date are real fields in the booking pop-up (item 15), so no placeholders here.\nfunction priceMessage(p){const fin=finishesOf(p).map(f=>f.toLowerCase());const inner=[p.format,...fin].filter(Boolean).join(\", \");return`Hi, I'd love a price for the ${p.name}${p.concept?\" design concept\":\"\"}${inner?` (${inner})`:\"\"}.`;}// Chip colours: the active chip takes its group's colour. Pale fills (sage tint, rose, gold)\n// carry dark ink; teal, garnet and dark brown carry cream.\nconst LOOK={all:{fill:\"var(--cg-brown)\",ink:\"var(--cg-cream)\",accent:\"var(--cg-brown)\"},gatefolds:{fill:\"var(--cg-teal)\",ink:\"var(--cg-cream)\",accent:\"var(--cg-teal)\"},pockets:{fill:\"var(--cg-garnet)\",ink:\"var(--cg-cream)\",accent:\"var(--cg-garnet)\"},folded:{fill:\"var(--cg-sage)\",ink:\"var(--cg-ink)\",accent:\"var(--cg-emerald)\"},boxes:{fill:\"var(--cg-gold)\",ink:\"var(--cg-ink)\",accent:\"var(--cg-gold)\"},flat:{fill:\"var(--cg-rose)\",ink:\"var(--cg-ink)\",accent:\"var(--cg-garnet)\"}};const lookFor=key=>LOOK[key]||LOOK.all;const quoteFamily=f=>/[,\"']/.test(f)?f:`\"${f}\"`;function fontVars(f,family,weight,fstyle){const o=f&&typeof f===\"object\"?f:{};const fam=typeof o.fontFamily===\"string\"&&o.fontFamily?o.fontFamily:family;return{family:`${quoteFamily(fam)}, ${quoteFamily(family)}, Georgia, serif`,weight:o.fontWeight||weight,style:o.fontStyle||fstyle};}const plural=n=>n===1?\"1 design\":`${n} designs`;const DEFAULT_BOOK_LABEL=\"Get a price for this design\";const SHORT_BOOK_LABEL=\"Get a price\";// ---------- component ----------\nexport default function CollectionGrid(props){const{displayFont,labelFont,italicFont,bodyFont,style}=props;const bookLabel=props.bookLabel||DEFAULT_BOOK_LABEL;// Nav picks 5 (3 Nov): on the phone layout (component under 600 px) the tile button reads \"Get a price\".\n// An instance with its own label keeps it at every width (the default text counts as no label).\nconst shortLabel=bookLabel===DEFAULT_BOOK_LABEL?SHORT_BOOK_LABEL:null;const onCanvas=RenderTarget.current()===RenderTarget.canvas;// Only the published site (\"preview\") lazy-loads tile images; the canvas, exports and thumbnails load every tile eagerly.\nconst isLive=RenderTarget.current()===RenderTarget.preview;const presetList=useMemo(()=>parsePreset(props.presetIds),[props.presetIds]);const preset=presetList.length>0;const showFilters=preset?props.showFilters!==false:true;const showBar=!preset||showFilters;const products=preset?presetList:onCanvas?PRODUCTS.slice(0,6):PRODUCTS;const[filters,setFilters]=useState({group:\"all\",colour:null,tag:null});const[dd,setDd]=useState(null)// \"colour\" | \"tag\" | null\n;const[sheet,setSheet]=useState(false);const[lightbox,setLightbox]=useState(null)// product id\n;const[forced,setForced]=useState(null)// { id, view: \"open\" | \"closed\" } set by a tap or the toggle\n;const[coarse,setCoarse]=useState(false);const[reduce,setReduce]=useState(false);const[mounted,setMounted]=useState(false);const wrapRef=useRef(null);const listRef=useRef(null);const ghostRef=useRef(null);const barRef=useRef(null);const pending=useRef(null);const cleanupTimer=useRef(0);const filtersRef=useRef(filters);const reduceRef=useRef(false);const coarseRef=useRef(false);const lastTrigger=useRef(null);const skipRestore=useRef(false);filtersRef.current=filters;const applyFilterRef=useRef(null);applyFilterRef.current=applyFilter// always the latest closure for the window listener below\n;useEffect(()=>{setMounted(true);const mqCoarse=window.matchMedia(\"(hover: none) and (pointer: coarse)\");const mqReduce=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const sync=()=>{setCoarse(mqCoarse.matches);coarseRef.current=mqCoarse.matches;setReduce(mqReduce.matches);reduceRef.current=mqReduce.matches;};sync();mqCoarse.addEventListener(\"change\",sync);mqReduce.addEventListener(\"change\",sync);return()=>{mqCoarse.removeEventListener(\"change\",sync);mqReduce.removeEventListener(\"change\",sync);window.clearTimeout(cleanupTimer.current);};},[]);// /collection#gatefolds (and the other group keys): the group renders after the browser's own\n// jump to the hash, so scroll to it once it exists.\nuseEffect(()=>{if(!mounted)return;const key=decodeURIComponent((window.location.hash||\"\").slice(1));if(!key||!GROUPS.some(g=>g.key===key))return;const t=window.setTimeout(()=>{const el=document.getElementById(key);if(el)el.scrollIntoView({behavior:\"auto\",block:\"start\"});},120);return()=>window.clearTimeout(t);},[mounted]);// The Suite explorer (SuiteExplorer.tsx, the /collection hero) sends its three choices as\n// window \"dejaten:filter\" { group, colour, tag } (null for an unset step) before scrolling here.\nuseEffect(()=>{if(!mounted)return;const onFilter=e=>{if(preset&&!showFilters)return;const d=e&&e.detail||{};const g=typeof d.group===\"string\"&&GROUPS.some(x=>x.key===d.group)?d.group:\"all\";const c=typeof d.colour===\"string\"&&COLOURS.some(x=>x.key===d.colour)?d.colour:null;const t=typeof d.tag===\"string\"&&TAGS.some(x=>x.key===d.tag)?d.tag:null;if(applyFilterRef.current)applyFilterRef.current({group:g,colour:c,tag:t});};window.addEventListener(\"dejaten:filter\",onFilter);return()=>window.removeEventListener(\"dejaten:filter\",onFilter);},[mounted,preset,showFilters]);// ----- derived -----\nconst visible=useMemo(()=>products.filter(p=>matches(p,filters)),[products,filters]);const filtered=filters.group!==\"all\"||!!filters.colour||!!filters.tag;const grouped=!preset&&filters.group===\"all\";const sections=useMemo(()=>{if(grouped){return GROUPS.map(g=>({key:g.key,label:g.label,items:visible.filter(p=>p.group===g.key)})).filter(s=>s.items.length);}return[{key:\"filtered\",label:null,items:visible}];},[grouped,visible]);const chipCounts=useMemo(()=>{const base=products.filter(p=>matchColour(p,filters.colour)&&matchTag(p,filters.tag));const m={all:base.length};GROUPS.forEach(g=>m[g.key]=base.filter(p=>p.group===g.key).length);return m;},[products,filters.colour,filters.tag]);const colourCounts=useMemo(()=>{const base=products.filter(p=>matchGroup(p,filters.group)&&matchTag(p,filters.tag));const m={};COLOURS.forEach(c=>m[c.key]=base.filter(p=>p.colourFamily===c.key).length);return m;},[products,filters.group,filters.tag]);const tagCounts=useMemo(()=>{const base=products.filter(p=>matchGroup(p,filters.group)&&matchColour(p,filters.colour));const m={};TAGS.forEach(t=>m[t.key]=base.filter(p=>Array.isArray(p.tags)&&p.tags.includes(t.key)).length);return m;},[products,filters.group,filters.colour]);const extraCount=(filters.colour?1:0)+(filters.tag?1:0);// ----- FLIP: snapshot before the state change, play after layout -----\nfunction applyFilter(next){const nf={...filtersRef.current,...next};if(nf.group===filters.group&&nf.colour===filters.colour&&nf.tag===filters.tag)return;const wrap=wrapRef.current;const list=listRef.current;if(!reduceRef.current&&wrap&&list&&typeof window!==\"undefined\"){const wrect=wrap.getBoundingClientRect();const rects=new Map;const els=Array.from(list.querySelectorAll(\"[data-cg-id]\"));els.forEach(el=>rects.set(el.getAttribute(\"data-cg-id\"),el.getBoundingClientRect()));const nextIds=new Set(products.filter(p=>matches(p,nf)).map(p=>p.id));const layer=ghostRef.current;if(layer){while(layer.firstChild)layer.removeChild(layer.firstChild);els.forEach(el=>{const id=el.getAttribute(\"data-cg-id\");if(nextIds.has(id))return;const r=rects.get(id);const c=el.cloneNode(true);c.removeAttribute(\"data-cg-id\");c.setAttribute(\"aria-hidden\",\"true\");c.classList.add(\"cg-ghost\");c.style.cssText=`position:absolute;left:${r.left-wrect.left}px;top:${r.top-wrect.top}px;width:${r.width}px;height:${r.height}px;margin:0;transform:none;transition:none;`;layer.appendChild(c);});}pending.current={rects,height:wrect.height};}setForced(null);setFilters(nf);}useIsoLayout(()=>{const pend=pending.current;if(!pend)return;pending.current=null;const wrap=wrapRef.current;const list=listRef.current;if(!wrap||!list)return;window.clearTimeout(cleanupTimer.current);const els=Array.from(list.querySelectorAll(\"[data-cg-id]\"));els.forEach(el=>{el.style.transition=\"none\";el.style.transform=\"\";el.style.opacity=\"\";});wrap.style.transition=\"none\";wrap.style.height=\"\";const newHeight=wrap.getBoundingClientRect().height;const moves=[];els.forEach(el=>{const id=el.getAttribute(\"data-cg-id\");const nr=el.getBoundingClientRect();const or=pend.rects.get(id);if(or){const dx=or.left-nr.left;const dy=or.top-nr.top;const sx=nr.width?or.width/nr.width:1;const sy=nr.height?or.height/nr.height:1;if(Math.abs(dx)>.5||Math.abs(dy)>.5||Math.abs(sx-1)>.01||Math.abs(sy-1)>.01){el.style.transformOrigin=\"0 0\";el.style.transform=`translate(${dx}px, ${dy}px) scale(${sx}, ${sy})`;moves.push(el);}}else{el.style.opacity=\"0\";el.style.transform=\"translateY(18px)\";moves.push(el);}});wrap.style.height=`${pend.height}px`;void wrap.offsetHeight;const ghosts=ghostRef.current?Array.from(ghostRef.current.children):[];window.requestAnimationFrame(()=>{moves.forEach(el=>{el.style.transition=`transform ${DUR}ms ${EASE}, opacity ${DUR-60}ms ease`;el.style.transform=\"\";el.style.opacity=\"\";});wrap.style.transition=`height ${DUR}ms ${EASE}`;wrap.style.height=`${newHeight}px`;ghosts.forEach(g=>{g.style.transition=`opacity ${DUR-110}ms ease, transform ${DUR}ms ${EASE}`;g.style.opacity=\"0\";g.style.transform=\"scale(0.97)\";});});cleanupTimer.current=window.setTimeout(()=>{els.forEach(el=>{el.style.transition=\"\";el.style.transform=\"\";el.style.opacity=\"\";el.style.transformOrigin=\"\";});wrap.style.transition=\"\";wrap.style.height=\"\";ghosts.forEach(g=>g.parentNode&&g.parentNode.removeChild(g));},DUR+80);},[filters]);// ----- dropdowns: close on outside click or Esc -----\nuseEffect(()=>{if(!dd)return;const onDown=e=>{if(barRef.current&&!barRef.current.contains(e.target))setDd(null);};const onKey=e=>{if(e.key===\"Escape\"){setDd(null);const btn=barRef.current&&barRef.current.querySelector(`[data-cg-dd=\"${dd}\"]`);if(btn)btn.focus();}};document.addEventListener(\"pointerdown\",onDown,true);document.addEventListener(\"keydown\",onKey);return()=>{document.removeEventListener(\"pointerdown\",onDown,true);document.removeEventListener(\"keydown\",onKey);};},[dd]);// ----- a tap or click outside the forced card lets it fall back to its default view -----\nuseEffect(()=>{if(!forced)return;const onDown=e=>{const el=listRef.current&&listRef.current.querySelector(`[data-cg-id=\"${forced.id}\"]`);if(el&&!el.contains(e.target))setForced(null);};document.addEventListener(\"pointerdown\",onDown,true);return()=>document.removeEventListener(\"pointerdown\",onDown,true);},[forced]);// ----- lightbox -----\nconst lbIndex=lightbox?visible.findIndex(p=>p.id===lightbox):-1;const lbProduct=lbIndex>=0?visible[lbIndex]:null;function openLightbox(id,triggerEl){lastTrigger.current=triggerEl||(typeof document!==\"undefined\"?document.activeElement:null);skipRestore.current=false;setLightbox(id);}function closeLightbox(restore=true){skipRestore.current=!restore;setLightbox(null);}// Titles in a row share one slot as tall as the tallest, so the line, pills and button below them stay\n// level across the row at every width (nav picks 0c, 3 Nov: a three-line title on floral at 390 sat its\n// pair 23 px out of line). Rows are found by the cards' offsetTop, which the FLIP transforms leave alone.\nuseEffect(()=>{const list=listRef.current;if(!list||typeof window===\"undefined\"||typeof ResizeObserver===\"undefined\")return;let raf=0;const run=()=>{raf=0;list.querySelectorAll(\".cg-grid\").forEach(grid=>{const names=Array.from(grid.querySelectorAll(\".cg-card .cg-name\"));names.forEach(n=>{n.style.minHeight=\"\";});const rows=new Map;names.forEach(n=>{const top=Math.round(n.closest(\".cg-card\").offsetTop);if(!rows.has(top))rows.set(top,[]);rows.get(top).push(n);});rows.forEach(row=>{if(row.length<2)return;const h=Math.max(...row.map(n=>n.getBoundingClientRect().height));row.forEach(n=>{n.style.minHeight=`${Math.ceil(h)}px`;});});});};const schedule=()=>{if(!raf)raf=requestAnimationFrame(run);};const ro=new ResizeObserver(schedule);ro.observe(list);schedule();if(document.fonts&&document.fonts.ready)document.fonts.ready.then(schedule);return()=>{ro.disconnect();if(raf)cancelAnimationFrame(raf);};},[sections]);useEffect(()=>{if(!lightbox)return;const html=document.documentElement;const prevOverflow=html.style.overflow;html.style.overflow=\"hidden\";return()=>{html.style.overflow=prevOverflow;const t=lastTrigger.current;if(!skipRestore.current&&t&&typeof t.focus===\"function\")t.focus();};},[lightbox]);// ----- \"Get a price for this design\": the booking pop-up, pre-filled -----\n// The pop-up's words follow the section (\"design\", or \"concept\" for a design concept) and its\n// Source field names the page the grid sits on (Booking.tsx, COPY and PAGES).\nfunction getPrice(p,opener){const w=window;const section=p.concept?\"concept\":\"design\";if(w.__dejatenBookingReady===true){w.dispatchEvent(new CustomEvent(\"dejaten:book\",{detail:{source:\"collection\",section,message:priceMessage(p),productId:p.id,productName:p.name,opener:opener||null}}));}else{const rsvp=document.getElementById(\"rsvp\");if(rsvp)rsvp.scrollIntoView({behavior:reduceRef.current?\"auto\":\"smooth\"});else{// No booking pop-up on this page (/collection, the market pages): open it on Home, pre-filled.\nconst q=new URLSearchParams({book:\"collection\",from:section,at:window.location.pathname,product:String(p.id),pname:p.name||\"\",msg:priceMessage(p)});window.location.href=\"/?\"+q.toString();}}}function bookFromLightbox(p){const opener=lastTrigger.current;closeLightbox(false);getPrice(p,opener);}// ----- card click: touch screens show the open view first, then the lightbox -----\nfunction onHit(p,e){const el=e.currentTarget;const showingOpen=!!forced&&forced.id===p.id&&forced.view===\"open\";if(coarseRef.current&&hasBoth(p)&&!showingOpen){setForced({id:p.id,view:\"open\"});return;}openLightbox(p.id,el);}// ----- Closed / Open toggle: flips whatever the card shows right now -----\nfunction onToggle(p,e){e.stopPropagation();const card=e.currentTarget.closest(\".cg-card\");const hovering=!coarseRef.current&&!!card&&typeof card.matches===\"function\"&&card.matches(\":hover\");const cur=forced&&forced.id===p.id?forced.view:null;const showingOpen=cur===\"open\"||cur!==\"closed\"&&hovering;setForced({id:p.id,view:showingOpen?\"closed\":\"open\"});}function clearAll(){applyFilter({group:\"all\",colour:null,tag:null});}// ----- fonts -----\nconst dF=fontVars(displayFont,\"Italiana\",400,\"normal\");const lF=fontVars(labelFont,\"Cormorant Garamond\",600,\"normal\");const iF=fontVars(italicFont,\"Cormorant Garamond\",400,\"italic\");const bF=fontVars(bodyFont,\"Cormorant Garamond\",400,\"normal\");const rootStyle={...style,width:\"100%\",height:\"auto\",\"--cg-display\":dF.family,\"--cg-display-w\":dF.weight,\"--cg-label\":lF.family,\"--cg-label-w\":lF.weight,\"--cg-italic\":iF.family,\"--cg-italic-w\":iF.weight,\"--cg-italic-s\":iF.style,\"--cg-body\":bF.family,\"--cg-body-w\":bF.weight};const chips=[{key:\"all\",label:\"All\"},...GROUPS];// ---------- render ----------\nreturn /*#__PURE__*/_jsxs(\"div\",{className:\"cg-root\"+(reduce?\" no-motion\":\"\")+(showBar?\"\":\" cg-nobar\")+(preset?\" cg-preset\":\"\"),style:rootStyle,\"data-coarse\":coarse?\"1\":\"0\",children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),showBar&&/*#__PURE__*/_jsxs(\"div\",{className:\"cg-bar\",ref:barRef,children:[/*#__PURE__*/_jsx(\"div\",{className:\"cg-chips\",role:\"group\",\"aria-label\":\"Format\",children:chips.map(c=>{const look=lookFor(c.key);const active=filters.group===c.key;const n=chipCounts[c.key]||0;return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"cg-chip\"+(active?\" is-active\":\"\")+(n===0&&!active?\" is-empty\":\"\"),\"aria-pressed\":active,style:{\"--chip-fill\":look.fill,\"--chip-ink\":look.ink},onClick:()=>applyFilter({group:c.key}),children:[/*#__PURE__*/_jsx(\"span\",{className:\"cg-dot\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-chiplabel\",children:c.label}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-count\",children:n})]},c.key);})}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-dds\",children:[/*#__PURE__*/_jsxs(Dropdown,{id:\"colour\",open:dd===\"colour\",setOpen:o=>setDd(o?\"colour\":null),label:\"Colour\",value:filters.colour,valueLabel:filters.colour?colourLabel.get(filters.colour):null,swatch:filters.colour?COLOURS.find(c=>c.key===filters.colour):null,children:[/*#__PURE__*/_jsx(Option,{selected:!filters.colour,onPick:()=>{setDd(null);applyFilter({colour:null});},label:\"Any colour\"}),COLOURS.map(c=>/*#__PURE__*/_jsx(Option,{selected:filters.colour===c.key,disabled:!colourCounts[c.key],onPick:()=>{setDd(null);applyFilter({colour:c.key});},label:c.label,count:colourCounts[c.key]||0,swatch:c.swatch},c.key))]}),/*#__PURE__*/_jsxs(Dropdown,{id:\"tag\",open:dd===\"tag\",setOpen:o=>setDd(o?\"tag\":null),label:\"Finish and style\",value:filters.tag,valueLabel:filters.tag?(TAGS.find(t=>t.key===filters.tag)||{}).label:null,children:[/*#__PURE__*/_jsx(Option,{selected:!filters.tag,onPick:()=>{setDd(null);applyFilter({tag:null});},label:\"Any finish or style\"}),/*#__PURE__*/_jsx(\"div\",{className:\"cg-optgroup\",role:\"presentation\",children:\"Finish\"}),FINISHES.map(t=>/*#__PURE__*/_jsx(Option,{selected:filters.tag===t.key,disabled:!tagCounts[t.key],onPick:()=>{setDd(null);applyFilter({tag:t.key});},label:t.label,count:tagCounts[t.key]||0},t.key)),/*#__PURE__*/_jsx(\"div\",{className:\"cg-optgroup\",role:\"presentation\",children:\"Style\"}),STYLES.map(t=>/*#__PURE__*/_jsx(Option,{selected:filters.tag===t.key,disabled:!tagCounts[t.key],onPick:()=>{setDd(null);applyFilter({tag:t.key});},label:t.label,count:tagCounts[t.key]||0},t.key))]})]}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"cg-filterbtn\"+(extraCount?\" is-active\":\"\"),onClick:()=>setSheet(true),\"aria-haspopup\":\"dialog\",\"aria-expanded\":sheet,children:[/*#__PURE__*/_jsx(SlidersIcon,{}),/*#__PURE__*/_jsxs(\"span\",{children:[\"Filter\",extraCount?` \\xb7 ${extraCount}`:\"\"]})]})]}),!preset&&/*#__PURE__*/_jsxs(\"div\",{className:\"cg-results\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"cg-resultcount\",\"aria-live\":\"polite\",children:plural(visible.length)}),filtered&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-clear\",onClick:clearAll,children:\"Clear\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-gridwrap\",ref:wrapRef,children:[/*#__PURE__*/_jsx(\"div\",{className:\"cg-ghosts\",ref:ghostRef,\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"div\",{className:\"cg-sections\",ref:listRef,children:sections.map(s=>/*#__PURE__*/_jsxs(\"section\",{className:\"cg-group\",id:s.label?s.key:undefined,\"aria-label\":s.label||\"Designs\",children:[s.label&&/*#__PURE__*/_jsxs(\"div\",{className:\"cg-grouphead\",style:{\"--group-accent\":lookFor(s.key).accent},children:[/*#__PURE__*/_jsx(\"h3\",{className:\"cg-grouptitle\",children:s.label}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-groupcount\",children:s.items.length}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-grouprule\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"cg-grid\",children:s.items.map(p=>/*#__PURE__*/_jsx(Card,{p:p,eager:!isLive,forced:forced&&forced.id===p.id?forced.view:null,priceLabel:bookLabel,shortLabel:shortLabel,onHit:e=>onHit(p,e),onToggle:e=>onToggle(p,e),onPrice:e=>{e.stopPropagation();getPrice(p,e.currentTarget);}},p.id))})]},s.key))})]}),mounted&&!onCanvas&&lbProduct&&/*#__PURE__*/createPortal(/*#__PURE__*/_jsx(Lightbox,{p:lbProduct,index:lbIndex,total:visible.length,reduce:reduce,bookLabel:bookLabel,rootStyle:rootStyle,onPrev:lbIndex>0?()=>setLightbox(visible[lbIndex-1].id):null,onNext:lbIndex<visible.length-1?()=>setLightbox(visible[lbIndex+1].id):null,onClose:()=>closeLightbox(true),onBook:()=>bookFromLightbox(lbProduct)}),document.body),mounted&&!onCanvas&&sheet&&/*#__PURE__*/createPortal(/*#__PURE__*/_jsx(Sheet,{rootStyle:rootStyle,filters:filters,colourCounts:colourCounts,tagCounts:tagCounts,count:visible.length,onPick:next=>applyFilter(next),onClear:()=>applyFilter({colour:null,tag:null}),onClose:()=>setSheet(false)}),document.body)]});}// ---------- pieces ----------\nfunction Card({p,forced,priceLabel,shortLabel,onHit,onToggle,onPrice,eager}){const closed=imgOf(p,\"closed\");const open=imgOf(p,\"open\");const both=!!(closed&&open);const cls=\"cg-card\"+(both?\" has-both\":\" single\")+(forced===\"open\"?\" is-open\":forced===\"closed\"?\" is-closed\":\"\");const views=both?\"closed and open\":open?\"open\":\"closed\";const line=specialLine(p);return /*#__PURE__*/_jsxs(\"article\",{className:cls,\"data-cg-id\":p.id,children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-hit\",\"aria-label\":`${p.name}${p.concept?\", a design concept\":\"\"}. View ${views} in detail`,\"aria-haspopup\":\"dialog\",onClick:onHit}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-frame\",children:[p.concept&&/*#__PURE__*/_jsx(\"span\",{className:\"cg-concept\",children:\"Design concept\"}),/*#__PURE__*/_jsx(\"div\",{className:\"cg-plate\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"cg-views\",\"aria-hidden\":\"true\",children:[closed&&/*#__PURE__*/_jsx(View,{src:closed,cut:isCut(p,\"closed\"),which:\"closed\",eager:eager,alt:viewAlt(p,\"closed\")}),open&&/*#__PURE__*/_jsx(View,{src:open,cut:isCut(p,\"open\"),which:\"open\",eager:eager,alt:viewAlt(p,\"open\")})]})}),both&&/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"cg-toggle\",\"aria-label\":\"Open view\",\"aria-pressed\":forced===\"open\",onClick:onToggle,children:[/*#__PURE__*/_jsx(\"span\",{className:\"cg-seg cg-seg-closed\",children:\"Closed\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-seg cg-seg-open\",children:\"Open\"})]}),!both&&/*#__PURE__*/_jsx(\"span\",{className:\"cg-toggle-slot\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-meta\",children:[/*#__PURE__*/_jsx(Kicker,{p:p}),/*#__PURE__*/_jsx(\"h4\",{className:\"cg-name\",children:p.name}),line&&/*#__PURE__*/_jsx(\"p\",{className:\"cg-line\",children:line}),/*#__PURE__*/_jsx(Pills,{p:p}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-price\",onClick:onPrice,\"aria-haspopup\":\"dialog\",\"aria-label\":shortLabel?`${SHORT_BOOK_LABEL} for ${p.name}`:undefined,children:shortLabel?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{className:\"cg-pl-long\",children:priceLabel}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-pl-short\",children:shortLabel})]}):priceLabel})]})]});}// The collection sits well below the hero on every screen, so every card image loads lazily on the\n// published site. Every other render target (canvas, export, thumbnail) loads eagerly, so canvas\n// screenshots and exports show every tile (31 Oct 2026).\n// Alt text falls back to the design name plus the view, so no tile image is ever unnamed (r5, 1 Nov 2026).\nconst viewAlt=(p,which)=>`${p.name}${p.concept?\" (design concept)\":\"\"}, ${which}`;function View({src,cut,which,eager,alt}){return /*#__PURE__*/_jsx(\"div\",{className:`cg-view cg-v-${which}`+(cut?\" is-cut\":\" is-photo\"),children:/*#__PURE__*/_jsx(\"img\",{src:src,alt:alt||\"\",loading:eager?\"eager\":\"lazy\",decoding:\"async\",draggable:\"false\"})});}function Kicker({p}){const dots=dotColours(p);const dotStyle=dots.length===2?{background:`linear-gradient(135deg, ${dots[0]} 0 50%, ${dots[1]} 50% 100%)`}:dots.length===1?{background:dots[0]}:null;const parts=[];if(p.format)parts.push(/*#__PURE__*/_jsx(\"span\",{children:p.format},\"f\"));if(p.colour){if(parts.length)parts.push(/*#__PURE__*/_jsx(\"span\",{className:\"cg-kdiv\",\"aria-hidden\":\"true\",children:\"\\xb7\"},\"d\"));parts.push(/*#__PURE__*/_jsxs(\"span\",{className:\"cg-kcol\",children:[dotStyle&&/*#__PURE__*/_jsx(\"span\",{className:\"cg-cdot\",style:dotStyle,\"aria-hidden\":\"true\"}),p.colour]},\"c\"));}if(!parts.length)return null;return /*#__PURE__*/_jsx(\"p\",{className:\"cg-kicker\",children:parts});}function Pills({p,large}){const finishes=finishesOf(p);if(!finishes.length)return null;return /*#__PURE__*/_jsx(\"div\",{className:\"cg-pills\"+(large?\" is-large\":\"\"),children:finishes.map(f=>/*#__PURE__*/_jsx(\"span\",{className:\"cg-pill\",children:f},f))});}function Dropdown({id,open,setOpen,label,value,valueLabel,swatch,children}){const panelRef=useRef(null);useEffect(()=>{if(!open||!panelRef.current)return;const sel=panelRef.current.querySelector('[aria-selected=\"true\"]')||panelRef.current.querySelector(\"[role=option]\");if(sel)sel.focus();},[open]);function onKeyDown(e){if(!panelRef.current)return;const opts=Array.from(panelRef.current.querySelectorAll(\"[role=option]:not([aria-disabled=true])\"));const i=opts.indexOf(document.activeElement);if(e.key===\"ArrowDown\"){e.preventDefault();(opts[i+1]||opts[0]).focus();}if(e.key===\"ArrowUp\"){e.preventDefault();(opts[i-1]||opts[opts.length-1]).focus();}if(e.key===\"Tab\")setOpen(false);}return /*#__PURE__*/_jsxs(\"div\",{className:\"cg-dd\"+(open?\" is-open\":\"\")+(value?\" has-value\":\"\"),children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"cg-ddbtn\",\"data-cg-dd\":id,\"aria-haspopup\":\"listbox\",\"aria-expanded\":open,onClick:()=>setOpen(!open),children:[swatch&&/*#__PURE__*/_jsx(\"span\",{className:\"cg-swatch\",style:{background:swatch.swatch},\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-ddlabel\",children:valueLabel||label}),/*#__PURE__*/_jsx(Chevron,{})]}),open&&/*#__PURE__*/_jsx(\"div\",{className:\"cg-panel\",role:\"listbox\",\"aria-label\":label,ref:panelRef,onKeyDown:onKeyDown,children:children})]});}function Option({selected,disabled,onPick,label,count,swatch}){return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"option\",\"aria-selected\":selected,\"aria-disabled\":disabled?true:undefined,className:\"cg-opt\"+(selected?\" is-selected\":\"\")+(disabled?\" is-disabled\":\"\"),onClick:()=>{if(!disabled)onPick();},tabIndex:-1,children:[swatch&&/*#__PURE__*/_jsx(\"span\",{className:\"cg-swatch\",style:{background:swatch},\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-optlabel\",children:label}),typeof count===\"number\"&&/*#__PURE__*/_jsx(\"span\",{className:\"cg-optcount\",children:count}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-tick\",\"aria-hidden\":\"true\"})]});}function useTrap(ref,onClose,active){useEffect(()=>{if(!active||!ref.current)return;const root=ref.current;const focusables=()=>Array.from(root.querySelectorAll('button:not([disabled]), [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')).filter(el=>el.offsetParent!==null||el===document.activeElement);const first=root.querySelector(\"[data-autofocus]\")||focusables()[0];if(first)first.focus();const onKey=e=>{if(e.key===\"Escape\"){e.stopPropagation();onClose();return;}if(e.key!==\"Tab\")return;const f=focusables();if(!f.length)return;const a=f[0],z=f[f.length-1];if(e.shiftKey&&document.activeElement===a){e.preventDefault();z.focus();}else if(!e.shiftKey&&document.activeElement===z){e.preventDefault();a.focus();}};document.addEventListener(\"keydown\",onKey);return()=>document.removeEventListener(\"keydown\",onKey);},[active]);}function Lightbox({p,index,total,reduce,bookLabel,rootStyle,onPrev,onNext,onClose,onBook}){const ref=useRef(null);useTrap(ref,onClose,true);useEffect(()=>{const onKey=e=>{if(e.key===\"ArrowRight\"&&onNext)onNext();if(e.key===\"ArrowLeft\"&&onPrev)onPrev();};document.addEventListener(\"keydown\",onKey);return()=>document.removeEventListener(\"keydown\",onKey);},[onPrev,onNext]);const views=[imgOf(p,\"closed\")?{key:\"closed\",src:imgOf(p,\"closed\"),cap:\"Closed\"}:null,imgOf(p,\"open\")?{key:\"open\",src:imgOf(p,\"open\"),cap:\"Open\"}:null].filter(Boolean);const line=specialLine(p);return /*#__PURE__*/_jsxs(\"div\",{className:\"cg-root cg-lb\"+(reduce?\" no-motion\":\"\"),style:rootStyle,role:\"dialog\",\"aria-modal\":\"true\",\"aria-labelledby\":\"cg-lb-title\",children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsx(\"div\",{className:\"cg-lb-backdrop\",onClick:onClose}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-lb-panel\",ref:ref,children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-lb-close\",onClick:onClose,\"aria-label\":\"Close\",\"data-autofocus\":true,children:/*#__PURE__*/_jsx(CloseIcon,{})}),/*#__PURE__*/_jsx(\"div\",{className:\"cg-lb-views\"+(views.length>1?\" two\":\" one\"),children:views.map(v=>/*#__PURE__*/_jsxs(\"figure\",{className:\"cg-lb-view\"+(isCut(p,v.key)?\" is-cut\":\" is-photo\"),children:[/*#__PURE__*/_jsx(\"div\",{className:\"cg-lb-img\",children:/*#__PURE__*/_jsx(\"img\",{src:v.src,alt:`${p.name}${p.concept?\" (design concept)\":\"\"}, ${v.cap.toLowerCase()}`,decoding:\"async\"})}),views.length>1&&/*#__PURE__*/_jsx(\"figcaption\",{children:v.cap})]},v.key))}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-lb-info\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"cg-lb-text\",children:[p.concept&&/*#__PURE__*/_jsx(\"span\",{className:\"cg-concept cg-concept-lb\",children:\"Design concept\"}),/*#__PURE__*/_jsx(Kicker,{p:p}),/*#__PURE__*/_jsx(\"h3\",{className:\"cg-lb-title\",id:\"cg-lb-title\",children:p.name}),line&&/*#__PURE__*/_jsx(\"p\",{className:\"cg-line\",children:line}),/*#__PURE__*/_jsx(Pills,{p:p,large:true})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-primary\",onClick:onBook,\"aria-haspopup\":\"dialog\",children:bookLabel})]}),total>1&&/*#__PURE__*/_jsxs(\"div\",{className:\"cg-lb-nav\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-lb-arrow\",onClick:onPrev||undefined,disabled:!onPrev,\"aria-label\":\"Previous design\",children:/*#__PURE__*/_jsx(ArrowIcon,{dir:\"left\"})}),/*#__PURE__*/_jsxs(\"span\",{className:\"cg-lb-counter\",children:[index+1,\" of \",total]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-lb-arrow\",onClick:onNext||undefined,disabled:!onNext,\"aria-label\":\"Next design\",children:/*#__PURE__*/_jsx(ArrowIcon,{dir:\"right\"})})]})]})]});}function Sheet({rootStyle,filters,colourCounts,tagCounts,count,onPick,onClear,onClose}){const ref=useRef(null);useTrap(ref,onClose,true);useEffect(()=>{const html=document.documentElement;const prev=html.style.overflow;html.style.overflow=\"hidden\";return()=>{html.style.overflow=prev;};},[]);return /*#__PURE__*/_jsxs(\"div\",{className:\"cg-root cg-sheetroot\",style:rootStyle,role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Filter\",children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsx(\"div\",{className:\"cg-lb-backdrop\",onClick:onClose}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-sheet\",ref:ref,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"cg-sheet-head\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"cg-sheet-title\",children:\"Filter\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-lb-close static\",onClick:onClose,\"aria-label\":\"Close\",\"data-autofocus\":true,children:/*#__PURE__*/_jsx(CloseIcon,{})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-sheet-body\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"cg-sheet-label\",children:\"Colour\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-swatches\",role:\"group\",\"aria-label\":\"Colour\",children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"cg-swbtn\"+(!filters.colour?\" is-active\":\"\"),\"aria-pressed\":!filters.colour,onClick:()=>onPick({colour:null}),children:[/*#__PURE__*/_jsx(\"span\",{className:\"cg-swatch big any\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-swlabel\",children:\"Any\"})]}),COLOURS.map(c=>/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"cg-swbtn\"+(filters.colour===c.key?\" is-active\":\"\")+(!colourCounts[c.key]?\" is-disabled\":\"\"),\"aria-pressed\":filters.colour===c.key,onClick:()=>colourCounts[c.key]&&onPick({colour:c.key}),children:[/*#__PURE__*/_jsx(\"span\",{className:\"cg-swatch big\",style:{background:c.swatch},\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cg-swlabel\",children:c.label})]},c.key))]}),/*#__PURE__*/_jsx(\"p\",{className:\"cg-sheet-label\",children:\"Finish and style\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-sheetpills\",role:\"group\",\"aria-label\":\"Finish and style\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-fpill\"+(!filters.tag?\" is-active\":\"\"),\"aria-pressed\":!filters.tag,onClick:()=>onPick({tag:null}),children:\"Any\"}),TAGS.map(t=>/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"cg-fpill\"+(filters.tag===t.key?\" is-active\":\"\")+(!tagCounts[t.key]?\" is-disabled\":\"\"),\"aria-pressed\":filters.tag===t.key,onClick:()=>tagCounts[t.key]&&onPick({tag:t.key}),children:[t.label,/*#__PURE__*/_jsx(\"span\",{className:\"cg-fpillcount\",children:tagCounts[t.key]||0})]},t.key))]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"cg-sheet-foot\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"cg-clear\",onClick:onClear,children:\"Clear\"}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"cg-primary\",onClick:onClose,children:[\"Show \",plural(count)]})]})]})]});}const Chevron=()=>/*#__PURE__*/_jsx(\"svg\",{className:\"cg-chev\",width:\"10\",height:\"10\",viewBox:\"0 0 10 10\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M1.5 3.5 5 7l3.5-3.5\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.3\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});const CloseIcon=()=>/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M3 3l10 10M13 3 3 13\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.4\",strokeLinecap:\"round\"})});const ArrowIcon=({dir})=>/*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 18 18\",\"aria-hidden\":\"true\",style:{transform:dir===\"left\"?\"scaleX(-1)\":\"none\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M3 9h11M9.5 4.5 14 9l-4.5 4.5\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.4\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});const SlidersIcon=()=>/*#__PURE__*/_jsxs(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M1 3.5h12M1 10.5h12\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.3\",strokeLinecap:\"round\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"3.5\",r:\"1.8\",fill:\"var(--cg-cream)\",stroke:\"currentColor\",strokeWidth:\"1.3\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"5\",cy:\"10.5\",r:\"1.8\",fill:\"var(--cg-cream)\",stroke:\"currentColor\",strokeWidth:\"1.3\"})]});// ---------- styles ----------\nconst CSS=`\n.cg-root{\n  --cg-ink:var(--token-9345780e-b8bb-46f5-bba2-206deafb81b2,#2B1E19);\n  --cg-ink85:var(--token-d822923a-5dae-4934-8407-ed179afd24d5,rgba(43,30,25,.88));\n  --cg-brown:var(--token-733ece43-6867-4110-8518-87c14c8aabd8,#3E2A23);\n  --cg-choc:var(--token-0e625c0b-13e7-4b80-a612-56cd067f13ae,#845A4A);\n  --cg-cocoa:#4B3621;\n  --cg-cream:var(--token-bef1bbc0-2f3c-47d1-9546-d6a16ae26dc2,#F4EFE2);\n  --cg-card:var(--token-002f4b84-3293-42f6-812a-a252d1a6963d,#FAF7F0);\n  --cg-rule:var(--token-5d048700-46f7-4697-9280-a6ec9c93dc59,rgba(43,30,25,.1));\n  --cg-teal:var(--token-461146f6-2952-421e-a704-dc0e30531f35,#2D6E7E);\n  --cg-garnet:var(--token-7eb2fc11-655d-4b6b-87aa-52cf871afb82,#7B2D35);\n  --cg-sage:var(--token-ec6799c0-9aee-4b15-a242-fb564be9033e,#E1E8DC);\n  --cg-gold:var(--token-16d087b6-8876-45d3-855a-a4b09bc5d15d,#B8935A);\n  --cg-rose:var(--token-5e058590-a363-4659-b1bf-57d13d58cc05,#E8C9C0);\n  --cg-emerald:var(--token-b793c104-7fb3-42c3-ac07-b7bd1c67b98a,#2E5A4B);\n  --cg-line:rgba(43,30,25,.26);\n  --cg-hair:rgba(62,42,35,.12);\n  --cg-ease:cubic-bezier(.22,.61,.36,1);\n  --cg-inset:6%;\n  color:var(--cg-ink);font-family:var(--cg-body);font-weight:var(--cg-body-w);\n  -webkit-font-smoothing:antialiased;box-sizing:border-box;position:relative;container-type:inline-size;\n}\n:where(.cg-root) *,:where(.cg-root) *::before,:where(.cg-root) *::after{box-sizing:border-box}\n:where(.cg-root) button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}\n:where(.cg-root) button:focus{outline:none}\n.cg-root button:focus-visible{outline:2px solid var(--cg-teal);outline-offset:3px}\n:where(.cg-root) :is(h3,h4,p,figure){margin:0}\n:where(.cg-root) img{display:block;user-select:none;-webkit-user-drag:none}\n.cg-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n\n/* ---- filter bar ---- */\n.cg-bar{display:flex;align-items:flex-start;gap:12px 16px;flex-wrap:wrap}\n.cg-chips{display:flex;flex-wrap:wrap;gap:8px 6px;flex:1 1 auto;min-width:0}\n.cg-chip,.cg-ddbtn,.cg-filterbtn{\n  position:relative;display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px 0 11px;border-radius:999px;\n  border:1px solid var(--cg-line);background:transparent;color:var(--cg-ink);\n  font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:12px;letter-spacing:.1em;text-transform:uppercase;line-height:1;white-space:nowrap;\n  transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s var(--cg-ease);\n}\n/* tap areas: every control takes at least 44px, through an invisible hit area where the drawn size is smaller */\n.cg-chip::after,.cg-ddbtn::after,.cg-filterbtn::after{content:\"\";position:absolute;left:-1px;right:-1px;top:50%;height:max(100%,44px);transform:translateY(-50%)}\n.cg-chip:hover,.cg-ddbtn:hover,.cg-filterbtn:hover{border-color:var(--cg-ink)}\n.cg-chip.is-active{background:var(--chip-fill);border-color:var(--chip-fill);color:var(--chip-ink)}\n.cg-chip.is-empty{opacity:.45}\n.cg-dot{width:8px;height:8px;border-radius:50%;background:var(--chip-fill);box-shadow:inset 0 0 0 1px rgba(43,30,25,.18);flex:none}\n.cg-chip.is-active .cg-dot{background:var(--chip-ink);box-shadow:none;opacity:.9}\n.cg-count{font-family:var(--cg-body);font-weight:500;font-size:12.5px;letter-spacing:0;opacity:.72;margin-left:-2px;font-variant-numeric:tabular-nums}\n.cg-chip.is-active .cg-count{opacity:.85}\n.cg-dds{display:flex;gap:6px;margin-left:auto;flex:none}\n.cg-dd{position:relative}\n.cg-dd.has-value .cg-ddbtn{border-color:var(--cg-ink)}\n.cg-chev{transition:transform .25s var(--cg-ease);opacity:.75}\n.cg-dd.is-open .cg-chev{transform:rotate(180deg)}\n.cg-swatch{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(43,30,25,.18);flex:none}\n.cg-swatch.big{width:34px;height:34px}\n.cg-swatch.any{background:linear-gradient(135deg,var(--cg-cream) 46%,rgba(43,30,25,.35) 46%,rgba(43,30,25,.35) 54%,var(--cg-cream) 54%);box-shadow:inset 0 0 0 1px rgba(43,30,25,.3)}\n.cg-filterbtn{display:none}\n.cg-filterbtn.is-active{background:var(--cg-brown);border-color:var(--cg-brown);color:var(--cg-cream)}\n\n.cg-panel{\n  position:absolute;top:calc(100% + 8px);right:0;z-index:30;min-width:250px;max-height:min(62vh,440px);overflow:auto;padding:8px;\n  background:var(--cg-card);border:1px solid var(--cg-rule);border-radius:16px;\n  box-shadow:0 24px 48px -16px rgba(43,30,25,.28),0 2px 8px rgba(43,30,25,.06);\n  animation:cg-pop .22s var(--cg-ease) both;\n}\n@keyframes cg-pop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}\n.cg-optgroup{font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.55;padding:12px 12px 6px}\n.cg-opt{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:9px 12px;border-radius:10px;text-align:left;font-family:var(--cg-body);font-size:17px;line-height:1.2;color:var(--cg-ink)}\n.cg-opt:hover,.cg-opt:focus-visible{background:rgba(43,30,25,.06);outline:none}\n.cg-opt.is-selected{background:rgba(45,110,126,.1)}\n.cg-opt.is-disabled{opacity:.4;cursor:default}\n.cg-optlabel{flex:1 1 auto}\n.cg-optcount{font-size:13px;opacity:.6;font-variant-numeric:tabular-nums}\n.cg-tick{width:14px;height:14px;flex:none;opacity:0;background:\n  url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2.5 7.5l3 3 6-6.5' fill='none' stroke='%232D6E7E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\") center/contain no-repeat}\n.cg-opt.is-selected .cg-tick{opacity:1}\n\n.cg-results{display:flex;align-items:baseline;gap:16px;margin-top:18px;padding-bottom:14px;border-bottom:1px solid var(--cg-rule)}\n.cg-resultcount{font-family:var(--cg-italic);font-style:var(--cg-italic-s);font-weight:var(--cg-italic-w);font-size:19px;color:var(--cg-ink85)}\n.cg-clear{position:relative;font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--cg-ink);\n  text-decoration:underline;text-decoration-color:var(--cg-teal);text-underline-offset:4px;text-decoration-thickness:1px}\n.cg-clear::after{content:\"\";position:absolute;left:-10px;right:-10px;top:50%;height:44px;transform:translateY(-50%)}\n.cg-clear:hover{color:var(--cg-teal)}\n\n/* ---- grid ---- */\n.cg-gridwrap{position:relative;margin-top:40px}\n.cg-nobar .cg-gridwrap{margin-top:0}\n/* Preset mode (presetIds set): 4 / 3 / 2 columns, tiles stretch to the row, a two-line name slot,\n   pills and the price link pinned to the tile's bottom so rows align. Phone keeps the default. */\n.cg-preset .cg-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:48px 24px;align-items:stretch}\n.cg-preset .cg-card{height:100%}\n.cg-preset .cg-meta{flex:1 1 auto;align-self:stretch}\n/* The kicker wraps (centred) at every width with a two-line slot, so pairs stay level and nothing is cut\n   (3 Nov 2026, Run B: it was truncated with an ellipsis at 768 and on the 4-up desktop grids). */\n.cg-preset .cg-kicker{max-width:100%;white-space:normal;overflow:visible;flex-wrap:wrap;justify-content:center;row-gap:3px;line-height:1.2;min-height:2.4em;font-size:10.5px;letter-spacing:.12em;gap:6px}\n.cg-preset .cg-kicker>*{flex:0 1 auto;min-width:0;overflow:visible;text-overflow:clip}\n.cg-preset .cg-kcol{flex-wrap:wrap;justify-content:center}\n.cg-preset .cg-kicker .cg-cdot{flex:none}\n.cg-preset .cg-name{font-size:22px;min-height:2.3em}\n.cg-preset .cg-pills{margin-top:auto;padding-top:13px}\n/* Default grid (Home, /collection): cards in a row share its height and the pills and price pill sit on one line\n   at the bottom, as in preset mode (3 Nov 2026, Run B: buttons were up to 26 px apart across a row). */\n.cg-root .cg-grid{align-items:stretch}\n.cg-root .cg-grid .cg-card{height:100%}\n.cg-root .cg-grid .cg-meta{flex:1 1 auto;align-self:stretch}\n.cg-root .cg-grid .cg-pills{margin-top:auto;padding-top:13px}\n.cg-ghosts{position:absolute;inset:0;z-index:0;pointer-events:none}\n.cg-sections{position:relative;z-index:1;display:flex;flex-direction:column;gap:72px}\n.cg-group{scroll-margin-top:120px}\n.cg-grouphead{display:flex;align-items:baseline;gap:14px;margin-bottom:28px}\n.cg-grouptitle{font-family:var(--cg-display);font-weight:var(--cg-display-w);font-size:30px;line-height:1.1;color:var(--cg-ink);letter-spacing:.01em}\n.cg-groupcount{font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:12px;letter-spacing:.14em;color:var(--group-accent,var(--cg-ink));font-variant-numeric:tabular-nums;position:relative;top:-2px}\n.cg-grouprule{flex:1 1 auto;height:1px;background:var(--cg-rule);position:relative;top:-6px}\n.cg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 28px;align-items:start}\n\n/* ---- card: one square plate, a centred text block below ---- */\n.cg-card{position:relative;display:flex;flex-direction:column}\n.cg-hit{position:absolute;inset:-6px;border-radius:14px;z-index:2}\n.cg-hit:focus-visible{outline:2px solid var(--cg-teal);outline-offset:2px}\n.cg-frame{position:relative;display:flex;flex-direction:column;align-items:center;width:100%}\n.cg-concept{display:inline-block;position:absolute;top:12px;left:12px;z-index:2;pointer-events:none;font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:10px;letter-spacing:.14em;text-transform:uppercase;line-height:1;color:var(--cg-ink85);background:rgba(251,248,241,.92);border:1px solid var(--cg-line);border-radius:99px;padding:6px 10px}\n.cg-concept-lb{position:static;align-self:flex-start;margin-bottom:10px}\n.cg-plate{\n  position:relative;width:100%;aspect-ratio:1/1;border-radius:8px;overflow:hidden;\n  background:linear-gradient(180deg,#FBF8F2 0%,#F8F3EA 100%);\n  box-shadow:inset 0 0 0 1px var(--cg-hair);\n  transition:box-shadow .45s ease;\n}\n.cg-plate::after{content:\"\";position:absolute;inset:8px;border:1px solid var(--cg-gold);border-radius:3px;opacity:0;pointer-events:none;transition:opacity .45s ease}\n.cg-views{position:absolute;inset:0}\n.cg-view{position:absolute;inset:var(--cg-inset)}\n.cg-view img{width:100%;height:100%;object-fit:contain;object-position:50% 50%;transition:filter .45s ease,box-shadow .45s ease}\n.cg-view.is-cut img{filter:drop-shadow(0 1px 1px rgba(43,30,25,.14)) drop-shadow(0 16px 18px rgba(43,30,25,.16))}\n.cg-view.is-photo img{border-radius:10px;box-shadow:0 1px 2px rgba(43,30,25,.1),0 20px 32px -18px rgba(43,30,25,.4)}\n\n/* the two views: closed on top by default; the open one arrives with a settle */\n.cg-v-closed{opacity:1;transform:none;transition:opacity .42s ease-out,transform .5s var(--cg-ease)}\n.cg-v-open{opacity:0;transform:scale(.955) translateY(5px);transition:opacity .3s ease,transform .3s ease}\n.cg-card.single .cg-v-open{opacity:1;transform:none}\n\n/* show-open: a hover on a pointer device (unless the toggle forced Closed), or the toggle forced Open */\n@media (hover:hover){\n  .cg-card.has-both:not(.is-closed):hover .cg-v-open{opacity:1;transform:none;transition:opacity .42s ease-out,transform .5s var(--cg-ease)}\n  .cg-card.has-both:not(.is-closed):hover .cg-v-closed{opacity:0;transform:scale(1.02);transition:opacity .3s ease,transform .3s ease}\n  .cg-card.has-both:not(.is-closed):hover .cg-seg-open{background:var(--cg-brown);color:var(--cg-cream)}\n  .cg-card.has-both:not(.is-closed):hover .cg-seg-closed{background:transparent;color:var(--cg-ink85)}\n  .cg-card:hover .cg-plate{box-shadow:inset 0 0 0 1px rgba(62,42,35,.18)}\n  .cg-card:hover .cg-plate::after{opacity:.6}\n  .cg-card:hover .cg-view.is-cut img{filter:drop-shadow(0 2px 2px rgba(43,30,25,.12)) drop-shadow(0 24px 24px rgba(43,30,25,.18))}\n  .cg-card:hover .cg-view.is-photo img{box-shadow:0 2px 3px rgba(43,30,25,.08),0 30px 40px -20px rgba(43,30,25,.42)}\n}\n.cg-card.is-open .cg-v-open{opacity:1;transform:none;transition:opacity .42s ease-out,transform .5s var(--cg-ease)}\n.cg-card.is-open .cg-v-closed{opacity:0;transform:scale(1.02);transition:opacity .3s ease,transform .3s ease}\n.cg-card.is-open .cg-seg-open{background:var(--cg-brown);color:var(--cg-cream)}\n.cg-card.is-open .cg-seg-closed{background:transparent;color:var(--cg-ink85)}\n.cg-card.is-open .cg-plate,.cg-card.is-closed .cg-plate{box-shadow:inset 0 0 0 1px rgba(62,42,35,.18)}\n.cg-card.is-open .cg-plate::after,.cg-card.is-closed .cg-plate::after{opacity:.6}\n.cg-card:has(.cg-hit:focus-visible) .cg-plate::after{opacity:.6}\n\n/* Closed / Open toggle: a small segmented pill. Pointer devices: in the plate's corner, shown on\n   hover or focus. Touch devices: centred under the plate, always visible, clear of the product. */\n.cg-toggle{\n  position:absolute;right:10px;bottom:10px;z-index:3;display:inline-flex;align-items:center;gap:1px;padding:2px;border-radius:999px;\n  background:rgba(250,247,240,.94);box-shadow:inset 0 0 0 1px rgba(62,42,35,.16),0 4px 12px -6px rgba(43,30,25,.25);\n  transition:opacity .3s ease,transform .3s var(--cg-ease);\n}\n.cg-seg{display:inline-flex;align-items:center;height:20px;padding:0 9px;border-radius:999px;font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;line-height:1;color:var(--cg-ink85);transition:background-color .3s ease,color .3s ease}\n.cg-seg-closed{background:var(--cg-brown);color:var(--cg-cream)}\n.cg-toggle:focus-visible{outline:2px solid var(--cg-teal);outline-offset:2px}\n.cg-toggle::before{content:\"\";position:absolute;inset:-10px -8px}\n@media (hover:hover){\n  .cg-toggle{opacity:0;transform:translateY(4px)}\n  .cg-card:hover .cg-toggle,.cg-card.is-open .cg-toggle,.cg-card.is-closed .cg-toggle,.cg-toggle:focus-visible,.cg-card:has(.cg-hit:focus-visible) .cg-toggle{opacity:1;transform:none}\n}\n/* the touch placement of the toggle sits after the container queries, so it wins over them */\n\n/* text block: kicker, name, one italic line, finish pills, the price link; all centred */\n.cg-meta{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:20px;padding:0 6px}\n.cg-kicker{display:inline-flex;align-items:center;gap:7px;font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;line-height:1;color:var(--cg-ink85)}\n.cg-kdiv{opacity:.5}\n.cg-kcol{display:inline-flex;align-items:center;gap:6px}\n.cg-cdot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px rgba(62,42,35,.22)}\n.cg-name{font-family:var(--cg-display);font-weight:var(--cg-display-w);font-size:26px;line-height:1.15;letter-spacing:.005em;color:var(--cg-ink);text-wrap:balance;margin-top:9px}\n.cg-line{font-family:var(--cg-italic);font-style:var(--cg-italic-s);font-weight:var(--cg-italic-w);font-size:17.5px;line-height:1.4;color:var(--cg-ink85);margin-top:8px;max-width:34ch;text-wrap:pretty}\n.cg-pills{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:13px}\n.cg-pill{\n  display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;\n  background:var(--cg-card);box-shadow:inset 0 0 0 1px rgba(184,147,90,.7);\n  font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;line-height:1;color:var(--cg-ink85);white-space:nowrap;\n}\n.cg-pills.is-large{justify-content:flex-start;gap:8px}\n.cg-pills.is-large .cg-pill{height:28px;padding:0 12px;font-size:12px}\n/* \"Get a price for this design\": a 44 px outlined Cocoa pill (round 4, 31 Oct 2026), not an underlined link. */\n.cg-price{\n  position:relative;z-index:3;display:inline-flex;align-items:center;justify-content:center;height:44px;margin-top:16px;padding:0 20px;border-radius:999px;\n  border:1.5px solid var(--cg-cocoa);background:transparent;color:var(--cg-cocoa);cursor:pointer;-webkit-appearance:none;appearance:none;\n  font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:14px;letter-spacing:.01em;line-height:1;white-space:nowrap;\n  transition:background-color .2s ease,transform .16s var(--cg-ease);\n}\n.cg-price:active{transform:scale(.97)}\n.cg-pl-short{display:none;white-space:nowrap}\n/* one-view cards keep an empty slot where the touch toggle sits, so a row stays level (nav picks 0c) */\n.cg-toggle-slot{display:none}\n/* preset tiles: finish pills a touch tighter so two fit on one row in a 4-up tile (el4 at 1440, nav picks 0c) */\n.cg-preset .cg-pills{gap:5px}\n.cg-preset .cg-pill{padding:0 8px;letter-spacing:.09em}\n.cg-root .cg-price:focus-visible{outline:2px solid var(--cg-cocoa);outline-offset:3px}\n@media (hover:hover) and (pointer:fine){\n  .cg-price:hover{background-color:rgba(228,203,178,.4)}\n}\n.cg-ghost{pointer-events:none}\n.cg-ghost .cg-hit,.cg-ghost .cg-toggle{display:none}\n\n/* ---- lightbox ---- */\n.cg-lb{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:28px}\n.cg-lb-backdrop{position:absolute;inset:0;background:rgba(43,30,25,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:cg-fade .25s ease both}\n@keyframes cg-fade{from{opacity:0}to{opacity:1}}\n.cg-lb-panel{\n  position:relative;width:min(1180px,100%);max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);overflow:auto;\n  background:var(--cg-card);border:1px solid var(--cg-rule);border-radius:22px;padding:40px 40px 32px;\n  box-shadow:0 40px 80px -24px rgba(20,10,8,.5);animation:cg-rise .32s var(--cg-ease) both;overscroll-behavior:contain;\n}\n@keyframes cg-rise{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}\n.cg-lb-close{position:absolute;top:14px;right:14px;z-index:3;width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--cg-ink);background:rgba(43,30,25,.06);transition:background-color .2s ease}\n.cg-lb-close:hover{background:rgba(43,30,25,.12)}\n.cg-lb-close.static{position:static}\n.cg-lb-views{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end}\n.cg-lb-views.one{grid-template-columns:1fr;justify-items:center}\n.cg-lb-view{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0}\n.cg-lb-img{position:relative;width:100%;height:clamp(300px,56vh,620px)}\n.cg-lb-views.one .cg-lb-img{max-width:720px}\n.cg-lb-img img{position:absolute;inset:0;margin:auto;max-width:100%;max-height:100%;width:auto;height:auto}\n.cg-lb-view.is-cut img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(43,30,25,.16)) drop-shadow(0 26px 26px rgba(43,30,25,.2))}\n.cg-lb-view.is-photo img{border-radius:16px;box-shadow:0 1px 2px rgba(43,30,25,.1),0 28px 44px -20px rgba(43,30,25,.4)}\n.cg-lb-view figcaption{font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.55}\n.cg-lb-info{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-top:30px;padding-top:24px;border-top:1px solid var(--cg-rule)}\n.cg-lb-text{min-width:0;display:flex;flex-direction:column;align-items:flex-start}\n.cg-lb-title{font-family:var(--cg-display);font-weight:var(--cg-display-w);font-size:34px;line-height:1.1;color:var(--cg-ink);margin-top:8px}\n.cg-lb-text .cg-line{text-align:left;max-width:52ch}\n.cg-lb-text .cg-pills{margin-top:12px}\n.cg-primary{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 26px;border-radius:999px;background:var(--cg-brown);color:var(--cg-cream);\n  font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-align:center;line-height:1.2;white-space:normal;flex:none;\n  transition:background-color .25s ease,transform .25s var(--cg-ease)}\n.cg-primary:hover{background:var(--cg-teal)}\n.cg-lb-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:22px}\n.cg-lb-arrow{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--cg-line);color:var(--cg-ink);transition:border-color .2s ease,opacity .2s ease}\n.cg-lb-arrow:hover{border-color:var(--cg-ink)}\n.cg-lb-arrow:disabled{opacity:.3;cursor:default}\n.cg-lb-counter{font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.6;font-variant-numeric:tabular-nums}\n\n/* ---- phone filter sheet ---- */\n.cg-sheetroot{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:flex-end;justify-content:center}\n.cg-sheet{position:relative;width:100%;max-height:86vh;max-height:86dvh;display:flex;flex-direction:column;background:var(--cg-card);border-radius:22px 22px 0 0;\n  box-shadow:0 -24px 60px -20px rgba(20,10,8,.4);animation:cg-slide .32s var(--cg-ease) both}\n@keyframes cg-slide{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}\n.cg-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 10px 22px;border-bottom:1px solid var(--cg-rule)}\n.cg-sheet-title{font-family:var(--cg-display);font-weight:var(--cg-display-w);font-size:26px}\n.cg-sheet-body{overflow:auto;padding:8px 22px 18px;overscroll-behavior:contain}\n.cg-sheet-label{font-family:var(--cg-label);font-weight:var(--cg-label-w);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin:18px 0 12px}\n.cg-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 8px}\n.cg-swbtn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 2px;border-radius:12px;text-align:center}\n.cg-swbtn .cg-swatch.big{transition:transform .2s var(--cg-ease),box-shadow .2s ease}\n.cg-swbtn.is-active .cg-swatch.big{box-shadow:0 0 0 2px var(--cg-card),0 0 0 3.5px var(--cg-ink);transform:scale(1.06)}\n.cg-swbtn.is-disabled{opacity:.35}\n.cg-swlabel{font-family:var(--cg-body);font-size:15px;line-height:1.2;color:var(--cg-ink85)}\n.cg-sheetpills{display:flex;flex-wrap:wrap;gap:8px}\n.cg-fpill{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 15px;border-radius:999px;border:1px solid var(--cg-line);font-family:var(--cg-body);font-size:16px;color:var(--cg-ink)}\n.cg-fpill.is-active{background:var(--cg-brown);border-color:var(--cg-brown);color:var(--cg-cream)}\n.cg-fpill.is-disabled{opacity:.4}\n.cg-fpillcount{font-size:13px;opacity:.65;font-variant-numeric:tabular-nums}\n.cg-sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--cg-rule)}\n.cg-sheet-foot .cg-primary{flex:1 1 auto;height:50px}\n\n/* ---- tablet (component narrower than 1000px) ---- */\n/* Preset grids hold eight designs: 4-up down to a 900 px component, then 2-up, so rows are always full\n   (3 Nov 2026, Run B: 3-up between 720 and 1023 left a last row of two at 1024, 810 and 768). */\n@container (max-width:899px){\n  .cg-preset .cg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 24px}\n}\n@container (max-width:999px){\n  .cg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 24px}\n  .cg-name{font-size:22px}\n  .cg-line{font-size:16.5px}\n  .cg-lb-panel{padding:32px 28px 26px}\n  .cg-lb-img{height:clamp(260px,46vh,520px)}\n  .cg-lb-info{flex-direction:column;align-items:flex-start}\n  .cg-lb-title{font-size:30px}\n}\n/* ---- phone (component narrower than 600px) ---- */\n@container (max-width:599px){\n  .cg-root{--cg-inset:5%}\n  .cg-bar{flex-wrap:nowrap;align-items:center;gap:10px}\n  .cg-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:3px 3px 3px 3px;margin:-3px;\n    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);scroll-snap-type:x proximity}\n  .cg-chips::-webkit-scrollbar{display:none}\n  .cg-chip{scroll-snap-align:start}\n  .cg-dds{display:none}\n  .cg-filterbtn{display:inline-flex}\n  .cg-results{margin-top:14px}\n  .cg-gridwrap{margin-top:30px}\n  .cg-sections{gap:52px}\n  .cg-grouphead{margin-bottom:20px}\n  .cg-grouptitle{font-size:26px}\n  /* one card per row: the square at 85% of the width, centred, the text block as on desktop */\n  .cg-grid{grid-template-columns:minmax(0,1fr);justify-items:center;gap:48px 0}\n  /* preset grid (market pages): two columns on phones, the tile fills its cell, the pill fills the tile and may wrap */\n  .cg-preset .cg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 16px;align-items:stretch;justify-items:stretch}\n  .cg-preset .cg-card{height:100%;width:100%}\n  .cg-preset .cg-meta{flex:1 1 auto;align-self:stretch}\n  .cg-preset .cg-pills{margin-top:auto;padding-top:12px}\n  .cg-preset .cg-price{height:auto;min-height:44px;padding:10px 12px;white-space:normal;text-align:center;line-height:1.2}\n  /* the kicker wraps to two lines in a 175 px tile instead of truncating; a two-line slot keeps the pair level */\n  .cg-preset .cg-kicker{white-space:normal;overflow:visible;flex-wrap:wrap;justify-content:center;row-gap:3px;line-height:1.2;min-height:2.4em}\n  .cg-preset .cg-kicker>*{overflow:visible;text-overflow:clip;min-width:0}\n  .cg-preset .cg-kcol{flex-wrap:wrap;justify-content:center}\n  .cg-preset .cg-name{font-size:20px;min-height:0}\n  .cg-card{width:min(85%,420px)}\n  .cg-plate{border-radius:7px}\n  .cg-plate::after{inset:7px}\n  .cg-hit{inset:-6px;border-radius:12px}\n  .cg-chip,.cg-filterbtn{height:40px;padding:0 14px 0 12px}\n  .cg-toggle{right:8px;bottom:8px}\n  .cg-meta{margin-top:18px;padding:0}\n  .cg-kicker{font-size:11px;letter-spacing:.15em;gap:6px}\n  .cg-cdot{width:9px;height:9px}\n  .cg-name{font-size:20px;line-height:1.18;margin-top:8px}\n  .cg-line{font-size:16.5px;margin-top:7px}\n  .cg-pills{gap:6px;margin-top:12px}\n  .cg-pill{height:23px;padding:0 9px;font-size:11px;letter-spacing:.11em}\n  .cg-price{width:100%;margin-top:14px}\n  .cg-pl-long{display:none}\n  .cg-pl-short{display:inline}\n  .cg-lb{padding:10px;align-items:flex-end}\n  .cg-lb-panel{padding:22px 18px 18px;border-radius:20px;max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px)}\n  .cg-lb-views,.cg-lb-views.two{grid-template-columns:1fr;gap:22px}\n  .cg-lb-img{height:30vh;max-height:300px}\n  .cg-lb-info{margin-top:22px;padding-top:18px;gap:18px}\n  .cg-lb-info .cg-primary{width:100%;height:auto;min-height:50px;padding:14px 20px}\n  .cg-lb-title{font-size:26px}\n}\n@container (max-width:339px){\n  .cg-card{width:92%}\n  .cg-preset .cg-card{width:100%}\n}\n/* touch screens: the Closed / Open toggle sits centred under the square, always visible, clear of the product */\n@media (hover:none){\n  .cg-toggle{position:relative;right:auto;bottom:auto;margin-top:10px;box-shadow:inset 0 0 0 1px rgba(62,42,35,.2)}\n  /* 44 px to tap (nav picks 0c, 3 Nov: was 28) */\n  .cg-seg{height:40px;padding:0 13px;font-size:11px}\n  .cg-toggle-slot{display:block;height:44px;margin-top:10px}\n}\n\n/* ---- reduced motion: plain fades, no settle, no lift ---- */\n@media (prefers-reduced-motion:reduce){\n  .cg-root *,.cg-root *::before,.cg-root *::after{animation:none!important}\n  .cg-root .cg-v-closed,.cg-root .cg-v-open{transition:opacity .2s linear!important;transform:none!important}\n  .cg-root .cg-toggle{transition:none;transform:none}\n}\n.cg-root.no-motion .cg-v-closed,.cg-root.no-motion .cg-v-open{transition:opacity .2s linear;transform:none}\n`;CollectionGrid.displayName=\"Collection Grid\";addPropertyControls(CollectionGrid,{displayFont:{type:ControlType.Font,title:\"Display font\",controls:\"basic\",defaultValue:{fontFamily:\"Italiana\",fontWeight:400}},labelFont:{type:ControlType.Font,title:\"Label font\",controls:\"basic\",defaultValue:{fontFamily:\"Cormorant Garamond\",fontWeight:600}},italicFont:{type:ControlType.Font,title:\"Italic font\",controls:\"basic\",defaultValue:{fontFamily:\"Cormorant Garamond\",fontWeight:400,fontStyle:\"italic\"}},bodyFont:{type:ControlType.Font,title:\"Body font\",controls:\"basic\",defaultValue:{fontFamily:\"Cormorant Garamond\",fontWeight:400}},bookLabel:{type:ControlType.String,title:\"Price label\",defaultValue:\"Get a price for this design\"},presetIds:{type:ControlType.String,title:\"Preset design ids\",description:\"Comma-separated product ids in display order, e.g. 18, 28, 27. Empty shows the full grouped collection.\",defaultValue:\"\",placeholder:\"18, 28, 27\"},showFilters:{type:ControlType.Boolean,title:\"Show filters\",defaultValue:true,hidden:p=>!(typeof p.presetIds===\"string\"&&p.presetIds.trim())}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CollectionGrid\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CollectionGrid.map"],"mappings":"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"}