{"version":3,"file":"SiteHeader.CTVY986P.mjs","names":["canonicalPath","RENAMED_PATHS","React.useState","React.useRef","HEAD_FONT","BODY_FONT","resolveLink","NEWSLETTER_URL","LINK_FALLBACKS","canonicalPath","RENAMED_PATHS","HEAD_FONT","BODY_FONT","resolveLink","React.useState","React.useRef","React.useCallback"],"sources":["https:/framerusercontent.com/modules/tJGF9E9x08vlgPovoEKL/sNhtbqNSiJx9K9XPsEdj/NextStepsBubble.js","https:/framerusercontent.com/modules/aBeaQkpFFc83QlXkjuwl/YZQlD3hz6c4fOLxmJCId/SiteFooter.js","https:/framerusercontent.com/modules/dLj5NeEesSgao78sd2q5/2efO7YrHCqqol5FksdUU/SiteHeader.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion,AnimatePresence}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const HEAD_FONT=\"'Montserrat', 'Helvetica Neue', sans-serif\";const BODY_FONT=\"'Archivo', 'Helvetica Neue', sans-serif\";// The bubble is solid brand blue, not a gradient (Jack, 2026-08-26). Instances\n// snapshot props at insert time, so the fill is resolved from this constant\n// rather than the old color1/color2 pair some instances still carry.\nconst BRAND_BLUE=\"#4d9ee9\";// Circle diameter. Instances also snapshot the size prop, so the 88 that\n// shipped instances carry is read as \"never set by hand\" and resolved to the\n// current default (Jack, 2026-09-01: a bit smaller). A client-picked value\n// other than 88 always wins.\nconst CIRCLE_SIZE=76;const LEGACY_CIRCLE_SIZE=88;// Newsletter destination is not confirmed by the client yet; a mailto is the\n// only address guaranteed to reach a human until they supply the signup form.\nconst NEWSLETTER_URL=\"mailto:office@riveroaks.church?subject=Newsletter%20sign-up\";// river-oaks-church.churchcenter.com is the real subdomain. The shorter\n// riveroaks.churchcenter.com belongs to a different church and 404s; it was\n// live on several buttons until 2026-08-17, so it is rewritten at render\n// below rather than only corrected in these defaults.\nconst CC=\"https://river-oaks-church.churchcenter.com\";const DEAD_CC=\"riveroaks.churchcenter.com\";// Baptism goes to the church's own signup form (Jack, 2026-09-01), not the\n// generic registrations index. Instances snapshot Quick Links at insert time,\n// so any stored Baptism row is rewritten at render — see resolveLink.\nconst BAPTISM_URL=`${CC}/people/forms/1068727`;const BAPTISM_LABELS=[\"Baptism\",\"Baptisms\"];// Quick-link order from the 2026-08-18 review call: the pastor's four priorities\n// (Weekly Bulletin, Serve, Groups, Baptism) lead, and the rest of the\n// 2026-07-28 set follows underneath.\n// Instances snapshot Array props at insert time, so any stored set that still\n// carries a removed item or is missing a call addition is replaced wholesale\n// at render. A client edit that keeps all the call labels wins.\nconst CANONICAL_LINKS=[{label:\"Weekly Bulletin\",description:\"This week's events & announcements\",link:\"/bulletin\"},{label:\"Serve\",description:\"Saturate Murfreesboro with His love\",link:\"/saturate-murfreesboro\"},{label:\"Find a Group\",description:\"Do life together\",link:\"/groups\"},{label:\"Baptism\",description:\"Take your next step of obedience\",link:BAPTISM_URL},{label:\"Plan Your Visit\",description:\"Sundays 8, 9:30 & 11AM\",link:\"/visitriveroaks\"},{label:\"Give\",description:\"Simple & secure\",link:\"/give\"},{label:\"Request Prayer\",description:\"We'd love to pray for you\",link:\"/you-matter\"},{label:\"Get Support\",description:\"Care for whatever you're carrying\",link:\"/care\"},{label:\"Prayer Guide\",description:\"Learn to pray with Scripture\",link:\"/prayer-guide\"},{label:\"Request a Wedding Officiant\",description:\"Ask one of our pastors\",link:`${CC}/people/forms/1171270`},{label:\"Newsletter Signup\",description:\"Stay in the loop each week\",link:NEWSLETTER_URL}];const REMOVED_LABELS=[\"RO KiDS\",\"Students\",\"Pre-Register Your Kids\"];const CALL_LABELS=[\"Weekly Bulletin\",\"Serve\",\"Baptism\"];function healLinks(links){if(!Array.isArray(links)||links.length===0)return CANONICAL_LINKS;const labels=links.map(l=>(l?.label||\"\").trim());const hasRemoved=labels.some(l=>REMOVED_LABELS.includes(l));const hasAllCall=CALL_LABELS.every(cl=>labels.includes(cl));return hasRemoved||!hasAllCall?CANONICAL_LINKS:links;}// Fallback destinations by label — used when an instance has no link set\n// (older instances stored empty links; client-set values always win).\nconst LINK_FALLBACKS={\"Weekly Bulletin\":\"/bulletin\",\"Bulletin\":\"/bulletin\",\"Plan Your Visit\":\"/visitriveroaks\",\"Visit\":\"/visitriveroaks\",\"New Here?\":\"/visitriveroaks\",\"RO KiDS\":\"/kids\",\"Kids\":\"/kids\",\"Students\":\"/students\",\"Find a Group\":\"/groups\",\"Groups\":\"/groups\",\"Give\":\"/give\",\"Serve\":\"/saturate-murfreesboro\",\"Baptism\":BAPTISM_URL,\"Baptisms\":BAPTISM_URL,\"Request Prayer\":\"/you-matter\",\"Prayer\":\"/you-matter\",\"Prayer Guide\":\"/prayer-guide\",\"Request a Wedding Officiant\":`${CC}/people/forms/1171270`,\"Get Involved\":\"/saturate-murfreesboro\",\"Get Support\":\"/care\",\"Newsletter Signup\":NEWSLETTER_URL};// Three slugs moved to the old site's addresses so the search equity carries\n// over. Instances snapshot the Quick Links array at insert time, so stored\n// props still point at the retired paths — they are rewritten at render, the\n// same way the dead Church Center subdomain is.\nconst RENAMED_PATHS={\"/visit\":\"/visitriveroaks\",\"/staff\":\"/our-staff\",\"/about\":\"/who-we-are\"};function canonicalPath(path){const cut=path.search(/[#?]/);const base=cut===-1?path:path.slice(0,cut);const tail=cut===-1?\"\":path.slice(cut);return(RENAMED_PATHS[base]||base)+tail;}const resolveLink=l=>{const label=(l.label||\"\").trim();// Every instance's Baptism row points at the signup form, whatever the\n// stored snapshot says, so all pages move together.\nif(BAPTISM_LABELS.includes(label))return BAPTISM_URL;const raw=l.link||LINK_FALLBACKS[label]||\"#\";const fixed=raw.includes(DEAD_CC)?raw.replace(DEAD_CC,\"river-oaks-church.churchcenter.com\"):raw;return canonicalPath(fixed);};/**\n * Floating \"Next Steps\" quick-action bubble.\n * Self-positions fixed in the bottom-right corner of the viewport at runtime —\n * place it anywhere in the page flow (it takes up no space).\n *\n * On phones it still rides a little above the desktop resting spot so the\n * free-plan \"Made in Framer\" badge in the same corner stays clear, but only\n * by 24px (Jack, 2026-09-01) instead of the old 56px, which floated it too\n * far up the screen.\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 92\n * @framerIntrinsicHeight 92\n */export default function NextStepsBubble(props){const{label,heading,links=[],color,size,teaserEnabled,teaserTitle,teaserText,teaserLink}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[open,setOpen]=React.useState(false);const[teaser,setTeaser]=React.useState(false);const[isPhone,setIsPhone]=React.useState(false);const rootRef=React.useRef(null);const quickLinks=healLinks(links);// The circle carries the label on two lines, so it is split once here\n// rather than relying on the browser to break it in a fixed-width circle.\nconst words=String(label||\"Next Steps\").trim().split(/\\s+/);const line1=words.slice(0,Math.ceil(words.length/2)).join(\" \");const line2=words.slice(Math.ceil(words.length/2)).join(\" \");React.useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const mq=window.matchMedia(\"(max-width: 809px)\");const onMq=()=>setIsPhone(mq.matches);onMq();mq.addEventListener(\"change\",onMq);return()=>mq.removeEventListener(\"change\",onMq);},[]);React.useEffect(()=>{if(typeof document===\"undefined\"||!open)return;const onDown=e=>{if(rootRef.current&&!rootRef.current.contains(e.target)){setOpen(false);}};const onKey=e=>{if(e.key===\"Escape\")setOpen(false);};document.addEventListener(\"mousedown\",onDown);document.addEventListener(\"touchstart\",onDown);document.addEventListener(\"keydown\",onKey);return()=>{document.removeEventListener(\"mousedown\",onDown);document.removeEventListener(\"touchstart\",onDown);document.removeEventListener(\"keydown\",onKey);};},[open]);// The campaign peek (\"Click here\" → this week's bulletin) slides out of\n// the circle a beat after the page settles, and stays dismissed for the\n// rest of the browsing session so it never nags.\nReact.useEffect(()=>{if(isCanvas||!teaserEnabled||typeof window===\"undefined\")return;try{if(window.sessionStorage.getItem(\"ro-teaser-dismissed\")===\"1\")return;}catch(e){// Private browsing can throw on sessionStorage; show it anyway.\n}const t=window.setTimeout(()=>setTeaser(true),1400);return()=>clearTimeout(t);},[isCanvas,teaserEnabled]);const dismissTeaser=()=>{setTeaser(false);try{window.sessionStorage.setItem(\"ro-teaser-dismissed\",\"1\");}catch(e){// Nothing to do — the peek simply reappears next page load.\n}};const fill=color||BRAND_BLUE;const storedSize=Number(size);const dim=Math.max(56,!storedSize||storedSize===LEGACY_CIRCLE_SIZE?CIRCLE_SIZE:storedSize);const bubble=/*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{position:isCanvas?\"relative\":\"fixed\",bottom:isCanvas?undefined:isPhone?\"calc(max(20px, env(safe-area-inset-bottom)) + 24px)\":\"max(20px, env(safe-area-inset-bottom))\",right:20,zIndex:9995,display:\"flex\",flexDirection:\"column\",alignItems:\"flex-end\"},children:[/*#__PURE__*/_jsx(AnimatePresence,{children:open&&/*#__PURE__*/_jsxs(motion.div,{role:\"menu\",initial:{opacity:0,y:16,scale:.96},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:12,scale:.97},transition:{duration:.22,ease:[.22,1,.36,1]},style:{position:\"absolute\",bottom:\"calc(100% + 14px)\",right:0,width:\"min(340px, calc(100vw - 40px))\",background:\"#ffffff\",borderRadius:22,boxShadow:\"0 24px 70px rgba(0,0,0,0.22), 0 4px 16px rgba(0,0,0,0.10)\",overflow:\"hidden\",transformOrigin:\"bottom right\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{background:fill,padding:\"18px 22px\",color:\"#ffffff\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:HEAD_FONT,fontWeight:700,fontSize:18},children:heading}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:BODY_FONT,fontSize:13.5,opacity:.92,marginTop:4},children:\"Wherever you are, there's a next step for you.\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{padding:10,maxHeight:\"55vh\",overflowY:\"auto\"},children:quickLinks.map((l,i)=>/*#__PURE__*/_jsxs(\"a\",{role:\"menuitem\",href:resolveLink(l),onClick:()=>setOpen(false),style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:12,padding:\"14px 14px\",borderRadius:14,textDecoration:\"none\",color:\"#000000\",transition:\"background 0.18s ease\"},onMouseEnter:e=>e.currentTarget.style.background=\"#f0f6fd\",onMouseLeave:e=>e.currentTarget.style.background=\"transparent\",children:[/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontFamily:HEAD_FONT,fontWeight:700,fontSize:15.5},children:l.label}),l.description?/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontFamily:BODY_FONT,fontSize:13,color:\"#555555\",marginTop:2},children:l.description}):null]}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,style:{fontFamily:BODY_FONT,fontSize:16,color:fill,flexShrink:0},children:\"→\"})]},i))})]})}),/*#__PURE__*/_jsx(AnimatePresence,{children:teaser&&!open&&/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0,x:24,scale:.94},animate:{opacity:1,x:0,scale:1},exit:{opacity:0,x:16,scale:.96},transition:{duration:.34,ease:[.22,1,.36,1]},style:{position:\"absolute\",bottom:Math.round(dim/2-26),right:dim+12,display:\"flex\",alignItems:\"center\",gap:10,padding:\"12px 14px\",width:\"max-content\",maxWidth:\"min(260px, calc(100vw - 130px))\",background:\"#ffffff\",borderRadius:16,boxShadow:\"0 14px 40px rgba(0,0,0,0.20)\",transformOrigin:\"right center\"},children:[/*#__PURE__*/_jsxs(\"a\",{href:teaserLink||\"/bulletin\",onClick:dismissTeaser,style:{textDecoration:\"none\",display:\"block\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontFamily:HEAD_FONT,fontWeight:700,fontSize:14.5,color:\"#000000\",lineHeight:1.2},children:teaserTitle}),/*#__PURE__*/_jsxs(\"span\",{style:{display:\"block\",fontFamily:BODY_FONT,fontSize:13,color:fill,fontWeight:600,marginTop:3},children:[teaserText,\" →\"]})]}),/*#__PURE__*/_jsx(\"button\",{\"aria-label\":\"Dismiss\",onClick:dismissTeaser,style:{width:26,height:26,flexShrink:0,alignSelf:\"flex-start\",borderRadius:999,border:\"none\",background:\"#f2f2f2\",color:\"#555555\",fontSize:12,lineHeight:1,cursor:\"pointer\",fontFamily:BODY_FONT},children:\"✕\"})]})}),/*#__PURE__*/_jsx(motion.button,{\"aria-label\":open?\"Close next steps menu\":\"Open next steps menu\",\"aria-expanded\":open,onClick:()=>!isCanvas&&setOpen(!open),whileHover:{scale:1.05},whileTap:{scale:.95},style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:1,width:dim,height:dim,padding:0,// A true circle, per the 2026-08-18 review.\nborderRadius:\"50%\",border:\"none\",background:fill,color:\"#ffffff\",fontFamily:HEAD_FONT,fontWeight:700,fontSize:12,lineHeight:1.12,letterSpacing:\"0.01em\",textTransform:\"uppercase\",cursor:\"pointer\",boxShadow:\"0 12px 34px rgba(62,127,187,0.45)\"},children:/*#__PURE__*/_jsx(AnimatePresence,{mode:\"wait\",initial:false,children:open?/*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":true,initial:{opacity:0,rotate:-45},animate:{opacity:1,rotate:0},exit:{opacity:0,rotate:45},transition:{duration:.18},style:{fontSize:24,fontWeight:400,fontFamily:BODY_FONT,lineHeight:1},children:\"✕\"},\"close\"):/*#__PURE__*/_jsxs(motion.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.18},style:{display:\"block\",textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\"},children:line1}),line2?/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\"},children:line2}):null]},\"label\")})})]});if(isCanvas)return bubble;// Zero-footprint anchor: the bubble is fixed to the viewport, so its slot\n// in the page flow takes no space.\nreturn /*#__PURE__*/_jsx(\"div\",{style:{width:0,height:0,overflow:\"visible\"},children:bubble});}addPropertyControls(NextStepsBubble,{label:{type:ControlType.String,title:\"Button Label\",defaultValue:\"Next Steps\"},heading:{type:ControlType.String,title:\"Panel Heading\",defaultValue:\"Take a Next Step\"},size:{type:ControlType.Number,title:\"Circle Size\",defaultValue:CIRCLE_SIZE,min:56,max:120,step:2,displayStepper:true},links:{type:ControlType.Array,title:\"Quick Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,defaultValue:\"Plan Your Visit\"},description:{type:ControlType.String,defaultValue:\"\"},link:{type:ControlType.String,defaultValue:\"/visitriveroaks\"}}},defaultValue:CANONICAL_LINKS},teaserEnabled:{type:ControlType.Boolean,title:\"Show Peek\",defaultValue:true,description:\"Small promo that slides out beside the circle\"},teaserTitle:{type:ControlType.String,title:\"Peek Title\",defaultValue:\"This week's bulletin\"},teaserText:{type:ControlType.String,title:\"Peek Link Text\",defaultValue:\"Click here\"},teaserLink:{type:ControlType.String,title:\"Peek Link\",defaultValue:\"/bulletin\"},color:{type:ControlType.Color,title:\"Bubble Color\",defaultValue:BRAND_BLUE}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NextStepsBubble\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"92\",\"framerIntrinsicHeight\":\"92\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NextStepsBubble.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";const HEAD_FONT=\"'Montserrat', 'Helvetica Neue', sans-serif\";const BODY_FONT=\"'Archivo', 'Helvetica Neue', sans-serif\";// Same artwork the header uses. Kept as a String default rather than a\n// ResponsiveImage control so every existing footer instance picks it up\n// without a per-page edit (the MCP cannot write image props).\nconst LOGO_URL=\"https://framerusercontent.com/images/XG6THANgbxV5jVaNAx3dHva2qXM.png?width=2200&height=458\";// Newsletter destination is not confirmed by the client yet; a mailto is the\n// only address guaranteed to reach a human until they supply the signup form.\nconst NEWSLETTER_URL=\"mailto:office@riveroaks.church?subject=Newsletter%20sign-up\";// River Oaks' real social accounts, verified 2026-08-23.\n//\n// An earlier build used the handle \"riveroakstn\" for both Facebook and\n// Instagram. Neither exists: Facebook returns \"This content isn't available\n// right now\" and Instagram returns \"Profile isn't available\". The live\n// riveroaks.church site points at facebook.com/RiverOaksChurch and\n// instagram.com/riveroaks.church, and both resolve to the real Murfreesboro\n// accounts.\n//\n// The footer appears on every page and each instance stores its own copy of\n// these URLs, which the MCP cannot rewrite, so the handle is corrected at\n// render time. Same approach as the Church Center host fix in BrandButton.\n// Duplicated in SocialRow.tsx: Framer rejects code files that do not export\n// a component, so there is nowhere shared to put it.\nconst SOCIAL_FIXES=[[/\\/\\/(?:www\\.)?facebook\\.com\\/riveroakstn\\/?$/i,\"//www.facebook.com/RiverOaksChurch\"],[/\\/\\/(?:www\\.)?instagram\\.com\\/riveroakstn\\/?$/i,\"//www.instagram.com/riveroaks.church\"]];function correctSocial(url){if(!url)return url;for(const[re,to]of SOCIAL_FIXES){if(re.test(url))return url.replace(re,to);}return url;}// Canonical link sets from the 2026-07-28 client call, revised 2026-08-17.\n//\n// The Weekly Bulletin is now the single events destination, so the old\n// standalone \"Events\" entry is gone from here: it pointed at a second,\n// parallel calendar and the client asked not to maintain two. Anything that\n// still stores the old label is routed to the bulletin by LINK_FALLBACKS\n// below, so no stored instance can produce a dead end.\nconst CANONICAL_EXPLORE=[{label:\"About\",link:\"/who-we-are\"},{label:\"Give\",link:\"/give\"},{label:\"Weekly Bulletin\",link:\"/bulletin\"},{label:\"Kids\",link:\"/kids\"},{label:\"Students\",link:\"/students\"},{label:\"Saturate Murfreesboro\",link:\"/saturate-murfreesboro\"},{label:\"Groups\",link:\"/groups\"},{label:\"Resources\",link:\"/resources\"},{label:\"Care\",link:\"/care\"},{label:\"Sermons\",link:\"/sermons\"},{label:\"Sermon Notes\",link:\"/sermon-notes\"},{label:\"Staff\",link:\"/our-staff\"}];const CANONICAL_NEXT_STEPS=[{label:\"Plan Your Visit\",link:\"/visitriveroaks\"},{label:\"Serve\",link:\"/saturate-murfreesboro\"},{label:\"Give\",link:\"/give\"},{label:\"Request Prayer\",link:\"/you-matter\"},{label:\"Get Support\",link:\"/care\"},{label:\"Newsletter Signup\",link:NEWSLETTER_URL}];const EXPLORE_CALL_LABELS=[\"Weekly Bulletin\",\"Resources\",\"Care\",\"Sermon Notes\"];const NEXT_CALL_LABELS=[\"Serve\",\"Newsletter Signup\"];// Instances snapshot Array props at insert time and the MCP cannot rewrite\n// them, so a stored set is trusted only when it carries EVERY label the\n// current canonical set introduced. Missing one means the instance predates\n// that revision and is replaced wholesale; a client who has genuinely edited\n// the footer keeps all the labels, so their edit survives.\n//\n// This has to be \"every\", not \"some\": with \"some\", an instance stored after\n// an earlier revision would satisfy the check on an old label and silently\n// keep a menu that is missing everything added since.\nfunction heal(list,canonical,callLabels){if(!Array.isArray(list)||list.length===0)return canonical;const labels=list.map(l=>(l?.label||\"\").trim());return callLabels.every(c=>labels.includes(c))?list:canonical;}// Fallback destinations by label — used when an instance has no link set\n// (older instances stored empty links; client-set values always win).\nconst LINK_FALLBACKS={\"Visit\":\"/visitriveroaks\",\"Kids\":\"/kids\",\"Students\":\"/students\",\"Groups\":\"/groups\",\"Sermons\":\"/sermons\",\"Sermon Notes\":\"/sermon-notes\",// Retired page: the bulletin is the events destination now.\n\"Events\":\"/bulletin\",\"Staff\":\"/our-staff\",\"Give\":\"/give\",\"About\":\"/who-we-are\",\"Weekly Bulletin\":\"/bulletin\",\"Resources\":\"/resources\",\"Care\":\"/care\",\"Serve\":\"/saturate-murfreesboro\",\"Newsletter Signup\":NEWSLETTER_URL,\"Request Prayer\":\"/you-matter\",\"Plan Your Visit\":\"/visitriveroaks\",\"Pre-Register Your Kids\":\"/kids\",\"Get Involved\":\"/saturate-murfreesboro\",\"Find Support\":\"/saturate-murfreesboro\",\"Get Support\":\"/care\",\"Saturate Murfreesboro\":\"/saturate-murfreesboro\"};// A stored \"/events\" link is rewritten too, not just a missing one: the\n// retired page must not be reachable from the footer of any page whose\n// instance still holds the old value.\nconst RETIRED_LINKS={\"/events\":\"/bulletin\"};// Three slugs moved to the old site's addresses so the search equity carries\n// over. Instances snapshot Array props at insert time, so stored props still\n// point at the retired paths — they are rewritten here rather than only\n// corrected in the defaults above.\nconst RENAMED_PATHS={\"/visit\":\"/visitriveroaks\",\"/staff\":\"/our-staff\",\"/about\":\"/who-we-are\"};function canonicalPath(path){const cut=path.search(/[#?]/);const base=cut===-1?path:path.slice(0,cut);const tail=cut===-1?\"\":path.slice(cut);return(RENAMED_PATHS[base]||base)+tail;}const resolveLink=l=>{const stored=(l.link||\"\").trim();const target=stored||LINK_FALLBACKS[(l.label||\"\").trim()]||\"#\";return canonicalPath(RETIRED_LINKS[target]||target);};// Phone layout: the whole footer centres, matching the rest of the site.\nconst FOOTER_CSS=`\n@media (max-width: 809px) {\n  .ro-footer, .ro-footer a, .ro-footer p, .ro-footer div, .ro-footer span { text-align: center; }\n  .ro-footer .ro-foot-cols { justify-content: center; }\n  .ro-footer .ro-foot-brand { align-items: center; }\n  .ro-footer .ro-foot-brand p { margin-left: auto; margin-right: auto; }\n  .ro-footer .ro-foot-socials { justify-content: center; }\n  .ro-footer .ro-foot-col { flex: 1 1 100%; }\n  .ro-footer .ro-foot-legal { justify-content: center; flex-direction: column; gap: 8px; }\n}\n`;/**\n * Site footer — dark, warm, with logo, address, service times, links, socials.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1200\n */export default function SiteFooter(props){const{tagline,address,email,serviceTimes,mapsLink,logoUrl,logoHeight,logoWhite,links=[],nextSteps=[],instagram,facebook,youtube,accent,style}=props;const year=new Date().getFullYear();const exploreLinks=heal(links,CANONICAL_EXPLORE,EXPLORE_CALL_LABELS);const nextStepLinks=heal(nextSteps,CANONICAL_NEXT_STEPS,NEXT_CALL_LABELS);const colTitle={fontFamily:HEAD_FONT,fontWeight:700,fontSize:13,letterSpacing:\"0.14em\",textTransform:\"uppercase\",color:\"rgba(255,255,255,0.55)\",marginBottom:18};const linkStyle={display:\"block\",fontFamily:BODY_FONT,fontSize:15.5,color:\"rgba(255,255,255,0.88)\",textDecoration:\"none\",padding:\"7px 0\"};const socials=[{url:instagram,label:\"Instagram\",d:\"M12 2.2c3.2 0 3.6 0 4.9.1 1.2.1 1.8.2 2.2.4.6.2 1 .5 1.4.9.4.4.7.8.9 1.4.2.4.4 1 .4 2.2.1 1.3.1 1.7.1 4.9s0 3.6-.1 4.9c-.1 1.2-.2 1.8-.4 2.2-.2.6-.5 1-.9 1.4-.4.4-.8.7-1.4.9-.4.2-1 .4-2.2.4-1.3.1-1.7.1-4.9.1s-3.6 0-4.9-.1c-1.2-.1-1.8-.2-2.2-.4-.6-.2-1-.5-1.4-.9-.4-.4-.7-.8-.9-1.4-.2-.4-.4-1-.4-2.2-.1-1.3-.1-1.7-.1-4.9s0-3.6.1-4.9c.1-1.2.2-1.8.4-2.2.2-.6.5-1 .9-1.4.4-.4.8-.7 1.4-.9.4-.2 1-.4 2.2-.4 1.3-.1 1.7-.1 4.9-.1zm0 2c-3.1 0-3.5 0-4.8.1-1.1.1-1.4.2-1.7.3-.4.2-.7.3-1 .6-.3.3-.5.6-.6 1-.1.3-.3.6-.3 1.7-.1 1.3-.1 1.6-.1 4.8s0 3.5.1 4.8c.1 1.1.2 1.4.3 1.7.2.4.3.7.6 1 .3.3.6.5 1 .6.3.1.6.3 1.7.3 1.3.1 1.6.1 4.8.1s3.5 0 4.8-.1c1.1-.1 1.4-.2 1.7-.3.4-.2.7-.3 1-.6.3-.3.5-.6.6-1 .1-.3.3-.6.3-1.7.1-1.3.1-1.6.1-4.8s0-3.5-.1-4.8c-.1-1.1-.2-1.4-.3-1.7-.2-.4-.3-.7-.6-1-.3-.3-.6-.5-1-.6-.3-.1-.6-.3-1.7-.3-1.3-.1-1.6-.1-4.8-.1zm0 3.3a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm0 2a2.5 2.5 0 100 5 2.5 2.5 0 000-5zm4.7-2.9a1.05 1.05 0 110 2.1 1.05 1.05 0 010-2.1z\"},{url:facebook,label:\"Facebook\",d:\"M13.5 21v-7h2.4l.4-3h-2.8V9.1c0-.9.2-1.5 1.5-1.5h1.4V4.9c-.3 0-1.2-.1-2.2-.1-2.2 0-3.7 1.3-3.7 3.8V11H8v3h2.5v7h3z\"},{url:youtube,label:\"YouTube\",d:\"M21.6 7.2s-.2-1.4-.8-2c-.7-.8-1.6-.8-2-.9C16 4 12 4 12 4s-4 0-6.8.3c-.4.1-1.2.1-2 .9-.6.6-.8 2-.8 2S2 8.9 2 10.6v1.6c0 1.7.2 3.4.2 3.4s.2 1.4.8 2c.7.8 1.7.7 2.1.8 1.6.2 6.9.3 6.9.3s4 0 6.8-.3c.4-.1 1.2-.1 2-.9.6-.6.8-2 .8-2s.2-1.7.2-3.4v-1.6c0-1.7-.2-3.4-.2-3.4zM10 14.6V8.9l5.3 2.9-5.3 2.8z\"}].filter(s=>s.url);const src=logoUrl||LOGO_URL;return /*#__PURE__*/_jsxs(\"footer\",{className:\"ro-footer\",style:{width:\"100%\",boxSizing:\"border-box\",background:\"#000000\",color:\"#ffffff\",padding:\"clamp(48px, 7vw, 88px) clamp(20px, 5vw, 64px) 32px\",...style},children:[/*#__PURE__*/_jsx(\"style\",{children:FOOTER_CSS}),/*#__PURE__*/_jsxs(\"div\",{className:\"ro-foot-cols\",style:{display:\"flex\",flexWrap:\"wrap\",gap:\"48px 64px\",justifyContent:\"space-between\",maxWidth:1200,margin:\"0 auto\"},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"ro-foot-brand\",style:{flex:\"2 1 300px\",minWidth:260,display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\"},children:[/*#__PURE__*/_jsx(\"a\",{href:\"/\",\"aria-label\":\"River Oaks Church home\",children:/*#__PURE__*/_jsx(\"img\",{src:src,alt:\"River Oaks Church\",style:{height:logoHeight,width:\"auto\",display:\"block\",// The artwork is dark-on-transparent; the footer is\n// black, so knock it back to solid white.\nfilter:logoWhite?\"brightness(0) invert(1)\":\"none\"}})}),/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:BODY_FONT,fontSize:16,lineHeight:1.55,color:\"rgba(255,255,255,0.8)\",margin:\"22px 0 26px\",maxWidth:380},children:tagline}),/*#__PURE__*/_jsx(\"a\",{href:mapsLink,target:\"_blank\",rel:\"noopener noreferrer\",style:{...linkStyle,padding:0,marginBottom:8},children:address}),email?/*#__PURE__*/_jsx(\"a\",{href:`mailto:${email}`,style:{...linkStyle,padding:0,marginBottom:8},children:email}):null,/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:HEAD_FONT,fontWeight:700,fontSize:15,color:accent,marginTop:6},children:serviceTimes}),socials.length>0&&/*#__PURE__*/_jsx(\"div\",{className:\"ro-foot-socials\",style:{display:\"flex\",gap:12,marginTop:26,width:\"100%\"},children:socials.map((s,i)=>/*#__PURE__*/_jsx(\"a\",{href:correctSocial(s.url),\"aria-label\":s.label,target:\"_blank\",rel:\"noopener noreferrer\",style:{width:44,height:44,flexShrink:0,borderRadius:999,background:\"rgba(255,255,255,0.1)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:s.d,fill:\"#ffffff\"})})},i))})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"ro-foot-col\",style:{flex:\"1 1 160px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:colTitle,children:\"Explore\"}),exploreLinks.map((l,i)=>/*#__PURE__*/_jsx(\"a\",{href:resolveLink(l),style:linkStyle,children:l.label},i))]}),/*#__PURE__*/_jsxs(\"div\",{className:\"ro-foot-col\",style:{flex:\"1 1 160px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:colTitle,children:\"Next Steps\"}),nextStepLinks.map((l,i)=>/*#__PURE__*/_jsx(\"a\",{href:resolveLink(l),style:linkStyle,children:l.label},i))]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"ro-foot-legal\",style:{maxWidth:1200,margin:\"56px auto 0\",paddingTop:24,borderTop:\"1px solid rgba(255,255,255,0.12)\",display:\"flex\",flexWrap:\"wrap\",gap:12,justifyContent:\"space-between\",fontFamily:BODY_FONT,fontSize:13.5,color:\"rgba(255,255,255,0.55)\"},children:[/*#__PURE__*/_jsxs(\"span\",{children:[\"\\xa9 \",year,\" River Oaks Church \\xb7 Murfreesboro, TN\"]}),/*#__PURE__*/_jsx(\"span\",{children:\"Love God and Love Others.\"})]})]});}addPropertyControls(SiteFooter,{logoUrl:{type:ControlType.String,title:\"Logo URL\",defaultValue:LOGO_URL,description:\"Same artwork as the header logo\"},logoHeight:{type:ControlType.Number,title:\"Logo Height\",min:24,max:120,step:2,defaultValue:52},logoWhite:{type:ControlType.Boolean,title:\"White Logo\",defaultValue:true,description:\"Knock the dark artwork back to white for the black footer\"},tagline:{type:ControlType.String,displayTextArea:true,title:\"Tagline\",defaultValue:\"A people rooted in Jesus, saturating Murfreesboro with His love.\"},address:{type:ControlType.String,title:\"Address\",defaultValue:\"210 Rucker Lane, Murfreesboro, TN 37128\"},email:{type:ControlType.String,title:\"Email\",defaultValue:\"office@riveroaks.church\"},serviceTimes:{type:ControlType.String,title:\"Service Times\",defaultValue:\"Sundays \\xb7 8AM, 9:30AM & 11AM\"},mapsLink:{type:ControlType.String,title:\"Maps Link\",defaultValue:\"https://maps.google.com/?q=210+Rucker+Lane+Murfreesboro+TN+37128\"},links:{type:ControlType.Array,title:\"Explore Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,defaultValue:\"Visit\"},link:{type:ControlType.String,defaultValue:\"/visitriveroaks\"}}},defaultValue:CANONICAL_EXPLORE},nextSteps:{type:ControlType.Array,title:\"Next Step Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,defaultValue:\"Give\"},link:{type:ControlType.String,defaultValue:\"/give\"}}},defaultValue:CANONICAL_NEXT_STEPS},instagram:{type:ControlType.String,title:\"Instagram\",defaultValue:\"https://www.instagram.com/riveroaks.church\"},facebook:{type:ControlType.String,title:\"Facebook\",defaultValue:\"https://www.facebook.com/RiverOaksChurch\"},youtube:{type:ControlType.String,title:\"YouTube\",defaultValue:\"https://www.youtube.com/@RiverOaksChurchMurfreesboro\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#71b2ee\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SiteFooter\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SiteFooter.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const HEAD_FONT=\"'Montserrat', 'Helvetica Neue', sans-serif\";const BODY_FONT=\"'Archivo', 'Helvetica Neue', sans-serif\";// Site-wide styles, injected once by the header (present on every page):\n// branded keyboard focus ring, prefers-reduced-motion kill switch, the\n// center-out underline hover for desktop nav links, phone type scale, and the\n// scroll-reveal used across sections, grids, and cards.\n//\n// Phone rules deliberately do NOT touch alignment: canvas layers keep the\n// alignment they were given in the Framer editor at every breakpoint.\nconst GLOBAL_A11Y_CSS=`\n:focus-visible { outline: 3px solid #4d9ee9 !important; outline-offset: 2px; border-radius: 4px; }\n@media (prefers-reduced-motion: reduce) {\n  *, *::before, *::after {\n    animation-duration: 0.01ms !important;\n    animation-iteration-count: 1 !important;\n    transition-duration: 0.01ms !important;\n    scroll-behavior: auto !important;\n  }\n  .ro-rv { opacity: 1 !important; transform: none !important; }\n}\n.ro-nav-link { position: relative; }\n.ro-nav-link::after {\n  content: \"\";\n  position: absolute;\n  left: 50%;\n  bottom: -6px;\n  width: 0;\n  height: 2px;\n  background: #4d9ee9;\n  border-radius: 2px;\n  transform: translateX(-50%);\n  transition: width 0.25s ease;\n}\n.ro-nav-link:hover::after { width: 100%; }\n.ro-nav-link[aria-expanded=\"true\"]::after { width: 100%; }\n\n/* The header is fixed, so an in-page anchor would otherwise land with its\n   heading tucked underneath the bar. */\n[id] { scroll-margin-top: 96px; }\n\n/* Scroll reveal. The class is only ever added by JS, so with scripting off\n   or if the observer never runs, everything stays visible. */\n.ro-rv {\n  opacity: 0;\n  transform: translateY(22px);\n  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),\n              transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);\n  will-change: opacity, transform;\n}\n.ro-rv-card { transform: translateY(26px) scale(0.985); }\n.ro-rv-in { opacity: 1 !important; transform: none !important; }\n\n@media (max-width: 809px) {\n  .ro-rv { transform: translateY(16px); } h1.framer-text, h1 .framer-text { font-size: clamp(30px, 8.4vw, 48px) !important; line-height: 1.06 !important; } h2.framer-text, h2 .framer-text { font-size: clamp(25px, 6.6vw, 36px) !important; } h3.framer-text, h3 .framer-text { font-size: clamp(21px, 5.4vw, 26px) !important; }\n}\n\n/* ------------------------------------------------------------------\n   Phone refinements.\n\n   These cut across several code components, which is why they live in\n   this one site-wide layer rather than in each component: the rules are\n   about the phone breakpoint, not about any single component's design.\n   Every selector is anchored to a class or ARIA attribute the component\n   already emits, and most carry !important because the value being\n   overridden is an inline style, which nothing else can beat.\n\n   Figures below are measured at 375px against the 2026-08-11 build.\n   ------------------------------------------------------------------ */\n@media (max-width: 809px) {\n  /* Groups filters. Thirteen chips at desktop sizing stacked seven rows\n     deep, so the first group card sat below the fold on a phone. Compact\n     chips take the block from 375px to 302px and six rows, which puts a\n     real group card on screen with the filters. They stay 42px tall: the\n     audience skews older and these are the page's primary control, so\n     shrinking them further to save another row is a bad trade. */\n  button[aria-pressed] {\n    padding: 11px 15px !important;\n    font-size: 13px !important;\n  }\n\n  /* Shared cards. 40px of padding on a 375px screen left a 295px measure,\n     which stretched every card; 24px takes a typical card from 647px to\n     592px and the homepage from 14410px to 14058px. */\n  .ro-fcard { padding: 24px !important; }\n  /* Long eyebrows (\"GROUPS \\xb7 EVERY AGE AND STAGE\") wrapped to two lines at\n     desktop tracking and pushed the title down. */\n  .ro-fcard [data-ro-eyebrow] {\n    font-size: 11.5px !important;\n    letter-spacing: 0.1em !important;\n  }\n\n  /* Sermon hero meta. \"with Pastor Sean Myers \\xb7 SUN \\xb7 8.9.2026\" was\n     breaking with \"SUN \\xb7\" stranded at the end of the first line. */\n  .ro-sermon-lockup p { text-wrap: balance; }\n\n  /* Carousel pagination dots were 9px squares. Still small, but a 14px\n     minimum is tappable without the hit areas of adjacent dots\n     overlapping, which is what a full 44px target would do at this pitch. */\n  button[aria-label^=\"Go to story\"] {\n    min-width: 14px !important;\n    min-height: 14px !important;\n  }\n\n  /* Footer contact links sat at 25px tall. Framer writes padding:0 inline\n     on these, so without !important the override does not land at all;\n     with it they measure 45px. */\n  footer a[href^=\"mailto:\"],\n  footer a[href^=\"https://maps.google\"] {\n    display: inline-block !important;\n    padding: 10px 0 !important;\n  }\n}\n`;// Menu restructure from the 2026-08-18 review call: \"About\" became\n// \"New Here?\", the five ministry destinations collapsed behind a single\n// \"Ministries\" item, and the top level is held to six.\n//\n// Instances snapshot the Nav Links array at insert time, so the canonical set\n// lives here: any stored array that predates the call (detectably: no\n// \"Ministries\" item) is replaced wholesale at render. A client edit that\n// keeps Ministries always wins.\nconst CANONICAL_NAV=[{label:\"New Here?\",link:\"/visitriveroaks\"},{label:\"Ministries\",link:\"\"},{label:\"Weekly Bulletin\",link:\"/bulletin\"},{label:\"Resources\",link:\"/resources\"},{label:\"Give\",link:\"/give\"}];// Submenus are keyed by the parent item's label. They live in code rather\n// than in a nested Array control because Framer drops nested array\n// defaultValues the same way it drops Link defaults inside arrays\n// (MEMORY/attempts.md). Add a ministry here and every page picks it up.\n// \"Legacy Generation 50+\" is the client's rename of Encore (build-out PDF).\nconst DROPDOWNS={Ministries:[{label:\"Kids\",link:\"/kids\"},{label:\"Students\",link:\"/students\"},{label:\"Young Adults\",link:\"/young-adults\"},{label:\"Legacy Generation 50+\",link:\"/encore\"},{label:\"Groups\",link:\"/groups\"},{label:\"Saturate Murfreesboro\",link:\"/saturate-murfreesboro\"},{label:\"Care\",link:\"/care\"}]};function healNav(links){if(!Array.isArray(links)||links.length===0)return CANONICAL_NAV;const labels=links.map(l=>(l?.label||\"\").trim());const isStale=!labels.includes(\"Ministries\");return isStale?CANONICAL_NAV:links.filter(l=>(l?.label||\"\").trim()!==\"Sermons\");}// Existing instances store dead link values from the old ControlType.Link\n// array bug — resolve by label so the header self-heals; client-set links win.\nconst NAV_FALLBACKS={Visit:\"/visitriveroaks\",\"New Here?\":\"/visitriveroaks\",\"New Here\":\"/visitriveroaks\",Kids:\"/kids\",\"RO Kids\":\"/kids\",Students:\"/students\",\"RO Students\":\"/students\",\"Young Adults\":\"/young-adults\",Encore:\"/encore\",\"Encore \\xb7 55+\":\"/encore\",\"55+\":\"/encore\",\"Legacy Generation 50+\":\"/encore\",Groups:\"/groups\",\"Saturate Murfreesboro\":\"/saturate-murfreesboro\",Sermons:\"/sermons\",Give:\"/give\",Events:\"/events\",Staff:\"/our-staff\",Home:\"/\",About:\"/who-we-are\",\"Weekly Bulletin\":\"/bulletin\",Resources:\"/resources\",Care:\"/care\"};// Three slugs moved to the old site's addresses so the search equity carries\n// over. Instances snapshot the Nav Links array at insert time, so stored props\n// still point at the retired paths — they are rewritten here rather than only\n// corrected in the defaults above.\nconst RENAMED_PATHS={\"/visit\":\"/visitriveroaks\",\"/staff\":\"/our-staff\",\"/about\":\"/who-we-are\"};function canonicalPath(path){const cut=path.search(/[#?]/);const base=cut===-1?path:path.slice(0,cut);const tail=cut===-1?\"\":path.slice(cut);return(RENAMED_PATHS[base]||base)+tail;}function resolveLink(l){if(l?.link&&l.link!==\"#\")return canonicalPath(l.link);return NAV_FALLBACKS[l?.label?.trim?.()]||\"#\";}function submenuFor(l){return DROPDOWNS[(l?.label||\"\").trim()]||null;}// The page root is the ancestor of the footer with the most direct children —\n// its children are the page's sections. Walking up from a known landmark is\n// stabler than guessing at Framer's generated class names.\nfunction findPageRoot(){let node=document.querySelector(\"footer\");if(!node)return null;let best=null;let bestCount=0;while(node&&node.parentElement){const p=node.parentElement;if(p.tagName===\"BODY\"||p.tagName===\"HTML\")break;if(p.children.length>bestCount){bestCount=p.children.length;best=p;}node=p;}return bestCount>=3?best:null;}function Chevron({color,open}){return /*#__PURE__*/_jsx(\"svg\",{width:\"10\",height:\"7\",viewBox:\"0 0 10 7\",fill:\"none\",\"aria-hidden\":\"true\",style:{transform:open?\"rotate(180deg)\":\"none\",transition:\"transform 0.22s ease\",flexShrink:0},children:/*#__PURE__*/_jsx(\"path\",{d:\"M1 1.5L5 5.5L9 1.5\",stroke:color,strokeWidth:\"1.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});}/** Desktop nav item — a plain link, or a hover/focus dropdown when the\n *  label has a submenu registered in DROPDOWNS. */function DesktopNavItem({item,fg}){const kids=submenuFor(item);const[open,setOpen]=React.useState(false);const wrap=React.useRef(null);const linkStyle={fontFamily:BODY_FONT,fontWeight:500,fontSize:14.5,whiteSpace:\"nowrap\",color:fg,textDecoration:\"none\",opacity:.92};if(!kids){return /*#__PURE__*/_jsx(\"a\",{href:resolveLink(item),className:\"ro-nav-link\",style:linkStyle,children:item.label});}return /*#__PURE__*/_jsxs(\"div\",{ref:wrap,style:{position:\"relative\",display:\"flex\"},onMouseEnter:()=>setOpen(true),onMouseLeave:()=>setOpen(false),onBlur:e=>{if(!wrap.current?.contains(e.relatedTarget))setOpen(false);},children:[/*#__PURE__*/_jsxs(\"button\",{className:\"ro-nav-link\",\"aria-expanded\":open,\"aria-haspopup\":\"true\",onClick:()=>setOpen(o=>!o),onFocus:()=>setOpen(true),style:{...linkStyle,display:\"flex\",alignItems:\"center\",gap:6,background:\"none\",border:\"none\",padding:0,cursor:\"pointer\"},children:[item.label,/*#__PURE__*/_jsx(Chevron,{color:fg,open:open})]}),open&&// The 14px of padding is a deliberate hover bridge between the\n// trigger and the panel, so the menu survives the gap.\n/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:\"100%\",left:\"50%\",transform:\"translateX(-50%)\",paddingTop:14,zIndex:20},children:/*#__PURE__*/_jsx(\"div\",{style:{background:\"#ffffff\",borderRadius:18,padding:8,minWidth:236,boxShadow:\"0 18px 50px rgba(0,0,0,0.15), 0 2px 6px rgba(0,0,0,0.06)\",border:\"1px solid rgba(0,0,0,0.05)\",animation:\"ro-dd-in 0.2s cubic-bezier(0.22,1,0.36,1) both\"},children:kids.map((k,i)=>/*#__PURE__*/_jsx(\"a\",{href:resolveLink(k),style:{display:\"block\",padding:\"12px 16px\",borderRadius:12,fontFamily:BODY_FONT,fontWeight:500,fontSize:15,color:\"#000000\",textDecoration:\"none\",whiteSpace:\"nowrap\",transition:\"background 0.18s ease, color 0.18s ease\"},onMouseEnter:e=>{const t=e.currentTarget;t.style.background=\"rgba(77,158,233,0.1)\";t.style.color=\"#3e7fbb\";},onMouseLeave:e=>{const t=e.currentTarget;t.style.background=\"transparent\";t.style.color=\"#000000\";},children:k.label},i))})})]});}/**\n * River Oaks site header with responsive mobile menu.\n * Self-positions fixed to the top of the viewport at runtime —\n * place it anywhere in the page flow (it takes up no space).\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1200\n */export default function SiteHeader(props){const{logoText,logoImage,logoUrl,links=[],ctaLabel,ctaLink,overDark,accent,reveal,style}=props;const navLinks=healNav(links);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[scrolled,setScrolled]=React.useState(false);const[open,setOpen]=React.useState(false);const[closing,setClosing]=React.useState(false);const[expanded,setExpanded]=React.useState(null);const[isMobile,setIsMobile]=React.useState(false);// The overlay plays a blue sweep on the way in and reverses it on the way\n// out. React would unmount before an exit animation could run, so the\n// close is staged: mark closing, let the CSS run, then unmount.\nconst closeMenu=React.useCallback(()=>{setClosing(true);window.setTimeout(()=>{setOpen(false);setClosing(false);setExpanded(null);},380);},[]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const onScroll=()=>setScrolled(window.scrollY>24);// Six top-level items fit a laptop comfortably, so the hamburger is\n// back to a true tablet-and-down breakpoint.\nconst mq=window.matchMedia(\"(max-width: 1023px)\");const onMq=()=>setIsMobile(mq.matches);onScroll();onMq();window.addEventListener(\"scroll\",onScroll,{passive:true});mq.addEventListener(\"change\",onMq);return()=>{window.removeEventListener(\"scroll\",onScroll);mq.removeEventListener(\"change\",onMq);};},[]);// Scroll reveal across every page: sections rise as you reach them, and\n// cards inside a grid stagger in. Framer's own appear animations are left\n// alone (anything carrying data-framer-appear-id, or sitting inside one,\n// is skipped) so the two never fight over the same element.\nReact.useEffect(()=>{if(isCanvas||!reveal||typeof window===\"undefined\")return;if(!(\"IntersectionObserver\"in window))return;if(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;const armed=new Set;const show=el=>el.classList.add(\"ro-rv-in\");const io=new IntersectionObserver(entries=>{for(const e of entries){if(!e.isIntersecting)continue;show(e.target);io.unobserve(e.target);}},{rootMargin:\"0px 0px -8% 0px\",threshold:.05});const skip=el=>armed.has(el)||el.classList.contains(\"ro-rv\")||el.closest(\"[data-framer-appear-id]\")!==null||el.closest(\"header, footer, [role='dialog']\")!==null;const add=(el,card,i)=>{if(skip(el))return;armed.add(el);el.classList.add(\"ro-rv\");if(card){el.classList.add(\"ro-rv-card\");el.style.transitionDelay=`${Math.min(i,5)*70}ms`;}// Anything already on screen at arm time reveals immediately, so\n// the first viewport never sits blank waiting for a scroll.\nconst r=el.getBoundingClientRect();if(r.top<window.innerHeight*.9&&r.bottom>0){requestAnimationFrame(()=>show(el));return;}io.observe(el);};const arm=()=>{// Sections: the page root's direct children, minus the header slot\n// and the hero, which must be there on first paint.\nconst root=findPageRoot();if(root){Array.from(root.children).forEach((el,i)=>{if(i<2)return;if(el.getBoundingClientRect().height<60)return;add(el,false,0);});}// Cards: direct children of any canvas grid, staggered per grid.\ndocument.querySelectorAll('[class*=\"framer-\"]').forEach(el=>{if(getComputedStyle(el).display!==\"grid\")return;Array.from(el.children).forEach((k,i)=>add(k,true,i));});};const timers=[90,600,1600].map(d=>window.setTimeout(arm,d));// Safety net: whatever happens, nothing stays hidden.\nconst failsafe=window.setTimeout(()=>{document.querySelectorAll(\".ro-rv:not(.ro-rv-in)\").forEach(el=>show(el));},6e3);return()=>{timers.forEach(clearTimeout);clearTimeout(failsafe);io.disconnect();};},[isCanvas,reveal]);React.useEffect(()=>{if(typeof document===\"undefined\")return;document.body.style.overflow=open?\"hidden\":\"\";const onKey=e=>{if(e.key===\"Escape\"&&open)closeMenu();};document.addEventListener(\"keydown\",onKey);return()=>{document.body.style.overflow=\"\";document.removeEventListener(\"keydown\",onKey);};},[open,closeMenu]);const solid=scrolled||!overDark;const fg=solid?\"#000000\":\"#ffffff\";const src=logoImage?.src||logoUrl;// Item index drives the entrance stagger. Ministries expands in place, so\n// its children have to be counted too or the items below it pop early.\nlet stagger=0;const menu=open&&!isCanvas&&typeof document!==\"undefined\"?/*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Site menu\",style:{position:\"fixed\",inset:0,zIndex:99998,overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"style\",{children:MENU_CSS}),/*#__PURE__*/_jsx(\"div\",{className:closing?\"ro-sweep ro-sweep-out\":\"ro-sweep\"}),/*#__PURE__*/_jsxs(\"div\",{className:closing?\"ro-menu-body ro-menu-body-out\":\"ro-menu-body\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:32,flexShrink:0},children:[/*#__PURE__*/_jsx(Logo,{src:src,logoText:logoText,color:\"#ffffff\"}),/*#__PURE__*/_jsx(\"button\",{\"aria-label\":\"Close menu\",onClick:closeMenu,style:{width:48,height:48,borderRadius:999,border:\"1.5px solid rgba(255,255,255,0.45)\",background:\"rgba(255,255,255,0.12)\",color:\"#ffffff\",fontSize:20,lineHeight:1,cursor:\"pointer\",fontFamily:BODY_FONT},children:\"✕\"})]}),/*#__PURE__*/_jsx(\"nav\",{style:{display:\"flex\",flexDirection:\"column\",flex:1},children:navLinks.map((l,i)=>{const kids=submenuFor(l);const isOpen=expanded===l.label;const row=stagger++;const rowStyle={fontFamily:HEAD_FONT,fontWeight:700,fontSize:27,color:\"#ffffff\",textDecoration:\"none\",// The audience skews older and this is the\n// primary way around the site on a phone,\n// so every row clears 44px.\npadding:\"14px 0\",borderBottom:\"1px solid rgba(255,255,255,0.22)\",textAlign:\"center\",animation:`ro-menu-item 0.4s ${.28+.045*row}s cubic-bezier(0.22,1,0.36,1) both`};if(!kids){return /*#__PURE__*/_jsx(\"a\",{href:resolveLink(l),onClick:closeMenu,style:rowStyle,children:l.label},i);}// Reserve stagger slots for the children so\n// the rows below keep their rhythm.\nconst childBase=stagger;stagger+=kids.length;return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"button\",{\"aria-expanded\":isOpen,onClick:()=>setExpanded(isOpen?null:l.label),style:{...rowStyle,width:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:10,background:\"none\",border:\"none\",borderBottom:\"1px solid rgba(255,255,255,0.22)\",cursor:\"pointer\"},children:[l.label,/*#__PURE__*/_jsx(Chevron,{color:\"#ffffff\",open:isOpen})]}),isOpen&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",background:\"rgba(0,0,0,0.14)\"},children:kids.map((k,j)=>/*#__PURE__*/_jsx(\"a\",{href:resolveLink(k),onClick:closeMenu,style:{fontFamily:BODY_FONT,fontWeight:500,fontSize:18,color:\"#ffffff\",textDecoration:\"none\",padding:\"14px 0\",textAlign:\"center\",borderBottom:\"1px solid rgba(255,255,255,0.14)\",animation:`ro-menu-item 0.32s ${.03*j}s cubic-bezier(0.22,1,0.36,1) both`},children:k.label},j))}),/*#__PURE__*/_jsx(\"span\",{hidden:true,\"data-stagger-base\":childBase})]},i);})}),/*#__PURE__*/_jsx(\"a\",{href:ctaLink||\"/visitriveroaks\",onClick:closeMenu,style:{marginTop:28,flexShrink:0,display:\"block\",textAlign:\"center\",padding:\"18px\",borderRadius:999,background:\"#ffffff\",color:\"#3e7fbb\",fontFamily:HEAD_FONT,fontWeight:700,fontSize:17,textDecoration:\"none\",animation:`ro-menu-item 0.4s ${.28+.045*stagger}s cubic-bezier(0.22,1,0.36,1) both`},children:ctaLabel})]})]}),document.body):null;const bar=/*#__PURE__*/_jsxs(\"div\",{style:{position:isCanvas?\"relative\":\"fixed\",top:0,left:0,right:0,zIndex:9990,width:isCanvas?\"100%\":undefined,boxSizing:\"border-box\",padding:isMobile?\"12px 16px\":\"14px 28px\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:20,background:solid?\"rgba(255,255,255,0.9)\":\"rgba(0,0,0,0)\",backdropFilter:solid?\"blur(14px)\":\"none\",WebkitBackdropFilter:solid?\"blur(14px)\":\"none\",borderBottom:solid?\"1px solid rgba(0,0,0,0.06)\":\"1px solid rgba(0,0,0,0)\",transition:\"background 0.3s ease, border 0.3s ease\",...style},children:[!isCanvas&&/*#__PURE__*/_jsx(\"style\",{children:GLOBAL_A11Y_CSS}),/*#__PURE__*/_jsx(\"a\",{href:\"/\",style:{textDecoration:\"none\",flexShrink:0},children:/*#__PURE__*/_jsx(Logo,{src:src,logoText:logoText,color:fg})}),!isMobile&&/*#__PURE__*/_jsx(\"nav\",{style:{display:\"flex\",alignItems:\"center\",gap:26},children:navLinks.map((l,i)=>/*#__PURE__*/_jsx(DesktopNavItem,{item:l,fg:fg},i))}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:12,flexShrink:0},children:[!isMobile&&/*#__PURE__*/_jsx(\"a\",{href:ctaLink||\"/visitriveroaks\",style:{padding:\"12px 22px\",borderRadius:999,background:accent,color:\"#ffffff\",fontFamily:HEAD_FONT,fontWeight:700,fontSize:14,whiteSpace:\"nowrap\",textDecoration:\"none\",transition:\"background 0.25s ease\"},onMouseEnter:e=>e.currentTarget.style.background=\"#3e7fbb\",onMouseLeave:e=>e.currentTarget.style.background=accent,children:ctaLabel}),isMobile&&/*#__PURE__*/_jsxs(\"button\",{\"aria-label\":\"Open menu\",\"aria-expanded\":open,onClick:()=>setOpen(true),style:{display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",gap:5,width:48,height:48,padding:12,borderRadius:999,border:\"none\",background:solid?\"#f2f2f2\":\"rgba(255,255,255,0.18)\",cursor:\"pointer\",boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{height:2,background:fg,borderRadius:2}}),/*#__PURE__*/_jsx(\"span\",{style:{height:2,background:fg,borderRadius:2}}),/*#__PURE__*/_jsx(\"span\",{style:{height:2,background:fg,borderRadius:2}})]})]}),menu]});if(isCanvas)return bar;// Zero-footprint anchor: the bar is fixed to the viewport, so its slot\n// in the page flow takes no space.\nreturn /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:0,overflow:\"visible\"},children:bar});}// Kept as CSS keyframes rather than framer-motion: these run inside a portal\n// during a route-blocking overlay, and keyframes are immune to the\n// requestAnimationFrame throttling that freezes JS animation in a background\n// or hidden tab (MEMORY/attempts.md, 2026-07-16).\nconst MENU_CSS=`\n@keyframes ro-sweep-in {\n  from { transform: translate3d(105%, 0, 0) skewX(-6deg); }\n  to   { transform: translate3d(0, 0, 0) skewX(0deg); }\n}\n@keyframes ro-sweep-out {\n  from { transform: translate3d(0, 0, 0) skewX(0deg); }\n  to   { transform: translate3d(105%, 0, 0) skewX(-6deg); }\n}\n@keyframes ro-menu-item {\n  from { opacity: 0; transform: translateY(14px); }\n  to   { opacity: 1; transform: none; }\n}\n@keyframes ro-menu-fade-out {\n  from { opacity: 1; }\n  to   { opacity: 0; }\n}\n@keyframes ro-dd-in {\n  from { opacity: 0; transform: translateY(-6px); }\n  to   { opacity: 1; transform: none; }\n}\n.ro-sweep {\n  position: absolute;\n  inset: -2px -8% -2px -2px;\n  background: linear-gradient(158deg, #3e7fbb 0%, #4d9ee9 44%, #71b2ee 72%, #3d8c62 100%);\n  animation: ro-sweep-in 0.44s cubic-bezier(0.76, 0, 0.24, 1) both;\n  will-change: transform;\n}\n.ro-sweep-out { animation: ro-sweep-out 0.36s cubic-bezier(0.76, 0, 0.24, 1) both; }\n.ro-menu-body {\n  position: absolute;\n  inset: 0;\n  display: flex;\n  flex-direction: column;\n  padding: 24px;\n  box-sizing: border-box;\n  overflow-y: auto;\n}\n.ro-menu-body-out { animation: ro-menu-fade-out 0.18s ease both; }\n@media (prefers-reduced-motion: reduce) {\n  .ro-sweep, .ro-sweep-out, .ro-menu-body-out { animation: none !important; transform: none !important; }\n}\n`;function Logo({src,logoText,color}){if(src){return /*#__PURE__*/_jsx(\"img\",{src:src,alt:logoText||\"River Oaks Church\",style:{height:40,width:\"auto\",display:\"block\",// The artwork is dark; over an unscrolled dark hero it needs\n// to read white, same as the nav links beside it.\nfilter:color===\"#ffffff\"?\"brightness(0) invert(1)\":\"none\",transition:\"filter 0.3s ease\"}});}return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",lineHeight:1},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:HEAD_FONT,fontWeight:800,fontSize:19,letterSpacing:\"0.02em\",color,textTransform:\"uppercase\"},children:logoText}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:HEAD_FONT,fontWeight:500,fontSize:10,letterSpacing:\"0.42em\",color,textTransform:\"uppercase\",opacity:.75,marginTop:3},children:\"Church\"})]});}addPropertyControls(SiteHeader,{logoText:{type:ControlType.String,title:\"Logo Text\",defaultValue:\"River Oaks\"},logoImage:{type:ControlType.ResponsiveImage,title:\"Logo Image\"},logoUrl:{type:ControlType.String,title:\"Logo URL\",defaultValue:\"https://framerusercontent.com/images/XG6THANgbxV5jVaNAx3dHva2qXM.png?width=2200&height=458\",description:\"Used when no Logo Image is set\"},links:{type:ControlType.Array,title:\"Nav Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,defaultValue:\"New Here?\"},// String, not Link: ControlType.Link inside Array controls drops\n// string defaultValues (see MEMORY/attempts.md).\nlink:{type:ControlType.String,defaultValue:\"/visitriveroaks\"}}},defaultValue:CANONICAL_NAV,description:\"An item labelled Ministries opens the ministry dropdown (contents live in SiteHeader.tsx)\"},ctaLabel:{type:ControlType.String,title:\"CTA Label\",defaultValue:\"Plan Your Visit\"},ctaLink:{type:ControlType.Link,title:\"CTA Link\"},overDark:{type:ControlType.Boolean,title:\"Over Dark Hero\",defaultValue:true,description:\"Transparent with white text until the page is scrolled\"},reveal:{type:ControlType.Boolean,title:\"Scroll Reveal\",defaultValue:true,description:\"Sections and cards rise into view site-wide\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#4d9ee9\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SiteHeader\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SiteHeader.map"],"mappings":"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"}