{"version":3,"file":"Partner.DbBeZBbl.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/pr40v3oUhimzgWjguPxv/BbMjf8H2ldZjl2wuvQi8/Partner.js"],"sourcesContent":["// Stacked Partner Listing Page — v19 · BENTO\n//\n// v18: no more Airtable in the browser. The page now reads one JSON object from\n// the Stacked API (GET /api/partner?slug=…, hosted on Netlify as stacked-api)\n// and the \"Get in touch\" form posts to POST /api/lead. The Airtable token,\n// base ID and the hard-coded Slack webhook are gone from this file, and so is\n// the \"API Key\" control. Tier gating (website, video, case studies) now happens\n// on the server: Lite listings never receive those values at all. Lead alerts\n// still come from the Airtable automation on the Forms table, unchanged.\n// The lead form carries a hidden company_website honeypot field; real visitors\n// never see it, so anything filling it is a bot and gets a silent fake success.\n// The table and field-name controls were removed with the API key, since the\n// API now owns those names. Every design and layout control is unchanged.\n//\n// v19: crawlable first render. Framer pre-renders a code component's first\n// output into the page HTML, but everything above is drawn in an effect, so\n// crawlers (Google's first pass, GPTBot, ClaudeBot, Perplexity) saw an empty\n// shell. The SEO controls (bind them to the Partners CMS fields) feed a plain\n// HTML version of the listing (H1 name, summary, description, operator score,\n// plus SoftwareApplication JSON-LD) that ships in the HTML and is swapped for\n// the interactive page as soon as it mounts in a browser.\n//\n// v17: Case studies tile for Promote and above, PDF thumbnails from Airtable.\n// v16: video tile is a paid-tier element. v15: \"Get in touch\" is a product\n// lead form with a mailto fallback so a lead is never lost. v14: Visit Website\n// and Edit your listing hidden behind toggles. v13: verified-data pill links\n// to the method page. v12: usage bars fill. v11: real usage chart. v10: true\n// 16:9 video. v9: integrations scroll well. v8: grouped Design controls.\n// Contact policy: email / phone are never shown on any listing.\n// See also Partner_Mobile.tsx for the dedicated compact/mobile variant.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useRef,useState}from\"react\";const API_BASE=\"https://stacked-api.netlify.app\";// ─── Colour helpers ──────────────────────────────────────────────────────────\nfunction parseColor(c){if(!c)return null;c=String(c).trim();if(c[0]===\"#\"){let h=c.slice(1);if(h.length===3)h=h.split(\"\").map(x=>x+x).join(\"\");return[parseInt(h.slice(0,2),16),parseInt(h.slice(2,4),16),parseInt(h.slice(4,6),16)];}const m=c.match(/rgba?\\(([^)]+)\\)/);if(m){const p=m[1].split(\",\").map(s=>parseFloat(s));return[p[0],p[1],p[2]];}return null;}function toHex(r,g,b){return\"#\"+[r,g,b].map(x=>Math.max(0,Math.min(255,Math.round(x))).toString(16).padStart(2,\"0\")).join(\"\");}function mix(color,target,amt){const a=parseColor(color),b=parseColor(target);if(!a)return color;return toHex(a[0]+(b[0]-a[0])*amt,a[1]+(b[1]-a[1])*amt,a[2]+(b[2]-a[2])*amt);}// ─── Small helpers ───────────────────────────────────────────────────────────\nfunction normalizeUrl(u){if(!u)return null;const s=String(u).trim();if(!s)return null;return/^https?:\\/\\//i.test(s)?s:\"https://\"+s;}function getEmbedUrl(url){if(!url)return null;const normalized=normalizeUrl(url);if(!normalized)return null;let parsed=null;try{parsed=new URL(normalized);}catch(e){return null;}const host=parsed.hostname.replace(/^www\\./i,\"\").toLowerCase();if(host===\"youtube.com\"||host===\"m.youtube.com\"||host===\"youtu.be\"){const fromWatch=parsed.searchParams.get(\"v\");const fromPath=parsed.pathname.match(/\\/embed\\/([a-zA-Z0-9_-]{11})/)?.[1];const fromShort=host===\"youtu.be\"?parsed.pathname.replace(/^\\/+/,\"\").split(\"/\")[0]:\"\";const id=[fromWatch,fromPath,fromShort].find(v=>/^[a-zA-Z0-9_-]{11}$/.test(String(v||\"\")));if(id)return`https://www.youtube.com/embed/${id}`;return null;}if(host===\"vimeo.com\"||host===\"player.vimeo.com\"){const vimeoId=parsed.pathname.match(/\\/(?:video\\/)?(\\d+)/)?.[1];if(vimeoId)return`https://player.vimeo.com/video/${vimeoId}`;return null;}return null;}function getSlug(){const parts=window.location.pathname.split(\"/\").filter(Boolean);return parts[parts.length-1]||null;}function arr(v){return Array.isArray(v)?v.filter(x=>x!=null&&x!==\"\"):[];}function isSosScoreLabel(label){const n=String(label||\"\").trim().toLowerCase();if(!n)return false;if(/\\bsos\\b/.test(n))return true;if(/\\bstacked\\s*operator\\s*score\\b/.test(n))return true;if(/\\boperator\\s*score\\b/.test(n))return true;return/\\bscore\\b/.test(n)&&/\\boperator\\b/.test(n);}// ─── Typography helpers ──────────────────────────────────────────────────────\nfunction caseStyle(value){return{textTransform:value||\"none\"};}function fontOf(group){return{...group?.font||{},...caseStyle(group?.case)};}const PX_PROPS=new Set([\"fontSize\",\"letterSpacing\"]);function applyStyle(node,styleObj){if(!node||!styleObj)return;Object.keys(styleObj).forEach(k=>{let v=styleObj[k];if(v===undefined||v===null||v===\"\")return;if(typeof v===\"number\"&&PX_PROPS.has(k))v=v+\"px\";node.style[k]=v;});}// ─── Solution icons ──────────────────────────────────────────────────────────\nconst ICONS={pos:'<rect x=\"6\" y=\"2\" width=\"12\" height=\"20\" rx=\"1\"/><path d=\"M9 6h6M9 10h6M9 14h2\"/>',payment:'<rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\"/><path d=\"M2 10h20\"/>',kitchen:'<rect x=\"3\" y=\"4\" width=\"18\" height=\"12\" rx=\"2\"/><path d=\"M8 20h8M12 16v4\"/>',order:'<path d=\"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01\"/>',booking:'<rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"/><path d=\"M3 9h18M8 2v4M16 2v4\"/>',loyalty:'<path d=\"M12 21s-7-4.5-9-8.5C1.5 9 3 6 6 6c2 0 3 1.2 4 2.5C11 7.2 12 6 14 6c3 0 4.5 3 3 6.5C19 16.5 12 21 12 21z\"/>',analytics:'<path d=\"M3 3v18h18\"/><path d=\"M7 14l3-3 3 3 4-5\"/>',cloud:'<path d=\"M17 18a4 4 0 0 0 0-8 6 6 0 0 0-11.3 1.5A3.5 3.5 0 0 0 6 18z\"/>',api:'<path d=\"M8 6l-6 6 6 6M16 6l6 6-6 6\"/>',mobile:'<rect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"2\"/><path d=\"M11 18h2\"/>',fallback:'<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M9 12l2 2 4-4\"/>'};const PDF_ICON='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/><path d=\"M14 2v6h6\"/><path d=\"M8 13h8M8 17h5\"/></svg>';function iconKey(name){const n=(name||\"\").toLowerCase();if(n.includes(\"pos\")||n.includes(\"point of sale\"))return\"pos\";if(n.includes(\"pay\"))return\"payment\";if(n.includes(\"kitchen\")||n.includes(\"display\")||n.includes(\"kds\"))return\"kitchen\";if(n.includes(\"order\"))return\"order\";if(n.includes(\"book\")||n.includes(\"reserv\")||n.includes(\"table\"))return\"booking\";if(n.includes(\"loyal\")||n.includes(\"reward\")||n.includes(\"gift\"))return\"loyalty\";if(n.includes(\"analyt\")||n.includes(\"report\")||n.includes(\"insight\"))return\"analytics\";if(n.includes(\"cloud\"))return\"cloud\";if(n.includes(\"api\"))return\"api\";if(n.includes(\"ios\")||n.includes(\"android\")||n.includes(\"mobile\")||n.includes(\"app\")||n.includes(\"kiosk\"))return\"mobile\";return\"fallback\";}function svgFor(name){return`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${ICONS[iconKey(name)]}</svg>`;}// ─── Lead form option sets (must match /api/lead) ────────────────────────────\nconst ENQUIRY_TYPES=[\"A demo\",\"Pricing\",\"General question\"];const SITE_BANDS=[\"\",\"1 site\",\"2-5 sites\",\"6-20 sites\",\"21-50 sites\",\"50+ sites\"];const TIMELINES=[\"\",\"Looking now\",\"Next few months\",\"Just researching\"];// ─── Sample data (Framer canvas / no slug) ───────────────────────────────────\nconst SAMPLE_POOLS={solution:[\"Point of Sale\",\"Payments\",\"Kitchen Display\",\"Online Ordering\",\"Reservations & Bookings\",\"Loyalty & Rewards\",\"Inventory\",\"Staff Scheduling\",\"Analytics & Reporting\",\"Table Management\",\"Gift Cards\",\"Self-Service Kiosk\"],technology:[\"Cloud\",\"iOS\",\"Android\",\"Web App\",\"API\",\"Offline Mode\",\"Integrations\",\"On-Premise\"],sector:[\"Restaurants\",\"QSR\",\"Caf\\xe9s\",\"Bars & Pubs\",\"Hotels\",\"Hospitality\",\"Retail\",\"Stadiums & Venues\",\"Catering\"]};const SAMPLE={slug:null,name:\"Sample Partner\",logo:null,summary:\"All-in-one point of sale built for high-volume restaurants — orders, payments, and kitchen display in one tidy system.\",about:\"This is placeholder copy shown in the Framer editor so you can adjust the layout without live data.\\n\\nIt fills the About section with two paragraphs so spacing and rhythm are easy to judge while designing.\",video:\"https://www.youtube.com/embed/ysz5S6PUM-U\",website:\"https://example.com\",email:null,phone:null,approved:true,tier:\"approved\",showContact:false,showWebsite:true,showVideo:true,showCaseStudies:true,caseStudies:[{url:\"#\",name:\"Sample Group cuts queue times by 30%\",thumb:null},{url:\"#\",name:\"Rolling out across 40 sites\",thumb:null}],stats:[{num:\"35\",label:\"Operators\"},{num:\"120\",label:\"Venues\"},{num:\"4.6★\",label:\"Operator score\"}],operatorNames:[\"Dishoom\",\"Hakkasan Group\",\"BAO London\",\"Bombay Brasserie\",\"Cabana\",\"Big Easy\",\"El Pastor\",\"Fish Shop\",\"Pasture\",\"Norma\",\"MyLahore\",\"Balans\",\"Bocca Di Lupo\",\"Sucre London\",\"The Waffle House\",\"Din Tai Fung\",\"Jack Solomons Club\",\"Brighton Music Hall\"],usage:[{label:\"Point of Sale\",value:48},{label:\"Payments\",value:32},{label:\"Mobile/QR Ordering\",value:12},{label:\"Inventory & Stock Management\",value:8}],solution:[\"Point of Sale\",\"Payments\",\"Kitchen Display\"],technology:[\"Cloud\",\"iOS\",\"Android\",\"API\"],sector:[\"Restaurants\",\"QSR\",\"Hospitality\"],integration:[\"Xero\",\"Deliveroo\",\"Stripe\",\"Uber Eats\",\"Just Eat\",\"QuickBooks\",\"Shopify\",\"Mailchimp\",\"Klaviyo\",\"Google Calendar\",\"OpenTable\",\"Square\",\"Sage\",\"Zapier\",\"SumUp\",\"Trivec\"],support:[\"24/7 phone support\",\"Onboarding & training\",\"Dedicated account manager\"]};// Turns a CMS formatted-text value (HTML) or plain text into paragraphs.\nfunction toParagraphs(value){const raw=String(value||\"\");if(!raw.trim())return[];return raw.replace(/<br\\s*\\/?>/gi,\"\\n\").replace(/<\\/(p|div|li|h[1-6])>/gi,\"\\n\\n\").replace(/<[^>]+>/g,\"\").replace(/&nbsp;/g,\" \").replace(/&amp;/g,\"&\").replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\").replace(/&quot;/g,'\"').replace(/&#39;|&apos;/g,\"'\").split(/\\n{2,}/).map(t=>t.replace(/\\s+/g,\" \").trim()).filter(Boolean);}// Plain, server-rendered version of the listing for crawlers. It is visible\n// only until the interactive page mounts, so humans and bots get the same\n// content and nothing is hidden.\nfunction SeoFallback({name,summary,description,score,reviews}){const paras=toParagraphs(description);const hasScore=Number(score)>0&&Number(reviews)>=2;const ld={\"@context\":\"https://schema.org\",\"@type\":\"SoftwareApplication\",name,applicationCategory:\"BusinessApplication\",description:summary||paras[0]||undefined,publisher:{\"@type\":\"Organization\",name:\"Stacked\",url:\"https://www.wearestacked.io\"}};if(hasScore){ld.aggregateRating={\"@type\":\"AggregateRating\",ratingValue:Number(score),bestRating:5,worstRating:1,ratingCount:Number(reviews)};}return /*#__PURE__*/_jsxs(\"article\",{style:{padding:\"24px 0\",fontFamily:\"sans-serif\",color:\"#222\",lineHeight:1.6},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 12px\"},children:/*#__PURE__*/_jsx(\"a\",{href:\"/marketplace\",children:\"Hospitality technology marketplace\"})}),/*#__PURE__*/_jsx(\"h1\",{style:{margin:\"0 0 12px\",fontSize:30},children:name}),summary?/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 16px\",fontSize:17},children:summary}):null,hasScore?/*#__PURE__*/_jsxs(\"p\",{style:{margin:\"0 0 16px\"},children:[\"Stacked operator score: \",Number(score),\" out of 5, from \",Number(reviews),\" verified operator reviews.\"]}):null,paras.length?/*#__PURE__*/_jsxs(\"h2\",{style:{fontSize:18,margin:\"16px 0 8px\"},children:[\"About \",name]}):null,paras.map((t,i)=>/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 10px\"},children:t},i)),/*#__PURE__*/_jsx(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:JSON.stringify(ld).replace(/</g,\"\\\\u003c\")}})]});}// Maps the /api/partner response onto the shape the renderer expects. The API\n// already strips paid-tier values for Lite listings; the flags are kept so the\n// renderer's gating stays a second line of defence.\nfunction fromApi(d){return{slug:d.slug||null,name:d.name||\"Untitled Partner\",logo:d.logo||null,summary:d.summary||\"\",about:d.about||\"\",video:d.video||null,website:d.website||null,email:null,phone:null,tier:d.tier||\"lite\",approved:!!d.approved,showContact:false,showWebsite:!!d.showWebsite,showVideo:!!d.showVideo,showCaseStudies:!!d.showCaseStudies,caseStudies:arr(d.caseStudies),stats:arr(d.stats),usage:arr(d.usage),operatorNames:arr(d.operatorNames),solution:arr(d.solution),technology:arr(d.technology),sector:arr(d.sector),support:arr(d.support),integration:arr(d.integration)};}export default function StackedPartnerPage({integrationVisible,usageTitle,barScaleToMax,caseStudyTitle,marketplacePath,methodPath,methodLabel,liteEnquiryEmail,approvedBadge,showWebsiteButton,showEditButton,formRecipientEmail,maxTags,operatorsVisible,operatorsOverflowLink,spacing,typography,colors,seoName,seoSummary,seoDescription,seoScore,seoReviews}){const rootRef=useRef(null);const[mounted,setMounted]=useState(false);useEffect(()=>{setMounted(true);},[]);const liteEmail=liteEnquiryEmail||\"hello@wearestacked.io\";const csTitle=caseStudyTitle||\"Case studies\";const cap=maxTags||5;const operatorVisibleCount=Math.max(1,Math.floor(operatorsVisible||5));const operatorOverflowHref=operatorsOverflowLink||\"/contact\";const intVisible=Math.max(1,integrationVisible||10);const methodUrl=methodPath||\"/how-we-score\";const methodCta=methodLabel||\"How we score\";const websiteBtnOn=showWebsiteButton===true;const editBtnOn=showEditButton===true;const isCanvas=RenderTarget.current()===RenderTarget.canvas;// ── Spacing (grouped) ──────────────────────────────────────────────────\nconst sp=spacing||{};const spCard=sp.card||{};const spBento=sp.bento||{};const spSections=sp.sections||{};const spBadges=sp.badges||{};const padPx=spCard.padding??24;const radPx=spCard.radius??28;const bentoGap=spBento.gap??14;const tilePadding=spBento.tilePadding??24;const tileRadius=spBento.tileRadius??20;const mainRowGap=spSections.mainRowGap??14;const leftColGap=spSections.leftColGap??14;const sidebarGap=spSections.sidebarGap??22;const badgePx=spBadges.badgeSize??88;const logoPx=spBadges.logoHeight??32;// ── Colours (grouped) ──────────────────────────────────────────────────\nconst cl=colors||{};const mainColor=cl.mainColor||\"#E8440A\";const contrastColor=cl.contrastColor||\"#0F766E\";const textOnAccent=cl.textOnAccent||\"\";const textOnContrast=cl.textOnContrast||\"\";const cardBg=cl.cardBackground||\"#FFFFFF\";const backColor=cl.backLinkColor||\"\";const nameColor=cl.idNameColor||\"\";const summaryColor=cl.idSummaryColor||\"\";const labelColor=cl.sectionLabelColor||\"\";const statNumColor=cl.statNumColor||\"\";const statLabelColor=cl.statLabelColor||\"\";const barLabelColor=cl.barLabelColor||\"\";const barValColor=cl.barValColor||\"\";const barFillColor=cl.barFillColor||\"\";const barTrackColor=cl.barTrackColor||\"\";const aboutColor=cl.aboutBodyColor||\"\";const contactColor=cl.contactTextColor||\"\";const pillColor=cl.pillTextColor||\"\";const supportColor=cl.supportItemColor||\"\";const buttonTextColor=cl.buttonTextColor||\"\";// ── Typography (grouped, font + case per style) ───────────────────────\nconst ty=typography||{};const fBack=fontOf(ty.backLink);const fName=fontOf(ty.idName);const fSummary=fontOf(ty.idSummary);const fLabel=fontOf(ty.sectionLabel);const fStatNum=fontOf(ty.statNum);const fStatLabel=fontOf(ty.statLabel);const fBarLabel=fontOf(ty.barLabel);const fBarVal=fontOf(ty.barVal);const fAbout=fontOf(ty.aboutBody);const fContact=fontOf(ty.contactText);const fPill=fontOf(ty.pillText);const fSupport=fontOf(ty.supportItem);const fButton=fontOf(ty.buttonText);useEffect(()=>{if(!rootRef.current)return;const root=rootRef.current;root.id=\"sp-root\";let cancelled=false;const STYLE_ID=\"sp-styles\";const oldS=document.getElementById(STYLE_ID);if(oldS)oldS.remove();const style=document.createElement(\"style\");style.id=STYLE_ID;style.textContent=`\n            #sp-root, #sp-root * { pointer-events: all !important; box-sizing: border-box; }\n            #sp-root { width: 100%; font-family: sans-serif; }\n            .sp-card { display: flex; flex-direction: column; gap: 24px; }\n            .sp-back-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; }\n            .sp-back { font-size: 14px; color: var(--main); text-decoration: none; font-weight: 500; }\n            .sp-logo { height: ${logoPx}px; width: auto; max-width: 180px; object-fit: contain; flex-shrink: 0; }\n\n            .sp-bento { display: grid; grid-template-columns: repeat(12, 1fr); gap: ${bentoGap}px; }\n            .sp-tile { border-radius: ${tileRadius}px; padding: ${tilePadding}px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }\n            .sp-t-accent { background: var(--accent-soft); color: var(--ink-accent); }\n            .sp-t-accent-mid { background: var(--accent-mid); color: var(--ink-accent); }\n            .sp-t-contrast { background: var(--contrast-soft); color: var(--ink-contrast); }\n            .sp-t-contrast-mid { background: var(--contrast-mid); color: var(--ink-contrast); }\n            .sp-t-dark { background: #0e0e0e; color: #fff; padding: 0; overflow: hidden; }\n            .sp-c3 { grid-column: span 3; } .sp-c12 { grid-column: span 12; }\n            @media (max-width: 860px) { .sp-bento { grid-template-columns: repeat(2, 1fr); } .sp-tile { grid-column: span 2 !important; } .sp-tile.sp-stat { grid-column: span 1 !important; } }\n            @media (max-width: 520px) { .sp-bento { grid-template-columns: 1fr; } .sp-tile, .sp-tile.sp-stat { grid-column: 1 / -1 !important; } }\n\n            .sp-verified { text-decoration: none; transition: background .15s ease, opacity .15s ease; }\n            .sp-verified:hover { opacity: .82; }\n            .sp-verified-cta { opacity: .72; font-weight: 700; white-space: nowrap; }\n            .sp-verified:hover .sp-verified-cta { opacity: 1; text-decoration: underline; }\n            .sp-verified-sep { opacity: .35; }\n\n            .sp-main-row { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 340px; gap: ${mainRowGap}px; align-items: stretch; }\n            @media (max-width: 860px) { .sp-main-row { grid-template-columns: 1fr; } }\n            .sp-left { display: flex; flex-direction: column; gap: ${leftColGap}px; min-width: 0; }\n            .sp-video-tile { flex: 0 0 auto; }\n            .sp-fill { flex: 1 1 auto; }\n            .sp-sidebar { gap: ${sidebarGap}px; }\n            .sp-subsec { display: flex; flex-direction: column; gap: 10px; }\n            .sp-divider { height: 1px; background: currentColor; opacity: .12; }\n            .sp-tlabel { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .55; }\n\n            .sp-id-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }\n            .sp-id-name { font-size: 30px; font-weight: 700; margin: 0; }\n            .sp-id-summary { font-size: 17px; line-height: 1.55; margin: 0; max-width: 640px; opacity: .85; }\n            .sp-id-left { display: flex; flex-direction: column; gap: 14px; min-width: 0; }\n\n            .sp-seal { width: 88px; height: 88px; flex-shrink: 0; color: #fff; display: flex; align-items: center; justify-content: center; text-align: center; transform: rotate(-8deg); position: relative; }\n            .sp-seal-bg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 8px 18px rgba(0,0,0,.18)); }\n            .sp-seal-bg .sp-scallop * { fill: var(--main); }\n            .sp-seal-bg .sp-ring { fill: none; stroke: rgba(255,255,255,.7); stroke-width: 1.5; stroke-dasharray: 3 3; }\n            .sp-seal-text { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; line-height: 1; }\n            .sp-seal-check { font-size: 16px; } .sp-seal-word { font-size: 7px; font-weight: 800; letter-spacing: .1em; margin-top: 2px; }\n            .sp-badge-img { object-fit: contain; flex-shrink: 0; }\n\n            .sp-btn { display: inline-block; padding: 11px 20px; border-radius: 99px; font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none; border: 1.5px solid transparent; font-family: sans-serif; text-align: center; }\n            .sp-btn-primary { background: var(--main); color: #fff; }\n            .sp-btn-outline { background: transparent; border-color: currentColor; color: inherit; }\n            .sp-btn-block { display: block; width: 100%; }\n            .sp-btn-row { display: flex; flex-wrap: wrap; gap: 10px; }\n\n            .sp-stat-num { font-size: 30px; font-weight: 800; line-height: 1; }\n            .sp-stat-label { font-size: 12px; opacity: .65; margin-top: 8px; }\n            .sp-stat-link { text-decoration: none; color: inherit; }\n            .sp-stat-score {\n                background: linear-gradient(145deg, rgba(62,35,112,1) 0%, rgba(79,47,140,1) 100%);\n                color: #ffffff;\n                border: 1px solid rgba(196,161,255,0.75);\n                box-shadow: 0 0 0 1px rgba(255,255,255,0.14) inset, 0 10px 26px rgba(62,35,112,0.26);\n            }\n            .sp-stat-score .sp-stat-num,\n            .sp-stat-score .sp-stat-label { color: #ffffff !important; }\n            .sp-stat-score .sp-stat-label { opacity: .86; }\n\n            .sp-bar-row { display: flex; align-items: center; gap: 10px; }\n            .sp-bar-label { font-size: 12px; width: 96px; flex-shrink: 0; opacity: .8; }\n            .sp-bar-track { flex: 1; height: 10px; background: var(--bar-track); border-radius: 99px; overflow: hidden; }\n            .sp-bar-fill { display: block; width: 0; height: 100%; background: var(--bar-fill); border-radius: 99px; transition: width .75s cubic-bezier(.22,1,.36,1); }\n            @media (prefers-reduced-motion: reduce) { .sp-bar-fill { transition: none; } }\n            .sp-bar-val { font-size: 12px; font-weight: 700; width: 36px; text-align: right; }\n\n            .sp-cs-tile { flex: 0 0 auto; }\n            .sp-cs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }\n            .sp-cs-card { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: rgba(255,255,255,.65); color: inherit; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }\n            .sp-cs-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.08); }\n            .sp-cs-card:focus-visible { outline: 2px solid var(--main); outline-offset: 2px; }\n            .sp-cs-thumb { aspect-ratio: 4 / 3; background: rgba(255,255,255,.8); display: flex; align-items: center; justify-content: center; overflow: hidden; border-bottom: 1px solid rgba(0,0,0,.06); }\n            .sp-cs-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; }\n            .sp-cs-thumb svg { width: 40px; height: 40px; opacity: .45; }\n            .sp-cs-body { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px 14px; }\n            .sp-cs-name { font-size: 14px; font-weight: 700; line-height: 1.3; }\n            .sp-cs-cta { font-size: 12px; font-weight: 700; color: var(--main); }\n\n            .sp-about p { font-size: 14px; line-height: 1.7; margin: 0 0 10px; opacity: .9; }\n            .sp-about-body { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }\n            .sp-about-body.expanded { -webkit-line-clamp: unset; overflow: visible; }\n            .sp-about-toggle { align-self: flex-start; background: none; border: none; color: var(--main); font-weight: 700; font-size: 13px; cursor: pointer; padding: 4px 0 0; }\n            .sp-contact a { color: inherit; text-decoration: none; font-size: 14px; font-weight: 600; }\n            .sp-contact span { font-size: 14px; opacity: .8; }\n\n            .sp-pills { display: flex; flex-wrap: wrap; gap: 7px; }\n            .sp-pills-scroll { overflow-y: auto; overscroll-behavior: contain; padding-right: 4px; scrollbar-width: thin; scrollbar-color: rgba(0,0,0,.22) transparent; -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent 100%); mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent 100%); }\n            .sp-pills-scroll.at-end { -webkit-mask-image: none; mask-image: none; }\n            .sp-pills-scroll::-webkit-scrollbar { width: 6px; }\n            .sp-pills-scroll::-webkit-scrollbar-track { background: transparent; }\n            .sp-pills-scroll::-webkit-scrollbar-thumb { background: rgba(0,0,0,.18); border-radius: 99px; }\n            .sp-pills-scroll::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.3); }\n            .sp-tlabel-count { opacity: .7; font-weight: 700; }\n            .sp-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; font-size: 12px; font-weight: 600; background: rgba(255,255,255,.5); color: inherit; white-space: nowrap; }\n            .sp-pill svg { width: 14px; height: 14px; flex-shrink: 0; }\n            .sp-op-overflow { display:inline-flex; align-items:center; border-radius:100px; padding:8px 14px; font-size:13px; font-weight:700; color:rgb(62,35,112); background:transparent; border:1.5px dashed rgb(196,161,255); text-decoration:none; line-height:1.15; cursor:pointer; font-family:'DM Sans',sans-serif; }\n            .sp-op-overflow:hover { background:rgba(196,161,255,0.12); }\n            .sp-op-overflow:focus-visible { outline:2px solid rgb(62,35,112); outline-offset:2px; }\n            .sp-support-item { font-size: 13px; opacity: .9; }\n\n            .sp-video { position: relative; width: 100%; height: auto; aspect-ratio: 16 / 9; }\n            .sp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }\n\n            .sp-overlay { position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; padding: 20px; font-family: sans-serif; }\n            .sp-modal { background: #fff; color: #111; border-radius: 16px; max-width: 520px; width: 100%; max-height: 90vh; overflow: auto; padding: 28px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 24px 60px rgba(0,0,0,.25); }\n            .sp-modal h3 { margin: 0; font-size: 20px; font-weight: 700; }\n            .sp-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }\n            .sp-modal-close { border: 1.5px solid rgba(0,0,0,.16); background: #fff; color: #222; border-radius: 999px; padding: 7px 12px; font-size: 12px; font-weight: 700; line-height: 1; cursor: pointer; }\n            .sp-modal-close:hover { border-color: rgba(0,0,0,.3); }\n            .sp-modal-close:focus-visible { outline: 2px solid var(--main); outline-offset: 2px; }\n            .sp-modal-sub { margin: 0 0 4px; font-size: 14px; line-height: 1.5; color: #666; }\n            .sp-group-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #999; margin: 10px 0 -2px; }\n            .sp-field { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 600; color: #333; }\n            .sp-field input, .sp-field textarea, .sp-field select { padding: 10px 12px; border: 1.5px solid rgba(0,0,0,.15); border-radius: 10px; font-size: 14px; font-family: sans-serif; outline: none; resize: vertical; width: 100%; font-weight: 400; color: #111; background: #fff; }\n            .sp-field input:focus, .sp-field textarea:focus, .sp-field select:focus { border-color: var(--main); }\n            .sp-hint { font-size: 12px; font-weight: 400; color: #999; line-height: 1.4; }\n            /* Honeypot: off-screen rather than display:none, so naive bots still fill it. */\n            .sp-hp { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }\n            /* Two-up rows so the form reads short even though it asks for more. */\n            .sp-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }\n            @media (max-width: 520px) { .sp-pair { grid-template-columns: 1fr; } }\n            .sp-chips { display: flex; flex-wrap: wrap; gap: 8px; }\n            .sp-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1.5px solid rgba(0,0,0,.15); border-radius: 99px; font-size: 13px; font-weight: 500; color: #444; background: #fff; cursor: pointer; user-select: none; font-family: sans-serif; }\n            .sp-chip input { display: none; }\n            .sp-chip.checked { border-color: var(--main); background: color-mix(in srgb, var(--main) 10%, transparent); color: var(--main); }\n            .sp-chip.checked::before { content: \"✓\"; font-size: 11px; }\n            .sp-chip.disabled { opacity: .4; cursor: not-allowed; }\n            .sp-limit-note { font-size: 12px; font-weight: 400; color: #999; }\n            .sp-limit-note.maxed { color: #c0770b; }\n            .sp-err { font-size: 13px; color: #cc0000; display: none; }\n            .sp-row { display: flex; gap: 10px; justify-content: flex-end; margin-top: 8px; position: sticky; bottom: -28px; background: #fff; padding-top: 8px; }\n            .sp-btn[disabled] { opacity: .6; cursor: default; }\n            .sp-privacy { font-size: 12px; color: #999; line-height: 1.45; margin: 2px 0 0; }\n        `;document.head.appendChild(style);root.innerHTML=`<div style=\"padding:60px 0;text-align:center;color:#999;\">Loading...</div>`;function el(tag,cls,html){const e=document.createElement(tag);if(cls)e.className=cls;if(html!=null)e.innerHTML=html;return e;}function label(text){const s=el(\"span\",\"sp-tlabel\");s.textContent=text;applyStyle(s,fLabel);if(labelColor)s.style.color=labelColor;return s;}function pill(text,withIcon){const s=el(\"span\",\"sp-pill\");if(withIcon)s.innerHTML=svgFor(text);const t=el(\"span\");t.textContent=text;s.appendChild(t);applyStyle(s,fPill);if(pillColor)s.style.color=pillColor;return s;}function capPillHeight(pills,visible){let lastWidth=-1;const apply=()=>{pills.style.maxHeight=\"\";pills.classList.remove(\"sp-pills-scroll\",\"at-end\");const kids=pills.children;if(kids.length<=visible)return;const anchor=kids[visible-1];if(!anchor)return;const cut=Math.round(anchor.getBoundingClientRect().bottom-pills.getBoundingClientRect().top);if(cut<=0||pills.scrollHeight<=cut+4)return;pills.classList.add(\"sp-pills-scroll\");pills.style.maxHeight=cut+\"px\";};pills.addEventListener(\"scroll\",()=>{const atEnd=pills.scrollTop+pills.clientHeight>=pills.scrollHeight-2;pills.classList.toggle(\"at-end\",atEnd);});requestAnimationFrame(apply);if(typeof ResizeObserver!==\"undefined\"){const ro=new ResizeObserver(entries=>{const w=Math.round(entries[0].contentRect.width);if(w===lastWidth)return;lastWidth=w;requestAnimationFrame(apply);});ro.observe(pills);}}function buildSeal(){const cx=50,cy=50,Rc=36,br=8,n=16;let bumps=\"\";for(let i=0;i<n;i++){const a=2*Math.PI*i/n;bumps+=`<circle cx=\"${(cx+Rc*Math.cos(a)).toFixed(2)}\" cy=\"${(cy+Rc*Math.sin(a)).toFixed(2)}\" r=\"${br}\"/>`;}const seal=el(\"div\",\"sp-seal\");seal.title=\"Approved partner\";seal.innerHTML=`<svg class=\"sp-seal-bg\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"sp-scallop\">${bumps}<circle cx=\"50\" cy=\"50\" r=\"${Rc}\"/></g><circle class=\"sp-ring\" cx=\"50\" cy=\"50\" r=\"32\"/></svg><span class=\"sp-seal-text\"><span class=\"sp-seal-check\">✓</span><span class=\"sp-seal-word\">APPROVED</span><span class=\"sp-seal-word\">PARTNER</span></span>`;return seal;}// ── Modals ────────────────────────────────────────────────────────────\nfunction openModal(buildBody){document.getElementById(\"sp-modal-overlay\")?.remove();const overlay=el(\"div\",\"sp-overlay\");overlay.id=\"sp-modal-overlay\";const modal=el(\"div\",\"sp-modal\");overlay.appendChild(modal);overlay.addEventListener(\"click\",e=>{if(e.target===overlay)overlay.remove();});buildBody(modal,()=>overlay.remove());document.body.appendChild(overlay);}function fieldEl({label,hint,type=\"text\",value=\"\",placeholder=\"\",id}){const wrap=el(\"label\",\"sp-field\");const lab=el(\"span\");lab.textContent=label;wrap.appendChild(lab);const input=type===\"textarea\"?el(\"textarea\"):el(\"input\");if(type!==\"textarea\")input.type=type;if(type===\"textarea\")input.rows=label===\"About\"?6:3;input.value=value;input.placeholder=placeholder;input.id=id;wrap.appendChild(input);if(hint){const h=el(\"span\",\"sp-hint\");h.textContent=hint;wrap.appendChild(h);}return wrap;}function selectEl({label,id,options,hint}){const wrap=el(\"label\",\"sp-field\");const lab=el(\"span\");lab.textContent=label;wrap.appendChild(lab);const sel=el(\"select\");sel.id=id;options.forEach(o=>{const opt=el(\"option\");opt.value=o;opt.textContent=o===\"\"?\"Prefer not to say\":o;sel.appendChild(opt);});wrap.appendChild(sel);if(hint){const h=el(\"span\",\"sp-hint\");h.textContent=hint;wrap.appendChild(h);}return wrap;}// Hidden honeypot field. Off-screen, not focusable, no autofill, and\n// hidden from screen readers, so only bots ever put a value in it.\nfunction honeypotEl(){const wrap=el(\"div\",\"sp-hp\");wrap.setAttribute(\"aria-hidden\",\"true\");const lab=el(\"label\");lab.htmlFor=\"qCompanyWebsite\";lab.textContent=\"Company website\";const input=el(\"input\");input.type=\"text\";input.id=\"qCompanyWebsite\";input.name=\"company_website\";input.tabIndex=-1;input.autocomplete=\"off\";wrap.appendChild(lab);wrap.appendChild(input);return wrap;}function pairRow(a,b){const row=el(\"div\",\"sp-pair\");row.appendChild(a);row.appendChild(b);return row;}function checkGroup({label,options,selected,max}){const wrap=el(\"div\",\"sp-field\");const lab=el(\"span\");lab.textContent=`${label} (choose up to ${max})`;wrap.appendChild(lab);const chips=el(\"div\",\"sp-chips\");wrap.appendChild(chips);const note=el(\"span\",\"sp-limit-note\");wrap.appendChild(note);function refresh(){const inputs=[...chips.querySelectorAll(\"input\")];const count=inputs.filter(i=>i.checked).length;const atMax=count>=max;inputs.forEach(i=>{const chip=i.closest(\".sp-chip\");chip.classList.toggle(\"checked\",i.checked);const lock=!i.checked&&atMax;i.disabled=lock;chip.classList.toggle(\"disabled\",lock);});note.textContent=`${count}/${max} selected`;note.classList.toggle(\"maxed\",atMax);}options.forEach(opt=>{const chip=el(\"label\",\"sp-chip\");const input=el(\"input\");input.type=\"checkbox\";input.value=opt;if(selected.includes(opt))input.checked=true;const span=el(\"span\");span.textContent=opt;chip.appendChild(input);chip.appendChild(span);input.addEventListener(\"change\",refresh);chips.appendChild(chip);});refresh();return{wrap,getValues:()=>[...chips.querySelectorAll(\"input:checked\")].map(i=>i.value)};}function sendMailTo(to,subject,lines,close){if(!to){alert(\"No recipient email is configured. Set 'Listing Request Email' (and 'Enquiry Email') in the component settings.\");return;}window.location.href=\"mailto:\"+to+\"?subject=\"+encodeURIComponent(subject)+\"&body=\"+encodeURIComponent(lines.join(\"\\n\"));close();}function sendMail(subject,lines,close){sendMailTo(formRecipientEmail,subject,lines,close);}function submitRow(modal,text,onSubmit){const err=el(\"div\",\"sp-err\");modal.appendChild(err);const row=el(\"div\",\"sp-row\");const cancel=el(\"button\",\"sp-btn sp-btn-outline\");cancel.style.color=\"#111\";cancel.textContent=\"Cancel\";cancel.addEventListener(\"click\",()=>document.getElementById(\"sp-modal-overlay\")?.remove());const submit=el(\"button\",\"sp-btn sp-btn-primary\");submit.textContent=text;submit.addEventListener(\"click\",()=>onSubmit(err,submit));row.appendChild(cancel);row.appendChild(submit);modal.appendChild(row);return submit;}const v=id=>{const n=document.getElementById(id);return n&&n.value?String(n.value).trim():\"\";};// Sends the lead to the Stacked API, which works out the partner and\n// package from the slug and writes the row to Forms. Alerts come from\n// the Airtable automation on that table, not from this file.\nasync function postLead(payload){const res=await fetch(`${API_BASE}/api/lead`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(payload)});const data=await res.json().catch(()=>({}));if(!res.ok||!data.ok){const e=new Error(data.error||`Lead API error ${res.status}`);e.status=res.status;throw e;}return data;}function openClaim(p){openModal((modal,close)=>{const head=el(\"div\",\"sp-modal-head\");const h=el(\"h3\");h.textContent=\"Is this your business?\";const closeBtn=el(\"button\",\"sp-modal-close\");closeBtn.type=\"button\";closeBtn.textContent=\"Close\";closeBtn.setAttribute(\"aria-label\",\"Close claim form\");closeBtn.addEventListener(\"click\",()=>close());head.appendChild(h);head.appendChild(closeBtn);modal.appendChild(head);const sub=el(\"p\",\"sp-modal-sub\");sub.textContent=`Tell us a bit about yourself and we'll help you claim ${p.name}.`;modal.appendChild(sub);modal.appendChild(fieldEl({label:\"Your name\",id:\"cName\"}));modal.appendChild(fieldEl({label:\"Your work email\",type:\"email\",id:\"cEmail\",hint:\"Use an email on the company's domain so we can verify ownership quickly.\"}));modal.appendChild(fieldEl({label:\"Your role at the business\",id:\"cRole\",placeholder:\"e.g. Marketing Manager\"}));modal.appendChild(fieldEl({label:\"Anything else? (optional)\",type:\"textarea\",id:\"cNote\"}));submitRow(modal,\"Send claim request\",err=>{if(!v(\"cName\")||!v(\"cEmail\")){err.textContent=\"Please add your name and work email.\";err.style.display=\"block\";return;}const lines=[`Listing: ${p.name}`,`Page: ${location.href}`,``,`From: ${v(\"cName\")}`,`Email: ${v(\"cEmail\")}`];if(v(\"cRole\"))lines.push(`Role: ${v(\"cRole\")}`);if(v(\"cNote\"))lines.push(``,`Notes:`,v(\"cNote\"));sendMailTo(\"hello@wearestacked.io\",`Business claim: ${p.name}`,lines,close);});});}function openEdit(p,pools){openModal((modal,close)=>{modal.appendChild(el(\"h3\")).textContent=\"Edit your listing\";const sub=el(\"p\",\"sp-modal-sub\");sub.textContent=`Update anything below and send it over — we'll review and publish the changes to ${p.name}.`;modal.appendChild(sub);modal.appendChild(el(\"p\",\"sp-group-label\")).textContent=\"Who's requesting\";modal.appendChild(fieldEl({label:\"Your name\",id:\"eName\"}));modal.appendChild(fieldEl({label:\"Your work email\",type:\"email\",id:\"eEmail\"}));modal.appendChild(el(\"p\",\"sp-group-label\")).textContent=\"Listing content\";modal.appendChild(fieldEl({label:\"Summary\",id:\"eSummary\",value:p.summary,hint:\"One punchy sentence shown at the top of your listing.\"}));modal.appendChild(fieldEl({label:\"About\",type:\"textarea\",id:\"eAbout\",value:p.about,hint:\"What you do and who it's for. 2–3 short paragraphs; leave a blank line between them.\"}));const sol=checkGroup({label:\"Solution\",options:pools.solution,selected:p.solution,max:cap});const tech=checkGroup({label:\"Technology\",options:pools.technology,selected:p.technology,max:cap});const sec=checkGroup({label:\"Sector\",options:pools.sector,selected:p.sector,max:cap});modal.appendChild(sol.wrap);modal.appendChild(tech.wrap);modal.appendChild(sec.wrap);modal.appendChild(fieldEl({label:\"Support\",type:\"textarea\",id:\"eSupport\",value:p.support.join(\"\\n\"),hint:\"One per line. Support options you offer.\"}));modal.appendChild(el(\"p\",\"sp-group-label\")).textContent=\"Contact details\";modal.appendChild(fieldEl({label:\"Website\",type:\"url\",id:\"eWebsite\",value:p.website||\"\",hint:\"Shown to visitors once your listing is approved.\"}));modal.appendChild(fieldEl({label:\"Public email\",type:\"email\",id:\"eContactEmail\",value:p.email||\"\"}));modal.appendChild(fieldEl({label:\"Phone\",id:\"ePhone\",value:p.phone||\"\"}));submitRow(modal,\"Send edit request\",err=>{if(!v(\"eName\")||!v(\"eEmail\")){err.textContent=\"Please add your name and work email so we can confirm the changes.\";err.style.display=\"block\";return;}const lines=[`Listing edit request for: ${p.name}`,`Page: ${location.href}`,``,`Requested by: ${v(\"eName\")} <${v(\"eEmail\")}>`,``,`── Proposed content ──`,`Summary: ${v(\"eSummary\")}`,``,`About:`,v(\"eAbout\"),``,`Solution tags: ${sol.getValues().join(\", \")}`,`Technology tags: ${tech.getValues().join(\", \")}`,`Sector tags: ${sec.getValues().join(\", \")}`,``,`Support:`,...v(\"eSupport\").split(\"\\n\").map(s=>\"- \"+s.trim()).filter(s=>s!==\"- \"),``,`── Contact ──`,`Website: ${v(\"eWebsite\")}`,`Public email: ${v(\"eContactEmail\")}`,`Phone: ${v(\"ePhone\")}`];sendMail(`Listing edit request: ${p.name}`,lines,close);});});}// ── The lead form ─────────────────────────────────────────────────────\n// Only first name and work email are enforced; everything else is\n// optional so a curious operator is never blocked.\nfunction openEnquiry(p){openModal((modal,close)=>{const head=el(\"div\",\"sp-modal-head\");const h=el(\"h3\");h.textContent=`Interested in ${p.name}?`;const closeBtn=el(\"button\",\"sp-modal-close\");closeBtn.type=\"button\";closeBtn.textContent=\"Close\";closeBtn.setAttribute(\"aria-label\",\"Close enquiry form\");closeBtn.addEventListener(\"click\",()=>close());head.appendChild(h);head.appendChild(closeBtn);modal.appendChild(head);const sub=el(\"p\",\"sp-modal-sub\");sub.textContent=`Tell us a little about your setup and we'll introduce you to the right person at ${p.name}. No hard sell.`;modal.appendChild(sub);let enquiryType=ENQUIRY_TYPES[0];const typeWrap=el(\"div\",\"sp-field\");const typeLab=el(\"span\");typeLab.textContent=\"What are you after?\";typeWrap.appendChild(typeLab);const typeChips=el(\"div\",\"sp-chips\");ENQUIRY_TYPES.forEach(t=>{const chip=el(\"button\",\"sp-chip\"+(t===enquiryType?\" checked\":\"\"));chip.type=\"button\";const span=el(\"span\");span.textContent=t;chip.appendChild(span);chip.addEventListener(\"click\",()=>{enquiryType=t;Array.from(typeChips.children).forEach(k=>k.classList.remove(\"checked\"));chip.classList.add(\"checked\");});typeChips.appendChild(chip);});typeWrap.appendChild(typeChips);modal.appendChild(typeWrap);modal.appendChild(el(\"p\",\"sp-group-label\")).textContent=\"About you\";modal.appendChild(pairRow(fieldEl({label:\"First name\",id:\"qFirst\"}),fieldEl({label:\"Last name\",id:\"qLast\"})));modal.appendChild(pairRow(fieldEl({label:\"Work email\",type:\"email\",id:\"qEmail\"}),fieldEl({label:\"Phone\",type:\"tel\",id:\"qPhone\",placeholder:\"Optional\"})));modal.appendChild(fieldEl({label:\"Your job role\",id:\"qRole\",placeholder:\"e.g. Operations Director\"}));modal.appendChild(el(\"p\",\"sp-group-label\")).textContent=\"About your business\";modal.appendChild(pairRow(fieldEl({label:\"Company\",id:\"qCompany\"}),selectEl({label:\"Number of sites\",id:\"qSites\",options:SITE_BANDS})));modal.appendChild(selectEl({label:\"When are you looking to move?\",id:\"qTimeline\",options:TIMELINES}));modal.appendChild(fieldEl({label:\"Anything specific you'd like to see?\",type:\"textarea\",id:\"qMessage\",hint:`Optional. Helps ${p.name} come prepared.`}));modal.appendChild(honeypotEl());const privacy=el(\"p\",\"sp-privacy\");privacy.textContent=\"We'll share these details with the partner so they can get back to you.\";modal.appendChild(privacy);submitRow(modal,\"Send enquiry\",async(err,btn)=>{const first=v(\"qFirst\"),last=v(\"qLast\"),email=v(\"qEmail\");if(!first||!email||!/.+@.+\\..+/.test(email)){err.textContent=\"Please add your first name and a valid work email.\";err.style.display=\"block\";return;}err.style.display=\"none\";btn.disabled=true;btn.textContent=\"Sending…\";const payload={slug:p.slug,firstName:first,lastName:last,email,phone:v(\"qPhone\"),role:v(\"qRole\"),company:v(\"qCompany\"),sites:v(\"qSites\"),timeline:v(\"qTimeline\"),message:v(\"qMessage\"),enquiryType,company_website:v(\"qCompanyWebsite\")};try{if(isCanvas||!p.slug)throw new Error(\"Lead form is disabled on the canvas\");await postLead(payload);modal.innerHTML=\"\";modal.appendChild(el(\"h3\")).textContent=\"Thanks, that's on its way\";const done=el(\"p\",\"sp-modal-sub\");done.textContent=`We've passed your details to ${p.name}. Someone will be in touch shortly.`;modal.appendChild(done);const row=el(\"div\",\"sp-row\");const ok=el(\"button\",\"sp-btn sp-btn-primary\");ok.textContent=\"Done\";ok.addEventListener(\"click\",()=>close());row.appendChild(ok);modal.appendChild(row);}catch(e){// A validation problem the visitor can fix: say so and let them retry.\nif(e&&e.status===422){err.textContent=e.message;err.style.display=\"block\";btn.disabled=false;btn.textContent=\"Send enquiry\";return;}// Anything else: never lose the lead. Hand it to the\n// visitor's mail client addressed to Stacked.\nconst lines=[`Marketplace enquiry about: ${p.name}`,`Page: ${location.href}`,``,`From: ${first} ${last}`.trim(),`Email: ${email}`,payload.phone?`Phone: ${payload.phone}`:\"\",payload.company?`Company: ${payload.company}`:\"\",``,`Looking for: ${enquiryType}`,payload.role?`Job role: ${payload.role}`:\"\",payload.sites?`Sites: ${payload.sites}`:\"\",payload.timeline?`Timeline: ${payload.timeline}`:\"\",payload.message?`\nMessage:\n${payload.message}`:\"\"].filter(Boolean);sendMailTo(liteEmail,`Marketplace enquiry: ${p.name}`,lines,close);}});});}// ── Render the bento page ─────────────────────────────────────────────\nfunction renderPage(p,pools,main,contrast){const r=document.documentElement.style;r.setProperty(\"--main\",main);r.setProperty(\"--contrast\",contrast);r.setProperty(\"--bar-fill\",barFillColor||contrast);r.setProperty(\"--bar-track\",barTrackColor||mix(contrast,\"#ffffff\",.78));r.setProperty(\"--accent-soft\",mix(main,\"#ffffff\",.88));r.setProperty(\"--accent-mid\",mix(main,\"#ffffff\",.76));r.setProperty(\"--contrast-soft\",mix(contrast,\"#ffffff\",.88));r.setProperty(\"--contrast-mid\",mix(contrast,\"#ffffff\",.76));r.setProperty(\"--ink-accent\",textOnAccent||mix(main,\"#000000\",.5));r.setProperty(\"--ink-contrast\",textOnContrast||mix(contrast,\"#000000\",.5));root.innerHTML=\"\";const card=el(\"div\",\"sp-card\");card.style.background=cardBg;card.style.borderRadius=radPx+\"px\";card.style.padding=padPx+\"px\";const backRow=el(\"div\",\"sp-back-row\");const back=el(\"a\",\"sp-back\");back.href=marketplacePath;back.textContent=\"← Back to Marketplace\";applyStyle(back,fBack);if(backColor)back.style.color=backColor;backRow.appendChild(back);if(p.logo){const logo=el(\"img\",\"sp-logo\");logo.src=p.logo;logo.alt=p.name+\" logo\";backRow.appendChild(logo);}card.appendChild(backRow);const bento=el(\"div\",\"sp-bento\");// Identity tile\nconst id=el(\"div\",\"sp-tile sp-t-accent sp-c12\");const top=el(\"div\",\"sp-id-top\");const idLeft=el(\"div\",\"sp-id-left\");const name=el(\"h1\",\"sp-id-name\");name.textContent=p.name;applyStyle(name,fName);if(nameColor)name.style.color=nameColor;idLeft.appendChild(name);if(p.summary){const s=el(\"p\",\"sp-id-summary\");s.textContent=p.summary;applyStyle(s,fSummary);if(summaryColor)s.style.color=summaryColor;idLeft.appendChild(s);}const siteUrl=normalizeUrl(p.website);const ctaRow=el(\"div\",\"sp-btn-row\");if(websiteBtnOn&&siteUrl&&p.showWebsite){const w=el(\"a\",\"sp-btn sp-btn-primary\");w.href=siteUrl;w.target=\"_blank\";w.rel=\"noopener noreferrer\";w.textContent=\"Visit Website →\";applyStyle(w,fButton);if(buttonTextColor)w.style.color=buttonTextColor;ctaRow.appendChild(w);}else{const g=el(\"button\",\"sp-btn sp-btn-primary\");g.type=\"button\";g.textContent=\"Get in touch\";applyStyle(g,fButton);if(buttonTextColor)g.style.color=buttonTextColor;g.addEventListener(\"click\",()=>openEnquiry(p));ctaRow.appendChild(g);}idLeft.appendChild(ctaRow);top.appendChild(idLeft);if(p.approved){if(approvedBadge){const img=el(\"img\",\"sp-badge-img\");img.src=approvedBadge;img.alt=\"Approved partner\";img.style.width=badgePx+\"px\";img.style.height=badgePx+\"px\";top.appendChild(img);}else{top.appendChild(buildSeal());}}id.appendChild(top);bento.appendChild(id);// Stat tiles\nif(p.stats&&p.stats.length){const nStats=p.stats.length;const statSpan=nStats<=1?12:nStats===2?6:nStats===3?4:3;p.stats.forEach((s,i)=>{const isScoreStat=isSosScoreLabel(s.label);const styleClass=isScoreStat?\"sp-stat-score\":i%2===0?\"sp-t-accent-mid\":\"sp-t-contrast-mid\";const t=el(\"a\",\"sp-tile sp-stat sp-stat-link \"+styleClass);t.href=\"/contact\";t.setAttribute(\"aria-label\",`Get in touch about ${s.label}`);t.style.gridColumn=\"span \"+statSpan;const numEl=el(\"div\",\"sp-stat-num\");numEl.textContent=s.num;applyStyle(numEl,fStatNum);if(!isScoreStat&&statNumColor)numEl.style.color=statNumColor;const labEl=el(\"div\",\"sp-stat-label\");labEl.textContent=s.label;applyStyle(labEl,fStatLabel);if(!isScoreStat&&statLabelColor)labEl.style.color=statLabelColor;t.appendChild(numEl);t.appendChild(labEl);bento.appendChild(t);});}// Stacked-verified data pill\nif(p.stats&&p.stats.length){const vp=el(\"a\",\"sp-verified\");vp.href=methodUrl;vp.title=\"How the Stacked Score and operator data are collected\";vp.style.cssText=\"grid-column:1/-1;display:inline-flex;align-items:center;gap:7px;justify-self:start;background:rgba(62,35,112,0.06);color:rgb(62,35,112);border-radius:100px;padding:7px 13px;font-size:12px;font-weight:700;line-height:1;font-family:'DM Sans',sans-serif;\";vp.innerHTML='<svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" style=\"flex:none\"><path d=\"M12 2l7 3v6c0 4.5-3 8.5-7 9-4-.5-7-4.5-7-9V5l7-3z\"/><path d=\"M9 12l2 2 4-4\"/></svg><span>Stacked-verified data, live from operator audits</span><span class=\"sp-verified-sep\">\\xb7</span><span class=\"sp-verified-cta\"></span>';vp.querySelector(\".sp-verified-cta\").textContent=methodCta+\" →\";bento.appendChild(vp);}// Operators we’ve verified using it\nif(p.operatorNames&&p.operatorNames.length){const wrap=el(\"div\",\"sp-oplist\");wrap.style.cssText=\"grid-column:1/-1;margin-top:4px;\";const lab=el(\"div\");lab.textContent=\"Operators we’ve verified using it\";lab.style.cssText=\"font-size:12px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:rgba(62,35,112,0.55);margin-bottom:12px;font-family:'DM Sans',sans-serif;\";wrap.appendChild(lab);const sub=el(\"div\");sub.textContent=\"These are operators verified through Stacked audits, not the partner’s full customer list.\";sub.style.cssText=\"font-size:13px;line-height:1.45;color:rgba(62,35,112,0.68);margin-bottom:10px;font-family:'DM Sans',sans-serif;\";wrap.appendChild(sub);const grid=el(\"div\");grid.style.cssText=\"display:flex;flex-wrap:wrap;gap:8px;\";const names=p.operatorNames;names.slice(0,operatorVisibleCount).forEach(nm=>{const chip=el(\"div\");chip.style.cssText=\"display:inline-flex;align-items:center;background:rgb(209,182,254);border-radius:100px;padding:8px 16px;font-size:13px;font-weight:600;color:rgb(62,35,112);line-height:1.15;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'DM Sans',sans-serif;\";chip.textContent=nm;grid.appendChild(chip);});const remaining=names.length-operatorVisibleCount;if(remaining>0){const more=el(\"a\",\"sp-op-overflow\");more.href=operatorOverflowHref;more.textContent=`+${remaining}`;more.setAttribute(\"aria-label\",`See ${remaining} more operators`);more.title=\"Contact us for the full operator list\";grid.appendChild(more);}wrap.appendChild(grid);bento.appendChild(wrap);}// Main row\nconst mainRow=el(\"div\",\"sp-main-row\");const leftCol=el(\"div\",\"sp-left\");const embed=p.showVideo?getEmbedUrl(p.video):null;if(embed){const vid=el(\"div\",\"sp-tile sp-t-dark sp-video-tile\");const wrapV=el(\"div\",\"sp-video\");const iframe=el(\"iframe\");iframe.src=embed;iframe.setAttribute(\"allow\",\"autoplay; fullscreen; picture-in-picture\");iframe.setAttribute(\"allowfullscreen\",\"\");wrapV.appendChild(iframe);vid.appendChild(wrapV);leftCol.appendChild(vid);}if(p.showCaseStudies&&p.caseStudies&&p.caseStudies.length){const cs=el(\"div\",\"sp-tile sp-t-accent sp-cs-tile\");cs.appendChild(label(csTitle));const grid=el(\"div\",\"sp-cs-grid\");p.caseStudies.forEach(doc=>{const a=el(\"a\",\"sp-cs-card\");a.href=doc.url;a.target=\"_blank\";a.rel=\"noopener noreferrer\";a.setAttribute(\"aria-label\",`Open case study: ${doc.name} (PDF)`);const thumb=el(\"div\",\"sp-cs-thumb\");if(doc.thumb){const img=el(\"img\");img.src=doc.thumb;img.alt=\"\";img.loading=\"lazy\";thumb.appendChild(img);}else{thumb.innerHTML=PDF_ICON;}a.appendChild(thumb);const body=el(\"div\",\"sp-cs-body\");const nm=el(\"span\",\"sp-cs-name\");nm.textContent=doc.name;const cta=el(\"span\",\"sp-cs-cta\");cta.textContent=\"View PDF ↗\";body.appendChild(nm);body.appendChild(cta);a.appendChild(body);grid.appendChild(a);});cs.appendChild(grid);leftCol.appendChild(cs);}if(p.about){const about=el(\"div\",\"sp-tile sp-t-contrast\");about.appendChild(label(\"About\"));const body=el(\"div\",\"sp-about sp-about-body\");p.about.split(/\\n\\n+/).forEach(para=>{if(!para.trim())return;const pp=el(\"p\");pp.textContent=para.trim();applyStyle(pp,fAbout);if(aboutColor)pp.style.color=aboutColor;body.appendChild(pp);});about.appendChild(body);const aboutToggle=el(\"button\",\"sp-about-toggle\");aboutToggle.type=\"button\";aboutToggle.textContent=\"Show more\";aboutToggle.style.display=\"none\";aboutToggle.addEventListener(\"click\",()=>{const expanded=body.classList.toggle(\"expanded\");aboutToggle.textContent=expanded?\"Show less\":\"Show more\";});about.appendChild(aboutToggle);leftCol.appendChild(about);requestAnimationFrame(()=>{if(body.scrollHeight>body.clientHeight+2)aboutToggle.style.display=\"inline-block\";});}if(p.usage&&p.usage.length){const usage=el(\"div\",\"sp-tile sp-t-contrast\");usage.appendChild(label(usageTitle||\"What operators use it for\"));const max=Math.max(...p.usage.map(u=>Number(u.value)||0),1);p.usage.forEach(u=>{const val=Number(u.value)||0;const row=el(\"div\",\"sp-bar-row\");const labEl=el(\"span\",\"sp-bar-label\");labEl.textContent=u.label;applyStyle(labEl,fBarLabel);if(barLabelColor)labEl.style.color=barLabelColor;const track=el(\"span\",\"sp-bar-track\");const target=barScaleToMax?val/max*100:Math.min(100,Math.max(0,val));const fill=el(\"span\",\"sp-bar-fill\");requestAnimationFrame(()=>{fill.style.width=target+\"%\";});track.appendChild(fill);const valEl=el(\"span\",\"sp-bar-val\");valEl.textContent=val+\"%\";applyStyle(valEl,fBarVal);if(barValColor)valEl.style.color=barValColor;row.appendChild(labEl);row.appendChild(track);row.appendChild(valEl);usage.appendChild(row);});leftCol.appendChild(usage);}const leftTiles=Array.from(leftCol.children);const fillTarget=leftTiles.slice().reverse().find(n=>!n.classList.contains(\"sp-video-tile\")&&!n.classList.contains(\"sp-cs-tile\"));if(fillTarget)fillTarget.classList.add(\"sp-fill\");else if(leftTiles.length)leftTiles[leftTiles.length-1].classList.add(\"sp-fill\");mainRow.appendChild(leftCol);// Long sidebar\nconst side=el(\"div\",\"sp-tile sp-t-accent sp-sidebar\");if(p.showContact&&(p.email||p.phone)){const sec=el(\"div\",\"sp-subsec\");sec.appendChild(label(\"Contact\"));if(p.email){const a=el(\"a\");a.href=\"mailto:\"+p.email;a.textContent=p.email;applyStyle(a,fContact);if(contactColor)a.style.color=contactColor;const w=el(\"div\",\"sp-contact\");w.appendChild(a);sec.appendChild(w);}if(p.phone){const s=el(\"span\");s.textContent=p.phone;applyStyle(s,fContact);if(contactColor)s.style.color=contactColor;const w=el(\"div\",\"sp-contact\");w.appendChild(s);sec.appendChild(w);}side.appendChild(sec);}const tagSec=(lab,items,withIcon,scrollAfter)=>{if(!items||!items.length)return;const sec=el(\"div\",\"sp-subsec\");const lb=label(lab);if(scrollAfter&&items.length>scrollAfter){const c=el(\"span\",\"sp-tlabel-count\");c.textContent=\"  \"+items.length;lb.appendChild(c);}sec.appendChild(lb);const pills=el(\"div\",\"sp-pills\");items.forEach(x=>pills.appendChild(pill(x,withIcon)));sec.appendChild(pills);side.appendChild(sec);if(scrollAfter&&items.length>scrollAfter)capPillHeight(pills,scrollAfter);};tagSec(\"Solution\",p.solution,true);tagSec(\"Technology\",p.technology,false);tagSec(\"Sector\",p.sector,false);tagSec(\"Integration Partners\",p.integration,false,intVisible);if(p.support&&p.support.length){const sec=el(\"div\",\"sp-subsec\");sec.appendChild(label(\"Support\"));p.support.forEach(s=>{const i=el(\"span\",\"sp-support-item\");i.textContent=\"✓  \"+s;applyStyle(i,fSupport);if(supportColor)i.style.color=supportColor;sec.appendChild(i);});side.appendChild(sec);}side.appendChild(el(\"div\",\"sp-divider\"));const ctaSec=el(\"div\",\"sp-subsec\");ctaSec.appendChild(label(\"Interested?\"));{const g=el(\"button\",\"sp-btn sp-btn-primary sp-btn-block\");g.type=\"button\";g.textContent=\"Get in touch\";applyStyle(g,fButton);if(buttonTextColor)g.style.color=buttonTextColor;g.addEventListener(\"click\",()=>openEnquiry(p));ctaSec.appendChild(g);}const claim=el(\"button\",\"sp-btn sp-btn-outline sp-btn-block\");claim.textContent=\"Is this your business?\";applyStyle(claim,fButton);if(buttonTextColor)claim.style.color=buttonTextColor;claim.addEventListener(\"click\",()=>openClaim(p));ctaSec.appendChild(claim);if(editBtnOn){const edit=el(\"button\",\"sp-btn sp-btn-primary sp-btn-block\");edit.textContent=\"Edit your listing\";applyStyle(edit,fButton);if(buttonTextColor)edit.style.color=buttonTextColor;edit.addEventListener(\"click\",()=>openEdit(p,pools));ctaSec.appendChild(edit);}side.appendChild(ctaSec);mainRow.appendChild(side);bento.appendChild(mainRow);card.appendChild(bento);root.appendChild(card);}function showMessage(text,isError){const box=el(\"div\");box.style.cssText=isError?\"padding:32px;background:#fff5f5;border:1px solid #ffd0d0;border-radius:12px;font-family:sans-serif;font-size:14px;color:#cc0000;\":\"padding:60px 0;text-align:center;color:#999;font-family:sans-serif;\";box.textContent=text;root.innerHTML=\"\";root.appendChild(box);}if(isCanvas){renderPage(SAMPLE,SAMPLE_POOLS,mainColor,contrastColor);return;}const slug=getSlug();if(!slug){renderPage(SAMPLE,SAMPLE_POOLS,mainColor,contrastColor);return;}async function load(){try{const res=await fetch(`${API_BASE}/api/partner?slug=${encodeURIComponent(slug)}`);if(cancelled)return;if(res.status===404||res.status===400){showMessage(\"Partner not found.\",false);return;}if(!res.ok)throw new Error(`The listing couldn't load (error ${res.status}). Refresh the page to try again.`);const d=await res.json();if(cancelled)return;const p=fromApi(d);const pools={solution:arr(d.pools?.solution),technology:arr(d.pools?.technology),sector:arr(d.pools?.sector)};renderPage(p,pools,d.brandColor||mainColor,contrastColor);}catch(e){if(!cancelled)showMessage(e&&e.message?e.message:\"The listing couldn't load. Refresh the page to try again.\",true);}}load();return()=>{cancelled=true;};},[marketplacePath,methodUrl,methodCta,liteEmail,approvedBadge,badgePx,logoPx,websiteBtnOn,editBtnOn,csTitle,usageTitle,barScaleToMax,intVisible,mainColor,contrastColor,textOnAccent,textOnContrast,cardBg,padPx,radPx,bentoGap,tilePadding,tileRadius,mainRowGap,leftColGap,sidebarGap,backColor,nameColor,summaryColor,labelColor,statNumColor,statLabelColor,barLabelColor,barValColor,barFillColor,barTrackColor,aboutColor,contactColor,pillColor,supportColor,buttonTextColor,formRecipientEmail,cap,operatorVisibleCount,operatorOverflowHref,isCanvas,typography,colors,spacing]);const showFallback=!mounted&&!isCanvas&&!!seoName;return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\"},children:[showFallback?/*#__PURE__*/_jsx(SeoFallback,{name:seoName,summary:seoSummary,description:seoDescription,score:seoScore,reviews:seoReviews}):null,/*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{width:\"100%\",minHeight:showFallback?0:400}})]});}// ── Control helpers ──────────────────────────────────────────────────────────\nfunction num(title,defaultValue,min,max,step=1,unit=\"px\"){return{type:ControlType.Number,title,defaultValue,min,max,step,unit};}function grp(title,controls){return{type:ControlType.Object,title,buttonTitle:title,controls};}function color(title,defaultValue){return{type:ControlType.Color,title,defaultValue};}const caseOptions=[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"];const caseOptionTitles=[\"Default\",\"UPPERCASE\",\"lowercase\",\"Capitalize\"];function caseCtl(defaultValue=\"none\"){return{type:ControlType.Enum,title:\"Case\",options:caseOptions,optionTitles:caseOptionTitles,defaultValue};}function fontCtl(defaultValue,defaultFontType=\"sans-serif\"){return{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType,defaultValue};}function typeGroup(title,fontDefault,caseDefault=\"none\",fontType=\"sans-serif\"){return{type:ControlType.Object,title,buttonTitle:title,controls:{font:fontCtl(fontDefault,fontType),case:caseCtl(caseDefault)}};}addPropertyControls(StackedPartnerPage,{integrationVisible:{type:ControlType.Number,title:\"Integrations Visible\",defaultValue:10,min:3,max:40,step:1,displayStepper:true,description:\"Roughly how many integration pills show before the list becomes a scroll well.\",section:\"Content\"},usageTitle:{type:ControlType.String,title:\"Usage Title\",defaultValue:\"What operators use it for\",section:\"Content\"},barScaleToMax:{type:ControlType.Boolean,title:\"Usage: Scale To Largest\",defaultValue:false,description:\"Off = a bar is filled to its own percentage. On = the largest category fills the whole bar.\",section:\"Content\"},caseStudyTitle:{type:ControlType.String,title:\"Case Study Title\",defaultValue:\"Case studies\",section:\"Content\"},marketplacePath:{type:ControlType.String,title:\"Marketplace Path\",defaultValue:\"/marketplace\",section:\"Content\"},methodPath:{type:ControlType.String,title:\"Method Page Path\",defaultValue:\"/how-we-score\",description:\"Where the 'Stacked-verified data' pill links to.\",section:\"Content\"},methodLabel:{type:ControlType.String,title:\"Method Link Label\",defaultValue:\"How we score\",description:\"Text on the link at the end of the verified-data pill.\",section:\"Content\"},showWebsiteButton:{type:ControlType.Boolean,title:\"Show Visit Website Button\",defaultValue:false,description:\"Off (default) = hidden, and a 'Get in touch' button takes its place in the identity tile.\",section:\"Content\"},showEditButton:{type:ControlType.Boolean,title:\"Show Edit Listing Button\",defaultValue:false,description:\"Off (default) = the 'Edit your listing' button is hidden. The edit form itself is untouched.\",section:\"Content\"},approvedBadge:{type:ControlType.Image,title:\"Approved Badge\",description:\"Optional. Image/SVG approved stamp. Leave empty for the built-in frilled seal.\",section:\"Content\"},maxTags:{type:ControlType.Number,title:\"Max tags / group\",defaultValue:5,min:3,max:10,step:1,displayStepper:true,section:\"Content\"},operatorsVisible:{type:ControlType.Number,title:\"Operators Visible\",defaultValue:5,min:1,max:30,step:1,displayStepper:true,section:\"Content\"},operatorsOverflowLink:{type:ControlType.Link,title:\"Operators Overflow Link\",defaultValue:\"/contact\",section:\"Content\"},formRecipientEmail:{type:ControlType.String,title:\"Listing Request Email\",placeholder:\"you@yourcompany.com\",section:\"Content\"},liteEnquiryEmail:{type:ControlType.String,title:\"Enquiry Email\",defaultValue:\"hello@wearestacked.io\",description:\"Fallback only. Used if the lead API can't be reached, so a lead is never lost.\",section:\"Content\"},seoName:{type:ControlType.String,title:\"SEO: Name\",description:\"Connect to the Partners CMS 'Name' field. Rendered as the page H1 in the HTML crawlers read.\",section:\"SEO\"},seoSummary:{type:ControlType.String,title:\"SEO: Summary\",description:\"Connect to 'Summary'.\",section:\"SEO\"},seoDescription:{type:ControlType.String,displayTextArea:true,title:\"SEO: Description\",description:\"Connect to 'Description'.\",section:\"SEO\"},seoScore:{type:ControlType.Number,title:\"SEO: Operator score\",defaultValue:0,min:0,max:5,step:.1,description:\"Connect to 'SOS Score (manual)'.\",section:\"SEO\"},seoReviews:{type:ControlType.Number,title:\"SEO: Review count\",defaultValue:0,min:0,max:1e5,step:1,description:\"Connect to 'SOS Reviews (manual)'. Score and rating schema only show with 2+ reviews.\",section:\"SEO\"},spacing:{type:ControlType.Object,title:\"Spacing\",buttonTitle:\"Spacing\",section:\"Design\",controls:{card:grp(\"Card\",{padding:num(\"Padding\",24,0,120,2),radius:num(\"Radius\",28,0,64,2)}),bento:grp(\"Bento tiles\",{gap:num(\"Grid gap\",14,0,40,1),tilePadding:num(\"Tile padding\",24,0,60,1),tileRadius:num(\"Tile radius\",20,0,48,1)}),sections:grp(\"Section gaps\",{mainRowGap:num(\"Main row gap\",14,0,40,1),leftColGap:num(\"Left column gap\",14,0,40,1),sidebarGap:num(\"Sidebar gap\",22,0,48,1)}),badges:grp(\"Badge & logo\",{badgeSize:num(\"Approved badge size\",88,48,200,2),logoHeight:num(\"Logo height\",32,16,80,2)})}},typography:{type:ControlType.Object,title:\"Typography\",buttonTitle:\"Typography\",section:\"Design\",controls:{backLink:typeGroup(\"Back link\",{fontSize:14,fontWeight:500},\"none\"),idName:typeGroup(\"Partner name\",{fontSize:30,fontWeight:700},\"none\"),idSummary:typeGroup(\"Summary\",{fontSize:17,lineHeight:\"1.55em\"},\"none\"),sectionLabel:typeGroup(\"Section label\",{fontSize:11,fontWeight:700,letterSpacing:\"0.08em\"},\"uppercase\"),statNum:typeGroup(\"Stat number\",{fontSize:30,fontWeight:800},\"none\"),statLabel:typeGroup(\"Stat label\",{fontSize:12},\"none\"),barLabel:typeGroup(\"Usage bar label\",{fontSize:12},\"none\"),barVal:typeGroup(\"Usage bar value\",{fontSize:12,fontWeight:700},\"none\"),aboutBody:typeGroup(\"About body\",{fontSize:14,lineHeight:\"1.7em\"},\"none\"),contactText:typeGroup(\"Contact text\",{fontSize:14,fontWeight:600},\"none\"),pillText:typeGroup(\"Pill text\",{fontSize:12,fontWeight:600},\"none\"),supportItem:typeGroup(\"Support item\",{fontSize:13},\"none\"),buttonText:typeGroup(\"Button text\",{fontSize:14,fontWeight:600},\"none\")}},colors:{type:ControlType.Object,title:\"Colors\",buttonTitle:\"Colors\",section:\"Design\",controls:{mainColor:color(\"Main\",\"#E8440A\"),contrastColor:color(\"Contrast\",\"#0F766E\"),textOnAccent:{type:ControlType.Color,title:\"Text on Accent\",defaultValue:\"\",description:\"Font colour on main-colour tiles. Leave blank to auto-pick a dark tone.\"},textOnContrast:{type:ControlType.Color,title:\"Text on Contrast\",defaultValue:\"\",description:\"Font colour on contrast-colour tiles. Leave blank to auto-pick a dark tone.\"},cardBackground:color(\"Card Background\",\"#FFFFFF\"),backLinkColor:{type:ControlType.Color,title:\"Back link\",defaultValue:\"\"},idNameColor:{type:ControlType.Color,title:\"Partner name\",defaultValue:\"\"},idSummaryColor:{type:ControlType.Color,title:\"Summary\",defaultValue:\"\"},sectionLabelColor:{type:ControlType.Color,title:\"Section label\",defaultValue:\"\"},statNumColor:{type:ControlType.Color,title:\"Stat number\",defaultValue:\"\"},statLabelColor:{type:ControlType.Color,title:\"Stat label\",defaultValue:\"\"},barLabelColor:{type:ControlType.Color,title:\"Usage bar label\",defaultValue:\"\"},barValColor:{type:ControlType.Color,title:\"Usage bar value\",defaultValue:\"\"},barFillColor:{type:ControlType.Color,title:\"Usage bar fill\",defaultValue:\"\"},barTrackColor:{type:ControlType.Color,title:\"Usage bar track\",defaultValue:\"\"},aboutBodyColor:{type:ControlType.Color,title:\"About body\",defaultValue:\"\"},contactTextColor:{type:ControlType.Color,title:\"Contact text\",defaultValue:\"\"},pillTextColor:{type:ControlType.Color,title:\"Pill text\",defaultValue:\"\"},supportItemColor:{type:ControlType.Color,title:\"Support item\",defaultValue:\"\"},buttonTextColor:{type:ControlType.Color,title:\"Button text\",defaultValue:\"\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StackedPartnerPage\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Partner.map"],"mappings":"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"}