{"version":3,"file":"SectionFeatureCardImageStack.CnyPs9Zm.mjs","names":["React.Fragment","Tokens","Tokens","TabInternal","Tokens","useMemo","useCallback","_Fragment","useRef","useMemo","useId","useState","x","useState","useRef","useLayoutEffect","useEffect","LiquidGlassInternal","Tokens","useMemo","useId","useCallback","LiquidGlass","Tokens","LiquidGlassSurface","useMemo","LiquidGlass","Tokens","React.Fragment","LiquidGlassSurface","useRef","ImageInternal","useState","Tokens","_HINT_IMAGE_ALT","useRef","CardFeatureSplitInternal","Tokens","p","useRef","p","SectionFeatureCardImageStackInternal","useId","useState","heading","description","React.useMemo","React.useCallback","Tokens","useMemo"],"sources":["https:/framerusercontent.com/modules/JoOjyFlpGSMUJ782HrYl/eDQex6l2k4ChTrVg2IWE/injectBreakpointIntoCmsSlot.js","https:/framerusercontent.com/modules/RmN61z15fCdVprMnjOlR/v3xJUX5hd8e0iGkuHZYh/sectionCopyTypography.js","https:/framerusercontent.com/modules/I2aetWBGnJ2PtHqP9vUx/gBqJ4oOz7j2nUTVYhJnw/sectionHeaderCopy.js","https:/framerusercontent.com/modules/j3TVgW5llQakiMrYRvW0/av33DQSlyg7x2rEkQgpQ/Tab.js","https:/framerusercontent.com/modules/Wgq6KOAh63wsfhwspJFq/xoty6hVVIe7ZSZhwrpOX/TabsGroup.js","https:/framerusercontent.com/modules/ljOTjam9eoOyUTzyVtTs/5wvhkzDhwABbwDMOUayC/LiquidGlass.js","https:/framerusercontent.com/modules/4n3fdr0QdOT1Bt8mCn1L/IaapZHdQpMAxwphT9ztr/LiquidGlassSurface.js","https:/framerusercontent.com/modules/r2xtYErCxNjfPDPT3IRR/wYDfQlP0YfKuaLssIjDs/cardSurface.js","https:/framerusercontent.com/modules/cyGmgQReYxM74CJs0WW6/IaBl4aRmvHjipJBg6Oy5/useCmsFeaturedArticleSlot.js","https:/framerusercontent.com/modules/bqYIcxbJlyzYlNmT2Fk4/UkHImJPOe8TOnpVtDScu/Image.js","https:/framerusercontent.com/modules/yBBYnuyRsa8SwEozWRDp/Ck8tGu4jq8GhMssnJS26/CardFeatureSplit.js","https:/framerusercontent.com/modules/Khf7wgSDZ3rltzJPhrHA/1jqInPa7zuwwQaJQk4zT/SectionFeatureCardImageStack.js"],"sourcesContent":["import*as React from\"react\";/**\n * Walks Framer CMS slot content and injects the parent section breakpoint into\n * nested code components so collection-list cards match the section canvas control.\n */export function injectBreakpointIntoCmsSlot(node,breakpoint){if(Array.isArray(node)){return node.map(child=>injectBreakpointIntoCmsSlot(child,breakpoint));}if(!/*#__PURE__*/React.isValidElement(node)){return node;}const nextChildren=node.props.children!=null?injectBreakpointIntoCmsSlot(node.props.children,breakpoint):node.props.children;const isCustomComponent=typeof node.type!==\"string\"&&node.type!==React.Fragment;const hasResponsiveBreakpoint=Object.prototype.hasOwnProperty.call(node.props,\"breakpoint\");const nextProps={};if(isCustomComponent){// canvasBreakpoint is not a Framer control — CMS item templates cannot override it.\nnextProps.canvasBreakpoint=breakpoint;}if(hasResponsiveBreakpoint||isCustomComponent){nextProps.breakpoint=breakpoint;}if(nextChildren!==node.props.children){nextProps.children=nextChildren;}if(Object.keys(nextProps).length===0){return node;}return /*#__PURE__*/React.cloneElement(node,nextProps);}\nexport const __FramerMetadata__ = {\"exports\":{\"injectBreakpointIntoCmsSlot\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./injectBreakpointIntoCmsSlot.map","import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";/**\n * Default in-page section headline (centered Section* organisms).\n * Pair with {@link supportingTextTypographyPath} → `/Subheadline/MD`.\n */export const SECTION_CTA_HEADLINE_2XL_PATH=\"/Headline 2XL/Heavy\";/** Alias for {@link SECTION_CTA_HEADLINE_2XL_PATH}. */export const SECTION_STANDARD_HEADLINE_PATH=SECTION_CTA_HEADLINE_2XL_PATH;/** Page masthead headline (`SectionHeader*`, hero blocks). Pairs with `/Subheadline/LG`. */export const SECTION_PAGE_HEADER_HEADLINE_PATH=\"/Headline 3XL/Heavy\";/** {@link SectionCtaBlockSecondary} and {@link SectionCtaAlert} headline token. */export const SECTION_CTA_HEADLINE_XL_PATH=\"/Headline XL/Heavy\";/**\n * Maps a section headline token to its supporting-text token.\n *\n * Supporting text follows the brand subheadline role (~60% of headline, Regular 400).\n * Pairings match `documentation/design/design-system.md` (Subheadlines table).\n */export function supportingTextTypographyPath(headlinePath){if(headlinePath.includes(\"4XL\")||headlinePath.includes(\"3XL\")){return\"/Subheadline/LG\";}if(headlinePath.includes(\"2XL\")||headlinePath.includes(\"XL\")){return\"/Subheadline/MD\";}if(headlinePath.includes(\"/Headline L/\")||headlinePath.includes(\"/Headline M/\")){return\"/Subheadline/SM\";}return\"/Subheadline/SM\";}/**\n * Resolved CSS typography for a section headline.\n */export function getHeadlineTypographyStyles(headlinePath,breakpoint){const styles=Tokens.getTypographyStyles(headlinePath,breakpoint);if(styles){return styles;}return Tokens.getTypographyStyles(SECTION_CTA_HEADLINE_2XL_PATH,breakpoint);}/**\n * Resolved CSS typography for supporting text under a section headline.\n * Always paired to `headlinePath` via {@link supportingTextTypographyPath}.\n */export function getSupportingTextTypographyStyles(headlinePath,breakpoint){const path=supportingTextTypographyPath(headlinePath);const styles=Tokens.getTypographyStyles(path,breakpoint);if(styles){return styles;}return Tokens.getTypographyStyles(\"/Subheadline/MD\",breakpoint);}\nexport const __FramerMetadata__ = {\"exports\":{\"getHeadlineTypographyStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_CTA_HEADLINE_XL_PATH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_STANDARD_HEADLINE_PATH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_PAGE_HEADER_HEADLINE_PATH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSupportingTextTypographyStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_CTA_HEADLINE_2XL_PATH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"supportingTextTypographyPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Standard centered section header copy (headline + subheadline).\n *\n * Use for in-page `Section*` organisms: marketing blocks, feature rows, FAQs, grids, etc.\n * Do **not** use for page mastheads (`SectionHeader*`, hero overlays, blog post headers);\n * those use {@link SECTION_PAGE_HEADER_HEADLINE_PATH} (3XL + LG) or bespoke hero tokens.\n */import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{getCopyStackGap}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";import{SECTION_STANDARD_HEADLINE_PATH,getHeadlineTypographyStyles,getSupportingTextTypographyStyles}from\"https://framerusercontent.com/modules/RmN61z15fCdVprMnjOlR/v3xJUX5hd8e0iGkuHZYh/sectionCopyTypography.js\";export{SECTION_STANDARD_HEADLINE_PATH,SECTION_PAGE_HEADER_HEADLINE_PATH}from\"https://framerusercontent.com/modules/RmN61z15fCdVprMnjOlR/v3xJUX5hd8e0iGkuHZYh/sectionCopyTypography.js\";/**\n * Centered stack layout capped at width-xl (768px) for headline and subheadline.\n */export function getCenteredSectionHeaderStackLayout(breakpoint,options){return{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",textAlign:\"center\",gap:getCopyStackGap(breakpoint),width:\"100%\",maxWidth:Tokens.getWidthValue(\"width-xl\"),marginLeft:\"auto\",marginRight:\"auto\",...options?.marginBottom!==undefined?{marginBottom:options.marginBottom}:{}};}/** Standard section headline styles (2XL Heavy). */export function getStandardSectionHeadlineStyles(breakpoint){return{...getHeadlineTypographyStyles(SECTION_STANDARD_HEADLINE_PATH,breakpoint),margin:0,width:\"100%\",textAlign:\"center\"};}/** Standard section subheadline styles (MD), paired to 2XL per design system. */export function getStandardSectionSubheadlineStyles(breakpoint){return{...getSupportingTextTypographyStyles(SECTION_STANDARD_HEADLINE_PATH,breakpoint),margin:0,width:\"100%\",textAlign:\"center\"};}\nexport const __FramerMetadata__ = {\"exports\":{\"SECTION_PAGE_HEADER_HEADLINE_PATH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_STANDARD_HEADLINE_PATH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStandardSectionHeadlineStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCenteredSectionHeaderStackLayout\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStandardSectionSubheadlineStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Tab - Tab item component.\n *\n * Individual tab item component with active/inactive states (background variant),\n * and support for both URL navigation and content switching.\n *\n * @framerIntrinsicWidth 120\n * @framerIntrinsicHeight 48\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{forwardRef,useCallback,useMemo}from\"react\";/**\n * Stable, page-wide `@keyframes` name for the auto-advance progress fill.\n *\n * The animation is identical for every Tab instance (`width: 0% → 100%` linear),\n * so a single global name is safe. Earlier we generated a per-instance name from\n * `useId()`, which produced different ids for each Framer breakpoint variant on\n * the server (`R75b7aamaop`, `R75bbaamaop`, …) but only one id on the client\n * (`rff`). The mismatched `<style>` text caused React #418/#422 hydration errors.\n * Using a stable name makes SSR and hydrated HTML byte-identical.\n */const TAB_PROGRESS_KEYFRAMES_NAME=\"bunqTabTimedFill\";const TAB_PROGRESS_KEYFRAMES_RULE=`@keyframes ${TAB_PROGRESS_KEYFRAMES_NAME} { from { width: 0%; } to { width: 100%; } }`;// 2. Framer Motion (tab surface only; timed fill uses CSS like NavDots)\nimport{motion}from\"framer-motion\";// 3. Framer API\nimport{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{FRAMER_BREAKPOINT_DESCRIPTION,FRAMER_ON_CLICK_DESCRIPTION,FRAMER_THEME_DESCRIPTION_SURFACE_WITH_CHILDREN}from\"https://framerusercontent.com/modules/TvAAtdjNtwUg3Y1lriXj/Wh3HNug8gnAeRVrciJOW/propertyControlCopy.js\";// 4. Design system\nimport Tokens,{useReducedMotion,FONT_FAMILY_PRIMARY_STACK}from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";// 5. Local\nimport{useInteractiveStates}from\"https://framerusercontent.com/modules/U2JBkUXibY2YYWsHMAJo/3tlMH4hg7ehgZ4TLC0Va/useInteractiveStates.js\";import{processSVG}from\"https://framerusercontent.com/modules/keR2epPkn1MdvCLnDSBc/z4ga9Xl53MGZI0XlY2dd/svg.js\";import{getLinkUrl,useSmartLinkProps}from\"https://framerusercontent.com/modules/kNZJPvkIJZGGj8KxF53M/EVxL25LJacDR3InTjCol/linkHelpers.js\";import{getLiquidGlassFinish,LIQUID_GLASS_FILL_ALPHA,liquidGlassLegacyHighlightToVariant,toAccentGradient,withAlpha}from\"https://framerusercontent.com/modules/jkm3kn6MUCcPAZ8Vhc78/hXm1p6FV8ESByKH2k6R3/colorEffects.js\";/**\n * Tab `color` values that map to an accent fill (vs. the neutral\n * white/black tokens). Active tabs in this set get the Badge-style\n * top-darker → accent gradient; everything else stays flat so neutral\n * fills don't get an unintended-looking gradient.\n */const COLORED_TAB_COLORS=[\"yellow\",\"deep-yellow\",\"orange\",\"red\",\"hot-pink\",\"fuchsia\",\"purple\",\"deep-purple\",\"indigo\",\"deep-blue\",\"blue\",\"light-blue\",\"cyan\",\"turquoise\",\"green\",\"deep-green\"];const DEFAULT_ICON_SVG=`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7.09091C9.28878 7.09091 7.09091 9.28878 7.09091 12C7.09091 14.7112 9.28878 16.9091 12 16.9091C14.7112 16.9091 16.9091 14.7112 16.9091 12C16.9091 9.28878 14.7112 7.09091 12 7.09091ZM6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12Z\" fill=\"currentColor\"/></svg>`;const TabInternal=/*#__PURE__*/forwardRef(function TabInternal(props,ref){const{breakpoint=\"desktop\",label=\"Tab\",active=false,disabled=false,theme=\"default\",surface=\"liquid-glass\",color=\"white\",customIcon,link,openInNewTab=false,onClick,ariaControls,ariaLabel=\"Tab tab\",autoAdvanceMs,useTabRole=false,showIcon=true,style,...rest}=props;const isLiquidGlass=surface===\"liquid-glass\";const{isHovered,isFocused,isPressed,handlers}=useInteractiveStates(disabled);const isStaticRenderer=useIsStaticRenderer();const typography=Tokens.getTypographyStyles(\"/Button LG\",breakpoint);const fontSize=typography?.fontSize;const dimensions=useMemo(()=>({height:Tokens.getSpacing(48),paddingX:Tokens.getResponsiveSpacing(24,breakpoint),gap:Tokens.getResponsiveSpacing(8,breakpoint),iconSize:20,// Chip-family: always pill radius per design system exception.\n    borderRadius:Tokens.getRadius(\"radius-full\"),fontSize}),[fontSize,breakpoint]);const isInverted=theme===\"inverted\";const getAccentBackground=useCallback(()=>{const bgPath=`/Backgrounds/bg-${color}`;return Tokens.getColorValue(bgPath);},[color]);const getColors=()=>{const textPrimary=isInverted?Tokens.getColorValue(\"/Text/text-inverted-primary\"):Tokens.getColorValue(\"/Text/text-primary\");const textSecondary=isInverted?Tokens.getColorValue(\"/Text/text-inverted-secondary\"):Tokens.getColorValue(\"/Text/text-secondary\");const iconPrimary=isInverted?Tokens.getColorValue(\"/Foregrounds/fg-inverted-primary\"):Tokens.getColorValue(\"/Foregrounds/fg-primary\");const iconSecondary=isInverted?Tokens.getColorValue(\"/Foregrounds/fg-inverted-secondary\"):Tokens.getColorValue(\"/Foregrounds/fg-secondary\");const bgTertiary=isInverted?Tokens.getColorValue(\"/Backgrounds/bg-inverted-tertiary\"):Tokens.getColorValue(\"/Backgrounds/bg-tertiary\");const bgSecondary=isInverted?Tokens.getColorValue(\"/Backgrounds/bg-inverted-secondary\"):Tokens.getColorValue(\"/Backgrounds/bg-secondary\");if(active){if(COLORED_TAB_COLORS.includes(color)){return{text:textPrimary,icon:iconPrimary,background:getAccentBackground(),border:\"transparent\"};}return{text:textPrimary,icon:iconPrimary,background:bgTertiary,border:\"transparent\"};}return{text:textSecondary,icon:iconSecondary,background:bgSecondary,border:\"transparent\"};};const colors=getColors();const reducedMotion=useReducedMotion();// Liquid-glass treatment matches the `Badge` atom's CSS-only approach:\n// a translucent tint on top of `backdrop-filter`, plus inset highlights\n// and a hairline border for the lit-from-above reflection. We avoid the\n// heavier `LiquidGlassSurface` SVG primitive here because at tab size\n// (~48 px tall) a CSS finish reads crisper and keeps the accent color\n// dominant on the active tab.\n//\n// Active tabs share Badge's liquid-glass fill alpha (`LIQUID_GLASS_FILL_ALPHA`).\n// Inactive tabs use the same alpha\n// on the neutral `bgSecondary` fill so every tab in the strip reads as\n// a glass pill, with active vs inactive differentiated by color rather\n// than by surface treatment.\nconst tintedBackground=useMemo(()=>isLiquidGlass?withAlpha(colors.background,LIQUID_GLASS_FILL_ALPHA):colors.background,[isLiquidGlass,colors.background]);// A subtle top-darker → accent gradient is applied to active tabs that\n// use a colored swatch (matches the Badge atom's accent-gradient finish\n// — same direction, same lightness drop as Badge). Neutral fills (inactive tabs and\n// active tabs on white/black) stay flat: the gradient there would just\n// look like a smudge on a translucent wash.\nconst isAccentActive=active&&COLORED_TAB_COLORS.includes(color);const finalBackground=useMemo(()=>isAccentActive?toAccentGradient(tintedBackground):tintedBackground,[isAccentActive,tintedBackground]);// Highlight tone follows the theme (legacy: \"light\" → dark glass variant).\nconst isLightHighlight=!isInverted;const liquidGlassFinish=useMemo(()=>{if(!isLiquidGlass)return null;const neutralVariant=liquidGlassLegacyHighlightToVariant(isLightHighlight?\"light\":\"dark\");const variant=active&&isAccentActive?\"colored\":neutralVariant;const accentHint=variant===\"colored\"?getAccentBackground():undefined;// Match Badge colored glass: `selected: true` stacks\n// getLiquidGlassColoredButtonSelectionOverlay() (~70% white), which\n// washes accent RGB to flat light gray. Active state is already shown\n// via variant \"colored\" + accent tint, not that overlay.\nreturn getLiquidGlassFinish({variant,surface:\"button\",selected:false,accentColor:accentHint,baseFill:variant===\"colored\"?finalBackground:undefined});},[isLiquidGlass,isLightHighlight,active,isAccentActive,getAccentBackground,finalBackground]);const getIconSVG=()=>{if(!showIcon){return\"\";}if(customIcon&&customIcon.trim()&&customIcon.includes(\"<svg\")){return processSVG(customIcon.trim(),dimensions.iconSize,colors.icon);}else{return processSVG(DEFAULT_ICON_SVG,dimensions.iconSize,colors.icon);}};const handleClick=e=>{if(disabled){e.preventDefault();e.stopPropagation();return;}onClick?.(e);};// SmartLink wires this anchor into Framer's SPA router so internal links\n// navigate without reloading the preview iframe. `handleClick` runs first\n// as the user handler — when it calls `e.preventDefault()` (disabled\n// state), the hook bails on `e.defaultPrevented` and skips navigation.\nconst smartLink=useSmartLinkProps(link,openInNewTab,{onClick:handleClick});const linkUrl=smartLink.href;// Tab button/anchor style (merges base layout with dynamic values).\n// `overflow: hidden` clips the auto-advance progress overlay (and any\n// future inset visual layers) to the tab's pill radius.\nconst tabStyle={display:\"flex\",flexDirection:\"row\",alignItems:\"center\",justifyContent:\"center\",position:\"relative\",overflow:\"hidden\",border:\"none\",borderBottom:\"none\",outline:\"none\",userSelect:\"none\",fontFamily:`var(--cc-font-primary, ${FONT_FAMILY_PRIMARY_STACK})`,borderRadius:Tokens.getRadius(\"radius-full\"),transition:reducedMotion?\"none\":`${Tokens.getTransition(\"background\",\"quick\")}, ${Tokens.getTransition(\"color\",\"quick\")}, ${Tokens.getTransition(\"filter\",\"quick\")}, ${Tokens.getTransition(\"border\",\"quick\")}`,height:dimensions.height,minHeight:Tokens.getSpacing(48),padding:`0 ${dimensions.paddingX}`,gap:dimensions.gap,fontSize:dimensions.fontSize,fontWeight:typography?.fontWeight,background:finalBackground,color:colors.text,filter:Tokens.getBrightnessFilter(disabled,isHovered,isPressed),cursor:disabled?\"not-allowed\":\"pointer\",boxSizing:\"border-box\",// Tinted-glass finishing layer (backdrop-filter + inset highlights +\n// hairline border). Spread before `style` so editor overrides win.\n...liquidGlassFinish??null,...style};// Focus ring: fade in/out via opacity rather than `display: none` so the\n// ring eases on focus (matches the focus-ring fade in `useInteractive\n// States`-driven atoms). Reduced-motion users get the instant swap.\nconst focusRingStyle={position:\"absolute\",inset:`-${Tokens.getSpacing(2)}`,borderRadius:`calc(${Tokens.getRadius(\"radius-full\")} + ${Tokens.getSpacing(2)})`,border:`${Tokens.getFocusOutlineWidth()} solid ${Tokens.getColorValue(\"/Borders/border-brand-bunq\")}`,pointerEvents:\"none\",opacity:isFocused?1:0,transition:reducedMotion?\"none\":Tokens.getTransition(\"opacity\",\"quick\")};const iconStyle={display:\"flex\",alignItems:\"center\",height:`${dimensions.iconSize}px`,width:`${dimensions.iconSize}px`};const labelStyle={fontWeight:typography?.fontWeight,fontSize:dimensions.fontSize,color:colors.text,minWidth:0,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"};const containerStyle={position:\"relative\",display:\"inline-flex\"};const iconSVG=getIconSVG();const displayLabel=label.trim();// Use a single page-wide keyframes name (see TAB_PROGRESS_KEYFRAMES_NAME above).\n// Per-instance names from `useId()` mismatched between SSR (multiple breakpoint\n// variants → many ids) and client (one variant → one id), causing React #418.\nconst tabProgressKeyframesName=TAB_PROGRESS_KEYFRAMES_NAME;// Auto-advance progress: NavDots-style CSS `width` animation inside a\n// full-width overflow mask (percent widths resolve vs the mask, not flex text).\n// Framer-motion width/scaleX on children of motion.button was unreliable here.\nconst showAutoAdvanceProgress=active&&typeof autoAdvanceMs===\"number\"&&autoAdvanceMs>0&&!reducedMotion&&!isStaticRenderer;// Accent tabs: tint the timed sweep with the same swatch as the pill.\n// Neutral tabs: foreground-primary stays legible on tertiary glass.\nconst progressOverlayColor=useMemo(()=>{if(isAccentActive){return withAlpha(getAccentBackground(),isInverted?.42:.52);}const progressFillBase=Tokens.getColorValue(\"/Foregrounds/fg-primary\");return withAlpha(progressFillBase,isInverted?.38:.5);},[isAccentActive,getAccentBackground,isInverted]);const progressMaskStyle={position:\"absolute\",inset:0,borderRadius:Tokens.getRadius(\"radius-full\"),overflow:\"hidden\",pointerEvents:\"none\",zIndex:Tokens.getZIndex(\"base\")};const progressFillBarStyle={display:\"block\",height:\"100%\",width:\"0%\",margin:0,padding:0,border:\"none\",backgroundColor:progressOverlayColor,animation:`${tabProgressKeyframesName} ${autoAdvanceMs}ms linear forwards`};// Wrap icon/label so they share a single relatively-positioned layer that\n// paints above the absolute progress overlay regardless of z-index nuances.\nconst contentLayerStyle={position:\"relative\",zIndex:Tokens.getZIndex(\"raised\"),display:\"inline-flex\",flexDirection:\"row\",alignItems:\"center\",gap:dimensions.gap,minWidth:0,maxWidth:\"100%\"};const tabContent=/*#__PURE__*/_jsxs(_Fragment,{children:[showAutoAdvanceProgress&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:TAB_PROGRESS_KEYFRAMES_RULE}}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,style:progressMaskStyle,children:/*#__PURE__*/_jsx(\"span\",{style:progressFillBarStyle})})]}),/*#__PURE__*/_jsxs(\"span\",{style:contentLayerStyle,children:[iconSVG?/*#__PURE__*/_jsx(\"span\",{style:iconStyle,\"aria-hidden\":\"true\",dangerouslySetInnerHTML:{__html:iconSVG}}):null,displayLabel?/*#__PURE__*/_jsx(\"span\",{style:labelStyle,children:displayLabel}):null]})]});const computedAriaLabel=ariaLabel.trim()||(displayLabel?`${displayLabel} tab`:\"Tab\");const applyTabRole=useTabRole&&!linkUrl;const commonProps={...applyTabRole?{\"role\":\"tab\",\"aria-selected\":active,\"tabIndex\":disabled?-1:active?0:-1,\"aria-controls\":ariaControls||undefined}:{\"aria-controls\":ariaControls||undefined,\"tabIndex\":disabled?-1:0},\"aria-label\":computedAriaLabel,\"aria-disabled\":disabled,\"onMouseEnter\":handlers.onMouseEnter,\"onMouseLeave\":handlers.onMouseLeave,\"onMouseDown\":handlers.onMouseDown,\"onMouseUp\":handlers.onMouseUp,\"onFocus\":handlers.onFocus,\"onBlur\":handlers.onBlur,\"onClick\":handleClick,...rest};return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:focusRingStyle,\"aria-hidden\":\"true\"}),linkUrl?isStaticRenderer?/*#__PURE__*/_jsx(\"a\",{ref:ref,href:smartLink.href,target:smartLink.target,rel:smartLink.rel,style:{...smartLink.style,...tabStyle},...commonProps,onClick:smartLink.onClick,children:tabContent}):/*#__PURE__*/_jsx(motion.a,{ref:ref,href:smartLink.href,target:smartLink.target,rel:smartLink.rel,style:{...smartLink.style,...tabStyle},whileTap:undefined,...commonProps,onClick:smartLink.onClick,children:tabContent}):isStaticRenderer?/*#__PURE__*/_jsx(\"button\",{ref:ref,type:\"button\",style:tabStyle,...commonProps,children:tabContent}):/*#__PURE__*/_jsx(motion.button,{ref:ref,type:\"button\",style:tabStyle,whileTap:undefined,...commonProps,children:tabContent})]});});TabInternal.displayName=\"Tab Internal - Atom\";/** Plain function default export — required for Framer code-link registration (see `Button.tsx`). */export default function Tab(props){const{ref,...rest}=props;return /*#__PURE__*/_jsx(TabInternal,{...rest,ref:ref});}Tab.displayName=\"Tab - Atom\";addPropertyControls(Tab,{// ─── 1. Content ────────────────────────────────────────────────────────────\nlabel:{type:ControlType.String,title:\"Label\",defaultValue:\"Tab\",placeholder:\"Enter tab label...\",description:\"Type the short label on the tab—keep it brief; pair with ARIA Controls when you switch panels from code.\"},ariaLabel:{type:ControlType.String,title:\"ARIA Label\",defaultValue:\"Tab tab\",placeholder:\"e.g. Pricing tab\",description:\"Accessible name for the tab—defaults to “Label tab”; override when the spoken name should differ.\"},// ─── 2. Links ──────────────────────────────────────────────────────────────\nlink:{type:ControlType.Link,title:\"Link\",defaultValue:\"\",description:\"Add a URL to navigate when the tab is activated; leave empty when you only switch content with interactions.\"},openInNewTab:{type:ControlType.Boolean,title:\"Open in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Open link in a new browser tab.\",hidden:props=>!getLinkUrl(props.link)},// ─── 4. Icons ──────────────────────────────────────────────────────────────\ncustomIcon:{type:ControlType.String,title:\"Icon\",defaultValue:\"\",placeholder:\"Paste SVG code...\",description:\"Paste `<svg>...</svg>` when you need a glyph outside the default icon set; leave empty to show label only.\"},// ─── 6. Configuration ──────────────────────────────────────────────────────\ncolor:{type:ControlType.Enum,title:\"Color\",options:[\"white\",\"black\",\"yellow\",\"deep-yellow\",\"orange\",\"red\",\"hot-pink\",\"fuchsia\",\"purple\",\"deep-purple\",\"indigo\",\"deep-blue\",\"blue\",\"light-blue\",\"cyan\",\"turquoise\",\"green\",\"deep-green\"],optionTitles:[\"White\",\"Black\",\"Yellow\",\"Deep Yellow\",\"Orange\",\"Red\",\"Hot Pink\",\"Fuchsia\",\"Purple\",\"Deep Purple\",\"Indigo\",\"Deep Blue\",\"Blue\",\"Light Blue\",\"Cyan\",\"Turquoise\",\"Green\",\"Deep Green\"],defaultValue:\"white\",description:\"Accent/background color from the palette (used when active on colored tabs).\"},surface:{type:ControlType.Enum,title:\"Surface\",options:[\"solid\",\"liquid-glass\"],optionTitles:[\"Solid\",\"Liquid Glass\"],defaultValue:\"liquid-glass\",displaySegmentedControl:true,description:\"Tab background treatment — solid token fill vs translucent glass (backdrop blur + highlights), matching Badge liquid-glass.\"},active:{type:ControlType.Boolean,title:\"Active\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Turn on for the selected tab—use it to preview the active style or bind to your tab group state.\"},disabled:{type:ControlType.Boolean,title:\"Disabled\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Disable user interaction with the tab.\"},// ─── 7. Behavior ───────────────────────────────────────────────────────────\nonClick:{type:ControlType.EventHandler,title:\"On Click\",description:FRAMER_ON_CLICK_DESCRIPTION},autoAdvanceMs:{type:ControlType.Number,title:\"Auto Advance Duration\",min:0,step:100,displayStepper:true,defaultValue:0,description:\"When active, width-fills a progress overlay over this duration (ms). Use 0 to disable; suppressed when reduced motion is preferred.\"},useTabRole:{type:ControlType.Boolean,title:\"Tab Role\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Use tab semantics when this atom sits in a tab strip; turn off for standalone preview links.\"},ariaControls:{type:ControlType.String,title:\"ARIA Controls\",defaultValue:\"\",placeholder:\"Enter panel ID...\",description:\"ID of the tab panel controlled by this tab.\"},// ─── 9. Advanced ───────────────────────────────────────────────────────────\nid:{type:ControlType.String,title:\"Link ID\",defaultValue:\"tab\",placeholder:\"e.g. nav-cta-primary\",description:\"Unique ID for Contentsquare analytics (lowercase, hyphen-separated).\"},// ─── 10. System ────────────────────────────────────────────────────────────\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],displaySegmentedControl:false,defaultValue:\"desktop\",description:FRAMER_BREAKPOINT_DESCRIPTION},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"default\",\"inverted\"],optionTitles:[\"Default\",\"Inverted\"],displaySegmentedControl:true,defaultValue:\"default\",description:FRAMER_THEME_DESCRIPTION_SURFACE_WITH_CHILDREN}});\nexport const __FramerMetadata__ = {\"exports\":{\"TabColor\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TabSurface\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Tab\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"TabProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * TabsGroup - Tabs navigation group component.\n *\n * Composes multiple Tab atoms into a tab navigation component with active state management.\n * Supports both URL navigation and content switching, with keyboard navigation and accessibility.\n *\n * @framerIntrinsicWidth 600.\n * @framerIntrinsicHeight 48.\n * @framerSupportedLayoutWidth any-prefer-fixed.\n * @framerSupportedLayoutHeight any-prefer-fixed.\n */// 1. React and React types\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useRef,useState,useMemo,useEffect,useId}from\"react\";// 2. Framer Motion (not applicable for TabsGroup)\n// 3. Framer API\nimport{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{getGap}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";import{getLinkUrl}from\"https://framerusercontent.com/modules/kNZJPvkIJZGGj8KxF53M/EVxL25LJacDR3InTjCol/linkHelpers.js\";import{pickSafeDivProps,domIdFromUseId}from\"https://framerusercontent.com/modules/kDtm9rjjhstSjEsKiU59/FntwkS18vtdaa5Vgz0fk/domProps.js\";import{normalizeElementId,resolveIndexedElementId}from\"https://framerusercontent.com/modules/V8DZ1j6fmzxP1pB8h5BJ/sPSFCEug6lYXxMvPVu5Z/resolveElementId.js\";// 5. Hooks (not applicable for TabsGroup)\n// 6. Local utilities (not applicable for TabsGroup)\n// 7. Component imports\nimport Tab from\"https://framerusercontent.com/modules/j3TVgW5llQakiMrYRvW0/av33DQSlyg7x2rEkQgpQ/Tab.js\";/**\n * When neither `accentColor` nor `accentColors` is set, the active tab uses\n * this rotating palette so liquid-glass tabs show brand accents on canvas\n * (aligned with SectionFeatureImageTabs / SectionFeatureCardImageStack).\n */const DEFAULT_TAB_ACCENTS=[\"green\",\"blue\",\"orange\",\"purple\",\"turquoise\",\"fuchsia\"];/**\n * Default SVG icons per tab slot when no custom icon is set.\n * Each tab gets a unique icon (person, briefcase, people, flight, leaf, face) so tabs are visually distinct.\n * Uses fill=\"black\" so Tab's processSVG can apply theme color.\n */const DEFAULT_TAB_ICONS=[`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" fill=\"black\"/></svg>`,`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z\" fill=\"black\"/></svg>`,`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\" fill=\"black\"/></svg>`,`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\" fill=\"black\"/></svg>`,`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3C19 20 22 3 22 3c-1 2-8 2.25-13 3.25S2 11.5 2 13.5s1.75 3.75 1.75 3.75C7 8 17 8 17 8z\" fill=\"black\"/></svg>`,`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5-9c.83 0 1.5-.67 1.5-1.5S7.83 8 7 8s-1.5.67-1.5 1.5S6.17 11 7 11zm10 0c.83 0 1.5-.67 1.5-1.5S17.83 8 17 8s-1.5.67-1.5 1.5.67 1.5 1.5 1.5zm-5 6c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\" fill=\"black\"/></svg>`];/** Path data of Tab atom's default circle icon (hollow ring). If customIcon is this, use unique default instead. */const TAB_DEFAULT_CIRCLE_PATH=\"M12 7.09091C9.28878 7.09091 7.09091 9.28878 7.09091 12C7.09091 14.7112 9.28878 16.9091 12 16.9091C14.7112 16.9091 16.9091 14.7112 16.9091 12C16.9091 9.28878 14.7112 7.09091 12 7.09091ZM6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12Z\";const TAB_DEFAULT_CIRCLE_PATH_NORMALIZED=TAB_DEFAULT_CIRCLE_PATH.replace(/\\s+/g,\"\");function isTabDefaultCircleIcon(svg){if(!svg||!svg.trim()||!svg.includes(\"<svg\"))return true;const normalized=svg.replace(/\\s+/g,\"\");return normalized.includes(TAB_DEFAULT_CIRCLE_PATH_NORMALIZED);}/**\n * TabsInternal - Internal forwardRef component.\n *\n * This is the actual component implementation. Using forwardRef allows.\n * Proper ref forwarding for integration with Framer and parent components.\n */const TabsGroupInternal=/*#__PURE__*/forwardRef(function TabsInternal(props,ref){const{numTabs=3,defaultActiveTab=1,activeTab:activeTabProp,/**\n         * Tab1 label.\n         */tab1Label:_tab1Label=\"Tab 1\",tab1Link:_tab1Link=\"\",tab1CustomIcon:_tab1CustomIcon=\"\",tab1IconType:_tab1IconType=\"icon-none\",tab1Id:_tab1Id,tab2Label:_tab2Label=\"Tab 2\",tab2Link:_tab2Link=\"\",tab2CustomIcon:_tab2CustomIcon=\"\",tab2IconType:_tab2IconType=\"icon-none\",tab2Id:_tab2Id,tab3Label:_tab3Label=\"Tab 3\",tab3Link:_tab3Link=\"\",tab3CustomIcon:_tab3CustomIcon=\"\",tab3IconType:_tab3IconType=\"icon-none\",tab3Id:_tab3Id,tab4Label:_tab4Label=\"Tab 4\",tab4Link:_tab4Link=\"\",tab4CustomIcon:_tab4CustomIcon=\"\",tab4IconType:_tab4IconType=\"icon-none\",tab4Id:_tab4Id,tab5Label:_tab5Label=\"Tab 5\",tab5Link:_tab5Link=\"\",tab5CustomIcon:_tab5CustomIcon=\"\",tab5IconType:_tab5IconType=\"icon-none\",tab5Id:_tab5Id,tab6Label:_tab6Label=\"Tab 6\",tab6Link:_tab6Link=\"\",tab6CustomIcon:_tab6CustomIcon=\"\",tab6IconType:_tab6IconType=\"icon-none\",tab6Id:_tab6Id,theme=\"default\",surface=\"liquid-glass\",accentColor,accentColors,autoAdvanceMs,style,onChange,ariaLabel=\"Tabs navigation\",numPanelIds,panelId1,panelId2,panelId3,panelId4,panelId5,panelId6,ariaLabelledBy,breakpoint=\"desktop\",...rest}=props;const safeDomProps=useMemo(()=>pickSafeDivProps(rest),[rest]);const reactInstanceId=useId();const instanceId=normalizeElementId(safeDomProps.id)??domIdFromUseId(reactInstanceId,\"tabs-group\");const isStatic=useIsStaticRenderer();// Defensive clamp: the Framer property control declares min=2/max=6 but a\n// raw `props.numTabs` from CMS or programmatic consumers can still be out\n// of range (or non-finite). Clamp to 2-6 so the render loop, panel-id\n// arrays and `defaultActiveTab` math all stay within bounds.\nconst numTabsClamped=Math.max(2,Math.min(6,Number.isFinite(numTabs)?Math.floor(numTabs):3));const isControlled=typeof activeTabProp===\"number\"&&Number.isFinite(activeTabProp);const controlledIndex=isControlled?Math.max(0,Math.min(Math.floor(activeTabProp)-1,numTabsClamped-1)):0;const[uncontrolledIndex,setUncontrolledIndex]=useState(()=>Math.max(0,Math.min(defaultActiveTab-1,numTabsClamped-1)));const activeIndex=isControlled?controlledIndex:uncontrolledIndex;const containerRef=useRef(null);// Update active index when defaultActiveTab changes (uncontrolled only).\nuseEffect(()=>{if(isControlled)return;const newIndex=Math.max(0,Math.min(defaultActiveTab-1,numTabsClamped-1));setUncontrolledIndex(newIndex);},[defaultActiveTab,numTabsClamped,isControlled]);// Build tabs array from props.\nconst tabs=useMemo(()=>{const arr=[];for(let i=1;i<=numTabsClamped;i++){arr.push({/**\n                 * Label.\n                 */label:props[`tab${i}Label`]||`Tab ${i}`,/**\n                 * Link.\n                 */link:props[`tab${i}Link`]||undefined,/**\n                 * Custom icon.\n                 */customIcon:props[`tab${i}CustomIcon`]||undefined,/**\n                 * Icon type.\n                 */iconType:props[`tab${i}IconType`]||\"icon-none\",id:resolveIndexedElementId(props[`tab${i}Id`],instanceId,i-1,\"tab\")});}return arr;},[numTabsClamped,props,instanceId]);// Handle tab click.\nconst handleTabClick=index=>_e=>{if(isStatic){return;}else{if(!isControlled)setUncontrolledIndex(index);if(onChange){// Public API is 1-based (Tab 1, Tab 2, ...). Tests and Framer property controls expect this.\n    onChange(index+1);}// If tab has a link, navigation will happen automatically via the <a> tag.\n    // If no link, the onClick handler can be used for content switching.\n    }};// Keyboard navigation.\nconst handleKeyDown=e=>{if(isStatic){return;}else{let newIndex=activeIndex;switch(e.key){case\"ArrowLeft\":e.preventDefault();newIndex=activeIndex>0?activeIndex-1:tabs.length-1;break;case\"ArrowRight\":e.preventDefault();newIndex=activeIndex<tabs.length-1?activeIndex+1:0;break;case\"Home\":e.preventDefault();newIndex=0;break;case\"End\":e.preventDefault();newIndex=tabs.length-1;break;/**\n                 * Default.\n                 */default:return;}if(!isControlled)setUncontrolledIndex(newIndex);if(onChange){// Public API is 1-based (Tab 1, Tab 2, ...). Tests and Framer property controls expect this.\nonChange(newIndex+1);}// Focus the newly active tab.\nsetTimeout(()=>{if(containerRef.current){const tabElements=containerRef.current.querySelectorAll('[role=\"tab\"]');const targetTab=tabElements[newIndex];if(targetTab){targetTab.focus();}}},0);}};const containerStyle={display:\"flex\",flexDirection:\"row\",flexWrap:\"wrap\",justifyContent:\"center\",gap:getGap(\"sm\",breakpoint),width:\"100%\",minWidth:0,...style};return /*#__PURE__*/_jsx(\"div\",{ref:node=>{if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}containerRef.current=node;},role:\"tablist\",\"aria-label\":ariaLabelledBy?undefined:ariaLabel,\"aria-labelledby\":ariaLabelledBy,\"aria-orientation\":\"horizontal\",style:containerStyle,onKeyDown:handleKeyDown,...safeDomProps,id:instanceId,children:tabs.map((tab,index)=>{const isActive=activeIndex===index;// Only pass customIcon if iconType is not \"icon-none\".\nconst shouldShowIcon=tab.iconType!==\"icon-none\";const hasCustomIcon=tab.customIcon&&tab.customIcon.trim()!==\"\"&&tab.customIcon.includes(\"<svg\")&&!isTabDefaultCircleIcon(tab.customIcon);const iconToPass=shouldShowIcon?hasCustomIcon?tab.customIcon:DEFAULT_TAB_ICONS[index%DEFAULT_TAB_ICONS.length]:undefined;const panelIds=[panelId1,panelId2,panelId3,panelId4,panelId5,panelId6].slice(0,numPanelIds??0).filter(x=>typeof x===\"string\"&&x.length>0).map(id=>id.replace(/:/g,\"-\"));const panelId=panelIds[index];const baseColor=theme===\"inverted\"?\"white\":\"black\";const activeAccent=accentColors?.[index]??accentColor??DEFAULT_TAB_ACCENTS[index%DEFAULT_TAB_ACCENTS.length];const tabColor=isActive?activeAccent:baseColor;return /*#__PURE__*/_jsx(Tab,{breakpoint:breakpoint,label:tab.label,ariaLabel:tab.label,active:isActive,theme:theme,surface:surface,color:tabColor,customIcon:iconToPass,link:getLinkUrl(tab.link),onClick:handleTabClick(index),useTabRole:true,showIcon:tab.iconType!==\"icon-none\",autoAdvanceMs:autoAdvanceMs,id:tab.id,...panelId?{\"aria-controls\":panelId}:{}},`${index}-${isActive?activeIndex:\"x\"}`);})});});/**\n * Tabs - Wrapper component for Framer compatibility.\n *\n * This wrapper ensures the component works properly with Framer's.\n * component system and Property Controls.\n */export default function TabsGroup(props){const ref=useRef(null);return /*#__PURE__*/_jsx(TabsGroupInternal,{...props,ref:ref});}// Set display name for Framer.\nTabsGroup.displayName=\"Tabs Group - Molecule\";// Property Controls configuration for Framer.\naddPropertyControls(TabsGroup,{// ─── 5. Per-item groups ──\ntab1Label:{type:ControlType.String,title:\"Tab 1 Label\",defaultValue:\"Tab 1\",placeholder:\"Enter tab label...\",description:\"Label for tab 1\",hidden:({numTabs})=>(numTabs??3)<1},tab1Link:{type:ControlType.Link,title:\"Tab 1 Link\",defaultValue:\"\",description:\"Optional link URL.\",hidden:({numTabs})=>(numTabs??3)<1},tab1IconType:{type:ControlType.Enum,title:\"Tab 1 Icon Type\",options:[\"icon-leading\",\"icon-trailing\",\"icon-none\"],optionTitles:[\"Leading\",\"Trailing\",\"None\"],displaySegmentedControl:true,defaultValue:\"icon-none\",description:\"Icon placement for tab 1.\",hidden:({numTabs})=>(numTabs??3)<1},tab1CustomIcon:{type:ControlType.String,title:\"Tab 1 Icon\",defaultValue:\"\",placeholder:\"Paste SVG code…\",description:\"Custom icon SVG for tab 1\",hidden:({numTabs,tab1IconType})=>(numTabs??3)<1||tab1IconType===\"icon-none\"},tab2Label:{type:ControlType.String,title:\"Tab 2 Label\",defaultValue:\"Tab 2\",placeholder:\"Enter tab label...\",description:\"Label for tab 2\",hidden:({numTabs})=>(numTabs??3)<2},tab2Link:{type:ControlType.Link,title:\"Tab 2 Link\",defaultValue:\"\",description:\"Optional link URL.\",hidden:({numTabs})=>(numTabs??3)<2},tab2IconType:{type:ControlType.Enum,title:\"Tab 2 Icon Type\",options:[\"icon-leading\",\"icon-trailing\",\"icon-none\"],optionTitles:[\"Leading\",\"Trailing\",\"None\"],displaySegmentedControl:true,defaultValue:\"icon-none\",description:\"Icon placement for tab 2.\",hidden:({numTabs})=>(numTabs??3)<2},tab2CustomIcon:{type:ControlType.String,title:\"Tab 2 Icon\",defaultValue:\"\",placeholder:\"Paste SVG code…\",description:\"Custom icon SVG for tab 2\",hidden:({numTabs,tab2IconType})=>(numTabs??3)<2||tab2IconType===\"icon-none\"},tab3Label:{type:ControlType.String,title:\"Tab 3 Label\",defaultValue:\"Tab 3\",placeholder:\"Enter tab label...\",description:\"Label for tab 3\",hidden:({numTabs})=>(numTabs??3)<3},tab3Link:{type:ControlType.Link,title:\"Tab 3 Link\",defaultValue:\"\",description:\"Optional link URL.\",hidden:({numTabs})=>(numTabs??3)<3},tab3IconType:{type:ControlType.Enum,title:\"Tab 3 Icon Type\",options:[\"icon-leading\",\"icon-trailing\",\"icon-none\"],optionTitles:[\"Leading\",\"Trailing\",\"None\"],displaySegmentedControl:true,defaultValue:\"icon-none\",description:\"Icon placement for tab 3.\",hidden:({numTabs})=>(numTabs??3)<3},tab3CustomIcon:{type:ControlType.String,title:\"Tab 3 Icon\",defaultValue:\"\",placeholder:\"Paste SVG code…\",description:\"Custom icon SVG for tab 3\",hidden:({numTabs,tab3IconType})=>(numTabs??3)<3||tab3IconType===\"icon-none\"},tab4Label:{type:ControlType.String,title:\"Tab 4 Label\",defaultValue:\"Tab 4\",placeholder:\"Enter tab label...\",description:\"Label for tab 4\",hidden:({numTabs})=>(numTabs??3)<4},tab4Link:{type:ControlType.Link,title:\"Tab 4 Link\",defaultValue:\"\",description:\"URL for tab 4 (optional)\",hidden:({numTabs})=>(numTabs??3)<4},tab4IconType:{type:ControlType.Enum,title:\"Tab 4 Icon Type\",options:[\"icon-leading\",\"icon-trailing\",\"icon-none\"],optionTitles:[\"Leading\",\"Trailing\",\"None\"],displaySegmentedControl:true,defaultValue:\"icon-none\",description:\"Icon placement for tab 4.\",hidden:({numTabs})=>(numTabs??3)<4},tab4CustomIcon:{type:ControlType.String,title:\"Tab 4 Icon\",defaultValue:\"\",placeholder:\"Paste SVG code…\",description:\"Custom icon SVG for tab 4\",hidden:({numTabs,tab4IconType})=>(numTabs??3)<4||tab4IconType===\"icon-none\"},tab5Label:{type:ControlType.String,title:\"Tab 5 Label\",defaultValue:\"Tab 5\",placeholder:\"Enter tab label...\",description:\"Label for tab 5\",hidden:({numTabs})=>(numTabs??3)<5},tab5Link:{type:ControlType.Link,title:\"Tab 5 Link\",defaultValue:\"\",description:\"URL for tab 5 (optional)\",hidden:({numTabs})=>(numTabs??3)<5},tab5IconType:{type:ControlType.Enum,title:\"Tab 5 Icon Type\",options:[\"icon-leading\",\"icon-trailing\",\"icon-none\"],optionTitles:[\"Leading\",\"Trailing\",\"None\"],displaySegmentedControl:true,defaultValue:\"icon-none\",description:\"Icon placement for tab 5.\",hidden:({numTabs})=>(numTabs??3)<5},tab5CustomIcon:{type:ControlType.String,title:\"Tab 5 Icon\",defaultValue:\"\",placeholder:\"Paste SVG code…\",description:\"Custom icon SVG for tab 5\",hidden:({numTabs,tab5IconType})=>(numTabs??3)<5||tab5IconType===\"icon-none\"},tab6Label:{type:ControlType.String,title:\"Tab 6 Label\",defaultValue:\"Tab 6\",placeholder:\"Enter tab label...\",description:\"Label for tab 6\",hidden:({numTabs})=>(numTabs??3)<6},tab6Link:{type:ControlType.Link,title:\"Tab 6 Link\",defaultValue:\"\",description:\"URL for tab 6 (optional)\",hidden:({numTabs})=>(numTabs??3)<6},tab6IconType:{type:ControlType.Enum,title:\"Tab 6 Icon Type\",options:[\"icon-leading\",\"icon-trailing\",\"icon-none\"],optionTitles:[\"Leading\",\"Trailing\",\"None\"],displaySegmentedControl:true,defaultValue:\"icon-none\",description:\"Icon placement for tab 6.\",hidden:({numTabs})=>(numTabs??3)<6},tab6CustomIcon:{type:ControlType.String,title:\"Tab 6 Icon\",defaultValue:\"\",placeholder:\"Paste SVG code…\",description:\"Custom icon SVG for tab 6\",hidden:({numTabs,tab6IconType})=>(numTabs??3)<6||tab6IconType===\"icon-none\"},// ─── 6. Configuration ──\nnumTabs:{type:ControlType.Number,title:\"Number of Tabs\",defaultValue:3,min:2,max:6,step:1,displayStepper:true,description:\"Number of tabs to display (2–6).\"},defaultActiveTab:{type:ControlType.Number,title:\"Default Active Tab\",defaultValue:1,min:1,max:6,step:1,displayStepper:true,description:\"Which tab should be active by default (1-indexed).\"},// ─── 7. Behavior / Events ──\nonChange:{type:ControlType.EventHandler,title:\"On Change\",description:\"Change handler function (called when selection changes).\"},// ─── 8. Analytics ──\ntab1Id:{type:ControlType.String,title:\"Tab 1 ID\",defaultValue:\"\",placeholder:\"e.g. tab-personal\",description:\"Unique ID for Tab 1 link for Contentsquare analytics.\",hidden:({numTabs})=>(numTabs??3)<1},tab2Id:{type:ControlType.String,title:\"Tab 2 ID\",defaultValue:\"\",placeholder:\"e.g. tab-business\",description:\"Unique ID for Tab 2 link for Contentsquare analytics.\",hidden:({numTabs})=>(numTabs??3)<2},tab3Id:{type:ControlType.String,title:\"Tab 3 ID\",defaultValue:\"\",placeholder:\"e.g. tab-savings\",description:\"Unique ID for Tab 3 link for Contentsquare analytics.\",hidden:({numTabs})=>(numTabs??3)<3},tab4Id:{type:ControlType.String,title:\"Tab 4 ID\",defaultValue:\"\",placeholder:\"e.g. tab-travel\",description:\"Unique ID for Tab 4 link for Contentsquare analytics.\",hidden:({numTabs})=>(numTabs??3)<4},tab5Id:{type:ControlType.String,title:\"Tab 5 ID\",defaultValue:\"\",placeholder:\"e.g. tab-green\",description:\"Unique ID for Tab 5 link for Contentsquare analytics.\",hidden:({numTabs})=>(numTabs??3)<5},tab6Id:{type:ControlType.String,title:\"Tab 6 ID\",defaultValue:\"\",placeholder:\"e.g. tab-more\",description:\"Unique ID for Tab 6 link for Contentsquare analytics.\",hidden:({numTabs})=>(numTabs??3)<6},numPanelIds:{type:ControlType.Number,title:\"Number of Panel IDs\",min:0,max:6,defaultValue:0,step:1,displayStepper:true,description:\"Number of tab panel ID slots to expose (0–6).\"},panelId1:{type:ControlType.String,title:\"Panel ID 1\",defaultValue:\"\",placeholder:\"e.g. tabs-group-panel-1\",description:\"ID for the first tab panel (for accessibility/linking).\",hidden:({numPanelIds})=>(numPanelIds??0)<1},panelId2:{type:ControlType.String,title:\"Panel ID 2\",defaultValue:\"\",placeholder:\"e.g. tabs-group-panel-2\",description:\"ID for the second tab panel.\",hidden:({numPanelIds})=>(numPanelIds??0)<2},panelId3:{type:ControlType.String,title:\"Panel ID 3\",defaultValue:\"\",placeholder:\"e.g. tabs-group-panel-3\",description:\"ID for the third tab panel.\",hidden:({numPanelIds})=>(numPanelIds??0)<3},panelId4:{type:ControlType.String,title:\"Panel ID 4\",defaultValue:\"\",placeholder:\"e.g. tabs-group-panel-4\",description:\"ID for the fourth tab panel.\",hidden:({numPanelIds})=>(numPanelIds??0)<4},panelId5:{type:ControlType.String,title:\"Panel ID 5\",defaultValue:\"\",placeholder:\"e.g. tabs-group-panel-5\",description:\"ID for the fifth tab panel.\",hidden:({numPanelIds})=>(numPanelIds??0)<5},panelId6:{type:ControlType.String,title:\"Panel ID 6\",defaultValue:\"\",placeholder:\"e.g. tabs-group-panel-6\",description:\"ID for the sixth tab panel.\",hidden:({numPanelIds})=>(numPanelIds??0)<6},// ─── 9. Advanced ──\nariaLabel:{type:ControlType.String,title:\"Aria Label\",defaultValue:\"Tabs navigation\",placeholder:\"e.g. Tabs navigation\",description:'Accessible name for the tablist when \"ARIA Labelled By\" is not set. Defaults to \"Tabs navigation\".'},ariaLabelledBy:{type:ControlType.String,title:\"ARIA Labelled By\",defaultValue:\"\",placeholder:\"e.g. section-heading-id\",description:'ID of an element that labels the tablist (e.g., a heading). When set, it replaces the default name \"Tabs navigation\".'},id:{type:ControlType.String,title:\"ID\",defaultValue:\"\",placeholder:\"e.g. my-element\",description:\"HTML id for the root element (e.g. for analytics or anchor links).\"},// ─── 10. System ──\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],displaySegmentedControl:false,defaultValue:\"desktop\",description:\"Select the breakpoint to match Framer's canvas.\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"default\",\"inverted\"],optionTitles:[\"Default\",\"Inverted\"],displaySegmentedControl:true,defaultValue:\"default\",description:\"Default is dark mode, inverted is light mode. Theme passes to all children.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"TabsGroupProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"TabsGroup\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * LiquidGlass - Apple-style liquid glass refraction primitive.\n *\n * Renders a layered glass surface that fills its parent: an SVG\n * `feDisplacementMap` filter applied to a backdrop-blurred layer to simulate\n * light refraction through textured glass, plus animated highlight borders\n * and (optionally) elastic mouse tracking.\n *\n * **Browser support**\n *\n * - Chrome / Edge: full effect (`feDisplacementMap` + `backdrop-filter`).\n * - Safari / Firefox / `prefers-reduced-motion`: falls back to a static\n *   frosted-glass surface using `backdrop-filter` + a `bg-*-glass` token.\n *\n * **Performance**\n *\n * - The displacement map filter is gated by an `IntersectionObserver`; once\n *   off-screen the SVG filter is removed so it stops paint-thrashing.\n * - Mouse-tracking elasticity is opt-in via `interactive` (default: false).\n *\n * Vendored from `liquid-glass-react` by Max Rovensky (MIT, © 2025).\n * https://github.com/rdev/liquid-glass-react — adapted to bunq design tokens,\n * `forwardRef`, JSDoc, Framer Property Controls, and `useIsStaticRenderer`. SVG\n * filters, displacement maps, and shader logic are derived from the upstream\n * source.\n *\n * @framerIntrinsicWidth 320.\n * @framerIntrinsicHeight 200.\n * @framerSupportedLayoutWidth any-prefer-fixed.\n * @framerSupportedLayoutHeight any-prefer-fixed.\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{forwardRef,useCallback,useEffect,useId,useLayoutEffect,useMemo,useRef,useState}from\"react\";// 2. Framer API\nimport{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// 3. Design system utilities\nimport Tokens,{getLiquidGlassBackdropBlurFilter,useReducedMotion,LIQUID_GLASS_SHARED}from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{DEFAULT_COLORED_GLASS_ACCENT,getLiquidGlassFallbackStyleResolved,getLiquidGlassTintBackground,getLiquidGlassVariantChromeShadow,normalizeGlassVariant,resolveGlassVariant}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";import{BADGE_ACCENT_COLORS,BADGE_ACCENT_COLOR_TITLES,isBadgeAccentColor}from\"https://framerusercontent.com/modules/VgBPwepkHu0Ue1x0RFYY/NoL5MClWdqhLbvoFVsV4/badgeAccentConstants.js\";import{isFramerStaticMotionContext}from\"https://framerusercontent.com/modules/H2peOJaolSTyCFFNIwVC/MBjueh7ML19qP5n6r5VM/framerStaticMotionContext.js\";// 4. Vendored shader assets\nimport{displacementMap,polarDisplacementMap,prominentDisplacementMap}from\"https://framerusercontent.com/modules/36U0wROEfziOjaFgqUJp/Cd685udlPnrGDxxqR3ki/displacementMaps.js\";import{ShaderDisplacementGenerator,fragmentShaders}from\"https://framerusercontent.com/modules/vwoygRaAixTks2wMDyAg/rTblqd3rre6031svecY9/shaderUtils.js\";// ─── Browser support detection ────────────────────────────────────────────────\n/**\n * Returns `true` only when the browser can render the displacement-map +\n * backdrop-filter combination needed for the full liquid glass effect.\n *\n * Safari has partial `feDisplacementMap` support but mis-renders the filter\n * over backdrop-blurred layers; Firefox does not implement\n * `backdrop-filter: url()` at all. Both fall through to the static\n * frosted-glass fallback.\n */function getSupportsLiquidGlass(){if(typeof window===\"undefined\")return false;const ua=window.navigator.userAgent.toLowerCase();const isFirefox=ua.includes(\"firefox\");const isSafari=ua.includes(\"safari\")&&!ua.includes(\"chrome\")&&!ua.includes(\"chromium\")&&!ua.includes(\"edg/\");const supportsBackdrop=typeof CSS!==\"undefined\"&&typeof CSS.supports===\"function\"?CSS.supports(\"backdrop-filter\",\"blur(1px)\")||CSS.supports(\"-webkit-backdrop-filter\",\"blur(1px)\"):true;return!isFirefox&&!isSafari&&supportsBackdrop;}/**\n * SSR-safe support detection.\n *\n * Always returns `false` on the first render — both during SSR (no `window`) and\n * during the initial client render — so React hydrates the static frosted-glass\n * fallback markup that SSR emitted. After mount, an effect re-evaluates the\n * actual capability and triggers a re-render that swaps to the full glass tree.\n *\n * Without this gate, SSR rendered the fallback (no `window` ⇒ `false`) but the\n * client's first render evaluated `getSupportsLiquidGlass()` synchronously to\n * `true` in Chromium, producing a completely different DOM (multi-`<span>`\n * `backdrop-filter` glass instead of the single-div gradient fallback) and\n * triggering React #418/#422/#425 hydration mismatches everywhere a\n * `LiquidGlassSurface` was used (cards, modals, pricing, stats, testimonials).\n */function useSupportsLiquidGlass(){const[supports,setSupports]=useState(false);useEffect(()=>{setSupports(getSupportsLiquidGlass());},[]);return supports;}// ─── Helpers ──────────────────────────────────────────────────────────────────\n/** Resolve the displacement map data URL for a given mode. */function getDisplacementMap(mode,shaderMapUrl){if(mode===\"polar\")return polarDisplacementMap;if(mode===\"prominent\")return prominentDisplacementMap;if(mode===\"shader\")return shaderMapUrl||displacementMap;return displacementMap;}/** Generate a runtime canvas-based displacement map (only for `mode=\"shader\"`). */function generateShaderDisplacementMap(width,height){const generator=new ShaderDisplacementGenerator({width,height,fragment:fragmentShaders.liquidGlass});const dataUrl=generator.updateShader();generator.destroy();return dataUrl;}function GlassFilter({id,displacementScale,aberrationIntensity,width,height,mode,shaderMapUrl}){const mapHref=getDisplacementMap(mode,shaderMapUrl);const dirSign=mode===\"shader\"?1:-1;return /*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",width,height,pointerEvents:\"none\"},\"aria-hidden\":\"true\",focusable:\"false\",children:/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsxs(\"radialGradient\",{id:`${id}-edge-mask`,cx:\"50%\",cy:\"50%\",r:\"50%\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:\"black\",stopOpacity:\"0\"}),/*#__PURE__*/_jsx(\"stop\",{offset:`${Math.max(30,80-aberrationIntensity*2)}%`,stopColor:\"black\",stopOpacity:\"0\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:\"white\",stopOpacity:\"1\"})]}),/*#__PURE__*/_jsxs(\"filter\",{id:id,x:\"-35%\",y:\"-35%\",width:\"170%\",height:\"170%\",colorInterpolationFilters:\"sRGB\",children:[/*#__PURE__*/_jsx(\"feImage\",{x:\"0\",y:\"0\",width:\"100%\",height:\"100%\",result:\"DISPLACEMENT_MAP\",href:mapHref,preserveAspectRatio:\"xMidYMid slice\"}),/*#__PURE__*/_jsx(\"feColorMatrix\",{in:\"DISPLACEMENT_MAP\",type:\"matrix\",values:\"0.3 0.3 0.3 0 0 0.3 0.3 0.3 0 0 0.3 0.3 0.3 0 0 0 0 0 1 0\",result:\"EDGE_INTENSITY\"}),/*#__PURE__*/_jsx(\"feComponentTransfer\",{in:\"EDGE_INTENSITY\",result:\"EDGE_MASK\",children:/*#__PURE__*/_jsx(\"feFuncA\",{type:\"discrete\",tableValues:`0 ${aberrationIntensity*.05} 1`})}),/*#__PURE__*/_jsx(\"feOffset\",{in:\"SourceGraphic\",dx:\"0\",dy:\"0\",result:\"CENTER_ORIGINAL\"}),/*#__PURE__*/_jsx(\"feDisplacementMap\",{in:\"SourceGraphic\",in2:\"DISPLACEMENT_MAP\",scale:displacementScale*dirSign,xChannelSelector:\"R\",yChannelSelector:\"B\",result:\"RED_DISPLACED\"}),/*#__PURE__*/_jsx(\"feColorMatrix\",{in:\"RED_DISPLACED\",type:\"matrix\",values:\"1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0\",result:\"RED_CHANNEL\"}),/*#__PURE__*/_jsx(\"feDisplacementMap\",{in:\"SourceGraphic\",in2:\"DISPLACEMENT_MAP\",scale:displacementScale*(dirSign-aberrationIntensity*.05),xChannelSelector:\"R\",yChannelSelector:\"B\",result:\"GREEN_DISPLACED\"}),/*#__PURE__*/_jsx(\"feColorMatrix\",{in:\"GREEN_DISPLACED\",type:\"matrix\",values:\"0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0\",result:\"GREEN_CHANNEL\"}),/*#__PURE__*/_jsx(\"feDisplacementMap\",{in:\"SourceGraphic\",in2:\"DISPLACEMENT_MAP\",scale:displacementScale*(dirSign-aberrationIntensity*.1),xChannelSelector:\"R\",yChannelSelector:\"B\",result:\"BLUE_DISPLACED\"}),/*#__PURE__*/_jsx(\"feColorMatrix\",{in:\"BLUE_DISPLACED\",type:\"matrix\",values:\"0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0\",result:\"BLUE_CHANNEL\"}),/*#__PURE__*/_jsx(\"feBlend\",{in:\"GREEN_CHANNEL\",in2:\"BLUE_CHANNEL\",mode:\"screen\",result:\"GB_COMBINED\"}),/*#__PURE__*/_jsx(\"feBlend\",{in:\"RED_CHANNEL\",in2:\"GB_COMBINED\",mode:\"screen\",result:\"RGB_COMBINED\"}),/*#__PURE__*/_jsx(\"feGaussianBlur\",{in:\"RGB_COMBINED\",stdDeviation:Math.max(.1,.5-aberrationIntensity*.1),result:\"ABERRATED_BLURRED\"}),/*#__PURE__*/_jsx(\"feComposite\",{in:\"ABERRATED_BLURRED\",in2:\"EDGE_MASK\",operator:\"in\",result:\"EDGE_ABERRATION\"}),/*#__PURE__*/_jsx(\"feComponentTransfer\",{in:\"EDGE_MASK\",result:\"INVERTED_MASK\",children:/*#__PURE__*/_jsx(\"feFuncA\",{type:\"table\",tableValues:\"1 0\"})}),/*#__PURE__*/_jsx(\"feComposite\",{in:\"CENTER_ORIGINAL\",in2:\"INVERTED_MASK\",operator:\"in\",result:\"CENTER_CLEAN\"}),/*#__PURE__*/_jsx(\"feComposite\",{in:\"EDGE_ABERRATION\",in2:\"CENTER_CLEAN\",operator:\"over\"})]})]})});}// ─── Hooks ────────────────────────────────────────────────────────────────────\n/** Track when an element enters/leaves the viewport so we can pause expensive work. */function useIsOnScreen(ref){const[onScreen,setOnScreen]=useState(false);const observedElement=useRef(null);const[elementVersion,setElementVersion]=useState(0);// Ref attachment happens after mount without a re-render; sync `ref.current` into state\n// so the observer effect re-runs once the node exists. The effect runs on every layout —\n// `setElementVersion` only fires when the observed node reference actually changes.\nuseLayoutEffect(()=>{const el=ref.current;if(el!==observedElement.current){observedElement.current=el;setElementVersion(v=>v+1);}},[ref]);useEffect(()=>{const element=observedElement.current;if(typeof window===\"undefined\"||!element)return;if(typeof IntersectionObserver===\"undefined\")return;const observer=new IntersectionObserver(entries=>{for(const entry of entries)setOnScreen(entry.isIntersecting);},{rootMargin:\"100px\"});observer.observe(element);return()=>observer.disconnect();},[elementVersion]);return onScreen;}/**\n * Isomorphic layout effect: `useLayoutEffect` on the client (fires\n * synchronously before paint, so size measurements land in the FIRST\n * committed frame), `useEffect` on the server (suppresses React's SSR\n * warning about `useLayoutEffect` running with no DOM).\n *\n * This matters for `useElementSize` below: with a plain `useEffect`, the\n * initial paint shows `size = { 0, 0 }`, which gates `displacementEnabled`\n * off and leaves the glass without its SVG refraction filter for one\n * frame. The user perceives this as the glass \"loading buggy\" — a flash\n * from blur-only to full glass once the post-paint effect ticks.\n */const useIsomorphicLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;/** Track an element's measured size via ResizeObserver. */function useElementSize(ref){const[size,setSize]=useState({width:0,height:0});// Layout effect (client): measure synchronously after DOM commit but\n// before paint, so the first visible frame already has the real width\n// and height. Without this, the glass momentarily renders without its\n// displacement filter on mount.\nuseIsomorphicLayoutEffect(()=>{if(!ref.current)return;const update=()=>{if(ref.current){const r=ref.current.getBoundingClientRect();setSize(prev=>prev.width===r.width&&prev.height===r.height?prev:{width:r.width,height:r.height});}};update();if(typeof ResizeObserver===\"undefined\"){window.addEventListener(\"resize\",update);return()=>window.removeEventListener(\"resize\",update);}const ro=new ResizeObserver(update);ro.observe(ref.current);return()=>ro.disconnect();},[ref]);return size;}// ─── Constants ────────────────────────────────────────────────────────────────\n// TOKEN-EXEMPT: optical highlight border for the Apple-style refractive glass.\n// The two inset white sheens (0.25 / 0.125 alpha) and the outer black contact\n// shadow (0.175 alpha) are rendering primitives that simulate glass refraction,\n// not surface colors. They cannot be expressed as semantic design tokens —\n// no token in the scale exposes these specific alpha values, and changing them\n// would visibly break the optical effect. File is registered in\n// FILE_ALLOWLIST (scripts/check-design-rules.js) and KNOWN_RGB_VIOLATIONS\n// (tests/staticAnalysis/designTokens.test.ts) for the same reason.\n// Outer contact lift (non-inset) — lifts the rim off the substrate. Exported so\n// any component that inlines glass rim styles (or older Framer syncs that still\n// import this name) does not hit `ReferenceError: HIGHLIGHT_CONTACT_SHADOW is not defined`.\nexport const HIGHLIGHT_CONTACT_SHADOW=\"0 3px 8px rgba(0, 0, 0, 0.09)\";// Crisp inner rim + soft lower contact shadow — slightly stronger than bare Figma export\n// so the refracted backdrop still reads as a thick glass slab in Chrome.\nconst HIGHLIGHT_BORDER_BOX_SHADOW=[\"0 0 0 0.5px rgba(255, 255, 255, 0.15) inset\",\"0 1px 2px rgba(255, 255, 255, 0.09) inset\",HIGHLIGHT_CONTACT_SHADOW].join(\", \");// ─── Internal component ──────────────────────────────────────────────────────\nconst LiquidGlassInternal=/*#__PURE__*/forwardRef(function LiquidGlassInternal(props,forwardedRef){const{theme=\"default\",variant:variantProp,shade,surface:surfaceProp,selected=false,accentColor:accentColorProp,intensity,mode=\"standard\",interactive=false,fallbackTone=\"auto\",tone:_tone,children,cornerRadius=24,displacementScale,blurAmount,saturation,aberrationIntensity,elasticity=.15,onClick,style,className,renderEdgeChrome=true,suppressTint=false}=props;void _tone;void intensity;const resolvedVariant=variantProp?normalizeGlassVariant(variantProp):resolveGlassVariant(theme,fallbackTone,shade);const resolvedSurface=surfaceProp??\"surface\";const resolvedAccent=isBadgeAccentColor(accentColorProp)?Tokens.getColorValue(`/Backgrounds/bg-${accentColorProp}`):accentColorProp??(resolvedVariant===\"colored\"?DEFAULT_COLORED_GLASS_ACCENT:undefined);// Shared Figma preset + optional per-prop overrides (advanced).\nconst preset=useMemo(()=>Tokens.getLiquidGlassPreset(),[]);const params=useMemo(()=>({displacementScale:displacementScale??preset.displacementScale,frostBlurPx:blurAmount!==undefined?Math.max(0,4+blurAmount*32):LIQUID_GLASS_SHARED.frostBlurPx,saturation:saturation??preset.saturation,aberrationIntensity:aberrationIntensity??preset.aberrationIntensity}),[preset,displacementScale,blurAmount,saturation,aberrationIntensity]);const filterId=useId();const containerRef=useRef(null);const setRefs=useCallback(node=>{containerRef.current=node;if(typeof forwardedRef===\"function\")forwardedRef(node);else if(forwardedRef)forwardedRef.current=node;},[forwardedRef]);const size=useElementSize(containerRef);const onScreen=useIsOnScreen(containerRef);const prefersReducedMotion=useReducedMotion();const isStatic=useIsStaticRenderer();const supports=useSupportsLiquidGlass();// Falls back when unsupported, reduced-motion, off-screen, or in Framer canvas snapshot.\nconst useFallback=!supports||prefersReducedMotion||isStatic||isFramerStaticMotionContext();const filterEnabled=!useFallback&&onScreen&&size.width>0&&size.height>0;/**\n         * `backdrop-filter: blur() url(#svgDisplacement)` breaks compositing in Chromium over\n         * large surfaces — often flashes correct frost briefly then turns solid black once the\n         * SVG filter mounts (after layout / supports flip). Modal shells use `suppressTint` and\n         * should keep frost blur only, without displacement on the backdrop layer.\n         */const displacementEnabled=filterEnabled&&!suppressTint;// Shader-mode displacement map generation (only when shader mode + filter enabled).\nconst[shaderMapUrl,setShaderMapUrl]=useState(\"\");useEffect(()=>{if(mode!==\"shader\"||!filterEnabled)return;const url=generateShaderDisplacementMap(size.width,size.height);setShaderMapUrl(url);},[mode,filterEnabled,size.width,size.height]);// Mouse tracking for elastic transform (interactive only).\nconst[mouseOffset,setMouseOffset]=useState({x:0,y:0});const handleMouseMove=useCallback(e=>{if(!containerRef.current)return;const rect=containerRef.current.getBoundingClientRect();const cx=rect.left+rect.width/2;const cy=rect.top+rect.height/2;setMouseOffset({x:(e.clientX-cx)/rect.width*100,y:(e.clientY-cy)/rect.height*100});},[]);useEffect(()=>{if(!interactive||useFallback)return;const el=containerRef.current;if(!el)return;const reset=()=>setMouseOffset({x:0,y:0});el.addEventListener(\"mousemove\",handleMouseMove);el.addEventListener(\"mouseleave\",reset);return()=>{el.removeEventListener(\"mousemove\",handleMouseMove);el.removeEventListener(\"mouseleave\",reset);};},[interactive,useFallback,handleMouseMove]);const elasticTransform=useMemo(()=>{if(!interactive)return undefined;const scaleX=1+Math.abs(mouseOffset.x)*elasticity*.003;const scaleY=1+Math.abs(mouseOffset.y)*elasticity*.003;return`scale(${Math.min(scaleX,1.04)}, ${Math.min(scaleY,1.04)})`;},[interactive,mouseOffset.x,mouseOffset.y,elasticity]);// Container style — fills parent, no positioning surprises.\nconst containerStyle=useMemo(()=>({position:\"relative\",width:\"100%\",height:\"100%\",borderRadius:cornerRadius,overflow:\"hidden\",cursor:onClick?\"pointer\":undefined,// Compositor pre-promotion via a no-op 3D transform.\n    //\n    // Why not just `will-change: transform`? It's only a hint\n    // and Chromium frequently ignores it for freshly-mounted\n    // nodes (which is the case for every modal/dropdown LG —\n    // the element doesn't exist until the user opens it).\n    // The user then sees the surface paint *before* the\n    // backdrop-filter layer is composited, perceived as the\n    // blur \"loading in\" a few frames late.\n    //\n    // `translateZ(0)` is a visually-no-op 3D transform that\n    // reliably forces Chromium to allocate a dedicated GPU\n    // layer at mount time. Combined with `will-change` it's\n    // the strongest available promotion hint short of\n    // pre-mounting the LG offscreen.\n    //\n    // Safety: a `transform` on this container is safe because\n    // the `backdrop-filter` lives on a CHILD `<span>`, not on\n    // this same element. The Chromium \"transform breaks\n    // backdrop-filter on the same element\" bug only triggers\n    // when both properties land on a single node — which is\n    // also why the interactive-mode `scale(...)` transform\n    // here has been working for ages without affecting the\n    // glass. Per spec, `transform` does not form a backdrop\n    // root, so the descendant `backdrop-filter` continues to\n    // sample the page behind correctly.\n    transform:elasticTransform??\"translateZ(0)\",transition:interactive?`transform ${Tokens.getAnimationDuration(\"standard\")}s ${Tokens.getEasing(\"standard\")}`:undefined,willChange:\"transform\",// Avoid `isolation: isolate`: it forms a backdrop root; nested\n    // `backdrop-filter` then samples nothing and reads as solid black.\n    ...style}),[cornerRadius,onClick,elasticTransform,interactive,style]);// Backdrop layer: where the displacement filter + blur + saturate live.\n// Same `borderRadius` as the container — Chromium often composites nested\n// `backdrop-filter` as a sharp rectangle unless the filtering element itself\n// is rounded (parent `overflow: hidden` alone does not always clip the blur).\nconst backdropStyle=useMemo(()=>{const baseFilter=getLiquidGlassBackdropBlurFilter(params.frostBlurPx,params.saturation);const displacementFilter=displacementEnabled?` url(#${filterId})`:\"\";return{position:\"absolute\",inset:0,borderRadius:cornerRadius,overflow:\"hidden\",backdropFilter:`${baseFilter}${displacementFilter}`,WebkitBackdropFilter:baseFilter,pointerEvents:\"none\"};},[cornerRadius,params.frostBlurPx,params.saturation,displacementEnabled,filterId]);// Chrome tint layer: Figma-aligned fill(s) above the blurred backdrop.\nconst tintStyle=useMemo(()=>({position:\"absolute\",inset:0,borderRadius:cornerRadius,background:getLiquidGlassTintBackground(resolvedVariant,resolvedSurface,selected,resolvedAccent),pointerEvents:\"none\"}),[cornerRadius,resolvedVariant,resolvedSurface,selected,resolvedAccent]);// Chrome edge layer: inset ring (surface only — buttons rely on fill only).\nconst chromeStyle=useMemo(()=>({position:\"absolute\",inset:0,borderRadius:cornerRadius,pointerEvents:\"none\",boxShadow:getLiquidGlassVariantChromeShadow(resolvedVariant,resolvedSurface,selected)}),[cornerRadius,resolvedVariant,resolvedSurface,selected]);// Animated highlight border — Figma −45° light rake (only when `interactive`).\n// Framer canvas / static fallback never drew this layer, so leaving it on every\n// non-interactive surface made live preview read much harsher than the canvas.\n// Do **not** apply a heavy `filter: blur()` on this layer: it softens the whole ring.\nconst borderHighlightStyle=useMemo(()=>{const near=Math.max(10,LIQUID_GLASS_SHARED.highlightDepthNearPct+mouseOffset.y*.28);const far=Math.min(90,LIQUID_GLASS_SHARED.highlightDepthFarPct+mouseOffset.y*.32);const maxA=LIQUID_GLASS_SHARED.highlightLightAlpha;const angle=LIQUID_GLASS_SHARED.highlightAngleBaseDeg+mouseOffset.x*1.2;const splay=LIQUID_GLASS_SHARED.splayBlurPx;return{position:\"absolute\",inset:0,borderRadius:cornerRadius,pointerEvents:\"none\",mixBlendMode:\"overlay\",padding:\"1.5px\",...splay>0?{filter:`blur(${splay}px)`}:{},// TOKEN-EXEMPT: `#000` mask-compositing sentinel (see FILE_ALLOWLIST).\nWebkitMask:\"linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0)\",WebkitMaskComposite:\"xor\",maskComposite:\"exclude\",boxShadow:HIGHLIGHT_BORDER_BOX_SHADOW,background:`linear-gradient(${angle}deg, rgba(255,255,255,0) 0%, rgba(255,255,255,${maxA*(.42+Math.abs(mouseOffset.x)*.006)}) ${near}%, rgba(255,255,255,${maxA*(.78+Math.abs(mouseOffset.x)*.007)}) ${far}%, rgba(255,255,255,0) 100%)`};},[cornerRadius,mouseOffset.x,mouseOffset.y]);const contentStyle=useMemo(()=>({position:\"relative\",zIndex:Tokens.getZIndex(\"raised\"),width:\"100%\",height:\"100%\"}),[]);// Static frosted-glass fallback — same surface for unsupported / reduced-motion.\nif(useFallback){const fallbackStyle={...containerStyle,...getLiquidGlassFallbackStyleResolved(resolvedVariant,resolvedSurface,selected,resolvedAccent,renderEdgeChrome),...suppressTint?{background:\"transparent\"}:{},transform:undefined};return /*#__PURE__*/_jsx(\"div\",{ref:setRefs,className:className,style:fallbackStyle,onClick:onClick,role:onClick?\"button\":undefined,children:/*#__PURE__*/_jsx(\"div\",{style:contentStyle,children:children})});}return /*#__PURE__*/_jsxs(\"div\",{ref:setRefs,className:className,style:containerStyle,onClick:onClick,role:onClick?\"button\":undefined,children:[displacementEnabled&&/*#__PURE__*/_jsx(GlassFilter,{id:filterId,displacementScale:params.displacementScale,aberrationIntensity:params.aberrationIntensity,width:size.width,height:size.height,mode:mode,shaderMapUrl:shaderMapUrl}),/*#__PURE__*/_jsx(\"span\",{style:backdropStyle,\"aria-hidden\":\"true\"}),!suppressTint&&/*#__PURE__*/_jsx(\"span\",{style:tintStyle,\"aria-hidden\":\"true\"}),renderEdgeChrome&&/*#__PURE__*/_jsx(\"span\",{style:chromeStyle,\"aria-hidden\":\"true\"}),renderEdgeChrome&&interactive&&/*#__PURE__*/_jsx(\"span\",{style:borderHighlightStyle,\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"div\",{style:contentStyle,children:children})]});});// ─── Public component ────────────────────────────────────────────────────────\n/**\n * LiquidGlass - Apple-style liquid glass surface effect.\n *\n * Wrap any block of content to give it a refractive, blurred glass surface.\n * Use the `intensity` preset (`subtle | standard | prominent`) for most cases;\n * fine-tune with `displacementScale`, `blurAmount`, `saturation`, and\n * `aberrationIntensity` when needed.\n *\n * **Important:** the component fills its parent (`width: 100%; height: 100%`).\n * Place it inside a sized container (card, modal, tab pill, etc.).\n *\n * @example\n * ```tsx\n * <div style={{ width: 320, height: 200, position: \"relative\" }}>\n *   <LiquidGlass intensity=\"standard\" cornerRadius={24}>\n *     <div style={{ padding: 24 }}>Glass content</div>\n *   </LiquidGlass>\n * </div>\n * ```\n */const LiquidGlass=/*#__PURE__*/forwardRef(function LiquidGlass(props,ref){return /*#__PURE__*/_jsx(LiquidGlassInternal,{...props,ref:ref});});export default LiquidGlass;LiquidGlass.displayName=\"Liquid Glass - Effect\";// ─── Property controls ────────────────────────────────────────────────────────\naddPropertyControls(LiquidGlass,{// ─── 6. Configuration ──\nshade:{type:ControlType.Enum,title:\"Shade\",options:[\"light\",\"regular\",\"dark\"],optionTitles:[\"Light\",\"Regular\",\"Dark\"],displaySegmentedControl:true,description:\"Glass shade within the current Theme. Ignored when Variant is set explicitly.\"},variant:{type:ControlType.Enum,title:\"Variant\",options:[\"default-light\",\"default-regular\",\"default-dark\",\"inverted-light\",\"inverted-regular\",\"inverted-dark\",\"colored\"],optionTitles:[\"Default Light\",\"Default Regular\",\"Default Dark\",\"Inverted Light\",\"Inverted Regular\",\"Inverted Dark\",\"Colored\"],description:\"Explicit override. Leave unset to derive from Theme + Shade. Six theme/shade combos plus the accent-tinted Colored variant.\",displaySegmentedControl:false},surface:{type:ControlType.Enum,title:\"Surface\",options:[\"surface\",\"button\"],optionTitles:[\"Surface\",\"Button\"],displaySegmentedControl:true,defaultValue:\"surface\",description:\"Surface = card/modal fills + stroke chrome; Button = compact fills, no inset stroke.\"},selected:{type:ControlType.Boolean,title:\"Selected\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,description:\"Selection stroke / overlay per Figma (colored button uses white overlay).\"},accentColor:{type:ControlType.Enum,title:\"Accent\",options:[...BADGE_ACCENT_COLORS],optionTitles:BADGE_ACCENT_COLORS.map(c=>BADGE_ACCENT_COLOR_TITLES[c]),defaultValue:\"deep-green\",hidden:props=>props.variant!==\"colored\",description:\"Design-token accent color for the Colored variant.\"},cornerRadius:{type:ControlType.Number,title:\"Corner Radius\",defaultValue:24,min:0,max:9999,step:1,unit:\"px\",description:\"Border radius in pixels.\"},// ─── 7. Behavior ──\nmode:{type:ControlType.Enum,title:\"Map Mode\",options:[\"standard\",\"polar\",\"prominent\",\"shader\"],optionTitles:[\"Standard\",\"Polar\",\"Prominent\",\"Shader\"],defaultValue:\"standard\",description:\"Displacement map variant.\"},interactive:{type:ControlType.Boolean,title:\"Interactive\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,description:\"Enables elastic mouse-tracking transform on hover.\"},// ─── 10. System ──\ntheme:{type:ControlType.Enum,title:\"Theme\",options:[\"default\",\"inverted\"],optionTitles:[\"Default\",\"Inverted\"],displaySegmentedControl:true,defaultValue:\"default\",description:\"Default is dark mode, inverted is light mode. Used when Variant is unset; combines with Shade.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassShade\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassSurfaceKind\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassMode\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HIGHLIGHT_CONTACT_SHADOW\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassTone\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassFallbackTone\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassVariant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * LiquidGlassSurface — Drop-in liquid glass background for cards, modals, tabs.\n *\n * High-level adapter around the `LiquidGlass` primitive. Renders an absolutely\n * positioned overlay that fills its (positioned) parent, so existing layouts\n * keep working — drop it inside a card, modal, or tab pill and the glass\n * surface paints behind the content.\n *\n * Glass appearance uses the shared Figma preset (`LIQUID_GLASS_SHARED`) with\n * `variant` × `surface` × `selected` × optional `accentColor`.\n *\n * @example\n * ```tsx\n * <div style={{ position: \"relative\", borderRadius: 24 }}>\n *   <LiquidGlassSurface cornerRadius={24} />\n *   <div style={{ position: \"relative\", padding: 24 }}>Card content</div>\n * </div>\n * ```\n *\n * @framerIntrinsicWidth 320.\n * @framerIntrinsicHeight 200.\n * @framerSupportedLayoutWidth any-prefer-fixed.\n * @framerSupportedLayoutHeight any-prefer-fixed.\n */// 1. React and React types\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useMemo}from\"react\";// 2. Framer API\nimport{addPropertyControls,ControlType}from\"framer\";// 3. Design system utilities\nimport Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{BADGE_ACCENT_COLORS,BADGE_ACCENT_COLOR_TITLES}from\"https://framerusercontent.com/modules/VgBPwepkHu0Ue1x0RFYY/NoL5MClWdqhLbvoFVsV4/badgeAccentConstants.js\";// 4. Effect primitive\nimport LiquidGlass from\"https://framerusercontent.com/modules/ljOTjam9eoOyUTzyVtTs/5wvhkzDhwABbwDMOUayC/LiquidGlass.js\";// ─── Helpers ──────────────────────────────────────────────────────────────────\nfunction resolveRadiusPx(radius){if(typeof radius===\"number\")return radius;const token=radius??\"xl\";const value=Tokens.getRadius(token);if(typeof value===\"number\")return value;const parsed=parseFloat(String(value));return Number.isFinite(parsed)?parsed:24;}// ─── Component ────────────────────────────────────────────────────────────────\nconst LiquidGlassSurface=/*#__PURE__*/forwardRef(function LiquidGlassSurface(props,ref){const{theme=\"default\",variant,shade,surface=\"surface\",selected=false,accentColor,blurAmount,mode=\"standard\",interactive=false,fallbackTone,layout=\"absolute-fill\",children,radius,style,className,renderEdgeChrome=true,suppressTint=false}=props;const cornerRadius=useMemo(()=>resolveRadiusPx(radius),[radius]);const wrapperStyle=useMemo(()=>{if(layout===\"absolute-fill\"){return{position:\"absolute\",inset:0,zIndex:Tokens.getZIndex(\"base\"),pointerEvents:interactive?\"auto\":\"none\",borderRadius:cornerRadius,overflow:\"hidden\",...style};}return{position:\"relative\",width:\"100%\",height:\"100%\",...style};},[layout,interactive,cornerRadius,style]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,className:className,style:wrapperStyle,\"aria-hidden\":layout===\"absolute-fill\"?true:undefined,children:/*#__PURE__*/_jsx(LiquidGlass,{theme:theme,variant:variant,shade:shade,surface:surface,selected:selected,accentColor:accentColor,blurAmount:blurAmount,mode:mode,interactive:interactive,fallbackTone:fallbackTone,cornerRadius:cornerRadius,renderEdgeChrome:renderEdgeChrome,suppressTint:suppressTint,children:layout===\"relative\"?children:null})});});export default LiquidGlassSurface;LiquidGlassSurface.displayName=\"Liquid Glass Surface - Effect\";// ─── Property controls ────────────────────────────────────────────────────────\naddPropertyControls(LiquidGlassSurface,{// ─── 6. Configuration ──\nshade:{type:ControlType.Enum,title:\"Shade\",options:[\"light\",\"regular\",\"dark\"],optionTitles:[\"Light\",\"Regular\",\"Dark\"],displaySegmentedControl:true,description:\"Glass shade within the current Theme. Ignored when Variant is set explicitly.\"},variant:{type:ControlType.Enum,title:\"Variant\",options:[\"default-light\",\"default-regular\",\"default-dark\",\"inverted-light\",\"inverted-regular\",\"inverted-dark\",\"colored\"],optionTitles:[\"Default Light\",\"Default Regular\",\"Default Dark\",\"Inverted Light\",\"Inverted Regular\",\"Inverted Dark\",\"Colored\"],description:\"Explicit override. Leave unset to derive from Theme + Shade. Six theme/shade combos plus the accent-tinted Colored variant.\",displaySegmentedControl:false},surface:{type:ControlType.Enum,title:\"Surface\",options:[\"surface\",\"button\"],optionTitles:[\"Surface\",\"Button\"],displaySegmentedControl:true,defaultValue:\"surface\",description:\"Surface = cards/modals; Button = compact fills without inset chrome ring.\"},selected:{type:ControlType.Boolean,title:\"Selected\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,description:\"Selection chrome / overlay.\"},accentColor:{type:ControlType.Enum,title:\"Accent\",options:[...BADGE_ACCENT_COLORS],optionTitles:BADGE_ACCENT_COLORS.map(c=>BADGE_ACCENT_COLOR_TITLES[c]),defaultValue:\"deep-green\",hidden:props=>props.variant!==\"colored\",description:\"Design-token accent color for the Colored variant.\"},layout:{type:ControlType.Enum,title:\"Layout\",options:[\"absolute-fill\",\"relative\"],optionTitles:[\"Fill Parent\",\"In Flow\"],displaySegmentedControl:true,defaultValue:\"absolute-fill\",description:\"Fill Parent overlays the glass; In Flow wraps children.\"},// ─── 7. Behavior ──\nmode:{type:ControlType.Enum,title:\"Map Mode\",options:[\"standard\",\"polar\",\"prominent\",\"shader\"],optionTitles:[\"Standard\",\"Polar\",\"Prominent\",\"Shader\"],displaySegmentedControl:false,defaultValue:\"standard\",description:\"Displacement map variant.\"},interactive:{type:ControlType.Boolean,title:\"Interactive\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,description:\"Mouse-tracking elasticity on the glass layer.\"},// ─── 10. System ──\ntheme:{type:ControlType.Enum,title:\"Theme\",options:[\"default\",\"inverted\"],optionTitles:[\"Default\",\"Inverted\"],displaySegmentedControl:true,defaultValue:\"default\",description:\"Default is dark mode, inverted is light mode. Used when Variant is unset; combines with Shade.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassSurfaceProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Card Surface Utilities — shared helpers for Card* molecules using the\n * liquid-glass surface.\n */import*as React from\"react\";import LiquidGlassSurface from\"https://framerusercontent.com/modules/4n3fdr0QdOT1Bt8mCn1L/IaapZHdQpMAxwphT9ztr/LiquidGlassSurface.js\";import{DEFAULT_COLORED_GLASS_ACCENT,getLiquidGlassVariantChromeShadow,resolveGlassVariant}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";/**\n * Parses a radius (number, CSS length string, or undefined) to pixels. Uses\n * `fallback` when the value is missing or not a finite number.\n */export function parseRadiusToPx(radius,fallback){if(typeof radius===\"number\")return radius;if(typeof radius===\"string\"){const parsed=parseFloat(radius);if(Number.isFinite(parsed))return parsed;}return fallback;}// ─── Style helpers ────────────────────────────────────────────────────────────\n/**\n * Mutate (functionally) a card's root `CSSProperties` so the liquid-glass\n * overlay renders correctly.\n */export function applyCardSurfaceStyle(baseStyle,_surface=\"liquid-glass\"){return{...baseStyle,background:\"transparent\",backgroundColor:\"transparent\",boxShadow:\"none\",overflow:\"hidden\",position:\"relative\",zIndex:0};}/**\n * Renders the absolute-fill `<LiquidGlassSurface />` overlay for a card.\n */export const CardSurfaceOverlay=({radius,theme=\"default\",glassVariant,accentColor,selected=false,tintOverlay,shade,blurAmount,suppressTint=false})=>{const radiusPx=parseRadiusToPx(radius,24);const overlayVariant=glassVariant??(tintOverlay?\"colored\":resolveGlassVariant(theme,\"auto\",shade));const effectiveAccent=accentColor??(overlayVariant===\"colored\"?DEFAULT_COLORED_GLASS_ACCENT:undefined);const chromeAboveTint=Boolean(tintOverlay);return /*#__PURE__*/React.createElement(React.Fragment,null,/*#__PURE__*/React.createElement(LiquidGlassSurface,{theme,variant:glassVariant??(tintOverlay?\"colored\":undefined),shade,surface:\"surface\",selected,accentColor:overlayVariant===\"colored\"?effectiveAccent:undefined,blurAmount,radius:radiusPx,mode:\"standard\",interactive:false,renderEdgeChrome:!chromeAboveTint,suppressTint,style:{zIndex:-1}}),tintOverlay?/*#__PURE__*/React.createElement(\"span\",{\"aria-hidden\":true,\"style\":{position:\"absolute\",inset:0,borderRadius:radiusPx,background:tintOverlay,pointerEvents:\"none\",zIndex:-1}}):null,chromeAboveTint?/*#__PURE__*/React.createElement(\"span\",{\"aria-hidden\":true,\"style\":{position:\"absolute\",inset:0,borderRadius:radiusPx,boxShadow:getLiquidGlassVariantChromeShadow(overlayVariant,\"surface\",selected),pointerEvents:\"none\",zIndex:Tokens.getZIndex(\"elevated\")}}):null);};/** Inline style for the card's content wrapper. */export function getCardContentLayerStyle(_surface=\"liquid-glass\"){return{position:\"relative\",zIndex:Tokens.getZIndex(\"raised\")};}\nexport const __FramerMetadata__ = {\"exports\":{\"getCardContentLayerStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CardSurfaceOverlay\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseRadiusToPx\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CardSurface\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"applyCardSurfaceStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{useLayoutEffect}from\"react\";import{SECTION_BREAKPOINT_ATTR}from\"https://framerusercontent.com/modules/UbgdYJbCrYBlOiBwtGI6/q8E4QzoWXW9nmCeNLkKT/useInheritedSectionBreakpoint.js\";export const CMS_CARD_ROOT_ATTR=\"data-bunq-cms-card-root\";const PASS_THROUGH_STYLES={display:\"contents\",boxSizing:\"border-box\"};function applyInlineStyles(element,styles){Object.entries(styles).forEach(([property,value])=>{if(value==null)return;element.style[property]=String(value);});}function getCollectionRoots(host){return Array.from(host.children).flatMap(child=>{if(!(child instanceof HTMLElement))return[];if(child.style.display===\"contents\"&&child.childElementCount>0){return Array.from(child.children).filter(nested=>nested instanceof HTMLElement);}return[child];});}function findCmsCardRoot(host){return host.querySelector(`[${CMS_CARD_ROOT_ATTR}]`);}/** Remove Framer collection list / item frames so only the code component card renders. */function flattenFramerWrappersToCard(host){const cardRoot=findCmsCardRoot(host);if(!cardRoot)return;let wrapper=cardRoot.parentElement;while(wrapper&&wrapper!==host){applyInlineStyles(wrapper,{display:\"contents\",background:\"transparent\",backgroundColor:\"transparent\",border:\"none\",borderRadius:0,boxShadow:\"none\",padding:0,margin:0,overflow:\"visible\",width:\"auto\",maxWidth:\"none\",minWidth:0,boxSizing:\"border-box\"});wrapper=wrapper.parentElement;}}function applyPassThroughLayout(host,breakpoint){if(host.getAttribute(SECTION_BREAKPOINT_ATTR)!==breakpoint){host.setAttribute(SECTION_BREAKPOINT_ATTR,breakpoint);}getCollectionRoots(host).forEach(root=>{applyInlineStyles(root,PASS_THROUGH_STYLES);Array.from(root.children).forEach(child=>{if(child instanceof HTMLElement){applyInlineStyles(child,PASS_THROUGH_STYLES);}});});flattenFramerWrappersToCard(host);}/**\n * Pass-through CMS slot for a single featured article: no list chrome, only the\n * collection item card (marked with {@link CMS_CARD_ROOT_ATTR}).\n * @syncRevision 20260519-3\n */export function useCmsFeaturedArticleSlot(hostRef,enabled,breakpoint){useLayoutEffect(()=>{if(!enabled)return undefined;const host=hostRef.current;if(!host)return undefined;let isApplying=false;const apply=()=>{if(isApplying)return;isApplying=true;try{applyPassThroughLayout(host,breakpoint);}finally{isApplying=false;}};apply();if(typeof MutationObserver===\"undefined\"){return()=>host.removeAttribute(SECTION_BREAKPOINT_ATTR);}const observer=new MutationObserver(apply);// childList only — observing attributes retriggers on inline style mutations.\nobserver.observe(host,{childList:true,subtree:true});return()=>{observer.disconnect();host.removeAttribute(SECTION_BREAKPOINT_ATTR);};},[hostRef,enabled,breakpoint]);}\nexport const __FramerMetadata__ = {\"exports\":{\"useCmsFeaturedArticleSlot\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CMS_CARD_ROOT_ATTR\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Image - Responsive image component with lazy loading and error handling.\n *\n * General-purpose image component with lazy loading, error handling, aspect ratio control, and\n * placeholder states. Supports optional link wrapper and various sizing options.\n *\n * **Alt text:** Callers must supply meaningful `alt` (or `ariaLabel`) for content images.\n * Pass `alt=\"\"` only when the image is purely decorative. There is no default empty alt;\n * when `alt` is omitted, the resolved value falls back to `ariaLabel` or uploaded-image\n * metadata so existing Framer instances keep working.\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 400\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{forwardRef,useRef,useState,useEffect,useLayoutEffect}from\"react\";// 2. Framer Motion (not applicable for Image)\n// 3. Framer API\nimport{addPropertyControls,ControlType}from\"framer\";import{FRAMER_THEME_DESCRIPTION_IMAGE}from\"https://framerusercontent.com/modules/TvAAtdjNtwUg3Y1lriXj/Wh3HNug8gnAeRVrciJOW/propertyControlCopy.js\";// 4. Design system utilities\nimport Tokens,{useReducedMotion}from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{getCardRadius}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";// 5. Hooks (not applicable for Image)\n// 6. Local utilities\nimport{pickSafeDivProps}from\"https://framerusercontent.com/modules/kDtm9rjjhstSjEsKiU59/FntwkS18vtdaa5Vgz0fk/domProps.js\";import{normalizeElementId}from\"https://framerusercontent.com/modules/V8DZ1j6fmzxP1pB8h5BJ/sPSFCEug6lYXxMvPVu5Z/resolveElementId.js\";// 7. Placeholder constants\nimport{PLACEHOLDER,HINT_IMAGE_ALT as _HINT_IMAGE_ALT,HINT_IMAGE_URL}from\"https://framerusercontent.com/modules/ZO8py5W6dWspTZ6N8FoQ/ik33zGZQhIFSuzy6bsA1/placeholders.js\";/** Read width/height query params from Framer CDN URLs for CLS-friendly img dimensions. */function parseDimensionsFromImageUrl(url){try{const parsed=new URL(url);const width=Number.parseInt(parsed.searchParams.get(\"width\")??\"\",10);const height=Number.parseInt(parsed.searchParams.get(\"height\")??\"\",10);if(Number.isFinite(width)&&width>0&&Number.isFinite(height)&&height>0){return{width,height};}}catch{// Relative or invalid URLs — skip dimension hints.\n}return{};}/**\n * ImageInternal - Internal forwardRef component.\n *\n * This is the actual component implementation. Using forwardRef allows.\n * Proper ref forwarding for integration with Framer and parent components.\n */const ImageInternal=/*#__PURE__*/forwardRef(function ImageInternal(props,ref){const{breakpoint=\"desktop\",source=true,imageUrl=undefined,imageUrlUrl=PLACEHOLDER.IMAGE,ariaLabel=PLACEHOLDER.IMAGE_ALT,alt,aspectRatio=\"1:1\",customAspectRatio=\"16:9\",objectFit=\"cover\",objectPosition=\"center\",customObjectPosition=\"center\",borderRadius=\"radius-4xl\",responsiveRadius=\"none\",overflow=\"hidden\",backgroundColor=\"\",theme=\"default\",showBorder=false,loading=\"lazy\",fill=false,style,id,...rest}=props;const elementId=normalizeElementId(id);// Hardcoded values (not exposed in PropertyControls).\nconst minWidth=0;const maxWidth=0;const minHeight=0;const maxHeight=0;const intrinsicWidth=400;const intrinsicHeight=400;// Resolve file vs URL string. When Source is File but nothing is uploaded yet, Framer\n// leaves `imageUrl` empty — fall back to `imageUrlUrl` (defaults to PLACEHOLDER.IMAGE)\n// so cards show the design-system preview photo on the canvas instead of a blank slot.\nconst resolvedFileSrc=imageUrl===undefined?\"\":typeof imageUrl===\"object\"?imageUrl.src??\"\":String(imageUrl);const resolvedUrlField=imageUrlUrl===undefined||imageUrlUrl===null?\"\":String(imageUrlUrl);const primaryTrimmed=source?resolvedFileSrc.trim():resolvedUrlField.trim();const actualImageUrl=primaryTrimmed!==\"\"?source?resolvedFileSrc:resolvedUrlField:typeof imageUrlUrl===\"string\"&&imageUrlUrl.trim()!==\"\"?imageUrlUrl:PLACEHOLDER.IMAGE;const actualSrcSet=primaryTrimmed!==\"\"&&source&&typeof imageUrl===\"object\"?imageUrl.srcSet:undefined;// Alt text accessibility is enforced in design; no runtime console in production.\nconst[hasError,setHasError]=useState(false);const[isLoaded,setIsLoaded]=useState(false);const imgRef=useRef(null);const reducedMotion=useReducedMotion();// Reset load/error state when the image URL changes so a new src is shown correctly.\nuseEffect(()=>{setHasError(false);setIsLoaded(false);},[actualImageUrl]);// If the image is already complete (e.g. cached or same-tick load), show it immediately to avoid a placeholder flash; runs after DOM update, before paint.\nuseLayoutEffect(()=>{if(actualImageUrl&&imgRef.current?.complete&&!imgRef.current.dataset.error){setIsLoaded(true);setHasError(false);}},[actualImageUrl]);// Safety timeout: if onLoad hasn't fired after 8 seconds, force the image visible.\n// This prevents permanent blank images from edge-case browser/hydration timing issues.\nuseEffect(()=>{if(isLoaded||hasError||!actualImageUrl){return;}const onSafetyTimeout=()=>{if(imgRef.current&&!imgRef.current.dataset.error){setIsLoaded(true);}};const timeout=setTimeout(onSafetyTimeout,8e3);return()=>clearTimeout(timeout);},[actualImageUrl,isLoaded,hasError]);// Get aspect ratio value.\nconst getAspectRatioValue=()=>{if(aspectRatio===\"auto\"){return\"auto\";}else if(aspectRatio===\"custom\"){// Parse custom aspect ratio (e.g., \"3:2\" or \"1.5\").\nif(customAspectRatio.includes(\":\")){const[width,height]=customAspectRatio.split(\":\").map(Number);if(width&&height){return`${width/height}`;}else{return\"16 / 9\";// Fallback.\n}}else{const ratio=parseFloat(customAspectRatio);if(isNaN(ratio)===false){return`${ratio}`;}else{return\"16 / 9\";// Fallback.\n}}}else{const ratios={\"16:9\":\"16 / 9\",\"16:10\":\"16 / 10\",\"4:3\":\"4 / 3\",\"4:5\":\"4 / 5\",\"3:2\":\"3 / 2\",\"21:9\":\"21 / 9\",\"2:1\":\"2 / 1\",\"5:4\":\"5 / 4\",\"1:1\":\"1 / 1\",\"9:16\":\"9 / 16\",\"2:3\":\"2 / 3\",\"auto\":\"auto\",\"custom\":\"16 / 9\"};return ratios[aspectRatio];}};// Get object position value.\nconst getObjectPositionValue=()=>{if(objectPosition===\"custom\"){return customObjectPosition||\"center\";}else{const positions={\"center\":\"center\",\"top\":\"top\",\"bottom\":\"bottom\",\"left\":\"left\",\"right\":\"right\",\"top-left\":\"top left\",\"top-right\":\"top right\",\"bottom-left\":\"bottom left\",\"bottom-right\":\"bottom right\",\"custom\":\"center\"};return positions[objectPosition||\"center\"];}};// Calculate dimensions.\nconst aspectRatioValue=getAspectRatioValue();const objectPositionValue=getObjectPositionValue();// Border color follows theme (same mapping as SectionHeaderStatus and other molecules).\nconst borderToken=theme===\"inverted\"?\"/Borders/border-inverted-primary\":\"/Borders/border-primary\";const finalBorderColor=Tokens.getColorValue(borderToken);// Get background color from tokens if provided, otherwise use placeholder pattern.\nconst finalBackgroundColor=backgroundColor?Tokens.getColorValue(backgroundColor)||backgroundColor:undefined;// Event handlers.\nconst handleError=()=>{imgRef.current?.setAttribute(\"data-error\",\"true\");setHasError(true);setIsLoaded(false);};const handleLoad=()=>{imgRef.current?.removeAttribute(\"data-error\");setIsLoaded(true);setHasError(false);};// Map aspect ratio to CSS value.\nconst getAspectRatioCSS=()=>{if(aspectRatio===\"auto\")return\"auto\";return aspectRatioValue;};// Map border radius to CSS value using the canonical radius token.\nconst getBorderRadiusCSS=()=>{if(responsiveRadius===\"card-small\")return getCardRadius(breakpoint,\"small\");if(responsiveRadius===\"card-default\")return getCardRadius(breakpoint,\"default\");if(responsiveRadius===\"card-large\")return getCardRadius(breakpoint,\"large\");return Tokens.getRadius(borderRadius??\"radius-4xl\");};// Container inline styles (all merged here - no CSS module).\nconst containerStyle={position:\"relative\",display:\"block\",border:showBorder?`1px solid ${finalBorderColor}`:\"none\",aspectRatio:getAspectRatioCSS(),height:aspectRatio===\"auto\"&&!style?.height?\"auto\":undefined,borderRadius:getBorderRadiusCSS(),overflow,...finalBackgroundColor&&{backgroundColor:finalBackgroundColor},...minWidth>0&&{minWidth:`${minWidth}px`},...maxWidth>0&&{maxWidth:`${maxWidth}px`},...minHeight>0&&{minHeight:`${minHeight}px`},...maxHeight>0&&{maxHeight:`${maxHeight}px`},...!style?.width&&!fill&&{width:Tokens.getSpacing(200)},...fill&&{width:\"100%\",height:\"100%\"},...style};const containerDomProps={...pickSafeDivProps(rest),...elementId?{id:elementId}:{}};// Image inline styles. Eager (above-the-fold) images skip the opacity fade so progressive\n// decode is visible immediately. Lazy images fade in after load; reduced-motion skips animation.\nconst isEagerLoad=loading===\"eager\";const imageLoadedSuccessfully=isLoaded&&!hasError;const imageStyle={width:\"100%\",height:\"100%\",borderRadius:\"inherit\",objectFit,objectPosition:objectPositionValue,opacity:isEagerLoad||imageLoadedSuccessfully?1:0,transition:isEagerLoad||reducedMotion||!imageLoadedSuccessfully?\"none\":Tokens.getTransition(\"opacity\",\"moderate\",\"enter\")};// Placeholder: show while loading, when empty, or on error. Use fallback background so we never show through to a dark section (e.g. in Framer when the placeholder image URL fails to load).\nconst isStillLoading=!isEagerLoad&&!isLoaded;const showPlaceholder=actualImageUrl===\"\"||hasError||isStillLoading;const placeholderStyle={position:\"absolute\",inset:0,borderRadius:\"inherit\",display:showPlaceholder?\"block\":\"none\",backgroundColor:finalBackgroundColor||Tokens.getColorValue(\"/Backgrounds/bg-tertiary\")};const uploadedAlt=source&&typeof imageUrl===\"object\"&&typeof imageUrl.alt===\"string\"?imageUrl.alt.trim():\"\";const resolvedAriaLabel=ariaLabel?.trim()&&ariaLabel.trim()!==PLACEHOLDER.IMAGE_ALT?ariaLabel.trim():\"\";const imageAlt=alt?.trim()||resolvedAriaLabel||uploadedAlt;const urlDimensions=parseDimensionsFromImageUrl(actualImageUrl);const imgWidth=urlDimensions.width??intrinsicWidth;const imgHeight=urlDimensions.height??intrinsicHeight;const imageElement=/*#__PURE__*/_jsxs(\"div\",{ref:ref,style:containerStyle,...containerDomProps,children:[actualImageUrl!==\"\"&&hasError===false&&/*#__PURE__*/_jsx(\"img\",{ref:imgRef,src:actualImageUrl,srcSet:actualSrcSet,alt:imageAlt,width:imgWidth,height:imgHeight,loading:loading,...isEagerLoad?{fetchpriority:\"high\"}:{},style:imageStyle,onError:handleError,onLoad:handleLoad}),/*#__PURE__*/_jsx(\"div\",{style:placeholderStyle,\"aria-hidden\":\"true\"})]});return imageElement;});/**\n * Image - Wrapper component for Framer compatibility.\n *\n * This wrapper ensures the component works properly with Framer's.\n * component system and Property Controls.\n */export default function Image(props){const ref=useRef(null);return /*#__PURE__*/_jsx(ImageInternal,{...props,ref:ref});}// Set display name for Framer.\nImage.displayName=\"Image - Atom\";// Property control defaults for Framer.\n// Property Controls configuration for Framer.\n// Ordered according to the standard prop ordering convention.\naddPropertyControls(Image,{// ─── 1. Content ────────────────────────────────────────────────────────────\nariaLabel:{type:ControlType.String,title:\"ARIA Label\",defaultValue:PLACEHOLDER.IMAGE_ALT,placeholder:_HINT_IMAGE_ALT,description:\"Accessible description for the image (HTML alt text). Only needed for URL images; File uploads use their own alt.\",hidden:({source})=>source===true},// ─── 3. Media ──────────────────────────────────────────────────────────────\nsource:{type:ControlType.Boolean,title:\"Image Source\",defaultValue:true,enabledTitle:\"File\",disabledTitle:\"URL\",description:\"Where the image comes from: file upload or URL.\"},imageUrl:{type:ControlType.ResponsiveImage,title:\"Image\",description:\"Image from file upload (src, srcSet, and alt provided by Framer).\",hidden:({source})=>!source},imageUrlUrl:{type:ControlType.String,title:\"Image URL\",defaultValue:PLACEHOLDER.IMAGE,placeholder:HINT_IMAGE_URL,description:\"URL of the image to display (from URL input).\",hidden:({source})=>!!source},// ─── 6. Configuration ──────────────────────────────────────────────────────\naspectRatio:{type:ControlType.Enum,title:\"Aspect Ratio\",options:[\"16:9\",\"16:10\",\"4:3\",\"4:5\",\"3:2\",\"21:9\",\"2:1\",\"5:4\",\"1:1\",\"9:16\",\"2:3\",\"auto\",\"custom\"],optionTitles:[\"16:9\",\"16:10\",\"4:3\",\"4:5\",\"3:2\",\"21:9\",\"2:1\",\"5:4\",\"1:1\",\"9:16 Portrait\",\"2:3 Portrait\",\"Auto\",\"Custom\"],defaultValue:\"1:1\",description:\"Image aspect ratio preset.\"},customAspectRatio:{type:ControlType.String,title:\"Custom Ratio\",defaultValue:\"16:9\",placeholder:\"Enter custom ratio...\",description:'Custom aspect ratio value (e.g., \"3:2\" or \"1.5\").',hidden:({aspectRatio})=>aspectRatio!==\"custom\"},objectFit:{type:ControlType.Enum,title:\"Object Fit\",options:[\"cover\",\"contain\",\"fill\",\"none\"],optionTitles:[\"Cover\",\"Contain\",\"Fill\",\"None\"],displaySegmentedControl:false,defaultValue:\"cover\",description:\"How the image should fit within its container.\"},objectPosition:{type:ControlType.Enum,title:\"Object Position\",options:[\"center\",\"top\",\"bottom\",\"left\",\"right\",\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\",\"custom\"],optionTitles:[\"Center\",\"Top\",\"Bottom\",\"Left\",\"Right\",\"Top Left\",\"Top Right\",\"Bottom Left\",\"Bottom Right\",\"Custom\"],defaultValue:\"center\",description:\"Position of the image within its container.\"},customObjectPosition:{type:ControlType.String,title:\"Custom Position\",defaultValue:\"center\",placeholder:\"Enter custom position...\",description:'Custom object position value (e.g., \"30% 70%\" or \"top 20px left 10px\").',hidden:({objectPosition})=>objectPosition!==\"custom\"},borderRadius:{type:ControlType.Enum,title:\"Border Radius\",options:[\"radius-lg\",\"radius-xxl\",\"radius-4xl\",\"radius-5xl\",\"radius-6xl\"],optionTitles:[\"12px\",\"20px\",\"32px\",\"48px\",\"64px\"],defaultValue:\"radius-4xl\",description:\"Corner rounding (12px–64px scale).\",hidden:({responsiveRadius})=>Boolean(responsiveRadius&&responsiveRadius!==\"none\")},responsiveRadius:{type:ControlType.Enum,title:\"Responsive Radius\",options:[\"none\",\"card-small\",\"card-default\",\"card-large\"],optionTitles:[\"None\",\"Card Small\",\"Card Default\",\"Card Large\"],defaultValue:\"none\",description:\"Responsive card radius preset. Overrides Border Radius when set.\"},overflow:{type:ControlType.Enum,title:\"Overflow\",options:[\"hidden\",\"visible\",\"clip\",\"scroll\"],optionTitles:[\"Hidden\",\"Visible\",\"Clip\",\"Scroll\"],defaultValue:\"hidden\",description:\"How to handle content that overflows the container.\"},backgroundColor:{type:ControlType.Enum,title:\"Background Color\",options:[\"\",\"/Backgrounds/bg-primary\",\"/Backgrounds/bg-secondary\",\"/Backgrounds/bg-tertiary\",\"/Backgrounds/bg-quaternary\",\"/Backgrounds/bg-white\",\"/Backgrounds/bg-black\",\"/Backgrounds/bg-inverted-primary\",\"/Backgrounds/bg-inverted-secondary\",\"/Backgrounds/bg-inverted-tertiary\"],optionTitles:[\"Default\",\"Primary\",\"Secondary\",\"Tertiary\",\"Quaternary\",\"White\",\"Black\",\"Inverted Primary\",\"Inverted Secondary\",\"Inverted Tertiary\"],defaultValue:\"\",description:\"Background color for container and placeholder/loading state. Default uses tertiary.\"},showBorder:{type:ControlType.Boolean,title:\"Border\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Display border around the image container.\"},fill:{type:ControlType.Boolean,title:\"Fill Container\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Stretch the image to fill its parent (100% width and height).\"},loading:{type:ControlType.Enum,title:\"Loading\",options:[\"lazy\",\"eager\"],optionTitles:[\"Lazy\",\"Eager\"],displaySegmentedControl:true,defaultValue:\"lazy\",description:'Loading strategy. Use \"Eager\" for above-the-fold / hero images that should load immediately.'},// ─── 9. Advanced ─────────────────────────────────────────────────────────\nid:{type:ControlType.String,title:\"ID\",defaultValue:\"\",placeholder:\"e.g. my-element\",description:\"HTML id for the root element. Leave empty to omit the id attribute.\"},// ─── 10. System ────────────────────────────────────────────────────────────\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],displaySegmentedControl:false,defaultValue:\"desktop\",description:\"Select the breakpoint to match Framer's canvas.\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"default\",\"inverted\"],optionTitles:[\"Default\",\"Inverted\"],displaySegmentedControl:true,defaultValue:\"default\",description:FRAMER_THEME_DESCRIPTION_IMAGE}});\nexport const __FramerMetadata__ = {\"exports\":{\"ImageProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Image\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * CardFeatureSplit — shared split feature card.\n *\n * A presentational split card with an image on one side and content\n * (heading + description + CTA) on the other. Owns the canonical token\n * choices for the bunq feature card (border-radius, surface tint, padding,\n * gap, typography) so every section that renders this card gets identical\n * heights, padding and visual rhythm.\n *\n * Used by:\n *   - {@link ../organisms/SectionFeatureCardImage.tsx} (single static card)\n *   - {@link ../organisms/SectionFeatureCardImageStack.tsx} (interactive card stack)\n *   - {@link ../organisms/SectionBlogFeaturedArticle.tsx} (featured blog split card)\n *\n * The card is presentational — it does not animate itself. Wrap the card\n * in a `motion.*` element from the parent if section/stack-level animation\n * is needed.\n *\n * Surface:\n *   The card always uses the `\"liquid-glass\"` surface (Apple-style refractive\n *   glass overlay, frosted-glass fallback on Safari/Firefox / `prefers-reduced-motion`).\n *   The tone is left at the system default (`auto` → medium dark glass on the\n *   default theme, dark glass on the inverted theme), which keeps the card\n *   visually consistent with every other liquid-glass surface in the library.\n *   The `surface` prop is retained for programmatic overrides but is not\n *   exposed as a Framer property control.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight auto\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{forwardRef,useRef}from\"react\";// 2. Framer API\nimport{addPropertyControls,ControlType}from\"framer\";// 3. Design system utilities\nimport Tokens,{useEffectiveBreakpoint,isCanvasPhoneBreakpoint,isCanvasTabletBreakpoint,kernHeadingPlainText}from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{getThemeColors}from\"https://framerusercontent.com/modules/ggRBN6PctbBy9SMbbePI/P0AdJy2leJUHBULN6DZC/themeHelpers.js\";import{getCardPadding,getCardRadius,getGap}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";import{applyCardSurfaceStyle,CardSurfaceOverlay,getCardContentLayerStyle}from\"https://framerusercontent.com/modules/r2xtYErCxNjfPDPT3IRR/wYDfQlP0YfKuaLssIjDs/cardSurface.js\";import{PLACEHOLDER,HINT_IMAGE_URL}from\"https://framerusercontent.com/modules/ZO8py5W6dWspTZ6N8FoQ/ik33zGZQhIFSuzy6bsA1/placeholders.js\";import{getLinkUrl,safeUrl}from\"https://framerusercontent.com/modules/kNZJPvkIJZGGj8KxF53M/EVxL25LJacDR3InTjCol/linkHelpers.js\";import{PRESERVE_CONTROL_NEWLINES,isNonEmptyControlString,trimControlString}from\"https://framerusercontent.com/modules/gxwbCuOeX9Iq9kc5MH5p/k0Hn9o8CxLBqVGlxaK9j/controlTextStyles.js\";import{CMS_CARD_ROOT_ATTR}from\"https://framerusercontent.com/modules/cyGmgQReYxM74CJs0WW6/IaBl4aRmvHjipJBg6Oy5/useCmsFeaturedArticleSlot.js\";// 4. Component imports\nimport Image from\"https://framerusercontent.com/modules/bqYIcxbJlyzYlNmT2Fk4/UkHImJPOe8TOnpVtDScu/Image.js\";import Button from\"https://framerusercontent.com/modules/FkbrVksyiwmgD2bFsrtv/5HinRk2eRnqRbBBz4S3h/Button.js\";// ─── Defaults ─────────────────────────────────────────────────────────────────\n/** Default minimum height (px) for the image side, per breakpoint. Mirrors\n *  the original SectionFeatureCardImage values so existing layouts don't shift. */const DEFAULT_IMAGE_MIN_HEIGHT_PX={phone:240,tablet:320,desktop:400};// ─── Component ────────────────────────────────────────────────────────────────\nconst CardFeatureSplitInternal=/*#__PURE__*/forwardRef(function CardFeatureSplitInternal(props,ref){const{imageFit=\"cover\",// System\nbreakpoint:breakpointProp,theme=\"default\",surface=\"liquid-glass\",// Layout\nimagePosition=\"right\",headingTag=\"h2\",headingId,// Content\nheading,description,disclaimer,disclaimerUrl,buttonLabel,buttonId,buttonTabIndex,buttonVisuallyHidden=false,buttonVariant=\"solid\",buttonLink,buttonOpenInNewTab=false,buttonAriaLabel,onButtonClick,prependContent,afterHeadingContent,// Image\nimageSource=false,image,imageUrl=\"\",imageAlt,imageMinHeight,// Sizing\nfillHeight=false,fullWidthButton,peekBehind=false,// Override\nid,cmsCardRoot=false,style}=props;// ────────────────────────────────────────\n// HOOKS\n// ────────────────────────────────────────\nconst tokensBreakpoint=useEffectiveBreakpoint(breakpointProp??\"desktop\");const colors=getThemeColors(theme);const isCanvasPhone=isCanvasPhoneBreakpoint(breakpointProp??\"desktop\");const isCanvasTablet=isCanvasTabletBreakpoint(breakpointProp??\"desktop\");// ────────────────────────────────────────\n// DERIVED\n// ────────────────────────────────────────\nconst isImageLeft=imagePosition===\"left\";const peekLayout=peekBehind;const isFullWidthButton=fullWidthButton??isCanvasPhone;const showDisclaimer=typeof disclaimer===\"string\"&&disclaimer.trim()!==\"\";const resolvedButtonLabel=trimControlString(buttonLabel);const showButton=isNonEmptyControlString(buttonLabel);// Funnel through safeUrl so a `javascript:`/`data:` value typed into\n// the Framer Link control can never reach the rendered href.\nconst disclaimerHref=safeUrl(getLinkUrl(disclaimerUrl));// Image resolution mirrors SectionFeatureCardImage: in File mode we\n// prefer the uploaded ResponsiveImage; if none is uploaded we still\n// fall back to a URL string (PLACEHOLDER.IMAGE) so the card never\n// collapses into a content-only layout while a Framer user is still\n// wiring up the controls. The bunq `Image` atom accepts a string in\n// place of the ResponsiveImage object when `source = true`.\nconst useFileUpload=imageSource===true;const hasUploadedImage=Boolean(image?.src);const fallbackUrl=imageUrl?.trim()||PLACEHOLDER.IMAGE;const showImage=true;const imageForAtom=useFileUpload?hasUploadedImage?image:fallbackUrl:undefined;const imageUrlForAtom=useFileUpload?undefined:fallbackUrl;const cardBorderRadius=getCardRadius(tokensBreakpoint,\"large\");const cardSurfaceTint=colors.bgTertiary;/** Split layout: keep min height modest — real cap is `splitCardMaxHeight` below. */const resolvedImageMinHeight=imageMinHeight??(!peekLayout&&!isCanvasPhone&&showImage?Math.round(DEFAULT_IMAGE_MIN_HEIGHT_PX[tokensBreakpoint]*.52):DEFAULT_IMAGE_MIN_HEIGHT_PX[tokensBreakpoint]);/** Desktop/tablet split (two columns): use frosted tint on the card columns — full-card LiquidGlass samples the photo and reads as “double image”. */const isTwoColumnSplit=!peekLayout&&!isCanvasPhone&&showImage;const useContentColumnFrostedGlass=surface===\"liquid-glass\"&&isTwoColumnSplit;/**\n         * {@link ../organisms/SectionFeatureCardImageStack} is the only consumer that passes\n         * `fillHeight`: stacked cards sit in one grid cell with transforms. A translucent\n         * frost + backdrop-filter lets copy from the deck behind read through; use an opaque\n         * column and skip backdrop there only.\n         */const stackDeckOpaqueContentColumn=fillHeight&&useContentColumnFrostedGlass;/**\n         * {@link ../organisms/SectionFeatureCardImageStack} passes `fillHeight` for the\n         * desktop/tablet stacked deck only (cards share one grid cell). Its phone layout is\n         * a horizontal carousel without `fillHeight`, so liquid-glass on phone uses the\n         * full-card overlay path below rather than this opaque column treatment.\n         */const stackDeckOpaquePhone=fillHeight&&isCanvasPhone&&surface===\"liquid-glass\"&&!peekBehind&&showImage;/** Tint + backdrop: fully opaque when stacked deck must not ghost (two-column or phone). */const opaqueStackDeckTint=stackDeckOpaqueContentColumn||stackDeckOpaquePhone;/** Full-card refract: phone (non-stack), peek strips, or non–liquid-glass. Stack phone uses opaque layers above. */const showFullCardLiquidOverlay=surface===\"liquid-glass\"&&!peekBehind&&!useContentColumnFrostedGlass&&!stackDeckOpaquePhone;const frostTintRgb=Tokens.colorToRgb(colors.bgSecondary);/**\n         * Only peek-behind deck strips need a viewport cap (full-width strip + fillHeight would\n         * otherwise grow very tall). Two-column stack cards ({@link SectionFeatureCardImageStack})\n         * use `fillHeight` for grid stretch alignment but must stay content-height — a max-height\n         * here clipped copy and imagery.\n         */const shouldCapStackCardHeight=Boolean(fillHeight)&&!isCanvasPhone&&showImage&&peekBehind;const splitCardMaxHeight=shouldCapStackCardHeight?peekBehind?\"min(38vh, 260px)\":isCanvasTablet?\"min(68vh, 420px)\":\"min(62vh, 380px)\":undefined;/** Peek strips use 16:9 so full-width images don’t resolve to a square as tall as the canvas. */const splitImageAspectRatio=peekBehind?\"16:9\":\"1:1\";/**\n         * Frosted content column: high-opacity tint plus backdrop blur (single-card sections).\n         * Stacked deck ({@link ../organisms/SectionFeatureCardImageStack}, `fillHeight`) uses a\n         * fully opaque tint with no backdrop-filter so cards behind do not ghost through.\n         *//** Stronger than nav `lg` (20px) for the frosted-glass column on standalone split cards. */const splitColumnBackdrop=\"blur(32px) saturate(170%)\";const frostBackground=theme===\"inverted\"?`rgba(${frostTintRgb}, ${opaqueStackDeckTint?1:.97})`:`rgba(${frostTintRgb}, ${opaqueStackDeckTint?1:.94})`;const columnHairline=theme===\"inverted\"?\"1px solid var(--split-card-column-hairline-inverted, rgba(0, 0, 0, 0.1))\":\"1px solid var(--split-card-column-hairline-default, rgba(255, 255, 255, 0.12))\";/**\n         * Vertical/horizontal hairline + inset highlight between copy and image columns.\n         * Opaque stack-deck cards ({@link SectionFeatureCardImageStack}, `fillHeight`) tint both\n         * columns the same — a divider on the text column only reads as a box around the copy.\n         */const usesFrostOrOpaqueStackDeck=useContentColumnFrostedGlass||stackDeckOpaquePhone;const showFrostColumnDivider=usesFrostOrOpaqueStackDeck&&!opaqueStackDeckTint;// ────────────────────────────────────────\n// STYLES\n// ────────────────────────────────────────\n// Card root: split layout, surface, radius, shadow.\n// applyCardSurfaceStyle swaps to transparent + drops the shadow when\n// surface === \"liquid-glass\" so the overlay paints the surface.\nconst cardRootStyle={...applyCardSurfaceStyle({display:\"grid\",gridTemplateColumns:peekLayout||isCanvasPhone||!showImage?\"1fr\":\"minmax(0, 1fr) minmax(0, 1fr)\",width:\"100%\",height:fillHeight?\"100%\":undefined,borderRadius:cardBorderRadius,overflow:\"hidden\",backgroundColor:cardSurfaceTint,boxShadow:Tokens.getShadow(\"large\"),minWidth:0,...isTwoColumnSplit?{gridTemplateRows:\"minmax(0, 1fr)\",alignItems:\"stretch\",minHeight:0}:{},...style},surface),...peekBehind?{backgroundColor:colors.bgPrimary}:{},...splitCardMaxHeight?{maxHeight:splitCardMaxHeight}:{}};// Layer that holds the actual content above the glass overlay.\nconst contentLayerStyle=getCardContentLayerStyle(surface);const imageSectionStyle={...contentLayerStyle,backgroundColor:useContentColumnFrostedGlass||stackDeckOpaquePhone?frostBackground:\"transparent\",isolation:useContentColumnFrostedGlass||stackDeckOpaquePhone?\"isolate\":undefined,display:\"flex\",minHeight:shouldCapStackCardHeight?0:resolvedImageMinHeight,overflow:\"hidden\",order:isImageLeft?1:2,minWidth:0,alignSelf:\"stretch\"};const contentSectionStyle={...contentLayerStyle,backgroundColor:useContentColumnFrostedGlass||stackDeckOpaquePhone?frostBackground:surface===\"liquid-glass\"?\"transparent\":cardSurfaceTint,...useContentColumnFrostedGlass||stackDeckOpaquePhone?{...showFrostColumnDivider&&useContentColumnFrostedGlass?{borderRight:isImageLeft?undefined:columnHairline,borderLeft:isImageLeft?columnHairline:undefined}:{},...showFrostColumnDivider&&stackDeckOpaquePhone?{...isImageLeft?{borderTop:columnHairline}:{borderBottom:columnHairline}}:{},...!opaqueStackDeckTint?{backdropFilter:splitColumnBackdrop,WebkitBackdropFilter:splitColumnBackdrop}:{},...showFrostColumnDivider?{boxShadow:theme===\"inverted\"?\"inset 0 1px 0 var(--split-card-inset-edge-inverted, rgba(0, 0, 0, 0.06))\":\"inset 0 1px 0 var(--split-card-inset-edge-default, rgba(255, 255, 255, 0.08))\"}:{}}:{},padding:isCanvasPhone?getCardPadding(tokensBreakpoint):`calc(2 * ${getCardPadding(tokensBreakpoint)})`,display:\"flex\",flexDirection:\"column\",gap:getGap(\"md\",tokensBreakpoint),justifyContent:\"center\",order:isImageLeft?2:1,minWidth:0,alignSelf:\"stretch\",height:isTwoColumnSplit?\"100%\":undefined,boxSizing:\"border-box\",minHeight:useContentColumnFrostedGlass||stackDeckOpaquePhone?0:undefined,overflowWrap:\"break-word\"};const buttonContainerStyle={display:\"flex\",marginTop:getGap(\"sm\",tokensBreakpoint),width:isFullWidthButton?\"100%\":\"fit-content\"};const headingStyles={...Tokens.getTypographyStyles(\"/Headline 2XL/Heavy\",tokensBreakpoint),color:colors.textPrimary,margin:0,...PRESERVE_CONTROL_NEWLINES};const descriptionStyles={...Tokens.getTypographyStyles(\"/Subheadline/MD\",tokensBreakpoint),color:colors.textSecondary,margin:0,...PRESERVE_CONTROL_NEWLINES};const disclaimerStyles={...Tokens.getTypographyStyles(\"/Legal/Default\",tokensBreakpoint),color:colors.textSecondary,margin:0,...PRESERVE_CONTROL_NEWLINES};const HeadingTag=headingTag;return /*#__PURE__*/_jsxs(\"div\",{ref:ref,id:id,...cmsCardRoot?{[CMS_CARD_ROOT_ATTR]:\"\"}:{},style:cardRootStyle,children:[showFullCardLiquidOverlay&&/*#__PURE__*/_jsx(CardSurfaceOverlay,{surface:surface,radius:cardBorderRadius,theme:theme}),showImage&&/*#__PURE__*/_jsx(\"div\",{style:imageSectionStyle,children:/*#__PURE__*/_jsx(Image,{source:useFileUpload,imageUrl:imageForAtom,imageUrlUrl:imageUrlForAtom,alt:(()=>{const legacyPlaceholder=\"Brief description of the image for accessibility\";const resolved=imageAlt??image?.alt??\"\";if(resolved===legacyPlaceholder)return heading;return resolved||heading;})(),aspectRatio:splitImageAspectRatio,objectFit:imageFit,objectPosition:\"center\",borderRadius:\"radius-none\",overflow:\"hidden\",fill:true,style:{flex:\"1 1 0\",minWidth:0,minHeight:0}})}),!peekBehind&&/*#__PURE__*/_jsxs(\"div\",{style:contentSectionStyle,children:[prependContent,heading&&/*#__PURE__*/_jsx(HeadingTag,{id:headingId,style:headingStyles,children:kernHeadingPlainText(heading)}),afterHeadingContent,description&&/*#__PURE__*/_jsx(\"p\",{style:descriptionStyles,children:description}),showDisclaimer&&/*#__PURE__*/_jsxs(\"p\",{style:disclaimerStyles,children:[\"*\",\" \",disclaimerHref?/*#__PURE__*/_jsx(\"a\",{href:disclaimerHref,style:{color:colors.textLink,textDecoration:\"underline\",textUnderlineOffset:Tokens.getSpacing(2)},children:disclaimer}):disclaimer]}),showButton&&/*#__PURE__*/_jsx(\"div\",{style:{...buttonContainerStyle,...buttonVisuallyHidden?{visibility:\"hidden\",pointerEvents:\"none\"}:{}},children:/*#__PURE__*/_jsx(Button,{breakpoint:tokensBreakpoint,label:resolvedButtonLabel,variant:buttonVariant,theme:theme,size:\"medium\",link:getLinkUrl(buttonLink)||undefined,openInNewTab:buttonOpenInNewTab,...buttonAriaLabel?.trim()?{ariaLabel:buttonAriaLabel.trim()}:{},onClick:onButtonClick,widthMode:isFullWidthButton?\"full\":\"intrinsic\",id:buttonId||undefined,...buttonTabIndex!==undefined?{tabIndex:buttonTabIndex}:{},...buttonTabIndex===-1?{ariaHidden:true}:{}})})]})]});});export default function CardFeatureSplit(props){const fallbackRef=useRef(null);const{ref,...rest}=props;return /*#__PURE__*/_jsx(CardFeatureSplitInternal,{...rest,ref:ref??fallbackRef});}CardFeatureSplit.displayName=\"Card Feature Split - Molecule\";// sync 20260519-link-fix-v2\n// ─── Property controls ────────────────────────────────────────────────────────\naddPropertyControls(CardFeatureSplit,{// ─── 1. Content ────────────────────────────────────────────────────────────\nprependContent:{type:ControlType.Slot,title:\"Before Heading\",maxCount:1,description:\"Optional content before the heading (e.g. category badge).\"},afterHeadingContent:{type:ControlType.Slot,title:\"After Heading\",maxCount:1,description:\"Optional content after the heading, before the description.\"},heading:{type:ControlType.String,title:\"Heading\",defaultValue:PLACEHOLDER.HEADING,placeholder:\"e.g. Short headline (one line)\",displayTextArea:true,description:\"Short headline displayed at the top of the text column.\"},description:{type:ControlType.String,title:\"Description\",defaultValue:PLACEHOLDER.DESCRIPTION,placeholder:\"One or two sentences describing the section\",displayTextArea:true,description:\"Supporting copy below the heading. One or two sentences works best.\"},disclaimer:{type:ControlType.String,title:\"Disclaimer\",defaultValue:\"Terms and conditions apply.\",placeholder:\"e.g. Terms and conditions apply.\",description:\"Disclaimer text shown below the description (smaller text). Leave empty to hide.\",displayTextArea:true},buttonLabel:{type:ControlType.String,title:\"Button Label\",defaultValue:\"\",placeholder:\"Enter button label…\",description:\"Call-to-action label. Leave empty to hide the button.\"},// ─── 2. Links ──────────────────────────────────────────────────────────────\ndisclaimerUrl:{type:ControlType.Link,defaultValue:\"\",title:\"Disclaimer Link\",description:\"Optional link applied to the disclaimer text. Leave empty for plain text.\"},buttonLink:{type:ControlType.Link,title:\"Button Link\",defaultValue:\"\",description:\"When set, the CTA renders as a link. Leave empty for a plain button.\"},// ─── 3. Media ────────────────────────────────────────────────────────────────\nimageSource:{type:ControlType.Boolean,title:\"Image Source\",defaultValue:false,enabledTitle:\"File\",disabledTitle:\"URL\",description:\"Pick whether the image comes from a Framer file upload or a URL.\"},image:{type:ControlType.ResponsiveImage,title:\"Image\",hidden:p=>!p.imageSource,description:\"Responsive image uploaded via Framer. Shown when Image Source is File.\"},imageUrl:{type:ControlType.String,title:\"Image URL\",defaultValue:PLACEHOLDER.IMAGE,placeholder:HINT_IMAGE_URL,hidden:p=>p.imageSource===true,description:\"External image URL. Shown when Image Source is URL.\"},imageAlt:{type:ControlType.String,title:\"Image Alt\",defaultValue:\"\",placeholder:\"Describe the image (or leave empty for decorative)\",description:\"Alt text for accessibility. Leave empty when the image is decorative. Only needed for URL images; File uploads use their own alt.\",hidden:p=>p.imageSource===true},imageFit:{type:ControlType.Enum,title:\"Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],displaySegmentedControl:true,defaultValue:\"cover\",description:\"How the image fits its container.\"},// ─── 6. Configuration ──────────────────────────────────────────────────────\nimagePosition:{type:ControlType.Enum,title:\"Image Position\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],displaySegmentedControl:true,defaultValue:\"right\",description:\"Side the image sits on.\"},headingTag:{type:ControlType.Enum,title:\"Heading Tag\",options:[\"h2\",\"h3\",\"h4\"],optionTitles:[\"H2\",\"H3\",\"H4\"],displaySegmentedControl:true,defaultValue:\"h2\",description:\"Heading element. Use H2 only when the card is the page's main heading.\"},buttonVariant:{type:ControlType.Enum,title:\"Button Variant\",options:[\"solid\",\"ghost\",\"outline\"],optionTitles:[\"Solid\",\"Ghost\",\"Outline\"],defaultValue:\"solid\",description:\"Visual style of the call-to-action button.\"},// ─── 7. Behavior / Events ──────────────────────────────────────────────────\nbuttonOpenInNewTab:{type:ControlType.Boolean,title:\"Button Opens in New Tab\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:p=>!getLinkUrl(p.buttonLink),description:\"When the CTA is a link, open it in a new browser tab.\"},onButtonClick:{type:ControlType.EventHandler,title:\"On Button Click\",description:\"Click handler attached to the call-to-action button.\"},// ─── 8. Analytics ──────────────────────────────────────────────────────────\nbuttonId:{type:ControlType.String,title:\"Button ID\",defaultValue:\"card-feature-split-cta\",placeholder:\"e.g. card-feature-cta\",description:\"DOM id used by analytics and anchor links.\"},// ─── 10. System ────────────────────────────────────────────────────────────\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],displaySegmentedControl:false,defaultValue:\"desktop\",description:\"Select the breakpoint to match Framer's canvas.\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"default\",\"inverted\"],optionTitles:[\"Default\",\"Inverted\"],displaySegmentedControl:true,defaultValue:\"default\",description:\"Default is dark mode, inverted is light mode. Theme passes to all children.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"CardFeatureSplitProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"CardFeatureSplit\",\"slots\":[\"prependContent\",\"afterHeadingContent\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * SectionFeatureCardImageStack - Feature section with an interactive card stack.\n *\n * Displays an optional section header (heading + description), then multiple\n * feature sections, each rendered as a full split-card (image + text + CTA).\n * The active feature's card sits on top of the stack; remaining cards peek\n * out behind it with depth (offset, scale and dim). Switching tabs (or\n * clicking a card behind) brings that feature's card to the front with a\n * smooth spring transition. On phone, tabs are hidden and cards lay out in a\n * horizontal scroll strip (one card plus a peek of the next). When two or more\n * tabs are shown on larger breakpoints, tabs auto-advance on a timer with the\n * same progress overlay as SectionFeatureImageTabs.\n *\n * Cards support an optional `surface = \"liquid-glass\"` variant that swaps\n * the solid card surface for an Apple-style refractive glass overlay\n * (frosted-glass fallback on Safari/Firefox / `prefers-reduced-motion`).\n *\n * Images: use empty alt for decorative images; set imageAlt for meaningful content.\n * Default image URLs use the generic `PLACEHOLDER.IMAGE` constant until custom assets are set.\n * Card footnote and CTA links: use **Card Disclaimer** / **Card Disclaimer Link** and per-feature **Button Link** controls in Framer (see property controls).\n *\n * CMS mode renders a horizontal scroll row (matching the phone carousel layout) — no stacking or tab sync.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 1280\n * @framerIntrinsicHeight auto\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight auto.\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{forwardRef,useRef,useState,useEffect,useId,useMemo}from\"react\";// 2. Framer Motion (for animations/transitions)\nimport{motion}from\"framer-motion\";// 3. Framer API\nimport{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// 4. Design system utilities\nimport Tokens,{useReducedMotion,useEffectiveBreakpoint,isCanvasPhoneBreakpoint,kernHeadingPlainText}from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{getThemeColors,getPlaceholderColors}from\"https://framerusercontent.com/modules/ggRBN6PctbBy9SMbbePI/P0AdJy2leJUHBULN6DZC/themeHelpers.js\";import{getGap,getContainerPadding,getSectionPaddingY,getContainerMaxWidth,getSectionWrapperStyles,getCardRadius,getTestimonialPhoneScrollItemStyle,getTestimonialPhoneScrollListStyle}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";import{SECTION_BACKGROUND_DEFAULTS,getSectionBackgroundLayer,getSectionContentStackStyle,getSectionRootBackgroundStyle,sectionBackgroundPropertyControls}from\"https://framerusercontent.com/modules/hqFOkpWLA64fdQpB8yjs/5dnFOIkZzqGFDL0Lk6r0/sectionBackground.js\";// 5. Link helpers. Feature image URLs use ControlType.String to allow external URLs; File source uses ControlType.ResponsiveImage.\nimport{getLinkUrl,safeUrl}from\"https://framerusercontent.com/modules/kNZJPvkIJZGGj8KxF53M/EVxL25LJacDR3InTjCol/linkHelpers.js\";// 6. Local utilities\nimport{PLACEHOLDER,HINT_ELEMENT_ID,HINT_IMAGE_ALT,HINT_IMAGE_URL}from\"https://framerusercontent.com/modules/ZO8py5W6dWspTZ6N8FoQ/ik33zGZQhIFSuzy6bsA1/placeholders.js\";import{getSectionRestProps}from\"https://framerusercontent.com/modules/cDYhBLzprb1wvGj7NHO1/lNG2bFb2BzhPKxwAfhqo/sectionProps.js\";import{resolveIndexedPanelId,resolveSectionIdPrefix}from\"https://framerusercontent.com/modules/V8DZ1j6fmzxP1pB8h5BJ/sPSFCEug6lYXxMvPVu5Z/resolveElementId.js\";import{isFramerStaticMotionContext}from\"https://framerusercontent.com/modules/H2peOJaolSTyCFFNIwVC/MBjueh7ML19qP5n6r5VM/framerStaticMotionContext.js\";import{useSectionAnimation,getSectionMotionInitial}from\"https://framerusercontent.com/modules/queGQX2T65iTgpRx9F0b/k4NbRLg9SuyP7Adl7kwV/useSectionAnimation.js\";import{createSectionVariants}from\"https://framerusercontent.com/modules/hUj3FWgpcDAgyV0oQMgI/bggoehe4d3ShZ3F54NQX/motionVariants.js\";import{getIconRaw,ICON_OPTIONS_WITH_NONE,ICON_OPTION_TITLES}from\"https://framerusercontent.com/modules/fJNdNvtkorPxGrDlmhln/LiwKJUReu5R3WX0AxbqC/icons.js\";import{ZOOM_STANDARD_24_TAB_STRIP_INSET,zoomStandard24ViewBox}from\"https://framerusercontent.com/modules/keR2epPkn1MdvCLnDSBc/z4ga9Xl53MGZI0XlY2dd/svg.js\";import{PRESERVE_CONTROL_NEWLINES,isNonEmptyControlString,trimControlString}from\"https://framerusercontent.com/modules/gxwbCuOeX9Iq9kc5MH5p/k0Hn9o8CxLBqVGlxaK9j/controlTextStyles.js\";import{useCmsCollectionLayout}from\"https://framerusercontent.com/modules/V5oXs13pLFW7p9OCzVV6/H4qL52EPbhHQ1nyiGero/cmsCollectionLayout.js\";import{injectBreakpointIntoCmsSlot}from\"https://framerusercontent.com/modules/JoOjyFlpGSMUJ782HrYl/eDQex6l2k4ChTrVg2IWE/injectBreakpointIntoCmsSlot.js\";import{isFramerDesignEnvironment}from\"https://framerusercontent.com/modules/fLnoI6ZB9Br9mhUvxmjW/tWYaqzIJ6baBNTssXrK2/useInViewport.js\";import{getCenteredSectionHeaderStackLayout,getStandardSectionHeadlineStyles,getStandardSectionSubheadlineStyles}from\"https://framerusercontent.com/modules/I2aetWBGnJ2PtHqP9vUx/gBqJ4oOz7j2nUTVYhJnw/sectionHeaderCopy.js\";// 7. Component imports\nimport TabsGroup from\"https://framerusercontent.com/modules/Wgq6KOAh63wsfhwspJFq/xoty6hVVIe7ZSZhwrpOX/TabsGroup.js\";import CardFeatureSplit from\"https://framerusercontent.com/modules/yBBYnuyRsa8SwEozWRDp/Ck8tGu4jq8GhMssnJS26/CardFeatureSplit.js\";/** Per-tab accent colors so each tab has a distinct color when active (aligned with SectionLayoutTabsCard). */const TAB_ACCENT_COLORS=[\"green\",\"blue\",\"orange\",\"purple\",\"turquoise\",\"fuchsia\"];const TAB_ICON_OPTIONS=[\"default\",...ICON_OPTIONS_WITH_NONE];const TAB_ICON_OPTION_TITLES={default:\"Default\",...ICON_OPTION_TITLES};const LEGACY_BUNQ_TAB_ICON_DEFAULTS=[\"user\",\"wallet\",\"credit-card\",\"rocket\",\"globe\",\"star\"];/**\n * Time between auto-advance tab switches (ms). Shared by the interval timer\n * and passed as `autoAdvanceMs` to TabsGroup so the on-tab progress overlay\n * finishes filling exactly when the next tab activates.\n */const AUTO_ADVANCE_MS=8e3;/** WebKit scrollbar hide for the phone horizontal card strip. */const PHONE_CAROUSEL_SCROLLBAR_HIDE_STYLE=\"[data-bunq-feature-card-image-stack-hscroll]::-webkit-scrollbar{display:none;width:0;height:0;}\";// ─── Card stack constants (aligned with molecules/CardStack.tsx deck geometry) ──\n/** Vertical offset (as % of card height). Negative translateY stacks cards upward from bottom anchor. */const STACK_OFFSET_PERCENT=11;/** Per-step scale reduction for cards behind the front. */const STACK_SCALE_STEP=.07;/** Per-step brightness reduction (`filter: brightness()`) for cards behind. */const STACK_DIM_STEP=.15;/** Maximum total cards to keep visible in the deck (front card included). */const STACK_MAX_VISIBLE_CARDS_DESKTOP=3;/**\n * Single layout height for one stacked card: the grid can occasionally report a\n * taller box than any child; clamp to the tallest in-flow child so peek\n * padding stays proportional to the real card, not an inflated grid rect.\n */function measureStackBasisHeightPx(gridEl){const rectH=gridEl.getBoundingClientRect().height;const offsetH=gridEl.offsetHeight;let h=Math.min(rectH,offsetH);const children=Array.from(gridEl.children);if(children.length>0){const maxChild=Math.max(...children.map(c=>Math.max(c.offsetHeight,c.getBoundingClientRect().height)));if(Number.isFinite(maxChild)&&maxChild>0){h=Math.min(h,maxChild);}}return Math.max(0,h);}/**\n * `padding-top` on the clip wrapper so behind-cards (`translateY` up from bottom)\n * are not clipped. Raw need scales ~linearly with card height; the soft cap\n * keeps full-width / very tall cards from reserving a large empty band under the tabs.\n */function getStackClipPeekPaddingPx(stackBasisHeightPx,visibleBehindCount){if(visibleBehindCount<=0||stackBasisHeightPx<=0)return 0;const depth=visibleBehindCount;const raw=Math.ceil(stackBasisHeightPx*STACK_OFFSET_PERCENT*depth*1.04/100+10);const softCap=Math.round(stackBasisHeightPx*.12)+72;return Math.max(32,Math.min(raw,softCap,220));}/** Keeps one stack card per configured slot when Framer props are still empty (avoids tab/card count mismatch). */const EMPTY_FEATURE_SLOT={};/** Trimmed CTA label for `CardFeatureSplit`; always a string so Framer does not apply child control defaults. */function resolveFeatureButtonLabel(label){return trimControlString(label);}// ============================================\n// COMPONENT\n// ============================================\nconst SectionFeatureCardImageStackInternal=/*#__PURE__*/forwardRef(function SectionFeatureCardImageStackInternal(props,ref){const{breakpoint:breakpointProp=\"desktop\",theme=\"default\",tabSurface=\"liquid-glass\",surface=\"liquid-glass\",contentSource=\"manual\",collectionList,// Content props.\nheading=\"Short section heading goes here\",description=PLACEHOLDER.DESCRIPTION,disclaimer=\"Terms and conditions apply.\",disclaimerUrl,cardDisclaimer=\"\",cardDisclaimerUrl,numFeatures=3,numTabs:numTabsProp=3,feature1Heading,feature1Description,feature1ButtonLabel,feature1ButtonId,feature1ButtonLink,feature1ButtonOpenInNewTab=false,feature1Image,feature1ImageUrl=PLACEHOLDER.IMAGE,feature1ImageSource=true,feature1ImageAlt,feature1ImageFit,feature2Heading,feature2Description,feature2ButtonLabel,feature2ButtonId,feature2ButtonLink,feature2ButtonOpenInNewTab=false,feature2Image,feature2ImageUrl=PLACEHOLDER.IMAGE,feature2ImageSource=true,feature2ImageAlt,feature2ImageFit,feature3Heading,feature3Description,feature3ButtonLabel,feature3ButtonId,feature3ButtonLink,feature3ButtonOpenInNewTab=false,feature3Image,feature3ImageUrl=PLACEHOLDER.IMAGE,feature3ImageSource=true,feature3ImageAlt,feature3ImageFit,feature4Heading,feature4Description,feature4ButtonLabel,feature4ButtonId,feature4ButtonLink,feature4ButtonOpenInNewTab=false,feature4Image,feature4ImageUrl=PLACEHOLDER.IMAGE,feature4ImageSource=true,feature4ImageAlt,feature4ImageFit,feature5Heading,feature5Description,feature5ButtonLabel,feature5ButtonId,feature5ButtonLink,feature5ButtonOpenInNewTab=false,feature5Image,feature5ImageUrl=PLACEHOLDER.IMAGE,feature5ImageSource=true,feature5ImageAlt,feature5ImageFit,feature6Heading,feature6Description,feature6ButtonLabel,feature6ButtonId,feature6ButtonLink,feature6ButtonOpenInNewTab=false,feature6Image,feature6ImageUrl=\"\",feature6ImageSource=false,feature6ImageAlt,feature6ImageFit,showTabs=true,tab1Label=\"Tab 1\",tab2Label=\"Tab 2\",tab3Label=\"Tab 3\",tab4Label=\"Tab 4\",tab5Label=\"Tab 5\",tab6Label=\"Tab 6\",tab1Icon=\"default\",tab2Icon=\"default\",tab3Icon=\"default\",tab4Icon=\"default\",tab5Icon=\"default\",tab6Icon=\"default\",tab1Id,tab2Id,tab3Id,tab4Id,tab5Id,tab6Id,panel1Id,panel2Id,panel3Id,panel4Id,panel5Id,panel6Id,defaultActiveTab=1,backgroundVariant=SECTION_BACKGROUND_DEFAULTS.backgroundVariant,backgroundPreset=SECTION_BACKGROUND_DEFAULTS.backgroundPreset,backgroundOverlayDirection=SECTION_BACKGROUND_DEFAULTS.backgroundOverlayDirection,backgroundShowOverlay=SECTION_BACKGROUND_DEFAULTS.backgroundShowOverlay,useMontserrat=SECTION_BACKGROUND_DEFAULTS.useMontserrat,// Layout props.\nimagePosition=\"right\",sectionId,cardsAriaLabel=\"Feature cards\",sectionsAriaLabel=\"Feature sections\",// Common props.\nstyle,onTabChange,children,...rest}=props;// ========================================\n// HOOKS\n// ========================================\nconst{sectionRef,sectionRefObject,animate,hasMounted}=useSectionAnimation(ref);const breakpoint=useEffectiveBreakpoint(breakpointProp,sectionRefObject);const colors=getThemeColors(theme);const{sectionBgColor,isGradient,backgroundLayer}=getSectionBackgroundLayer({variant:backgroundVariant,preset:backgroundPreset,overlayDirection:backgroundOverlayDirection,showOverlay:backgroundShowOverlay,theme,colors});const reducedMotion=useReducedMotion();const isStaticRenderer=useIsStaticRenderer();const reactId=useId();const idPrefix=resolveSectionIdPrefix(sectionId,reactId,\"section-feature-card-image-stack\");const headingId=`${idPrefix}-heading`;const showDisclaimer=typeof disclaimer===\"string\"&&disclaimer.trim()!==\"\";// Funnel through safeUrl so a `javascript:`/`data:` value typed into\n// the Framer Link control can never reach the rendered href.\nconst disclaimerHref=safeUrl(getLinkUrl(disclaimerUrl));const isCanvasPhone=isCanvasPhoneBreakpoint(breakpointProp);const isPhoneBreakpoint=breakpoint===\"phone\";/** Phone uses a horizontal scroll strip instead of the stacked deck. */const usePhoneCarouselLayout=isPhoneBreakpoint||isCanvasPhone;const effectiveNumFeatures=Math.min(6,Math.max(1,numFeatures??1));const numTabs=Math.min(6,Math.max(2,typeof numTabsProp===\"number\"?numTabsProp:6));const tabBarEnabled=showTabs!==false&&numTabs>=2;const showManualTabs=tabBarEnabled&&!usePhoneCarouselLayout;/**\n         * Cards in the stack: when the tab bar is on, include enough slots for both\n         * \"Number of Tabs\" and \"Number of Features\" (whichever is higher) so extra\n         * tabs always have a card. Phone has no tab bar, so it only renders configured feature slots.\n         */const cardSlotCount=showManualTabs?Math.max(numTabs,effectiveNumFeatures):effectiveNumFeatures;/** Upper bound for active stack index (always matches card count − 1). */const maxActiveIndex=Math.max(0,cardSlotCount-1);// Active tab index (0-based). Drives which card is on top of the stack.\nconst[activeTabIndex,setActiveTabIndex]=useState(()=>Math.max(0,Math.min((defaultActiveTab??1)-1,maxActiveIndex)));/** Stops timed tab rotation after the visitor selects a tab or promotes a card. */const[autoAdvancePaused,setAutoAdvancePaused]=useState(false);// Sync active index when default tab or stack size changes (skip no-op sets).\nuseEffect(()=>{const cap=Math.max(0,cardSlotCount-1);const newIndex=Math.max(0,Math.min((defaultActiveTab??1)-1,cap));setActiveTabIndex(prev=>prev===newIndex?prev:newIndex);},[defaultActiveTab,cardSlotCount]);// ========================================\n// DERIVED STATE\n// ========================================\nconst buildFeature=(heading,description,buttonLabel,buttonId,buttonLink,buttonOpenInNewTab,image,imageUrl,imageSource,imageAlt,imageFit)=>{const hasButtonLink=buttonLink!=null&&getLinkUrl(buttonLink)!==\"\";const resolvedButtonLabel=resolveFeatureButtonLabel(buttonLabel);if(heading!==undefined||description!==undefined||isNonEmptyControlString(buttonLabel)||hasButtonLink||image!==undefined||imageUrl!==undefined||imageAlt!==undefined){return{heading,description,buttonLabel:resolvedButtonLabel||undefined,buttonId,buttonLink,buttonOpenInNewTab:buttonOpenInNewTab??false,image,imageUrl,imageSource,imageAlt,imageFit:imageFit??\"cover\"};}return undefined;};const feature1=buildFeature(feature1Heading,feature1Description,feature1ButtonLabel,feature1ButtonId,feature1ButtonLink,feature1ButtonOpenInNewTab,feature1Image,feature1ImageUrl,feature1ImageSource,feature1ImageAlt,feature1ImageFit);const feature2=buildFeature(feature2Heading,feature2Description,feature2ButtonLabel,feature2ButtonId,feature2ButtonLink,feature2ButtonOpenInNewTab,feature2Image,feature2ImageUrl,feature2ImageSource,feature2ImageAlt,feature2ImageFit);const feature3=buildFeature(feature3Heading,feature3Description,feature3ButtonLabel,feature3ButtonId,feature3ButtonLink,feature3ButtonOpenInNewTab,feature3Image,feature3ImageUrl,feature3ImageSource,feature3ImageAlt,feature3ImageFit);const feature4=buildFeature(feature4Heading,feature4Description,feature4ButtonLabel,feature4ButtonId,feature4ButtonLink,feature4ButtonOpenInNewTab,feature4Image,feature4ImageUrl,feature4ImageSource,feature4ImageAlt,feature4ImageFit);const feature5=buildFeature(feature5Heading,feature5Description,feature5ButtonLabel,feature5ButtonId,feature5ButtonLink,feature5ButtonOpenInNewTab,feature5Image,feature5ImageUrl,feature5ImageSource,feature5ImageAlt,feature5ImageFit);const feature6=buildFeature(feature6Heading,feature6Description,feature6ButtonLabel,feature6ButtonId,feature6ButtonLink,feature6ButtonOpenInNewTab,feature6Image,feature6ImageUrl,feature6ImageSource,feature6ImageAlt,feature6ImageFit);const FEATURE_KEYS=[feature1,feature2,feature3,feature4,feature5,feature6];const features=Array.from({length:Math.min(6,cardSlotCount)},(_,i)=>{// Only slots within \"Number of Features\" use Framer props; beyond that we\n// show empty cards (e.g. extra tabs). Otherwise defaults like placeholder\n// image URLs on feature4+ would leak into the stack when numFeatures is lower.\nconst slot=i<effectiveNumFeatures?FEATURE_KEYS[i]:undefined;return slot??EMPTY_FEATURE_SLOT;});// Auto-advance / progress overlay follow every visible tab on larger breakpoints.\nconst tabCycleLength=cardSlotCount;// Auto-advance tabs every 8s. Interval is stable (does not depend on\n// activeTabIndex) to avoid extra effect churn. Disabled when reduced motion\n// is preferred, Framer is static-rendering, tabs are hidden, fewer than\n// two slots are configured, or the visitor has selected a tab manually.\nuseEffect(()=>{if(reducedMotion||isStaticRenderer||isFramerStaticMotionContext())return undefined;if(!showManualTabs)return undefined;if(tabCycleLength<2)return undefined;if(autoAdvancePaused)return undefined;const id=window.setInterval(()=>{setActiveTabIndex(prev=>(prev+1)%tabCycleLength);},AUTO_ADVANCE_MS);return()=>window.clearInterval(id);},[autoAdvancePaused,isStaticRenderer,reducedMotion,showManualTabs,tabCycleLength]);const isImageLeft=imagePosition===\"left\";const hasFeatures=features&&features.length>0;const hasHeader=Boolean(heading)||Boolean(description)||showDisclaimer;const hasCMS=contentSource===\"cms\";const isCanvas=isFramerDesignEnvironment();// Panel IDs for TabsGroup and accessibility.\nconst tabPanelIds=React.useMemo(()=>{const panelIdProps=[panel1Id,panel2Id,panel3Id,panel4Id,panel5Id,panel6Id];return Array.from({length:Math.min(6,cardSlotCount)},(_,i)=>resolveIndexedPanelId(panelIdProps[i],idPrefix,i));},[cardSlotCount,idPrefix,panel1Id,panel2Id,panel3Id,panel4Id,panel5Id,panel6Id]);// `\"default\"` deliberately leaves customIcon empty while iconType stays leading,\n// so TabsGroup supplies the exact same DEFAULT_TAB_ICONS used by SectionFeatureImageTabs.\nconst usesTabsGroupDefaultIcon=(icon,index)=>!icon||icon===\"default\"||icon===LEGACY_BUNQ_TAB_ICON_DEFAULTS[index];const resolveTabIcon=(icon,index)=>{if(!icon||icon===\"none\"||usesTabsGroupDefaultIcon(icon,index))return undefined;const raw=getIconRaw(icon);if(!raw)return undefined;return zoomStandard24ViewBox(raw,ZOOM_STANDARD_24_TAB_STRIP_INSET);};const tabIconType=icon=>!icon||icon===\"none\"?\"icon-none\":\"icon-leading\";// Handle tab change from TabsGroup (1-based index).\nconst handleTabChange=React.useCallback(tabIndex=>{const index=tabIndex-1;setAutoAdvancePaused(true);setActiveTabIndex(index);onTabChange?.(tabIndex);},[onTabChange]);// ========================================\n// STACK SIZE MEASUREMENT (desktop / tablet deck only)\n// ========================================\nconst stackRef=useRef(null);const phoneScrollRef=useRef(null);const cmsRowRef=useRef(null);/** Monotonic max height so tab transitions and image load never shrink the stack. */const[stackHeightPx,setStackHeightPx]=useState(0);useEffect(()=>{if(usePhoneCarouselLayout)return;const el=stackRef.current;if(!el)return;const update=()=>{const measured=measureStackBasisHeightPx(el);if(measured<=0)return;setStackHeightPx(previous=>measured>previous?measured:previous);};update();if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(update);ro.observe(el);return()=>ro.disconnect();},[cardSlotCount,activeTabIndex,features.length,usePhoneCarouselLayout]);// ========================================\n// STYLES\n// ========================================\n// Section container styles.\nconst sectionStyles={...getSectionRootBackgroundStyle({useMontserrat}),backgroundColor:sectionBgColor,width:\"100%\",maxWidth:\"100%\",minWidth:0,boxSizing:\"border-box\",paddingTop:getSectionPaddingY(breakpoint),paddingBottom:getSectionPaddingY(breakpoint),paddingLeft:getContainerPadding(breakpoint),paddingRight:getContainerPadding(breakpoint),...style};const containerStyles={...getSectionContentStackStyle(isGradient),maxWidth:getContainerMaxWidth(breakpoint),margin:\"0 auto\",width:\"100%\",minWidth:0,boxSizing:\"border-box\"};const headerStyles={...getCenteredSectionHeaderStackLayout(breakpoint,{marginBottom:getGap(\"lg\",breakpoint)})};const headingStyles={...getStandardSectionHeadlineStyles(breakpoint),color:colors.textPrimary,...PRESERVE_CONTROL_NEWLINES};const descriptionStyles={...getStandardSectionSubheadlineStyles(breakpoint),color:colors.textSecondary,...PRESERVE_CONTROL_NEWLINES};const disclaimerStyles={...Tokens.getTypographyStyles(\"/Legal/Default\",breakpoint),color:colors.textSecondary,margin:0,textAlign:\"center\",width:\"100%\",maxWidth:Tokens.getWidthValue(\"width-lg\"),...PRESERVE_CONTROL_NEWLINES};const tabsToStackGap=getGap(\"md\",breakpoint);const tabsStyles={marginBottom:0,position:\"relative\",zIndex:Tokens.getZIndex(\"elevated\")};const tabsInnerStyles={display:\"flex\",flexDirection:\"row\",flexWrap:\"wrap\",gap:getGap(\"xs\",breakpoint),minWidth:0};const cardsRegionTopMargin=showManualTabs?tabsToStackGap:undefined;const phoneCarouselGap=getGap(\"md\",breakpoint);const phoneCarouselListStyles=getTestimonialPhoneScrollListStyle(breakpoint,phoneCarouselGap,reducedMotion);const phoneCarouselOuterStyles={width:\"100%\",marginTop:cardsRegionTopMargin,minWidth:0};const phoneCarouselItemStyles={...getTestimonialPhoneScrollItemStyle(),borderRadius:getCardRadius(breakpoint,\"large\"),overflow:\"hidden\"};const cmsRowOuterStyles={width:\"100%\",minWidth:0};const responsiveCollectionList=useMemo(()=>injectBreakpointIntoCmsSlot(collectionList,breakpointProp),[collectionList,breakpointProp]);useCmsCollectionLayout(cmsRowRef,hasCMS&&Boolean(collectionList),phoneCarouselListStyles,phoneCarouselItemStyles,breakpointProp);const placeholderColors=getPlaceholderColors(colors);// Card stack — CSS Grid stacking so all cards occupy the same cell. The\n// cell sizes to the tallest card; transforms (yPercent / scale) below\n// are purely visual and don't affect wrapper layout.\nconst maxVisibleBehindCount=Math.max(0,STACK_MAX_VISIBLE_CARDS_DESKTOP-1);const visibleBehindCount=Math.min(maxVisibleBehindCount,Math.max(0,features.length-1));/**\n         * Vertical room for cards translated up by `-displayIndex * STACK_OFFSET_PERCENT` (and scale).\n         * Slight buffer because subpixels, filters, and `%` motion can exceed the naive sum.\n         */const peekRoomPx=getStackClipPeekPaddingPx(stackHeightPx,visibleBehindCount);const stackClipMinHeightPx=stackHeightPx>0?stackHeightPx+peekRoomPx:undefined;/** Gap below tabs; peek headroom lives in padding-top inside the clip, not via negative margin. */const stackTopMargin=cardsRegionTopMargin;/**\n         * Clip + round the deck. Padding-top reserves room for behind-cards translated upward;\n         * marginTop keeps a positive gap so the deck never overlaps the tab strip.\n         */const cardStackClipStyles={width:\"100%\",marginTop:stackTopMargin,paddingTop:peekRoomPx>0?peekRoomPx:undefined,minHeight:stackClipMinHeightPx,perspective:\"1400px\",overflow:\"hidden\",borderRadius:getCardRadius(breakpoint,\"large\"),order:isImageLeft&&!isCanvasPhone?1:2,isolation:\"isolate\",minWidth:0,flexShrink:0};const cardStackGridStyles={display:\"grid\",gridTemplateAreas:\"'stack'\",width:\"100%\",minWidth:0,minHeight:stackHeightPx>0?stackHeightPx:undefined};// Per-card outer wrapper — sits inside the grid cell, holds transforms.\n// Grid stretches all layers to the same row height; CardFeatureSplit must use fillHeight so no transparent gap shows lower stack layers through.\nconst cardWrapperStyles={gridArea:\"stack\",position:\"relative\",width:\"100%\",height:\"100%\",minWidth:0,transformOrigin:\"bottom center\",willChange:\"transform, filter, opacity\"};/** Top strip height for click-to-promote on deck cards behind the front card. */const getStackPeekHitHeightPercent=displayIndex=>Math.min(36,STACK_OFFSET_PERCENT*displayIndex+16);// ========================================\n// ANIMATION VARIANTS\n// ========================================\nconst{container:containerVariants,item:itemVariants}=useMemo(()=>createSectionVariants(reducedMotion,{stagger:Tokens.getStagger(\"loose\"),yOffset:20}),[reducedMotion]);// Stack transition (per-card spring for the offset/scale/dim).\nconst stackTransition=reducedMotion?{duration:0}:Tokens.getSpring(\"gentle\");const renderFeatureCard=(feature,isActiveCard)=>{const frontButtonLabel=resolveFeatureButtonLabel(feature.buttonLabel);const hasCardButton=isNonEmptyControlString(frontButtonLabel);return /*#__PURE__*/_jsx(CardFeatureSplit,{imageFit:feature.imageFit??\"cover\",breakpoint:breakpointProp,theme:theme,surface:surface,imagePosition:imagePosition,headingTag:\"h2\",heading:feature.heading,description:feature.description,disclaimer:cardDisclaimer,disclaimerUrl:cardDisclaimerUrl,buttonLabel:hasCardButton?frontButtonLabel:\"\",buttonVisuallyHidden:hasCardButton&&!isActiveCard,buttonId:feature.buttonId,buttonTabIndex:isActiveCard?undefined:-1,buttonVariant:\"ghost\",buttonLink:hasCardButton?feature.buttonLink:undefined,buttonOpenInNewTab:feature.buttonOpenInNewTab,onButtonClick:feature.onButtonClick,imageSource:feature.imageSource,image:feature.image,imageUrl:feature.imageUrl,imageAlt:feature.imageAlt,fillHeight:!usePhoneCarouselLayout,fullWidthButton:usePhoneCarouselLayout});};const handlePhoneCarouselKeyDown=event=>{const target=event.currentTarget;const step=Math.max(target.clientWidth*.8,120);if(event.key===\"ArrowRight\"){event.preventDefault();target.scrollBy({left:step,behavior:reducedMotion?\"auto\":\"smooth\"});}else if(event.key===\"ArrowLeft\"){event.preventDefault();target.scrollBy({left:-step,behavior:reducedMotion?\"auto\":\"smooth\"});}};/**\n         * Phone carousel keyboard target — keep out of the document tab order on load\n         * (`tabIndex={-1}`) so Framer preview / programmatic focus does not scroll the\n         * page down to this section. Activate with preventScroll on pointer down so\n         * arrow keys still work after the user taps the strip.\n         */const handlePhoneCarouselPointerDown=event=>{if(event.currentTarget!==document.activeElement){event.currentTarget.focus({preventScroll:true});}};// ========================================\n// RENDER\n// ========================================\nreturn /*#__PURE__*/_jsxs(motion.section,{ref:sectionRef,style:sectionStyles,id:sectionId?.trim()||idPrefix,\"aria-labelledby\":heading?headingId:undefined,initial:getSectionMotionInitial(animate,{hasMounted,isStaticRenderer,reducedMotion}),animate:animate,variants:containerVariants,...getSectionRestProps(rest),children:[backgroundLayer,/*#__PURE__*/_jsxs(\"div\",{style:containerStyles,children:[hasHeader&&/*#__PURE__*/_jsxs(motion.div,{style:headerStyles,variants:itemVariants,children:[heading&&/*#__PURE__*/_jsx(\"h2\",{id:headingId,style:headingStyles,children:kernHeadingPlainText(heading)}),description&&/*#__PURE__*/_jsx(\"p\",{style:descriptionStyles,children:description}),showDisclaimer&&/*#__PURE__*/_jsxs(\"p\",{style:disclaimerStyles,children:[\"*\",\" \",disclaimerHref?/*#__PURE__*/_jsx(\"a\",{href:disclaimerHref,style:{color:colors.textLink,textDecoration:\"underline\",textUnderlineOffset:Tokens.getSpacing(2)},children:disclaimer}):disclaimer]})]}),hasCMS&&/*#__PURE__*/_jsxs(motion.div,{style:cmsRowOuterStyles,variants:itemVariants,children:[/*#__PURE__*/_jsx(\"style\",{children:PHONE_CAROUSEL_SCROLLBAR_HIDE_STYLE}),/*#__PURE__*/_jsx(\"div\",{ref:cmsRowRef,style:phoneCarouselListStyles,\"data-bunq-feature-card-image-stack-hscroll\":\"true\",role:\"region\",\"aria-label\":cardsAriaLabel,children:collectionList?responsiveCollectionList:isCanvas?Array.from({length:3}).map((_,i)=>/*#__PURE__*/_jsxs(\"div\",{style:{...phoneCarouselItemStyles,minHeight:Tokens.getSpacing(320),display:\"flex\",flexDirection:\"column\",gap:Tokens.getSpacing(12),padding:Tokens.getSpacing(24),backgroundColor:placeholderColors.bgLight},children:[/*#__PURE__*/_jsx(\"div\",{style:{height:Tokens.getSpacing(160),width:\"100%\",backgroundColor:placeholderColors.bgMedium,borderRadius:Tokens.getRadius(\"radius-xl\")}}),/*#__PURE__*/_jsx(\"div\",{style:{height:Tokens.getSpacing(20),width:\"60%\",backgroundColor:placeholderColors.bgMedium,borderRadius:Tokens.getRadius(\"radius-xs\")}}),/*#__PURE__*/_jsx(\"div\",{style:{height:Tokens.getSpacing(16),width:\"80%\",backgroundColor:placeholderColors.bgLight,borderRadius:Tokens.getRadius(\"radius-xs\")}})]},`cms-skeleton-${i}`)):null})]}),!hasCMS&&showManualTabs&&/*#__PURE__*/_jsx(motion.div,{style:tabsStyles,variants:itemVariants,children:/*#__PURE__*/_jsx(\"div\",{style:tabsInnerStyles,children:/*#__PURE__*/_jsx(TabsGroup,{breakpoint:breakpoint,id:`${idPrefix}-tabs`,numTabs:cardSlotCount,theme:theme,surface:tabSurface,accentColors:TAB_ACCENT_COLORS,autoAdvanceMs:reducedMotion||isStaticRenderer||!showManualTabs||tabCycleLength<2||autoAdvancePaused?0:AUTO_ADVANCE_MS,activeTab:activeTabIndex+1,tab1Label:tab1Label,tab1Id:tab1Id,tab1IconType:tabIconType(tab1Icon),tab1CustomIcon:resolveTabIcon(tab1Icon,0),tab2Label:tab2Label,tab2Id:tab2Id,tab2IconType:tabIconType(tab2Icon),tab2CustomIcon:resolveTabIcon(tab2Icon,1),tab3Label:tab3Label,tab3Id:tab3Id,tab3IconType:tabIconType(tab3Icon),tab3CustomIcon:resolveTabIcon(tab3Icon,2),tab4Label:tab4Label,tab4Id:tab4Id,tab4IconType:tabIconType(tab4Icon),tab4CustomIcon:resolveTabIcon(tab4Icon,3),tab5Label:tab5Label,tab5Id:tab5Id,tab5IconType:tabIconType(tab5Icon),tab5CustomIcon:resolveTabIcon(tab5Icon,4),tab6Label:tab6Label,tab6Id:tab6Id,tab6IconType:tabIconType(tab6Icon),tab6CustomIcon:resolveTabIcon(tab6Icon,5),onChange:handleTabChange,ariaLabel:sectionsAriaLabel,numPanelIds:cardSlotCount,panelId1:tabPanelIds[0],panelId2:tabPanelIds[1],panelId3:tabPanelIds[2],panelId4:tabPanelIds[3],panelId5:tabPanelIds[4],panelId6:tabPanelIds[5]})})}),!hasCMS&&hasFeatures&&usePhoneCarouselLayout&&/*#__PURE__*/_jsxs(motion.div,{style:phoneCarouselOuterStyles,variants:itemVariants,children:[/*#__PURE__*/_jsx(\"style\",{children:PHONE_CAROUSEL_SCROLLBAR_HIDE_STYLE}),/*#__PURE__*/_jsx(\"div\",{ref:phoneScrollRef,style:phoneCarouselListStyles,\"data-bunq-feature-card-image-stack-hscroll\":\"true\",role:\"region\",\"aria-roledescription\":\"carousel\",\"aria-label\":cardsAriaLabel,tabIndex:-1,onPointerDown:handlePhoneCarouselPointerDown,onKeyDown:handlePhoneCarouselKeyDown,children:features.map((feature,i)=>{const panelId=i<tabPanelIds.length?tabPanelIds[i]:undefined;const cardLabel=feature.heading?`Feature card ${i+1} of ${features.length}: ${feature.heading}`:`Feature card ${i+1} of ${features.length}`;return /*#__PURE__*/_jsx(\"div\",{id:panelId,role:\"group\",\"aria-roledescription\":\"slide\",\"aria-label\":cardLabel,style:phoneCarouselItemStyles,children:renderFeatureCard(feature,true)},`phone-card-${i}`);})})]}),!hasCMS&&hasFeatures&&!usePhoneCarouselLayout&&/*#__PURE__*/_jsx(motion.div,{style:cardStackClipStyles,variants:itemVariants,role:\"region\",\"aria-roledescription\":\"card stack\",\"aria-label\":\"Feature card stack\",children:/*#__PURE__*/_jsx(\"div\",{ref:stackRef,style:cardStackGridStyles,children:features.map((feature,i)=>{const activeIndex=Math.min(activeTabIndex,features.length-1);// displayIndex: 0 = front, 1 = next behind, etc.\nconst displayIndex=(i-activeIndex+features.length)%features.length;const isFront=displayIndex===0;const beyondVisible=displayIndex>maxVisibleBehindCount;// Stack transforms — negative Y peeks cards above the front (matches CardStack).\nconst stackTranslateYPercent=`-${displayIndex*STACK_OFFSET_PERCENT}%`;const scale=Math.max(.05,1-displayIndex*STACK_SCALE_STEP);const brightness=Math.max(.1,1-displayIndex*STACK_DIM_STEP);const opacity=beyondVisible?0:1;const zIndex=features.length-displayIndex;const panelId=i<tabPanelIds.length?tabPanelIds[i]:undefined;const handleCardClick=()=>{if(!isFront&&!beyondVisible){setAutoAdvancePaused(true);setActiveTabIndex(i);onTabChange?.(i+1);}};const cardKey=`card-${i}`;const cardLabel=feature.heading?`${feature.heading}${isFront?\"\":\" — bring to front\"}`:`Feature card ${i+1}${isFront?\"\":\" — bring to front\"}`;return /*#__PURE__*/_jsxs(motion.div,{id:panelId,role:isFront?\"tabpanel\":undefined,tabIndex:-1,\"aria-label\":isFront?undefined:cardLabel,\"aria-hidden\":!isFront||beyondVisible?true:undefined,inert:beyondVisible?true:undefined,style:{...cardWrapperStyles,zIndex,// Only the front card receives clicks on its CTA. Deck cards sit in the\n// same grid cell with transforms/filters; full-size wrappers with\n// pointer-events enabled steal clicks from the front button (Safari/WebKit).\npointerEvents:isFront?\"auto\":\"none\"},initial:false,layout:false,animate:{y:stackTranslateYPercent,scale,opacity,filter:`brightness(${brightness})`},transition:stackTransition,children:[!isFront&&!beyondVisible&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:handleCardClick,\"aria-label\":cardLabel,tabIndex:-1,style:{position:\"absolute\",top:0,left:0,right:0,height:`${getStackPeekHitHeightPercent(displayIndex)}%`,margin:0,padding:0,border:\"none\",background:\"transparent\",cursor:\"pointer\",pointerEvents:\"auto\",zIndex:Tokens.getZIndex(\"elevated\")}}),/*#__PURE__*/_jsx(\"div\",{...!isFront?{inert:true}:{},style:{width:\"100%\",height:\"100%\",minWidth:0},children:renderFeatureCard(feature,isFront)})]},cardKey);})})}),children]})]});});/**\n * SectionFeatureCardImageStack - Wrapper component for Framer compatibility.\n */export default function SectionFeatureCardImageStack(props){const ref=useRef(null);const breakpoint=useEffectiveBreakpoint(props.breakpoint??\"desktop\");return /*#__PURE__*/_jsx(\"div\",{style:{...getSectionWrapperStyles(breakpoint),...props.style},children:/*#__PURE__*/_jsx(SectionFeatureCardImageStackInternal,{...props,ref:ref})});}SectionFeatureCardImageStack.displayName=\"Section Feature Card Image Stack - Organism\";// ============================================\n// PROPERTY CONTROLS\n// ============================================\n/** Mirrors runtime tab strip length for Framer control visibility (max of tabs vs features when tab bar on). */function sectionFeatureCardImageStackRenderedTabCount(p){const nf=Math.min(6,Math.max(1,p.numFeatures??6));const nt=Math.min(6,Math.max(2,typeof p.numTabs===\"number\"?p.numTabs:6));if((p.numTabs??3)<2)return 0;return Math.min(6,Math.max(nt,nf));}addPropertyControls(SectionFeatureCardImageStack,{// ─── 1. Content ────────────────────────────────────────────────────────────\nheading:{type:ControlType.String,title:\"Headline\",defaultValue:\"Short section heading goes here\",placeholder:\"e.g. Short headline (one line)\",description:\"Main heading text for the section.\",displayTextArea:true},description:{type:ControlType.String,title:\"Subheadline\",defaultValue:PLACEHOLDER.DESCRIPTION,placeholder:\"One or two sentences describing the section\",description:\"Description or body text shown below the heading.\",displayTextArea:true},disclaimer:{type:ControlType.String,title:\"Section Intro Disclaimer\",defaultValue:\"Terms and conditions apply.\",placeholder:\"e.g. Terms and conditions apply.\",description:\"Small text below the section heading and intro copy (above the tab bar). Leave empty to hide. Separate from the card footnote.\",displayTextArea:true},cardDisclaimer:{type:ControlType.String,title:\"Card Disclaimer\",defaultValue:\"\",placeholder:\"e.g. \\xb9 Terms and conditions apply.\",description:\"Footnote on each stacked card (below the card body, above the CTA). Leave empty to hide. Shown on every visible card.\",displayTextArea:true},// ─── 2. Links ──────────────────────────────────────────────────────────────\ndisclaimerUrl:{type:ControlType.Link,title:\"Section Intro Disclaimer Link\",defaultValue:\"\",description:\"Optional link applied to the section intro disclaimer. Leave empty for plain text.\"},cardDisclaimerUrl:{type:ControlType.Link,title:\"Card Disclaimer Link\",defaultValue:\"\",description:\"Optional link wrapping the card disclaimer text when Card Disclaimer is set.\"},// ─── 4. Content Source ─────────────────────────────────────────────────────\ncontentSource:{type:ControlType.Enum,title:\"Content Source\",options:[\"manual\",\"cms\"],optionTitles:[\"Manual\",\"CMS\"],displaySegmentedControl:true,defaultValue:\"manual\",description:\"Manual: animated card stack with tabs. CMS: connect a Framer Collection List rendered as a horizontal scroll row.\"},collectionList:{type:ControlType.ComponentInstance,title:\"Collection List\",description:\"Connect a Framer CMS Collection List. Used when Content Source is CMS.\",hidden:p=>p.contentSource!==\"cms\"},// ─── 5. Per-item groups ────────────────────────────────────────────────────\nfeature1Heading:{type:ControlType.String,title:\"Feature 1 Headline\",defaultValue:PLACEHOLDER.HEADING,placeholder:\"e.g. Short headline (one line)\",description:\"Heading for feature 1.\",hidden:p=>p.contentSource===\"cms\"},feature1Description:{type:ControlType.String,title:\"Feature 1 Supporting Text\",defaultValue:PLACEHOLDER.DESCRIPTION,placeholder:\"One or two sentences describing the section\",displayTextArea:true,description:\"Description for feature 1.\",hidden:p=>p.contentSource===\"cms\"},feature1ButtonLabel:{type:ControlType.String,title:\"Feature 1 Button Label\",defaultValue:\"\",placeholder:\"Enter button label...\",description:\"Label for the feature's call-to-action button. Leave empty to hide the CTA on the card.\",hidden:p=>p.contentSource===\"cms\"},feature1ButtonLink:{type:ControlType.Link,defaultValue:\"\",title:\"Feature 1 Button Link\",description:\"Destination for the Feature 1 CTA. When set, the button renders as a link.\",hidden:p=>p.contentSource===\"cms\"},feature1ButtonOpenInNewTab:{type:ControlType.Boolean,title:\"Feature 1 Button Opens in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Only applies when Feature 1 Button Link is set.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const hasNoLink=!getLinkUrl(p?.feature1ButtonLink);return isCMS||hasNoLink;}},feature1ImageSource:{type:ControlType.Boolean,title:\"Feature 1 Image Source\",defaultValue:true,enabledTitle:\"File\",disabledTitle:\"URL\",description:\"Image source: File upload or URL.\",hidden:p=>p.contentSource===\"cms\"},feature1Image:{type:ControlType.ResponsiveImage,title:\"Feature 1 Image\",description:\"Image from file upload. Shown when Source is File.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isUrlSource=!p.feature1ImageSource;return isCMS||isUrlSource;}},feature1ImageUrl:{type:ControlType.String,title:\"Feature 1 Image URL\",defaultValue:PLACEHOLDER.IMAGE,placeholder:HINT_IMAGE_URL,description:\"Fallback URL when Source is File but no file is uploaded; or primary URL when Source is URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isFileSource=p.feature1ImageSource===true;return isCMS||isFileSource;}},feature1ImageAlt:{type:ControlType.String,title:\"Feature 1 Image Alt\",defaultValue:PLACEHOLDER.IMAGE_ALT,placeholder:HINT_IMAGE_ALT,description:\"Alt text for feature 1 image. Only needed for URL images; File uploads use their own alt.\",hidden:p=>p.contentSource===\"cms\"||p.feature1ImageSource===true},feature1ImageFit:{type:ControlType.Enum,title:\"Feature 1 Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],displaySegmentedControl:true,defaultValue:\"cover\",description:\"How feature 1's image fits its container.\",hidden:p=>p.contentSource===\"cms\"},feature1ButtonId:{type:ControlType.String,title:\"Feature 1 Button ID\",defaultValue:\"section-feature-card-image-stack-feature-1-cta\",placeholder:\"e.g. section-stack-feature-1-cta\",description:\"Unique ID for the Feature 1 button for Contentsquare analytics (lowercase, hyphen-separated).\",hidden:p=>p.contentSource===\"cms\"},feature2Heading:{type:ControlType.String,title:\"Feature 2 Headline\",defaultValue:PLACEHOLDER.HEADING,placeholder:\"e.g. Short headline (one line)\",description:\"Heading for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;return isCMS||isBelowCount;}},feature2Description:{type:ControlType.String,title:\"Feature 2 Supporting Text\",defaultValue:PLACEHOLDER.DESCRIPTION,placeholder:\"One or two sentences describing the section\",displayTextArea:true,description:\"Description for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;return isCMS||isBelowCount;}},feature2ButtonLabel:{type:ControlType.String,title:\"Feature 2 Button Label\",defaultValue:\"\",placeholder:\"Enter button label...\",description:\"Label for the feature's call-to-action button. Leave empty to hide the CTA on the card.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;return isCMS||isBelowCount;}},feature2ButtonLink:{type:ControlType.Link,defaultValue:\"\",title:\"Feature 2 Button Link\",description:\"Destination for the Feature 2 CTA. When set, the button renders as a link.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;return isCMS||isBelowCount;}},feature2ButtonOpenInNewTab:{type:ControlType.Boolean,title:\"Feature 2 Button Opens in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Only applies when Feature 2 Button Link is set.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;const hasNoLink=!getLinkUrl(p?.feature2ButtonLink);return isCMS||isBelowCount||hasNoLink;}},feature2ImageSource:{type:ControlType.Boolean,title:\"Feature 2 Image Source\",defaultValue:true,enabledTitle:\"File\",disabledTitle:\"URL\",description:\"Image source: File upload or URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;return isCMS||isBelowCount;}},feature2Image:{type:ControlType.ResponsiveImage,title:\"Feature 2 Image\",description:\"Image from file upload. Shown when Source is File.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;const isUrlSource=!p.feature2ImageSource;return isCMS||isBelowCount||isUrlSource;}},feature2ImageUrl:{type:ControlType.String,title:\"Feature 2 Image URL\",defaultValue:PLACEHOLDER.IMAGE,placeholder:HINT_IMAGE_URL,description:\"Fallback URL when Source is File but no file is uploaded; or primary URL when Source is URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;const isFileSource=p.feature2ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature2ImageAlt:{type:ControlType.String,title:\"Feature 2 Image Alt\",defaultValue:PLACEHOLDER.IMAGE_ALT,placeholder:HINT_IMAGE_ALT,description:\"Alt text for feature 2 image. Only needed for URL images; File uploads use their own alt.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;const isFileSource=p.feature2ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature2ImageFit:{type:ControlType.Enum,title:\"Feature 2 Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],displaySegmentedControl:true,defaultValue:\"cover\",description:\"How feature 2's image fits its container.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;return isCMS||isBelowCount;}},feature2ButtonId:{type:ControlType.String,title:\"Feature 2 Button ID\",defaultValue:\"section-feature-card-image-stack-feature-2-cta\",placeholder:\"e.g. section-stack-feature-2-cta\",description:\"Unique ID for the Feature 2 button for Contentsquare analytics (lowercase, hyphen-separated).\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<2;return isCMS||isBelowCount;}},feature3Heading:{type:ControlType.String,title:\"Feature 3 Headline\",defaultValue:PLACEHOLDER.HEADING,placeholder:\"e.g. Short headline (one line)\",description:\"Heading for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;return isCMS||isBelowCount;}},feature3Description:{type:ControlType.String,title:\"Feature 3 Supporting Text\",defaultValue:PLACEHOLDER.DESCRIPTION,placeholder:\"One or two sentences describing the section\",displayTextArea:true,description:\"Description for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;return isCMS||isBelowCount;}},feature3ButtonLabel:{type:ControlType.String,title:\"Feature 3 Button Label\",defaultValue:\"\",placeholder:\"Enter button label...\",description:\"Label for the feature's call-to-action button. Leave empty to hide the CTA on the card.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;return isCMS||isBelowCount;}},feature3ButtonLink:{type:ControlType.Link,defaultValue:\"\",title:\"Feature 3 Button Link\",description:\"Destination for the Feature 3 CTA. When set, the button renders as a link.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;return isCMS||isBelowCount;}},feature3ButtonOpenInNewTab:{type:ControlType.Boolean,title:\"Feature 3 Button Opens in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Only applies when Feature 3 Button Link is set.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;const hasNoLink=!getLinkUrl(p?.feature3ButtonLink);return isCMS||isBelowCount||hasNoLink;}},feature3ImageSource:{type:ControlType.Boolean,title:\"Feature 3 Image Source\",defaultValue:true,enabledTitle:\"File\",disabledTitle:\"URL\",description:\"Image source: File upload or URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;return isCMS||isBelowCount;}},feature3Image:{type:ControlType.ResponsiveImage,title:\"Feature 3 Image\",description:\"Image from file upload. Shown when Source is File.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;const isUrlSource=!p.feature3ImageSource;return isCMS||isBelowCount||isUrlSource;}},feature3ImageUrl:{type:ControlType.String,title:\"Feature 3 Image URL\",defaultValue:PLACEHOLDER.IMAGE,placeholder:HINT_IMAGE_URL,description:\"Fallback URL when Source is File but no file is uploaded; or primary URL when Source is URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;const isFileSource=p.feature3ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature3ImageAlt:{type:ControlType.String,title:\"Feature 3 Image Alt\",defaultValue:PLACEHOLDER.IMAGE_ALT,placeholder:HINT_IMAGE_ALT,description:\"Alt text for feature 3 image. Only needed for URL images; File uploads use their own alt.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;const isFileSource=p.feature3ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature3ImageFit:{type:ControlType.Enum,title:\"Feature 3 Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],displaySegmentedControl:true,defaultValue:\"cover\",description:\"How feature 3's image fits its container.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;return isCMS||isBelowCount;}},feature3ButtonId:{type:ControlType.String,title:\"Feature 3 Button ID\",defaultValue:\"section-feature-card-image-stack-feature-3-cta\",placeholder:\"e.g. section-stack-feature-3-cta\",description:\"Unique ID for the Feature 3 button for Contentsquare analytics (lowercase, hyphen-separated).\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<3;return isCMS||isBelowCount;}},feature4Heading:{type:ControlType.String,title:\"Feature 4 Headline\",defaultValue:PLACEHOLDER.HEADING,placeholder:\"e.g. Short headline (one line)\",description:\"Heading for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;return isCMS||isBelowCount;}},feature4Description:{type:ControlType.String,title:\"Feature 4 Supporting Text\",defaultValue:PLACEHOLDER.DESCRIPTION,placeholder:\"One or two sentences describing the section\",displayTextArea:true,description:\"Description for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;return isCMS||isBelowCount;}},feature4ButtonLabel:{type:ControlType.String,title:\"Feature 4 Button Label\",defaultValue:\"\",placeholder:\"Enter button label...\",description:\"Label for the feature's call-to-action button. Leave empty to hide the CTA on the card.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;return isCMS||isBelowCount;}},feature4ButtonLink:{type:ControlType.Link,defaultValue:\"\",title:\"Feature 4 Button Link\",description:\"Destination for the Feature 4 CTA. When set, the button renders as a link.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;return isCMS||isBelowCount;}},feature4ButtonOpenInNewTab:{type:ControlType.Boolean,title:\"Feature 4 Button Opens in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Only applies when Feature 4 Button Link is set.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;const hasNoLink=!getLinkUrl(p?.feature4ButtonLink);return isCMS||isBelowCount||hasNoLink;}},feature4ImageSource:{type:ControlType.Boolean,title:\"Feature 4 Image Source\",defaultValue:true,enabledTitle:\"File\",disabledTitle:\"URL\",description:\"Image source: File upload or URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;return isCMS||isBelowCount;}},feature4Image:{type:ControlType.ResponsiveImage,title:\"Feature 4 Image\",description:\"Image from file upload. Shown when Source is File.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;const isUrlSource=!p.feature4ImageSource;return isCMS||isBelowCount||isUrlSource;}},feature4ImageUrl:{type:ControlType.String,title:\"Feature 4 Image URL\",defaultValue:PLACEHOLDER.IMAGE,placeholder:HINT_IMAGE_URL,description:\"Fallback URL when Source is File but no file is uploaded; or primary URL when Source is URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;const isFileSource=p.feature4ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature4ImageAlt:{type:ControlType.String,title:\"Feature 4 Image Alt\",defaultValue:PLACEHOLDER.IMAGE_ALT,placeholder:HINT_IMAGE_ALT,description:\"Alt text for feature 4 image. Only needed for URL images; File uploads use their own alt.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;const isFileSource=p.feature4ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature4ImageFit:{type:ControlType.Enum,title:\"Feature 4 Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],displaySegmentedControl:true,defaultValue:\"cover\",description:\"How feature 4's image fits its container.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;return isCMS||isBelowCount;}},feature4ButtonId:{type:ControlType.String,title:\"Feature 4 Button ID\",defaultValue:\"section-feature-card-image-stack-feature-4-cta\",placeholder:\"e.g. section-stack-feature-4-cta\",description:\"Unique ID for the Feature 4 button for Contentsquare analytics (lowercase, hyphen-separated).\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<4;return isCMS||isBelowCount;}},feature5Heading:{type:ControlType.String,title:\"Feature 5 Headline\",defaultValue:PLACEHOLDER.HEADING,placeholder:\"e.g. Short headline (one line)\",description:\"Heading for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;return isCMS||isBelowCount;}},feature5Description:{type:ControlType.String,title:\"Feature 5 Supporting Text\",defaultValue:PLACEHOLDER.DESCRIPTION,placeholder:\"One or two sentences describing the section\",displayTextArea:true,description:\"Description for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;return isCMS||isBelowCount;}},feature5ButtonLabel:{type:ControlType.String,title:\"Feature 5 Button Label\",defaultValue:\"\",placeholder:\"Enter button label...\",description:\"Label for the feature's call-to-action button. Leave empty to hide the CTA on the card.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;return isCMS||isBelowCount;}},feature5ButtonLink:{type:ControlType.Link,defaultValue:\"\",title:\"Feature 5 Button Link\",description:\"Destination for the Feature 5 CTA. When set, the button renders as a link.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;return isCMS||isBelowCount;}},feature5ButtonOpenInNewTab:{type:ControlType.Boolean,title:\"Feature 5 Button Opens in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Only applies when Feature 5 Button Link is set.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;const hasNoLink=!getLinkUrl(p?.feature5ButtonLink);return isCMS||isBelowCount||hasNoLink;}},feature5ImageSource:{type:ControlType.Boolean,title:\"Feature 5 Image Source\",defaultValue:true,enabledTitle:\"File\",disabledTitle:\"URL\",description:\"Image source: File upload or URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;return isCMS||isBelowCount;}},feature5Image:{type:ControlType.ResponsiveImage,title:\"Feature 5 Image\",description:\"Image from file upload. Shown when Source is File.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;const isUrlSource=!p.feature5ImageSource;return isCMS||isBelowCount||isUrlSource;}},feature5ImageUrl:{type:ControlType.String,title:\"Feature 5 Image URL\",defaultValue:PLACEHOLDER.IMAGE,placeholder:HINT_IMAGE_URL,description:\"Fallback URL when Source is File but no file is uploaded; or primary URL when Source is URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;const isFileSource=p.feature5ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature5ImageAlt:{type:ControlType.String,title:\"Feature 5 Image Alt\",defaultValue:PLACEHOLDER.IMAGE_ALT,placeholder:HINT_IMAGE_ALT,description:\"Alt text for feature 5 image. Only needed for URL images; File uploads use their own alt.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;const isFileSource=p.feature5ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature5ImageFit:{type:ControlType.Enum,title:\"Feature 5 Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],displaySegmentedControl:true,defaultValue:\"cover\",description:\"How feature 5's image fits its container.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;return isCMS||isBelowCount;}},feature5ButtonId:{type:ControlType.String,title:\"Feature 5 Button ID\",defaultValue:\"section-feature-card-image-stack-feature-5-cta\",placeholder:\"e.g. section-stack-feature-5-cta\",description:\"Unique ID for the Feature 5 button for Contentsquare analytics (lowercase, hyphen-separated).\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<5;return isCMS||isBelowCount;}},feature6Heading:{type:ControlType.String,title:\"Feature 6 Headline\",defaultValue:PLACEHOLDER.HEADING,placeholder:\"e.g. Short headline (one line)\",description:\"Heading for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;return isCMS||isBelowCount;}},feature6Description:{type:ControlType.String,title:\"Feature 6 Supporting Text\",defaultValue:PLACEHOLDER.DESCRIPTION,placeholder:\"One or two sentences describing the section\",displayTextArea:true,description:\"Description for this feature.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;return isCMS||isBelowCount;}},feature6ButtonLabel:{type:ControlType.String,title:\"Feature 6 Button Label\",defaultValue:\"\",placeholder:\"Enter button label...\",description:\"Label for the feature's call-to-action button. Leave empty to hide the CTA on the card.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;return isCMS||isBelowCount;}},feature6ButtonLink:{type:ControlType.Link,defaultValue:\"\",title:\"Feature 6 Button Link\",description:\"Destination for the Feature 6 CTA. When set, the button renders as a link.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;return isCMS||isBelowCount;}},feature6ButtonOpenInNewTab:{type:ControlType.Boolean,title:\"Feature 6 Button Opens in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Only applies when Feature 6 Button Link is set.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;const hasNoLink=!getLinkUrl(p?.feature6ButtonLink);return isCMS||isBelowCount||hasNoLink;}},feature6ImageSource:{type:ControlType.Boolean,title:\"Feature 6 Image Source\",defaultValue:true,enabledTitle:\"File\",disabledTitle:\"URL\",description:\"Image source: File upload or URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;return isCMS||isBelowCount;}},feature6Image:{type:ControlType.ResponsiveImage,title:\"Feature 6 Image\",description:\"Image from file upload. Shown when Source is File.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;const isUrlSource=!p.feature6ImageSource;return isCMS||isBelowCount||isUrlSource;}},feature6ImageUrl:{type:ControlType.String,title:\"Feature 6 Image URL\",defaultValue:PLACEHOLDER.IMAGE,placeholder:HINT_IMAGE_URL,description:\"Fallback URL when Source is File but no file is uploaded; or primary URL when Source is URL.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;const isFileSource=p.feature6ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature6ImageAlt:{type:ControlType.String,title:\"Feature 6 Image Alt\",defaultValue:PLACEHOLDER.IMAGE_ALT,placeholder:HINT_IMAGE_ALT,description:\"Alt text for feature 6 image. Only needed for URL images; File uploads use their own alt.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;const isFileSource=p.feature6ImageSource===true;return isCMS||isBelowCount||isFileSource;}},feature6ImageFit:{type:ControlType.Enum,title:\"Feature 6 Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],displaySegmentedControl:true,defaultValue:\"cover\",description:\"How feature 6's image fits its container.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;return isCMS||isBelowCount;}},feature6ButtonId:{type:ControlType.String,title:\"Feature 6 Button ID\",defaultValue:\"section-feature-card-image-stack-feature-6-cta\",placeholder:\"e.g. section-stack-feature-6-cta\",description:\"Unique ID for the Feature 6 button for Contentsquare analytics (lowercase, hyphen-separated).\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numFeatures??6)<6;return isCMS||isBelowCount;}},tab1Label:{type:ControlType.String,title:\"Tab 1 Label\",defaultValue:\"Tab 1\",placeholder:\"Enter tab label...\",description:\"Label for tab 1.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numTabs??3)<2;return isCMS||isBelowCount;}},tab1Icon:{type:ControlType.Enum,title:\"Tab 1 Icon\",options:[...TAB_ICON_OPTIONS],optionTitles:TAB_ICON_OPTIONS.map(c=>TAB_ICON_OPTION_TITLES[c]),defaultValue:\"default\",description:\"Icon for tab 1. Default matches SectionFeatureImageTabs; select None to hide.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numTabs??3)<2;return isCMS||isBelowCount;}},tab2Label:{type:ControlType.String,title:\"Tab 2 Label\",defaultValue:\"Tab 2\",placeholder:\"Enter tab label...\",description:\"Label for tab 2.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<2;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab2Icon:{type:ControlType.Enum,title:\"Tab 2 Icon\",options:[...TAB_ICON_OPTIONS],optionTitles:TAB_ICON_OPTIONS.map(c=>TAB_ICON_OPTION_TITLES[c]),defaultValue:\"default\",description:\"Icon for tab 2. Default matches SectionFeatureImageTabs; select None to hide.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<2;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab3Label:{type:ControlType.String,title:\"Tab 3 Label\",defaultValue:\"Tab 3\",placeholder:\"Enter tab label...\",description:\"Label for tab 3.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<3;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab3Icon:{type:ControlType.Enum,title:\"Tab 3 Icon\",options:[...TAB_ICON_OPTIONS],optionTitles:TAB_ICON_OPTIONS.map(c=>TAB_ICON_OPTION_TITLES[c]),defaultValue:\"default\",description:\"Icon for tab 3. Default matches SectionFeatureImageTabs; select None to hide.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<3;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab4Label:{type:ControlType.String,title:\"Tab 4 Label\",defaultValue:\"Tab 4\",placeholder:\"Enter tab label...\",description:\"Label for tab 4.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<4;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab4Icon:{type:ControlType.Enum,title:\"Tab 4 Icon\",options:[...TAB_ICON_OPTIONS],optionTitles:TAB_ICON_OPTIONS.map(c=>TAB_ICON_OPTION_TITLES[c]),defaultValue:\"default\",description:\"Icon for tab 4. Default matches SectionFeatureImageTabs; select None to hide.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<4;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab5Label:{type:ControlType.String,title:\"Tab 5 Label\",defaultValue:\"Tab 5\",placeholder:\"Enter tab label...\",description:\"Label for tab 5.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<5;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab5Icon:{type:ControlType.Enum,title:\"Tab 5 Icon\",options:[...TAB_ICON_OPTIONS],optionTitles:TAB_ICON_OPTIONS.map(c=>TAB_ICON_OPTION_TITLES[c]),defaultValue:\"default\",description:\"Icon for tab 5. Default matches SectionFeatureImageTabs; select None to hide.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<5;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab6Label:{type:ControlType.String,title:\"Tab 6 Label\",defaultValue:\"Tab 6\",placeholder:\"Enter tab label...\",description:\"Label for tab 6.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<6;return isCMS||isBelowTabCount||isBelowRenderedCount;}},tab6Icon:{type:ControlType.Enum,title:\"Tab 6 Icon\",options:[...TAB_ICON_OPTIONS],optionTitles:TAB_ICON_OPTIONS.map(c=>TAB_ICON_OPTION_TITLES[c]),defaultValue:\"default\",description:\"Icon for tab 6. Default matches SectionFeatureImageTabs; select None to hide.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<6;return isCMS||isBelowTabCount||isBelowRenderedCount;}},// ─── 6. Configuration ──────────────────────────────────────────────────────\n...sectionBackgroundPropertyControls(),useMontserrat:{type:ControlType.Boolean,title:\"Use Montserrat\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false,description:\"Temporary A/B experiment: replaces DM Sans with Montserrat. Defaults to No so production typography is unchanged.\"},numFeatures:{type:ControlType.Number,title:\"Number of Features\",min:1,max:6,step:1,defaultValue:3,displayStepper:true,description:\"Number of feature slots. Use 2 or more for automatic timed tab rotation.\",hidden:p=>p.contentSource===\"cms\"},imagePosition:{type:ControlType.Enum,title:\"Image Position\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],displaySegmentedControl:true,defaultValue:\"right\",description:\"Whether the card stack appears on the left or right of the text.\"},showTabs:{type:ControlType.Boolean,title:\"Show Tabs\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Show the tab bar above the card stack (manual mode only).\",hidden:p=>p.contentSource===\"cms\"},numTabs:{type:ControlType.Number,title:\"Number of Tabs\",defaultValue:3,min:2,max:6,step:1,displayStepper:true,description:\"Number of tab buttons. Set to 2 or more to show the tab bar; the strip expands to match Number of Features when higher.\",hidden:p=>p.contentSource===\"cms\"},defaultActiveTab:{type:ControlType.Number,title:\"Default Active Tab\",defaultValue:1,min:1,max:6,step:1,displayStepper:true,description:\"Default active tab (1-indexed). Drives which card sits on top of the stack.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;return isCMS||isBelowTabCount;}},// ─── 7. Behavior ───────────────────────────────────────────────────────────\nonTabChange:{type:ControlType.EventHandler,title:\"On Tab Change\",description:\"Tab change handler function.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowTabCount=(p.numTabs??3)<2;return isCMS||isBelowTabCount;}},// ─── 9. Advanced ───────────────────────────────────────────────────────────\ntab1Id:{type:ControlType.String,title:\"Tab 1 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab 1. Leave empty for an auto-generated id scoped to this section.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numTabs??3)<1;return isCMS||isBelowCount;}},tab2Id:{type:ControlType.String,title:\"Tab 2 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab 2.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numTabs??3)<2;return isCMS||isBelowCount;}},tab3Id:{type:ControlType.String,title:\"Tab 3 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab 3.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numTabs??3)<3;return isCMS||isBelowCount;}},tab4Id:{type:ControlType.String,title:\"Tab 4 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab 4.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<4;return isCMS||isBelowRenderedCount;}},tab5Id:{type:ControlType.String,title:\"Tab 5 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab 5.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<5;return isCMS||isBelowRenderedCount;}},tab6Id:{type:ControlType.String,title:\"Tab 6 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab 6.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<6;return isCMS||isBelowRenderedCount;}},panel1Id:{type:ControlType.String,title:\"Panel 1 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab panel 1 (card stack slot).\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numTabs??3)<1;return isCMS||isBelowCount;}},panel2Id:{type:ControlType.String,title:\"Panel 2 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab panel 2.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numTabs??3)<2;return isCMS||isBelowCount;}},panel3Id:{type:ControlType.String,title:\"Panel 3 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab panel 3.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowCount=(p.numTabs??3)<3;return isCMS||isBelowCount;}},panel4Id:{type:ControlType.String,title:\"Panel 4 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab panel 4.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<4;return isCMS||isBelowRenderedCount;}},panel5Id:{type:ControlType.String,title:\"Panel 5 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab panel 5.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<5;return isCMS||isBelowRenderedCount;}},panel6Id:{type:ControlType.String,title:\"Panel 6 ID\",defaultValue:\"\",placeholder:HINT_ELEMENT_ID,description:\"Unique id for tab panel 6.\",hidden:p=>{const isCMS=p.contentSource===\"cms\";const isBelowRenderedCount=sectionFeatureCardImageStackRenderedTabCount(p)<6;return isCMS||isBelowRenderedCount;}},// ─── 8. Accessibility ──────────────────────────────────────────────────────\ncardsAriaLabel:{type:ControlType.String,title:\"Cards Region Label\",defaultValue:\"Feature cards\",placeholder:\"Feature cards\",description:\"Accessible label for the card region (CMS row and phone carousel). Update for localisation.\"},sectionsAriaLabel:{type:ControlType.String,title:\"Sections Region Label\",defaultValue:\"Feature sections\",placeholder:\"Feature sections\",description:\"Accessible label for the tabs navigation region. Update for localisation.\"},sectionId:{type:ControlType.String,title:\"Section ID\",defaultValue:\"\",placeholder:\"e.g. section-name\",description:\"HTML id for the section and prefix for auto-generated tab/panel ids. Set a unique value per instance on the page.\"},// ─── 10. System ────────────────────────────────────────────────────────────\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"desktop\",description:\"Select the breakpoint to match Framer's canvas.\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"default\",\"inverted\"],optionTitles:[\"Default\",\"Inverted\"],displaySegmentedControl:true,defaultValue:\"default\",description:\"Default is dark mode, inverted is light mode. Theme passes to all children.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"FeatureCardImageStackItem\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"SectionFeatureCardImageStack\",\"slots\":[\"collectionList\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"SectionFeatureCardImageStackProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Breakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SectionFeatureCardImageStack.map"],"mappings":"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"}