---
// Generated, escaped static markup. Use a distinct prefix for each instance.
const markup = "\u003csection class=\"fct-index-design-membership\" data-snippet=\"index-design-membership\" aria-labelledby=\"fct-index-design-membership-title\"\u003e\u003cdiv class=\"r-inner\"\u003e\u003cdiv class=\"r-pricing-top\"\u003e\u003cdiv\u003e\u003cspan class=\"r-micro\"\u003eINDEX / DESIGN PARTNERSHIPS\u003c/span\u003e\u003ch2 id=\"fct-index-design-membership-title\"\u003eDesign support.\u003cbr\u003e\u003cspan class=\"r-italic\"\u003eA clear arrangement.\u003c/span\u003e\u003c/h2\u003e\u003c/div\u003e\u003cdiv\u003e\u003cp\u003eTwo ways to bring considered design into your business. Clear scope. Direct collaboration.\u003c/p\u003e\u003cfieldset class=\"r-billing\"\u003e\u003clegend\u003eBilling period\u003c/legend\u003e\u003clabel\u003e\u003cinput type=\"radio\" name=\"fct-index-design-membership-billing\" value=\"monthly\" checked\u003e Monthly\u003c/label\u003e\u003clabel\u003e\u003cinput type=\"radio\" name=\"fct-index-design-membership-billing\" value=\"annual\"\u003e Annual\u003c/label\u003e\u003c/fieldset\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"r-plan-grid\"\u003e\u003carticle class=\"r-plan r-featured\"\u003e\u003cdiv class=\"r-plan-heading\"\u003e\u003cspan class=\"r-micro\"\u003e01 / An ongoing partnership\u003c/span\u003e\u003cspan class=\"r-plan-symbol\" aria-hidden=\"true\"\u003e✳\u003c/span\u003e\u003c/div\u003e\u003ch3\u003eStudio membership\u003c/h3\u003e\u003cp class=\"r-plan-description\"\u003eFor teams that need a steady creative partner.\u003c/p\u003e\u003cdiv class=\"r-price\"\u003e\u003cstrong data-price=\"1800\" data-annual=\"18000\"\u003e€1,800\u003c/strong\u003e\u003cspan data-billing-note\u003eper month\u003c/span\u003e\u003c/div\u003e\u003ca class=\"r-pill\" href=\"contact.html\"\u003eDiscuss membership \u003cspan aria-hidden=\"true\"\u003e↗\u003c/span\u003e\u003c/a\u003e\u003cdiv class=\"r-inclusions\"\u003e\u003cspan class=\"r-micro\"\u003eThe working rhythm\u003c/span\u003e\u003cul\u003e\u003cli\u003eOne active project at a time\u003c/li\u003e\u003cli\u003eBrand, digital and everyday design\u003c/li\u003e\u003cli\u003eRegular planning and review\u003c/li\u003e\u003cli\u003eSource files and documented handover\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/article\u003e\u003carticle class=\"r-plan r-project\"\u003e\u003cspan class=\"r-micro\"\u003e02 / A defined piece of work\u003c/span\u003e\u003ch3\u003eOne good project.\u003c/h3\u003e\u003cp\u003eA clear beginning, an agreed scope and a complete handover.\u003c/p\u003e\u003cdiv class=\"r-project-price\"\u003e\u003cspan\u003eProjects from\u003c/span\u003e\u003cstrong\u003e€3,200\u003c/strong\u003e\u003cspan\u003eone-off sample price\u003c/span\u003e\u003c/div\u003e\u003ca class=\"r-link\" href=\"contact.html\"\u003eTalk through your project \u003cspan aria-hidden=\"true\"\u003e↗\u003c/span\u003e\u003c/a\u003e\u003cp class=\"r-project-note\"\u003eA useful route for an identity, a website or a focused launch.\u003c/p\u003e\u003c/article\u003e\u003c/div\u003e\u003cdiv class=\"r-pricing-bottom\"\u003e\u003cp role=\"status\" class=\"r-price-status\"\u003eSample monthly membership pricing. Replace prices and terms before publication.\u003c/p\u003e\u003cp\u003eAll figures are editable examples.\u003cbr\u003eTax treatment and final scope must be specified.\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\u003c/section\u003e";
---
<Fragment set:html={markup} />
<style is:global>
@font-face{font-family:'fct-index-design-membership-sans';src:url('/snippet-assets/index-design-membership/fonts/instrument-sans-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:'fct-index-design-membership-sans';src:url('/snippet-assets/index-design-membership/fonts/instrument-sans-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:'fct-index-design-membership-serif';src:url('/snippet-assets/index-design-membership/fonts/instrument-serif-400-italic.woff2') format('woff2');font-style:italic;font-display:swap}@font-face{font-family:'fct-index-design-membership-display';src:url('/snippet-assets/index-design-membership/fonts/barlow-condensed-700.woff2') format('woff2');font-weight:700;font-display:swap}.fct-index-design-membership{--paper:#f0eee6;--ink:#252a25;--accent:#e1e56b;background:var(--paper);color:var(--ink);font:16px/1.6 'fct-index-design-membership-sans',Arial,sans-serif}.fct-index-design-membership,.fct-index-design-membership *{box-sizing:border-box}.fct-index-design-membership :is(h2,h3,p,figure,ul){margin:0}.fct-index-design-membership :is(h2,h3){line-height:1.05;font-weight:400;letter-spacing:-.055em}.fct-index-design-membership a{color:inherit;text-underline-offset:5px}.fct-index-design-membership button,.fct-index-design-membership input,.fct-index-design-membership select,.fct-index-design-membership textarea{font:inherit}.fct-index-design-membership :is(a,button,summary,input,select,textarea):focus-visible{outline:3px solid #285331;outline-offset:4px}.fct-index-design-membership .r-inner{max-width:1440px;margin:auto;padding:48px clamp(20px,4vw,64px)}.fct-index-design-membership .r-micro{font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase}.fct-index-design-membership .r-rule{border-top:1px solid #252a2555}.fct-index-design-membership .r-link{display:inline-flex;min-height:48px;align-items:center;justify-content:space-between;gap:25px;text-decoration:none;border-bottom:1px solid currentColor;padding:10px 0}.fct-index-design-membership .r-pill{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border:1px solid currentColor;border-radius:100px;color:inherit;background:transparent;text-decoration:none;cursor:pointer}.fct-index-design-membership .r-italic{font-family:'fct-index-design-membership-serif',Georgia,serif;font-style:italic}.fct-index-design-membership .r-muted{color:#565e54}.fct-index-design-membership img{display:block;max-width:100%;height:auto}.fct-index-design-membership .r-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.fct-index-design-membership{--paper:#f2efb3;--ink:#272b26}.fct-index-design-membership .r-inner{padding-block:60px}.fct-index-design-membership .r-pricing-top{display:grid;grid-template-columns:1.4fr .8fr;gap:80px;align-items:end;margin-bottom:48px}.fct-index-design-membership h2{font-size:clamp(3rem,5.8vw,6rem);margin-top:28px;line-height:.98}.fct-index-design-membership .r-pricing-top>div>p{max-width:37ch;font-size:1.125rem}.fct-index-design-membership .r-billing{display:flex;gap:6px;border:0;padding:5px;margin:25px 0 0;background:#dfdf9c;border-radius:100px;width:fit-content}.fct-index-design-membership .r-billing legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.fct-index-design-membership .r-billing label{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 18px;cursor:pointer;border-radius:100px;font-size:.9375rem}.fct-index-design-membership .r-billing label:has(input:checked){background:#fffef0}.fct-index-design-membership .r-billing input{width:16px;height:16px;accent-color:#3f572f}.fct-index-design-membership .r-plan-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.fct-index-design-membership .r-plan{padding:38px;border-radius:4px;min-width:0}.fct-index-design-membership .r-featured{background:#272b26;color:#faf8e9}.fct-index-design-membership .r-featured a:focus-visible{outline-color:#f2efb3}.fct-index-design-membership .r-plan-heading{display:flex;justify-content:space-between;align-items:center}.fct-index-design-membership .r-plan-symbol{font-size:3.2rem;color:#e3e576;line-height:1}.fct-index-design-membership h3{font-size:clamp(2rem,3.3vw,3.3rem);margin-top:40px;max-width:14ch}.fct-index-design-membership .r-plan-description{margin-top:16px;color:#d1d5c8}.fct-index-design-membership .r-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin:35px 0 25px}.fct-index-design-membership .r-price strong{font-size:clamp(3.1rem,5vw,5.8rem);font-weight:400;letter-spacing:-.06em;line-height:1;overflow-wrap:anywhere}.fct-index-design-membership .r-price span{font-size:.875rem;color:#d1d5c8;max-width:230px}.fct-index-design-membership .r-featured .r-pill{background:#e3e576;color:#272b26;border-color:#e3e576;justify-content:space-between;width:100%}.fct-index-design-membership .r-inclusions{border-top:1px solid #858b7c;margin-top:32px;padding-top:25px}.fct-index-design-membership ul{padding:16px 0 0;list-style:none;line-height:2}.fct-index-design-membership li:before{content:'↗';margin-right:15px;color:#e3e576}.fct-index-design-membership .r-project{background:#fffef0;display:flex;flex-direction:column}.fct-index-design-membership .r-project h3{font-family:'fct-index-design-membership-serif',Georgia,serif;font-style:italic;font-size:clamp(2.5rem,4vw,4rem)}.fct-index-design-membership .r-project>p{margin-top:20px;max-width:30ch}.fct-index-design-membership .r-project-price{display:flex;flex-direction:column;gap:6px;margin:40px 0 25px}.fct-index-design-membership .r-project-price strong{font-size:3rem;line-height:1.2;letter-spacing:-.05em;font-weight:400}.fct-index-design-membership .r-project-price span{font-size:.875rem}.fct-index-design-membership .r-project-note{margin-top:auto!important;padding-top:35px;font-size:.9375rem;color:#565e54}.fct-index-design-membership .r-pricing-bottom{display:flex;justify-content:space-between;gap:35px;font-size:.8125rem;margin-top:25px}.fct-index-design-membership .r-pricing-bottom>p{max-width:55ch}@media(max-width:800px){.fct-index-design-membership .r-pricing-top,.fct-index-design-membership .r-plan-grid{grid-template-columns:1fr;gap:30px}.fct-index-design-membership .r-inner{padding-block:40px}.fct-index-design-membership .r-pricing-top{gap:25px}.fct-index-design-membership h2{font-size:clamp(3.1rem,11vw,5rem)}.fct-index-design-membership .r-plan{padding:26px}.fct-index-design-membership .r-price strong{font-size:3.7rem}.fct-index-design-membership .r-pricing-bottom{flex-direction:column;gap:12px}.fct-index-design-membership h3{margin-top:30px}}
</style>
<script is:inline>
(()=>{for(const root of document.querySelectorAll('[data-snippet="index-design-membership"]')){if(root.dataset.initialized)continue;root.dataset.initialized='true';for(const input of root.querySelectorAll('.r-billing input'))input.addEventListener('change',()=>{const annual=input.value==='annual',price=root.querySelector('[data-price]'),amount=annual?Number(price.dataset.annual)/12:Number(price.dataset.price);price.textContent=new Intl.NumberFormat('en-IE',{style:'currency',currency:'EUR',maximumFractionDigits:0}).format(amount);root.querySelector('[data-billing-note]').textContent=annual?'monthly equivalent · €18,000 billed annually':'per month';root.querySelector('[role=status]').textContent=annual?'Sample membership: €18,000 billed annually, equivalent to €1,500 per month.':'Sample membership: €1,800 billed monthly.';});}})();
</script>
Where this design fits
A pale yellow introductory panel provides context before a large featured plan and a quieter alternative. Pricing is presented with precise billing labels and editable scope, informed by actual subscription and software pricing pages.
Asymmetric plan composition
Monthly and annual controls
Explicit billing totals
What is included
The HTML ZIP includes a standalone demo, reusable markup, scoped CSS, its small JavaScript runtime, a license and setup notes. The Astro ZIP includes Snippet.astro, self-hosted fonts and asset license notes. It can be imported into an existing Astro page or layout.
Replace the demonstration prices
Update every price, currency, billing period, inclusion and tax statement. Action links lead to your chosen enquiry or checkout destination; this snippet does not create subscriptions, process payments or enforce plan limits.
Add it to an HTML website
Copy snippet.html into the relevant page section.
Load snippet.css after your existing site stylesheet. The class prefix identifies this design.
Load snippet.js once with defer. Keep the included keyboard behavior when adapting interactions.
Replace example content and check mobile widths, zoom, links and keyboard focus in your actual website.
Use it in Astro
Copy Snippet.astro into src/components/, import it into your page or shared layout, and insert the component where the section belongs. Copy the fonts and any images folders into public/snippet-assets/index-design-membership/; the component uses those public paths. Keep each generated prefix unique if you duplicate a component on one page.
Keep the section maintainable
Start with the variables at the top of the CSS for background, text and accent colors. Preserve semantic labels and focus styles. Existing site selectors can still affect imported markup, so test the combined result. Read the complete setup notes.