{"version":3,"file":"shared-lib.Csl9kB3o.mjs","names":["INSTRUMENTS","FOCUSABLE","React.useState","React.useRef","React.startTransition","CSS","INK","_Fragment","SERIF","RENAMED","React.useState","_Fragment","useIsoLayoutEffect","useLayoutEffect","useEffect","fold","React.useState","React.useRef","FOCUSABLE","React.startTransition","FAMILY","INK","_Fragment","React.useState","React.useRef","_Fragment","c","React.startTransition","React.useLayoutEffect","React.useEffect"],"sources":["https:/framerusercontent.com/modules/EkK98StUgsVvDkhj2BPI/eal1Kaqqzd4SHqgUBMyw/LMFLBrochure.js","https:/framerusercontent.com/modules/3fBUz3YyJwyoSwcaPXRW/1ipTuJSTqIcCxXwtTqLq/LMFLSiteFooter.js","https:/framerusercontent.com/modules/WSMV4Va3eRTM1VNBCv4v/x3gizaqeGwW7oLwI6Qw2/LMFLEnhance.js","https:/framerusercontent.com/modules/M2RFAm7PdtGfFBEIbHxC/TD6CT0Zf8F6tUTCf2DnJ/LMFLSearch.js","https:/framerusercontent.com/modules/z1gL20L4zJFNjiGbsM7d/qZdTp0M8VQSxl3AASUtc/LMFLPageMeta.js","https:/framerusercontent.com/modules/uSqef41nTClMBGsYckrI/rHYbJ1mWnvjVlefVnQr4/LMFLPhotoFocus.js","https:/framerusercontent.com/modules/L48Mw2hDxrcv13S01DgY/ftQ2RM9vtbEJ4CXWh9Zi/LMFLSiteHeader.js"],"sourcesContent":["// LMFL Brochure download\n// A \"Get the 2027 brochure\" popup: visitors give their first name, email, the student's instrument and age.\n// The brochure opens straight away, and we ALSO email it to them (MailerLite group \"Brochure requests\"\n// → automation \"Brochure – email 1 (everyone who asks)\").\n//\n// Two choices (radio buttons), neither picked to start with. Visitors pick one (they must pick one before sending) – decided 23 Oct 2026:\n//  - \"The brochure, plus news about our courses and how to book\" → posts to MailerLite form\n//    \"LMFL brochure download + newsletter\" (BROCHURE_NEWS_FORM_URL; groups Brochure requests AND Newsletter,\n//    double opt-in off) with brochure_followups = \"yes\" → also joins the segment \"Brochure follow-ups (didn't opt out)\"\n//    → automation \"Brochure follow-ups – emails 2 and 3\". These people get the newsletter too.\n//  - \"Just the brochure, please\" → posts to form \"LMFL brochure download\" (BROCHURE_FORM_URL; Brochure requests only)\n//    with brochure_followups = \"no\" → brochure email only. Never put these people on the newsletter.\n// Every email still has an unsubscribe link.\n//\n// Per-instrument wording: FAMILIES below holds the paragraph, tutor names and link for each instrument family.\n// They are sent to MailerLite as the fields family_note, family_tutors and family_link, and the emails show them.\n// Tutor names are listed alphabetically by surname (Course Director, 24 Oct 2026).\n//\n// Student's age (24 Oct 2026): \"18–25\" and \"Adult (26+)\" were merged into one option, \"18 or over\" (sent to MailerLite\n//   field student_age as \"18+\"). The age is only stored – nothing in the emails or segments depends on it.\n//\n// How it appears on the site (all handled by the footer, so it works on every page):\n//  - a \"Get the 2027 brochure\" block in the footer, above the newsletter signup\n//  - a small card that slides in on the home and course pages (see PROMPT_PAGES) after some scrolling – shown once, easy to dismiss\n//  - ANY link on the site set to \"#brochure\" opens the popup (e.g. a button on a page linking to #brochure)\n//  - this file's default export is also a ready-made button you can drop onto any page\n//  - the brochure itself is shown on the /brochure page (LMFLBrochureViewer.tsx), which is where \"Open the brochure\" goes\n//\n// 24 Oct 2026: the popup only says \"It's on its way\" (and only unlocks /brochure) once the request has gone through;\n//   if it fails, visitors see an error and can try again. When it succeeds the window gets an \"lmfl:brochure-got\" event\n//   (the /brochure page listens for it). Keyboard: focus moves into the popup, Tab stays inside, Esc closes,\n//   and focus returns to the button that opened it.\n// 24 Oct 2026: \"Download\" buttons save the file as \"LMFL-2027-Brochure.pdf\" (downloadBrochure below: Framer's file\n//   server sends no file name and browsers ignore download=\"…\" for other sites, so the file is fetched and saved locally;\n//   if that fails it simply opens in a new tab). Older brochure files saved on pages (RETIRED_PDF_IDS) are ignored.\n//\n// ▶ THE PDF: the link below is the corrected 2027 brochure uploaded in Framer (24 Oct 2026).\n//   To swap in a new edition: upload it in the home page footer's \"Brochure PDF\" setting, copy its link here, add the\n//   old file's id to RETIRED_PDF_IDS, and save. Also update the \"Download the PDF\" link in MailerLite email 1.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";export const BROCHURE_PDF_URL=\"https://framerusercontent.com/assets/rYgXQJFQFHlkfIwBN0OtdXlQ8.pdf\";export const BROCHURE_FILE_NAME=\"LMFL-2027-Brochure.pdf\";// Earlier brochure files that must never be shown again, even if a page still has one saved\nexport const RETIRED_PDF_IDS=[\"BbWmUBCUtrbjqoBCByOvv5SmIE\",\"g0Bd3wT9YTsNJm8oPiizDkMKFk0\"];export const BROCHURE_PAGE=\"/brochure\";// Fired on window when the brochure form has been sent successfully\nexport const BROCHURE_GOT_EVENT=\"lmfl:brochure-got\";export const BROCHURE_FORM_URL=\"https://assets.mailerlite.com/jsonp/2706656/forms/201202571019289978/subscribe\";export const BROCHURE_NEWS_FORM_URL=\"https://assets.mailerlite.com/jsonp/2706656/forms/202131567100822627/subscribe\";import*as React from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/** The PDF to use: a page's own saved file, unless it's empty or one of the retired editions. */export function brochureUrl(saved){const s=typeof saved===\"string\"?saved:saved&&saved.src?String(saved.src):\"\";if(!s||RETIRED_PDF_IDS.some(id=>s.includes(id)))return BROCHURE_PDF_URL;return s;}/** Save the brochure as LMFL-2027-Brochure.pdf; falls back to opening it in a new tab. */export async function downloadBrochure(url=BROCHURE_PDF_URL,fileName=BROCHURE_FILE_NAME){if(typeof window===\"undefined\")return;const target=brochureUrl(url);try{const res=await fetch(target,{mode:\"cors\"});if(!res.ok)throw new Error(\"download failed\");const blob=await res.blob();const objectUrl=URL.createObjectURL(blob);const a=document.createElement(\"a\");a.href=objectUrl;a.download=fileName;a.rel=\"noopener\";a.style.display=\"none\";document.body.appendChild(a);a.click();a.remove();window.setTimeout(()=>URL.revokeObjectURL(objectUrl),4e3);}catch(e){window.open(target,\"_blank\",\"noopener\");}}const OPEN_EVENT=\"lmfl:brochure\";const PROMPT_PAGES=[\"/\",\"/giggleswick\",\"/giggleswick/fees\",\"/giggleswick/parents\",\"/our-courses\",\"/modules\",\"/tutors\",\"/student-reviews\",\"/parent-reviews\"];const STORE_KEY=\"lmfl-brochure\";const SERIF=\"'EB Garamond', Garamond, 'Times New Roman', serif\";const INK=\"#161413\";const ACCENT=\"rgb(140, 34, 50)\";const PAPER=\"#FAF7F2\";const TUTORS_LINK=\"https://www.lmfl.org/tutors\";const FOCUSABLE='a[href], button:not([disabled]), input:not([disabled]):not([type=\"hidden\"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';export const FAMILIES={strings:{note:\"Ten one-to-one lessons with string players who teach and perform internationally, plus Musicianship, Choir, chamber music and the evening Classical Ensemble.\",tutors:\"František Brikcius, Madeleine Mitchell, Hazel Ross and Lisetta Rossi\",link:TUTORS_LINK},piano:{note:\"Ten one-to-one lessons, Musicianship, Choir and the evening ensemble, plenty of practice rooms, and the option to add collaborative piano and accompany other students.\",tutors:\"Mikhail Kazakevich, Martin Mexme, Catherine Milledge, Věra M\\xfcllerov\\xe1 and Katia Nemirovitch-Danchenko\",link:TUTORS_LINK},voice:{note:\"Classical voice and opera or jazz vocals, Choir and Musicianship every day, and extra modules in opera, jazz vocal workshop or songwriting.\",tutors:\"Sonia Bellugi, Maria Luigia Borsi, Bernadette Mercier, Letizia Morelli and Robert Short\",link:TUTORS_LINK},woodwind:{note:\"One-to-one lessons with specialists on your instrument, plus Musicianship, Choir and the evening Classical or Jazz Ensemble, chamber music, and the Sax Workshop for sax players.\",tutors:\"Alessio Bacci, Boris Bizjak, Paul Goodey-Avedisyan, Heather Gordon-Redfearn, Gerard McChrystal, Chris Orton and Linton Stephens\",link:TUTORS_LINK},brass:{note:\"One-to-one lessons with Murray Grieg, plus Musicianship, Choir, the evening ensemble and chamber music.\",tutors:\"Murray Grieg\",link:TUTORS_LINK},// Guitar, drums and percussion\nguitar:{note:\"Classical, jazz and pop guitar, drums or percussion one-to-one, plus Musicianship, Choir and the Session Orchestra.\",tutors:\"Paolo Adamo, Steve Banks, Martin Mexme and Le Yu\",link:TUTORS_LINK},composition:{note:\"Write, arrange or conduct as your main study, with Musicianship and Choir, and hear your work performed in the final concerts.\",tutors:\"William Godfree, Paul Goodey-Avedisyan and Robert Short\",link:TUTORS_LINK},// Languages: English, French, Spanish, German, Italian\nlanguages:{note:\"English, French, Spanish, German or Italian, in one-to-one or group lessons, plus Choir every day.\",tutors:\"Dawn Bellino, Jack Greenway, Rebecca Hayward, Anna Jordan and Alan Moller\",link:TUTORS_LINK},// IELTS preparation (English only)\nielts:{note:\"Twenty one-to-one IELTS lessons in English with Jack Greenway, plus Choir and an optional ensemble for musicians.\",tutors:\"Jack Greenway\",link:TUTORS_LINK},general:{note:\"Every timetable is built around the student, and all musicians join Musicianship, Choir and an evening ensemble. Tell us what they play and we'll suggest the right tutors.\",tutors:\"specialist tutors from the UK and around the world\",link:TUTORS_LINK}};// Instrument shown in the form → family key above\nexport const INSTRUMENTS=[[\"Piano\",\"piano\"],[\"Violin\",\"strings\"],[\"Viola\",\"strings\"],[\"Cello\",\"strings\"],[\"Double bass\",\"strings\"],[\"Harp\",\"strings\"],[\"Flute\",\"woodwind\"],[\"Oboe\",\"woodwind\"],[\"Clarinet\",\"woodwind\"],[\"Bassoon\",\"woodwind\"],[\"Saxophone\",\"woodwind\"],[\"Recorder\",\"woodwind\"],[\"French horn\",\"brass\"],[\"Trumpet\",\"brass\"],[\"Trombone\",\"brass\"],[\"Guitar\",\"guitar\"],[\"Drums\",\"guitar\"],[\"Percussion\",\"guitar\"],[\"Singing\",\"voice\"],[\"Composition\",\"composition\"],[\"Conducting\",\"composition\"],[\"Songwriting\",\"composition\"],[\"Languages only\",\"languages\"],[\"IELTS preparation\",\"ielts\"],[\"Not sure yet\",\"general\"],[\"Other\",\"general\"]];// [shown in the form, value sent to MailerLite as student_age]\nconst AGES=[[\"Under 12\",\"Under 12\"],[\"12–14\",\"12–14\"],[\"15–17\",\"15–17\"],[\"18 or over\",\"18+\"]];function familyFor(instrument){const hit=INSTRUMENTS.find(([name])=>name===instrument);return FAMILIES[hit&&hit[1]||\"general\"]||FAMILIES.general;}export function openBrochure(){if(typeof window!==\"undefined\")window.dispatchEvent(new CustomEvent(OPEN_EVENT));}function readStore(){try{return JSON.parse(window.localStorage.getItem(STORE_KEY)||\"{}\")||{};}catch(e){return{};}}function writeStore(v){try{window.localStorage.setItem(STORE_KEY,JSON.stringify({...readStore(),...v}));}catch(e){}}// Keep Tab / Shift+Tab inside a dialog\nfunction trapTab(e,box){if(e.key!==\"Tab\"||!box)return;const items=Array.from(box.querySelectorAll(FOCUSABLE)).filter(el=>el.offsetParent!==null||el===document.activeElement);if(!items.length){e.preventDefault();box.focus();return;}const first=items[0];const last=items[items.length-1];const a=document.activeElement;if(e.shiftKey&&(a===first||!box.contains(a))){e.preventDefault();last.focus();}else if(!e.shiftKey&&(a===last||!box.contains(a))){e.preventDefault();first.focus();}}const CSS=`\n.lmb-ov{position:fixed;inset:0;z-index:2147483000;background:rgba(16,12,10,.55);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;animation:lmbFade .3s ease forwards;font-family:${SERIF}}\n.lmb-card{position:relative;width:100%;max-width:520px;max-height:calc(100vh - 40px);overflow:auto;background:${PAPER};color:${INK};border-radius:20px;box-shadow:0 30px 80px rgba(16,12,10,.3);transform:translateY(14px);animation:lmbUp .45s cubic-bezier(.2,.7,.2,1) forwards;outline:none}\n.lmb-in{padding:36px 36px 30px}\n.lmb-x{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:999px;border:none;background:transparent;cursor:pointer;color:${INK};font-size:26px;line-height:1}\n.lmb-x:hover{background:rgba(22,20,19,.06)}\n.lmb-eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:${ACCENT};margin:0 0 10px}\n.lmb-h{font-size:32px;line-height:1.1;margin:0 0 10px;font-weight:400;outline:none}\n.lmb-p{font-size:17px;line-height:1.5;margin:0;color:rgba(22,20,19,.75)}\n.lmb-f{display:flex;flex-direction:column;gap:14px;margin-top:22px}\n.lmb-row{display:flex;gap:12px;flex-wrap:wrap}\n.lmb-row>label{flex:1 1 180px}\n.lmb-l{display:flex;flex-direction:column;gap:6px;font-size:13px;letter-spacing:.06em;color:rgba(22,20,19,.7)}\n.lmb-i{font-family:${SERIF};font-size:17px;padding:12px 14px;border-radius:10px;border:1px solid rgba(22,20,19,.18);background:#fff;color:${INK};outline:none;width:100%;box-sizing:border-box;appearance:none;-webkit-appearance:none}\nselect.lmb-i{background-image:linear-gradient(45deg,transparent 50%,${INK} 50%),linear-gradient(135deg,${INK} 50%,transparent 50%);background-position:calc(100% - 20px) 52%,calc(100% - 15px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}\n.lmb-i:focus{border-color:rgba(22,20,19,.55);box-shadow:0 0 0 4px rgba(22,20,19,.06)}\n.lmb-fs{border:none;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:10px}\n.lmb-legend{font-size:13px;letter-spacing:.06em;color:rgba(22,20,19,.7);margin:0 0 4px;padding:0}\n.lmb-check{display:flex;gap:10px;align-items:flex-start;font-size:16px;line-height:1.45;color:${INK};cursor:pointer}\n.lmb-check input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:${ACCENT};cursor:pointer}\n.lmb-err{font-size:14px;color:${ACCENT};margin:0}\n.lmb-b{font-family:${SERIF};font-size:17px;font-weight:700;padding:15px 26px;border:none;border-radius:999px;background:${ACCENT};color:#fff;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:8px;transition:opacity .25s ease,transform .25s ease}\n.lmb-b:hover{opacity:.9;transform:translateY(-1px)}\n.lmb-link{all:unset;cursor:pointer;color:${ACCENT};text-decoration:underline;text-underline-offset:3px}\n.lmb-link:focus-visible{outline:2px solid ${ACCENT};outline-offset:2px}\n.lmb-small{font-size:13px;line-height:1.45;color:rgba(22,20,19,.6);margin:0}\n.lmb-done{animation:lmbUp .5s cubic-bezier(.2,.7,.2,1)}\n.lmb-tip{position:fixed;right:20px;bottom:20px;z-index:2147482500;width:320px;max-width:calc(100vw - 40px);background:${PAPER};color:${INK};border-radius:16px;box-shadow:0 18px 50px rgba(16,12,10,.22);padding:18px 18px 16px;font-family:${SERIF};transform:translateY(20px);opacity:0;animation:lmbUp .5s cubic-bezier(.2,.7,.2,1) forwards,lmbFade .5s ease forwards}\n@media (max-width:600px){.lmb-in{padding:30px 22px 24px}.lmb-h{font-size:28px}.lmb-tip{left:12px;right:12px;bottom:12px;width:auto}}\n@keyframes lmbFade{to{opacity:1}}\n@keyframes lmbUp{to{transform:none}}\n`;function BrochureModal({pdf,onClose}){const[sending,setSending]=React.useState(false);const[done,setDone]=React.useState(false);const[failed,setFailed]=React.useState(false);const[email,setEmail]=React.useState(\"\");const[choice,setChoice]=React.useState(\"\");const[needChoice,setNeedChoice]=React.useState(false);const firstRef=React.useRef(null);const cardRef=React.useRef(null);const doneRef=React.useRef(null);const closeRef=React.useRef(onClose);closeRef.current=onClose;React.useEffect(()=>{// remember what opened the popup, so focus can go back there\nconst opener=document.activeElement;const prev=document.body.style.overflow;document.body.style.overflow=\"hidden\";const onKey=e=>{if(e.key===\"Escape\"){e.preventDefault();closeRef.current();return;}trapTab(e,cardRef.current);};window.addEventListener(\"keydown\",onKey);const focusIn=()=>{const el=firstRef.current||cardRef.current;if(el)el.focus({preventScroll:true});};focusIn();const t=window.setTimeout(()=>{if(!cardRef.current||!cardRef.current.contains(document.activeElement))focusIn();},120);return()=>{document.body.style.overflow=prev;window.removeEventListener(\"keydown\",onKey);window.clearTimeout(t);try{if(opener&&typeof opener.focus===\"function\"&&document.contains(opener))opener.focus({preventScroll:true});}catch(e){}};},[]);// after sending, move focus to the thank-you heading so screen readers announce it\nReact.useEffect(()=>{if(done&&doneRef.current)doneRef.current.focus({preventScroll:true});},[done]);const pick=v=>React.startTransition(()=>{setChoice(v);setNeedChoice(false);});const onSubmit=async e=>{e.preventDefault();if(sending)return;if(!choice){React.startTransition(()=>setNeedChoice(true));return;}const d=new FormData(e.currentTarget);if(d.get(\"_honey\"))return;const wantsNews=choice===\"yes\";const instrument=String(d.get(\"instrument\")||\"\");const fam=familyFor(instrument);const to=String(d.get(\"email\")||\"\");React.startTransition(()=>{setSending(true);setFailed(false);setEmail(to);});const ml=new FormData;ml.append(\"fields[name]\",String(d.get(\"name\")||\"\"));ml.append(\"fields[email]\",to);ml.append(\"fields[instrument]\",instrument);ml.append(\"fields[student_age]\",String(d.get(\"age\")||\"\"));ml.append(\"fields[family_note]\",fam.note);ml.append(\"fields[family_tutors]\",fam.tutors);ml.append(\"fields[family_link]\",fam.link);ml.append(\"fields[brochure_followups]\",wantsNews?\"yes\":\"no\");ml.append(\"fields[signup_source]\",\"Brochure download\");ml.append(\"ml-submit\",\"1\");ml.append(\"anticsrf\",\"true\");try{// no-cors: a network failure throws; anything that reaches MailerLite resolves\nawait fetch(wantsNews?BROCHURE_NEWS_FORM_URL:BROCHURE_FORM_URL,{method:\"POST\",body:ml,mode:\"no-cors\"});}catch(err){React.startTransition(()=>{setSending(false);setFailed(true);});return;}writeStore({got:Date.now()});try{window.dispatchEvent(new CustomEvent(BROCHURE_GOT_EVENT));}catch(err){}React.startTransition(()=>{setSending(false);setDone(true);});};return /*#__PURE__*/_jsxs(\"div\",{className:\"lmb-ov\",onMouseDown:e=>e.target===e.currentTarget&&onClose(),role:\"dialog\",\"aria-modal\":\"true\",\"aria-labelledby\":\"lmb-title\",children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsxs(\"div\",{className:\"lmb-card\",ref:cardRef,tabIndex:-1,children:[/*#__PURE__*/_jsx(\"button\",{className:\"lmb-x\",\"aria-label\":\"Close\",onClick:onClose,children:\"\\xd7\"}),/*#__PURE__*/_jsx(\"div\",{className:\"lmb-in\",children:done?/*#__PURE__*/_jsxs(\"div\",{className:\"lmb-done\",style:{display:\"flex\",flexDirection:\"column\",gap:16,alignItems:\"flex-start\"},children:[/*#__PURE__*/_jsx(\"p\",{className:\"lmb-eyebrow\",children:\"Thank you\"}),/*#__PURE__*/_jsx(\"h2\",{id:\"lmb-title\",className:\"lmb-h\",ref:doneRef,tabIndex:-1,children:\"It’s on its way\"}),/*#__PURE__*/_jsxs(\"p\",{className:\"lmb-p\",children:[\"We’ve emailed the brochure to \",/*#__PURE__*/_jsx(\"b\",{style:{color:INK,fontWeight:600},children:email}),\". It can take a minute to arrive – if you can’t see it, please check your spam or promotions folder. You can also open it now.\"]}),/*#__PURE__*/_jsx(\"a\",{className:\"lmb-b\",href:BROCHURE_PAGE,children:\"Open the brochure\"}),/*#__PURE__*/_jsxs(\"p\",{className:\"lmb-small\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"lmb-link\",onClick:()=>downloadBrochure(pdf),children:\"Download the PDF\"}),\" – \",\"Ready to book? \",/*#__PURE__*/_jsx(\"a\",{href:\"/giggleswick/register\",style:{color:ACCENT},children:\"Register online\"})]})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{className:\"lmb-eyebrow\",children:\"Summer 2027 – Giggleswick\"}),/*#__PURE__*/_jsx(\"h2\",{id:\"lmb-title\",className:\"lmb-h\",children:\"Get the 2027 brochure\"}),/*#__PURE__*/_jsx(\"p\",{className:\"lmb-p\",children:\"Courses, tutors, a day in the life, fees and how to book – all in one place.\"}),/*#__PURE__*/_jsxs(\"form\",{className:\"lmb-f\",onSubmit:onSubmit,children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",name:\"_honey\",tabIndex:-1,autoComplete:\"off\",\"aria-hidden\":\"true\",style:{position:\"absolute\",left:-9999,width:1,height:1,opacity:0}}),/*#__PURE__*/_jsxs(\"div\",{className:\"lmb-row\",children:[/*#__PURE__*/_jsxs(\"label\",{className:\"lmb-l\",children:[\"Your first name\",/*#__PURE__*/_jsx(\"input\",{ref:firstRef,className:\"lmb-i\",name:\"name\",required:true,autoComplete:\"given-name\"})]}),/*#__PURE__*/_jsxs(\"label\",{className:\"lmb-l\",children:[\"Your email\",/*#__PURE__*/_jsx(\"input\",{className:\"lmb-i\",type:\"email\",name:\"email\",required:true,autoComplete:\"email\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"lmb-row\",children:[/*#__PURE__*/_jsxs(\"label\",{className:\"lmb-l\",children:[\"Student’s main instrument\",/*#__PURE__*/_jsxs(\"select\",{className:\"lmb-i\",name:\"instrument\",required:true,defaultValue:\"\",children:[/*#__PURE__*/_jsx(\"option\",{value:\"\",disabled:true,children:\"Choose…\"}),INSTRUMENTS.map(([x])=>/*#__PURE__*/_jsx(\"option\",{children:x},x))]})]}),/*#__PURE__*/_jsxs(\"label\",{className:\"lmb-l\",children:[\"Student’s age\",/*#__PURE__*/_jsxs(\"select\",{className:\"lmb-i\",name:\"age\",defaultValue:\"\",children:[/*#__PURE__*/_jsx(\"option\",{value:\"\",children:\"Prefer not to say\"}),AGES.map(([label,value])=>/*#__PURE__*/_jsx(\"option\",{value:value,children:label},value))]})]})]}),/*#__PURE__*/_jsx(\"p\",{className:\"lmb-small\",style:{marginTop:-4},children:\"If the student is under 18, please ask a parent or guardian to fill this in.\"}),/*#__PURE__*/_jsxs(\"fieldset\",{className:\"lmb-fs\",\"aria-describedby\":needChoice?\"lmb-err\":undefined,children:[/*#__PURE__*/_jsx(\"legend\",{className:\"lmb-legend\",children:\"Please tick one\"}),/*#__PURE__*/_jsxs(\"label\",{className:\"lmb-check\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:\"lmb-choice\",value:\"yes\",checked:choice===\"yes\",onChange:()=>pick(\"yes\"),\"aria-invalid\":needChoice||undefined}),/*#__PURE__*/_jsx(\"span\",{children:\"The brochure, plus news about our courses and how to book\"})]}),/*#__PURE__*/_jsxs(\"label\",{className:\"lmb-check\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:\"lmb-choice\",value:\"no\",checked:choice===\"no\",onChange:()=>pick(\"no\"),\"aria-invalid\":needChoice||undefined}),/*#__PURE__*/_jsx(\"span\",{children:\"Just the brochure, please\"})]}),needChoice?/*#__PURE__*/_jsx(\"p\",{id:\"lmb-err\",className:\"lmb-err\",role:\"alert\",children:\"Please choose one of the options above.\"}):null]}),/*#__PURE__*/_jsx(\"button\",{className:\"lmb-b\",type:\"submit\",disabled:sending,style:{opacity:sending?.6:1,marginTop:4},children:sending?\"One moment…\":failed?\"Try again\":\"Send me the brochure\"}),failed?/*#__PURE__*/_jsxs(\"p\",{className:\"lmb-err\",role:\"alert\",children:[\"Sorry, that didn’t go through. Please try again or email \",/*#__PURE__*/_jsx(\"a\",{href:\"mailto:info@lmfl.org\",style:{color:ACCENT},children:\"info@lmfl.org\"}),\".\"]}):null,/*#__PURE__*/_jsxs(\"p\",{className:\"lmb-small\",children:[\"You can unsubscribe at any time. See our\",\" \",/*#__PURE__*/_jsx(\"a\",{href:\"/privacy-policy\",style:{color:\"inherit\"},children:\"privacy policy\"}),\" \",\"for how we use your details.\"]})]})]})})]})]});}function SlideIn({onOpen,onDismiss}){return /*#__PURE__*/_jsxs(\"div\",{className:\"lmb-tip\",role:\"complementary\",\"aria-label\":\"Brochure\",children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsx(\"button\",{className:\"lmb-x\",\"aria-label\":\"Dismiss\",onClick:onDismiss,style:{top:6,right:6,width:34,height:34,fontSize:22},children:\"\\xd7\"}),/*#__PURE__*/_jsx(\"p\",{className:\"lmb-eyebrow\",style:{marginBottom:6},children:\"Summer 2027\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:22,lineHeight:1.2,paddingRight:24},children:\"Get the full brochure\"}),/*#__PURE__*/_jsx(\"p\",{className:\"lmb-p\",style:{fontSize:15,marginTop:6},children:\"Courses, tutors, fees and a day in the life – free, straight to your inbox.\"}),/*#__PURE__*/_jsx(\"button\",{className:\"lmb-b\",onClick:onOpen,style:{marginTop:12,padding:\"11px 20px\",fontSize:16},children:\"Get the brochure\"})]});}/** Mount once per page (the footer does this). Listens for #brochure links and shows the slide-in on course pages. */export function BrochureHost({pdf,prompt=true}){const[open,setOpen]=React.useState(false);const[tip,setTip]=React.useState(false);const[mounted,setMounted]=React.useState(false);const file=brochureUrl(pdf);React.useEffect(()=>{setMounted(true);if(!file||typeof window===\"undefined\")return;const show=()=>React.startTransition(()=>(setTip(false),setOpen(true)));const onClick=e=>{const a=e.target&&e.target.closest?e.target.closest(\"a[href]\"):null;if(!a)return;const href=a.getAttribute(\"href\")||\"\";if(/#brochure$/i.test(href)){e.preventDefault();show();}};window.addEventListener(OPEN_EVENT,show);document.addEventListener(\"click\",onClick,true);if(/#brochure$/i.test(window.location.hash))show();let cleanupTip=()=>{};const path=(window.location.pathname||\"/\").replace(/\\/+$/,\"\")||\"/\";const st=readStore();const recentlyDismissed=st.dismissed&&Date.now()-st.dismissed<14*864e5;if(prompt&&PROMPT_PAGES.includes(path)&&!st.got&&!recentlyDismissed){let shown=false;const reveal=()=>{if(shown)return;shown=true;React.startTransition(()=>setTip(true));window.removeEventListener(\"scroll\",onScroll);window.clearTimeout(timer);};const onScroll=()=>{const h=document.documentElement.scrollHeight-window.innerHeight;if(h>0&&window.scrollY/h>.45)reveal();};const timer=window.setTimeout(reveal,4e4);window.addEventListener(\"scroll\",onScroll,{passive:true});cleanupTip=()=>{window.removeEventListener(\"scroll\",onScroll);window.clearTimeout(timer);};}return()=>{window.removeEventListener(OPEN_EVENT,show);document.removeEventListener(\"click\",onClick,true);cleanupTip();};},[file,prompt]);if(!mounted||!file||typeof document===\"undefined\")return null;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(_Fragment,{children:[tip&&!open?/*#__PURE__*/_jsx(SlideIn,{onOpen:()=>React.startTransition(()=>(setTip(false),setOpen(true))),onDismiss:()=>{writeStore({dismissed:Date.now()});React.startTransition(()=>setTip(false));}}):null,open?/*#__PURE__*/_jsx(BrochureModal,{pdf:file,onClose:()=>React.startTransition(()=>setOpen(false))}):null]}),document.body);}/**\n * A button that opens the brochure popup. Needs the footer on the page (it hosts the popup).\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function LMFLBrochureButton(props){const{label=\"Get the 2027 brochure\",variant=\"filled\",style}=props;const filled=variant===\"filled\";return /*#__PURE__*/_jsx(\"button\",{onClick:()=>RenderTarget.current()===RenderTarget.canvas?null:openBrochure(),style:{...style,fontFamily:SERIF,fontSize:17,fontWeight:700,padding:\"14px 26px\",borderRadius:999,border:filled?`none`:`1px solid ${INK}`,background:filled?ACCENT:\"transparent\",color:filled?\"#fff\":INK,cursor:\"pointer\",whiteSpace:\"nowrap\"},children:label});}addPropertyControls(LMFLBrochureButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Get the 2027 brochure\"},variant:{type:ControlType.Enum,title:\"Style\",options:[\"filled\",\"outline\"],optionTitles:[\"Filled\",\"Outline\"],defaultValue:\"filled\",displaySegmentedControl:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"BROCHURE_FILE_NAME\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"LMFLBrochureButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"BROCHURE_NEWS_FORM_URL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"downloadBrochure\":{\"type\":\"function\",\"isAsync\":true,\"annotations\":{\"framerContractVersion\":\"1\"}},\"brochureUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"INSTRUMENTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RETIRED_PDF_IDS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BROCHURE_PDF_URL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BrochureHost\":{\"type\":\"reactComponent\",\"name\":\"BrochureHost\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"BROCHURE_GOT_EVENT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BROCHURE_FORM_URL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"openBrochure\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BROCHURE_PAGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FAMILIES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LMFLBrochure.map","// LMFL Site Footer: brand, quick links, brochure, newsletter signup, social icons, policy links and legal text.\n// One component used on every page – editing its defaults here updates the whole site.\n// Brochure (shown first, above the newsletter – it's the bigger draw): the PDF link is set once in LMFLBrochure.tsx\n// (BROCHURE_PDF_URL), so it works on every page. Uploading a PDF in \"Brochure PDF\" overrides it on that one page.\n// A small prompt also slides in on the home and course pages, and any link set to \"#brochure\" opens the popup.\n// The popup itself (and where it sends people in MailerLite) is in LMFLBrochure.tsx.\n// Newsletter: signups go straight to MailerLite (form \"LMFL website newsletter\" → group \"Newsletter\").\n// MailerLite sends a confirmation email first (double opt-in), then adds them to the list.\n// To use another provider, paste its form URL into \"Form Action\".\n// Links are typed as plain paths (e.g. /tutors). If a link is left empty, the label's default page is used.\n// Copyright: \"© <year> LMFL Ltd.\" always shows the current year automatically. Type different wording to override it.\n// 24 Oct 2026: the legal line includes the registered office (checked on Companies House). Every page's footer now saves\n// the full 10-link list, so the old \"8 links = old list\" fallback has been removed. A saved \"Brochure PDF\" that still\n// points at the old 7.5MB brochure file is ignored (the current one in LMFLBrochure.tsx is used instead).\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{BrochureHost,openBrochure,BROCHURE_PDF_URL}from\"https://framerusercontent.com/modules/EkK98StUgsVvDkhj2BPI/eal1Kaqqzd4SHqgUBMyw/LMFLBrochure.js\";const SERIF=\"'EB Garamond', Garamond, 'Times New Roman', serif\";const MAILERLITE_URL=\"https://assets.mailerlite.com/jsonp/2706656/forms/201153787185858520/subscribe\";const OLD_BROCHURE_ID=\"BbWmUBCUtrbjqoBCByOvv5SmIE\";const LEGAL=\"LMFL Limited. Registered in England and Wales, company number 14022691. Registered office: 25 Badminton Road, Downend, Bristol BS16 6BB.\";const DEFAULT_SOCIALS=[{platform:\"instagram\",link:\"https://www.instagram.com/lmfl.courses/\"},{platform:\"facebook\",link:\"https://www.facebook.com/lmfl.org\"},{platform:\"youtube\",link:\"https://www.youtube.com/@LMFLCourses\"},{platform:\"tiktok\",link:\"https://www.tiktok.com/@languageandmusicforlife\"},{platform:\"email\",link:\"mailto:info@lmfl.org\"}];const DEFAULT_POLICIES=[{label:\"Equity & Diversity Policy\",link:\"/equity-diversity-inclusion-policy\"},{label:\"Cookies & Privacy Policy\",link:\"/privacy-policy\"}];const DEFAULT_LINKS=[{label:\"Our Courses\",link:\"/our-courses\"},{label:\"Giggleswick 2027\",link:\"/giggleswick\"},{label:\"Europe 2027\",link:\"/europe\"},{label:\"Modules\",link:\"/modules\"},{label:\"Tutors\",link:\"/tutors\"},{label:\"Concerts\",link:\"/concerts\"},{label:\"About LMFL\",link:\"/about-lmfl\"},{label:\"FAQs\",link:\"/faqs\"},{label:\"Contact\",link:\"/contact\"},{label:\"Fees & Booking\",link:\"/giggleswick/fees\"}];// Fallback page for each label, used when a link is empty or can't be read\nconst DEFAULT_HREF={};[...DEFAULT_LINKS,...DEFAULT_POLICIES].forEach(l=>DEFAULT_HREF[l.label.toLowerCase()]=l.link);DEFAULT_HREF[\"giggleswick\"]=\"/giggleswick\";DEFAULT_HREF[\"uk 2027\"]=\"/giggleswick\";DEFAULT_HREF[\"europe\"]=\"/europe\";DEFAULT_HREF[\"privacy policy\"]=\"/privacy-policy\";// Old page addresses → new ones\nconst RENAMED={\"/giggleswick-1\":\"/giggleswick\",\"/giggleswick-2026\":\"/giggleswick\",\"/giggleswick-pricing\":\"/giggleswick/fees\",\"/europe2027\":\"/europe\"};function resolveHref(l){let h=l&&l.link;if(h&&typeof h===\"object\")h=h.href||h.url||\"\";if(typeof h!==\"string\")h=\"\";h=h.trim();if(!h)h=DEFAULT_HREF[(l&&l.label?l.label:\"\").trim().toLowerCase()]||\"\";if(!h)return undefined;if(!/^(https?:|mailto:|tel:|\\/|#)/i.test(h))h=\"/\"+h.replace(/^\\.?\\/*/,\"\");const base=h.split(/[?#]/)[0].replace(/\\/+$/,\"\");if(RENAMED[base])h=RENAMED[base]+h.slice(h.split(/[?#]/)[0].length);return h;}const ICONS={facebook:/*#__PURE__*/_jsx(\"path\",{d:\"M14 8h3V4h-3c-2.2 0-4 1.8-4 4v2H7v4h3v8h4v-8h3l1-4h-4V8z\"}),instagram:/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"4\",y:\"4\",width:\"16\",height:\"16\",rx:\"4.5\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"3.6\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"17\",cy:\"7\",r:\"1.1\"})]}),youtube:/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"6\",width:\"18\",height:\"12\",rx:\"3.5\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M10.5 9.5v5l4.2-2.5z\"})]}),tiktok:/*#__PURE__*/_jsx(\"path\",{d:\"M14 3v11.2a3.2 3.2 0 1 1-3.2-3.2v-3a6.2 6.2 0 1 0 6.2 6.2V9.1a7 7 0 0 0 4 1.3V7.3a4.2 4.2 0 0 1-4-4.3z\"}),email:/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"5\",width:\"18\",height:\"14\",rx:\"2\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 6.5L12 13l8.5-6.5\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\"})]})};const THEMES={dark:{bg:\"rgb(22, 20, 19)\",fg:\"#FFFFFF\",muted:\"rgba(255,255,255,0.62)\",line:\"rgba(255,255,255,0.14)\",field:\"rgba(255,255,255,0.08)\",btnBg:\"#FFFFFF\",btnFg:\"rgb(22, 20, 19)\"},light:{bg:\"rgb(246, 244, 240)\",fg:\"rgb(22, 20, 19)\",muted:\"rgba(22,20,19,0.62)\",line:\"rgba(22,20,19,0.14)\",field:\"#FFFFFF\",btnBg:\"rgb(22, 20, 19)\",btnFg:\"#FFFFFF\"}};/**\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 420\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function LMFLSiteFooter(props){const{newsletterHeading=\"Stay in the loop\",newsletterText=\"Sign up with your email address to receive news and updates about all things LMFL.\",placeholder=\"Email address\",buttonLabel=\"Sign up\",formAction=\"\",titleLine=\"LMFL\",tagline=\"Language and Music for Life\",email=\"info@lmfl.org\",socials=DEFAULT_SOCIALS,policies=DEFAULT_POLICIES,quickLinks,copyright,legal=LEGAL,footerTheme=\"dark\",brochurePdf:brochureFile=\"\",brochurePrompt=true,style}=props;const onCanvas=RenderTarget.current()===RenderTarget.canvas;const savedPdf=typeof brochureFile===\"string\"?brochureFile:brochureFile&&brochureFile.src?String(brochureFile.src):\"\";const brochurePdf=savedPdf&&!savedPdf.includes(OLD_BROCHURE_ID)?savedPdf:BROCHURE_PDF_URL;const t=THEMES[footerTheme]||THEMES.dark;const links=Array.isArray(quickLinks)&&quickLinks.length?quickLinks:DEFAULT_LINKS;const year=new Date().getFullYear();// The standard \"© 20xx LMFL Ltd.\" line always shows the current year; anything else is shown as typed\nconst isStandard=!copyright||/^\\s*(©|\\(c\\)|copyright)?\\s*20\\d\\d\\s+LMFL( Ltd| Limited)?\\.?\\s*$/i.test(copyright);const copy=isStandard?`\\xa9 ${year} LMFL Ltd.`:copyright;const[value,setValue]=React.useState(\"\");const[done,setDone]=React.useState(false);const[sending,setSending]=React.useState(false);const[failed,setFailed]=React.useState(false);const onSubmit=async e=>{e.preventDefault();if(sending)return;const data=new FormData(e.currentTarget);if(data.get(\"_honey\"))return;// spam bot\nReact.startTransition(()=>{setSending(true);setFailed(false);});try{if(formAction){// Other mailing-list provider (e.g. Brevo and Mailchimp use EMAIL)\ndata.append(\"EMAIL\",value);await fetch(formAction,{method:\"POST\",body:data,mode:\"no-cors\"});}else if(MAILERLITE_URL){const ml=new FormData;ml.append(\"fields[email]\",value);ml.append(\"fields[signup_source]\",\"Website footer\");ml.append(\"ml-submit\",\"1\");ml.append(\"anticsrf\",\"true\");await fetch(MAILERLITE_URL,{method:\"POST\",body:ml,mode:\"no-cors\"});}else{data.append(\"_subject\",\"New LMFL mailing list signup\");data.append(\"_template\",\"table\");data.append(\"_captcha\",\"false\");const res=await fetch(`https://formsubmit.co/ajax/${email}`,{method:\"POST\",body:data,headers:{Accept:\"application/json\"}});if(!res.ok)throw new Error(\"failed\");}React.startTransition(()=>setDone(true));}catch(err){React.startTransition(()=>setFailed(true));}finally{React.startTransition(()=>setSending(false));}};const label={fontFamily:SERIF,fontSize:14,letterSpacing:\"0.04em\",textTransform:\"uppercase\",color:t.muted,margin:0};const linkStyle={fontFamily:SERIF,fontSize:17,lineHeight:1.5,color:t.fg,textDecoration:\"none\",cursor:\"pointer\"};const showBrochure=!!brochurePdf||onCanvas;return /*#__PURE__*/_jsxs(\"footer\",{className:\"lmfl-footer\",style:{...style,position:\"relative\",width:\"100%\",background:t.bg,color:t.fg,boxSizing:\"border-box\",padding:\"80px 48px 40px\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",fontFamily:SERIF},children:[/*#__PURE__*/_jsx(\"style\",{children:`.lmfl-ft a{transition:opacity .25s ease}.lmfl-ft a:hover{opacity:.65}.lmfl-ft-b{transition:opacity .25s ease,transform .25s ease}.lmfl-ft-b:hover{opacity:.88;transform:translateY(-1px)}.lmfl-ft-done{animation:lmflFtIn .6s cubic-bezier(.2,.7,.2,1)}@keyframes lmflFtIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width:600px){footer.lmfl-footer{padding:56px 20px 32px !important}}`}),/*#__PURE__*/_jsxs(\"div\",{className:\"lmfl-ft\",style:{width:\"100%\",maxWidth:1104,display:\"flex\",flexWrap:\"wrap\",justifyContent:\"space-between\",alignItems:\"flex-start\",gap:48},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:\"1 1 240px\",display:\"flex\",flexDirection:\"column\",gap:14},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:40,lineHeight:1,letterSpacing:\"0.02em\"},children:titleLine}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:19,color:t.muted},children:tagline}),/*#__PURE__*/_jsx(\"a\",{href:`mailto:${email}`,style:{...linkStyle,marginTop:8},children:email}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",alignItems:\"center\",gap:16,marginTop:6},children:socials.map((s,i)=>/*#__PURE__*/_jsx(\"a\",{href:s.platform===\"email\"&&s.link&&!s.link.startsWith(\"mailto:\")?`mailto:${s.link}`:s.link||undefined,target:s.platform===\"email\"?undefined:\"_blank\",rel:\"noopener\",\"aria-label\":s.platform,style:{color:t.fg,display:\"flex\",opacity:.85},children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:ICONS[s.platform]})},i))})]}),/*#__PURE__*/_jsxs(\"nav\",{\"aria-label\":\"Footer\",style:{flex:\"1 1 240px\",display:\"flex\",flexDirection:\"column\",gap:14},children:[/*#__PURE__*/_jsx(\"p\",{style:label,children:\"Explore\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:\"repeat(2, minmax(0, 1fr))\",gap:\"8px 24px\"},children:links.map((l,i)=>/*#__PURE__*/_jsx(\"a\",{href:resolveHref(l),style:linkStyle,children:l.label},i))})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:\"1 1 300px\",maxWidth:380,display:\"flex\",flexDirection:\"column\",gap:28},children:[showBrochure?/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:14,alignItems:\"flex-start\",paddingBottom:28,borderBottom:`1px solid ${t.line}`},children:[/*#__PURE__*/_jsx(\"p\",{style:label,children:\"Brochure\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:26,lineHeight:1.2},children:\"Get the 2027 brochure\"}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,fontSize:16,lineHeight:1.5,color:t.muted},children:[\"Courses, tutors, a day in the life, fees and how to book – a free PDF.\",!brochurePdf&&onCanvas?\" (add the PDF link in LMFLBrochure.tsx to show this)\":\"\"]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"lmfl-ft-b\",onClick:()=>openBrochure(),style:{fontFamily:SERIF,fontSize:16,fontWeight:700,padding:\"13px 24px\",marginTop:4,borderRadius:999,border:\"none\",background:t.btnBg,color:t.btnFg,cursor:\"pointer\"},children:\"Get the brochure\"})]}):null,/*#__PURE__*/_jsxs(\"form\",{method:\"post\",onSubmit:onSubmit,style:{display:\"flex\",flexDirection:\"column\",gap:14,position:\"relative\"},children:[/*#__PURE__*/_jsx(\"p\",{style:label,children:\"Newsletter\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:22,lineHeight:1.2},children:newsletterHeading}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:16,lineHeight:1.5,color:t.muted},children:newsletterText}),done?/*#__PURE__*/_jsx(\"p\",{className:\"lmfl-ft-done\",style:{margin:0,fontSize:18},children:\"Thank you – please check your inbox to confirm.\"}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",name:\"_honey\",tabIndex:-1,autoComplete:\"off\",\"aria-hidden\":\"true\",style:{position:\"absolute\",left:-9999,width:1,height:1,opacity:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,width:\"100%\",marginTop:4},children:[/*#__PURE__*/_jsx(\"input\",{type:\"email\",name:\"email\",required:true,value:value,onChange:e=>{const v=e.target.value;React.startTransition(()=>setValue(v));},placeholder:placeholder,\"aria-label\":\"Email address\",style:{flex:1,minWidth:0,fontFamily:SERIF,fontSize:16,padding:\"13px 18px\",borderRadius:999,border:`1px solid ${t.line}`,background:t.field,color:t.fg,outline:\"none\"}}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:sending,style:{fontFamily:SERIF,fontSize:16,fontWeight:700,padding:\"13px 22px\",borderRadius:999,border:`1px solid ${t.fg}`,cursor:sending?\"default\":\"pointer\",opacity:sending?.6:1,background:\"transparent\",color:t.fg,whiteSpace:\"nowrap\"},children:sending?\"…\":buttonLabel})]}),failed?/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,fontSize:14,color:t.muted},children:[\"Sorry, that didn’t go through. Please email \",email,\" and we’ll add you.\"]}):null]})]})]})]}),!onCanvas&&brochurePdf?/*#__PURE__*/_jsx(BrochureHost,{pdf:brochurePdf,prompt:brochurePrompt}):null,/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",maxWidth:1104,marginTop:56,paddingTop:24,borderTop:`1px solid ${t.line}`,display:\"flex\",flexWrap:\"wrap\",justifyContent:\"space-between\",alignItems:\"flex-start\",gap:16},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4,maxWidth:640},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:14,color:t.muted},children:copy}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:13,lineHeight:1.5,color:t.muted},children:legal})]}),/*#__PURE__*/_jsx(\"div\",{className:\"lmfl-ft\",style:{display:\"flex\",flexWrap:\"wrap\",gap:20},children:policies.map((p,i)=>/*#__PURE__*/_jsx(\"a\",{href:resolveHref(p),style:{fontSize:14,color:t.muted,textDecoration:\"none\"},children:p.label},i))})]})]});}addPropertyControls(LMFLSiteFooter,{footerTheme:{type:ControlType.Enum,title:\"Theme\",options:[\"dark\",\"light\"],optionTitles:[\"Dark\",\"Light\"],defaultValue:\"dark\",displaySegmentedControl:true},brochurePdf:{type:ControlType.File,title:\"Brochure PDF\",allowedFileTypes:[\"pdf\"]},brochurePrompt:{type:ControlType.Boolean,title:\"Brochure Prompt\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},newsletterHeading:{type:ControlType.String,title:\"Signup Title\",defaultValue:\"Stay in the loop\"},newsletterText:{type:ControlType.String,title:\"Signup Text\",defaultValue:\"Sign up with your email address to receive news and updates about all things LMFL.\",displayTextArea:true},placeholder:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Email address\"},buttonLabel:{type:ControlType.String,title:\"Button\",defaultValue:\"Sign up\"},formAction:{type:ControlType.String,title:\"Form Action\",defaultValue:\"\",placeholder:\"Other provider URL (optional)\"},titleLine:{type:ControlType.String,title:\"Org Name\",defaultValue:\"LMFL\"},tagline:{type:ControlType.String,title:\"Tagline\",defaultValue:\"Language and Music for Life\"},email:{type:ControlType.String,title:\"Email\",defaultValue:\"info@lmfl.org\"},quickLinks:{type:ControlType.Array,title:\"Quick Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Page\"},link:{type:ControlType.String,title:\"Path\",placeholder:\"/page-path\"}}},defaultValue:DEFAULT_LINKS},socials:{type:ControlType.Array,title:\"Social Icons\",control:{type:ControlType.Object,controls:{platform:{type:ControlType.Enum,title:\"Platform\",options:[\"facebook\",\"instagram\",\"youtube\",\"tiktok\",\"email\"],optionTitles:[\"Facebook\",\"Instagram\",\"YouTube\",\"TikTok\",\"Email\"],defaultValue:\"facebook\"},link:{type:ControlType.String,title:\"URL\",defaultValue:\"https://\"}}},defaultValue:DEFAULT_SOCIALS},policies:{type:ControlType.Array,title:\"Policy Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Policy\"},link:{type:ControlType.String,title:\"Path\",placeholder:\"/page-path\"}}},defaultValue:DEFAULT_POLICIES},copyright:{type:ControlType.String,title:\"Copyright\",defaultValue:\"\\xa9 2026 LMFL Ltd.\"},legal:{type:ControlType.String,title:\"Legal\",defaultValue:LEGAL,displayTextArea:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LMFLSiteFooter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1200\",\"framerIntrinsicHeight\":\"420\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Site-wide polish, switched on by the LMFL Site Header (which is on every page):\n// 1) Page transitions: the page softly fades out when you click through to another page, and the new one fades in\n// 2) Photo cards in collection lists (Tutors, Modules, Gallery…): lift, soft shadow and photo zoom on hover\n// 3) Repeated items (reviews, tutors, modules, concert videos, cards) fade up as they scroll into view\n// 4) Mobile & tablet layout: below 900px wide, fixed-width sections shrink to the screen, side-by-side rows\n//    that don't fit become stacked (with the photo always above its text), grids drop to 1–2 columns,\n//    big headings scale down and side padding tightens.\n//    On phones the page stays hidden for the split second it takes to do this, so the desktop layout never flashes up.\n//    (24 Oct 2026: the failsafe that shows the page regardless is now 0.8s, was 2.5s.)\n//    (24 Oct 2026: when a grid drops to ONE column, rows that were \"equal height\" on desktop now fit their own\n//     content – before, a short card was stretched to the height of the tallest one, leaving big empty blocks,\n//     e.g. on /giggleswick between \"Language Tuition\" and \"Optional modules\". Fixed-height photo grids are left alone.)\n// 5) Any link still pointing at an old page address (e.g. /giggleswick-1) is pointed at the new one.\n// 6) Buttons: every rounded \"pill\" button on the site (Framer buttons and coded ones alike) gets the same\n//    hover – it lifts slightly with a soft shadow, and presses in when clicked. Nothing to set up per button.\n//    (Toggle switches made of several buttons side by side, like Music / IELTS on the fees page, are left alone.)\n// It finds lists automatically: any group of 2+ sibling blocks that share the same style is treated as a list.\n// To exclude something, wrap it in a layer named \"no-anim\" (animations) or \"no-fit\" (mobile layout).\n// NOTE: after editing this file, re-save LMFLSiteHeader.tsx so it picks up the new version.\nimport{useEffect,useLayoutEffect}from\"react\";import{RenderTarget}from\"framer\";export const ENHANCE_CSS=`\n@keyframes lmflPage{from{opacity:0}to{opacity:1}}\n@keyframes lmflShow{to{opacity:1}}\n#main{animation:lmflPage .7s cubic-bezier(.2,.7,.2,1) both;}\nbody{transition:opacity .35s ease;}\nhtml.lmfl-leaving #main{opacity:0 !important;transition:opacity .22s ease !important;}\n@media (max-device-width: 899px), (max-width: 899px){\n  html:not(.lmfl-fit) body{opacity:0;animation:lmflShow .3s ease .8s forwards;}\n}\n.lmfl-card{position:relative;isolation:isolate;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s cubic-bezier(.2,.7,.2,1),opacity .9s cubic-bezier(.2,.7,.2,1) !important;}\n.lmfl-card [data-framer-background-image-wrapper]{transition:transform .7s cubic-bezier(.2,.7,.2,1) !important;transform-origin:center;}\n@media (hover:hover){\n  .lmfl-card:hover{transform:translateY(-6px) !important;box-shadow:0 22px 44px rgba(16,12,10,.18),0 4px 10px rgba(16,12,10,.08) !important;}\n  .lmfl-card:hover [data-framer-background-image-wrapper]{transform:scale(1.07) !important;}\n}\n.lmfl-btn{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s cubic-bezier(.2,.7,.2,1),opacity .25s ease !important;will-change:transform;}\n@media (hover:hover){\n  .lmfl-btn:hover{transform:translateY(-2px) !important;box-shadow:0 10px 22px rgba(16,12,10,.16),0 2px 6px rgba(16,12,10,.08) !important;}\n}\n.lmfl-btn:active{transform:translateY(0) scale(.98) !important;box-shadow:0 2px 6px rgba(16,12,10,.10) !important;transition-duration:.12s !important;}\n.lmfl-btn:focus-visible{outline:2px solid currentColor;outline-offset:3px;}\n.lmfl-reveal{opacity:0 !important;transform:translateY(26px) !important;}\n.lmfl-reveal.lmfl-in{opacity:1 !important;transform:none !important;transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1) !important;}\n@media (max-width: 899px){\n  html,body{overflow-x:hidden !important;}\n  #main{overflow-x:hidden;}\n  #main [class*=\"framer-\"]:not(svg):not(svg *):not(img){max-width:100% !important;}\n  #main .framer-text{overflow-wrap:break-word;}\n}\n@media (prefers-reduced-motion: reduce){#main{animation:none;}html.lmfl-leaving #main{opacity:1 !important;}.lmfl-reveal{opacity:1 !important;transform:none !important;}.lmfl-card,.lmfl-card *,.lmfl-btn{transition:none !important;}.lmfl-btn:hover{transform:none !important;}}\n`;const SKIP=\"nav, footer, header, form, [data-framer-name='no-anim']\";const BLOCK_TAGS=new Set([\"DIV\",\"A\",\"ARTICLE\",\"SECTION\",\"LI\"]);// Old page addresses → new ones (keep in step with the page paths in Framer)\nconst RENAMED={\"/giggleswick-1\":\"/giggleswick\",\"/giggleswick-2026\":\"/giggleswick\",\"/giggleswick-pricing\":\"/giggleswick/fees\",\"/europe2027\":\"/europe\"};function fixLinks(doc){doc.querySelectorAll(\"a[href]\").forEach(n=>{const a=n;const raw=a.getAttribute(\"href\")||\"\";const m=raw.match(/^(?:https?:\\/\\/(?:www\\.)?lmfl\\.org)?(\\.?\\/[^?#]*)([?#].*)?$/i);if(!m)return;const path=m[1].replace(/^\\.\\//,\"/\").replace(/\\/+$/,\"\");const rest=m[2]||\"\";const to=RENAMED[path.toLowerCase()];if(to)a.setAttribute(\"href\",to+rest);});}/* ---------------- Buttons ---------------- */// A \"pill\" button: a link or button that is small, very rounded and filled (or outlined).\nconst BTN_SKIP=\"nav, .lmm, [role='dialog'], [role='tab'], [role='tablist'], [aria-pressed], [aria-selected], .lmfl-icon-btn, .lmfl-burger, .lmm-close, [data-framer-name='no-anim']\";function isPill(win,el){const r=el.getBoundingClientRect();if(r.height<30||r.height>84||r.width<60||r.width>520)return false;const cs=win.getComputedStyle(el);const radius=parseFloat(cs.borderTopLeftRadius)||0;if(radius<Math.min(16,r.height/2-1))return false;const bg=cs.backgroundColor||\"\";const m=bg.match(/rgba?\\(([^)]+)\\)/);const alpha=m?m[1].split(\",\")[3]!==undefined?parseFloat(m[1].split(\",\")[3]):1:0;const outlined=(parseFloat(cs.borderTopWidth)||0)>0||/inset/.test(cs.boxShadow||\"\");return alpha>.05||outlined;}// several <button>s side by side in one group = a toggle switch, not a call to action\nfunction inToggleGroup(el){if(el.tagName!==\"BUTTON\"||!el.parentElement)return false;return Array.from(el.parentElement.children).filter(c=>c.tagName===\"BUTTON\").length>1;}function markButtons(doc){const win=doc.defaultView;doc.querySelectorAll(\"a[href], button\").forEach(n=>{const el=n;if(el.dataset.lmflBtn)return;if(el.closest(BTN_SKIP)||inToggleGroup(el))return;el.dataset.lmflBtn=\"0\";let target=null;if(isPill(win,el))target=el;else if(el.children.length===1&&isPill(win,el.children[0]))target=el.children[0];if(!target||target.closest(\".lmfl-card\"))return;el.dataset.lmflBtn=\"1\";target.classList.add(\"lmfl-btn\");});}const FIT_BP=900;// Reveal the page. On a phone that is still being drawn at the 1200px desktop width, wait for the\n// switch to its real width (handled by the resize listener) – the CSS failsafe shows it after 0.8s regardless.\nfunction showPage(doc,force=false){const win=doc.defaultView;const screenW=win&&win.screen?Math.min(win.screen.width||9999,win.screen.height||9999):9999;if(force||win.innerWidth<FIT_BP||screenW>=FIT_BP||win.innerWidth<=screenW+2)doc.documentElement.classList.add(\"lmfl-fit\");}function isList(parent){const kids=Array.from(parent.children);if(kids.length<2)return null;const cls=kids[0].className;if(!cls||typeof cls!==\"string\")return null;if(!kids.every(k=>k.className===cls&&BLOCK_TAGS.has(k.tagName)))return null;return kids;}// a block that is just a photo (no text inside)\nfunction isPhoto(el){if(el.querySelector(\"[data-framer-component-type='RichTextContainer'], h1, h2, h3, p\"))return false;return!!(el.matches(\"[data-framer-background-image-wrapper]\")||el.querySelector(\"[data-framer-background-image-wrapper], img\"));}/* ---------------- Mobile / tablet fitting ---------------- */// Works in batched passes (read everything, then write everything) so the browser only re-lays-out\n// the page a few times, however big it is.\nconst FIT_SKIP=\"header, nav, footer, svg, iframe, video, [data-framer-name='no-fit'], .lmfl-lb, .lmtp-lb, [data-lmfl-nofit]\";const FIT_TAGS=new Set([\"DIV\",\"A\",\"SECTION\",\"ARTICLE\",\"MAIN\",\"FIGURE\",\"UL\",\"LI\",\"FORM\"]);function setImp(el,prop,value){if(el.dataset.lmflOrig===undefined)el.dataset.lmflOrig=el.getAttribute(\"style\")||\"\";el.style.setProperty(prop,value,\"important\");}function fitLayout(doc){const win=doc.defaultView;const vw=win.innerWidth;const phone=vw<600;const main=doc.getElementById(\"main\")||doc.body;const sidePad=phone?20:32;const candidates=Array.from(main.querySelectorAll(\"div, a, section, article, figure, ul, li, form\")).filter(el=>FIT_TAGS.has(el.tagName)&&!el.closest(FIT_SKIP));// the page's top-level sections\nconst root=Array.from(main.children).sort((a,b)=>b.offsetHeight-a.offsetHeight)[0];const sections=new Set(root?Array.from(root.children):[]);for(let pass=0;pass<3;pass++){const actions=[];const t0=Date.now();// ---- READ ----\nfor(const el of candidates){if(el.dataset.lmflDone===\"1\"&&pass>0)continue;const cs=win.getComputedStyle(el);if(cs.display===\"none\")continue;const pl=parseFloat(cs.paddingLeft)||0;const pr=parseFloat(cs.paddingRight)||0;if(pass===0){if(pl>=40)actions.push([el,\"padding-left\",sidePad+\"px\"]);if(pr>=40)actions.push([el,\"padding-right\",sidePad+\"px\"]);if(phone){const pt=parseFloat(cs.paddingTop)||0;const pb=parseFloat(cs.paddingBottom)||0;if(pt>=80)actions.push([el,\"padding-top\",Math.round(pt*.65)+\"px\"]);if(pb>=80)actions.push([el,\"padding-bottom\",Math.round(pb*.65)+\"px\"]);}// sections with no side padding (content was centred by a fixed width on desktop)\nif(sections.has(el)&&pl<16&&pr<16&&!String(el.className).includes(\"-container\")&&el.querySelector(\"[data-framer-component-type='RichTextContainer']\")){actions.push([el,\"padding-left\",sidePad+\"px\"]);actions.push([el,\"padding-right\",sidePad+\"px\"]);}if((parseFloat(cs.minWidth)||0)>vw*.9)actions.push([el,\"min-width\",\"0px\"]);// text boxes set to \"fit content\" never wrap on desktop – let them wrap within the screen width\nif(el.getAttribute(\"data-framer-component-type\")===\"RichTextContainer\"&&(cs.whiteSpace===\"pre\"||cs.whiteSpace===\"nowrap\")){actions.push([el,\"width\",\"max-content\"]);actions.push([el,\"white-space\",\"normal\"]);el.querySelectorAll(\".framer-text\").forEach(t=>actions.push([t,\"white-space\",\"normal\"]));}}const avail=el.clientWidth-pl-pr;if(cs.display.includes(\"flex\")&&cs.flexDirection===\"row\"){const kids=Array.from(el.children).filter(k=>k.offsetParent!==null||k.offsetWidth>0);if(kids.length>1){const gap=parseFloat(cs.columnGap)||0;const needed=kids.reduce((s,k)=>s+k.offsetWidth,0)+gap*(kids.length-1);const overflowing=el.scrollWidth>el.clientWidth+2||needed>avail+2;const growKids=kids.filter(k=>parseFloat(win.getComputedStyle(k).flexGrow)>0).length;const cramped=growKids>1&&avail/kids.length<(phone?260:300)&&kids.some(k=>k.offsetHeight>120);// e.g. a fixed-width photo next to a stretchy text column that has become too narrow\nconst lopsided=growKids>=1&&kids.some(k=>parseFloat(win.getComputedStyle(k).flexGrow)===0&&k.offsetWidth>avail*.5&&k.offsetHeight>160);if(overflowing||cramped||lopsided){const small=kids.every(k=>k.offsetWidth<280&&k.offsetHeight<90);if(small){actions.push([el,\"flex-wrap\",\"wrap\"]);actions.push([el,\"row-gap\",Math.max(gap,10)+\"px\"]);}else{actions.push([el,\"flex-direction\",\"column\"]);actions.push([el,\"flex-wrap\",\"nowrap\"]);actions.push([el,\"row-gap\",Math.min(Math.max(gap,20),40)+\"px\"]);// a photo + text row: the photo always goes above its text, so photos from\n// alternating rows never end up stacked next to each other\nconst photos=kids.filter(k=>k.offsetHeight>160&&isPhoto(k));const photoAndText=photos.length===1&&kids.length===2;kids.forEach(k=>{const kcs=win.getComputedStyle(k);if(kcs.position===\"absolute\")return;if(parseFloat(kcs.flexGrow)>0||k.offsetWidth>avail*.4){actions.push([k,\"flex\",\"0 0 auto\"]);actions.push([k,\"width\",\"100%\"]);}if(photoAndText)actions.push([k,\"order\",photos[0]===k?\"-1\":\"0\"]);});}el.dataset.lmflDone=\"1\";}}}else if(cs.display.includes(\"grid\")&&pass===0){const cols=cs.gridTemplateColumns.split(\" \").filter(Boolean).length;if(cols>1){const kids=Array.from(el.children).filter(k=>win.getComputedStyle(k).display!==\"none\");const smallItems=kids.length>0&&kids.every(k=>k.offsetHeight<240);let target=phone?cols>=4||smallItems?2:1:Math.min(cols,2);if(target<cols){actions.push([el,\"grid-template-columns\",`repeat(${target}, minmax(0, 1fr))`]);// an odd last card spans the full row instead of sitting alone\nif(target===2&&kids.length%2===1&&kids.length>1)actions.push([kids[kids.length-1],\"grid-column\",\"1 / -1\"]);// one column: equal-height rows (\"fr\" rows) would stretch every card to the tallest one,\n// so let each row fit its own content. Fixed-height rows (photo grids) are left as they are.\nif(target===1&&/fr/.test(cs.gridAutoRows||\"\"))actions.push([el,\"grid-auto-rows\",\"auto\"]);}const g=parseFloat(cs.rowGap)||0;if(g>32)actions.push([el,\"row-gap\",\"24px\"]);const rowH=parseFloat(cs.gridAutoRows)||0;if(phone&&target===1&&rowH>420)actions.push([el,\"grid-auto-rows\",Math.round(rowH*.8)+\"px\"]);}}if(Date.now()-t0>400)break;// safety\n}// big type (first pass only)\nif(pass===0){const k=phone?.45:.68;const texts=Array.from(main.querySelectorAll(\"h1, h2, h3, .framer-text\"));for(const t of texts){if(t.closest(FIT_SKIP))continue;if(t.dataset.lmflFs===undefined)t.dataset.lmflFs=String(parseFloat(win.getComputedStyle(t).fontSize)||0);const fs=parseFloat(t.dataset.lmflFs||\"0\");if(fs>26)actions.push([t,\"font-size\",Math.round(26+(fs-26)*k)+\"px\"]);}}// ---- WRITE ----\nif(!actions.length)break;for(const[el,p,v]of actions)setImp(el,p,v);}}function unfitLayout(doc){doc.querySelectorAll(\"[data-lmfl-orig]\").forEach(n=>{const el=n;const orig=el.dataset.lmflOrig||\"\";if(orig)el.setAttribute(\"style\",orig);else el.removeAttribute(\"style\");delete el.dataset.lmflOrig;delete el.dataset.lmflDone;});}/* ---------------- Page transitions ---------------- */// Clicking a link to another page on the site fades the current page out; the new page then fades in.\nfunction onLinkClick(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const t=e.target;const a=t&&t.closest?t.closest(\"a[href]\"):null;if(!a||a.target&&a.target!==\"_self\"||a.hasAttribute(\"download\"))return;let url;try{url=new URL(a.href,location.href);}catch(err){return;}if(url.origin!==location.origin)return;if(url.pathname.replace(/\\/+$/,\"\")===location.pathname.replace(/\\/+$/,\"\"))return;// same page / #section\nconst root=document.documentElement;root.classList.add(\"lmfl-leaving\");// never leave the page faded if the navigation doesn't happen\nwindow.setTimeout(()=>root.classList.remove(\"lmfl-leaving\"),1200);}export function enhance(doc){const win=doc.defaultView;const reduce=win.matchMedia&&win.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;// Fade the page in again when moving between pages without a full reload\ndoc.documentElement.classList.remove(\"lmfl-leaving\");if(win.__lmflLoaded&&!reduce){const main=doc.getElementById(\"main\");if(main&&main.animate)main.animate([{opacity:0},{opacity:1}],{duration:600,easing:\"cubic-bezier(.2,.7,.2,1)\"});}win.__lmflLoaded=true;if(!reduce&&!win.__lmflClicks){win.__lmflClicks=true;doc.addEventListener(\"click\",onLinkClick);}const seen=new WeakSet;const io=new win.IntersectionObserver(entries=>{entries.forEach(e=>{if(e.isIntersecting){const el=e.target;io.unobserve(el);win.requestAnimationFrame(()=>el.classList.add(\"lmfl-in\"));// hand control back to normal styles once the entrance has finished\nwin.setTimeout(()=>{el.classList.remove(\"lmfl-reveal\",\"lmfl-in\");el.style.transitionDelay=\"\";},1300);}});},{rootMargin:\"0px 0px -6% 0px\",threshold:.06});const scan=()=>{try{fixLinks(doc);}catch(e){}try{markButtons(doc);}catch(e){}const parents=new Set;doc.querySelectorAll(\"[data-framer-background-image-wrapper], [data-lmfl-concert], [data-framer-component-type='RichTextContainer']\").forEach(n=>{let p=n.parentElement;for(let i=0;i<8&&p;i++){if(p.parentElement)parents.add(p.parentElement);p=p.parentElement;}});parents.forEach(parent=>{if(parent.closest(SKIP))return;const kids=isList(parent);if(!kids)return;kids.forEach((el,idx)=>{if(seen.has(el))return;const r=el.getBoundingClientRect();if(r.height<60||r.width<120)return;seen.add(el);const img=el.querySelector(\"[data-framer-background-image-wrapper]\");if(img&&!el.querySelector(\"[data-lmfl-concert]\")){const ir=img.getBoundingClientRect();if(ir.height>r.height*.45&&ir.width>r.width*.8)el.classList.add(\"lmfl-card\");}if(reduce)return;el.classList.add(\"lmfl-reveal\");el.style.transitionDelay=`${idx%3*90}ms`;io.observe(el);});});};let fitted=false;let lastFit=0;const fit=()=>{try{if(win.innerWidth<FIT_BP){fitLayout(doc);fitted=true;}else if(fitted){unfitLayout(doc);fitted=false;}}catch(e){// never break the page\n}lastFit=Date.now();showPage(doc);};// Fit straight away (before the first paint after loading), then look for lists\nvoid doc.documentElement.clientWidth// make sure the browser has applied the phone's real width\n;fit();const t0=win.setTimeout(scan,30);// in case the browser never reports a size change, show the page anyway\nconst t1=win.setTimeout(()=>{fit();showPage(doc,true);},800);// buttons inside code components can appear a moment later\nconst t2=win.setTimeout(()=>{try{markButtons(doc);}catch(e){}},1500);let t=null;let tf=null;const mo=new win.MutationObserver(()=>{win.clearTimeout(t);t=win.setTimeout(scan,250);if(win.innerWidth<FIT_BP){win.clearTimeout(tf);tf=win.setTimeout(fit,Date.now()-lastFit<1e3?600:200);}});mo.observe(doc.body,{childList:true,subtree:true});let lastW=win.innerWidth;const onResize=()=>{if(Math.abs(win.innerWidth-lastW)<2)return;const crossed=lastW<FIT_BP!==win.innerWidth<FIT_BP||lastW<600!==win.innerWidth<600;lastW=win.innerWidth;win.clearTimeout(tf);const run=()=>{if(crossed&&fitted){unfitLayout(doc);fitted=false;}fit();};// the phone switching from the 1200px desktop width to its real width: refit right away\nif(crossed)run();else tf=win.setTimeout(run,200);};win.addEventListener(\"resize\",onResize);// back/forward buttons: make sure the page is never left faded out\nconst onShow=()=>doc.documentElement.classList.remove(\"lmfl-leaving\");win.addEventListener(\"pageshow\",onShow);win.addEventListener(\"popstate\",onShow);return()=>{io.disconnect();mo.disconnect();win.removeEventListener(\"resize\",onResize);win.removeEventListener(\"pageshow\",onShow);win.removeEventListener(\"popstate\",onShow);win.clearTimeout(t);win.clearTimeout(tf);win.clearTimeout(t0);win.clearTimeout(t1);win.clearTimeout(t2);};}const useIsoLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;export function useSiteEnhancements(){useIsoLayoutEffect(()=>{if(typeof document===\"undefined\")return;if(typeof IntersectionObserver===\"undefined\"||RenderTarget.current()===RenderTarget.canvas){showPage(document,true);return;}try{return enhance(document);}catch(e){showPage(document,true);}},[]);}\nexport const __FramerMetadata__ = {\"exports\":{\"enhance\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSiteEnhancements\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ENHANCE_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LMFLEnhance.map","// LMFL site search (used by the LMFL Site Header).\n// Edit the lists below to change what search knows about:\n//  - PAGES: every page, with extra keywords people might type (include alternative wording!)\n//  - SHORTCUTS: words or phrases that should jump straight to a page (e.g. \"prices\" → Fees).\n//    Order matters: earlier shortcuts are shown first when several match.\n//  - INSTRUMENTS: each instrument / subject and what to show for it\n//  - TUTORS and MODULES (the third value of a module lists words it should match, e.g. instruments)\n// Search is forgiving: it ignores filler words (\"how do I…\", \"where is the…\"), copes with small typos\n// (e.g. \"registraton\", \"giglswick\", \"violn\") and matches word beginnings (\"regist\" → register).\n// (If you edit this file, the header picks up the new version automatically.)\n// \"Where Are They Now?\" is left out until that page goes live; to add it back, add to PAGES:\n//   { type: \"Page\", title: \"Where Are They Now?\", link: \"/where-are-they-now\", text: \"alumni former students careers conservatoire stories\" },\n// Note: hidden keyword lists may include words people type (e.g. \"private\", \"orchestra\") so those searches still\n// find the right page; they are never shown as text.\n// 21 Oct 2026: Le Yu (Percussion) added to TUTORS (his tutor page goes live when his CMS item is published).\n// 22 Oct 2026: Brochure page added; \"bass guitar\" now finds bass guitar (not double bass); oboe has no concert filter.\n// 22 Oct 2026: Jack Greenway listed as \"IELTS, English, French & Spanish\".\n// 22 Oct 2026: Orchestra module renamed Classical Ensemble; Session Orchestra added.\n// 24 Oct 2026: no \"swimming\"/\"pool\" keywords (there is no pool); new IELTS module (10 individual lessons, £730) finds the\n//   fees page; TUTORS listed alphabetically by surname; the search popup keeps keyboard focus inside it and gives\n//   focus back to the search button when it closes.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";const FAMILY=\"'EB Garamond', Garamond, 'Times New Roman', serif\";const MUTED=\"#786f68\";const INK=\"#161413\";const UK=\"/giggleswick\";const FEES=\"/giggleswick/fees\";const REGISTER=\"/giggleswick/register\";const PARENTS=\"/giggleswick/parents\";export const PAGES=[{type:\"Page\",title:\"Home\",link:\"/\",text:\"lmfl language music for life home homepage start summer courses camps schools uk europe\"},{type:\"Page\",title:\"About LMFL\",link:\"/about-lmfl\",text:\"about us history story founded 1997 frensham 1998 founder philosophy who we are organisation organization company charity background alumni\"},{type:\"Page\",title:\"Management\",link:\"/management\",text:\"management team staff director directors founder course staff who runs people leadership organisers organizers contacts paul goodey dawn bellino william godfree alan moller treasurer\"},{type:\"Page\",title:\"Our Courses\",link:\"/our-courses\",text:\"courses course how it works programme program pathways music languages day off excursion trip outing structure typical day timetable what happens summer school camp\"},{type:\"Page\",title:\"All Modules\",link:\"/modules\",text:\"modules subjects classes lessons tuition teaching core optional individual one to one 1-to-1 1:1 private group classical ensemble orchestra choir jazz musicianship composition conducting songwriting improvisation chamber opera theory aural ielts languages workshops what can i study learn\"},{type:\"Page\",title:\"Our Vision\",link:\"/our-vision\",text:\"vision mission values aims ethos past present future performance purpose why\"},{type:\"Page\",title:\"Tutors\",link:\"/tutors\",text:\"tutors teachers teaching staff faculty professors musicians coaches instructors music language who teaches\"},{type:\"Page\",title:\"Giggleswick 2027 – Course Details\",link:UK,text:\"uk 2027 giggleswick school yorkshire dales settle england britain dates july summer course camp school residential boarding accommodation rooms dining food meals sports schedule timetable concerts packages next course\"},{type:\"Page\",title:\"Fees & Booking\",link:FEES,text:\"fees prices price cost costs pricing how much money tuition fee residential non-residential day student ielts ielts module 10 ielts lessons 730 add-ons extras supplement early bird discount returning student deposit balance payment pay bank transfer airport transfer accompanying parent adult\"},{type:\"Page\",title:\"Register Online\",link:REGISTER,text:\"register registration registering sign up signup sign-up book booking bookings book a place reserve reservation apply application form enrol enroll enrolment enrollment join secure a place get a place\"},{type:\"Page\",title:\"For Parents\",link:PARENTS,text:\"parents parent families family guardians mum dad care welfare pastoral safeguarding safety safe supervision supervised monitors 24/7 medical health nurse allergies allergy dietary diet vegetarian vegan halal gluten arrival arriving departure leaving drop off pick up collection airport transfers manchester leeds travel transport train getting there visa eta passport insurance rules phone curfew unaccompanied minors under 18 children kids\"},{type:\"Page\",title:\"Scholarships\",link:\"/scholarships\",text:\"scholarships scholarship bursaries bursary funding funded financial help support assistance awards grant grants discount free place hardship\"},{type:\"Page\",title:\"Europe 2027\",link:\"/europe\",text:\"europe european abroad overseas france french course 2027 confolens florence venice valbonne andorra italy italian other courses\"},{type:\"Page\",title:\"2027 Brochure\",link:\"/brochure\",text:\"brochure prospectus pdf download booklet read guide 2027\"},{type:\"Page\",title:\"Meet the Students\",link:\"/meet-the-students\",text:\"students pupils participants campers video videos community testimonials stories who comes\"},{type:\"Page\",title:\"Student Reviews\",link:\"/student-reviews\",text:\"reviews review testimonials testimonial students feedback opinions what people say experiences ratings\"},{type:\"Page\",title:\"Parent Reviews\",link:\"/parent-reviews\",text:\"reviews review testimonials testimonial parents families feedback opinions what parents say experiences\"},{type:\"Page\",title:\"Concert Recordings\",link:\"/concerts\",text:\"concerts concert videos video recordings recording performances performance perform recital senior junior teachers faculty youtube watch listen hear music clips\"},{type:\"Page\",title:\"Locations Gallery\",link:\"/locations\",text:\"locations location venues venue where places gallery photos photographs pictures images campus giggleswick llandovery florence venice valbonne andorra\"},{type:\"Page\",title:\"Contact Us\",link:\"/contact\",text:\"contact contact us email e-mail phone telephone call number address enquiry enquiries inquiry inquiries question questions message get in touch help speak talk office\"},{type:\"Page\",title:\"Social Media\",link:\"/social-media\",text:\"social media instagram insta facebook fb youtube tiktok follow updates news\"},{type:\"Page\",title:\"FAQs\",link:\"/faqs\",text:\"faq faqs questions frequently asked answers help info information what to bring pack packing luggage practice rooms auditions levels age ages beginners phones laptops laundry wifi\"},{type:\"Page\",title:\"Terms & Conditions\",link:\"/terms-and-conditions\",text:\"terms conditions t&cs t and c tandc small print deposit cancellation cancel cancelling refund refunds withdraw withdrawal policy rules conduct behaviour behavior house rules smoking\"},{type:\"Page\",title:\"Privacy Policy\",link:\"/privacy-policy\",text:\"privacy cookies cookie data personal information policy gdpr protection\"},{type:\"Page\",title:\"Equity, Diversity & Inclusion\",link:\"/equity-diversity-inclusion-policy\",text:\"edi equity equality diversity inclusion inclusive accessibility access policy\"}];// Words or phrases that send people straight to a page (shown as the top result, in this order)\nconst SHORTCUTS=[{words:[\"cancel\",\"cancellation\",\"cancelling\",\"canceling\",\"refund\",\"refunds\",\"terms\",\"conditions\",\"t&cs\",\"withdraw\",\"rules\",\"behaviour\",\"behavior\",\"smoking\",\"conduct\"],title:\"Terms & Conditions\",link:\"/terms-and-conditions\",note:\"Deposits, cancellations, refunds and house rules\"},{words:[\"price\",\"prices\",\"pricing\",\"cost\",\"costs\",\"fee\",\"fees\",\"how much\",\"pay\",\"paying\",\"payment\",\"payments\",\"bank transfer\",\"money\",\"deposit\",\"balance\",\"early bird\",\"discount\",\"discounts\",\"returning\",\"instalment\",\"instalments\",\"installment\",\"supplement\",\"afford\",\"cheap\",\"expensive\",\"tuition fee\"],title:\"Fees & Booking\",link:FEES,note:\"Course prices, packages and add-ons\"},// the optional IELTS module for music students (listed before the general \"languages\" shortcut)\n{words:[\"ielts module\",\"ielts lessons\",\"10 ielts lessons\",\"ten ielts lessons\",\"ielts price\",\"ielts prices\",\"ielts cost\",\"ielts fee\",\"ielts fees\",\"ielts add-on\",\"ielts for music students\"],title:\"Fees & Booking\",link:FEES,note:\"10 individual IELTS lessons for music students, \\xa3730\"},{words:[\"book\",\"booking\",\"bookings\",\"register\",\"registration\",\"registering\",\"sign up\",\"signup\",\"sign-up\",\"apply\",\"application\",\"applying\",\"enrol\",\"enroll\",\"enrolment\",\"enrollment\",\"join\",\"reserve\",\"reservation\",\"form\",\"book a place\",\"secure a place\",\"get a place\",\"places\",\"availability\",\"spaces\"],title:\"Register Online\",link:REGISTER,note:\"Book your place for Giggleswick 2027\"},{words:[\"parent\",\"parents\",\"guardian\",\"guardians\",\"family\",\"families\",\"safeguarding\",\"safety\",\"safe\",\"supervision\",\"supervised\",\"care\",\"welfare\",\"pastoral\",\"medical\",\"medicine\",\"health\",\"allergy\",\"allergies\",\"dietary\",\"diet\",\"vegetarian\",\"vegan\",\"halal\",\"gluten\",\"airport\",\"transfer\",\"transfers\",\"pick up\",\"pickup\",\"drop off\",\"arrival\",\"arrive\",\"departure\",\"depart\",\"travel\",\"transport\",\"train\",\"getting there\",\"visa\",\"visas\",\"eta\",\"passport\",\"insurance\",\"unaccompanied\",\"monitors\",\"dbs\"],title:\"For Parents\",link:PARENTS,note:\"Care, supervision, arrival and practical details\"},{words:[\"scholarship\",\"scholarships\",\"bursary\",\"bursaries\",\"funding\",\"financial\",\"financial help\",\"grant\",\"grants\",\"free place\",\"hardship\"],title:\"Scholarships\",link:\"/scholarships\",note:\"Financial support\"},{words:[\"brochure\",\"prospectus\",\"pdf\",\"download\",\"booklet\"],title:\"2027 Brochure\",link:\"/brochure\",note:\"Read or download the 2027 brochure\"},{words:[\"date\",\"dates\",\"when\",\"july\",\"2027\",\"how long\",\"length\",\"duration\",\"two weeks\",\"schedule\",\"timetable\",\"next course\",\"summer school\",\"summer camp\",\"camp\"],title:\"Giggleswick 2027 – Course Details\",link:UK,note:\"7–21 July 2027 – dates, schedule and course information\"},{words:[\"room\",\"rooms\",\"accommodation\",\"boarding\",\"residential\",\"sleep\",\"bedroom\",\"dorm\",\"dormitory\",\"food\",\"meals\",\"dining\",\"breakfast\",\"lunch\",\"dinner\",\"sport\",\"sports\",\"tennis\",\"hikes\",\"walks\",\"walking\"],title:\"Giggleswick 2027 – Course Details\",link:UK,note:\"Accommodation, dining, sports and recreation\"},{words:[\"tutor\",\"tutors\",\"teacher\",\"teachers\",\"faculty\",\"staff list\",\"who teaches\",\"professor\",\"professors\",\"instructor\",\"instructors\"],title:\"Tutors\",link:\"/tutors\",note:\"Meet our music and language tutors\"},{words:[\"email\",\"e-mail\",\"phone\",\"telephone\",\"contact\",\"call\",\"address\",\"enquiry\",\"enquiries\",\"inquiry\",\"question\",\"questions\",\"message\",\"help\",\"speak to\",\"talk to\"],title:\"Contact Us\",link:\"/contact\",note:\"info@lmfl.org\"},{words:[\"management\",\"director\",\"directors\",\"team\",\"who runs\",\"leadership\",\"organisers\",\"organizers\"],title:\"Management\",link:\"/management\",note:\"The team who run LMFL\"},{words:[\"audition\",\"auditions\",\"level\",\"levels\",\"beginner\",\"beginners\",\"grade\",\"grades\",\"advanced\",\"standard\",\"experience\",\"ability\"],title:\"FAQs\",link:\"/faqs\",note:\"No auditions required, all levels welcome\"},{words:[\"age\",\"ages\",\"how old\",\"child\",\"children\",\"kids\",\"teen\",\"teens\",\"teenager\",\"teenagers\",\"adult\",\"adults\",\"grown up\",\"young\"],title:\"FAQs\",link:\"/faqs\",note:\"Courses for ages 5 to adult\"},{words:[\"bring\",\"pack\",\"packing\",\"luggage\",\"what to bring\",\"kit\",\"concert dress\",\"uniform\",\"laptop\",\"laundry\",\"wifi\",\"wi-fi\",\"practice room\",\"practice rooms\",\"faq\",\"faqs\"],title:\"FAQs\",link:\"/faqs\",note:\"What to bring, practice, and other common questions\"},{words:[\"video\",\"videos\",\"concert\",\"concerts\",\"watch\",\"performance\",\"performances\",\"perform\",\"recital\",\"recording\",\"recordings\",\"youtube\",\"listen\"],title:\"Concert Recordings\",link:\"/concerts\",note:\"Watch our students and tutors perform\"},{words:[\"english\",\"french\",\"spanish\",\"italian\",\"german\",\"language\",\"languages\",\"ielts\",\"esl\",\"efl\"],title:\"All Modules\",link:\"/modules\",note:\"Language tuition and IELTS preparation\"},{words:[\"review\",\"reviews\",\"testimonial\",\"testimonials\",\"feedback\",\"opinions\",\"what people say\"],title:\"Student Reviews\",link:\"/student-reviews\",note:\"What students and parents say\"},{words:[\"photo\",\"photos\",\"pictures\",\"images\",\"gallery\",\"location\",\"locations\",\"venue\",\"venues\",\"where\",\"campus\"],title:\"Locations Gallery\",link:\"/locations\",note:\"Photos of our course locations\"},{words:[\"europe\",\"france\",\"abroad\",\"overseas\",\"italy\"],title:\"Europe 2027\",link:\"/europe\",note:\"Our 2027 European course\"},{words:[\"instagram\",\"insta\",\"facebook\",\"tiktok\",\"social\",\"social media\",\"follow\"],title:\"Social Media\",link:\"/social-media\",note:\"Follow LMFL\"},{words:[\"privacy\",\"cookies\",\"cookie\",\"gdpr\",\"data\"],title:\"Privacy Policy\",link:\"/privacy-policy\",note:\"How we use your data\"}];// Instruments & subjects: [search words, display name, concert filter value (\"\" = no concert link)]\n// (The concert filter value must match the Concerts CMS \"Instrument / Ensemble\" option name exactly.)\n// \"bass guitar\" is listed before double bass so that \"bass guitar\" isn't read as \"bass\".\nconst INSTRUMENTS=[[[\"violin\",\"violins\",\"fiddle\",\"violinist\"],\"Violin\",\"Violin\"],[[\"viola\",\"violas\",\"violist\"],\"Viola\",\"Viola\"],[[\"cello\",\"cellos\",\"violoncello\",\"cellist\"],\"Cello\",\"Cello\"],[[\"bass guitar\",\"electric bass\",\"bassist\"],\"Bass guitar\",\"\"],[[\"double bass\",\"contrabass\",\"upright bass\",\"bass\"],\"Double bass\",\"Double Bass\"],[[\"guitar\",\"guitars\",\"guitarist\",\"acoustic guitar\",\"electric guitar\",\"classical guitar\"],\"Guitar\",\"Guitar\"],[[\"piano\",\"pianos\",\"pianist\",\"keyboard\",\"keys\"],\"Piano\",\"Piano\"],[[\"flute\",\"flutes\",\"flautist\",\"flutist\",\"piccolo\"],\"Flute\",\"Flute\"],[[\"recorder\",\"recorders\"],\"Recorder\",\"\"],[[\"clarinet\",\"clarinets\",\"clarinettist\",\"clarinetist\"],\"Clarinet\",\"Clarinet\"],[[\"saxophone\",\"saxophones\",\"sax\",\"saxophonist\",\"alto sax\",\"tenor sax\"],\"Saxophone\",\"Saxophone\"],[[\"oboe\",\"oboes\",\"oboist\",\"cor anglais\"],\"Oboe\",\"\"],[[\"bassoon\",\"bassoons\",\"bassoonist\"],\"Bassoon\",\"\"],[[\"trumpet\",\"trumpets\",\"cornet\",\"brass\",\"trombone\",\"horn\",\"french horn\",\"tuba\",\"euphonium\"],\"Brass\",\"\"],[[\"harp\",\"harps\",\"harpist\"],\"Harp\",\"\"],[[\"drums\",\"drum\",\"drummer\",\"percussion\",\"percussionist\",\"drum kit\",\"timpani\",\"marimba\",\"xylophone\"],\"Drums & percussion\",\"\"],[[\"voice\",\"singing\",\"sing\",\"singer\",\"vocal\",\"vocals\",\"opera\",\"soprano\",\"alto\",\"tenor\",\"baritone\",\"musical theatre\"],\"Voice\",\"Voice\"],[[\"jazz\"],\"Jazz\",\"Jazz Ensemble\"],[[\"choir\",\"chorus\",\"choral\"],\"Choir\",\"Choir\"],[[\"classical ensemble\",\"orchestra\",\"orchestral\",\"symphony\"],\"Classical ensemble\",\"Orchestra\"],[[\"chamber\",\"chamber music\",\"quartet\",\"trio\",\"ensemble\",\"ensembles\"],\"Chamber music\",\"Chamber Ensemble\"],[[\"composition\",\"composing\",\"compose\",\"composer\"],\"Composition\",\"\"],[[\"conducting\",\"conductor\",\"conduct\"],\"Conducting\",\"\"],[[\"theory\",\"aural\",\"music theory\",\"ear training\"],\"Music theory & aural\",\"\"],[[\"songwriting\",\"song writing\",\"songs\",\"songwriter\"],\"Songwriting\",\"\"],[[\"improvisation\",\"improvise\",\"improvising\"],\"Improvisation\",\"\"],[[\"organ\",\"organist\"],\"Organ\",\"\"]];// Alphabetical by surname (Course Director, 24 Oct 2026)\nexport const TUTORS=[[\"Paolo Adamo\",\"Drums\",\"paolo-adamo\"],[\"Alessio Bacci\",\"Flute\",\"alessio-bacci\"],[\"Steve Banks\",\"Bass Guitar & Improvisation\",\"steve-banks\"],[\"Dawn Bellino\",\"English & French\",\"dawn-bellino\"],[\"Sonia Bellugi\",\"Classical Voice & Opera\",\"sonia-bellugi\"],[\"Boris Bizjak\",\"Flute\",\"boris-bizjak\"],[\"Maria Luigia Borsi\",\"Classical Voice & Opera\",\"maria-luigia-borsi\"],[\"František Brikcius\",\"Cello\",\"frantisek-brikcius\"],[\"William Godfree\",\"Choir, Composition, Conducting, Theory, Orchestra & Organ\",\"william-godfree\"],[\"Paul Goodey-Avedisyan\",\"Oboe, Composition & Music Theory\",\"paul-goodey\"],[\"Heather Gordon-Redfearn\",\"Clarinet\",\"heather-john\"],[\"Jack Greenway\",\"IELTS, English, French & Spanish\",\"jack-greenway\"],[\"Murray Grieg\",\"Trumpet & Brass\",\"murray-grieg\"],[\"Rebecca Hayward\",\"Italian, French & English\",\"rebecca-hayward\"],[\"Anna Jordan\",\"English\",\"anna-jordan\"],[\"Mikhail Kazakevich\",\"Piano\",\"mikhail-kazakevich\"],[\"Gerard McChrystal\",\"Saxophone & Clarinet\",\"gerard-mcchrystal\"],[\"Bernadette Mercier\",\"Classical Voice & Opera\",\"bernadette-mercier\"],[\"Martin Mexme\",\"Piano, Guitar & Improvisation\",\"martin-mexme\"],[\"Catherine Milledge\",\"Piano\",\"catherine-milledge\"],[\"Madeleine Mitchell\",\"Violin & Viola\",\"madeleine-mitchell\"],[\"Alan Moller\",\"English\",\"alan-moller\"],[\"Letizia Morelli\",\"Jazz Vocals & Jazz Vocal Workshop\",\"letizia-morelli\"],[\"Věra M\\xfcllerov\\xe1\",\"Piano\",\"vera-mullerova\"],[\"Katia Nemirovitch-Danchenko\",\"Classical Piano\",\"katia-nemirovitch-danchenko\"],[\"Chris Orton\",\"Recorder\",\"chris-orton\"],[\"Hazel Ross\",\"Violin\",\"hazel-ross\"],[\"Lisetta Rossi\",\"Harp\",\"lisetta-rossi\"],[\"Robert Short\",\"Jazz Vocals & Songwriting\",\"robert-short\"],[\"Linton Stephens\",\"Bassoon\",\"linton-stephens\"],[\"Le Yu\",\"Percussion\",\"le-yu\"]];const ALL_INSTRUMENTS=\"violin viola cello double bass guitar piano flute recorder clarinet saxophone oboe bassoon trumpet brass horn harp drums percussion singing voice\";export const MODULES=[[\"Individual Music Tuition\",\"Core\",\"one to one 1-to-1 1:1 lessons lesson instrument private individual \"+ALL_INSTRUMENTS],[\"Classical Ensemble\",\"Core\",\"classical strings winds ensemble classical ensemble orchestra orchestral symphony violin viola cello double bass flute clarinet oboe bassoon trumpet horn harp percussion\"],[\"Jazz Ensemble\",\"Core\",\"jazz band big band saxophone guitar piano drums double bass trumpet\"],[\"Session Orchestra\",\"Core\",\"session band guitar bass guitar electric bass drums percussion rock pop\"],[\"Choir\",\"Core\",\"singing voice chorus choral\"],[\"Musicianship\",\"Core\",\"theory aural ear training\"],[\"Additional Instrument\",\"Individual\",\"second instrument extra \"+ALL_INSTRUMENTS],[\"Composition\",\"Individual\",\"composing composer write music\"],[\"Music Theory and Aural\",\"Individual\",\"theory aural ear training grades abrsm\"],[\"Conducting\",\"Individual\",\"conductor\"],[\"Songwriting\",\"Individual\",\"songs songwriter lyrics\"],[\"Improvisation\",\"Individual\",\"jazz improvise improvising\"],[\"Language Tuition\",\"Individual\",\"english french spanish italian german language lessons esl efl\"],[\"Collaborative Piano\",\"Individual\",\"accompaniment accompanist piano\"],[\"IELTS Exam Preparation\",\"Individual / Group\",\"ielts english exam test university preparation prep 10 individual lessons music students 730\"],[\"Jazz Vocal Workshop\",\"Group\",\"singing voice jazz vocals\"],[\"Sax Workshop\",\"Group\",\"saxophone\"],[\"Chamber Music\",\"Group\",\"quartet trio ensemble strings piano violin viola cello flute clarinet\"],[\"Opera Workshop\",\"Group\",\"singing voice opera classical\"],[\"Focused Language Groups\",\"Group\",\"english french spanish languages group lessons\"]];// Filler words people type in questions – ignored when matching\nconst STOP=new Set(\"a an and are at be can could do does for from get go have how i in is it its me my of on or should the there to was we what whats where which who why will with would you your about any much many need want our us\".split(\" \"));function fold(s){return(s||\"\").toLowerCase().normalize(\"NFD\").replace(/[̀-ͯ]/g,\"\").replace(/[’']/g,\"\");}// small typo tolerance: 1 edit for words of 5+ letters, 2 edits for 9+\nfunction near(a,b){if(a===b)return true;const max=a.length>=9?2:a.length>=5?1:0;if(!max||Math.abs(a.length-b.length)>max)return false;let prev=Array.from({length:b.length+1},(_,j)=>j);for(let i=1;i<=a.length;i++){const cur=[i];let best=i;for(let j=1;j<=b.length;j++){cur[j]=Math.min(prev[j]+1,cur[j-1]+1,prev[j-1]+(a[i-1]===b[j-1]?0:1));if(cur[j]<best)best=cur[j];}if(best>max)return false;prev=cur;}return prev[b.length]<=max;}// does query word w match a word in the haystack word list (exact, prefix, or near-miss)?\nfunction hit(w,hayWords){return hayWords.some(h=>h===w||w.length>=3&&h.startsWith(w)||near(w,h));}const BASE=[...PAGES,...TUTORS.map(([n,s,slug])=>({type:\"Tutor\",title:n,link:`/tutors/${slug}`,text:s})),...MODULES.map(([n,t,k])=>({type:\"Module\",title:n,link:\"/modules\",text:`${t} module ${k}`,note:`${t} module`}))];const splitWords=s=>fold(s).split(/[^a-z0-9&]+/).filter(Boolean);export function search(q){const query=fold(q).trim().replace(/\\s+/g,\" \");const allWords=query.split(/[^a-z0-9&-]+/).filter(Boolean);const useWords=allWords.filter(w=>!STOP.has(w));const top=[];const extra=[];// shortcuts (\"prices\" → Fees, \"how do I sign up\" → Register); phrases can include filler words\nSHORTCUTS.forEach(s=>{const match=s.words.some(w=>{if(w.includes(\" \"))return(\" \"+query+\" \").includes(\" \"+w+\" \");return useWords.some(u=>u===w||u.length>=4&&w.startsWith(u)||near(u,w));});if(match&&!top.find(t=>t.link===s.link))top.push({type:\"Go to\",title:s.title,link:s.link,note:s.note});});if(!useWords.length)return{top:top.slice(0,3),groups:[]};// instruments (\"violin\" → where it's taught, tutors, concerts, modules)\nconst inst=INSTRUMENTS.find(([ws])=>ws.some(w=>w.includes(\" \")?(\" \"+query+\" \").includes(\" \"+w+\" \"):useWords.some(u=>u===w||u.length>=4&&w.startsWith(u)||near(u,w))));let instWords=[];if(inst){const[ws,name,concert]=inst;instWords=ws.filter(w=>!w.includes(\" \"));if(!instWords.length)instWords=ws.flatMap(w=>w.split(\" \")).filter(w=>w.length>3);top.push({type:\"Course\",title:`${name} at Giggleswick 2027`,link:UK,note:`${name} is taught on the UK course. See dates, modules and how to book`});if(concert)extra.push({type:\"Concerts\",title:`${name} performances`,link:`/concerts?instrument=${encodeURIComponent(concert)}`,note:\"Watch concert recordings\"});}const scored=BASE.map(e=>{const titleWords=splitWords(e.title);const hayWords=[...titleWords,...splitWords(e.text||\"\"),...splitWords(e.type)];const instHit=instWords.length>0&&instWords.some(w=>hayWords.includes(w));const matched=useWords.filter(w=>hit(w,hayWords));// most words must match (lets one stray word through on longer queries)\nconst needed=useWords.length<=2?useWords.length:useWords.length-1;if(!instHit&&matched.length<needed)return null;let score=0;matched.forEach(w=>{if(titleWords.some(t=>t===w))score+=6;else if(titleWords.some(t=>t.startsWith(w)||near(w,t)))score+=4;else score+=1;});if(instHit)score+=e.type===\"Tutor\"?8:4;return{e,score};}).filter(Boolean);scored.sort((a,b)=>b.score-a.score);const by=t=>scored.filter(s=>s.e.type===t).map(s=>s.e);const groups=[{name:\"Tutors\",items:by(\"Tutor\").slice(0,8)},{name:\"Concerts\",items:extra},{name:\"Modules\",items:by(\"Module\").slice(0,4)},{name:\"Pages\",items:by(\"Page\").filter(p=>!top.find(t=>t.link===p.link)).slice(0,6)}].filter(g=>g.items.length);return{top:top.slice(0,3),groups};}const SUGGESTIONS=[\"Fees\",\"Register\",\"Dates\",\"Violin\",\"Piano\",\"Singing\",\"Scholarships\",\"Parents\"];const FOCUSABLE='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';export function SearchIcon({color}){return /*#__PURE__*/_jsxs(\"svg\",{width:\"19\",height:\"19\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:color,strokeWidth:\"1.6\",strokeLinecap:\"round\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"10.5\",cy:\"10.5\",r:\"6.5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M15.5 15.5L20 20\"})]});}export const SEARCH_CSS=`\n@keyframes lmflFade{from{opacity:0}to{opacity:1}}\n@keyframes lmflDrop{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}\n.lmfl-result{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-radius:12px;text-decoration:none;color:${INK};transition:background .15s ease;}\n.lmfl-result[data-sel=\"true\"],.lmfl-result:hover{background:rgba(22,20,19,.06);}\n.lmfl-result-top{background:rgba(22,20,19,.04);}\n.lmfl-chipq{all:unset;cursor:pointer;font-family:${FAMILY};font-size:16px;padding:7px 14px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(22,20,19,.16);transition:box-shadow .2s ease;}\n.lmfl-chipq:hover{box-shadow:inset 0 0 0 1px rgba(22,20,19,.45);}\n.lmfl-chipq:focus-visible{box-shadow:inset 0 0 0 2px ${INK};}\n`;export function SearchOverlay({onClose}){const[q,setQ]=React.useState(\"\");const[sel,setSel]=React.useState(0);const inputRef=React.useRef(null);const panelRef=React.useRef(null);const res=search(q);const flat=[...res.top,...res.groups.flatMap(g=>g.items)];React.useEffect(()=>{// remember what opened search, so focus can go back there when it closes\nconst opener=document.activeElement;if(inputRef.current)inputRef.current.focus({preventScroll:true});const t=setTimeout(()=>inputRef.current&&inputRef.current.focus({preventScroll:true}),30);const prev=document.body.style.overflow;document.body.style.overflow=\"hidden\";return()=>{clearTimeout(t);document.body.style.overflow=prev;try{if(opener&&typeof opener.focus===\"function\"&&document.contains(opener))opener.focus({preventScroll:true});}catch(e){}};},[]);const go=e=>{if(e&&typeof window!==\"undefined\")window.location.href=e.link;};// keep Tab / Shift+Tab inside the search panel\nconst trap=ev=>{const box=panelRef.current;if(ev.key!==\"Tab\"||!box)return;const items=Array.from(box.querySelectorAll(FOCUSABLE));if(!items.length)return;const first=items[0];const last=items[items.length-1];const a=document.activeElement;if(ev.shiftKey&&(a===first||!box.contains(a))){ev.preventDefault();last.focus();}else if(!ev.shiftKey&&(a===last||!box.contains(a))){ev.preventDefault();first.focus();}};let idx=-1;const row=(r,top=false)=>{idx++;const i=idx;return /*#__PURE__*/_jsxs(\"a\",{className:`lmfl-result${top?\" lmfl-result-top\":\"\"}`,\"data-sel\":i===sel?\"true\":\"false\",href:r.link,onMouseEnter:()=>React.startTransition(()=>setSel(i)),children:[/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",flexDirection:\"column\",gap:2,minWidth:0},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:top?20:18},children:r.title}),r.note||r.type===\"Tutor\"&&r.text?/*#__PURE__*/_jsx(\"span\",{style:{fontSize:14,color:MUTED},children:r.note||r.text}):null]}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:top?18:11,letterSpacing:top?0:\"0.14em\",textTransform:top?\"none\":\"uppercase\",color:MUTED,whiteSpace:\"nowrap\"},children:top?\"→\":r.type})]},r.type+r.title+r.link);};return /*#__PURE__*/_jsxs(\"div\",{role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Search\",onClick:onClose,onKeyDown:ev=>{if(ev.key===\"Escape\"){ev.preventDefault();onClose();return;}trap(ev);if(ev.key===\"ArrowDown\"){ev.preventDefault();React.startTransition(()=>setSel(s=>Math.min(s+1,Math.max(0,flat.length-1))));}if(ev.key===\"ArrowUp\"){ev.preventDefault();React.startTransition(()=>setSel(s=>Math.max(0,s-1)));}if(ev.key===\"Enter\"&&ev.target===inputRef.current)go(flat[sel]);},style:{position:\"fixed\",inset:0,zIndex:2147483e3,background:\"rgba(16,12,10,0.45)\",backdropFilter:\"blur(6px)\",WebkitBackdropFilter:\"blur(6px)\",animation:\"lmflFade .25s ease\",display:\"flex\",justifyContent:\"center\",alignItems:\"flex-start\",padding:\"10vh 16px 16px\"},children:[/*#__PURE__*/_jsx(\"style\",{children:SEARCH_CSS}),/*#__PURE__*/_jsxs(\"div\",{ref:panelRef,onClick:e=>e.stopPropagation(),style:{width:\"min(680px, 100%)\",background:\"#fff\",borderRadius:20,boxShadow:\"0 30px 80px rgba(16,12,10,0.3)\",overflow:\"hidden\",animation:\"lmflDrop .35s cubic-bezier(.2,.7,.2,1)\",fontFamily:FAMILY,color:INK},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:12,padding:\"18px 22px\",borderBottom:\"1px solid rgba(22,20,19,0.1)\"},children:[/*#__PURE__*/_jsx(SearchIcon,{color:INK}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,value:q,onChange:e=>{const v=e.target.value;React.startTransition(()=>{setQ(v);setSel(0);});},placeholder:\"Search instruments, tutors, fees, dates…\",\"aria-label\":\"Search the site\",style:{flex:1,minWidth:0,border:\"none\",outline:\"none\",fontFamily:FAMILY,fontSize:22,color:INK,background:\"transparent\"}}),/*#__PURE__*/_jsx(\"button\",{\"aria-label\":\"Close search\",onClick:onClose,style:{background:\"none\",border:\"none\",cursor:\"pointer\",fontFamily:FAMILY,fontSize:13,letterSpacing:\"0.1em\",color:MUTED,padding:8},children:\"ESC\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{maxHeight:\"60vh\",overflowY:\"auto\",padding:8},children:!q?/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"14px 16px 18px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:12,letterSpacing:\"0.14em\",textTransform:\"uppercase\",color:MUTED,marginBottom:12},children:\"Popular\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8},children:SUGGESTIONS.map(s=>/*#__PURE__*/_jsx(\"button\",{className:\"lmfl-chipq\",onClick:()=>React.startTransition(()=>setQ(s)),children:s},s))})]}):flat.length?/*#__PURE__*/_jsxs(_Fragment,{children:[res.top.length?/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4,paddingBottom:6},children:res.top.map(r=>row(r,true))}):null,res.groups.map(g=>/*#__PURE__*/_jsxs(\"div\",{style:{paddingTop:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:11,letterSpacing:\"0.16em\",textTransform:\"uppercase\",color:MUTED,padding:\"6px 16px\"},children:g.name}),g.items.map(r=>row(r))]},g.name))]}):/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"22px 16px\",fontSize:17,color:MUTED},children:[\"No results for “\",q,\"”. Try another word, or\",\" \",/*#__PURE__*/_jsx(\"a\",{href:\"/contact\",style:{color:INK},children:\"contact us\"}),\".\"]})})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"TUTORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"search\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PAGES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchOverlay\":{\"type\":\"reactComponent\",\"name\":\"SearchOverlay\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"SEARCH_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchIcon\":{\"type\":\"reactComponent\",\"name\":\"SearchIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Entry\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MODULES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Results\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LMFLSearch.map","// Page titles and descriptions (what shows in browser tabs and Google results).\n// Used by the LMFL Site Header. This is a stand-in until each page's own title/description is filled in\n// under Framer › Page Settings: as soon as a page has its own title there, that one wins.\n// Also fills in missing photo descriptions (alt text) automatically, so nobody has to type them:\n// a photo with no alt text gets the nearest card heading (e.g. a tutor's name or a module title),\n// or else the page heading, e.g. \"Locations – LMFL summer course\".\n// Tutor photos (24 Oct 2026): on /tutors, the tutor pages and the home tutor cards, a tutor photo with no alt text\n// gets \"[Name], [subject] tutor\", e.g. \"Le Yu, Percussion tutor\" (subjects from the list in LMFLSearch.tsx).\n// The home \"World-class tutors\" mosaic's generic \"LMFL tutor\" is replaced the same way.\n// 404 page (24 Oct 2026): the title becomes \"Page not found | LMFL\" with a short description.\n// Photos that are deliberately silent (inside aria-hidden blocks, or marked role=\"presentation\") are left alone.\n// Alt text typed into Framer or the CMS always wins.\n// (If you edit this file, re-save LMFLSiteHeader.tsx too so the header picks up the new version.)\nimport{useEffect}from\"react\";import{TUTORS}from\"https://framerusercontent.com/modules/M2RFAm7PdtGfFBEIbHxC/TD6CT0Zf8F6tUTCf2DnJ/LMFLSearch.js\";const SITE=\"LMFL – Language and Music for Life\";const NOT_FOUND_TITLE=\"Page not found | LMFL\";const NOT_FOUND_DESC=\"Sorry, we couldn’t find that page. Explore LMFL’s music and language summer courses, or get in touch at info@lmfl.org.\";export const PAGE_META={\"/\":[\"LMFL – Music & Language Summer Courses in the UK and Europe\",\"Residential summer courses in music and languages since 1997. Two weeks of individual tuition, ensembles and concerts at Giggleswick School in the Yorkshire Dales, plus courses in Europe.\"],\"/about-lmfl\":[\"About LMFL\",\"LMFL has run international summer courses in music and languages since 1997. Find out how our courses work.\"],\"/management\":[\"Management\",\"Meet the LMFL management and course staff: the team who run LMFL and look after every student on our summer courses.\"],\"/our-courses\":[\"Our Courses\",\"How LMFL courses work: core modules, optional individual and group modules, concerts, a day off excursion and life on a residential summer course.\"],\"/our-vision\":[\"Our Vision\",\"Why we run LMFL: high-quality music and language tuition for every student, in a supportive international community.\"],\"/modules\":[\"All Modules\",\"Individual music tuition, Classical Ensemble, Jazz Ensemble, Session Orchestra, choir, musicianship, composition, conducting, languages, IELTS and more. See every LMFL module.\"],\"/tutors\":[\"Tutors\",\"Meet our tutors: accomplished musicians and native-speaking language teachers, many of whom return to LMFL summer after summer.\"],\"/giggleswick\":[\"Giggleswick 2027 – UK Summer Course\",\"LMFL's two-week residential summer course in music and languages at Giggleswick School, Yorkshire Dales, 7–21 July 2027.\"],\"/giggleswick/fees\":[\"Fees & Booking – Giggleswick 2027\",\"Course fees, packages, add-ons and how to book your place on LMFL's Giggleswick 2027 summer course.\"],\"/giggleswick/register\":[\"Register – Giggleswick 2027\",\"Register for LMFL's Giggleswick 2027 summer course in music and languages, 7–21 July 2027. Takes about 10 minutes.\"],\"/giggleswick/parents\":[\"For Parents – Giggleswick 2027\",\"Care, supervision, safeguarding, arrival and practical details for parents of students on LMFL's Giggleswick 2027 summer course.\"],\"/brochure\":[\"2027 Brochure\",\"Read or download the LMFL 2027 brochure: courses, tutors, Giggleswick and fees.\"],\"/scholarships\":[\"Scholarships\",\"Financial support for talented students on LMFL summer courses: who can apply and how.\"],\"/europe\":[\"Europe 2027\",\"LMFL summer courses in Europe for 2027.\"],\"/faqs\":[\"FAQs\",\"Answers to common questions about LMFL courses: ages, levels, accommodation, travel, practice, concerts and more.\"],\"/student-reviews\":[\"Student Reviews\",\"What students say about their summers at LMFL.\"],\"/parent-reviews\":[\"Parent Reviews\",\"What parents say about sending their children to LMFL.\"],\"/meet-the-students\":[\"Meet the Students\",\"Meet some of the students who come to LMFL from around the world.\"],\"/where-are-they-now\":[\"Where Are They Now?\",\"Since 1997, LMFL students have gone on to conservatoires, orchestras, universities and careers around the world. Share your story.\"],\"/concerts\":[\"Concert Recordings\",\"Watch performances from LMFL student, junior and faculty concerts, filterable by instrument and venue.\"],\"/locations\":[\"Locations Gallery\",\"Photos from LMFL course locations past and present, from the Yorkshire Dales to Florence and Venice.\"],\"/contact\":[\"Contact Us\",\"Get in touch with LMFL with questions about courses, booking or anything else: info@lmfl.org.\"],\"/social-media\":[\"Social Media\",\"Follow LMFL on Instagram, Facebook, YouTube and TikTok.\"],\"/privacy-policy\":[\"Cookies & Privacy Policy\",\"How LMFL collects, uses and protects your personal data.\"],\"/equity-diversity-inclusion-policy\":[\"Equity, Diversity & Inclusion Policy\",\"LMFL's commitment to equity, diversity and inclusion.\"],\"/terms-and-conditions\":[\"Terms & Conditions\",\"Applications, deposits, payment deadlines and cancellations for LMFL courses.\"]};function setMeta(attr,key,value){let m=document.head.querySelector(`meta[${attr}=\"${key}\"]`);if(!m){m=document.createElement(\"meta\");m.setAttribute(attr,key);document.head.appendChild(m);}m.setAttribute(\"content\",value);}// Framer's 404 page: the path isn't one of ours and the page says \"not found\" / \"404\"\nfunction isNotFound(path){if(PAGE_META[path]||/^\\/tutors\\/[^/]+$/.test(path))return false;if(/\\/404\\/?$/.test(path))return true;const t=(document.title||\"\").toLowerCase();if(/\\b404\\b|not found/.test(t))return true;const h=document.querySelector(\"h1\");const ht=clean(h&&h.textContent||\"\").toLowerCase();return/\\b404\\b|not found|can.t find|couldn.t find/.test(ht);}export function applyPageMeta(){if(typeof document===\"undefined\")return;const path=(window.location.pathname.replace(/\\/+$/,\"\")||\"/\").toLowerCase();if(isNotFound(path)){if(document.title!==NOT_FOUND_TITLE)document.title=NOT_FOUND_TITLE;setMeta(\"name\",\"description\",NOT_FOUND_DESC);setMeta(\"property\",\"og:title\",NOT_FOUND_TITLE);setMeta(\"property\",\"og:description\",NOT_FOUND_DESC);setMeta(\"name\",\"robots\",\"noindex\");return;}const generic=!document.title||/my framer site/i.test(document.title);let entry=PAGE_META[path];if(!entry){// tutor pages: use the tutor's name from the page heading\nconst m=path.match(/^\\/tutors\\/(.+)/);const h1=document.querySelector(\"h1\");if(m&&h1&&h1.textContent)entry=[`${h1.textContent.trim()} – LMFL Tutor`,`${h1.textContent.trim()} teaches on LMFL summer courses. Read their biography and see their photos.`];}if(!entry||!generic)return;const[title,desc]=entry;const full=path===\"/\"?title:`${title} | ${SITE}`;document.title=full;const d=document.head.querySelector('meta[name=\"description\"]');if(!d||/made with framer/i.test(d.getAttribute(\"content\")||\"\")){setMeta(\"name\",\"description\",desc);setMeta(\"property\",\"og:description\",desc);}setMeta(\"property\",\"og:title\",full);}// ---- Automatic photo descriptions ----\nconst clean=s=>(s||\"\").replace(/\\s+/g,\" \").trim();// section headings that don't describe a photo\nconst GENERIC=/^(about|biography|videos?|photos?|gallery|more|overview|details|read more|watch|listen)$/i;// alt text written by the site itself that should be replaced by a proper description\nconst GENERIC_ALT=/^(lmfl tutor|tutor|image|photo)$/i;// Tutors by name (lower case) and by page address\nconst fold=s=>clean(s).toLowerCase().normalize(\"NFD\").replace(/[̀-ͯ]/g,\"\");const TUTOR_BY_NAME={};const TUTOR_BY_SLUG={};TUTORS.forEach(([name,subject,slug])=>{TUTOR_BY_NAME[fold(name)]=[name,subject];TUTOR_BY_SLUG[slug]=[name,subject];});const tutorAlt=t=>`${t[0]}, ${t[1]} tutor`;// a tutor photo: the nearest link to /tutors/<slug>, or a card heading that is a tutor's name\nfunction tutorNear(img){const a=img.closest('a[href*=\"/tutors/\"]');if(a){const m=(a.getAttribute(\"href\")||\"\").match(/\\/tutors\\/([^/?#]+)/);if(m&&TUTOR_BY_SLUG[decodeURIComponent(m[1])])return TUTOR_BY_SLUG[decodeURIComponent(m[1])];}let el=img.parentElement;for(let i=0;i<7&&el&&el!==document.body;i++){const hs=el.querySelectorAll(\"h1,h2,h3,h4,[data-framer-component-type='RichTextContainer']\");if(hs.length>4)break;for(const h of Array.from(hs)){const t=TUTOR_BY_NAME[fold(h.textContent||\"\")];if(t)return t;}el=el.parentElement;}return null;}// the home mosaic portraits are matched by photo file (see LMFLTutorMosaic.tsx)\nconst MOSAIC_FILES={\"8YruaSjXAUvPCapXcpTLXsix304\":\"Paul Goodey-Avedisyan\",\"DUO2WYygGGbkuxHQYj4rWCU00zc\":\"Madeleine Mitchell\",\"dsg5vjbpzillA2wmMwtoJeMIiM\":\"Gerard McChrystal\",\"nE7KcOt8eZHkL6oOaKQ904XMBT0\":\"Hazel Ross\",\"GvkU6qztQ2CdLXFJLjnwdFfbgIU\":\"Mikhail Kazakevich\",\"8qO28F3ku6cRyzBrqMXHY0pr4g\":\"Robert Short\",\"NANhWbyIWRKOZ6rLQioqGEuChM\":\"William Godfree\",\"pyOpx3Y90aIaBo1auGNplf9jxdk\":\"Maria Luigia Borsi\",\"2tkQWeOeAHDY2stOGhfulOlzB6s\":\"Catherine Milledge\",\"lONy9Z0kCMlvwXOVRDPKXUph9GU\":\"Dawn Bellino\",\"hD1geFjyfGwMtkRmUscaKdj434\":\"Boris Bizjak\",\"isylyt4V70XHic3kqETt23MAgQ\":\"Martin Mexme\",\"wyfyEWz16wmcumUESW18qrxtPI\":\"Věra M\\xfcllerov\\xe1\",\"fOrcxd2Yu1RKWvpfJvbqQchwlY4\":\"Bernadette Mercier\",\"ZQiCzwlzRDJIzy2Qb6pLUNAT9dc\":\"Heather Gordon-Redfearn\",\"tbol7CDhQZqAgsxwwVNUwGcZ3kE\":\"Letizia Morelli\"};function tutorByFile(img){const src=img.getAttribute(\"src\")||\"\";const m=src.match(/images\\/([^./?]+)\\./);const name=m?MOSAIC_FILES[m[1]]:\"\";return name?TUTOR_BY_NAME[fold(name)]||null:null;}function headingNear(img){// walk up a few levels looking for a small card that has its own heading\nlet el=img.parentElement;for(let i=0;i<7&&el&&el!==document.body;i++){const h=el.querySelector(\"h2,h3,h4\");if(h){const t=clean(h.textContent||\"\");// only use it if the container is card-sized (not a whole section of many cards)\nif(t&&t.length<=70&&!GENERIC.test(t)&&el.querySelectorAll(\"h2,h3,h4\").length<=2)return t;return\"\";}el=el.parentElement;}return\"\";}function pageLabel(){const path=(window.location.pathname.replace(/\\/+$/,\"\")||\"/\").toLowerCase();const first=document.querySelector(\"h1\");const h1=clean(first&&first.textContent||\"\");if(path.startsWith(\"/tutors/\")&&h1)return`${h1} – LMFL tutor`;if(path.startsWith(\"/giggleswick\"))return\"Giggleswick School – LMFL summer course\";if(path===\"/\"||!h1||h1===\"LMFL\")return\"LMFL summer course\";return`${h1} – LMFL summer course`;}export function applyAutoAlt(){if(typeof document===\"undefined\")return;const path=window.location.pathname.toLowerCase();const slugMatch=path.match(/^\\/tutors\\/([^/]+)/);const pageTutor=slugMatch?TUTOR_BY_SLUG[decodeURIComponent(slugMatch[1])]||null:null;const tutorPage=!!slugMatch;const tutorsArea=path.startsWith(\"/tutors\");const home=path===\"/\"||path===\"\";const imgs=Array.from(document.querySelectorAll(\"img\"));let fallback=\"\";imgs.forEach(img=>{const alt=img.getAttribute(\"alt\");const auto=img.dataset.lmflAlt===\"1\";const generic=!!alt&&GENERIC_ALT.test(alt.trim());if(auto&&!generic)return;// a typed alt always wins (only empty or the site's own generic \"LMFL tutor\" is replaced)\nif(alt&&alt.trim()&&!generic)return;// the mosaic's hidden cross-fade layer is deliberately silent\nif(alt===\"\"&&img.closest('[aria-hidden=\"true\"]'))return;if(img.getAttribute(\"role\")===\"presentation\"||img.closest('[aria-hidden=\"true\"]')&&!generic)return;const r=img.getBoundingClientRect();if(r.width&&r.width<40&&r.height<40)return;// icons\nlet text=\"\";if(tutorsArea||home||generic){const t=tutorPage&&pageTutor||tutorNear(img)||tutorByFile(img);if(t)text=tutorAlt(t);}if(!text&&generic)return;// leave a generic alt rather than guess\nif(!text){// on a tutor's own page every photo is of that tutor\ntext=tutorPage?\"\":headingNear(img);if(text){if(tutorsArea)text=`${text} – LMFL tutor`;}else{if(!fallback)fallback=pageLabel();text=fallback;}}img.setAttribute(\"alt\",text);img.dataset.lmflAlt=\"1\";});}export function usePageMeta(){useEffect(()=>{if(typeof window===\"undefined\")return;if(/(^|\\.)framer\\.com$/.test(window.location.hostname))return;applyPageMeta();applyAutoAlt();const t=setTimeout(()=>{applyPageMeta();applyAutoAlt();},800);// photos added later (galleries, CMS lists, slideshows) get described too\nlet pending=null;const mo=typeof MutationObserver!==\"undefined\"?new MutationObserver(()=>{if(pending)return;pending=setTimeout(()=>{pending=null;try{applyAutoAlt();}catch(e){}},400);}):null;if(mo)mo.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:[\"src\"]});return()=>{clearTimeout(t);if(pending)clearTimeout(pending);if(mo)mo.disconnect();};},[]);}\nexport const __FramerMetadata__ = {\"exports\":{\"applyAutoAlt\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"applyPageMeta\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PAGE_META\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePageMeta\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LMFLPageMeta.map","// Photo focus points: which part of a photo stays in view when it is cropped to fit its box\n// (e.g. so faces aren't cut off). Used site-wide by the LMFL Site Header.\n// Each line is: the photo's file name (the code after framerusercontent.com/images/) → \"across down\"\n//   across: 0% = keep the left edge, 50% = centre, 100% = keep the right edge\n//   down:   0% = keep the top,       50% = centre, 100% = keep the bottom\n// Applies wherever that photo appears (normal image layers, CMS lists, components).\n// A focus point you set yourself in Framer (on an image layer, or on a CMS image) always wins over this list.\n// (After editing this file, re-save LMFLSiteHeader.tsx so the header picks up the new version.)\nimport{useEffect}from\"react\";export const PHOTO_FOCUS={// About LMFL – \"The student–teacher connection\" (keep both people)\nijePDIpYIvsEbhYCx1AFQmDocbE:\"80% 50%\",// Our Courses – tutor & student photos\neltP8noaixec65fahn5mE6hyc4:\"35% 50%\",OXUs6KBeB6HfnyG05lCEcf8g:\"62% 50%\",// Modules – Composition and Focused Language Groups cards\n\"5EpHHD1qa7hJXL9bsWKwKa7Yg\":\"62% 50%\",mKjopOr2y32vrXrkU2PoxqnXgo:\"60% 50%\",// Our Vision – violinist\nZF6MZ2PsG6bKHTKnIM2HaGXzR0s:\"25% 50%\",// Social Media – portrait video stills (keep faces)\nQ9dbjZvPtg2jPNGYXHvg12KbCvY:\"50% 30%\",Ud6CQRyEBigGaYBkbTi7ioE2SA:\"50% 30%\",// Tutors page banner (keep the violinist in view)\nbdzT1AmFO8398I3eLOqtwBH30w:\"85% 50%\",// Robert Short – face is off-centre in his photos\n\"8qO28F3ku6cRyzBrqMXHY0pr4g\":\"70% 15%\",XmOqyzB63v5AGqXCpnOx58mw4y8:\"45% 15%\",// Rebecca Hayward – classroom photo\nLMoEb0h4KjSAxQflsYjelUxsh8U:\"60% 45%\"};const KEYS=Object.keys(PHOTO_FOCUS);const MARK=\"data-lmfl-focus\";export function fileId(src){const m=(src||\"\").match(/images\\/([A-Za-z0-9_-]+)\\./);return m?m[1]:\"\";}// true when Framer (or a component) has already given this image its own focus point\nfunction hasOwnFocus(img){if(img.hasAttribute(MARK))return false;if(img.closest(\".lmtp-hero-bg, .lmtp-g, .lmtp-lb\"))return true;const v=(img.style.getPropertyValue(\"object-position\")||\"\").trim();return!!v&&v!==\"center\"&&v!==\"center center\"&&v!==\"50% 50%\";}export function applyPhotoFocus(doc){if(!KEYS.length)return;doc.querySelectorAll(\"img\").forEach(n=>{const img=n;const id=fileId(img.currentSrc||img.src||img.getAttribute(\"src\")||\"\");const pos=id&&PHOTO_FOCUS[id];if(!pos||hasOwnFocus(img))return;if(img.style.getPropertyValue(\"object-position\")!==pos){img.setAttribute(MARK,\"1\");img.style.setProperty(\"object-position\",pos,\"important\");}});// photos used as CSS backgrounds (e.g. popups)\ndoc.querySelectorAll(\"[style*='framerusercontent.com/images/']\").forEach(el=>{const id=fileId(el.style.backgroundImage);const pos=id&&PHOTO_FOCUS[id];if(pos&&el.style.backgroundPosition!==pos)el.style.setProperty(\"background-position\",pos,\"important\");});}export function usePhotoFocus(){useEffect(()=>{if(typeof document===\"undefined\"||!KEYS.length)return;let t=null;const run=()=>{try{applyPhotoFocus(document);}catch(e){}};run();const mo=new MutationObserver(()=>{clearTimeout(t);t=setTimeout(run,150);});mo.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:[\"src\",\"srcset\"]});return()=>{clearTimeout(t);mo.disconnect();};},[]);}\nexport const __FramerMetadata__ = {\"exports\":{\"applyPhotoFocus\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PHOTO_FOCUS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fileId\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePhotoFocus\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LMFLPhotoFocus.map","// LMFL Site Header: logo, navigation with animated hover dropdowns, site search and a full-screen mobile menu.\n// One component used on every page. The menu is defined ONCE in NAV_ITEMS below, so editing it updates every page.\n// Search results (pages, tutors, instruments, shortcuts) are set up in LMFLSearch.tsx.\n// Page titles/descriptions for Google, and automatic photo descriptions (alt text), are set up in LMFLPageMeta.tsx.\n// Photo focus points (which part of a cropped photo stays in view) are set up in LMFLPhotoFocus.tsx.\n// \"White bar\" = solid header; \"Over image\" = transparent header with white text for placing over hero photos.\n// It also switches on the site-wide animations, button hovers, page transitions and the mobile layout from LMFLEnhance.tsx.\n// IMPORTANT – mobile: the pages only have a Desktop breakpoint, so Framer tells phones to render the site\n// 1200px wide (a zoomed-out desktop). This header switches phones back to their real screen width\n// so the mobile layout can take over. (A copy of the same fix in Site Settings › Custom Code makes it instant.)\n// The page always keeps room for the scrollbar, so popups that lock scrolling don't make the page jump sideways.\n// (\"Where Are They Now\" is hidden from the menu for now: add { label: \"Where Are They Now\", link: \"/where-are-they-now\", children: [] } after Reviews to bring it back.)\n// The \"Register\" button (top right) and the mobile menu's main button go to the registration page (BOOK_CTA).\n// On wide screens \"Home\" is left out of the bar (the logo goes home) to make room for the button. The full menu needs about 1140px; on anything narrower the header switches to the burger menu automatically.\n// Keyboard (24 Oct 2026): menu headings without their own page are buttons that open their dropdown (Enter/Space, Esc closes).\n// The mobile menu can't be reached with Tab while closed; when it opens, focus goes to its close button and stays inside\n// the menu, and when it closes focus goes back to the burger button.\n// (If you edit LMFLEnhance, LMFLSearch, LMFLPageMeta or LMFLPhotoFocus, re-save this file too so the header picks up the new version.) – rev 24 (24 Oct 2026: one-column grids on phones fit their content)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType}from\"framer\";import{ENHANCE_CSS,useSiteEnhancements}from\"https://framerusercontent.com/modules/WSMV4Va3eRTM1VNBCv4v/x3gizaqeGwW7oLwI6Qw2/LMFLEnhance.js\";import{SearchOverlay,SearchIcon}from\"https://framerusercontent.com/modules/M2RFAm7PdtGfFBEIbHxC/TD6CT0Zf8F6tUTCf2DnJ/LMFLSearch.js\";import{usePageMeta}from\"https://framerusercontent.com/modules/z1gL20L4zJFNjiGbsM7d/qZdTp0M8VQSxl3AASUtc/LMFLPageMeta.js\";import{usePhotoFocus}from\"https://framerusercontent.com/modules/uSqef41nTClMBGsYckrI/rHYbJ1mWnvjVlefVnQr4/LMFLPhotoFocus.js\";const FAMILY=\"'EB Garamond', Garamond, 'Times New Roman', serif\";const DEFAULT_LOGO=\"https://framerusercontent.com/images/42l11DxBVkdEjxaT8ncTjYO33Js.png\";const INK=\"#161413\";const FULL_MENU_MIN=1140// below this width the burger menu is used\n;const MENU_CLOSE_MS=560// length of the mobile menu's closing animation\n;const FOCUSABLE='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';// ---- Real-device width on phones ----\nconst VIEWPORT=\"width=device-width, initial-scale=1, viewport-fit=cover\";function fixViewport(){if(typeof document===\"undefined\"||typeof location===\"undefined\")return;if(/(^|\\.)framer\\.com$/.test(location.hostname))return;// leave the Framer editor alone\nlet m=document.querySelector('meta[name=\"viewport\"]');if(!m){m=document.createElement(\"meta\");m.setAttribute(\"name\",\"viewport\");document.head.appendChild(m);}if(m.getAttribute(\"content\")!==VIEWPORT)m.setAttribute(\"content\",VIEWPORT);}try{fixViewport()// as early as possible, when this file loads\n;}catch(e){}// ---- Edit the site menu here ----\nconst NAV_ITEMS=[{label:\"Home\",link:\"/\",children:[]},{label:\"About\",link:\"\",children:[{label:\"About LMFL\",link:\"/about-lmfl\"},{label:\"Our Courses\",link:\"/our-courses\"},{label:\"All Modules\",link:\"/modules\"},{label:\"Management\",link:\"/management\"},{label:\"Our Vision\",link:\"/our-vision\"}]},{label:\"Tutors\",link:\"/tutors\",children:[]},{label:\"UK 2027\",link:\"\",children:[{label:\"Course Details\",link:\"/giggleswick\"},{label:\"Fees & Booking\",link:\"/giggleswick/fees\"},{label:\"For Parents\",link:\"/giggleswick/parents\"},{label:\"Register Online\",link:\"/giggleswick/register\"},{label:\"Scholarships\",link:\"/scholarships\"},{label:\"Terms & Conditions\",link:\"/terms-and-conditions\"},{label:\"FAQs\",link:\"/faqs\"}]},{label:\"Europe 2027\",link:\"/europe\",children:[]},{label:\"Media\",link:\"\",children:[{label:\"Concert Recordings\",link:\"/concerts\"},{label:\"Locations Gallery\",link:\"/locations\"}]},{label:\"Reviews\",link:\"\",children:[{label:\"Meet the Students\",link:\"/meet-the-students\"},{label:\"Student Reviews\",link:\"/student-reviews\"},{label:\"Parent Reviews\",link:\"/parent-reviews\"}]},{label:\"Contact\",link:\"\",children:[{label:\"Contact Us\",link:\"/contact\"},{label:\"Social Media\",link:\"/social-media\"},{label:\"All FAQs\",link:\"/faqs\"}]}];// Primary call to action shown in the mobile menu\nconst BOOK_CTA={label:\"Register\",link:\"/giggleswick/register\"};const MOBILE_CTA={label:\"Book your place\",link:\"/giggleswick/register\"};const MOBILE_SECONDARY={label:\"Contact us\",link:\"/contact\"};const EMAIL=\"info@lmfl.org\";function normalise(p){return(p||\"\").replace(/\\/+$/,\"\")||\"/\";}const CSS=`\nhtml{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable;}\n.lmfl-nav-link{position:relative;display:inline-flex;align-items:center;gap:6px;text-decoration:none;white-space:nowrap;cursor:pointer;padding:6px 0;}\nbutton.lmfl-nav-link{background:none;border:none;margin:0;-webkit-appearance:none;appearance:none;}\n.lmfl-nav-link:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:2px;}\n.lmfl-nav-link::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.44,0,.2,1);}\n.lmfl-nav-item:hover .lmfl-nav-link::after,.lmfl-nav-link[data-active=\"true\"]::after{transform:scaleX(1);}\n.lmfl-chev{display:inline-block;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s ease;opacity:.7;}\n.lmfl-nav-item:hover .lmfl-chev,.lmfl-nav-item[data-open=\"true\"] .lmfl-chev{transform:translateY(1px) rotate(225deg);}\n.lmfl-drop{position:absolute;top:100%;left:-18px;padding-top:12px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .25s ease,transform .3s cubic-bezier(.44,0,.2,1),visibility 0s linear .3s;z-index:30;}\n.lmfl-nav-item:hover .lmfl-drop,.lmfl-nav-item:focus-within .lmfl-drop,.lmfl-nav-item[data-open=\"true\"] .lmfl-drop{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s;}\n.lmfl-nav-item[data-open=\"false\"]:not(:hover) .lmfl-drop{opacity:0;visibility:hidden;transform:translateY(6px);}\n.lmfl-nav-item:last-child .lmfl-drop{left:auto;right:-18px;}\n.lmfl-drop-panel{min-width:220px;padding:10px;border-radius:14px;box-shadow:0 18px 40px rgba(16,12,10,.14),0 2px 6px rgba(16,12,10,.06);display:flex;flex-direction:column;}\n.lmfl-drop-link{display:block;padding:9px 12px;border-radius:8px;text-decoration:none;white-space:nowrap;transition:background .2s ease,padding-left .25s ease;}\n.lmfl-drop-link:hover,.lmfl-drop-link:focus-visible{background:rgba(22,20,19,.06);padding-left:16px;outline:none;}\n.lmfl-logo{display:block;transition:opacity .25s ease;}\n.lmfl-logo:hover{opacity:.75;}\n.lmfl-icon-btn{background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;border-radius:999px;transition:background .2s ease,transform .2s ease;}\n.lmfl-icon-btn:hover{background:rgba(127,127,127,.14);}\n.lmfl-book{display:inline-flex;align-items:center;padding:10px 20px;border-radius:999px;background:rgb(140,34,50);color:#fff;text-decoration:none;font-weight:700;white-space:nowrap;transition:opacity .25s ease,transform .25s ease;}\n.lmfl-book:hover{opacity:.88;transform:translateY(-1px);}\n.lmfl-burger{background:none;border:none;cursor:pointer;width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:999px;}\n.lmfl-burger span{display:block;width:24px;height:1.5px;background:currentColor;border-radius:2px;transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .2s ease;}\n`;const MENU_CSS=`\n.lmm{position:fixed;inset:0;z-index:2147482000;background:#FBF9F5;color:${INK};font-family:${FAMILY};display:flex;flex-direction:column;\n  clip-path:inset(0 0 100% 0);transition:clip-path .55s cubic-bezier(.7,0,.2,1);}\n.lmm[data-open=\"true\"]{clip-path:inset(0 0 0 0);}\n.lmm-top{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid rgba(22,20,19,.08);flex:none;}\n.lmm-close{background:none;border:none;cursor:pointer;width:44px;height:44px;position:relative;border-radius:999px;color:${INK};}\n.lmm-close span{position:absolute;left:10px;right:10px;top:21px;height:1.5px;background:currentColor;border-radius:2px;transition:transform .45s cubic-bezier(.2,.7,.2,1) .15s;}\n.lmm[data-open=\"true\"] .lmm-close span:first-child{transform:rotate(45deg);}\n.lmm[data-open=\"true\"] .lmm-close span:last-child{transform:rotate(-45deg);}\n.lmm-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 28px 28px;}\n.lmm-item{border-bottom:1px solid rgba(22,20,19,.08);opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1);}\n.lmm[data-open=\"true\"] .lmm-item{opacity:1;transform:none;}\n.lmm-row{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 0;font-size:28px;line-height:1.15;color:${INK};text-decoration:none;}\n.lmm-row:focus-visible,.lmm-sub a:focus-visible,.lmm-btn:focus-visible,.lmm-mail:focus-visible,.lmm-close:focus-visible{outline:2px solid ${INK};outline-offset:3px;}\n.lmm-row[data-active=\"true\"]{font-style:italic;}\n.lmm-plus{position:relative;width:16px;height:16px;flex:none;opacity:.7;}\n.lmm-plus:before,.lmm-plus:after{content:\"\";position:absolute;left:0;right:0;top:7.5px;height:1.2px;background:currentColor;transition:transform .4s cubic-bezier(.2,.7,.2,1);}\n.lmm-plus:after{transform:rotate(90deg);}\n.lmm-item[data-open=\"true\"] .lmm-plus:after{transform:rotate(0deg);}\n.lmm-sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.7,.2,1);}\n.lmm-item[data-open=\"true\"] .lmm-sub{grid-template-rows:1fr;}\n.lmm-sub-in{overflow:hidden;}\n.lmm-item[data-open=\"false\"] .lmm-sub-in{visibility:hidden;transition:visibility 0s linear .45s;}\n.lmm-sub a{display:block;padding:8px 0 8px 2px;font-size:20px;color:rgba(22,20,19,.78);text-decoration:none;opacity:0;transform:translateX(-6px);transition:opacity .35s ease,transform .4s cubic-bezier(.2,.7,.2,1),color .2s ease;}\n.lmm-sub a:last-child{margin-bottom:14px;}\n.lmm-item[data-open=\"true\"] .lmm-sub a{opacity:1;transform:none;}\n.lmm-sub a[data-active=\"true\"]{color:${INK};font-style:italic;}\n.lmm-foot{flex:none;padding:18px 28px calc(22px + env(safe-area-inset-bottom));border-top:1px solid rgba(22,20,19,.08);display:flex;flex-direction:column;gap:12px;opacity:0;transform:translateY(12px);transition:opacity .5s ease .35s,transform .6s cubic-bezier(.2,.7,.2,1) .35s;}\n.lmm[data-open=\"true\"] .lmm-foot{opacity:1;transform:none;}\n.lmm-btns{display:flex;gap:10px;}\n.lmm-btn{flex:1;text-align:center;padding:15px 18px;border-radius:999px;font-size:17px;font-weight:700;text-decoration:none;}\n.lmm-btn.primary{background:${INK};color:#fff;}\n.lmm-btn.secondary{box-shadow:inset 0 0 0 1px rgba(22,20,19,.25);color:${INK};}\n.lmm-mail{font-size:16px;color:rgba(22,20,19,.65);text-decoration:none;text-align:center;}\n@media (prefers-reduced-motion: reduce){.lmm,.lmm *{transition:none !important;}}\n`;function MobileMenu({open,onClose,logoEl,items,isActive,path,onSearch,returnFocusTo}){const[expanded,setExpanded]=React.useState(-1);const[mounted,setMounted]=React.useState(false);// stays true during the closing animation, then the menu is hidden completely (not reachable with Tab)\nconst[shown,setShown]=React.useState(false);const rootRef=React.useRef(null);const closeRef=React.useRef(null);const wasOpen=React.useRef(false);React.useEffect(()=>setMounted(true),[]);// closed menu: inert (nothing inside can be focused or clicked), and hidden once the animation ends\nReact.useEffect(()=>{let t=null;if(open)setShown(true);else t=setTimeout(()=>setShown(false),MENU_CLOSE_MS);const el=rootRef.current;if(el){if(open)el.removeAttribute(\"inert\");else el.setAttribute(\"inert\",\"\");}return()=>t&&clearTimeout(t);},[open,mounted]);React.useEffect(()=>{if(!open){// give focus back to the burger when the menu closes (not on first load)\nif(wasOpen.current){wasOpen.current=false;const back=returnFocusTo&&returnFocusTo.current;const active=document.activeElement;if(back&&(!active||active===document.body||rootRef.current&&rootRef.current.contains(active))){try{back.focus({preventScroll:true});}catch(e){}}}return;}wasOpen.current=true;// open the group that holds the current page\nconst idx=items.findIndex(it=>(it.children||[]).some(c=>c.link&&normalise(c.link)===path));setExpanded(idx);const prev=document.body.style.overflow;document.body.style.overflow=\"hidden\";const onKey=e=>{if(e.key===\"Escape\"){e.preventDefault();onClose();return;}const box=rootRef.current;if(e.key!==\"Tab\"||!box)return;const els=Array.from(box.querySelectorAll(FOCUSABLE)).filter(el=>el.offsetParent!==null&&!el.closest('.lmm-item[data-open=\"false\"] .lmm-sub'));if(!els.length)return;const first=els[0];const last=els[els.length-1];const a=document.activeElement;if(e.shiftKey&&(a===first||!box.contains(a))){e.preventDefault();last.focus();}else if(!e.shiftKey&&(a===last||!box.contains(a))){e.preventDefault();first.focus();}};window.addEventListener(\"keydown\",onKey);// focus the close button once the menu is visible\nconst t=setTimeout(()=>closeRef.current&&closeRef.current.focus({preventScroll:true}),30);return()=>{document.body.style.overflow=prev;window.removeEventListener(\"keydown\",onKey);clearTimeout(t);};},[open]);if(!mounted||typeof document===\"undefined\")return null;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"lmm\",\"data-open\":open?\"true\":\"false\",\"aria-hidden\":!open,role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Menu\",style:{visibility:open||shown?\"visible\":\"hidden\",pointerEvents:open?\"auto\":\"none\"},children:[/*#__PURE__*/_jsx(\"style\",{children:MENU_CSS}),/*#__PURE__*/_jsxs(\"div\",{className:\"lmm-top\",children:[/*#__PURE__*/_jsx(\"a\",{href:\"/\",\"aria-label\":\"LMFL home\",onClick:onClose,style:{display:\"flex\"},children:logoEl}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:4},children:[onSearch?/*#__PURE__*/_jsx(\"button\",{className:\"lmfl-icon-btn\",\"aria-label\":\"Search the site\",onClick:onSearch,children:/*#__PURE__*/_jsx(SearchIcon,{color:INK})}):null,/*#__PURE__*/_jsxs(\"button\",{ref:closeRef,className:\"lmm-close\",\"aria-label\":\"Close menu\",onClick:onClose,children:[/*#__PURE__*/_jsx(\"span\",{}),/*#__PURE__*/_jsx(\"span\",{})]})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"lmm-body\",children:items.map((item,i)=>{const hasKids=item.children&&item.children.length>0;const isOpen=expanded===i;const delay={transitionDelay:open?`${.12+i*.045}s`:\"0s\"};return /*#__PURE__*/_jsx(\"div\",{className:\"lmm-item\",\"data-open\":isOpen?\"true\":\"false\",style:delay,children:hasKids?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"button\",{className:\"lmm-row\",\"aria-expanded\":isOpen,onClick:()=>setExpanded(isOpen?-1:i),\"data-active\":isActive(item)?\"true\":\"false\",children:[/*#__PURE__*/_jsx(\"span\",{children:item.label}),/*#__PURE__*/_jsx(\"span\",{className:\"lmm-plus\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"lmm-sub\",children:/*#__PURE__*/_jsx(\"div\",{className:\"lmm-sub-in\",children:item.children.map((c,j)=>/*#__PURE__*/_jsx(\"a\",{href:c.link||undefined,onClick:onClose,\"data-active\":c.link&&normalise(c.link)===path?\"true\":\"false\",style:{transitionDelay:isOpen?`${.05+j*.04}s`:\"0s\"},children:c.label},j))})})]}):/*#__PURE__*/_jsx(\"a\",{className:\"lmm-row\",href:item.link,onClick:onClose,\"data-active\":isActive(item)?\"true\":\"false\",children:/*#__PURE__*/_jsx(\"span\",{children:item.label})})},i);})}),/*#__PURE__*/_jsxs(\"div\",{className:\"lmm-foot\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"lmm-btns\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"lmm-btn primary\",href:MOBILE_CTA.link,onClick:onClose,children:MOBILE_CTA.label}),/*#__PURE__*/_jsx(\"a\",{className:\"lmm-btn secondary\",href:MOBILE_SECONDARY.link,onClick:onClose,children:MOBILE_SECONDARY.label})]}),/*#__PURE__*/_jsx(\"a\",{className:\"lmm-mail\",href:`mailto:${EMAIL}`,children:EMAIL})]})]}),document.body);}const useIsoLayoutEffect=typeof window!==\"undefined\"?React.useLayoutEffect:React.useEffect;/**\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 72\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function LMFLSiteHeader(props){const{logo,logoLink=\"/\",logoSize=40,lightBackground=\"#FFFFFF\",darkTextColor=\"#FFFFFF\",dropdownBackground=\"#FFFFFF\",dropdownTextColor=\"#161413\",mobileBreakpoint=900,showSearch=true,style}=props;const gap=24;const lightTextColor=INK;const items=NAV_ITEMS;const theme=props.theme===\"dark\"||props.theme===\"overlay\"?\"dark\":\"light\";const burgerBelow=Math.max(mobileBreakpoint,FULL_MENU_MIN);// keep phones at their real width (Framer may re-write the tag when changing pages)\nuseIsoLayoutEffect(()=>{if(typeof document===\"undefined\")return;try{fixViewport();}catch(e){}const mo=new MutationObserver(()=>{try{fixViewport();}catch(e){}});mo.observe(document.head,{childList:true,subtree:true,attributes:true,attributeFilter:[\"content\"]});return()=>mo.disconnect();},[]);useSiteEnhancements();usePageMeta();usePhotoFocus();const rootRef=React.useRef(null);const burgerRef=React.useRef(null);const[menuOpen,setMenuOpen]=React.useState(false);const[searchOpen,setSearchOpen]=React.useState(false);const[narrow,setNarrow]=React.useState(false);const[path,setPath]=React.useState(\"\");// which desktop dropdown is open from the keyboard / a click (-1 = none, hover still works as before)\nconst[dropOpen,setDropOpen]=React.useState(-1);useIsoLayoutEffect(()=>{if(typeof window===\"undefined\")return;setPath(normalise(window.location.pathname));const onKey=e=>{const t=e.target;const typing=t&&(t.tagName===\"INPUT\"||t.tagName===\"TEXTAREA\"||t.isContentEditable);if(e.key===\"k\"&&(e.metaKey||e.ctrlKey)||e.key===\"/\"&&!typing){e.preventDefault();React.startTransition(()=>setSearchOpen(true));}};if(showSearch)window.addEventListener(\"keydown\",onKey);const el=rootRef.current;const check=()=>{const w=Math.min(window.innerWidth,el?el.getBoundingClientRect().width||window.innerWidth:window.innerWidth);setNarrow(w<burgerBelow);};check();let ro=null;if(el&&typeof ResizeObserver!==\"undefined\"){ro=new ResizeObserver(check);ro.observe(el);}window.addEventListener(\"resize\",check);return()=>{window.removeEventListener(\"keydown\",onKey);window.removeEventListener(\"resize\",check);if(ro)ro.disconnect();};},[burgerBelow,showSearch]);const isLight=theme===\"light\";const color=isLight?lightTextColor:darkTextColor;const baseFont={fontFamily:FAMILY,fontSize:17,lineHeight:1.3,letterSpacing:\"0.01em\"};const isActive=item=>{if(!path)return false;if(item.link&&normalise(item.link)===path)return true;if(item.link&&item.link!==\"/\"&&path.startsWith(normalise(item.link)+\"/\"))return true;return(item.children||[]).some(c=>c.link&&normalise(c.link.split(\"#\")[0])===path);};const logoSrc=logo&&logo.src||DEFAULT_LOGO;const logoW=Math.round(logoSize*2.64);const makeLogo=light=>/*#__PURE__*/_jsx(\"span\",{className:\"lmfl-logo\",style:{display:\"block\",width:logoW,height:logoSize,overflow:\"hidden\",position:\"relative\"},children:/*#__PURE__*/_jsx(\"img\",{src:logoSrc,alt:logo&&logo.alt||\"LMFL – Language and Music for Life\",style:{position:\"absolute\",left:0,top:\"50%\",width:\"100%\",height:\"auto\",transform:\"translateY(-50%)\",display:\"block\",filter:light?\"none\":\"invert(1)\"}})});const searchBtn=showSearch?/*#__PURE__*/_jsx(\"button\",{className:\"lmfl-icon-btn\",\"aria-label\":\"Search the site\",onClick:()=>React.startTransition(()=>setSearchOpen(true)),children:/*#__PURE__*/_jsx(SearchIcon,{color:color})}):null;return /*#__PURE__*/_jsxs(\"nav\",{ref:rootRef,\"aria-label\":\"Main\",style:{...style,position:\"relative\",width:\"100%\",boxSizing:\"border-box\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:20,padding:narrow?\"12px 20px\":\"14px 32px\",background:isLight?lightBackground:\"transparent\",borderBottom:isLight?\"1px solid rgba(22,20,19,0.08)\":\"1px solid rgba(255,255,255,0.18)\",color,zIndex:20,fontFamily:FAMILY},children:[/*#__PURE__*/_jsx(\"style\",{children:CSS+ENHANCE_CSS}),/*#__PURE__*/_jsx(\"a\",{href:logoLink||\"/\",\"aria-label\":\"LMFL home\",style:{display:\"flex\",alignItems:\"center\",flexShrink:0,textDecoration:\"none\",color},children:makeLogo(isLight)}),narrow?/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:2},children:[searchBtn,/*#__PURE__*/_jsxs(\"button\",{ref:burgerRef,className:\"lmfl-burger\",\"aria-label\":\"Open menu\",\"aria-expanded\":menuOpen,\"aria-haspopup\":\"dialog\",onClick:()=>React.startTransition(()=>setMenuOpen(true)),style:{color},children:[/*#__PURE__*/_jsx(\"span\",{}),/*#__PURE__*/_jsx(\"span\",{style:{width:16,marginLeft:8}})]}),/*#__PURE__*/_jsx(MobileMenu,{open:menuOpen,onClose:()=>React.startTransition(()=>setMenuOpen(false)),logoEl:makeLogo(true),items:items,isActive:isActive,path:path,returnFocusTo:burgerRef,onSearch:showSearch?()=>React.startTransition(()=>{setMenuOpen(false);setSearchOpen(true);}):null})]}):/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:12},children:[/*#__PURE__*/_jsx(\"ul\",{style:{listStyle:\"none\",margin:0,padding:0,display:\"flex\",alignItems:\"center\",gap},children:items.filter(it=>it.link!==\"/\").map((item,i)=>{const hasChildren=item.children&&item.children.length>0;const open=dropOpen===i;const dropId=`lmfl-drop-${i}`;const heading=!item.link&&hasChildren?/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"lmfl-nav-link\",\"data-active\":isActive(item)?\"true\":\"false\",\"aria-haspopup\":\"true\",\"aria-expanded\":open,\"aria-controls\":dropId,onClick:()=>setDropOpen(open?-1:i),style:{...baseFont,color},children:[item.label,/*#__PURE__*/_jsx(\"span\",{className:\"lmfl-chev\",\"aria-hidden\":\"true\"})]}):/*#__PURE__*/_jsxs(\"a\",{className:\"lmfl-nav-link\",\"data-active\":isActive(item)?\"true\":\"false\",href:item.link||undefined,style:{...baseFont,color},children:[item.label,hasChildren?/*#__PURE__*/_jsx(\"span\",{className:\"lmfl-chev\",\"aria-hidden\":\"true\"}):null]});return /*#__PURE__*/_jsxs(\"li\",{className:\"lmfl-nav-item\",\"data-open\":hasChildren&&!item.link?open?\"true\":\"false\":undefined,style:{position:\"relative\"},onMouseLeave:()=>open&&setDropOpen(-1),onBlur:e=>{if(open&&!e.currentTarget.contains(e.relatedTarget))setDropOpen(-1);},onKeyDown:e=>{if(e.key===\"Escape\"&&open){e.stopPropagation();setDropOpen(-1);const b=e.currentTarget.querySelector(\"button\");if(b)b.focus();}},children:[heading,hasChildren?/*#__PURE__*/_jsx(\"div\",{className:\"lmfl-drop\",id:dropId,children:/*#__PURE__*/_jsx(\"div\",{className:\"lmfl-drop-panel\",style:{background:dropdownBackground},children:item.children.map((c,j)=>/*#__PURE__*/_jsx(\"a\",{className:\"lmfl-drop-link\",href:c.link||undefined,style:{...baseFont,fontSize:17,color:dropdownTextColor},children:c.label},j))})}):null]},i);})}),searchBtn,/*#__PURE__*/_jsx(\"a\",{className:\"lmfl-book\",href:BOOK_CTA.link,style:{...baseFont,fontSize:16,fontWeight:700},children:BOOK_CTA.label})]}),searchOpen?/*#__PURE__*/_jsx(SearchOverlay,{onClose:()=>React.startTransition(()=>setSearchOpen(false))}):null]});}addPropertyControls(LMFLSiteHeader,{logo:{type:ControlType.ResponsiveImage,title:\"Logo\"},logoLink:{type:ControlType.Link,title:\"Logo Link\",defaultValue:\"/\"},logoSize:{type:ControlType.Number,title:\"Logo Size\",defaultValue:40,min:16,max:80,step:1,unit:\"px\"},theme:{type:ControlType.Enum,title:\"Style\",options:[\"light\",\"dark\"],optionTitles:[\"White bar\",\"Over image\"],defaultValue:\"light\",displaySegmentedControl:true},showSearch:{type:ControlType.Boolean,title:\"Search\",defaultValue:true},lightBackground:{type:ControlType.Color,title:\"Bar BG\",defaultValue:\"#FFFFFF\",hidden:p=>p.theme===\"dark\"},darkTextColor:{type:ControlType.Color,title:\"Over-image Text\",defaultValue:\"#FFFFFF\",hidden:p=>p.theme!==\"dark\"},dropdownBackground:{type:ControlType.Color,title:\"Dropdown BG\",defaultValue:\"#FFFFFF\"},dropdownTextColor:{type:ControlType.Color,title:\"Dropdown Text\",defaultValue:\"#161413\"},mobileBreakpoint:{type:ControlType.Number,title:\"Mobile Below\",defaultValue:900,min:480,max:1200,step:10,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LMFLSiteHeader\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"72\",\"framerIntrinsicWidth\":\"1200\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LMFLSiteHeader.map"],"mappings":"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"}