{"version":3,"file":"shared.CmLhfQ84.mjs","names":["useState","FONT","CSS","BLUE","GREEN","BLOG_ARTICLES","useState","_Fragment","p","NAVY","BLUE","useRef","CSS","LOGO_SRC","INK","React","MUTED","GREEN","FONT","p","_Fragment","useState","useRef","p","NAVY","React","BLUE","_Fragment","useState","useRef","useCallback","EMAIL","CSS","useState","_Fragment","p","_jsx"],"sources":["https:/framerusercontent.com/modules/oD5mYdAA9jDRy3WE5B0B/TRTFNBwPbcH9XpeBqVwQ/BlogIndexGrid.js","https:/framerusercontent.com/modules/5ApwUoUqdfpQmjJM9dY0/hWx9IROFUSq61hvEC0lB/HomeTestingNav.js","https:/framerusercontent.com/modules/nV2sOCb2ngwOdJb2kBIB/jSHKfzSsXZYqjQu7SHSy/MedentlyAI.js","https:/framerusercontent.com/modules/j8t9VDIFiuoIBZZmeXdd/gTQK5AG0jlgqfMNgY2bG/AskMedently.js","https:/framerusercontent.com/modules/MkufwdpJCo4kKQcZSJSh/FGYeEoPG9EyEgn1Wzk2F/MedentlyFooter.js"],"sourcesContent":["// @framerSupportedLayoutWidth any\n// @framerSupportedLayoutHeight any\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState}from\"react\";import{addPropertyControls}from\"framer\";const BLUE=\"#1a56fc\";const GREEN=\"#1a7a40\";const DARK=\"#0a1628\";const FONT=\"'Clash Grotesk', -apple-system, BlinkMacSystemFont, sans-serif\";// Column count is driven purely by CSS media queries so the correct grid\n// is present on the very first paint (no JS width detection).\n// phone (<=700) = 1 col, tablet (701-1024) = 2 cols, desktop (>1024) = 3 cols.\nconst CSS=`\n.big-grid{grid-template-columns:repeat(3, 1fr);}\n@media (max-width:1024px){.big-grid{grid-template-columns:repeat(2, 1fr);}}\n@media (max-width:700px){.big-grid{grid-template-columns:1fr;}}\n`;export const ARTICLES=[{slug:\"upjs-entrance-exam-5-september-scores\",title:\"UPJŠ Entrance Exam on 5 September: The Scores You Actually Need\",excerpt:\"Sitting the UPJŠ entrance exam on 5 September 2026? The exact scores that got our students in, and a 2-week plan built on the official question set.\",category:\"exams\",date:\"2026-08-19T00:00:00.000Z\",readTime:\"5 min read\",image:\"https://framerusercontent.com/images/IJFwKd3UdEVWpE6LDsSAUfuuQI.png\",imageAlt:\"UPJŠ entrance exam 5 September 2026: the scores you need\",language:\"en\"},{slug:\"upjs-proven-5-september-poengkrav\",title:\"UPJŠ opptakspr\\xf8ve 5. september: poengene som faktisk holder, og en realistisk 2-ukers leseplan\",excerpt:\"UPJŠ opptakspr\\xf8ve 5. september: hva pr\\xf8ven best\\xe5r av, poengsummen som faktisk holder for medisin og odontologi, og en 2-ukers leseplan som fungerer.\",category:\"exams\",date:\"2026-08-19T00:00:00.000Z\",readTime:\"7 min lesing\",image:\"https://framerusercontent.com/images/ZxcJqGXY73PA7JreJ4SwyVWg48w.png\",imageAlt:\"UPJŠ-pr\\xf8ven 5. september 2026: poengene du trenger\",language:\"no\"},{slug:\"ncu-entrance-exam-topics-scoring\",title:\"NCU Entrance Exam: The Exact Topics, Scoring and 2026 Dates\",excerpt:\"The NCU entrance exam decoded: the exact 50-question split, the oral, the W formula and both 2026 registration rounds, from NCU's own official material.\",category:\"exams\",date:\"2026-08-19T00:00:00.000Z\",readTime:\"5 min read\",image:\"https://framerusercontent.com/images/jlQCGE4HD3luGFv7Pvcxks5cxQ.png\",imageAlt:\"NCU entrance exam: official topics and scoring\",language:\"en\"},{slug:\"ncu-frist-25-august-irk-pamelding\",title:\"NCU-fristen er 25. august: slik melder du deg p\\xe5 medisin i Polen\",excerpt:\"NCU stenger runde 6 for medisin i Polen 25. august kl. 23:59. Her er IRK-p\\xe5meldingen steg for steg, og hva du gj\\xf8r om du leser dette etter fristen.\",category:\"exams\",date:\"2026-08-19T00:00:00.000Z\",readTime:\"5 min lesing\",image:\"https://framerusercontent.com/images/ehIFiO51lZi2o5Zxwf9bZIuHu7Q.png\",imageAlt:\"NCU-fristen 25. august: slik melder du deg p\\xe5\",language:\"no\"},{slug:\"compare-medical-schools-europe-requirements\",title:\"Compare 18 European Medical Schools' Entry Requirements\",excerpt:\"Compare entry requirements for 18 medical and dental schools in 9 European countries, on your own grading scale. Free, no signup, updates live.\",category:\"applying\",date:\"2026-08-14T00:00:00.000Z\",readTime:\"5 min read\",image:\"https://framerusercontent.com/images/UJbOSeVgAlDNPweMnKi40IySOc.png\",imageAlt:\"Dark map of Europe with green pins marking 18 medical schools\",language:\"en\"},{slug:\"sammenlign-18-medisinstudier-europa\",title:\"Sammenlign 18 medisinstudier i Europa p\\xe5 ett sted\",excerpt:\"Nytt gratis verkt\\xf8y: velg studie, land og realfag, og se hvilke av 18 universiteter i 9 land du kan s\\xf8ke p\\xe5. Ingen e-post, ingen p\\xe5melding.\",category:\"universities\",date:\"2026-08-14T00:00:00.000Z\",readTime:\"5 min lesing\",image:\"https://framerusercontent.com/images/kk6zSEeYNAyUi8BlrFmXiZ8o.png\",imageAlt:\"M\\xf8rkt Europa-kart med gr\\xf8nne prikker p\\xe5 18 medisinstudier\",language:\"no\"},{slug:\"a-level-requirements-dentistry-europe\",title:\"A-Level Requirements for Dentistry in Europe 2026\",excerpt:\"A-level requirements for dentistry in Europe, university by university: what RSU scores, the exam route that ignores grades, real fees and GDC facts.\",category:\"dentistry\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"12 min read\",image:\"https://framerusercontent.com/images/IdWRSq0ZMjSdBSFVt333mYwkEfU.png\",imageAlt:\"A-level requirements for dentistry in Europe, university by university\",language:\"en\"},{slug:\"didnt-get-the-grades-for-dentistry\",title:\"Didn't Get the Grades for Dentistry? 3 Real Routes\",excerpt:\"Didn't get the grades for dentistry? One real dental school never scores A-levels, and its next entrance exam is 5 September 2026. Your honest options.\",category:\"dentistry\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"14 min read\",image:\"https://framerusercontent.com/images/YXqmRZIGeKDb5J8OJZh5Xo5Q.png\",imageAlt:\"Didn't get the grades for dentistry: three real routes for 2026\",language:\"en\"},{slug:\"dentistry-clearing-2026\",title:\"Dentistry Clearing 2026: What's Actually Open Today\",excerpt:\"Dentistry Clearing 2026, checked live on results day: almost no UK BDS places exist. What's really open, and how to still start dentistry in 2026.\",category:\"dentistry\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"13 min read\",image:\"https://framerusercontent.com/images/HdVMICSxTutlORL2BzChmWyi8Lg.png\",imageAlt:\"Dentistry Clearing 2026: what's actually open and the plan B\",language:\"en\"},{slug:\"medicine-clearing-2026\",title:\"Medicine Clearing 2026: Honest Odds and Your Plan B\",excerpt:\"What's genuinely open in medicine Clearing today, plus English-taught European med schools still admitting for autumn 2026. Honest and checked.\",category:\"applying\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"17 min read\",image:\"https://framerusercontent.com/images/PE1QKFZuSSV2zBWXTmSgtyuiy2U.png\",imageAlt:\"Medicine Clearing 2026: honest odds and the European plan B\",language:\"en\"},{slug:\"a-level-requirements-study-medicine-europe\",title:\"A-Level Requirements to Study Medicine in Europe 2026\",excerpt:\"Every A-level requirement to study medicine in Europe, university by university: subjects, grade minimums, and who skips the entrance exam entirely.\",category:\"applying\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"13 min read\",image:\"https://framerusercontent.com/images/uGO5Sm9XTyIXGOkXfxXYHZrXus.png\",imageAlt:\"A-level requirements to study medicine in Europe, university by university\",language:\"en\"},{slug:\"didnt-get-the-grades-for-medicine\",title:\"Didn't Get the Grades for Medicine? Your 2026 Options\",excerpt:\"Didn't get the grades for medicine? Several European med schools don't score A-levels at all. Every route still open for a 2026 start, honestly mapped.\",category:\"applying\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"14 min read\",image:\"https://framerusercontent.com/images/qRUh2TOpMgTJV8ZraHneFPnY3z0.png\",imageAlt:\"Didn't get the grades for medicine: every route still open for 2026\",language:\"en\"},{slug:\"ikke-sokt-medisin-enna\",title:\"Ikke s\\xf8kt medisin enn\\xe5? UMCH-pr\\xf8ven er 15. august\",excerpt:\"Har du ikke s\\xf8kt medisin enn\\xe5? UMCH i Hamburg har online opptakspr\\xf8ve 15. august, og flere d\\xf8rer st\\xe5r \\xe5pne utover h\\xf8sten. Vi hjelper deg gratis.\",category:\"applying\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"5 min lesing\",image:\"https://framerusercontent.com/images/4jhypFoEVmiGcfX9jF4a3eITI.png\",imageAlt:\"\\xc5rets siste opptakspr\\xf8ve ved UMCH i Hamburg 15. august 2026\",language:\"no\"},{slug:\"upjs-ny-opptaksprove-5-september\",title:\"Ny opptakspr\\xf8ve UPJŠ 5. september 2026\",excerpt:\"UPJŠ har \\xe5pnet en ekstra opptakspr\\xf8ve i Košice 5. september 2026. Vi melder deg p\\xe5 gratis, og best\\xe5r du, starter du p\\xe5 medisin allerede i h\\xf8st.\",category:\"exams\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"5 min lesing\",image:\"https://framerusercontent.com/images/1O3i43Gq0St1It8S843P5dDO3M.png\",imageAlt:\"Ny opptakspr\\xf8ve ved UPJŠ i Košice 5. september 2026\",language:\"no\"},{slug:\"ncu-opptaksprove-8-september\",title:\"NCU opptakspr\\xf8ve i september: s\\xf8k medisin i 2026\",excerpt:\"NCU i Polen har opptakspr\\xf8ve 8. september med p\\xe5melding innen 25. august, og en ny runde senere i september. Vi s\\xf8ker for deg, helt gratis.\",category:\"exams\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"5 min lesing\",image:\"https://framerusercontent.com/images/MCvuUEK661pxVzHtqYQb3gpI7Ks.png\",imageAlt:\"NCU opptakspr\\xf8ve 8. september 2026, medisin i Polen\",language:\"no\"},{slug:\"rsu-soknadsvindu-1-september\",title:\"RSU s\\xf8knadsvindu 1. september: alt du m\\xe5 vite\",excerpt:\"S\\xf8knadsvinduet for februaropptaket ved RSU i Latvia \\xe5pner 1. september 2026. Ingen opptakspr\\xf8ve, opptak p\\xe5 dokumenter. Her er alt du trenger \\xe5 vite.\",category:\"applying\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"6 min lesing\",image:\"https://framerusercontent.com/images/WV5gnJ0wuDoYNK4I8RiqWZ4LJf4.png\",imageAlt:\"S\\xf8knadsvinduet for februaropptaket ved RSU i Latvia \\xe5pner 1. september\",language:\"no\"},{slug:\"university-of-nicosia-medisin-slik-kommer-du-inn\",title:\"University of Nicosia medisin: slik kommer du inn\",excerpt:\"Ingen opptakspr\\xf8ve, engelskspr\\xe5klig medisin og studiestart i september. Slik kommer du inn p\\xe5 University of Nicosia (UNIC) p\\xe5 Kypros, steg for steg.\",category:\"universities\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"6 min lesing\",image:\"https://framerusercontent.com/images/2zLzqChUN3mcY5CRo7Vyza7StE.png\",imageAlt:\"Slik kommer du inn p\\xe5 medisin ved University of Nicosia p\\xe5 Kypros\",language:\"no\"},{slug:\"palacky-university-olomouc-medisin\",title:\"Palack\\xfd University Olomouc medisin: norsk guide\",excerpt:\"Komplett norsk guide til medisin ved Palack\\xfd University Olomouc i Tsjekkia: online opptakspr\\xf8ve, priser, L\\xe5nekassen og d\\xf8rene som fortsatt er \\xe5pne i 2026.\",category:\"universities\",date:\"2026-08-13T00:00:00.000Z\",readTime:\"5 min lesing\",image:\"https://framerusercontent.com/images/lJkqhtpFpA8F03GqlDesJzV2ZAw.png\",imageAlt:\"Medisinstudiet ved Palack\\xfd University Olomouc i Tsjekkia\",language:\"no\"},{slug:\"study-medicine-in-poland\",title:\"Study Medicine in Poland in English: The NCU Guide\",excerpt:\"English-taught medicine at NCU in Bydgoszcz: about €14,700 a year locked for the whole degree, one online exam, no grade minimums, October start.\",category:\"universities\",date:\"2026-08-09T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/NN2r2tZ7TuYowSow22yyJDB0.png\",imageAlt:\"Study medicine in Poland in English at NCU Bydgoszcz\",language:\"en\"},{slug:\"how-to-get-into-ncu-medicine\",title:\"How to Get Into NCU Medicine: No Grade Minimums\",excerpt:\"NCU in Poland admits on one online exam, not your GPA. The exact requirements, the September sittings, and how to start medicine on 1 October.\",category:\"applying\",date:\"2026-08-09T00:00:00.000Z\",readTime:\"8 min read\",image:\"https://framerusercontent.com/images/qjgC4ZVAn6oUIdEB3vxUVtRYYmw.png\",imageAlt:\"How to get into NCU medicine in Bydgoszcz, Poland\",language:\"en\"},{slug:\"studere-medisin-i-polen\",title:\"Studere medisin i Polen p\\xe5 engelsk: NCU-guiden\",excerpt:\"Engelskspr\\xe5klig medisin ved NCU i Bydgoszcz: ca. 14 700 € i \\xe5ret med fast pris, nettbasert opptakspr\\xf8ve uten karakterkrav og studiestart i oktober.\",category:\"universities\",date:\"2026-08-09T00:00:00.000Z\",readTime:\"9 min lesing\",image:\"https://framerusercontent.com/images/hEi9ciUJkBrAAfpAic06jHAluQ.png\",imageAlt:\"Studere medisin i Polen p\\xe5 engelsk ved NCU i Bydgoszcz\",language:\"no\"},{slug:\"soke-medisin-sent\",title:\"S\\xf8ke medisin sent? NCU har opptak i september\",excerpt:\"Du kan fortsatt starte medisin i \\xe5r. NCU i Polen har pr\\xf8ver 8.–9. og 23.–24. september og studiestart 1. oktober. Slik rekker du det, steg for steg.\",category:\"applying\",date:\"2026-08-09T00:00:00.000Z\",readTime:\"7 min lesing\",image:\"https://framerusercontent.com/images/B2IYfMAT06gnzZP1HXuQuN5wJ4.png\",imageAlt:\"S\\xf8ke medisin sent: NCU i Polen har opptak i september\",language:\"no\"},{slug:\"study-medicine-in-cyprus\",title:\"Study Medicine in Cyprus in English: The UNIC Guide\",excerpt:\"The University of Nicosia teaches a 6-year MD fully in English with no entrance exam. Requirements, tuition and how the application really works.\",category:\"universities\",date:\"2026-08-09T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/0JyGbPmdNG9RrF0Tz5ELem3rQ.png\",imageAlt:\"Study medicine in Cyprus in English at the University of Nicosia\",language:\"en\"},{slug:\"medical-schools-no-entrance-exam-europe\",title:\"Medical Schools in Europe with No Entrance Exam\",excerpt:\"Two English-taught EU medical schools admit on your grades alone: UNIC in Cyprus and RSU in Riga. Who they suit, what they cost, and how to apply free.\",category:\"applying\",date:\"2026-08-09T00:00:00.000Z\",readTime:\"8 min read\",image:\"https://framerusercontent.com/images/EPTFaIzu9KcT4xQHY9Og32e3g.png\",imageAlt:\"Medical schools in Europe with no entrance exam\",language:\"en\"},{slug:\"studere-medisin-pa-kypros\",title:\"Studere medisin p\\xe5 Kypros: UNIC uten opptakspr\\xf8ve\",excerpt:\"University of Nicosia tilbyr 6-\\xe5rig medisin p\\xe5 engelsk uten opptakspr\\xf8ve. Har du 4 i snitt, kan vitnem\\xe5let ditt v\\xe6re billetten. Krav og priser her.\",category:\"universities\",date:\"2026-08-09T00:00:00.000Z\",readTime:\"9 min lesing\",image:\"https://framerusercontent.com/images/ma2KX7JysvmZqH4j53sUvOLqZ8.png\",imageAlt:\"Studere medisin p\\xe5 Kypros ved University of Nicosia\",language:\"no\"},{slug:\"medisin-uten-opptaksprove-i-utlandet\",title:\"Medisin uten opptakspr\\xf8ve i utlandet: to veier i 2026\",excerpt:\"To EU-universiteter tar opp p\\xe5 vitnem\\xe5let ditt, helt uten opptakspr\\xf8ve: UNIC p\\xe5 Kypros og RSU i Riga. Se kravene og om snittet ditt holder.\",category:\"applying\",date:\"2026-08-09T00:00:00.000Z\",readTime:\"8 min lesing\",image:\"https://framerusercontent.com/images/km22bFwyKNeU74gQVPjUugzxjbo.png\",imageAlt:\"Medisin uten opptakspr\\xf8ve i utlandet: UNIC og RSU\",language:\"no\"},{slug:\"study-medicine-in-riga\",title:\"Study Medicine in Riga: No Entrance Exam, EU Degree\",excerpt:\"Study medicine in Riga in English at Rīga Stradiņš University. No entrance exam, €13,500 a year, 240 seats. Requirements, costs and key dates.\",category:\"universities\",date:\"2026-08-04T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/rnS8tUzidpqiNnFTKh7Q5ltvLqQ.png\",imageAlt:\"Medical students in a lecture hall at Riga Stradins University in Riga, Latvia\",language:\"en\"},{slug:\"study-dentistry-in-riga\",title:\"Study Dentistry in Riga: 32 Seats, No Entrance Exam\",excerpt:\"Study dentistry in Riga in English at Rīga Stradiņš University. A 5 year DDS, €15,500 a year, no entrance exam, 32 seats. Grades, costs and dates.\",category:\"dentistry\",date:\"2026-08-04T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/BuP2oyObN5FSeDpXFyGZB21SQ.png\",imageAlt:\"Dental students working together in a modern study space at Riga Stradins University\",language:\"en\"},{slug:\"studere-medisin-i-riga\",title:\"Studere medisin i Riga: uten opptakspr\\xf8ve\",excerpt:\"Studere medisin i Riga? Rīga Stradiņš universitet har ingen opptakspr\\xf8ve. Vitnem\\xe5let avgj\\xf8r. Se krav, kostnader, L\\xe5nekassen og s\\xf8knadsfrister.\",category:\"universities\",date:\"2026-08-04T00:00:00.000Z\",readTime:\"9 min lesing\",image:\"https://framerusercontent.com/images/nbKzbsk8fHXcS2m2mzgg9pcaJq8.png\",imageAlt:\"Hovedbygningen til Rīga Stradiņš universitet i Riga i Latvia\",language:\"no\"},{slug:\"studere-tannlege-i-riga\",title:\"Studere tannlege i Riga: 32 plasser, ingen pr\\xf8ve\",excerpt:\"Studere tannlege i Riga? Rīga Stradiņš universitet har ingen opptakspr\\xf8ve, men kun 32 plasser. Se karakterkrav, kostnader og L\\xe5nekassen-st\\xf8tte.\",category:\"dentistry\",date:\"2026-08-04T00:00:00.000Z\",readTime:\"9 min lesing\",image:\"https://framerusercontent.com/images/JU3N6nE5MM74jOVprQ7NY8wtWo.png\",imageAlt:\"Nyutdannede studenter p\\xe5 avslutningsdagen ved Rīga Stradiņš universitet i Riga\",language:\"no\"},{slug:\"studere-medisin-i-utlandet-erfaringer\",title:\"Studere medisin i utlandet: ekte erfaringer (2026)\",excerpt:\"Hvordan er det \\xe5 studere medisin i utlandet? Les Sulemans \\xe6rlige erfaringer fra studiene i Košice, alt fra muntlig eksamen til hverdagen i Slovakia.\",category:\"universities\",date:\"2026-07-31T00:00:00.000Z\",readTime:\"7 min lesing\",image:\"https://framerusercontent.com/images/94P97SCXaJYXKaUGy7MTAYl24.png\",imageAlt:\"Suleman deler ekte erfaringer fra medisinstudiet i Košice\",language:\"no\"},{slug:\"study-medicine-abroad-from-uk\",title:\"Study Medicine Abroad From the UK: 2026 Guide\",excerpt:\"Missed out on a UK medical school? Learn how to study medicine abroad in English, including costs, entry exams, and the GMC route home in 2026.\",category:\"applying\",date:\"2026-07-31T00:00:00.000Z\",readTime:\"7 min read\",image:\"https://framerusercontent.com/images/EldeXTWui91XAdOw29z4mjs3JQ4.png\",imageAlt:\"UK student planning to study medicine abroad in Europe\",language:\"en\"},{slug:\"transfer-cluj-napoca-to-upjs-medicine\",title:\"Transfer From UMF Cluj to UPJŠ Medicine: Why & How\",excerpt:\"Thinking of leaving UMF Cluj? Learn how to transfer to UPJŠ Medicine in Košice, how credit recognition works, and the deadlines for 2026.\",category:\"universities\",date:\"2026-07-31T00:00:00.000Z\",readTime:\"7 min read\",image:\"https://framerusercontent.com/images/IHX5hxUXH8wrrZgjQbRcKtMOk4.png\",imageAlt:\"Medical student comparing UMF Cluj-Napoca and UPJŠ Košice\",language:\"en\"},{slug:\"transfer-plovdiv-to-upjs-dentistry\",title:\"Transfer From Plovdiv to UPJŠ Dentistry: 2026 Guide\",excerpt:\"Want to switch from Plovdiv Dentistry? Compare student life in Košice and learn how to transfer to the 5-year MDDr. program at UPJŠ in 2026.\",category:\"dentistry\",date:\"2026-07-31T00:00:00.000Z\",readTime:\"6 min read\",image:\"https://framerusercontent.com/images/1KxuzFwQrOf6IK3s6UGJSro0L6M.png\",imageAlt:\"Dental student comparing student life in Plovdiv and Košice\",language:\"en\"},{slug:\"bestatt-opptaksproven-medisin-hva-na\",title:\"Best\\xe5tt opptakspr\\xf8ven i medisin? Dette skjer n\\xe5\",excerpt:\"Best\\xe5tt opptakspr\\xf8ven til medisin i utlandet? Her er veien videre: opptaksbrev, dokumenter, L\\xe5nekassen, bolig og studiestart, steg for steg.\",category:\"applying\",date:\"2026-07-25T00:00:00.000Z\",readTime:\"7 min lesing\",image:\"https://framerusercontent.com/images/HmmyOPxRZ8wyfOQVpYLbQLt7MD4.png\",imageAlt:\"Student som feirer best\\xe5tt opptakspr\\xf8ve i medisin i utlandet\",language:\"no\"},{slug:\"still-apply-medical-school-europe-september-2026\",title:\"Can You Still Apply to Medical School in Europe? 2026\",excerpt:\"Yes, you can still apply to medical school in Europe for September 2026. Entrance exam sittings run all summer at UPJŠ, UPOL and UMCH. Here's the plan.\",category:\"applying\",date:\"2026-07-25T00:00:00.000Z\",readTime:\"8 min read\",image:\"https://framerusercontent.com/images/WEp1HR3YZBn0cR8C2fdM4EmsfXA.png\",imageAlt:\"Student checking summer entrance exam dates for medical schools in Europe\",language:\"en\"},{slug:\"transfer-gdansk-to-upjs-medicine\",title:\"Transfer From Gdańsk to UPJŠ Medicine: 2026/27 Costs\",excerpt:\"Yes, you can transfer. The honest 2026/27 cost math: 64,200 PLN in Gdańsk vs a locked €13,000 at UPJŠ, deadlines, fees and both official routes.\",category:\"universities\",date:\"2026-07-25T00:00:00.000Z\",readTime:\"7 min read\",image:\"https://framerusercontent.com/images/LPxPZxAg4ZuFo2TVSUWxC2bLgqA.png\",imageAlt:\"Cost comparison between Medical University of Gdańsk and UPJŠ Košice medicine\",language:\"en\"},{slug:\"transfer-wroclaw-to-upjs-dentistry\",title:\"Transfer From Wrocław to UPJŠ Dentistry: 2026/27 Guide\",excerpt:\"Yes, you can transfer from Wrocław to UPJŠ dentistry. Year-by-year curriculum map: what gets recognised, what you'd repeat, deadlines and fees.\",category:\"dentistry\",date:\"2026-07-25T00:00:00.000Z\",readTime:\"6 min read\",image:\"https://framerusercontent.com/images/BRIatfPiYCRk1sywOoKwVybPED8.png\",imageAlt:\"Dental student comparing Wrocław and UPJŠ Košice dentistry curricula\",language:\"en\"},{slug:\"lanekassen-medisin-i-utlandet\",title:\"L\\xe5nekassen og medisin i utlandet: slik f\\xe5r du st\\xf8tte (2026)\",excerpt:\"L\\xe5nekassen st\\xf8tter medisinstudier i utlandet: basisl\\xe5n, skolepengest\\xf8tte og reisest\\xf8tte. Se hva du kan f\\xe5, fristene og hvordan du s\\xf8ker i 2026.\",category:\"applying\",date:\"2026-07-24T00:00:00.000Z\",readTime:\"8 min lesing\",image:\"https://framerusercontent.com/images/d3EaORqG3uqMvutIfpXEO8QFsTA.png\",imageAlt:\"Norsk student som sjekker L\\xe5nekassen-st\\xf8tte til medisinstudier i utlandet\",language:\"no\"},{slug:\"no-medical-school-offers-2026-what-to-do\",title:\"No Medical School Offers in 2026? What to Do Next\",excerpt:\"No medical school offers in 2026? Here are your real options: clearing, a gap year to reapply, or starting medicine in Europe in September 2026, no UCAT.\",category:\"applying\",date:\"2026-07-24T00:00:00.000Z\",readTime:\"15 min read\",image:\"https://framerusercontent.com/images/i1D9vmSWp0L1PKUJ1kouLktgDOM.png\",imageAlt:\"Student planning the next step after no medical school offers in 2026\",language:\"en\"},{slug:\"transfer-medical-university-sofia-to-upjs-medicine\",title:\"Transfer From Medical University of Sofia to UPJŠ Medicine\",excerpt:\"How to transfer from Medical University of Sofia to UPJŠ Košice: both official routes, credit recognition rules, real deadlines and 2026/27 costs.\",category:\"universities\",date:\"2026-07-24T00:00:00.000Z\",readTime:\"12 min read\",image:\"https://framerusercontent.com/images/OB8SubxErYhn35LLXebyoXPChE.png\",imageAlt:\"Medical student transferring from Medical University of Sofia to UPJŠ Košice\",language:\"en\"},{slug:\"transfer-debrecen-to-upjs-dentistry\",title:\"Transfer From University of Debrecen to UPJŠ Dentistry\",excerpt:\"Transfer from Debrecen to UPJŠ Dentistry: year-by-year comparison of both curricula, what gets recognised, 2026/27 costs and honest exam rules.\",category:\"dentistry\",date:\"2026-07-24T00:00:00.000Z\",readTime:\"10 min read\",image:\"https://framerusercontent.com/images/Ndxgzu9HKehYouW1beQ1HKfyaM.png\",imageAlt:\"Dental student transferring from the University of Debrecen to UPJŠ Košice\",language:\"en\"},{slug:\"venteliste-medisin-samordna-opptak-2026\",title:\"Venteliste p\\xe5 medisin 2026? Slik gj\\xf8r du noe med det\",excerpt:\"Du st\\xe5r p\\xe5 venteliste til medisin etter Samordna opptaks hovedopptak. Her er viktige datoer, hva ventelistenummeret betyr, og planen du styrer selv.\",category:\"applying\",date:\"2026-07-23T00:00:00.000Z\",readTime:\"8 min lesing\",image:\"https://framerusercontent.com/images/SKMMLo0luLBHmPJeZzEkH90hzQ.png\",imageAlt:\"Student som venter p\\xe5 svar fra Samordna opptak p\\xe5 medisinstudiet\",language:\"no\"},{slug:\"shortest-time-to-become-a-doctor-in-europe\",title:\"Shortest Time to Become a Doctor in Europe: 6 Years\",excerpt:\"Straight from school, six years is the fastest real route to a medical degree in Europe. Here is how that compares to the UK and US, with real numbers.\",category:\"career\",date:\"2026-07-23T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/pnoxiXZy4HZnMeF0wj4v4A66EM.png\",imageAlt:\"Medical student graduating after a six-year degree in Europe\",language:\"en\"},{slug:\"transfer-carol-davila-to-upjs-medicine\",title:\"Transfer From Carol Davila to UPJŠ: Medicine Guide\",excerpt:\"Moving from Carol Davila Bucharest to UPJŠ Košice: which preclinical subjects carry over, the 15 August and 15 September deadlines, and what it costs.\",category:\"universities\",date:\"2026-07-23T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/0ymC8eicyy3Vpp1xSEIzkDsyKW4.png\",imageAlt:\"Medical student transferring from Carol Davila Bucharest to UPJŠ Košice\",language:\"en\"},{slug:\"transfer-lsmu-kaunas-to-upjs-dentistry\",title:\"Transfer From LSMU Kaunas to UPJŠ Dentistry\",excerpt:\"The two official routes from LSMU Odontology to UPJŠ Dental Medicine: deadlines, the EUR 15 recognition cap, and how your graded subjects are treated.\",category:\"dentistry\",date:\"2026-07-23T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/8deek9OMiJDhddnF2s5jhufJr1U.png\",imageAlt:\"Dental student transferring from LSMU Kaunas to UPJŠ Košice\",language:\"en\"},{slug:\"verdt-a-studere-medisin-i-utlandet\",title:\"Er det verdt \\xe5 studere medisin i utlandet?\",excerpt:\"Er det verdt \\xe5 studere medisin i utlandet? \\xc6rlig svar fra en norsk student i Košice: hverdagen, kostnadene, L\\xe5nekassen og autorisasjon.\",category:\"applying\",date:\"2026-07-19T00:00:00.000Z\",readTime:\"9 min lesing\",image:\"https://framerusercontent.com/images/EgKkumk0DSoOUzboFGpINL4hwgQ.png\",imageAlt:\"Er det verdt \\xe5 studere medisin i utlandet?\",language:\"no\"},{slug:\"is-a-medical-degree-from-europe-recognised-in-the-uk\",title:\"European Medical Degree Recognised in the UK? Yes\",excerpt:\"Yes, a European medical degree is recognised in the UK. EEA graduates register with the GMC via the REQ route, with no PLAB and no UKMLA to sit.\",category:\"career\",date:\"2026-07-19T00:00:00.000Z\",readTime:\"11 min read\",image:\"https://framerusercontent.com/images/wnBSeB4BkApZPWH5hfkIT8aUjo.png\",imageAlt:\"European Medical Degree Recognised in the UK? Yes\",language:\"en\"},{slug:\"transfer-charles-university-prague-to-upjs-medicine\",title:\"Transfer from Charles University, First Faculty of Medicine to UPJŠ Košice\",excerpt:\"Yes, you can transfer from Charles University Prague to UPJŠ Košice for medicine. Honest 2026 cost, city and process comparison, no fluff.\",category:\"universities\",date:\"2026-07-19T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/SzAeTqWdy4w5jANdUU344Yg4vHM.png\",imageAlt:\"Transfer from Charles University, First Faculty of Medicine to UPJŠ Košice\",language:\"en\"},{slug:\"transfer-zagreb-to-upjs-dentistry\",title:\"Transfer From Zagreb to UPJŠ Dentistry: Which Year\",excerpt:\"How to transfer from Zagreb to UPJŠ dentistry: the two official routes, what gets recognised, and which year of the 5-year MDDr you actually join.\",category:\"dentistry\",date:\"2026-07-19T00:00:00.000Z\",readTime:\"7 min read\",image:\"https://framerusercontent.com/images/7k1GAdu7mxY8xgh0F0rphliEbaA.png\",imageAlt:\"Transfer From Zagreb to UPJŠ Dentistry: Which Year\",language:\"en\"},{slug:\"/studer-medisin-i-tsjekkia\",title:\"Studer medisin i Tsjekkia (2026): den komplette guiden\",excerpt:\"Vil du studere medisin i Tsjekkia p\\xe5 engelsk? Her er universitetene, skolepengene, UPOLs opptakspr\\xf8ve p\\xe5 nett, L\\xe5nekassen og veien til norsk autorisasjon.\",category:\"universities\",date:\"2026-07-15T00:00:00.000Z\",readTime:\"12 min lesing\",image:\"https://images.unsplash.com/photo-1545148895-c1a78804ef80?crop=entropy&cs=srgb&fm=jpg&ixlib=rb-4.1.0&q=85&w=1200\",imageAlt:\"Studere medisin i Tsjekkia p\\xe5 engelsk — Palack\\xfd University i Olomouc og veien til norsk autorisasjon\",language:\"no\"},{slug:\"study-medicine-europe-without-biology-chemistry-a-levels\",title:\"Study Medicine in Europe, No Bio/Chem A-Levels\",excerpt:\"Yes — you can study medicine in Europe without biology and chemistry A-levels. UPJŠ Košice takes three A-levels in any subject. Here's how.\",category:\"applying\",date:\"2026-07-09T00:00:00.000Z\",readTime:\"8 min read\",image:\"https://framerusercontent.com/images/fnigRv0uTdOn0TJLvVFQXA4WLls.png\",imageAlt:\"Study medicine in Europe without biology and chemistry A-levels — UPJŠ Košice accepts three A-levels in any subject\",language:\"en\"},{slug:\"transfer-semmelweis-to-upjs-medicine\",title:\"Transfer from Semmelweis University to UPJŠ — Medicine\",excerpt:\"Transferring from Semmelweis to UPJŠ Košice for medicine? The honest reasons students leave, the real UPJŠ transfer rules, and how to actually do it.\",category:\"applying\",date:\"2026-07-09T00:00:00.000Z\",readTime:\"6 min read\",image:\"https://framerusercontent.com/images/QjUDq0MMZGL0aduQNrO4P8LfXUE.png\",imageAlt:\"Transfer from Semmelweis University Budapest to UPJŠ Košice — continue your medicine (MUDr.) degree\",language:\"en\"},{slug:\"transfer-varna-to-upjs-dentistry\",title:\"Transfer From Varna to UPJŠ Dentistry: Cost Guide\",excerpt:\"Transfer from Varna to UPJŠ dentistry? Honest tuition, cost-of-living and recognition-fee math (a flat €20) for Varna vs Košice.\",category:\"dentistry\",date:\"2026-07-09T00:00:00.000Z\",readTime:\"6 min read\",image:\"https://framerusercontent.com/images/0xEMLE6zWAnElddvE88PbD4Ntp4.png\",imageAlt:\"Transfer from Medical University of Varna to UPJŠ Košice — continue your dentistry (MDDr.) degree, cost compared\",language:\"en\"},{slug:\"transfer-lublin-to-upjs-dentistry\",title:\"Transfer from Lublin to UPJŠ Dentistry — Continue Your Degree\",excerpt:\"Thinking about a transfer from Lublin to UPJŠ dentistry? Here's the real curriculum comparison, what UPJŠ recognises, and which year you'd join.\",category:\"dentistry\",date:\"2026-07-05T00:00:00.000Z\",readTime:\"8 min read\",image:\"https://framerusercontent.com/images/v1ATXI6vwB20tQZJom3zshdIRo.png\",imageAlt:\"Transfer from Medical University of Lublin to UPJŠ Košice — continue your dentistry (MDDr.) degree\",language:\"en\"},{slug:\"how-much-does-it-cost-to-study-dentistry-abroad\",title:\"How Much Does It Cost to Study Dentistry Abroad?\",excerpt:\"How much does it cost to study dentistry abroad? Full 5-6 year total: tuition ~EUR 4k-20k/yr plus living and hidden fees, broken down honestly.\",category:\"dentistry\",date:\"2026-07-05T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/M5Z8NCYESmjtKii03G8aFUAnmtw.png\",imageAlt:\"How much it costs to study dentistry abroad in English — European dental school tuition and living costs\",language:\"en\"},{slug:\"studere-medisin-i-utlandet-krav\",title:\"Studere medisin i utlandet: krav (2026)\",excerpt:\"Alle krav for \\xe5 studere medisin i utlandet: opptakspr\\xf8ve vs karaktersnitt, GSK, realfag, spr\\xe5k, dokumenter, L\\xe5nekassen og autorisasjon.\",category:\"applying\",date:\"2026-07-05T00:00:00.000Z\",readTime:\"9 min lesing\",image:\"https://framerusercontent.com/images/9lUvCwMjiYdgkjs2aNHSYDOVgg.png\",imageAlt:\"Krav for \\xe5 studere medisin i utlandet — opptakspr\\xf8ve, generell studiekompetanse og dokumenter\",language:\"no\"},{slug:\"how-many-years-to-study-medicine-in-europe\",title:\"How Many Years to Study Medicine in Europe\",excerpt:\"How many years to study medicine in Europe? It's a 6-year English-taught MD straight from high school — here's the full timeline to becoming a doctor.\",category:\"universities\",date:\"2026-07-05T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/D1p3kPlvO0AlTVKi1VC038K9Rs.png\",imageAlt:\"How many years it takes to study medicine in Europe — the 6-year English-taught MD\",language:\"en\"},{slug:\"transfer-poznan-pums-to-upjs-medicine\",title:\"Transfer Poznan (PUMS) to UPJŠ Košice — Medicine\",excerpt:\"Thinking of a transfer from Poznan to UPJŠ medicine? Here's how leaving PUMS works, the real UPJŠ deadlines, the exam, and credit recognition.\",category:\"applying\",date:\"2026-07-01T00:00:00.000Z\",readTime:\"8 min read\",image:\"https://framerusercontent.com/images/xjXMgoQuxFiyQv5yEJlWlBix7mE.png\",imageAlt:\"Transfer from Poznan University of Medical Sciences to UPJŠ Košice — continue your medicine degree\",language:\"en\"},{slug:\"study-dentistry-slovakia-english\",title:\"Study Dentistry in Slovakia in English (2026 Guide)\",excerpt:\"Want to study dentistry in Slovakia in English? Here's the real 2026 breakdown — UPJŠ vs Comenius, MDDr. fees, the entrance exam, and EU/GDC recognition.\",category:\"dentistry\",date:\"2026-07-01T00:00:00.000Z\",readTime:\"9 min read\",image:\"https://framerusercontent.com/images/VM7stMUfjbcQEvfg1cK3AHLrEs.png\",imageAlt:\"Study dentistry in Slovakia in English — UPJŠ Košice dental medicine (MDDr.)\",language:\"en\"},{slug:\"tannlege-i-utlandet-snitt\",title:\"Tannlege i utlandet snitt: hva du faktisk trenger\",excerpt:\"Tannlege i utlandet snitt forklart: opptakspr\\xf8ver sl\\xe5r karaktersnitt, mens odontologi i Norge krever 61-66 poeng. Se tall, land og krav for 2026.\",category:\"dentistry\",date:\"2026-07-01T00:00:00.000Z\",readTime:\"9 min lesing\",image:\"https://framerusercontent.com/images/Kz2BdVgl77KaFZSmuB8sctUrl30.png\",imageAlt:\"Tannlege i utlandet snitt — opptakskrav og karaktersnitt for tannlegestudiet i utlandet\",language:\"no\"},{slug:\"studying-medicine-slovakia-vs-poland\",title:\"Studying Medicine in Slovakia vs Poland\",excerpt:\"Studying medicine in Slovakia vs Poland in 2026: an honest comparison of English programs, entrance exams, EU recognition, cost and city life.\",category:\"universities\",date:\"2026-06-30T00:00:00.000Z\",readTime:\"4 min read\",image:\"https://framerusercontent.com/images/UjgmeSDQtk8eaeASTy3B72mSLWM.png\",imageAlt:\"Studying medicine in Slovakia vs Poland — comparing English-taught medical universities in Europe\",language:\"en\"},{slug:\"/studer-medisin-i-slovakia\",title:\"Studer medisin i Slovakia (2026): den komplette guiden\",excerpt:\"Vurderer du \\xe5 studere medisin i Slovakia? Universitetene, prisene, UPJŠ-pr\\xf8ven uten realfagskrav, L\\xe5nekassen og autorisasjon i Norge — fra en som faktisk gj\\xf8r det.\",category:\"universities\",date:\"2026-07-15T00:00:00.000Z\",readTime:\"12 min lesing\",image:\"https://images.unsplash.com/photo-1587809174740-e04af631cdd9?crop=entropy&cs=srgb&fm=jpg&ixlib=rb-4.1.0&q=85&w=1200\",imageAlt:\"Studere medisin i Slovakia — UPJŠ Košice og veien til norsk autorisasjon\",language:\"no\"},{slug:\"umch-medicine-fees\",title:\"UMCH Medicine Fees: Real Cost of Hamburg (2026)\",excerpt:\"UMCH medicine fees explained plainly — what Hamburg's English-taught MD actually costs, plus cheaper EU-recognized alternatives. No agency fees with Medently.\",category:\"universities\",date:\"2026-06-29T00:00:00.000Z\",readTime:\"4 min read\",image:\"https://framerusercontent.com/images/fW32aN1BMnliQeuwL5gk0OMQ.png\",imageAlt:\"Studying medicine at UMCH Hamburg — tuition fees and total cost in Europe\",language:\"en\"},{slug:\"kom-ikke-inn-pa-medisin-2026\",title:\"Kom ikke inn p\\xe5 medisin 2026? Dette kan du gj\\xf8re n\\xe5\",excerpt:\"Kom du ikke inn p\\xe5 medisin i 2026? Du kan fortsatt starte medisinstudiet i h\\xf8st: opptakspr\\xf8ver i utlandet g\\xe5r hele sommeren — uten poenggrense og uten realfagskrav.\",category:\"applying\",date:\"2026-07-15T00:00:00.000Z\",readTime:\"7 min lesing\",image:\"https://framerusercontent.com/images/h3waXtVhUTQFVjXNZQt7T39oxU4.png\",imageAlt:\"Norsk student som kom ikke inn p\\xe5 medisin 2026 og planlegger studiestart i utlandet i h\\xf8st\",language:\"no\"},{slug:\"fortsatt-mulig-a-soke-medisin-2026\",title:\"Fortsatt mulig \\xe5 s\\xf8ke medisin og tannlege i utlandet i 2026\",excerpt:\"Ja — du kan fortsatt s\\xf8ke medisin og tannlege i utlandet med studiestart h\\xf8sten 2026. Her er datoene som gjelder i juli og august, og hvordan du rekker alt.\",category:\"applying\",date:\"2026-07-15T00:00:00.000Z\",readTime:\"6 min lesing\",image:\"https://framerusercontent.com/images/EJUC6rgoIknSQvWQdKusZ4bo7A.png\",imageAlt:\"Tidslinje som viser at det fortsatt er mulig \\xe5 s\\xf8ke medisin og tannlege i utlandet sommeren 2026\",language:\"no\"},{slug:\"/opptaksprove-medisin\",title:\"Opptakspr\\xf8ve medisin: alle veiene inn uten karakterkrav\",excerpt:\"UPJŠ i Košice, UPOL p\\xe5 nett hjemmefra eller UMCH med l\\xf8pende opptak — slik fungerer opptakspr\\xf8vene, og slik forbereder du deg gratis.\",category:\"exams\",date:\"2026-07-15T00:00:00.000Z\",readTime:\"7 min lesing\",image:\"https://images.unsplash.com/photo-1514369118554-e20d93546b30?crop=entropy&cs=srgb&fm=jpg&ixlib=rb-4.1.0&q=85&w=1200\",imageAlt:\"Opptakspr\\xf8ve i biologi og kjemi for medisinstudiet i utlandet\",language:\"no\"},{slug:\"umch-hamburg-acceptance-rate\",title:\"UMCH Hamburg Acceptance Rate: How to Get In\",excerpt:\"Wondering about the UMCH Hamburg acceptance rate? Here's how selective it really is, what it costs, and how to actually get into its English medicine program.\",category:\"universities\",date:\"2026-06-29T00:00:00.000Z\",readTime:\"5 min read\",image:\"https://framerusercontent.com/images/0FyE5sKlJyPe3fdBfI5xyLehU.png\",imageAlt:\"UMCH University Medical School Hamburg — English-taught medicine in Germany\",language:\"en\"},{slug:\"upjs-entrance-exam-what-its-like\",title:\"UPJŠ Entrance Exam: What It's Actually Like (From a Student)\",excerpt:\"A current UPJŠ med student breaks down the Košice entrance exam — the format, how hard it really is, what to study, and when it happens. No fluff.\",category:\"exams\",date:\"2026-06-29T00:00:00.000Z\",readTime:\"4 min read\",image:\"https://framerusercontent.com/images/aaGW0Y05LLpCMwruf7yJ85ByAXY.png\",imageAlt:\"UPJŠ Košice medical entrance exam — biology and chemistry preparation\",language:\"en\"},{slug:\"medical-dental-transfer-european-universities\",title:\"Medical & Dental Transfer to European Universities: How It Works\",excerpt:\"Already studying medicine or dentistry? Transfer your credits to UPJŠ by the 15 August deadline — student-friendly recognition, no restart, taught fully in English.\",category:\"applying\",date:\"2026-06-19T00:00:00.000Z\",readTime:\"6 min read\",image:\"https://framerusercontent.com/images/GhqGlrj3rPyfdZpY2sOy8DKx4s.png\",imageAlt:\"Medical and dental student transfer process to UPJS Slovakia with five-step credit recognition flow\",language:\"en\"},{slug:\"medently-ai-assistant-european-medical-school\",title:\"Meet Medently AI: Your 24/7 Guide to European Medical and Dental School\",excerpt:\"Try Medently AI, the free assistant that helps you compare universities, understand entrance exams and plan your medicine or dentistry application in Europe.\",category:\"applying\",date:\"2026-06-17T00:00:00.000Z\",readTime:\"4 min read\",image:\"https://framerusercontent.com/images/nayDYcDi9v1nWyVRUuLTm0ads.png\",imageAlt:\"Medently AI digital assistant answering European medical and dental school application questions\",language:\"en\"},{slug:\"pass-upjs-entrance-exam-smart-flashcards\",title:\"How to Prepare for the UPJŠ Entrance Exam with Smart Flashcards\",excerpt:\"Master the official 1,200 UPJŠ biology and chemistry questions with structured flashcard practice, mock exams and progress tracking, all free from Medently.\",category:\"exams\",date:\"2026-06-15T00:00:00.000Z\",readTime:\"5 min read\",image:\"https://framerusercontent.com/images/85s5VK1v0oYUzQyy9R5giwLcUic.png\",imageAlt:\"Medently interactive flashcards for the UPJS medical entrance exam covering biology and chemistry\",language:\"en\"},{slug:\"european-medical-school-application-timeline\",title:\"The 2026/2027 International Student Timeline for European Medical School Applications\",excerpt:\"The complete month-by-month checklist for international students applying to European medical and dental programs in 2026 and 2027, from first document to arrival.\",category:\"applying\",date:\"2026-06-12T00:00:00.000Z\",readTime:\"7 min read\",image:\"https://framerusercontent.com/images/9cxK6B3wBYwOdsfYempr4KliM.png\",imageAlt:\"Application timeline calendar for European medical schools showing key deadlines from January to September\",language:\"en\"},{slug:\"study-dentistry-europe-english-guide\",title:\"Bypassing the Dental School Bottleneck: Study Dentistry in Europe in English\",excerpt:\"Cannot secure a dental school seat at home? Learn how to study dentistry (MDDr.) in English at world-class European universities.\",category:\"dentistry\",date:\"2026-06-10T00:00:00.000Z\",readTime:\"6 min read\",image:\"https://framerusercontent.com/images/kAb89RUhj04m3UipArOjPp1FuFQ.png\",imageAlt:\"Dental student in a European dental simulation clinic practising on a phantom head\",language:\"en\"},{slug:\"pass-upjs-upol-medical-entrance-exam\",title:\"How to Pass the UPJŠ and UPOL Entrance Exams: The Student Blueprint\",excerpt:\"Get the live 2026 exam dates, scoring thresholds, official question format, and the smartest flashcard study strategy for UPJŠ and UPOL.\",category:\"exams\",date:\"2026-06-08T00:00:00.000Z\",readTime:\"8 min read\",image:\"https://framerusercontent.com/images/RQPfThZWFAft6QUgj875589aYM.png\",imageAlt:\"UPJS and UPOL 2026 entrance exam blueprint with live test dates and biology chemistry question pool\",language:\"en\"},{slug:\"eu-medical-degree-recognition-gmc-uk-norway\",title:\"Is an EU Medical Degree Globally Recognized? GMC, USMLE, and Licensing\",excerpt:\"Your degree from UPJŠ or UPOL is fully recognised in the UK, Norway, and the US thanks to EU Directive 2005/36/EC. Here's exactly how licensing works.\",category:\"career\",date:\"2026-06-06T00:00:00.000Z\",readTime:\"6 min read\",image:\"https://framerusercontent.com/images/SFoAjOUR0hrxqZlmaBxpbMi41I.png\",imageAlt:\"EU medical degree recognition map showing GMC UK, Helsedirektoratet Norway, and ECFMG USMLE pathways\",language:\"en\"},{slug:\"cheapest-medical-schools-europe-english\",title:\"Cheapest English-Taught Medical Schools in Europe: 2026 Cost Comparison\",excerpt:\"True total cost of medicine in Europe — tuition, living, and hidden fees compared for UPJŠ, UPOL, and UMCH for 2026/2027.\",category:\"universities\",date:\"2026-06-04T00:00:00.000Z\",readTime:\"7 min read\",image:\"https://framerusercontent.com/images/WjNpLTOiMPXx1bSasCyEzyQU.png\",imageAlt:\"Cheapest English-taught medical schools in Europe 2026 cost comparison chart for UPJS, UPOL and UMCH\",language:\"en\"},{slug:\"rejected-from-medical-school-study-abroad\",title:\"Rejected from Medical School? How to Study Medicine in Europe in English (No Gap Year)\",excerpt:\"Received a medical school rejection? Discover how you can study medicine in Europe in English without a gap year or perfect high school GPA.\",category:\"applying\",date:\"2026-06-02T00:00:00.000Z\",readTime:\"5 min read\",image:\"https://framerusercontent.com/images/dqpncIiRzmirFuEi71oVyV5mMfI.png\",imageAlt:\"Student rejected from UK medical school continuing studies in Europe without a gap year\",language:\"en\"},{slug:\"top-medical-universities-in-europe-taught-in-english\",title:\"Top Medical Schools in Europe Taught in English (2026)\",excerpt:\"The best English-taught medical schools in Europe for 2026 — entrance exams, costs, and how to get in. Compare UPJŠ, UPOL, UMCH, Charles, Jagiellonian and more.\",category:\"universities\",date:\"2026-05-05T00:00:00.000Z\",readTime:\"7 min read\",image:\"https://framerusercontent.com/images/yUBOwJRyN45jWnRbCnAPseqUo.png\",imageAlt:\"English-taught medical universities in Europe including UPJS Kosice, UPOL Olomouc and UMCH Hamburg\",language:\"en\"},{slug:\"how-to-prepare-for-the-imat-and-entrance-exams\",title:\"How to Prepare for the IMAT and Entrance Exams\",excerpt:\"Everything you need to know about medical entrance exams in Europe, from the IMAT to the UPJŠ and UPOL papers, and how to prepare for them with confidence.\",category:\"exams\",date:\"2026-04-20T00:00:00.000Z\",readTime:\"7 min read\",image:\"https://framerusercontent.com/images/FvajWrB7esoBxWzUJYlqjWTr64.png\",imageAlt:\"Student preparing for the IMAT and European medical school entrance exams with study notes\",language:\"en\"},{slug:\"is-dentistry-a-good-career-choice-in-2026\",title:\"Is Dentistry a Good Career Choice in 2026?\",excerpt:\"A clear-eyed look at studying dentistry abroad in 2026: what the job market really pays, how secure the career is, and what the next decade looks like.\",category:\"dentistry\",date:\"2026-04-15T00:00:00.000Z\",readTime:\"5 min read\",image:\"https://framerusercontent.com/images/1Tg77NbsH4nkT7ZvsUVl4iR8JI.png\",imageAlt:\"Dentist in a modern clinic illustrating dentistry as a career choice in 2026\",language:\"en\"}];const CATEGORY_STYLE={universities:{color:BLUE,bg:\"#eef2ff\",label:\"Universities\"},exams:{color:\"#7c3aed\",bg:\"#f3eaff\",label:\"Exams\"},dentistry:{color:\"#0891b2\",bg:\"#e0f2fe\",label:\"Dentistry\"},applying:{color:GREEN,bg:\"#e8f5ee\",label:\"Applying\"},career:{color:\"#dc2626\",bg:\"#fef2f2\",label:\"Career\"}};const LANG_STYLE={en:{label:\"English\",flag:\"🇬🇧\"},no:{label:\"Norwegian\",flag:\"🇳🇴\"}};function formatDate(iso){try{const d=new Date(iso);return d.toLocaleDateString(\"en-US\",{month:\"short\",day:\"numeric\",year:\"numeric\"});}catch{return iso;}}export default function BlogIndexGrid(){const[filter,setFilter]=useState(null);const filtered=filter?ARTICLES.filter(a=>a.category===filter):ARTICLES;const categories=[\"universities\",\"exams\",\"dentistry\",\"applying\",\"career\"];return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",fontFamily:FONT,color:DARK},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,marginBottom:24,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>setFilter(null),style:{padding:\"8px 16px\",background:filter===null?DARK:\"#fff\",border:`1px solid ${filter===null?DARK:\"#e0e8f5\"}`,color:filter===null?\"#fff\":DARK,borderRadius:100,fontSize:13,fontWeight:600,cursor:\"pointer\",fontFamily:FONT},children:\"All Topics\"}),categories.map(c=>{const s=CATEGORY_STYLE[c];const active=filter===c;return /*#__PURE__*/_jsx(\"button\",{onClick:()=>setFilter(c),style:{padding:\"8px 16px\",background:active?s.color:\"#fff\",border:`1px solid ${active?s.color:\"#e0e8f5\"}`,color:active?\"#fff\":DARK,borderRadius:100,fontSize:13,fontWeight:600,cursor:\"pointer\",fontFamily:FONT},children:s.label},c);})]}),/*#__PURE__*/_jsx(\"div\",{className:\"big-grid\",style:{display:\"grid\",gap:24},children:filtered.map(a=>{const c=CATEGORY_STYLE[a.category]||CATEGORY_STYLE.universities;return /*#__PURE__*/_jsx(\"a\",{href:a.slug.startsWith(\"/\")?a.slug:`/blog/${a.slug}`,style:{background:\"#fff\",border:\"1px solid #e8ecf4\",borderRadius:16,overflow:\"hidden\",textDecoration:\"none\",color:DARK,display:\"flex\",flexDirection:\"column\",transition:\"transform 0.2s ease, box-shadow 0.2s ease\"},onMouseEnter:e=>{e.currentTarget.style.transform=\"translateY(-3px)\";e.currentTarget.style.boxShadow=\"0 16px 40px rgba(10,22,40,0.1)\";},onMouseLeave:e=>{e.currentTarget.style.transform=\"none\";e.currentTarget.style.boxShadow=\"none\";},children:/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"20px 22px 22px\",display:\"flex\",flexDirection:\"column\",gap:10,flex:1},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"inline-flex\",background:c.bg,borderRadius:100,padding:\"5px 14px\",width:\"fit-content\"},children:/*#__PURE__*/_jsx(\"span\",{style:{fontSize:11,fontWeight:800,color:c.color,letterSpacing:\"0.8px\",textTransform:\"uppercase\"},children:c.label})}),(()=>{const l=LANG_STYLE[a.language]||LANG_STYLE.en;return /*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",alignItems:\"center\",gap:6,background:\"#0a1628\",color:\"#fff\",borderRadius:100,padding:\"5px 13px\",fontSize:11,fontWeight:700,letterSpacing:\"0.3px\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:14,lineHeight:1},children:l.flag}),l.label]});})()]}),/*#__PURE__*/_jsx(\"h3\",{style:{fontSize:17,fontWeight:700,color:DARK,margin:0,lineHeight:1.3,letterSpacing:\"-0.01em\"},children:a.title}),/*#__PURE__*/_jsx(\"p\",{style:{fontSize:14,color:\"#555\",margin:0,lineHeight:1.55,flex:1},children:a.excerpt}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,fontSize:12,color:\"#888\",marginTop:4},children:[/*#__PURE__*/_jsx(\"span\",{children:formatDate(a.date)}),/*#__PURE__*/_jsx(\"span\",{children:\"\\xb7\"}),/*#__PURE__*/_jsx(\"span\",{children:a.readTime})]})]})},a.slug);})}),filtered.length===0&&/*#__PURE__*/_jsx(\"div\",{style:{padding:60,textAlign:\"center\",color:\"#888\",fontSize:14},children:\"No articles in this category yet.\"})]});}addPropertyControls(BlogIndexGrid,{});\nexport const __FramerMetadata__ = {\"exports\":{\"Article\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"BlogIndexGrid\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"ARTICLES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BlogIndexGrid.map","// @framerSupportedLayoutWidth any\n// @framerSupportedLayoutHeight auto\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import React,{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/* ⭐⭐⭐ The Articles panel is DERIVED, never hand-typed. Every blog post is\n   already written into BlogIndexGrid's ARTICLES by the publish chain (that\n   write is mandatory — no entry, no /blog card), so reading it here means a\n   new post reaches the nav on its own, carrying the same social card the post\n   ships. ⛔ Never paste a static list of posts back into NAV_ITEMS. */import{ARTICLES as BLOG_ARTICLES}from\"https://framerusercontent.com/modules/oD5mYdAA9jDRy3WE5B0B/TRTFNBwPbcH9XpeBqVwQ/BlogIndexGrid.js\";/**\n * HomeTestingNav — the navigation from Saif's mockup, built from scratch.\n * Row 1: navy bar, Norsk toggle left, centered MEDENTLY wordmark, Sign in +\n * Apply Now right. Row 2: WHITE link row with a blue underline on the active\n * item.\n *\n * The dropdowns are split mega panels on dark navy, modelled on the\n * list-left / preview-right pattern Saif sent (Sofa Expert nav): the left\n * column lists the destinations, the right column always shows a preview of\n * the highlighted one — a photo for programmes and universities, live sitting\n * dates for the entrance exams, a sample card for the flashcards, and a\n * sliding news carousel under News.\n */const NAVY=\"#0b164a\"// deeper than BallerNav's #0C1C73, matching the mockup bar\n;/* ⭐⭐ 17 Aug (Saif): the drawer's coloured bands take the navy from the\n   /flashcards HERO — \"take that color and use it for the navigation bar on\n   mobile\". ⚠ It is NOT this file's NAVY (#0b164a), it is the page's #0c1c73,\n   which happens to equal DRAWER_INK. ⚠ Hard-coded on purpose: it must not\n   follow the burgundy theme variant, which would turn the bands maroon. */const BAND_NAVY=\"#0c1c73\";/* ⛔ 17 Aug: the coloured CTA glyphs are GONE — the rows carry numbers now, not\n   symbols. Four passes died here (white button → translucent → frosted glass →\n   coloured glyph chips) before Saif said to build them like the Programs rows\n   instead. ⛔ Do not reintroduce an icon chip on .htnav-mm-seeall. */const BLUE=\"#1B62FF\"// the brighter blue the mockup uses on Apply Now\n;const INK=\"#0F172A\";const LINK=\"#1B2333\";const MUTED=\"#000000\"// Saif: panel sub-copy must be black, not grey\n;const ROW2_BORDER=\"rgba(15, 23, 42, 0.09)\";// ── Mobile drawer bits, matching BallerNav's light slide-in on the home page ──\nconst DRAWER_BG=\"linear-gradient(180deg, #f2f6fc 0%, #f8fafe 100%)\";const DRAWER_INK=\"#0c1c73\";const DRAWER_MUTED=\"#6b7280\";const DRAWER_BORDER=\"rgba(13, 23, 48, 0.08)\";const GREEN=\"#10B981\";const FONT=`\"Clash Grotesk\", \"Clash Grotesk Variable\", -apple-system, BlinkMacSystemFont, sans-serif`;const LOGO_SRC=\"https://plain-weur-prod-public.komododecks.com/202605/07/jVKjNlVscnzwQVWdicJm/image.png\";// University marks — the same assets BallerNav already uses.\nconst LOGO_UPJS=\"https://framerusercontent.com/images/XG7TWvjzGlE6UQa5zRJRveQFE.jpg\";const LOGO_UPOL=\"https://framerusercontent.com/images/dlmWaf6qgVhhnM0LyU7tEjkxhw.png\";const LOGO_UMCH=\"https://framerusercontent.com/images/Tqp5TT8bo9opHqvNigJI7qlWXEU.jpeg\";const LOGO_RSU=\"https://framerusercontent.com/images/K9kj3gwCWoFFG6JafXuO03YciQE.png\";/* ⭐ Zoomed emblem crops (Saif 12 Aug: the raw uploads were small marks lost\n   in white padding — NCU must be the blue-and-yellow Copernicus emblem, UNIC\n   the red U shield, both filling the chip). Raw originals if ever needed:\n   vyNvW1BrbkZdnbTv5a4YXmqU.png / pZhFb4q3OE6fFIqRO02lDhToMc4.png. */const LOGO_NCU=\"https://framerusercontent.com/images/bi1an0qoHDszga1qS05DzHzz2rY.png\";const LOGO_UNIC=\"https://framerusercontent.com/images/6AOWdEb7QPsXmiZpOBnlLBp8EA.png\";const PHOTO_RSU=\"https://framerusercontent.com/images/z8hqjyl0XLknHzX3DfrpDwZLA.jpg\";// CM main building — the same hero /medently-x-ncu uses. (News carousel only —\n// NCU/UNIC are in the Universities menu since 8 Aug (Saif reversed the 6 Aug news-only order).\nconst PHOTO_NCU=\"https://framerusercontent.com/images/wq3cn9h7tyuCyzxIotucA1zossI.jpg\";// The same campus shot the /medently-x-unic hero uses.\nconst PHOTO_UNIC=\"https://framerusercontent.com/images/eYEuZtcRfrtG6RFRCry42XX3xIc.jpg\";// Campus photography — the same shots the /universities section uses.\nconst PHOTO_UPJS=\"https://framerusercontent.com/images/ocolVshT6kqyLgaL6l46BPgFI7E.jpg\";const PHOTO_UPOL=\"https://framerusercontent.com/images/qXWGK38hW9lnttX3wAlqCAPRXPc.jpg\";// First shot in the UMCH profile gallery on /universities/umch.\nconst PHOTO_UMCH=\"https://framerusercontent.com/images/QGAIUvL0NZQepQqpB7UZGG0TaA.jpg\";// Programme photography — the same three shots BallerPrograms uses on the home page.\n/* Current Students. The notary photo is a real person pressing an embossing\n   seal — picked off a contact sheet, not from alt text. The other two reuse\n   assets already on the site: the reading room the Transfer strip uses, and\n   Košice at dusk. */const PHOTO_NOTARY=\"https://framerusercontent.com/images/nKMbaLGiRfm57fdWdyT5DEF2U.jpg\";const PHOTO_KOSICE=\"https://framerusercontent.com/images/gXyrxmPY5leQrGO1I6WBo1yBZw.jpg\";const PHOTO_MEDICINE=\"https://framerusercontent.com/images/xT45XixCsvwuK5dEQ7Akbn0DU.jpg\";const PHOTO_DENTISTRY=\"https://framerusercontent.com/images/C6yZefBgdc2zKGkd5tEYHdKBaIc.jpg\";const PHOTO_TRANSFER=\"https://framerusercontent.com/images/2GUQKwJuzOu2SPhw86CMVmhDUk.jpg\";/* Extra tiles for the Programs preview strips. Saif's brief: the existing photo\n   stays the MAIN one (it is what the phone drawer shows) and sits first; the\n   second and third are new. Every one of these is PORTRAIT on purpose — a\n   landscape shot in a third-width tile would crop as badly as the old single\n   frame did.\n   ⏳ The four medicine/dentistry tiles below are stand-ins. Saif has his own\n   photos of real Medently students (theatre with a syringe, stethoscopes in a\n   circle, a typodont in the lab, a dental surgery over the city) that belong\n   here instead — swap them in as soon as the files exist on disk. */const PHOTO_MEDICINE_2=\"https://framerusercontent.com/images/iRGFrCUYPb9L0XVpa1AZjSVUsQ.jpg\";const PHOTO_MEDICINE_3=\"https://framerusercontent.com/images/3KLaPLQIXnB1P3p6lRZVjeqkV8.jpg\";/* ⛔ 17 Aug (Saif): the previous DENTISTRY_2 and TRANSFER_2 were replaced —\n   \"it looks very AI\". Both of these are real photographs pulled through\n   framer.agent.queryImages (Unsplash) and uploaded into the project.\n   ⚠ They are the MIDDLE tile of each three-photo strip, which is the one he\n   was pointing at. */const PHOTO_DENTISTRY_2=\"https://framerusercontent.com/images/hNjtdnISqOymuZotvyWqRIMMkUI.jpg\";const PHOTO_DENTISTRY_3=\"https://framerusercontent.com/images/qPZkFXnUbzX8bDs3lkQL5k9U.jpg\";const PHOTO_TRANSFER_2=\"https://framerusercontent.com/images/uDLtk1SscUiKhIO43K8TAIxAmCs.jpg\";const PHOTO_TRANSFER_3=\"https://framerusercontent.com/images/c0Xa6sIjxiy7GnWG3NAkESKcERQ.jpg\";// News photography — each shot is the hero its own page already uses.\nconst NEWS_OSLO=\"https://framerusercontent.com/images/VETZ2KGB7z02f0wTrVjgz0bO0.jpg\";const NEWS_OMAR=\"https://framerusercontent.com/images/0Im7aW8VSDMRKhiJKwMHDtdWeUg.jpg\";const NEWS_RSU=\"https://framerusercontent.com/images/z8hqjyl0XLknHzX3DfrpDwZLA.jpg\";/**\n * Framer's CDN resizes on demand with ?scale-down-to=<px>. The country-guide\n * photography is Unsplash-original and runs to 6.8 MB a frame, so every <img>\n * below asks for the width it actually paints at.\n * ⛔ Never use srcSet/sizes in a Framer code component — Framer rewrites `sizes`\n * and the browser then picks the largest candidate. One explicit width instead.\n */const sd=(url,w=512)=>url&&!url.includes(\"?\")?`${url}?scale-down-to=${w}`:url;/* Country photography — the hero each /study-medicine-in-* guide already\n   publishes, so the menu previews what the page actually looks like. */const CY_HERO=\"https://framerusercontent.com/images/F3zWg7AeaQ08L7GxV58WdG3qgHc.jpg\";const PL_HERO=\"https://framerusercontent.com/images/JrOmo5GU92756NCqOutEFNRk0.jpg\";const LV_HERO=\"https://framerusercontent.com/images/u7ZuBrKxfXMSXMfpO4bTajbkj4.jpg\";const DE_HERO=\"https://framerusercontent.com/images/6iGViPvEKTd4YSiDx32bQtxwqI.jpg\";const SK_HERO=\"https://framerusercontent.com/images/PQkAv9lQABIqJEc83BTLGKhYSfg.jpg\";const CZ_HERO=\"https://framerusercontent.com/images/3wxzze1jhKCNxExOs6qR2XewU.jpg\";/* The team faces from /our-team, used as the avatar row under About Us.\n   ⛔ Keep this list matching the /our-team roster: Shakhzoda came off both on\n   28 Aug 2026 and Husnein + Georg on 29 Aug 2026 (Saif), so those faces must not\n   come back here on their own. */const TEAM_FACES=[\"https://framerusercontent.com/images/LYm6CyJglxRinkzbjS0RMdkqfc.jpg\",\"https://framerusercontent.com/images/YXZ1W2tBXfrUTPiYFBXJnmL38.jpg\",\"https://framerusercontent.com/images/1XkC08UWrfzjEYKfHbVaO4GHRuA.jpg\",\"https://framerusercontent.com/images/ZDg2p9jzXYYswvnDYdU8mtzz4k.jpg\",\"https://framerusercontent.com/images/jdDOeyMV1QtrsXHFKXgi6rYaEw.jpg\"];/* ⭐ White transparent logo PNGs shared with the homepage \"Our Partners\"\n   strip — the Universities panel's resting preview (Saif 13 Aug: \"all their\n   logos… in white\"). Order matches the menu rows. */const WHITE_UNI_LOGOS=[\"https://framerusercontent.com/images/MqPE0kkjTYkFP3k9P8D0oGuy24.png\",\"https://framerusercontent.com/images/kgFg80J1earJWSwcIurNH3uJazk.png\",\"https://framerusercontent.com/images/EpQNqSdYp7TH7kimHX87IqUadGY.png\",\"https://framerusercontent.com/images/lv9Q69PLUh0BcVEAjXCAjYi8oU.png\",\"https://framerusercontent.com/images/gvcGDiXSlg7vRFgWfBlrQyJAMZc.png\",\"https://framerusercontent.com/images/L8QdnrE5JrAeHk7PxtImpVmOJhs.png\"];/* One real review each, opening verbatim from /reviews (and from Google) and cut\n   at a sentence boundary — the trailing … is what says \"there is more\".\n   ⛔ Never reword these: they are other people's words. Only ever shorten from\n   the end, and only at a full stop. */const REVIEW_EN={name:\"Beyza Turkmen\",text:\"An amazing association that provides outstanding support for students preparing for Medicine and Dentistry. They helped me with everything I needed, always answered my questions, and supported me throughout the entire process…\"};const REVIEW_NO={name:\"Mona Yusuf\",text:\"Veldig forn\\xf8yd med Medently! De gjorde s\\xf8knadsprosessen enkel og oversiktlig, og fulgte meg opp hele veien…\"};const NorwegianFlag=()=>/*#__PURE__*/_jsxs(\"svg\",{width:\"26\",height:\"19\",viewBox:\"0 0 22 16\",style:{borderRadius:3,display:\"block\",flexShrink:0},children:[/*#__PURE__*/_jsx(\"rect\",{width:\"22\",height:\"16\",fill:\"#EF2B2D\"}),/*#__PURE__*/_jsx(\"rect\",{x:\"6\",width:\"3\",height:\"16\",fill:\"#FFFFFF\"}),/*#__PURE__*/_jsx(\"rect\",{width:\"22\",y:\"6.5\",height:\"3\",fill:\"#FFFFFF\"}),/*#__PURE__*/_jsx(\"rect\",{x:\"7\",width:\"1\",height:\"16\",fill:\"#002868\"}),/*#__PURE__*/_jsx(\"rect\",{width:\"22\",y:\"7.5\",height:\"1\",fill:\"#002868\"})]});const Caret=({open})=>/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",className:\"htnav-caret\",style:{transform:open?\"rotate(180deg)\":\"none\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M6 9l6 6 6-6\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});const ArrowIcon=({color=\"#fff\"})=>/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",className:\"htnav-arrow\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\",stroke:color,strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});const CalendarIcon=({color=\"#fff\"})=>/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",style:{width:18,height:18,flexShrink:0,display:\"block\"},children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"5\",width:\"17\",height:\"15.5\",rx:\"2.5\",stroke:color,strokeWidth:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 9.5h17M8 3v4M16 3v4\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"})]});const CapIcon=({color=\"#fff\"})=>/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",style:{display:\"block\"},children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 4 2.5 8.6 12 13.2l9.5-4.6L12 4Z\",stroke:color,strokeWidth:\"2\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M6.2 10.8v4.9c0 1.2 2.6 2.9 5.8 2.9s5.8-1.7 5.8-2.9v-4.9\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M21.5 9v5\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"})]});const NewsIcon=({color=\"#fff\"})=>/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",style:{display:\"block\"},children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"4.5\",width:\"17\",height:\"15\",rx:\"2.5\",stroke:color,strokeWidth:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M7.5 9h9M7.5 12.5h9M7.5 16h5.5\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"})]});/* ⭐ 14 Aug: chips for the phone drawer's blue bands. Every band carries one so\n   Our Team / Student Reviews / Browse universities / Open the flashcards read\n   as the same component as the exam bands, which already had a chip. */const TeamIcon=({color=\"#fff\"})=>/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",style:{display:\"block\"},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"9.2\",cy:\"8\",r:\"3.4\",stroke:color,strokeWidth:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.4 19.4c0-3.1 2.6-5.1 5.8-5.1s5.8 2 5.8 5.1\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M16.6 5.4a3.3 3.3 0 0 1 0 6.4M17.8 14.6c1.9.6 3 2.2 3 4.3\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"})]});const StarIcon=({color=\"#fff\"})=>/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",style:{display:\"block\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 3.7l2.6 5.2 5.8.9-4.2 4.1 1 5.7-5.2-2.7-5.2 2.7 1-5.7-4.2-4.1 5.8-.9L12 3.7Z\",stroke:color,strokeWidth:\"2\",strokeLinejoin:\"round\"})});const CardsIcon=({color=\"#fff\"})=>/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",style:{display:\"block\"},children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.2\",y:\"6.8\",width:\"12.4\",height:\"13.6\",rx:\"2.4\",stroke:color,strokeWidth:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M8.6 3.6h9A2.4 2.4 0 0 1 20 6v10.4\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"})]});const MONTHS_EN=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];const MONTHS_NO=[\"jan\",\"feb\",\"mar\",\"apr\",\"mai\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"des\"];/* Read the day straight off the ISO string. ⛔ new Date(\"...T00:00:00.000Z\")\n   .getDate() returns the PREVIOUS day everywhere west of UTC, which would make\n   the nav disagree with the date printed on the post itself. */function navDate(iso,norsk){const m=/^(\\d{4})-(\\d{2})-(\\d{2})/.exec(String(iso||\"\"));if(!m)return\"\";const day=parseInt(m[3],10);const mon=parseInt(m[2],10)-1;const name=(norsk?MONTHS_NO:MONTHS_EN)[mon];if(!name)return\"\";return norsk?`${day}. ${name} ${m[1]}`:`${day} ${name} ${m[1]}`;}/* Newest `count` posts in one language. Entries whose slug starts with \"/\" are\n   the market landing pages the /blog grid also lists — they are not articles,\n   so they never enter the panel. Sorting a filtered COPY keeps ARTICLES itself\n   in the order /blog renders it. */function latestPosts(language,count){const rows=BLOG_ARTICLES.filter(a=>a&&a.language===language&&typeof a.slug===\"string\"&&a.slug&&a.slug.charAt(0)!==\"/\"&&a.image&&a.title);rows.sort((a,b)=>String(b.date).localeCompare(String(a.date)));return rows.slice(0,count).map(a=>({title:a.title,date:navDate(a.date,language===\"no\"),read:a.readTime||\"\",href:`/blog/${a.slug}`,img:a.image}));}const NEWS=[{title:\"Medently now works with UNIC in Cyprus\",date:\"6 August 2026\",href:\"/medently-x-unic\",img:PHOTO_UNIC,tag:\"Collaboration\"},{title:\"We partnered with NCU in Bydgoszcz\",date:\"1 August 2026\",href:\"/medently-x-ncu\",img:PHOTO_NCU,tag:\"Collaboration\"},{title:\"We held the UPJŠ entrance exam in Oslo\",date:\"20 July 2026\",href:\"/oslo-exam-2026\",img:NEWS_OSLO,tag:\"Exams\"},{title:\"Omar wins Student of the Year\",date:\"18 July 2026\",href:\"/student-of-the-year\",img:NEWS_OMAR,tag:\"Students\"},{title:\"We officially partnered with RSU Riga\",date:\"12 July 2026\",href:\"/medently-x-rsu\",img:NEWS_RSU,tag:\"Collaboration\"}];const NAV_ITEMS=[{label:\"Home\",href:\"/\"},{label:\"About Us\",kind:\"about\",eyebrow:\"Get to know Medently\",news:NEWS,cards:[{title:\"Our Team\",sub:\"The medical students and doctors behind Medently.\",href:\"/our-team\",view:\"team\",/* ⛔ Not \"every one of us\" — the roster also has business and\n                   service-management people. Most, not all, went abroad. */chip:\"Doctors, students and staff\",info:\"Most of us studied medicine or dentistry abroad ourselves. You are guided by people who sat the same exams, moved to the same cities and made the same mistakes first.\"},{title:\"Student Reviews\",sub:\"What our students say on Google, unedited.\",href:\"/reviews\",view:\"reviews\",chip:\"5.0 ★ \\xb7 46 Google reviews\",info:\"Every review we have ever received on Google, exactly as it was written — Norwegian stays Norwegian, English stays English.\"},{title:\"Collaborations\",sub:\"New partnerships and milestones\",view:\"collab\",info:\"The universities and organisations we work with, and the milestones we have reached together.\"}]},{label:\"Programs\",kind:\"cards\",eyebrow:\"Our programs\",footer:{label:\"See every English-taught programme\",href:\"/programs\"},cards:[{title:\"Medicine\",sub:\"Six years, English-taught, at top European universities.\",href:\"/programs/medicine\",photo:PHOTO_MEDICINE,photos:[PHOTO_MEDICINE,PHOTO_MEDICINE_2,PHOTO_MEDICINE_3],chip:\"6 years \\xb7 MD\",info:\"Become a doctor at a European university — six years, taught fully in English, with free help from Medently at every step.\"},{title:\"Dentistry\",sub:\"Five years to an MDDr at world-class dental faculties.\",href:\"/programs/dentistry\",photo:PHOTO_DENTISTRY,photos:[PHOTO_DENTISTRY,PHOTO_DENTISTRY_2,PHOTO_DENTISTRY_3],chip:\"5 years \\xb7 MDDr\",info:\"Five years to a dental degree at world-class faculties in Slovakia, Czechia and Latvia.\"},{title:\"Transfer Students\",sub:\"Move your credits to a better-fit university and carry on.\",href:\"/transfer\",photo:PHOTO_TRANSFER,photos:[PHOTO_TRANSFER,PHOTO_TRANSFER_2,PHOTO_TRANSFER_3],chip:\"Keep your credits\",info:\"Already studying? Move your credits to a partner university and continue where you left off.\"}]},{label:\"Countries\",kind:\"country\",eyebrow:\"Where you can study\",/* ⛔ No footer link here on purpose. The obvious candidate,\n           /university-selector, still scores only four universities (no NCU, no\n           UNIC) and has no Norwegian twin — it cannot answer a six-country menu. */cards:[{title:\"Cyprus\",sub:\"University of Nicosia \\xb7 Nicosia\",href:\"/study-medicine-in-cyprus\",photo:CY_HERO,chip:\"No entrance exam\",/* ⛔ Not \"grades alone\" — the Cyprus guide is explicit that UNIC\n                   also runs an online interview and asks Norwegians for IELTS. */info:\"An English-taught MD on a Mediterranean island. No entrance exam — your grades and one online interview decide it, and admission runs on a rolling basis.\",uniName:\"UNIC Nicosia\",uniLogo:LOGO_UNIC,uniHref:\"/universities/unic\"},{title:\"Poland\",sub:\"Nicolaus Copernicus University \\xb7 Bydgoszcz\",href:\"/study-medicine-in-poland\",photo:PL_HERO,chip:\"No grade minimums\",info:\"A 6-year English M.D. where one online exam decides it, not your school report — and the tuition cannot rise while you study.\",uniName:\"NCU Bydgoszcz\",uniLogo:LOGO_NCU,uniHref:\"/universities/ncu\"},{title:\"Latvia\",sub:\"Rīga Stradiņš University \\xb7 Riga\",href:\"/study-medicine-in-latvia\",photo:LV_HERO,chip:\"No entrance exam\",info:\"Medicine and Dentistry in English in the Latvian capital, decided on grades alone. The next start is the February 2027 intake.\",uniName:\"RSU Riga\",uniLogo:LOGO_RSU,uniHref:\"/universities/rsu\"},{title:\"Germany\",sub:\"Medical Campus Hamburg \\xb7 Hamburg\",href:\"/study-medicine-in-germany\",photo:DE_HERO,chip:\"Online exam + interview\",info:\"Study medicine in English in Germany, with up to three exam attempts a year and no grade cutoff standing in the way.\",uniName:\"UMCH Hamburg\",uniLogo:LOGO_UMCH,uniHref:\"/universities/umch\"},{title:\"Slovakia\",sub:\"Pavol Jozef Šaf\\xe1rik University \\xb7 Košice\",href:\"/study-medicine-in-slovakia\",photo:SK_HERO,chip:\"Biology & chemistry only\",info:\"Our oldest partnership: Medicine and Dentistry in English in Košice, on an entrance exam that tests two subjects and nothing else.\",uniName:\"UPJŠ Košice\",uniLogo:LOGO_UPJS,uniHref:\"/universities/upjs\"},{title:\"Czechia\",sub:\"Palack\\xfd University \\xb7 Olomouc\",href:\"/study-medicine-in-czech-republic\",photo:CZ_HERO,chip:\"Online, instant result\",info:\"One of Central Europe's oldest universities, in a student city of 100,000 — the entrance exam is taken online from home.\",uniName:\"UPOL Olomouc\",uniLogo:LOGO_UPOL,uniHref:\"/universities/upol\"}],dent:[{title:\"Slovakia\",sub:\"UPJŠ Košice \\xb7 5-year MDDr.\",href:\"/study-dentistry-in-slovakia\",photo:SK_HERO,chip:\"Biology & chemistry only\",uniName:\"UPJŠ Košice\",uniLogo:LOGO_UPJS,uniHref:\"/universities/upjs\"},{title:\"Czechia\",sub:\"Palack\\xfd Olomouc \\xb7 15–20 places\",href:\"/study-dentistry-in-czech-republic\",photo:CZ_HERO,chip:\"Online, instant result\",uniName:\"UPOL Olomouc\",uniLogo:LOGO_UPOL,uniHref:\"/universities/upol\"},{title:\"Latvia\",sub:\"RSU Riga \\xb7 32 places per intake\",href:\"/study-dentistry-in-latvia\",photo:LV_HERO,chip:\"No entrance exam\",uniName:\"RSU Riga\",uniLogo:LOGO_RSU,uniHref:\"/universities/rsu\"}]},{label:\"Universities\",kind:\"cards\",eyebrow:\"Our universities\",bannerTop:true,footer:{label:\"Browse all partner universities\",href:\"/universities\"},cards:[{title:\"UPJŠ Košice\",sub:\"Pavol Jozef Šaf\\xe1rik University \\xb7 Slovakia\",href:\"/universities/upjs\",photo:PHOTO_UPJS,logo:LOGO_UPJS,badge:\"Medicine \\xb7 Dentistry\",info:\"Pavol Jozef Šaf\\xe1rik University in Košice — Medicine and Dentistry taught fully in English, in Slovakia's second-largest city.\",country:\"Slovakia\",examHref:\"/exams/upjs\"},{title:\"UPOL Olomouc\",sub:\"Palack\\xfd University \\xb7 Czechia\",href:\"/universities/upol\",photo:PHOTO_UPOL,logo:LOGO_UPOL,badge:\"Medicine \\xb7 Dentistry\",info:\"Palack\\xfd University in Olomouc — one of Central Europe's oldest universities, with English-taught Medicine and Dentistry.\",country:\"Czechia\",examHref:\"/exams/upol\"},{title:\"UMCH Hamburg\",sub:\"Medical Campus Hamburg \\xb7 Germany\",href:\"/universities/umch\",photo:PHOTO_UMCH,logo:LOGO_UMCH,badge:\"Medicine\",info:\"Medical Campus Hamburg — study Medicine in English in Germany. Our only German partner university.\",country:\"Germany\",examHref:\"/exams/umch\"},{title:\"RSU Riga\",isNew:true,sub:\"Rīga Stradiņš University \\xb7 Latvia\",href:\"/universities/rsu\",photo:PHOTO_RSU,logo:LOGO_RSU,badge:\"Medicine \\xb7 Dentistry\",info:\"Rīga Stradiņš University in Riga — Medicine and Dentistry in English in the Latvian capital, with no entrance exam. The next start is the February 2027 intake.\",country:\"Latvia\"},{title:\"NCU Bydgoszcz\",isNew:true,sub:\"Nicolaus Copernicus University \\xb7 Poland\",href:\"/universities/ncu\",photo:PHOTO_NCU,logo:LOGO_NCU,badge:\"Medicine\",info:\"NCU Collegium Medicum in Bydgoszcz — a 6-year English M.D. with no grade minimums and tuition locked for the whole programme.\",country:\"Poland\",examHref:\"/exams/ncu\"},{title:\"UNIC Nicosia\",isNew:true,sub:\"University of Nicosia \\xb7 Cyprus\",href:\"/universities/unic\",photo:PHOTO_UNIC,logo:LOGO_UNIC,badge:\"Medicine\",info:\"The University of Nicosia Medical School — a 6-year English MD in Cyprus with no entrance exam and rolling admission.\",country:\"Cyprus\"}]},{label:\"Entrance Exam\",kind:\"exam\",eyebrow:\"Entrance exams\",cards:[{title:\"Slovakia — UPJŠ\",sub:\"Biology & chemistry preparation material\",href:\"/exams/upjs\",logo:LOGO_UPJS,examKey:\"upjs\",info:\"A written test in biology and chemistry. Medently prepares you for free: study notes, flashcards and mock exams.\"},{title:\"Czechia — UPOL\",sub:\"Bio, chem, physics, maths & English\",href:\"/exams/upol\",logo:LOGO_UPOL,examKey:\"upol\",info:\"An online multiple-choice test in biology, chemistry, physics, maths and English, followed by a short interview.\"},{title:\"Germany — UMCH\",sub:\"How the Hamburg admission test works\",href:\"/exams/umch\",logo:LOGO_UMCH,examKey:\"umch\",info:\"An online test in biology, chemistry and general knowledge plus a short interview, with up to three attempts a year. We walk you through both, free.\"},{title:\"Poland — NCU\",sub:\"50 questions online + a short oral\",href:\"/exams/ncu\",logo:LOGO_NCU,// Without examKey this card shows no sittings at all, silently —\n// it is the only thing that connects it to the ?examDates=1 feed.\nexamKey:\"ncu\",info:\"A proctored online test — 50 questions in biology, chemistry and physics — then a short oral the next day. No grade minimums at all.\"}]},/* ⛔⛔ 17 Aug 2026 (Saif): FLASHCARDS HAS NO DROPDOWN. It is a plain link\n       straight to /flashcards — \"I just want to have the flashcards for UPJŠ …\n       whenever someone clicks it they get to the actual new page\". The old\n       two-card panel went with it: \"nobody uses UPOL\". ⛔ Do not give this item\n       a `kind` again. The UPJŠ deck is still reachable from the Entrance Exam\n       panel, where the Slovakia row now carries its own flashcards link. */{label:\"Flashcards\",href:\"/flashcards\"},{label:\"Transfer Students\",href:\"/transfer\"},{/* Same dress as the Universities panel: logo rows on the left, a live\n           preview on the right that changes as you hover. ⛔ No `country` on\n           these cards — that is what gates the university CTA block, which\n           would be wrong on a guide. ⛔ No `bannerTop`, so no logo wall. */label:\"Current Students\",kind:\"cards\",eyebrow:\"Guides for students already studying\",cards:[{title:\"Notarising your diploma\",sub:\"UPJŠ Košice \\xb7 Slovakia\",href:\"/notarization-upjs\",photo:PHOTO_NOTARY,logo:LOGO_UPJS,badge:\"Documents\",info:\"Which of your documents UPJŠ needs notarised, why the notary and the sworn translation both have to be done in Slovakia, and what each step costs.\"},{title:\"Transferring to UPJŠ\",sub:\"UPJŠ Košice \\xb7 Slovakia\",href:\"/transfer/upjs\",photo:PHOTO_TRANSFER,logo:LOGO_UPJS,badge:\"Step by step\",info:\"Every document your old university has to stamp, the recognition spreadsheet and how to fill it, the €20 fee, where to post it and the 15 September deadline.\"},{title:\"Housing in Košice\",sub:\"UPJŠ Košice \\xb7 Slovakia\",href:\"/housing-in-kosice\",photo:PHOTO_KOSICE,logo:LOGO_UPJS,badge:\"Living there\",info:\"A live list of flats in Košice with what each one really costs, the deposit the law actually allows, and how far each place is from the faculty.\"}]},{label:\"Articles\",kind:\"articles\",eyebrow:\"Latest from the Medently blog\",footer:{label:\"Read all articles by Medently\",href:\"/blog\"},/* Snapshot of the six newest posts on /blog, with the same cover image\n           the post ships as its social card. Code components get no CMS access\n           at runtime, so ⭐ REFRESH THIS LIST (both languages) whenever new\n           articles go out — the images are what make the panel work. */posts:latestPosts(\"en\",10),postsNo:latestPosts(\"no\",10)},{label:\"Contact\",href:\"/contact\"}];// ── Norwegian rendering. Internal keys stay English on purpose (state, icons\n//    and the active-item matcher are all keyed off the English labels). ──\nconst NO_LABELS={\"Menu\":\"Meny\",\"Close\":\"Lukk\",\"Home\":\"Hjem\",\"About Us\":\"Om oss\",\"Countries\":\"Land\",\"Articles\":\"Artikler\",\"Get to know Medently\":\"Bli kjent med Medently\",\"Where you can study\":\"Hvor du kan studere\",\"Places you can study medicine\":\"Her kan du studere medisin\",\"Places you can study dentistry\":\"Her kan du studere odontologi\",\"Only three of the universities we work with teach dentistry in English.\":\"Bare tre av universitetene vi samarbeider med underviser odontologi p\\xe5 engelsk.\",\"Everywhere else on this list is medicine only.\":\"Alle de andre p\\xe5 denne listen tilbyr kun medisin.\",\"Latest from the Medently blog\":\"Siste fra Medently-bloggen\",\"Read all articles by Medently\":\"Les alle artikler fra Medently\",\"Meet the whole team\":\"M\\xf8t hele teamet\",\"Read all reviews\":\"Les alle anmeldelsene\",\"Read the country guide\":\"Les landguiden\",\"Our university there\":\"V\\xe5rt universitet der\",\"Doctors, students and staff\":\"Leger, studenter og ansatte\",\"5.0 ★ \\xb7 46 Google reviews\":\"5,0 ★ \\xb7 46 Google-anmeldelser\",\"No entrance exam\":\"Ingen opptakspr\\xf8ve\",\"No grade minimums\":\"Ingen karakterkrav\",\"Online exam + interview\":\"Nettpr\\xf8ve + intervju\",\"Biology & chemistry only\":\"Kun biologi og kjemi\",\"Online, instant result\":\"P\\xe5 nett, svar med \\xe9n gang\",\"Our Team\":\"V\\xe5rt team\",\"Programs\":\"Programmer\",\"All Programs\":\"Alle programmer\",\"Medicine\":\"Medisin\",\"Dentistry\":\"Tannlege\",\"Universities\":\"Universiteter\",\"All Universities\":\"Alle universiteter\",\"Entrance Exam\":\"Opptakspr\\xf8ve\",\"Exam Dates\":\"Pr\\xf8vedatoer\",\"Flashcards\":\"Flashcards\",\"UPJŠ entrance exam flashcards\":\"Flashcards til UPJŠ-opptakspr\\xf8ven\",\"Transfer Students\":\"Bytte studiested\",\"Current Students\":\"N\\xe5v\\xe6rende studenter\",\"Guides for students already studying\":\"Guider for deg som allerede studerer\",\"Notarising your diploma\":\"Notarisering av vitnem\\xe5let ditt\",\"Transferring to UPJŠ\":\"Overflytting til UPJŠ\",\"Housing in Košice\":\"Bolig i Košice\",\"Documents\":\"Dokumenter\",\"Step by step\":\"Steg for steg\",\"Living there\":\"\\xc5 bo der\",\"UPJŠ Košice \\xb7 Slovakia\":\"UPJŠ Košice \\xb7 Slovakia\",\"Which of your documents UPJŠ needs notarised, why the notary and the sworn translation both have to be done in Slovakia, and what each step costs.\":\"Hvilke av dokumentene dine UPJŠ krever notarisert, hvorfor b\\xe5de notariseringen og den autoriserte oversettelsen m\\xe5 gj\\xf8res i Slovakia, og hva hvert steg koster.\",\"Every document your old university has to stamp, the recognition spreadsheet and how to fill it, the €20 fee, where to post it and the 15 September deadline.\":\"Alle dokumentene det gamle universitetet ditt m\\xe5 stemple, godkjenningsskjemaet og hvordan du fyller det ut, gebyret p\\xe5 20 €, hvor du sender det og fristen 15. september.\",\"A live list of flats in Košice with what each one really costs, the deposit the law actually allows, and how far each place is from the faculty.\":\"En oppdatert liste over leiligheter i Košice med hva hver av dem faktisk koster, depositumet loven tillater, og hvor langt hvert sted er fra fakultetet.\",\"Student Reviews\":\"Anmeldelser\",\"Blog\":\"Blogg\",\"News\":\"Nyheter\",\"Collaborations\":\"Samarbeid\",\"Contact\":\"Kontakt\",\"Sign in\":\"Logg inn\",\"Apply Now\":\"S\\xf8k n\\xe5\",\"Apply for free now\":\"S\\xf8k gratis n\\xe5\",\"New\":\"Ny\",\"UPJŠ Košice\":\"UPJŠ Košice\",\"UPOL Olomouc\":\"UPOL Olomouc\",\"UMCH Hamburg\":\"UMCH Hamburg\",\"RSU Riga\":\"RSU Riga\",\"NCU Bydgoszcz\":\"NCU Bydgoszcz\",\"UNIC Nicosia\":\"UNIC Nikosia\",\"Slovakia — UPJŠ\":\"Slovakia — UPJŠ\",\"Czechia — UPOL\":\"Tsjekkia — UPOL\",\"Germany — UMCH\":\"Tyskland — UMCH\",\"Poland — NCU\":\"Polen — NCU\",\"Norwegian Student Hub\":\"For norske studenter\",\"See all entrance exam dates\":\"Se alle pr\\xf8vedatoer\",\"Check every grade requirement\":\"Sjekk alle karakterkrav\",\"Entrance exams\":\"Opptakspr\\xf8ver\",\"Prepare with Medently flashcards\":\"Forbered deg med Medently flashcards\",\"The only agency that gives you the real question bank\":\"Det eneste byr\\xe5et som gir deg den ekte sp\\xf8rsm\\xe5lsbanken\",\"See every English-taught programme\":\"Se alle engelskspr\\xe5klige programmer\",\"Browse all partner universities\":\"Se alle samarbeidsuniversiteter\",\"All upcoming exam dates\":\"Alle kommende pr\\xf8vedatoer\",\"Open the flashcard app\":\"\\xc5pne flashcard-appen\",\"Read the full guide\":\"Les hele guiden\",\"Our programs\":\"V\\xe5re programmer\",\"Our universities\":\"V\\xe5re universiteter\",\"Medently now works with UNIC in Cyprus\":\"Medently samarbeider n\\xe5 med UNIC p\\xe5 Kypros\",\"We partnered with NCU in Bydgoszcz\":\"Nytt samarbeid med NCU i Bydgoszcz\",\"We held the UPJŠ entrance exam in Oslo\":\"Vi holdt UPJŠ-opptakspr\\xf8ven i Oslo\",\"Omar wins Student of the Year\":\"Omar ble \\xe5rets student\",\"We officially partnered with RSU Riga\":\"Offisielt samarbeid med RSU i Riga\",\"Collaboration\":\"Samarbeid\",\"Exams\":\"Opptakspr\\xf8ve\",\"Students\":\"Studenter\",\"Read About University\":\"Les om universitetet\",\"Entrance Exam Info\":\"Om opptakspr\\xf8ven\",\"Country\":\"Land\",\"Slovakia\":\"Slovakia\",\"Czechia\":\"Tsjekkia\",\"Germany\":\"Tyskland\",\"Latvia\":\"Latvia\",\"Poland\":\"Polen\",\"Cyprus\":\"Kypros\"};const NO_SUBS={/* ── About Us ── */\"The medical students and doctors behind Medently.\":\"Medisinstudentene og legene bak Medently.\",\"What our students say on Google, unedited.\":\"Det studentene v\\xe5re skriver p\\xe5 Google, uredigert.\",\"Most of us studied medicine or dentistry abroad ourselves. You are guided by people who sat the same exams, moved to the same cities and made the same mistakes first.\":\"De fleste av oss har selv studert medisin eller odontologi i utlandet. Du blir veiledet av folk som har tatt de samme pr\\xf8vene, flyttet til de samme byene og gjort de samme feilene f\\xf8rst.\",\"Every review we have ever received on Google, exactly as it was written — Norwegian stays Norwegian, English stays English.\":\"Hver eneste anmeldelse vi har f\\xe5tt p\\xe5 Google, akkurat slik den ble skrevet — norsk forblir norsk, engelsk forblir engelsk.\",\"The universities and organisations we work with, and the milestones we have reached together.\":\"Universitetene og organisasjonene vi samarbeider med, og milep\\xe6lene vi har n\\xe5dd sammen.\",/* ── Countries ── */\"University of Nicosia \\xb7 Nicosia\":\"University of Nicosia \\xb7 Nikosia\",\"UPJŠ Košice \\xb7 5-year MDDr.\":\"UPJŠ Košice \\xb7 5-\\xe5rig MDDr.\",\"Palack\\xfd Olomouc \\xb7 15–20 places\":\"Palack\\xfd Olomouc \\xb7 15–20 plasser\",\"RSU Riga \\xb7 32 places per intake\":\"RSU Riga \\xb7 32 plasser per opptak\",\"Nicolaus Copernicus University \\xb7 Bydgoszcz\":\"Nicolaus Copernicus University \\xb7 Bydgoszcz\",\"Rīga Stradiņš University \\xb7 Riga\":\"Rīga Stradiņš University \\xb7 Riga\",\"Medical Campus Hamburg \\xb7 Hamburg\":\"Medical Campus Hamburg \\xb7 Hamburg\",\"Pavol Jozef Šaf\\xe1rik University \\xb7 Košice\":\"Pavol Jozef Šaf\\xe1rik University \\xb7 Košice\",\"Palack\\xfd University \\xb7 Olomouc\":\"Palack\\xfd University \\xb7 Olomouc\",\"An English-taught MD on a Mediterranean island. No entrance exam — your grades and one online interview decide it, and admission runs on a rolling basis.\":\"Engelskspr\\xe5klig medisin p\\xe5 en \\xf8y i Middelhavet. Ingen opptakspr\\xf8ve — karakterene dine og ett intervju p\\xe5 nett avgj\\xf8r, og opptaket er l\\xf8pende.\",\"A 6-year English M.D. where one online exam decides it, not your school report — and the tuition cannot rise while you study.\":\"6-\\xe5rig medisin p\\xe5 engelsk der \\xe9n nettpr\\xf8ve avgj\\xf8r, ikke vitnem\\xe5let ditt — og skolepengene kan ikke stige mens du studerer.\",\"Medicine and Dentistry in English in the Latvian capital, decided on grades alone. The next start is the February 2027 intake.\":\"Medisin og odontologi p\\xe5 engelsk i Latvias hovedstad, avgjort p\\xe5 karakterer alene. Neste oppstart er februaropptaket 2027.\",\"Study medicine in English in Germany, with up to three exam attempts a year and no grade cutoff standing in the way.\":\"Studer medisin p\\xe5 engelsk i Tyskland, med inntil tre fors\\xf8k p\\xe5 pr\\xf8ven i \\xe5ret og ingen karaktergrense i veien.\",\"Our oldest partnership: Medicine and Dentistry in English in Košice, on an entrance exam that tests two subjects and nothing else.\":\"V\\xe5rt eldste samarbeid: medisin og odontologi p\\xe5 engelsk i Košice, med en opptakspr\\xf8ve i to fag og ingenting annet.\",\"One of Central Europe's oldest universities, in a student city of 100,000 — the entrance exam is taken online from home.\":\"Et av Sentral-Europas eldste universiteter, i en studentby p\\xe5 100 000 — opptakspr\\xf8ven tas p\\xe5 nett hjemmefra.\",\"Six years, English-taught, at top European universities.\":\"Seks \\xe5r, undervist p\\xe5 engelsk, ved europeiske toppuniversiteter.\",\"Five years to an MDDr at world-class dental faculties.\":\"Fem \\xe5r til MDDr ved tannlegefakulteter i verdensklasse.\",\"Move your credits to a better-fit university and carry on.\":\"Flytt studiepoengene dine til et bedre universitet og fortsett.\",\"Pavol Jozef Šaf\\xe1rik University \\xb7 Slovakia\":\"Pavol Jozef Šaf\\xe1rik University \\xb7 Slovakia\",\"Palack\\xfd University \\xb7 Czechia\":\"Palack\\xfd University \\xb7 Tsjekkia\",\"Medical Campus Hamburg \\xb7 Germany\":\"Medical Campus Hamburg \\xb7 Tyskland\",\"Rīga Stradiņš University \\xb7 Latvia\":\"Rīga Stradiņš University \\xb7 Latvia\",\"Nicolaus Copernicus University \\xb7 Poland\":\"Nicolaus Copernicus University \\xb7 Polen\",\"University of Nicosia \\xb7 Cyprus\":\"University of Nicosia \\xb7 Kypros\",\"Every upcoming entrance exam, in one calendar\":\"Alle kommende opptakspr\\xf8ver i \\xe9n kalender\",\"Biology & chemistry preparation material\":\"Forberedelsesmateriell i biologi og kjemi\",\"Bio, chem, physics, maths & English\":\"Biologi, kjemi, fysikk, matte og engelsk\",\"How the Hamburg admission test works\":\"Slik fungerer opptakstesten i Hamburg\",\"50 questions online + a short oral\":\"50 sp\\xf8rsm\\xe5l p\\xe5 nett + kort muntlig\",\"1,200 biology & chemistry questions\":\"1 200 sp\\xf8rsm\\xe5l i biologi og kjemi\",\"UPJŠ — Biology & Chemistry\":\"UPJŠ — biologi og kjemi\",\"Medicine \\xb7 Dentistry\":\"Medisin \\xb7 Tannlege\",\"Medicine\":\"Medisin\",\"6 years \\xb7 MD\":\"6 \\xe5r \\xb7 MD\",\"5 years \\xb7 MDDr\":\"5 \\xe5r \\xb7 MDDr\",\"Keep your credits\":\"Behold studiepoengene\",\"Become a doctor at a European university — six years, taught fully in English, with free help from Medently at every step.\":\"Bli lege ved et europeisk universitet — seks \\xe5r, undervist p\\xe5 engelsk, med gratis hjelp fra Medently hele veien.\",\"Five years to a dental degree at world-class faculties in Slovakia, Czechia and Latvia.\":\"Fem \\xe5r til tannlegegraden ved fakulteter i verdensklasse i Slovakia, Tsjekkia og Latvia.\",\"Already studying? Move your credits to a partner university and continue where you left off.\":\"Studerer du allerede? Flytt studiepoengene dine til et partneruniversitet og fortsett der du slapp.\",\"Pavol Jozef Šaf\\xe1rik University in Košice — Medicine and Dentistry taught fully in English, in Slovakia's second-largest city.\":\"Pavol Jozef Šaf\\xe1rik University i Košice — medisin og tannlege undervist p\\xe5 engelsk, i Slovakias nest st\\xf8rste by.\",\"Palack\\xfd University in Olomouc — one of Central Europe's oldest universities, with English-taught Medicine and Dentistry.\":\"Palack\\xfd University i Olomouc — et av Sentral-Europas eldste universiteter, med medisin og tannlege p\\xe5 engelsk.\",\"Medical Campus Hamburg — study Medicine in English in Germany. Our only German partner university.\":\"Medical Campus Hamburg — studer medisin p\\xe5 engelsk i Tyskland. V\\xe5rt eneste tyske partneruniversitet.\",\"Rīga Stradiņš University in Riga — Medicine and Dentistry in English in the Latvian capital, with no entrance exam. The next start is the February 2027 intake.\":\"Rīga Stradiņš University i Riga — medisin og odontologi p\\xe5 engelsk i Latvias hovedstad, uten opptakspr\\xf8ve. Neste oppstart er februaropptaket 2027.\",\"NCU Collegium Medicum in Bydgoszcz — a 6-year English M.D. with no grade minimums and tuition locked for the whole programme.\":\"NCU Collegium Medicum i Bydgoszcz — 6-\\xe5rig medisin p\\xe5 engelsk uten karakterkrav, med skolepenger l\\xe5st for hele l\\xf8pet.\",\"The University of Nicosia Medical School — a 6-year English MD in Cyprus with no entrance exam and rolling admission.\":\"University of Nicosia Medical School — 6-\\xe5rig medisin p\\xe5 engelsk p\\xe5 Kypros, uten opptakspr\\xf8ve og med l\\xf8pende opptak.\",\"A written test in biology and chemistry. Medently prepares you for free: study notes, flashcards and mock exams.\":\"En skriftlig pr\\xf8ve i biologi og kjemi. Medently forbereder deg gratis: notater, flashcards og pr\\xf8veeksamen.\",\"An online multiple-choice test in biology, chemistry, physics, maths and English, followed by a short interview.\":\"En digital flervalgspr\\xf8ve i biologi, kjemi, fysikk, matte og engelsk, etterfulgt av et kort intervju.\",\"An online test in biology, chemistry and general knowledge plus a short interview, with up to three attempts a year. We walk you through both, free.\":\"En netttest i biologi, kjemi og allmennkunnskap pluss et kort intervju, med inntil tre fors\\xf8k i \\xe5ret. Vi guider deg gjennom begge, gratis.\",\"A proctored online test — 50 questions in biology, chemistry and physics — then a short oral the next day. No grade minimums at all.\":\"En nettpr\\xf8ve med tilsyn — 50 sp\\xf8rsm\\xe5l i biologi, kjemi og fysikk — s\\xe5 en kort muntlig dagen etter. Ingen karakterkrav i det hele tatt.\",\"1,200 real questions from past UPJŠ exams in biology and chemistry, with spaced repetition built in so you remember more in less time.\":\"1 200 ekte sp\\xf8rsm\\xe5l fra tidligere UPJŠ-eksamener i biologi og kjemi, med spaced repetition innebygd s\\xe5 du husker mer p\\xe5 kortere tid.\",\"Practice biology, chemistry, physics, maths and English — the same style of questions UPOL asks in the real exam.\":\"\\xd8v p\\xe5 biologi, kjemi, fysikk, matte og engelsk — samme type sp\\xf8rsm\\xe5l som UPOL stiller p\\xe5 den ekte pr\\xf8ven.\",\"New partnerships and milestones\":\"Nye samarbeid og milep\\xe6ler\",\"Guides and articles from the team\":\"Guider og artikler fra teamet\",\"6 August 2026\":\"6. august 2026\",\"1 August 2026\":\"1. august 2026\",\"20 July 2026\":\"20. juli 2026\",\"18 July 2026\":\"18. juli 2026\",\"12 July 2026\":\"12. juli 2026\",\"Biology \\xb7 Question 12 of 100\":\"Biologi \\xb7 Sp\\xf8rsm\\xe5l 12 av 100\",\"Which organelle produces most of the cell's ATP?\":\"Hvilken organell produserer mest av cellens ATP?\",\"Ribosome\":\"Ribosom\",\"Mitochondrion\":\"Mitokondrium\",\"Golgi apparatus\":\"Golgiapparat\",\"Nucleus\":\"Cellekjerne\"};const NO_HREFS={\"/\":\"/for-norske-studenter\",\"/universities\":\"/universiteter\",\"/universities/upjs\":\"/universiteter/upjs/\",\"/universities/upol\":\"/universiteter/upol/\",\"/universities/umch\":\"/universiteter/umch/\",\"/universities/rsu\":\"/universiteter/rsu/\",\"/universities/ncu\":\"/universiteter/ncu/\",\"/universities/unic\":\"/universiteter/unic/\",/* News items: the UNIC news card lands Norwegians on the Norwegian\n       admission guide for Nicosia. */\"/medently-x-unic\":\"/opptak/nicosia\",\"/universities?program=medicine\":\"/universiteter\",\"/universities?program=dentistry\":\"/universiteter\",/* ⚠ These two used to point at /universiteter, which is why clicking\n       \"Medisin\" in the Norwegian Programmer menu dropped you on the university\n       list instead of the programme. Now they go to the real Norwegian pages. */\"/programs/medicine\":\"/programmer/medisin\",\"/programs/dentistry\":\"/programmer/tannlege\",\"/transfer\":\"/bytt-studiested\",/* Notarisation has a Norwegian twin. /transfer/upjs does not yet, so it\n       falls through to the English page, the same way the country guides do. */\"/notarization-upjs\":\"/notarisering-upjs\",/* The reviews page finally has a Norwegian twin (17 Aug 2026). Without this line the\n       nav item \"Anmeldelser\" sends Norwegian readers to the English /reviews. */\"/reviews\":\"/erfaringer\",/* Country guides. Only Germany, Czechia and Slovakia have a Norwegian twin;\n       Poland, Latvia and Cyprus stay on the English guide until we build them,\n       the same way the /exams/* pages do. */\"/study-medicine-in-germany\":\"/studer-medisin-i-tyskland\",\"/study-medicine-in-czech-republic\":\"/studer-medisin-i-tsjekkia\",\"/study-medicine-in-slovakia\":\"/studer-medisin-i-slovakia\",/* \"Can you get in?\" hub: Norwegians go straight to the Norwegian edition\n       rather than the school-system chooser, which would only ask them a\n       question they have already answered by being on the Norwegian site. */\"/can-i-get-in\":\"/can-i-get-in/norway\"};const ToothIcon=({color=\"#fff\"})=>/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",className:\"htnav-arrow\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 5.4c1.6-1.2 3.1-1.7 4.4-1.5 2 .3 3.1 2 3.1 4.4 0 2.1-.5 3.7-1.1 5.6-.5 1.7-.7 3-.9 4.4-.2 1.5-.7 2.3-1.6 2.3-1 0-1.4-.9-1.7-2.6-.3-1.6-.6-3.1-2.2-3.1s-1.9 1.5-2.2 3.1c-.3 1.7-.7 2.6-1.7 2.6-.9 0-1.4-.8-1.6-2.3-.2-1.4-.4-2.7-.9-4.4-.6-1.9-1.1-3.5-1.1-5.6 0-2.4 1.1-4.1 3.1-4.4 1.3-.2 2.8.3 4.4 1.5z\",stroke:color,strokeWidth:\"1.9\",strokeLinejoin:\"round\"})});function CheckIcon(){return /*#__PURE__*/_jsx(\"svg\",{width:\"17\",height:\"17\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.3\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M20 6 9 17l-5-5\"})});}const CSS=`\n@import url(\"https://api.fontshare.com/v2/css?f[]=clash-grotesk@400,500,600,700&display=swap\");\n\n/* Fixed rather than sticky: Framer's page wrapper is the scroll container and\n   sticky does not survive it reliably. The spacer keeps the flow height so the\n   hero still starts below the bar. */\n.htnav-shell { position: fixed; top: 0; left: 0; right: 0; z-index: 900; font-family: ${FONT}; }\n.htnav-spacer { height: 52px; width: 100%; }\n@media (max-width: 1023px) { .htnav-spacer { height: 0; } }\n.htnav { width: 100%; font-family: ${FONT}; }\n.htnav-shell *, .htnav-shell *::before, .htnav-shell *::after { box-sizing: border-box; font-family: ${FONT}; }\n\n/* ── Row 1 — navy ── */\n.htnav-top {\n  position: relative; display: flex; align-items: center; justify-content: center;\n  height: 62px; background: var(--nav-navy); padding: 0 clamp(20px, 3.6vw, 58px);\n}\n.htnav-norsk { position: absolute; left: clamp(20px, 3.6vw, 58px); top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 9px; text-decoration: none; }\n.htnav-norsk { padding: 6px; border-radius: 8px; transition: background 0.16s ease; }\n.htnav-norsk:hover { background: rgba(255,255,255,0.12); }\n.htnav-logo { display: flex; align-items: center; text-decoration: none; }\n.htnav-logo img { height: 26px; width: auto; display: block; filter: brightness(0) invert(1); }\n\n.htnav-actions { position: absolute; right: clamp(20px, 3.6vw, 58px); top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 12px; }\n.htnav-btn {\n  display: inline-flex; align-items: center; justify-content: center; gap: 9px;\n  height: 40px; padding: 0 20px; border-radius: 9px; border: none;\n  font-size: 14.5px; font-weight: 600; text-decoration: none; white-space: nowrap;\n  transition: transform 0.16s ease, background 0.16s ease;\n}\n.htnav-btn:hover { transform: translateY(-1px); }\n.htnav-signin { background: #ffffff; color: var(--nav-navy); box-shadow: 0 1px 2px rgba(0,0,0,0.10); }\n.htnav-apply { background: var(--nav-blue); color: #ffffff; box-shadow: 0 1px 2px rgba(0,0,0,0.14); }\n.htnav-arrow { width: 17px; height: 17px; flex-shrink: 0; }\n\n/* ── Row 2 — white link row, lifted off the page with a soft shadow ── */\n.htnav-linkbar {\n  position: relative; background: #ffffff;\n  border-bottom: 1px solid ${ROW2_BORDER};\n  box-shadow: 0 6px 18px rgba(15,23,42,0.07), 0 1px 3px rgba(15,23,42,0.05);\n}\n/* The row spends --nav-pad and --nav-fs, which the auto-fit effect re-solves\n   from the real measured label widths on every resize, so all ten items always\n   fit. The clamp()s here are the pre-hydration / no-JS fallback and are\n   calibrated to the same width budget in both languages, so nothing jumps when\n   the measurement lands. ⛔ Do not put a fixed px padding back on .htnav-link —\n   that is what pushed Home and Contact off both ends of the centred row. */\n.htnav-links {\n  display: flex; align-items: stretch; justify-content: center;\n  height: 64px; padding: 0 16px;\n  /* Recalibrated 7 Sep 2026 for ELEVEN items — \"Current Students\" was added\n     after Transfer Students. Measured what fit() actually solves to: 13.00px at\n     1024, 15.50 at 1280, 17.87 at 1440, 19 from 1600 up. The fs curve below\n     reproduces that, so nothing jumps when the measurement arrives; the pad\n     curve is deliberately a shade under, because a too-WIDE fallback is the one\n     that flashes an overflow before hydration. */\n  --nav-pad: clamp(5px, calc(4.55vw - 60px), 60px);\n  --nav-fs: clamp(13px, calc(1.477vw - 3.4px), 19px);\n}\n.htnav-item { position: relative; display: flex; align-items: center; }\n.htnav-link {\n  display: flex; align-items: center; gap: 0.4em; height: 100%;\n  padding: 0 var(--nav-pad); color: ${LINK};\n  font-size: var(--nav-fs); font-weight: 600; text-decoration: none; white-space: nowrap;\n  background: none; border: none; cursor: pointer; position: relative;\n}\n.htnav-link:hover { color: var(--nav-blue); }\n/* Sized in em so the carets shrink with the labels instead of eating the space\n   the auto-fit just saved. */\n.htnav-caret { width: 1em; height: 1em; flex-shrink: 0; transition: transform 0.2s ease; opacity: 0.75; }\n.htnav-item.is-active .htnav-link { color: ${INK}; font-weight: 600; }\n.htnav-item.is-active .htnav-link::after {\n  content: \"\"; position: absolute; left: var(--nav-pad); right: var(--nav-pad);\n  bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--nav-blue);\n}\n.htnav-item.is-open .htnav-link { color: var(--nav-blue); }\n\n/* ── Mega panel — dark navy, list on the left, live preview on the right ── */\n/* Full-bleed: the panel spans the whole page (14px margins), like the link row above it. */\n.htnav-mega {\n  position: absolute; top: 100%; left: 14px; right: 14px; z-index: 30;\n  background: linear-gradient(rgba(3,8,30,0.32), rgba(3,8,30,0.32)), var(--nav-navy);\n  border: 1px solid rgba(255,255,255,0.08);\n  border-radius: 0 0 22px 22px; border-top: none;\n  box-shadow: 0 34px 80px rgba(4,10,35,0.42), 0 6px 16px rgba(4,10,35,0.22);\n  padding: 20px 22px 22px; overflow: hidden auto;\n  max-height: calc(100vh - 146px);\n  animation: htnavMegaIn 0.2s cubic-bezier(0.22, 1, 0.36, 1);\n}\n@keyframes htnavMegaIn { from { opacity: 0; transform: translateY(-8px) } to { opacity: 1; transform: translateY(0) } }\n@keyframes htnavFadeIn { from { opacity: 0 } to { opacity: 1 } }\n\n.htnav-mm-eyebrow {\n  font-size: 13.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;\n  color: rgba(255,255,255,0.55); padding: 4px 8px 14px;\n}\n.htnav-mm-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 28px; align-items: start; }\n.htnav-mm-grid.htnav-mm-solo { grid-template-columns: minmax(0, 1fr); }\n/* Exam + flashcards lists spread over the full-bleed panel as two columns.\n   Double class beats the flex on .htnav-mm-list regardless of source order. */\n.htnav-mm-list.htnav-mm-cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 28px; align-items: stretch; }\n/* ⭐ 17 Aug: rows TOP-align in this grid. The Slovakia cell is taller than the\n   others (it carries the flashcards child link), and with stretch the UPOL row\n   beside it centred itself against that extra height — the two columns visibly\n   stopped lining up. ⛔ The seeall pair keeps stretching, so the two CTA bands\n   stay the same height. */\n.htnav-mm-list.htnav-mm-cols2 > .htnav-mm-item,\n.htnav-mm-list.htnav-mm-cols2 > .htnav-mm-cell { align-self: start; }\n.htnav-mm-list.htnav-mm-cols2 .htnav-mm-seeall { grid-column: 1 / -1; }\n/* The two exam CTAs sit SIDE BY SIDE again, one grid column each — Saif,\n   12 Aug evening, reversed the stacked full-width bands (\"too wide… side by\n   side, round them out\"). */\n.htnav-mm-list.htnav-mm-cols2 .htnav-mm-seeall.htnav-mm-seeall-pair { grid-column: span 1; }\n/* ⚠ .htnav-mm-flashgrid is DEAD since 17 Aug — the Flashcards panel is gone\n   and nothing renders with that class any more. */\n.htnav-mm-list.htnav-mm-flashgrid .htnav-mm-all { grid-column: 1 / -1; justify-content: center; }\n/* ⭐ 17 Aug: a grid CELL holding one row plus the small link hanging under it.\n   The row's own text starts 76px in (14px padding + 48px logo + 14px gap), so\n   the child indents to the same place and hangs off a short left tick. */\n.htnav-mm-cell { display: flex; flex-direction: column; min-width: 0; }\n.htnav-mm-subitem {\n  display: flex; align-items: center; gap: 10px;\n  margin: 2px 0 6px 62px; padding: 9px 14px;\n  border-left: 2px solid rgba(255,255,255,0.24); border-radius: 0 12px 12px 0;\n  font-size: 16px; font-weight: 600; color: rgba(255,255,255,0.88);\n  text-decoration: none; transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;\n}\n.htnav-mm-subitem:hover { background: rgba(255,255,255,0.08); color: #ffffff; border-left-color: var(--nav-accent); }\n.htnav-mm-subico { display: flex; align-items: center; width: 19px; height: 19px; flex-shrink: 0; }\n.htnav-mm-subico svg { width: 100%; height: 100%; }\n.htnav-mm-subitem .htnav-arrow { width: 15px; height: 15px; margin-left: auto; opacity: 0.7; transition: opacity 0.18s ease, transform 0.18s ease; }\n.htnav-mm-subitem:hover .htnav-arrow { opacity: 1; transform: translateX(3px); }\n\n/* Left column — the list */\n.htnav-mm-list { display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n.htnav-mm-item {\n  display: flex; align-items: center; gap: 14px; width: 100%;\n  padding: 11px 14px; border-radius: 14px; position: relative;\n  text-decoration: none; background: none; border: none; cursor: pointer; text-align: left;\n  transition: background 0.16s ease;\n}\n.htnav-mm-item.is-hot { background: rgba(255,255,255,0.08); }\n.htnav-mm-item.is-hot::before {\n  content: \"\"; position: absolute; left: 0; top: 11px; bottom: 11px; width: 3px;\n  border-radius: 3px; background: var(--nav-accent);\n}\n.htnav-mm-num { width: 32px; flex-shrink: 0; font-size: 15px; font-weight: 600; color: rgba(255,255,255,0.42); letter-spacing: 0.04em; }\n.htnav-mm-item.is-hot .htnav-mm-num { color: var(--nav-accent); }\n.htnav-mm-logo { width: 48px; height: 48px; border-radius: 12px; overflow: hidden; flex-shrink: 0; background: #ffffff; border: 1px solid rgba(255,255,255,0.20); }\n.htnav-mm-logo img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.htnav-mm-body { min-width: 0; }\n.htnav-mm-title { display: block; font-size: 26px; font-weight: 600; color: #ffffff; line-height: 1.2; letter-spacing: -0.2px; }\n.htnav-mm-subline { display: block; font-size: 17px; font-weight: 400; color: #ffffff; line-height: 1.4; margin-top: 3px; }\n.htnav-newpill {\n  display: inline-flex; align-items: center; vertical-align: 2px;\n  margin-left: 8px; padding: 2.5px 8px; border-radius: 100px;\n  background: #F97316; color: #ffffff; font-size: 11px; font-weight: 700;\n  letter-spacing: 0.9px; text-transform: uppercase; line-height: 1.4;\n}\n/* ⭐ Every row shows its arrow at rest (Saif 12 Aug: the arrow is what says\n   \"clickable\" — it must not appear only on the hovered row). Hover brightens\n   it and nudges it right, same motion as the .arw buttons sitewide. */\n.htnav-mm-item .htnav-arrow { width: 16px; height: 16px; margin-left: auto; opacity: 0.7; transition: opacity 0.18s ease, transform 0.18s ease; }\n.htnav-mm-item.is-hot .htnav-arrow { opacity: 1; transform: translateX(3px); }\n\n.htnav-mm-all {\n  display: flex; align-items: center; gap: 8px; margin-top: 10px; padding: 13px 14px 2px;\n  border-top: 1px solid rgba(255,255,255,0.10);\n  font-size: 17px; font-weight: 600; color: #ffffff; text-decoration: none;\n}\n.htnav-mm-all svg { width: 18px; height: 18px; transition: transform 0.16s ease; }\n.htnav-mm-all:hover { color: var(--nav-accent); }\n.htnav-mm-all:hover svg { transform: translateX(4px); }\n\n/* ⭐⭐ 16 Aug: the Countries panel is TWO LISTS, not a list plus a photo.\n   Every country row used to lead to the MEDICINE guide, so a student looking\n   for dentistry was sent to the wrong page (Saif). Medicine on the left,\n   dentistry on the right, same row dress on both sides so the panel still\n   reads as one thing. */\n.htnav-mm-grid.htnav-mm-grid-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 34px; }\n.htnav-mm-col { min-width: 0; display: flex; flex-direction: column; }\n.htnav-mm-colhead {\n  display: flex; align-items: center; gap: 11px; padding: 0 14px 11px; margin-bottom: 9px;\n  font-size: 15px; font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase;\n  color: rgba(255,255,255,0.68); border-bottom: 1px solid rgba(255,255,255,0.13);\n}\n/* CapIcon carries no size of its own, so the head must size both glyphs. */\n.htnav-mm-colhead svg { width: 19px; height: 19px; margin-left: 0; opacity: 1; flex-shrink: 0; }\n.htnav-mm-colnote {\n  margin: 14px 0 0; padding: 15px 16px; border-radius: 14px;\n  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.11);\n  font-size: 15px; line-height: 1.5; color: rgba(255,255,255,0.80);\n}\n.htnav-mm-colnote b { color: #ffffff; font-weight: 600; }\n@media (max-height: 749px) {\n  .htnav-mega .htnav-mm-colhead { font-size: 13.5px; padding-bottom: 8px; margin-bottom: 6px; }\n  .htnav-mega .htnav-mm-colnote { margin-top: 10px; padding: 12px 13px; font-size: 14px; }\n}\n@media (max-height: 669px) { .htnav-mega .htnav-mm-colnote { display: none; } }\n\n/* Right column — the always-on preview */\n.htnav-mm-view { min-width: 0; display: block; text-decoration: none; }\n.htnav-mm-shot {\n  display: block; position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: 420px; border-radius: 15px;\n  overflow: hidden; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10);\n}\n.htnav-mm-shot img { width: 100%; height: 100%; object-fit: cover; display: block; animation: htnavFadeIn 0.32s ease; }\n/* ── Preview strip: two or three photos side by side in the same frame ──\n   The programme photography is portrait. One image cover-fitted into a 16/9\n   box showed a horizontal sliver of it. Splitting the frame into equal\n   columns makes each tile roughly 0.6 wide-to-tall, near the source ratio,\n   so you see the whole photo. Below 1100px the frame is narrower than three\n   readable tiles, so the third drops and two share the width; the phone\n   drawer never renders this at all and keeps the single main photo. */\n.htnav-mm-shot-strip { display: flex; gap: 4px; background: rgba(255,255,255,0.06); }\n.htnav-mm-shot-strip img { flex: 1 1 0; width: auto; min-width: 0; border-radius: 0; }\n.htnav-mm-shot-strip img:nth-child(n+4) { display: none; }\n@media (max-width: 1100px) { .htnav-mm-shot-strip img:nth-child(n+3) { display: none; } }\n.htnav-mm-shotlogo {\n  position: absolute; left: 14px; bottom: 14px; width: 44px; height: 44px;\n  border-radius: 11px; overflow: hidden; border: 2px solid #ffffff; background: #ffffff;\n  box-shadow: 0 6px 16px rgba(0,0,0,0.30);\n}\n.htnav-mm-shotlogo img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.htnav-mm-cap { display: block; padding: 13px 6px 0; text-decoration: none; }\n.htnav-mm-cap-top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; text-decoration: none; }\n.htnav-mm-cap-title { font-size: 28px; font-weight: 600; color: #ffffff; letter-spacing: -0.3px; }\n.htnav-mm-chip {\n  padding: 5px 13px; border-radius: 999px; background: rgba(255,255,255,0.10);\n  border: 1px solid rgba(255,255,255,0.16); color: #ffffff; font-size: 14px; font-weight: 600; white-space: nowrap;\n}\n.htnav-mm-cap-info { display: block; margin-top: 8px; font-size: 17px; font-weight: 400; line-height: 1.5; color: rgba(255,255,255,0.92); max-width: 58ch; }\n/* Country line + CTA buttons under the universities preview */\n.htnav-mm-country { display: flex; align-items: baseline; gap: 12px; margin-top: 14px; }\n.htnav-mm-country-lbl {\n  font-size: 13.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;\n  color: rgba(255,255,255,0.60);\n}\n.htnav-mm-country-val { font-size: 22px; font-weight: 600; color: #ffffff; letter-spacing: -0.2px; }\n.htnav-mm-ctas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }\n.htnav-mm-cta {\n  display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n  height: 44px; padding: 0 18px; border-radius: 11px;\n  font-size: 15.5px; font-weight: 600; text-decoration: none; white-space: nowrap;\n  transition: transform 0.16s ease, filter 0.16s ease;\n}\n.htnav-mm-cta:hover { transform: translateY(-1px); filter: brightness(1.05); }\n.htnav-mm-cta .htnav-arrow { width: 16px; height: 16px; }\n.htnav-mm-cta.is-white { background: #ffffff; color: var(--nav-navy); }\n.htnav-mm-cta.is-outline { background: transparent; color: #ffffff; border: 1.5px solid rgba(255,255,255,0.32); }\n.htnav-mm-cta.is-blue { background: var(--nav-blue); color: #ffffff; box-shadow: 0 8px 20px var(--nav-blue-glow); }\n\n/* Info-card variant of the right column (exam + flashcards — no photo) */\n.htnav-mm-viewpad {\n  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.10);\n  border-radius: 16px; padding: 20px 22px; animation: htnavFadeIn 0.28s ease;\n}\n.htnav-mm-eyebrow2 {\n  display: block; font-size: 13px; font-weight: 600; letter-spacing: 0.14em;\n  text-transform: uppercase; color: var(--nav-accent); margin-bottom: 9px;\n}\n.htnav-mm-dates { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }\n.htnav-mm-date {\n  padding: 7px 12px; border-radius: 999px; background: rgba(255,255,255,0.10);\n  border: 1px solid rgba(255,255,255,0.16); color: #ffffff; font-size: 14.5px; font-weight: 600; white-space: nowrap;\n}\n.htnav-mm-guide { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 16px; font-weight: 600; color: var(--nav-accent); }\n.htnav-mm-guide .htnav-arrow { width: 15px; height: 15px; }\n\n/* Sample flashcard */\n.htnav-flashcard {\n  display: block; margin-top: 16px; background: #ffffff; border-radius: 14px;\n  padding: 15px 16px; box-shadow: 0 14px 34px rgba(2,8,35,0.35); max-width: 440px;\n}\n.htnav-flashcard-tag { display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase; color: var(--nav-blue); }\n.htnav-flashcard-q { display: block; margin-top: 7px; font-size: 15.5px; font-weight: 600; color: ${INK}; line-height: 1.35; }\n.htnav-flashcard-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; }\n.htnav-flashcard-opts span {\n  padding: 8px 10px; border-radius: 9px; border: 1px solid rgba(15,23,42,0.12);\n  font-size: 12.5px; font-weight: 500; color: ${LINK};\n}\n.htnav-flashcard-opts .is-right { background: rgba(16,185,129,0.12); border-color: rgba(16,185,129,0.55); color: #067a54; font-weight: 600; }\n\n/* News carousel */\n.htnav-news-clip { overflow: hidden; }\n.htnav-news-track { display: flex; gap: 14px; transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1); }\n.htnav-news-card { flex: 0 0 calc(50% - 7px); min-width: 0; display: block; text-decoration: none; }\n.htnav-news-img { display: block; aspect-ratio: 16 / 10; border-radius: 13px; overflow: hidden; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10); }\n.htnav-news-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }\n.htnav-news-card:hover .htnav-news-img img { transform: scale(1.045); }\n.htnav-news-meta { display: block; margin-top: 10px; font-size: 12.5px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; color: var(--nav-accent); }\n.htnav-news-title { display: block; margin-top: 4px; font-size: 18px; font-weight: 600; color: #ffffff; line-height: 1.3; }\n.htnav-news-dots { display: flex; gap: 7px; margin-top: 14px; }\n.htnav-news-dots button {\n  width: 7px; height: 7px; border-radius: 99px; border: none; padding: 0;\n  background: rgba(255,255,255,0.28); cursor: pointer; transition: width 0.2s ease, background 0.2s ease;\n}\n.htnav-news-dots button.is-on { background: #ffffff; width: 20px; }\n\n/* ── Countries — the photo strip + the partner university under the preview ── */\n/* Six rows make this the tallest list in the nav, so the hero sits lower than\n   the 420px the other previews allow. */\n/* Six rows make this the tallest list in the nav, so the country hero is a\n   band rather than the 16:9 the other previews get. 24/9 keeps it from\n   stretching to a 4:1 slit on a 1920 screen, where the column is 1061px wide. */\n.htnav-mm-shot.is-country { aspect-ratio: 24 / 9; max-height: 300px; }\n.htnav-mm-uni {\n  display: flex; align-items: center; gap: 12px; margin-top: 16px;\n  padding: 12px 14px; border-radius: 14px; text-decoration: none;\n  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);\n  transition: background 0.16s ease;\n}\n.htnav-mm-uni:hover { background: rgba(255,255,255,0.12); }\n.htnav-mm-uni-mark { width: 44px; height: 44px; border-radius: 11px; overflow: hidden; flex-shrink: 0; background: #ffffff; border: 1px solid rgba(255,255,255,0.20); }\n.htnav-mm-uni-mark img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.htnav-mm-uni-lbl { display: block; font-size: 12.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.60); }\n.htnav-mm-uni-name { display: block; margin-top: 2px; font-size: 19px; font-weight: 600; color: #ffffff; line-height: 1.25; }\n.htnav-mm-uni .htnav-arrow { width: 16px; height: 16px; margin-left: auto; flex-shrink: 0; }\n\n/* ── About Us — the team faces and the quoted review ── */\n.htnav-mm-faces { display: flex; align-items: center; margin: 4px 0 16px; }\n.htnav-mm-faces span {\n  width: 56px; height: 56px; border-radius: 50%; overflow: hidden; flex-shrink: 0;\n  border: 2px solid var(--nav-navy); box-shadow: 0 0 0 1px rgba(255,255,255,0.22);\n  background: rgba(255,255,255,0.10); margin-left: -12px;\n}\n.htnav-mm-faces span:first-child { margin-left: 0; }\n.htnav-mm-faces img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.htnav-quote {\n  display: block; margin-top: 14px; background: #ffffff; border-radius: 14px;\n  padding: 16px 18px; box-shadow: 0 14px 34px rgba(2,8,35,0.35); max-width: 520px; text-decoration: none;\n}\n.htnav-quote-stars { display: block; font-size: 15px; letter-spacing: 2px; color: #F5A623; }\n.htnav-quote-text { display: block; margin-top: 8px; font-size: 15.5px; font-weight: 500; color: ${INK}; line-height: 1.5; }\n.htnav-quote-who { display: block; margin-top: 10px; font-size: 13px; font-weight: 600; color: #5A6478; }\n\n/* ── Articles — ten covers, five across, two rows ── */\n.htnav-art-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin-top: 12px; }\n.htnav-art { display: block; text-decoration: none; min-width: 0; }\n/* 1.91:1 is the ratio these covers are generated at (1200x630) and there is\n   ⛔ NO max-height anywhere: the card carries the MEDENTLY wordmark on top and\n   medently.com at the bottom, so ANY vertical cap cuts the artwork. Five narrow\n   columns are what keeps the panel short — never a height cap. */\n.htnav-art-img {\n  display: block; width: 100%; aspect-ratio: 1.91 / 1; border-radius: 12px; overflow: hidden;\n  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10);\n}\n.htnav-art-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }\n.htnav-art:hover .htnav-art-img img { transform: scale(1.045); }\n.htnav-art-meta { display: block; margin-top: 9px; font-size: 11.5px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--nav-accent); }\n/* Clamped to two lines so the panel's height is predictable at every width. */\n.htnav-art-title {\n  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;\n  margin-top: 4px; font-size: 15.5px; font-weight: 600; color: #ffffff; line-height: 1.3;\n}\n/* Narrower desktops: four across, so the covers never turn into stamps. The\n   last two articles drop rather than leave an orphan row. */\n@media (max-width: 1279px) {\n  .htnav-art-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }\n  .htnav-art:nth-child(n + 9) { display: none; }\n}\n\n/* ── Short laptops ──\n   The panels are capped at calc(100vh - 146px), so the axis that actually runs\n   out is HEIGHT, not width: a 1680x825 MacBook has only 679px to play with and\n   was cutting the Countries buttons off. Everything below therefore keys off\n   viewport height. ⭐ Keep the tiers dense — a 40px gap between them is enough\n   for a panel to fall through and scroll.\n   Allowed height: 934 @1080 \\xb7 836 @982 \\xb7 754 @900 \\xb7 679 @825 \\xb7 654 @800 \\xb7 622 @768 \\xb7 574 @720 */\n@media (max-height: 949px) {\n  .htnav-mm-shot { max-height: 340px; }\n  .htnav-mm-shot.is-country { max-height: 230px; }\n}\n@media (max-height: 869px) {\n  /* Six-row menus (Countries, Universities) need the LIST to shrink too — below\n     ~1100px wide the left column, not the photo, is what sets the height. */\n  .htnav-mega .htnav-mm-item { padding: 8px 14px; }\n  .htnav-mega .htnav-mm-seeall { padding: 8px 14px; }\n  .htnav-mega .htnav-mm-title { font-size: 22px; }\n  .htnav-mega .htnav-mm-subline { font-size: 15px; }\n  .htnav-mega .htnav-mm-logo { width: 42px; height: 42px; }\n  .htnav-mm-shot { max-height: 290px; }\n  .htnav-mm-shot.is-country { max-height: 195px; }\n}\n@media (max-height: 809px) {\n  /* Panels with the browse row (Universities): the extra list row costs\n     height, so their preview shrinks a touch sooner. ⭐ .htnav-mega prefix,\n     or these lose the cascade to later base rules. */\n  .htnav-mega .htnav-mm-grid-banner .htnav-mm-shot { max-height: 195px; }\n  .htnav-mega .htnav-mm-seeall { font-size: 20px; padding: 6px 14px; }\n  .htnav-mega .htnav-mm-title { font-size: 20px; }\n  .htnav-mega .htnav-mm-subline { font-size: 14px; }\n  .htnav-mega .htnav-mm-grid-banner .htnav-mm-item { padding: 6px 14px; }\n  .htnav-mm-shot { max-height: 250px; }\n  .htnav-mm-shot.is-country { max-height: 160px; }\n  .htnav-art-title { font-size: 16px; }\n  .htnav-mm-cap-info { font-size: 15px; }\n}\n@media (max-height: 749px) {\n  .htnav-mega .htnav-mm-item { padding: 6px 14px; }\n  .htnav-mega .htnav-mm-grid-banner .htnav-mm-item { padding: 4px 14px; }\n  .htnav-mega .htnav-mm-grid-banner .htnav-mm-logo { width: 36px; height: 36px; }\n  .htnav-mega .htnav-mm-seeall { padding: 5px 14px; font-size: 19px; }\n  .htnav-mega .htnav-mm-grid-banner .htnav-mm-shot { max-height: 140px; }\n  .htnav-mega .htnav-mm-title { font-size: 18px; }\n  .htnav-mm-shot { max-height: 210px; }\n  .htnav-mm-shot.is-country { max-height: 130px; }\n  .htnav-art-title { font-size: 15px; }\n  .htnav-art-meta { font-size: 11.5px; }\n}\n/* ⚠ Flat, never nested — an @media inside an @media puts the outer block's\n   later rules after it in source order and they win the cascade back. */\n/* Too short for two rows of covers: show one row rather than crop or scroll. */\n@media (max-height: 739px) {\n  .htnav-art:nth-child(n + 6) { display: none; }\n}\n@media (max-height: 739px) and (max-width: 1279px) {\n  .htnav-art:nth-child(n + 5) { display: none; }\n}\n@media (max-height: 669px) {\n  /* A genuinely tiny window. Everything shrinks again rather than scroll. */\n  .htnav-mega .htnav-mm-item { padding: 5px 12px; }\n  .htnav-mega .htnav-mm-grid-banner .htnav-mm-item { padding: 3px 12px; }\n  .htnav-mega .htnav-mm-grid-banner .htnav-mm-logo { width: 30px; height: 30px; }\n  .htnav-mega .htnav-mm-title { font-size: 17px; }\n  .htnav-mega .htnav-mm-subline { font-size: 13px; }\n  .htnav-mega .htnav-mm-logo { width: 34px; height: 34px; }\n  .htnav-mm-shot { max-height: 145px; }\n  .htnav-mm-shot.is-country { max-height: 105px; }\n  .htnav-art-title { font-size: 14px; }\n  .htnav-mm-cap-info { font-size: 14px; }\n  .htnav-mega .htnav-mm-seeall { padding: 4px 12px; font-size: 16px; }\n  .htnav-mega .htnav-mm-grid-banner .htnav-mm-shot { max-height: 85px; }\n}\n\n/* (The green \"Can you get in?\" variant is gone — Saif 13 Aug: \"why is it\n   green?\" Both exam CTAs now wear the panel's own colours.) */\n\n/* ── Banner CTAs (\"See all entrance exam dates\", \"Can you get in?\", \"Browse\n      all partner universities\", \"Read all articles\") — rows in the panel's\n      own palette, wearing the is-hot highlight AT REST so they stand apart\n      from the plain rows (Saif 13 Aug: \"the same color as the hover option,\n      all the time\"). Hover brightens one step further. ── */\n/* ⭐⭐⭐ 17 Aug (Saif, FOURTH pass) — these rows are now built EXACTLY like the\n   Programs panel rows: \"look at Programs, and below it Medicine and Dentistry.\n   Look how they are built… it's how Medicine is hovered. I want numbers\n   instead, and also the light blue thing.\"\n   Same 11px/14px padding, same 14px radius, same 32px number column, the same\n   hover wash and the same 3px --nav-accent bar down the left edge.\n   ⛔⛔ EVERY earlier treatment was rejected in turn — the blue band, the solid\n   white button, the 88% translucent one, the frosted glass, the coloured glyph\n   chips. Do not bring any of them back, and do not put an icon here.\n   ⚠ The one real difference from .htnav-mm-item: these light up on CSS :hover,\n   while the list rows are driven by the JS \"hot\" index. */\n.htnav-mm-seeall {\n  display: flex; align-items: center; gap: 14px; width: 100%;\n  padding: 11px 14px; border-radius: 14px; position: relative;\n  background: none; border: none; text-decoration: none;\n  font-size: 20px; font-weight: 600; color: #ffffff; line-height: 1.25;\n  transition: background 0.16s ease;\n}\n.htnav-mm-seeall::before {\n  content: \"\"; position: absolute; left: 0; top: 11px; bottom: 11px; width: 3px;\n  border-radius: 3px; background: var(--nav-accent);\n  opacity: 0; transition: opacity 0.16s ease;\n}\n.htnav-mm-seeall:hover { background: rgba(255,255,255,0.08); }\n.htnav-mm-seeall:hover::before { opacity: 1; }\n/* Saif 14 Aug: these rows must stay on ONE line in both languages. */\n.htnav-mm-seeall { white-space: nowrap; }\n/* ⛔ ArrowIcon paints stroke=\"#fff\" as a PRESENTATION ATTRIBUTE; a CSS rule\n   beats it, which is why the arrow is recoloured here and not at the call site. */\n.htnav-mm-seeall .htnav-arrow path { stroke: #ffffff; }\n.htnav-mm-seeall .htnav-arrow {\n  width: 16px; height: 16px; margin-left: auto; flex-shrink: 0;\n  opacity: 0.7; transition: opacity 0.18s ease, transform 0.18s ease;\n}\n.htnav-mm-seeall:hover .htnav-arrow { opacity: 1; transform: translateX(3px); }\n/* The number. Dressed like .htnav-mm-num and it lights up the same way.\n   ⚠ The class name still says \"ico\" so the height-tier media queries and the\n   flex-shrink rule keep matching; it holds text now, not an svg. */\n.htnav-mm-seeall > .htnav-mm-seeall-ico { flex-shrink: 0; }\n.htnav-mm-seeall-ico {\n  display: block; width: 32px;\n  font-size: 15px; font-weight: 600; letter-spacing: 0.04em;\n  color: rgba(255,255,255,0.42);\n  transition: color 0.16s ease;\n}\n.htnav-mm-seeall:hover .htnav-mm-seeall-ico { color: var(--nav-accent); }\n/* Articles: the button hugs its label instead of spanning the panel. */\n.htnav-mm-seeall-fit { width: fit-content; }\n\n/* Universities: uni rows sit slightly indented under the browse row —\n   \"written a little bit more to the right, below\" (Saif 13 Aug). */\n.htnav-mm-grid-banner .htnav-mm-list .htnav-mm-item { margin-left: 18px; width: calc(100% - 18px); }\n/* Universities at rest (no row hovered): the right side shows every\n   partner's white logo — the same transparent PNGs as the homepage\n   \"Our Partners\" strip, white-on-navy here. */\n.htnav-mm-grid-banner .htnav-mm-view { align-self: stretch; }\n.htnav-mm-logowall {\n  display: grid; grid-template-columns: repeat(3, 1fr); gap: 38px 32px;\n  align-items: center; justify-items: center; align-content: center;\n  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.10);\n  border-radius: 16px; padding: 46px 40px; height: 100%; min-height: 340px;\n  text-decoration: none; animation: htnavFadeIn 0.28s ease;\n}\n.htnav-mm-logowall img { max-width: 100%; max-height: 76px; object-fit: contain; display: block; opacity: 0.95; }\n/* (The top-right .htnav-mm-browse button is gone — Saif 13 Aug: the browse\n   link lives INSIDE the left list now, first row, dressed like its\n   neighbours.) */\n\n@media (max-width: 1199px) {\n  .htnav-mm-grid { gap: 18px; }\n}\n\n/* ── Mobile ── */\n.htnav-burger { display: none; }\n.htnav-scrim { display: none; }\n.htnav-drawer { display: none; }\n.htnav-caret-blink {\n  display: inline-block; width: 2px; height: 0.9em; background: #ffffff;\n  margin-left: 2px; vertical-align: -0.08em; animation: htnavBlink 1.05s steps(1, end) infinite;\n}\n@keyframes htnavBlink { 0%, 49% { opacity: 1 } 50%, 100% { opacity: 0 } }\n\n@media (max-width: 1023px) {\n  .htnav-top { height: 64px; justify-content: space-between; }\n  .htnav-norsk { display: none; }\n  .htnav-logo { position: static; }\n  .htnav-actions { display: none; }\n  .htnav-linkbar { display: none; }\n  /* ⭐ Saif 18 Aug: the bare icon did not read as a menu to everyone, so the\n     button now says so out loud. Icon + word on one line — the actions are\n     hidden at this width, so there is room to spare even at 360px. */\n  .htnav-burger {\n    display: flex; align-items: center; justify-content: center; gap: 8px;\n    height: 44px; padding: 0 14px 0 12px; border-radius: 11px;\n    border: 1px solid rgba(255,255,255,0.22);\n    background: rgba(255,255,255,0.10); cursor: pointer;\n    color: #ffffff; font-size: 13px; font-weight: 700;\n    letter-spacing: 0.09em; text-transform: uppercase; white-space: nowrap;\n  }\n  .htnav-burger svg { width: 22px; height: 22px; flex-shrink: 0; }\n  .htnav-burger-label { line-height: 1; display: block; }\n\n  .htnav-scrim {\n    display: block; position: fixed; inset: 0; z-index: 1001;\n    background: rgba(5, 9, 30, 0.45); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);\n    transition: opacity 0.3s ease;\n  }\n  .htnav-drawer {\n    display: flex; flex-direction: column;\n    position: fixed; top: 0; right: 0; bottom: 0; z-index: 1002;\n    width: min(88vw, 420px); max-width: 100%;\n    background: #ffffff;\n    box-shadow: -10px 0 44px rgba(13, 23, 48, 0.16);\n    transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);\n  }\n  /* Header + CTAs share the navy of the top bar; the menu list below is white. */\n  .htnav-dhead {\n    display: flex; align-items: center; justify-content: space-between;\n    padding: 0 20px; height: 68px; flex-shrink: 0; background: var(--nav-navy);\n  }\n  .htnav-dgreet { display: flex; align-items: center; gap: 10px; }\n  .htnav-dgreet-text { font-size: 17px; font-weight: 700; color: #ffffff; letter-spacing: -0.01em; white-space: nowrap; }\n  .htnav-dgreet-hi { color: rgba(255,255,255,0.75); font-weight: 600; }\n  .htnav-dclose {\n    width: 42px; height: 42px; border-radius: 11px; flex-shrink: 0;\n    background: rgba(255,255,255,0.16); border: 1px solid rgba(255,255,255,0.38);\n    display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0;\n  }\n  .htnav-dclose svg { width: 20px; height: 20px; }\n\n  .htnav-dctas { display: flex; gap: 12px; padding: 0 20px 18px; flex-shrink: 0; background: var(--nav-navy); }\n  .htnav-dsignin, .htnav-dapply {\n    display: flex; align-items: center; justify-content: center; gap: 9px;\n    min-width: 0; height: 44px; padding: 0 18px; border-radius: 9px; border: none;\n    text-decoration: none; font-size: 14.5px; font-weight: 600; line-height: 1.2; white-space: nowrap;\n  }\n  .htnav-dsignin { flex: 1; background: #ffffff; color: var(--nav-navy); box-shadow: 0 1px 2px rgba(0,0,0,0.10); }\n  .htnav-dapply { flex: 1; background: var(--nav-blue); color: #ffffff; box-shadow: 0 1px 2px rgba(0,0,0,0.14); }\n  .htnav-dsignin .htnav-arrow, .htnav-dapply .htnav-arrow { width: 15px; height: 15px; }\n\n  .htnav-dbody { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 0; background: #ffffff; }\n  /* Pinned to the bottom of the drawer, the way the CTAs are pinned to the top */\n  .htnav-dfoot {\n    display: flex; align-items: center; gap: 11px; flex-shrink: 0;\n    padding: 16px 20px calc(16px + env(safe-area-inset-bottom, 0px));\n    font-size: clamp(16px, 4.4vw, 19px); font-weight: 600; color: ${DRAWER_INK};\n    text-decoration: none; background: #ffffff;\n    border-top: 1px solid ${DRAWER_BORDER};\n  }\n  .htnav-dfoot .htnav-arrow { width: 17px; height: 17px; margin-left: auto; }\n  .htnav-dlink, .htnav-dtoggle {\n    display: flex; align-items: center; gap: 11px; width: 100%;\n    padding: clamp(13px, 2.1vh, 18px) 20px;\n    font-size: clamp(17px, 4.7vw, 21px); font-weight: 600; color: ${DRAWER_INK};\n    text-decoration: none; background: none; border: none; border-bottom: 1px solid ${DRAWER_BORDER};\n    cursor: pointer; text-align: left;\n  }\n  .htnav-dtoggle { justify-content: space-between; }\n  .htnav-dlink.is-current, .htnav-dtoggle.is-current { color: var(--nav-blue); }\n  .htnav-dlink.is-current { box-shadow: inset 3px 0 0 var(--nav-blue); }\n  .htnav-dtoggle.is-open { background: var(--nav-navy); color: #ffffff; border-bottom-color: var(--nav-navy); }\n  .htnav-dtoggle.is-open .htnav-caret { opacity: 1; }\n  .htnav-dtoggle .htnav-caret { width: 19px; height: 19px; }\n  .htnav-dmark { width: 34px; height: 34px; border-radius: 9px; overflow: hidden; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: #ffffff; border: 1px solid ${DRAWER_BORDER}; }\n  .htnav-dmark img { width: 100%; height: 100%; object-fit: cover; display: block; }\n\n  /* ⭐ Full-bleed list, not floating pills (Saif 12 Aug: \"remove that pill…\n     make sure there is no empty space on the sides\"). Rows carry the\n     hairlines, so the panel itself needs no padding and no border. */\n  .htnav-dpanel { padding: 0; background: #F7F9FD; display: flex; flex-direction: column; }\n  .htnav-dcard { display: flex; gap: 12px; align-items: center; text-decoration: none; background: none; border: none; border-bottom: 1px solid ${DRAWER_BORDER}; border-radius: 0; padding: 13px 20px; }\n  /* Countries splits into two labelled groups in the drawer too — nine cards\n     with Slovakia appearing twice makes no sense without them. */\n  .htnav-dsect {\n    display: block; padding: 15px 20px 9px; background: #EEF2FA;\n    border-bottom: 1px solid ${DRAWER_BORDER};\n    font-size: 12.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;\n    color: var(--nav-navy);\n  }\n  .htnav-dcard-media { position: relative; width: 84px; height: 62px; border-radius: 9px; overflow: hidden; flex-shrink: 0; background: var(--nav-navy); }\n  .htnav-dcard-media img { width: 100%; height: 100%; object-fit: cover; display: block; }\n  .htnav-dcard-logo { position: absolute; left: 5px; bottom: 5px; width: 22px; height: 22px; border-radius: 6px; overflow: hidden; border: 1.5px solid #fff; background: #fff; }\n  .htnav-dcard-body { display: block; min-width: 0; }\n  .htnav-dcard-title { display: block; font-size: 15.5px; font-weight: 600; color: ${INK}; line-height: 1.25; }\n  .htnav-dcard-sub { display: block; font-size: 13px; color: ${MUTED}; line-height: 1.4; margin-top: 3px; }\n  .htnav-dcard .htnav-arrow { width: 15px; height: 15px; margin-left: auto; flex-shrink: 0; }\n\n  /* ⛔ .htnav-dintro is unused since 14 Aug — both drawer intros are deleted. */\n  /* Hairlines live on the rows now; a second rule would double the line. */\n  .htnav-drule { display: none; }\n  .htnav-drow { display: flex; align-items: center; gap: 11px; text-decoration: none; background: none; border: none; border-bottom: 1px solid ${DRAWER_BORDER}; border-radius: 0; padding: 14px 20px; }\n  /* ⭐ 17 Aug: the UPJŠ flashcards row hangs under the Slovakia exam row —\n     indented, faintly tinted and with its own left tick so it reads as a child\n     of that row rather than as a fifth exam. */\n  .htnav-drow.htnav-drow-sub2 { position: relative; padding-left: 44px; background: rgba(18,91,252,0.05); }\n  .htnav-drow.htnav-drow-sub2::before {\n    content: \"\"; position: absolute; left: 26px; top: 13px; bottom: 13px;\n    width: 2px; border-radius: 2px; background: rgba(18,91,252,0.38);\n  }\n  .htnav-drow.htnav-drow-sub2 .htnav-dmark { width: 30px; height: 30px; }\n  .htnav-drow.htnav-drow-sub2 .htnav-dmark svg { width: 17px; height: 17px; }\n  /* ⭐ The way OUT of a section belongs at the TOP of it. A reader who opens\n     Articles wants \"read them all\" as an option immediately, not after scrolling\n     past every post. order:-1 lifts it to the front of the flex column for every\n     section that has one (Programs, Universities, Flashcards, Articles), matching\n     the Entrance Exam panel where the banner rows already sit first. */\n  .htnav-dmore {\n    order: -1;\n    display: flex; align-items: center; gap: 11px; text-decoration: none;\n    border: none; border-radius: 0;\n    font-size: 16px; font-weight: 600; color: #ffffff;\n  }\n\n  /* ⭐⭐⭐ 14 Aug (Saif, on his phone): EVERY coloured band in the drawer is one\n     component now — blue, ≥64px tall, an icon chip on the left, an arrow on the\n     right and a white hairline underneath. Universities stacks TWO of them\n     (\"Check every grade requirement\" + \"Browse all partner universities\") and\n     without the hairline they read as a single blue block: \"it's hard to see…\n     put a line between those, make them a little bit taller.\"\n     ⛔ Do NOT drop the hairline, do NOT take a band back to 42px, and do NOT\n     re-colour ONE of them — they must stay homogeneous, which is why the old\n     GREEN \"Can you get in?\" band matches the rest and why Our Team / Student\n     Reviews are bands rather than plain white rows.\n     ⭐⭐ 17 Aug: the shared colour is BAND_NAVY (#0c1c73, the /flashcards hero)\n     instead of the brighter --nav-blue. Saif picked it off that page.\n     ⚠ The DESKTOP panel CTAs are a different thing entirely — white buttons with\n     a coloured glyph — and that rule lives outside this ≤1023px block. */\n  .htnav-drow-blue, .htnav-dmore {\n    background: ${BAND_NAVY};\n    border-bottom: 1px solid rgba(255,255,255,0.45);\n    padding: 15px 20px;\n    min-height: 64px;\n  }\n  .htnav-drow-blue .htnav-drow-title, .htnav-dmore .htnav-drow-title { color: #ffffff; font-size: 16px; }\n  .htnav-drow-blue .htnav-drow-sub, .htnav-dmore .htnav-drow-sub { color: rgba(255,255,255,0.86); font-size: 13px; }\n  .htnav-drow-blue .htnav-arrow, .htnav-dmore .htnav-arrow { width: 17px; height: 17px; margin-left: auto; flex-shrink: 0; }\n  /* Chip glyphs: CalendarIcon carries an inline 18px that no rule can beat, so\n     everything else is pinned to 18px to match it. Scoped to the bands so the\n     Norwegian flag in the footer chip keeps its own size. */\n  .htnav-drow-blue .htnav-dmark svg, .htnav-dmore .htnav-dmark svg { width: 18px; height: 18px; }\n  .htnav-dmark-blue { background: rgba(255,255,255,0.16); border-color: rgba(255,255,255,0.38); color: #ffffff; }\n  .htnav-drow-title { display: block; font-size: 15.5px; font-weight: 600; color: ${INK}; line-height: 1.3; }\n  .htnav-drow-sub { display: block; font-size: 13px; color: ${MUTED}; line-height: 1.4; margin-top: 2px; }\n  /* About Us rows in the drawer carry an arrow, so the text needs to stop\n     short of it. */\n  .htnav-drow .htnav-arrow { width: 16px; height: 16px; margin-left: auto; flex-shrink: 0; }\n}\n`;// ── Exam dates ─────────────────────────────────────────────────────────────\n// The /apply page reads this same endpoint, so the panel always shows the same\n// sittings as the rest of the site. The seed below is the registry as of\n// 28 Jul 2026 and is what renders until (or if) the fetch resolves.\nconst EXAM_API=\"https://script.google.com/macros/s/AKfycbwpAtE9fXCeBrJ4aRVG7fyIhtJaKUzMYBh-G0P5TXFGTm3OTB6wHyR1UU11B8Z1lSLv/exec?examDates=1\";const SEED_DATES={upjs:[{label:\"12 August 2026\",city:\"Košice\"},{label:\"5 September 2026\",city:\"Košice\"}],upol:[{label:\"29 July 2026\",city:\"\"},{label:\"5 August 2026\",city:\"\"}],umch:[{label:\"1 August 2026\",city:\"\"},{label:\"5 August 2026\",city:\"\"},{label:\"12 August 2026\",city:\"\"},{label:\"15 August 2026\",city:\"\"}],// ⭐ One day per label. The nav parses these with Date.parse, which returns\n// NaN for a range like \"8-9 September 2026\" and pins the sitting to the\n// bottom of the menu as if it had no date at all.\nncu:[{label:\"8 September 2026\",city:\"register by 25 August\"},{label:\"23 September 2026\",city:\"register by 15 September\"}]};/**\n * A label like \"August 2026 (date to be arranged)\" must count as undated:\n * V8 treats the parenthetical as a legacy timezone comment and happily parses\n * it to 1 August, which made the vague sitting beat the real ones.\n */function parseWhen(label){const s=String(label);return/\\(/.test(s)?NaN:Date.parse(s);}/** Upcoming sittings for one university, soonest first, dateless ones last. */function uniDates(dates,key){const list=dates&&key&&dates[key]||[];const out=[];for(const d of list){const when=parseWhen(d.label);if(isNaN(when)||when>=Date.now()-864e5){out.push({label:d.label,city:d.city||\"\",when:isNaN(when)?Infinity:when});}}out.sort((a,b)=>a.when-b.when);return out.slice(0,4);}/**\n * The registry lives on a slow Apps Script endpoint (~1-3s), and the mega\n * panel remounts every time it opens. Cache the response at module level and\n * prefetch it when the nav itself mounts, so by the time anyone opens the\n * Entrance Exam menu the live dates render instantly instead of the seed\n * swapping a couple of seconds later.\n */let DATES_CACHE=null;let DATES_PROMISE=null;function fetchExamDates(){if(!DATES_PROMISE){DATES_PROMISE=fetch(EXAM_API).then(r=>r.json()).then(j=>{if(j&&j.success&&j.dates)DATES_CACHE=j.dates;return DATES_CACHE;}).catch(()=>null);}return DATES_PROMISE;}function useExamDates(){const[dates,setDates]=useState(DATES_CACHE??SEED_DATES);useEffect(()=>{let alive=true;if(DATES_CACHE)setDates(DATES_CACHE);else fetchExamDates().then(d=>{if(alive&&d)setDates(d);});return()=>{alive=false;};},[]);return dates;}const CrossMark=({size=26})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 32 32\",fill:\"none\",style:{flexShrink:0},children:[/*#__PURE__*/_jsx(\"rect\",{x:\"12.5\",y:\"2.5\",width:\"7\",height:\"27\",rx:\"3.5\",fill:GREEN}),/*#__PURE__*/_jsx(\"rect\",{x:\"2.5\",y:\"12.5\",width:\"27\",height:\"7\",rx:\"3.5\",fill:GREEN})]});/** \"Hi, Future Dentist\" ⟷ \"Hi, Future Doctor\", same effect as the home drawer. */function TypewriterWord({words}){const[wordIndex,setWordIndex]=useState(0);const[sub,setSub]=useState(0);const[deleting,setDeleting]=useState(false);const current=words[wordIndex%words.length];useEffect(()=>{let delay=deleting?55:115;if(!deleting&&sub===current.length)delay=1500;else if(deleting&&sub===0)delay=350;const t=setTimeout(()=>{if(!deleting&&sub===current.length)setDeleting(true);else if(deleting&&sub===0){setDeleting(false);setWordIndex(i=>(i+1)%words.length);}else setSub(v=>v+(deleting?-1:1));},delay);return()=>clearTimeout(t);},[sub,deleting,current,words.length]);const longest=words.reduce((a,b)=>b.length>a.length?b:a,\"\");return /*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",display:\"inline-block\",whiteSpace:\"nowrap\"},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{visibility:\"hidden\"},children:longest}),/*#__PURE__*/_jsxs(\"span\",{style:{position:\"absolute\",left:0,top:0,color:\"#ffffff\",whiteSpace:\"nowrap\"},children:[current.slice(0,sub),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-caret-blink\"})]})]});}/** The five gold stars over a quoted review. */const Stars=()=>/*#__PURE__*/_jsx(\"span\",{className:\"htnav-quote-stars\",children:\"★★★★★\"});/**\n * The panels only mount on hover, so the first preview photo starts downloading\n * at the exact moment it is needed and Saif saw it pop in late. Moving the\n * pointer into the link row is intent enough: warm the three default previews\n * then, a few hundred ms before the pointer reaches an actual item. Costs\n * nothing for anyone who never touches the nav, and never runs on the phone\n * (the drawer has its own, much smaller, images).\n */let WARMED=false;function warmPreviews(){if(WARMED||typeof window===\"undefined\")return;if(!window.matchMedia(\"(min-width: 1024px)\").matches)return;WARMED=true;const first=label=>NAV_ITEMS.find(i=>i.label===label)?.cards?.[0];/* Only the two light ones. The Universities preview is a 254 KB photo and\n       warming it would cost more than the wait it saves. */const urls=[sd(first(\"Countries\")?.photo,900),sd(NAV_ITEMS.find(i=>i.kind===\"articles\")?.posts?.[0]?.img,512)].filter(u=>!!u);for(const u of urls){const img=new Image;img.decoding=\"async\";img.src=u;}}function MegaPanel({item,T,H,norsk}){const dates=useExamDates();// Which left-hand entry the preview shows. Hovering the list retargets it;\n// the first entry is the default, so the right side is never empty.\nconst[idx,setIdx]=useState(0);/* Which row the pointer is actually ON (-1 = none). Universities, exam\n       and flashcards highlight rows from THIS, not idx — Saif 13 Aug:\n       \"Slovakia shouldn't be hovered… if you hover over it, then it's\n       hovered\". idx keeps driving the preview so it is never empty. */const[hot,setHot]=useState(-1);/* The split Countries panel has two lists, so a numeric index would light\n       up the matching row in BOTH columns. Rows there key off a string. */const[hotKey,setHotKey]=useState(\"\");const entries=item.cards??[];const cur=entries.length?entries[Math.min(idx,entries.length-1)]:undefined;// The collaborations carousel under About Us.\nconst[slide,setSlide]=useState(0);const[paused,setPaused]=useState(false);const news=item.news??[];const maxSlide=Math.max(0,news.length-2);const onCollab=item.kind===\"about\"&&cur?.view===\"collab\";useEffect(()=>{if(!onCollab||paused||maxSlide===0)return;const t=setInterval(()=>setSlide(s=>s>=maxSlide?0:s+1),3400);return()=>clearInterval(t);},[onCollab,paused,maxSlide]);/* Saif 13 Aug: the browse link is the FIRST ROW of the left list,\n       dressed exactly like the university rows around it — grad-cap chip\n       instead of a logo, no coloured background. *//* Saif 13 Aug (evening): a \"Can you get in?\" row sits ABOVE the browse row,\n       same dress, and leads to the requirements checker. */const banner=item.footer&&item.bannerTop&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-seeall\",href:H(\"/can-i-get-in\"),onMouseEnter:()=>setHot(-1),onFocus:()=>setHot(-1),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-seeall-ico\",children:\"01\"}),T(\"Check every grade requirement\"),/*#__PURE__*/_jsx(ArrowIcon,{})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-seeall\",href:H(item.footer.href),onMouseEnter:()=>setHot(-1),onFocus:()=>setHot(-1),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-seeall-ico\",children:\"02\"}),T(item.footer.label),/*#__PURE__*/_jsx(ArrowIcon,{})]})]});const seeAll=item.footer&&!item.bannerTop&&/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-all\",href:H(item.footer.href),onMouseEnter:()=>setHot(-1),onFocus:()=>setHot(-1),children:[T(item.footer.label),/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})]});const rowInner=(c,i)=>/*#__PURE__*/_jsxs(_Fragment,{children:[c.logo?/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-logo\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(c.logo,128),alt:\"\",decoding:\"async\"})}):item.kind===\"country\"&&c.photo?/* Countries get a thumbnail of the country instead of a number;\n                   Programs keeps its 01/02/03 numbering. *//*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-logo\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(c.photo,128),alt:\"\",decoding:\"async\"})}):/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-num\",children:String(i+1).padStart(2,\"0\")}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-mm-body\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-mm-title\",children:[T(c.title),c.isNew&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-newpill\",children:T(\"New\")})]}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-subline\",children:T(c.sub)})]}),/*#__PURE__*/_jsx(ArrowIcon,{})]});/* Countries: identical dress to a normal row, but keyed by column so the\n       two lists never highlight in lockstep, and with no preview to drive. */const splitRow=(c,i,col)=>{const k=col+i;return /*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-item\"+(hotKey===k?\" is-hot\":\"\"),href:H(c.href),onMouseEnter:()=>setHotKey(k),onFocus:()=>setHotKey(k),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-logo\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(c.photo,128),alt:\"\",decoding:\"async\"})}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-mm-body\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-title\",children:T(c.title)}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-subline\",children:T(c.sub)})]}),/*#__PURE__*/_jsx(ArrowIcon,{})]},k);};/* Rows without an href — the Collaborations tab, whose content is the\n       carousel itself — have to be buttons, or React renders a dead <a>. */const hotMode=!!item.bannerTop||item.kind===\"exam\";const listRow=(c,i)=>{const active=hotMode?i===hot:i===idx;return c.href?/*#__PURE__*/_jsx(\"a\",{className:\"htnav-mm-item\"+(active?\" is-hot\":\"\"),href:H(c.href),onMouseEnter:()=>{setIdx(i);setHot(i);},onFocus:()=>{setIdx(i);setHot(i);},children:rowInner(c,i)},c.title):/*#__PURE__*/_jsx(\"button\",{className:\"htnav-mm-item\"+(active?\" is-hot\":\"\"),type:\"button\",onMouseEnter:()=>{setIdx(i);setHot(i);},onFocus:()=>{setIdx(i);setHot(i);},onClick:()=>{setIdx(i);setHot(i);},children:rowInner(c,i)},c.title);};return /*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mega\"+(item.kind===\"exam\"?\" htnav-mega-narrow\":\"\"),children:[item.eyebrow&&/*#__PURE__*/_jsx(\"div\",{className:\"htnav-mm-eyebrow\",children:T(item.eyebrow)}),item.kind===\"cards\"&&cur&&/* The hover reset lives on the GRID, not the list: crossing\n                   the gap into the preview must keep the hovered uni alive so\n                   its CTAs stay clickable; only leaving the whole panel area\n                   brings the logo wall back. *//*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-grid\"+(banner?\" htnav-mm-grid-banner\":\"\"),onMouseLeave:()=>setHot(-1),children:[/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-list\",children:[banner,entries.map(listRow),seeAll]}),/*#__PURE__*/_jsx(\"div\",{className:\"htnav-mm-view\",children:item.bannerTop&&item.footer&&hot===-1?/* Resting state: every partner's white logo;\n                               clicking anywhere goes where the browse row goes. *//*#__PURE__*/_jsx(\"a\",{className:\"htnav-mm-logowall\",href:H(item.footer.href),children:WHITE_UNI_LOGOS.map(u=>/*#__PURE__*/_jsx(\"img\",{src:sd(u,512),alt:\"\",decoding:\"async\"},u))}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-shot\"+(cur.photos&&cur.photos.length>1?\" htnav-mm-shot-strip\":\"\"),href:H(cur.href),children:[cur.photos&&cur.photos.length>1?cur.photos.map((src,i)=>/*#__PURE__*/_jsx(\"img\",{src:sd(src,512),alt:\"\",decoding:\"async\"},src+i)):cur.photo&&/*#__PURE__*/_jsx(\"img\",{src:sd(cur.photo,1024),alt:\"\",decoding:\"async\"}),cur.logo&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-shotlogo\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(cur.logo,128),alt:\"\",decoding:\"async\"})})]},cur.href),/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-cap\",children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-cap-top\",href:H(cur.href),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-cap-title\",children:T(cur.title)}),(cur.badge||cur.chip)&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-chip\",children:T(cur.badge??cur.chip)})]}),cur.info&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-cap-info\",children:T(cur.info)}),cur.country&&/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-mm-country\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-country-lbl\",children:T(\"Country\")}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-country-val\",children:T(cur.country)})]}),cur.country&&/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-mm-ctas\",children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-cta is-white\",href:H(cur.href),children:[T(\"Read About University\"),/*#__PURE__*/_jsx(ArrowIcon,{color:\"var(--nav-navy)\"})]}),cur.examHref&&/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-cta is-outline\",href:H(cur.examHref),children:[T(\"Entrance Exam Info\"),/*#__PURE__*/_jsx(ArrowIcon,{})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-cta is-blue\",href:H(\"/apply\"),children:[T(\"Apply Now\"),/*#__PURE__*/_jsx(ArrowIcon,{})]})]})]})]})})]}),item.kind===\"exam\"&&cur&&/*#__PURE__*/_jsx(\"div\",{className:\"htnav-mm-grid htnav-mm-solo\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-list htnav-mm-cols2\",onMouseLeave:()=>setHot(-1),children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-seeall htnav-mm-seeall-pair\",href:H(\"/exams\"),onMouseEnter:()=>setHot(-1),onFocus:()=>setHot(-1),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-seeall-ico\",children:\"01\"}),T(\"See all entrance exam dates\"),/*#__PURE__*/_jsx(ArrowIcon,{})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-seeall htnav-mm-seeall-pair\",href:H(\"/can-i-get-in\"),onMouseEnter:()=>setHot(-1),onFocus:()=>setHot(-1),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-seeall-ico\",children:\"02\"}),T(\"Check every grade requirement\"),/*#__PURE__*/_jsx(ArrowIcon,{})]}),entries.map((c,i)=>c.flashHref?/* ⭐ 17 Aug: the flashcards hang UNDER the Slovakia\n                                   row now that the Flashcards menu has no panel of\n                                   its own. ⛔ The wrapper is what makes it work —\n                                   this list is a two-column grid, so a bare second\n                                   <a> would land in the NEXT COLUMN instead of\n                                   underneath its own row. *//*#__PURE__*/_jsxs(\"span\",{className:\"htnav-mm-cell\",children:[listRow(c,i),/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-subitem\",href:H(c.flashHref),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-subico\",children:/*#__PURE__*/_jsx(CardsIcon,{})}),T(c.flashLabel??\"UPJŠ entrance exam flashcards\"),/*#__PURE__*/_jsx(ArrowIcon,{})]})]},c.title):listRow(c,i))]})}),item.kind===\"about\"&&cur&&/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-grid\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-list\",children:[entries.map(listRow),seeAll]}),cur.view===\"collab\"?/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-view\",onMouseEnter:()=>setPaused(true),onMouseLeave:()=>setPaused(false),children:[/*#__PURE__*/_jsx(\"div\",{className:\"htnav-news-clip\",children:/*#__PURE__*/_jsx(\"div\",{className:\"htnav-news-track\",style:{transform:`translateX(calc(${-slide} * (50% + 7px)))`},children:news.map(n=>/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-news-card\",href:H(n.href),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-news-img\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(n.img,640),alt:\"\",decoding:\"async\"})}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-news-meta\",children:[T(n.tag),\" \\xb7 \",T(n.date)]}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-news-title\",children:T(n.title)})]},n.href))})}),maxSlide>0&&/*#__PURE__*/_jsx(\"div\",{className:\"htnav-news-dots\",children:Array.from({length:maxSlide+1}).map((_,i)=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:i===slide?\"is-on\":\"\",\"aria-label\":`Slide ${i+1}`,onClick:()=>setSlide(i)},i))})]}):/*#__PURE__*/_jsx(\"div\",{className:\"htnav-mm-view\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-viewpad\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-mm-cap-top\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-cap-title\",children:T(cur.title)}),cur.chip&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-chip\",children:T(cur.chip)})]}),cur.view===\"team\"&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-faces\",children:TEAM_FACES.map(f=>/*#__PURE__*/_jsx(\"span\",{children:/*#__PURE__*/_jsx(\"img\",{src:sd(f,128),alt:\"\"})},f))}),cur.info&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-cap-info\",children:T(cur.info)}),cur.view===\"reviews\"&&/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-quote\",children:[/*#__PURE__*/_jsx(Stars,{}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-quote-text\",children:[\"“\",(norsk?REVIEW_NO:REVIEW_EN).text,\"”\"]}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-quote-who\",children:[(norsk?REVIEW_NO:REVIEW_EN).name,\" \\xb7 Google\"]})]}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-ctas\",children:/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-cta is-white\",href:H(cur.href),children:[T(cur.view===\"team\"?\"Meet the whole team\":\"Read all reviews\"),/*#__PURE__*/_jsx(ArrowIcon,{color:\"var(--nav-navy)\"})]})})]},cur.title)})]}),item.kind===\"country\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-grid htnav-mm-grid-split\",onMouseLeave:()=>setHotKey(\"\"),children:[/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-col\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-colhead\",children:[/*#__PURE__*/_jsx(CapIcon,{}),T(\"Places you can study medicine\")]}),/*#__PURE__*/_jsx(\"div\",{className:\"htnav-mm-list\",children:entries.map((c,i)=>splitRow(c,i,\"m\"))})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-col\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-mm-colhead\",children:[/*#__PURE__*/_jsx(ToothIcon,{}),T(\"Places you can study dentistry\")]}),/*#__PURE__*/_jsx(\"div\",{className:\"htnav-mm-list\",children:(item.dent??[]).map((c,i)=>splitRow(c,i,\"d\"))}),/*#__PURE__*/_jsxs(\"p\",{className:\"htnav-mm-colnote\",children:[T(\"Only three of the universities we work with teach dentistry in English.\"),\" \",/*#__PURE__*/_jsx(\"b\",{children:T(\"Everywhere else on this list is medicine only.\")})]})]})]}),item.kind===\"articles\"&&/*#__PURE__*/_jsx(\"div\",{className:\"htnav-mm-grid htnav-mm-solo\",children:/*#__PURE__*/_jsxs(\"div\",{children:[item.footer&&/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-mm-seeall htnav-mm-seeall-fit\",href:H(item.footer.href),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-mm-seeall-ico\",children:\"01\"}),T(item.footer.label),/*#__PURE__*/_jsx(ArrowIcon,{})]}),/*#__PURE__*/_jsx(\"div\",{className:\"htnav-art-grid\",children:(norsk?item.postsNo??item.posts??[]:item.posts??[]).map(p=>/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-art\",href:p.href,children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-art-img\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(p.img,512),alt:\"\",decoding:\"async\"})}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-art-meta\",children:[p.date,p.read?` \\xb7 ${p.read}`:\"\"]}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-art-title\",children:p.title})]},p.href))})]})})]});}export default function HomeTestingNav(props){const{style,norsk=false,burgundy=false}=props;const theme=burgundy?{navy:\"#4e1123\",blue:\"#e8323c\",soft:\"rgba(232,50,60,0.10)\",line:\"rgba(232,50,60,0.24)\",glow:\"rgba(232,50,60,0.30)\",accent:\"#ff9aa0\"}:{navy:NAVY,blue:BLUE,soft:\"rgba(27,98,255,0.10)\",line:\"rgba(27,98,255,0.22)\",glow:\"rgba(27,98,255,0.30)\",accent:\"#8FB4FF\"};const T=t=>norsk&&t?NO_LABELS[t]??NO_SUBS[t]??t:t??\"\";const H=h=>norsk&&h?NO_HREFS[h]??h:h??\"\";const[open,setOpen]=useState(null);const[drawer,setDrawer]=useState(false);const[expanded,setExpanded]=useState(null);const drawerBody=useRef(null);// Prefetch so the Entrance Exam panel opens with live dates already cached.\nuseExamDates();// Lock the page behind the drawer. Fixing <body> (rather than just hiding\n// overflow) is what actually holds on iOS Safari; the scroll position is\n// stored and restored so closing the drawer does not jump the page.\nuseEffect(()=>{if(!drawer)return;const y=window.scrollY;const{style}=document.body;const prev={position:style.position,top:style.top,width:style.width,overflow:style.overflow};style.position=\"fixed\";style.top=`-${y}px`;style.width=\"100%\";style.overflow=\"hidden\";return()=>{style.position=prev.position;style.top=prev.top;style.width=prev.width;style.overflow=prev.overflow;window.scrollTo(0,y);};},[drawer]);// When a drawer section opens, bring its heading to the top of the panel so\n// the whole expanded block is visible without hunting for it.\nuseEffect(()=>{if(!expanded)return;const body=drawerBody.current;if(!body)return;const id=requestAnimationFrame(()=>{const group=body.querySelector(`[data-group=\"${expanded}\"]`);if(!group)return;const delta=group.getBoundingClientRect().top-body.getBoundingClientRect().top;body.scrollTo({top:body.scrollTop+delta,behavior:\"smooth\"});});return()=>cancelAnimationFrame(id);},[expanded]);// Read the path after mount, never during render — reading location during\n// SSR would hydrate with the wrong item marked active.\nconst[path,setPath]=useState(null);useEffect(()=>{setPath(window.location.pathname.replace(/\\/+$/,\"\")||\"/\");},[]);/**\n     * Which nav item owns the current URL. A dropdown's own destination (its\n     * href, or the \"see all\" footer link) outranks a link that merely appears\n     * inside its panel — otherwise /transfer would light up Programs as well,\n     * because Programs lists a Transfer Students card.\n     */const activeLabel=(()=>{if(!path)return null;/* Run every candidate through H() first: on the Norwegian site the\n           pathname is Norwegian (/universiteter, /studer-medisin-i-tyskland),\n           so comparing it against the raw English hrefs never matched and no\n           item ever lit up. H() is the identity on the English nav.\n           Cards without an href (the Collaborations tab) must not reach .split. */const clean=t=>{if(!t)return null;const c=H(t).split(\"?\")[0].split(\"#\")[0].replace(/\\/+$/,\"\")||\"/\";return c.startsWith(\"/\")?c:null;};const hit=t=>!!t&&(t===\"/\"?path===\"/\":path===t||path.startsWith(t+\"/\"));let best=null;for(const item of NAV_ITEMS){let score=0;if(hit(clean(item.href??\"\")))score=2;else if(item.footer&&hit(clean(item.footer.href)))score=2;else{const kids=[/* ⛔ Deliberately NOT c.uniHref — /universities/* belongs to\n                       the Universities item, and Countries comes first in the\n                       row, so it would steal the underline on a score tie. */...(item.cards??[]).map(c=>c.href),...(item.news??[]).map(n=>n.href),...(item.posts??[]).map(b=>b.href),...(item.postsNo??[]).map(b=>b.href)];if(kids.some(k=>hit(clean(k))))score=1;}if(score>0&&(!best||score>best.score))best={label:item.label,score};}return best?.label??null;})();const isCurrent=item=>item.label===activeLabel;/**\n     * Auto-fit the white link row.\n     *\n     * Ten items at a fixed padding were wider than the row on every screen\n     * below ~1600px, and because the row is centred it clipped symmetrically —\n     * which is why students reported losing \"Home\" on the left and \"Contact\"\n     * on the right. This measures the labels as they actually render (right\n     * font, right language, bold on the active item) and solves for the\n     * padding that exactly fills the row. Only when padding alone cannot close\n     * the gap does it scale the type down, and never below MIN_FS.\n     */const linksRef=useRef(null);useEffect(()=>{const row=linksRef.current;if(!row)return;const BASE_FS=19// the design size, used whenever there is room for it\n;const MIN_FS=13// floor — still comfortably legible\n;const MAX_PAD=60// high cap so the row spreads edge to edge on wide screens\n;const MIN_PAD=9// below this we shrink the type instead\n;const PAD_FLOOR=5// absolute last resort\n;const fit=()=>{const items=Array.from(row.children);const n=items.length;if(!n)return;const contentWidth=()=>items.reduce((sum,el)=>sum+el.getBoundingClientRect().width,0);// Measure the bare labels first: no padding, type at full size.\nrow.style.setProperty(\"--nav-pad\",\"0px\");row.style.setProperty(\"--nav-fs\",`${BASE_FS}px`);const cs=getComputedStyle(row);const avail=row.clientWidth-parseFloat(cs.paddingLeft)-parseFloat(cs.paddingRight);const text=contentWidth();if(!(avail>0)||!(text>0))return;let pad=(avail-text)/(2*n);if(pad<MIN_PAD){const fs=Math.max(MIN_FS,BASE_FS*((avail-2*n*MIN_PAD)/text));row.style.setProperty(\"--nav-fs\",`${fs.toFixed(2)}px`);pad=(avail-contentWidth())/(2*n)// re-solve at the new type size\n;}const final=Math.max(PAD_FLOOR,Math.min(MAX_PAD,pad));row.style.setProperty(\"--nav-pad\",`${final.toFixed(2)}px`);};fit();// Clash Grotesk lands after first paint and changes every metric.\nconst fonts=document.fonts;if(fonts?.ready?.then)fonts.ready.then(fit).catch(()=>{});// Re-solve on resize. Changing the custom properties never resizes the\n// row itself, so this cannot feed back into itself.\nconst ro=new ResizeObserver(fit);ro.observe(row);return()=>ro.disconnect();},[norsk,activeLabel]);const openItem=NAV_ITEMS.find(i=>i.label===open&&i.kind);return /*#__PURE__*/_jsxs(\"div\",{style:{...style,[\"--nav-navy\"]:theme.navy,[\"--nav-blue\"]:theme.blue,[\"--nav-blue-soft\"]:theme.soft,[\"--nav-blue-line\"]:theme.line,[\"--nav-blue-glow\"]:theme.glow,[\"--nav-accent\"]:theme.accent},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsxs(\"nav\",{className:\"htnav-shell\",\"data-nosnippet\":true,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"htnav htnav-top\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"htnav-norsk\",href:\"/for-norske-studenter\",\"aria-label\":\"Jeg er fra Norge\",children:/*#__PURE__*/_jsx(NorwegianFlag,{})}),/*#__PURE__*/_jsx(\"a\",{className:\"htnav-logo\",href:\"/\",children:/*#__PURE__*/_jsx(\"img\",{src:LOGO_SRC,alt:\"Medently\"})}),/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-actions\",children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-btn htnav-signin\",href:\"/signin\",children:[T(\"Sign in\"),/*#__PURE__*/_jsx(ArrowIcon,{color:theme.navy})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-btn htnav-apply\",href:\"/apply\",children:[T(\"Apply Now\"),/*#__PURE__*/_jsx(ArrowIcon,{color:\"#ffffff\"})]})]}),/*#__PURE__*/_jsxs(\"button\",{className:\"htnav-burger\",type:\"button\",\"aria-label\":drawer?\"Close menu\":\"Open menu\",\"aria-expanded\":drawer,onClick:()=>{setDrawer(d=>!d);setExpanded(null);},children:[/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",children:drawer?/*#__PURE__*/_jsx(\"path\",{d:\"M6 6l12 12M18 6L6 18\",stroke:\"#fff\",strokeWidth:\"2.2\",strokeLinecap:\"round\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M4 7h16M4 12h16M4 17h16\",stroke:\"#fff\",strokeWidth:\"2.2\",strokeLinecap:\"round\"})}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-burger-label\",children:drawer?T(\"Close\"):T(\"Menu\")})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-linkbar\",onMouseEnter:warmPreviews,onMouseLeave:()=>setOpen(null),children:[/*#__PURE__*/_jsx(\"div\",{className:\"htnav-links\",ref:linksRef,children:NAV_ITEMS.map(item=>/*#__PURE__*/_jsx(\"div\",{className:\"htnav-item\"+(isCurrent(item)?\" is-active\":\"\")+(open===item.label&&item.kind?\" is-open\":\"\"),onMouseEnter:()=>setOpen(item.kind?item.label:null),children:item.kind?/*#__PURE__*/_jsxs(\"button\",{className:\"htnav-link\",type:\"button\",onClick:()=>setOpen(open===item.label?null:item.label),children:[T(item.label),/*#__PURE__*/_jsx(Caret,{open:open===item.label})]}):/*#__PURE__*/_jsx(\"a\",{className:\"htnav-link\",href:H(item.href),children:T(item.label)})},item.label))}),openItem&&/*#__PURE__*/_jsx(MegaPanel,{item:openItem,T:T,H:H,norsk:norsk},openItem.label)]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"htnav-spacer\"}),/*#__PURE__*/_jsx(\"div\",{className:\"htnav-scrim\",onClick:()=>setDrawer(false),style:{opacity:drawer?1:0,pointerEvents:drawer?\"auto\":\"none\"}}),/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-drawer\",\"data-nosnippet\":true,role:\"dialog\",\"aria-modal\":\"true\",\"aria-hidden\":!drawer,style:{transform:drawer?\"translateX(0)\":\"translateX(101%)\"},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-dhead\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dgreet\",children:[/*#__PURE__*/_jsx(CrossMark,{size:26}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dgreet-text\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dgreet-hi\",children:norsk?\"Hei, \":\"Hi, \"}),norsk?\"fremtidige\":\"Future\",\" \",/*#__PURE__*/_jsx(TypewriterWord,{words:norsk?[\"tannlege\",\"lege\"]:[\"Dentist\",\"Doctor\"]})]})]}),/*#__PURE__*/_jsx(\"button\",{className:\"htnav-dclose\",type:\"button\",\"aria-label\":\"Close menu\",onClick:()=>setDrawer(false),children:/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 18 18\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M4 4l10 10M14 4L4 14\",stroke:\"#ffffff\",strokeWidth:\"2.4\",strokeLinecap:\"round\"})})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-dctas\",children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dsignin\",href:\"/signin\",onClick:()=>setDrawer(false),children:[T(\"Sign in\"),/*#__PURE__*/_jsx(ArrowIcon,{color:theme.navy})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dapply\",href:\"/apply\",onClick:()=>setDrawer(false),children:[T(\"Apply Now\"),/*#__PURE__*/_jsx(ArrowIcon,{color:\"#ffffff\"})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"htnav-dbody\",ref:drawerBody,children:NAV_ITEMS.map(item=>{if(!item.kind){return /*#__PURE__*/_jsx(\"a\",{className:\"htnav-dlink\"+(isCurrent(item)?\" is-current\":\"\"),href:H(item.href),onClick:()=>setDrawer(false),children:T(item.label)},item.label);}const open=expanded===item.label;return /*#__PURE__*/_jsxs(\"div\",{className:\"htnav-dgroup\",\"data-group\":item.label,children:[/*#__PURE__*/_jsxs(\"button\",{className:\"htnav-dtoggle\"+(open?\" is-open\":\"\")+(isCurrent(item)?\" is-current\":\"\"),type:\"button\",onClick:()=>setExpanded(open?null:item.label),children:[T(item.label),/*#__PURE__*/_jsx(Caret,{open:open})]}),open&&/*#__PURE__*/_jsxs(\"div\",{className:\"htnav-dpanel\",children:[item.kind===\"country\"&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dsect\",children:T(\"Places you can study medicine\")}),(item.kind===\"cards\"||item.kind===\"country\")&&item.cards.map(c=>/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dcard\",href:H(c.href),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-media\",children:[c.photo&&/*#__PURE__*/_jsx(\"img\",{src:sd(c.photo,256),alt:\"\"}),c.logo&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-logo\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(c.logo,96),alt:\"\"})}),!c.logo&&c.uniLogo&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-logo\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(c.uniLogo,96),alt:\"\"})})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-body\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-title\",children:[T(c.title),c.isNew&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-newpill\",children:T(\"New\")})]}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-sub\",children:T(c.sub)})]}),/*#__PURE__*/_jsx(ArrowIcon,{color:INK})]},c.title)),item.kind===\"country\"&&(item.dent??[]).length>0&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dsect\",children:T(\"Places you can study dentistry\")}),item.dent.map(c=>/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dcard\",href:H(c.href),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-media\",children:[c.photo&&/*#__PURE__*/_jsx(\"img\",{src:sd(c.photo,256),alt:\"\"}),c.uniLogo&&/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-logo\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(c.uniLogo,96),alt:\"\"})})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-body\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-title\",children:T(c.title)}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-sub\",children:T(c.sub)})]}),/*#__PURE__*/_jsx(ArrowIcon,{color:INK})]},\"d\"+c.title))]}),item.kind===\"about\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[item.cards.filter(c=>c.href).map(c=>/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-drow htnav-drow-blue\",href:H(c.href),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dmark htnav-dmark-blue\",children:c.view===\"reviews\"?/*#__PURE__*/_jsx(StarIcon,{}):/*#__PURE__*/_jsx(TeamIcon,{})}),/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-title\",children:T(c.title)}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-sub\",children:T(c.sub)})]}),/*#__PURE__*/_jsx(ArrowIcon,{color:\"#ffffff\"})]},c.title)),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drule\"}),(item.news??[]).map(n=>/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dcard\",href:H(n.href),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-media\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(n.img,256),alt:\"\"})}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-body\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-title\",children:T(n.title)}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-sub\",children:[T(n.tag),\" \\xb7 \",T(n.date)]})]}),/*#__PURE__*/_jsx(ArrowIcon,{color:INK})]},n.href))]}),item.kind===\"articles\"&&(norsk?item.postsNo??item.posts??[]:item.posts??[]).map(p=>/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dcard\",href:p.href,onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-media\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(p.img,256),alt:\"\"})}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-body\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dcard-title\",children:p.title}),/*#__PURE__*/_jsxs(\"span\",{className:\"htnav-dcard-sub\",children:[p.date,\" \\xb7 \",p.read]})]}),/*#__PURE__*/_jsx(ArrowIcon,{color:INK})]},p.href)),item.kind===\"exam\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-drow htnav-drow-blue\",href:H(\"/exams\"),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dmark htnav-dmark-blue\",children:/*#__PURE__*/_jsx(CalendarIcon,{})}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-title\",children:T(\"See all entrance exam dates\")}),/*#__PURE__*/_jsx(ArrowIcon,{})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-drow htnav-drow-blue\",href:H(\"/can-i-get-in\"),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dmark htnav-dmark-blue\",children:/*#__PURE__*/_jsx(CheckIcon,{})}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-title\",children:T(\"Check every grade requirement\")}),/*#__PURE__*/_jsx(ArrowIcon,{})]}),item.cards.map(c=>/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-drow\",href:H(c.href),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dmark\",children:/*#__PURE__*/_jsx(\"img\",{src:sd(c.logo,96),alt:\"\"})}),/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-title\",children:T(c.title)}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-sub\",children:T(c.sub)})]}),/*#__PURE__*/_jsx(ArrowIcon,{color:INK})]}),c.flashHref&&/* ⭐ 17 Aug: the drawer twin of the\n                                                               desktop child link — indented under\n                                                               the Slovakia row, white rather than a\n                                                               blue band, because it belongs to that\n                                                               row and not to the whole section. *//*#__PURE__*/_jsxs(\"a\",{className:\"htnav-drow htnav-drow-sub2\",href:H(c.flashHref),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dmark\",children:/*#__PURE__*/_jsx(CardsIcon,{color:INK})}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-title\",children:T(c.flashLabel??\"UPJŠ entrance exam flashcards\")}),/*#__PURE__*/_jsx(ArrowIcon,{color:INK})]})]},c.title))]}),item.bannerTop&&/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dmore\",href:H(\"/can-i-get-in\"),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dmark htnav-dmark-blue\",children:/*#__PURE__*/_jsx(CheckIcon,{})}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-title\",children:T(\"Check every grade requirement\")}),/*#__PURE__*/_jsx(ArrowIcon,{color:\"#ffffff\"})]}),item.footer&&/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dmore\",href:H(item.footer.href),onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dmark htnav-dmark-blue\",children:item.kind===\"articles\"?/*#__PURE__*/_jsx(NewsIcon,{}):/*#__PURE__*/_jsx(CapIcon,{})}),/*#__PURE__*/_jsx(\"span\",{className:\"htnav-drow-title\",children:T(item.footer.label)}),/*#__PURE__*/_jsx(ArrowIcon,{color:\"#ffffff\"})]})]})]},item.label);})}),/*#__PURE__*/_jsxs(\"a\",{className:\"htnav-dfoot\",href:\"/for-norske-studenter\",onClick:()=>setDrawer(false),children:[/*#__PURE__*/_jsx(\"span\",{className:\"htnav-dmark\",children:/*#__PURE__*/_jsx(NorwegianFlag,{})}),T(\"Norwegian Student Hub\"),/*#__PURE__*/_jsx(ArrowIcon,{color:DRAWER_INK})]})]})]});}HomeTestingNav.displayName=\"HomeTestingNav\";addPropertyControls(HomeTestingNav,{norsk:{type:ControlType.Boolean,title:\"Norsk\",defaultValue:false},burgundy:{type:ControlType.Boolean,title:\"Burgundy\",defaultValue:false}})// build-cache bust 8 Aug 2026 20:1x — harmless comment, remove any time\n;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HomeTestingNav\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HomeTestingNav.map","// @framerSupportedLayoutWidth any\n// @framerSupportedLayoutHeight any\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useRef,useEffect}from\"react\";import{addPropertyControls}from\"framer\";export const PROXY_URL=\"https://medently-ai-proxy.saifonsolana.workers.dev\";const QUICK_PROMPTS=[{label:\"Find the right university\",prompt:\"I want to study medicine in Europe. Which university is best for me?\"},{label:\"Compare universities\",prompt:\"Show me a comparison table of UMCH, UPJŠ, UPOL, RSU, NCU and UNIC.\"},{label:\"Entrance exam help\",prompt:\"How do I prepare for the entrance exam and what does it cover?\"},{label:\"Ask about transfers\",prompt:\"Can I transfer from my current university to study medicine in Europe?\"}];export const SYSTEM=`You are Medently AI, a warm and helpful admissions assistant for Medently. You speak like a medical student who has been through the European admissions process — friendly, honest, clear, never corporate or pushy. Keep answers concise. Always end with a helpful next step.\n\n═══════════════════════════════════════════════\nRESPONSE FORMATTING RULES — CRITICAL\n═══════════════════════════════════════════════\n\nYou can use these special formats in your replies:\n\n1. **Markdown tables** for comparisons. Always render comparisons as tables when comparing 2+ items. Use this exact format:\n| Feature | UMCH | UPJŠ | UPOL | RSU |\n|---------|------|------|------|-----|\n| Country | Germany | Slovakia | Czechia | Latvia |\n| Medicine fee | €25,000/yr | €13,000/yr | €12,500/yr | €13,500/yr |\n\n2. **Clickable action buttons** to drive students to action. When suggesting the student do something on the site, use this exact syntax on its own line:\n[BUTTON:Apply for Free|/apply]\n[BUTTON:Compare Universities|/universities]\n[BUTTON:Book a Free Call|https://cal.com/saiffrommedently/medently-consultation]\n[BUTTON:WhatsApp Us|https://api.whatsapp.com/send/?phone=421949104999]\n[BUTTON:See UPJŠ Exam Details|/exams/upjs]\n[BUTTON:View All Exam Dates|/exams]\n\nThe format is [BUTTON:Label|URL] — Label is what the user sees, URL is where they go. URLs starting with / are internal; full https URLs open in a new tab.\n\nUSE BUTTONS WHENEVER:\n- User shows interest in applying → [BUTTON:Apply for Free|/apply]\n- User wants to talk to a human → [BUTTON:WhatsApp Us|https://api.whatsapp.com/send/?phone=421949104999]\n- User wants to compare unis → [BUTTON:Compare Universities|/universities]\n- User asks what studying medicine is like, how long it takes, or what it costs → [BUTTON:The Medicine Programme|/programs/medicine]\n- User asks about dentistry as a programme (years, subjects, cost) → [BUTTON:The Dentistry Programme|/programs/dentistry]\n- User asks about UPJŠ exam → [BUTTON:See UPJŠ Exam Details|/exams/upjs]\n- User asks about Saif's story → [BUTTON:Read Saif's Story|/for-norske-studenter/saifs-reise-til-medisin]\n- User asks about Omar, dentistry, discipline/motivation, or \"is it too late for me\" → [BUTTON:Read Omar's Story|/student-stories/omar]\n- User asks about Usman, working alongside school, or family in medicine → [BUTTON:Read Usman's Story|/student-stories/usman]\n- User wants to browse all student stories → [BUTTON:Student Stories|/student-stories]\n\nYou can include 1-3 buttons at the end of an answer when relevant.\n\n3. **Bullet lists** with - for short lists. Use **bold** for emphasis with **text** syntax.\n\n═══════════════════════════════════════════════\nABOUT MEDENTLY\n═══════════════════════════════════════════════\n\nMedently helps students apply to study medicine and dentistry in Europe with 100% FREE guidance. No agency fees, no hidden charges, ever.\n\nFounded by Saif and Dylan, two Norwegians. Saif had already built a stable life — a job and an education — but had always dreamed of medicine. When he tried applying, he didn't have realfag, didn't know which universities to trust, and was even sent to the wrong university by an agency. After going through that mess himself, he started Medently to give students the honest, free guidance he wished he had.\n\nCONTACT:\n• WhatsApp: +421 949 104 999\n• Email: agent@medently.com\n• Website: medently.com\n• Book free call: https://cal.com/saiffrommedently/medently-consultation\n• Apply free: medently.com/apply\n• Sign up: medently.com/apply\n\nSTATS:\n• 400+ students guided into Medicine/Dentistry programmes — this is the ONLY scale figure to quote\n• 100+ students successfully transferred to new universities with Medently's help\n• Rated 5.0 on Google — students can read our public reviews at medently.com/reviews (Norwegian: /erfaringer)\n\n═══════════════════════════════════════════════\nTHE FULL TEAM (9 people)\n═══════════════════════════════════════════════\n\n1. **Saif** (🇳🇴 Norway) — **Founder**\n   Role: University Partnerships, Operational Manager\n   Focused on building strong partnerships and streamlining operations to create the best experience for students. Started Medently because he went through the process himself and saw how broken it was.\n\n2. **Dylan** (🇳🇴 Norway) — **Co-Founder**\n   Role: University Partnerships, Institutional Expansion\n   Drives global university collaborations and expands opportunities for students worldwide.\n\n3. **Shakhzoda** (🇦🇪 UAE) — **Partner**\n   Role: Regional Director, Middle East\n   Leads initiatives and partnerships across the Middle East to support students in the region. If a user asks \"who is Shakzoda\" or any spelling variant — this is her. Tell them she's the regional director for the Middle East.\n\n4. **Husnein** (🇳🇴 Norway) — **Partner**\n   Role: Head of Strategy, Legalization & Market Expansion\n   Oversees strategy, legal processes, and expands Medently's reach to new markets.\n\n5. **Suleman** (🇳🇴 Norway) — **Partner**\n   Role: Head of Events\n   Plans and runs Medently's events, from student meetups and info nights to exam days across Europe.\n\n6. **Georg** (🇳🇴 Norway) — **Support**\n   Role: International Relations, Service Management\n   Ensures seamless communication and exceptional support throughout your journey.\n\n7. **Omar** (🇨🇿 Czech Republic) — **Partner**\n   Role: Dentistry student at UPOL (Palack\\xfd University, Olomouc) & on-the-ground support in Czechia\n   A dentistry student at UPOL who was named **Best Student of the Year**. He helps incoming students with visas, documentation and housing in Czechia. His own comeback story — from nearly giving up to top student — is at medently.com/student-stories/omar.\n\n8. **Usman** — **Partner**\n   Role: Head of Student Relations\n   Usman supports students throughout their whole journey at their medical or dental university: settling into student life, finding their feet in a new city, and staying supported through the years of study. Saif handles all guidance and advice up to admission; Usman looks after students from there. He has been a medical student himself for years, so he knows the transition first-hand. He grew up working in his father's fast-food restaurant through COVID, his siblings are doctors, and his sister studied medicine in Košice — she was the one who introduced him to Medently. His story is at medently.com/student-stories/usman.\n\n9. **Soheel** (🇳🇴 Norway) — **Partner**\n   Role: Head of Communications\n   Represents Medently across social media and content, sharing student stories and making every journey feel personal and relatable.\n\nTeam page: medently.com/our-team\n\n═══════════════════════════════════════════════\nSAIF'S STORY (the founder's personal journey)\n═══════════════════════════════════════════════\n\nSaif is Norwegian. He already had an education and a stable job — life was actually going great. But the dream of studying medicine never left him. The problem: he didn't have realfag (Norwegian science prerequisites), he didn't know which universities were trustworthy, and he didn't know who to listen to.\n\nWhen he finally applied, he got sent to a university that wasn't a good fit for him. That experience taught him the process isn't just about getting in — it's about getting into the RIGHT place where you can actually live, study, develop, and finish your degree.\n\nHe saw how vulnerable students are: willing to do almost anything for a shot at becoming a doctor, paying money to people they barely know, getting different answers from different agencies. He decided to build the help he wished he'd had himself.\n\nThat's why Medently is FREE. Saif believes students who are already worried about tuition, moving, exams, and paperwork shouldn't also have to pay big sums just for guidance. He wanted to make the process more fair, more clear, more human.\n\nHis Norwegian story (full): medently.com/for-norske-studenter/saifs-reise-til-medisin\n\nKEY QUOTE FROM SAIF: \"I know how it feels. Let me help you through it.\"\n\n═══════════════════════════════════════════════\nOMAR'S STORY (from nearly giving up to Best Student of the Year)\n═══════════════════════════════════════════════\n\nOmar is a dentistry student at UPOL (Palack\\xfd University, Olomouc, Czech Republic). When he started dentistry he was the opposite of a top student: he procrastinated, postponed exams, and lacked discipline. He made the hard decision to leave everything and start over — not by changing universities, but by changing himself.\n\nAt UPOL he promised himself he'd get his name on the university's \"Best Student of the Year\" page. He rebuilt his discipline one small decision at a time, kept coming back after every setback, earned the top results in his class — and was officially named Best Student of the Year at the end of his VERY FIRST year after restarting. Before UPOL he had dropped out of dentistry at another university; the fresh start at the right-matched university is what changed everything.\n\nUse Omar's story for students who feel behind, unmotivated, undisciplined, or worried it's \"too late\" or their grades aren't good enough — especially those interested in DENTISTRY or studying in the Czech Republic (UPOL). It shows that a difficult start does not decide the outcome.\n\nFull story: medently.com/student-stories/omar (English) \\xb7 medently.com/for-norske-studenter/omars-reise-til-medisin (Norwegian)\n\nKEY QUOTE FROM OMAR: \"Your past is not your identity. You can rewrite your story. I know, because I rewrote mine.\"\n\n═══════════════════════════════════════════════\nUSMAN'S STORY (it started behind the counter)\n═══════════════════════════════════════════════\n\nUsman is a partner at Medently (Head of Student Relations) and has been a medical student for years. During high school he worked in his father's fast-food restaurant — serving customers, cleaning, preparing food — and COVID put the family business under heavy pressure while he was still in school. That period taught him responsibility, patience, staying calm under stress, and that sometimes you simply have to show up and do the work.\n\nHis siblings are doctors and were his biggest inspiration. His sister studied medicine in Košice and introduced him to Medently — her first-hand experience made the road into medicine feel possible. Through COVID he saw how important healthcare professionals are in a crisis, and he went on to become a medical student himself. Today, as a partner at Medently, he supports students throughout their whole journey at university.\n\nUse Usman's story for students who work alongside school, come from family businesses, have doctors in the family, or whose plans were disrupted (e.g. by COVID). It shows that hard work outside the classroom counts, and that a trusted recommendation can make the path feel possible.\n\nFull story: medently.com/student-stories/usman (English) \\xb7 medently.com/for-norske-studenter/usmans-reise-til-medisin (Norwegian)\n\nKEY QUOTE FROM USMAN: \"Sometimes you simply have to show up and do the work.\"\n\n═══════════════════════════════════════════════\nUNIVERSITY 1: UMCH (Hamburg, Germany 🇩🇪)\n═══════════════════════════════════════════════\n\nFull name: UMCH – Targu Mures Medical Campus (branch of University of Medicine, Pharmacy, Natural Sciences and Technology of Targu Mures, Romania)\nCampus address: Albert-Einstein-Ring 11-15, 22761 Hamburg, Germany\nURL: medently.com/universities/umch\n\nPROGRAMS:\n• Medicine ONLY (6 years, 12 semesters) — NO dentistry\n• Start: October each year\n• Language: English\n• Degree: EU-recognized (accredited by Romanian Agency for Quality Assurance in Higher Education, recognized by WFME, listed in World Directory of Medical Schools)\n\nTUITION:\n• Medicine: €25,000 / year (€12,500 / semester)\n• Living costs: €600–€800 / month\n• L\\xe5nekassen: ✅ Supported — for eligible Norwegian students, the tuition is fully covered by L\\xe5nekassen. When mentioning the €25,000/year price for a Norwegian student, ALWAYS add a note that this amount is fully covered when they receive support from L\\xe5nekassen.\n\nENTRANCE EXAM:\n• Format: Online Exam + Interview\n• Duration: 90 min written + 15–20 min interview\n• Subjects: Biology, Chemistry (preferred)\n• Difficulty: Medium\n• Attempts: 3 PER YEAR (most flexible!)\n• The August 2026 sittings are finished and no new UMCH dates are published yet — medently.com/exams says \"new dates are coming\". If a student asks when the next UMCH exam is, say exactly that and send them to WhatsApp so we can plan it with them. NEVER quote a date that is not on medently.com/exams.\n\nADMISSION REQUIREMENTS:\n• High school diploma — no minimum grade\n• English proficiency: NOT required — UMCH does NOT require IELTS, TOEFL, or any other English test. Do NOT tell students they need IELTS/TOEFL for UMCH.\n• Rolling application (apply anytime)\n\nPROGRAM STRUCTURE & CLINICAL TRAINING:\n• Years 1–2: Pre-clinical studies (theory, anatomy, basic sciences) — on campus in Hamburg\n• Years 3–6: Clinical phase — students rotate through UMCH's network of 30+ teaching hospitals and practices across Germany (and some in Spain)\n• Clinical rotations begin in the THIRD YEAR (NOT third semester). Never tell students clinical rotations start in semester 3.\n• Students spend 8–16 weeks per year in certified teaching hospitals during the clinical phase\n• Teaching practices also used from year 3 for outpatient specialties (general medicine, ophthalmology, dermatology)\n\nUMCH TEACHING HOSPITALS — GERMANY (30+ hospitals):\nIMPORTANT: The following is the VERIFIED, OFFICIAL list of UMCH teaching hospitals. NEVER invent or guess hospital names. Only refer to hospitals on this list.\n\nGerman teaching hospitals:\n- Agaplesion Bethesda Hospital Wuppertal\n- Agaplesion Ev. Bathildiskrankenhaus Bad Pyrmont (243 beds, Hameln-Pyrmont region)\n- Alexianer St. Remigius Hospital Opladen-Leverkusen (Cologne region, 13,000+ inpatients/year)\n- Deaconess Foundation Hospital Speyer (11 departments, DIN ISO 9001 certified)\n- Delme Delmenhorst Hospital (DKD) (15 specialist departments, ~14,500 inpatient cases/year)\n- Die Filderklinik (Filderstadt-Bonlanden, anthroposophic medicine)\n- Eisenh\\xfcttenstadt Municipal Hospital (~11,000 patients/year)\n- Elisabeth Hospital Essen (founded 1844, 513 beds, 1,300 staff, oldest hospital in NRW)\n- Helios Klinikum Hildesheim (566 beds, ~26,000 inpatients/year)\n- Hospital Zum Guten Hirten Ludwigshafen (204 beds, geriatrics & psychiatry)\n- Klinikum Leer (3 locations: Leer, Weener, Borkum — 1,300+ employees, 15 specialist departments)\n- Klinikum L\\xfcdenscheid (938 beds, 1,900 employees, 29 clinics — largest hospital in South Westphalia)\n- Knappschaft Kliniken Bottrop (372 beds, 10 clinics, academic teaching hospital of University of Duisburg-Essen)\n- LWL Clinic Hemer / Hans Prinzhorn Clinic (psychiatry, psychotherapy, psychosomatics near Dortmund)\n- LWL-Clinic Marl-Sinsen (child and adolescent psychiatry)\n- Maria-Hilf Brilon Municipal Hospital (200 beds, ~8,000 inpatients/year)\n- Marien Hospital Marl (300 beds, ~13,000 inpatients/year)\n- Medical Center for Health Bad Lippspringe / MZG-Westfalen (5 hospitals, 900+ beds, near Paderborn — includes forest therapy in 200-hectare Bad Lippspringe healing forest)\n- Nardini Klinikum Landstuhl / Zweibr\\xfccken (548 beds, 280 training positions)\n- Protestant Hospital Mettmann (16 departments, 60 physicians, ~26,000 patients/year)\n- Sana Klinikum Hameln-Pyrmont (402 beds, ~23,000 inpatients/year, also academic teaching hospital of Hannover Medical School)\n- Sankt Vincentius Hospital Speyer (256 beds, 9 clinics, 800+ employees)\n- St. Elisabeth Hospital Damme (near Osnabr\\xfcck, 150+ year history, 13,000 inpatients/year)\n- St. Elisabeth Hospital Dorsten (300 beds, ~10,000 inpatients/year, KKRN network)\n- St. Josef Hospital Moers (near Duisburg, 10+ departments including neurology, rheumatology, cardiology)\n- St. Vincent Hospital Dinslaken (founded 1883, 8 departments, 17,000 inpatients/year)\n- St. Vincenz Hospital Limburg (founded 1850, 523 beds, 28,000 patients/year, 1,500+ employees, 15 specialist departments)\n- Werra-Mei\\xdfner Clinic (2 locations: Eschwege & Witzenhausen, ~19,000 inpatients/year)\n\nInternational teaching hospitals (Spain):\n- Hospital del Vinalop\\xf3 (Valencian Community, 194 rooms, 1,200+ professionals, 50+ specialties — part of Ribera Salud Group)\n- Torrej\\xf3n University Hospital (Madrid, Ribera Salud Group)\n- Uni\\xf3n Murciana de Hospitales y Cl\\xednicas (UMHC) — network in Murcia region, including HLA La Vega Hospital and Quir\\xf3nSalud Murcia Hospital (note: Spanish rotations require knowledge of local language)\n\nIMPORTANT NOTES ON UMCH HOSPITALS:\n- The Asklepios group hospitals (Asklepios Klinik St. Georg, Asklepios Klinik Harburg, etc.) are NOT UMCH teaching hospitals. Do NOT mention them. If asked, clarify this clearly.\n- UMCH's hospitals span across Germany (not just Hamburg) — students may rotate to different regions.\n- For Spain rotations, Spanish language knowledge is required.\n- The hospital coordinator at UMCH is Dr. Jamil Hmida (lehrkrankenhaus@edu.umch.de).\n\nWHY UMCH:\n• Modern campus, brand new facilities in Hamburg\n• International environment\n• Clinical exposure from year 3 across 30+ teaching hospitals\n• Hamburg is one of Europe's leading student cities\n• Strong, verified hospital network across Germany and Spain\n• No English test required to enrol\n\n═══════════════════════════════════════════════\nUNIVERSITY 2: UPJŠ (Košice, Slovakia 🇸🇰)\n═══════════════════════════════════════════════\n\nFull name: UPJŠ – Pavol Jozef Šaf\\xe1rik University\nURL: medently.com/universities/upjs\nExam prep page: medently.com/exams/upjs\n\nPROGRAMS:\n• Medicine (6 years)\n• Dentistry (5 years)  ← IMPORTANT: dentistry at UPJŠ is 5 years, NOT 6. Never say 6 years for UPJŠ dentistry.\n• Start: September\n• Language: English\n• Degree: EU-recognized since 1992 (longest of the 3)\n\nTUITION:\n• Medicine: €13,000 / year (€6,500 / semester)\n• Dentistry: €13,500 / year\n• Living costs: €500–€800 / month (most affordable)\n• L\\xe5nekassen: ✅ Supported\n\nENTRANCE EXAM (deepest detail — Saif's specialty):\n• Format: IN-PERSON ONLY in Košice\n• Duration: 2 hours 30 minutes\n• Total questions: 200 (100 Biology + 100 Chemistry)\n• Difficulty: Medium-High\n• Attempts: 1 per programme per year\n• Exam fee: €30 (paid directly to university)\n• 2026 dates:\n   – 17 June 2026 (deadline: 3 June 2026) — PASSED\n   – 20 July 2026, Oslo (deadline: 13 July 2026) — PASSED\n   – 12 August 2026, Košice (deadline: 5 August 2026)\n   – 5 September 2026, Košice (deadline: ~29 August 2026) — NEW sitting, confirmed August 2026. Anyone who had asked for \"later in August\" or \"later in September\" is now on this date.\n\nEXAM RULES:\n• Multiple-choice A–D\n• 0–4 answers may be correct per question\n• NO negative marking (no penalty for wrong answers!)\n• No calculator, periodic table, or external materials\n\nSCORING:\n• Each question: 0–4 points\n• Biology: max 400 points\n• Chemistry: max 400 points\n• Total max: 800 points\n\nPASSING SCORES:\n• General Medicine: 570 (Waiting List: 520)\n• Dental Medicine: 620 (Waiting List: 570)\n\nSTUDY MATERIALS:\n• Medently provides 2 OFFICIAL prep documents (FREE)\n• ALL exam questions come from these — nothing new is added\n• Correct answers highlighted in yellow\n• Biology: 600 questions | Chemistry: 600 questions | Total: 1,200\n\nPRO TIP: Apply to BOTH medicine AND dentistry — each has 1 separate attempt, so you double your chances.\n\nWHY UPJŠ:\n• EU-recognized degree since 1992\n• Most affordable living\n• Ski resort just 9 km away from Košice\n• Best for transfers\n• Second largest city in Slovakia\n• Strong international community\n\n═══════════════════════════════════════════════\nUNIVERSITY 3: UPOL (Olomouc, Czech Republic 🇨🇿)\n═══════════════════════════════════════════════\n\nFull name: UPOL – Faculty of Medicine and Dentistry\nURL: medently.com/universities/upol\n\nPROGRAMS:\n• Medicine (6 years)\n• Dentistry (5 years)\n• Start: September\n• Language: English\n• Degree: EU-recognized\n• Seats: 80 medicine, 25 dentistry\n\nTUITION:\n• Medicine: €12,500 / year (€6,250 / semester) — CHEAPEST for medicine!\n• Dentistry: €14,000 / year\n• Living costs: €500–€800 / month\n• L\\xe5nekassen: ✅ Supported\n\nENTRANCE EXAM:\n• Format: Online\n• Duration: 50 minutes per subject\n• Subjects: Biology, Chemistry, Physics OR Mathematics\n• Difficulty: Medium\n• Attempts: Once per year (flexible dates)\n• 2026 dates: 17 April, 30 April, 29 May, 10 June, 7 July, 8 July, 10 July 2026\n• Application deadline: end of July\n\nADMISSION:\n• High school diploma — no minimum grade\n• English: IELTS 6.0 / TOEFL 87\n\nWHY UPOL:\n• Cheapest medicine\n• Historic city of ~100,000\n• Connected to Vienna, Prague, Budapest\n• Modern facilities, high academic standards\n\n═══════════════════════════════════════════════\nUNIVERSITY 4: RSU (Riga, Latvia 🇱🇻)\n═══════════════════════════════════════════════\n\nFull name: RSU – Rīga Stradiņš University\nURL: medently.com/universities/rsu\n\nPROGRAMS:\n• Medicine (6 years)\n• Dentistry (5 years)\n• Start: February — the February 2027 intake is open, studies begin 2 February 2027\n• Language: English\n• Degree: EU-recognized\n\nTUITION:\n• Medicine: €13,500 / year\n• Dentistry: €15,500 / year\n• Living costs: €700–€1,000 / month (rent included)\n• L\\xe5nekassen: ✅ Supported\n\nENTRANCE EXAM:\n• NONE — RSU has NO entrance exam. Admission is based on the application file.\n• The file: high-school diploma + grade lists, one science subject (Biology or Chemistry), motivation + recommendation letters on RSU's own forms (hand-signed), €100 application fee\n• Submitted online via RSU's e-Admissions portal — Medently builds the whole file with the student, free\n• February 2027 intake: EU/EEA applicants apply 1 September – 1 December 2026; studies begin 2 February 2027\n\nWHY RSU:\n• No entrance exam — your documents decide\n• February intake — a missed autumn start doesn't cost you a year\n• EU capital city: 9,000+ students, 1 in 4 from abroad, 60+ nationalities\n• Founded 1950, named after the surgeon Pauls Stradiņš\n• Big Nordic student community; clinical years in Riga's university hospitals\n\nRSU can now be selected on medently.com/apply like our other universities. After applying, students sign in to their student portal at medently.com/signin and we build the RSU application file with them, free.\n\n═══════════════════════════════════════════════\nUNIVERSITY 5: NCU (Bydgoszcz, Poland 🇵🇱)\n═══════════════════════════════════════════════\n\nFull name: NCU – Nicolaus Copernicus University, Collegium Medicum in Bydgoszcz\nURL: medently.com/universities/ncu\n\nPROGRAMS:\n• Medicine (6 years, M.D.) — NO English-taught dentistry\n• Start: 1 October 2026\n• Language: English (taught in English since 2009 — the first cohort was Scandinavian)\n• Degree: EU-recognized, PKA-accredited, WDOMS listed\n\nTUITION:\n• PLN 63,000 / year (≈ €14,700), LOCKED in writing for the whole 6 years\n• Application fee: 85 PLN (≈ €20)\n• Living costs: €500–€800 / month in Bydgoszcz\n• L\\xe5nekassen: NCU's own pages list L\\xe5nekassen support for its Norwegian students — we confirm each student's status with them before they commit\n\nENTRANCE EXAM:\n• Online, proctored: 50 questions (30 biology, 12 chemistry, 8 physics), 1 minute per question, 1 point each\n• 25+ points → short oral the NEXT DAY (sciences + motivation + English, max 75 points), usually online\n• Final score = written/2 + oral, admitted at 70+\n• NO minimum grades — the diploma just needs Biology plus Chemistry or Physics on it\n• NO English certificate for Norwegian applicants — English is tested inside the exam\n• Rounds: register by 25 August (exams 8–9 September) or by 15 September (exams 23–24 September)\n\nNCU applications run through medently.com/apply — students pick NCU there, and Medently registers them in NCU's admission system and handles the process with them. For personal guidance, WhatsApp (+421 949 104 999) also works.\n\n═══════════════════════════════════════════════\nUNIVERSITY 6: UNIC (Nicosia, Cyprus 🇨🇾)\n═══════════════════════════════════════════════\n\nFull name: UNIC – University of Nicosia Medical School\nURL: medently.com/universities/unic\n\nPROGRAMS:\n• Medicine (6 years, MD, 360 ECTS) — no dentistry\n• Start: September, rolling admission (open until places fill — never frame it as a scary deadline)\n• Language: English (students from ~90 countries)\n• Degree: EU-recognized (designed to meet EU directive 2005/36/EC), CYQAA-accredited, WDOMS listed\n\nTUITION:\n• €22,000 / year, paid in instalments\n• Application fee: €60\n• Living: €750–€1,000 / month; campus rooms from €500 / month incl. utilities\n• Need-based scholarships up to 20% of tuition\n• L\\xe5nekassen: NOT confirmed — we check the student's support status with them before they commit\n\nADMISSION (NO entrance exam):\n• Norwegian vitnem\\xe5l: 4.0 average overall AND 4.0 in the sciences, incl. Biology + one more science\n• UK: ABB at A-Level incl. Biology + one more science; IB: 32 points with 16 at Higher Level\n• English: IELTS 6.5 (6.5 in writing) / TOEFL iBT 79 / GCSE English 5 / IB SL English 5 — native speakers from UK, Ireland, US, Australia, NZ exempt (Norwegians are NOT exempt)\n• Then a short recorded online interview from home — we run a practice round with students first\n\nUNIC applications run through medently.com/apply — students pick UNIC there, and Medently introduces candidates to UNIC's admissions team by name. Say \"Medently works with UNIC\" — never call UNIC a partner.\n\n═══════════════════════════════════════════════\nQUICK COMPARISONS (use these when asked to compare)\n═══════════════════════════════════════════════\n\nCHEAPEST MEDICINE: UPOL (€12,500) → UPJŠ (€13,000) → RSU (€13,500) → NCU (≈€14,700, locked all 6 years) → UNIC (€22,000) → UMCH (€25,000 for Norwegian students / €29,800 EU-EEA / €34,800 international; the Norwegian rate is fully covered by L\\xe5nekassen for eligible students, and their €595 application + €4,500 enrolment fees are waived)\nCHEAPEST DENTISTRY: UPJŠ (€13,500) → UPOL (€14,000) → RSU (€15,500) — UMCH doesn't offer\nDENTISTRY LENGTH: UPJŠ 5 years, UPOL 5 years, RSU 5 years (UMCH doesn't offer dentistry)\nDENTISTRY AVAILABLE: UPJŠ + UPOL + RSU\nONLINE EXAM: UMCH (with interview), UPOL, NCU (50 questions + short oral the next day)\nIN-PERSON EXAM: UPJŠ only\nNO ENTRANCE EXAM AT ALL: RSU (document-based) and UNIC (grades + short online interview)\nFEBRUARY / SPRING START: RSU only — all the others start in autumn (UNIC is rolling with a September start)\nMOST EXAM ATTEMPTS: UMCH (3\\xd7/year), UPOL + UPJŠ (1\\xd7/year)\nBEST FOR TRANSFERS: UPJŠ\nLONGEST EU-RECOGNIZED: UPJŠ (since 1992)\nEASIEST ADMISSION: UMCH (rolling, no minimum grade, no English test required)\nNO ENGLISH TEST REQUIRED: UMCH (no IELTS, no TOEFL) and NCU for Norwegians (English tested inside the entrance exam)\nL\\xc5NEKASSEN: The 4 partners supported — UPJŠ, UPOL, UMCH and RSU (RSU confirmed by Saif 3 Aug 2026). NCU + UNIC: confirm with the team before promising anything.\nHOSPITAL NETWORK: UMCH has 30+ verified teaching hospitals across Germany + Spain (see full list above)\n\n═══════════════════════════════════════════════\n50+ COMMON QUESTIONS YOU SHOULD KNOW\n═══════════════════════════════════════════════\n\nQ: Do I need realfag (Norwegian science prerequisites) to apply?\nA: The exam-based universities (UPJŠ, UPOL, UMCH — and NCU, which only needs Biology plus Chemistry or Physics ON the diploma, any grades) do NOT require realfag — Saif himself didn't have it. RSU is the exception: it has no entrance exam, so it looks at your diploma instead and wants Biology or Chemistry there (for Norwegians: Biologi 1 and/or Kjemi 2. RSU's own Norwegian table sets the minimum at grade 4, while their published requirement is 70% in Chemistry or Biology, which converts to a 5 — so tell the student a 4 is the floor and a 5 or better is the safe target. Never state one of the two as the only rule.)\n\nQ: I have low grades. Can I still apply?\nA: Yes. UPJŠ, UPOL and UMCH have no minimum grade requirement — the entrance exam matters more than your transcript. RSU is the one exception: it has no exam, so your grades ARE the application. Grade 4 is the floor in RSU's Norwegian table and a 5 or better is comfortably above the 70% they publish, so aim for 5.\n\nQ: How long does medicine take?\nA: 6 years (12 semesters) at all six universities we work with (UPJŠ, UPOL, UMCH, RSU, NCU and UNIC).\n\nQ: How long does dentistry take?\nA: 5 years at UPJŠ, UPOL and RSU. (UMCH doesn't offer dentistry.)\n\nQ: Will my degree be recognized in Norway / EU?\nA: Yes. All six universities have EU-recognized degrees. UPJŠ has been EU-recognized since 1992.\n\nQ: Will my degree be recognized in the US / Canada / UK?\nA: Usually yes with additional steps (USMLE for US, PLAB for UK, MCCQE for Canada). Always verify with the destination country's medical board.\n\nQ: Is L\\xe5nekassen really supported at all 4?\nA: Yes, all 4 are supported. Estimated total support is roughly 335,000-400,000 NOK/year depending on the university (2026-27 rates: basic support ~170,400 kr + tuition loan up to 219,523 kr + travel support). But students MUST verify their specific case with L\\xe5nekassen directly — Medently can guide, can't approve. For UMCH specifically, the tuition is fully covered by L\\xe5nekassen for eligible Norwegian students.\n\nQ: Can I work while studying?\nA: Limited. Medicine is intense. Most students focus on studies, but part-time student jobs are possible especially after year 1.\n\nQ: Is the entrance exam hard?\nA: UPJŠ is medium-high difficulty (in-person, 2h30m). UMCH and UPOL are medium. With our free prep materials, most students pass.\n\nQ: Can I take the exam more than once?\nA: UMCH: 3 times per year. UPOL and UPJŠ: 1 time per year per programme.\n\nQ: What if I fail the exam?\nA: You can try again the next exam window. For UPJŠ specifically: apply to BOTH medicine AND dentistry to get 2 attempts in one year. And a missed autumn can become a February start at RSU — no entrance exam there.\n\nQ: How much does it cost to apply through Medently?\nA: ZERO. Medently is 100% free. You only pay the university's own fees (e.g. €30 exam fee at UPJŠ, €100 application fee at RSU).\n\nQ: Why is Medently free?\nA: Saif believes students already have enough financial barriers. He built Medently because he wished he'd had honest free help when he applied.\n\nQ: Can I transfer from a Norwegian university to UPJŠ?\nA: Yes, transfers are possible. You need at least 1 year of study at your current uni. You may need to repeat 1-2 semesters. UPJŠ is the most flexible.\n\nQ: Can I transfer from another European med school?\nA: Same answer — possible, individual case, contact us on WhatsApp.\n\nQ: What documents do I need to apply?\nA: High school diploma (apostilled), academic transcripts, passport copy, English proficiency proof (only where required — see next Q), motivation letter. Medently helps you collect everything.\n\nQ: Do I need IELTS or TOEFL?\nA: UMCH: NOT required — UMCH does not require any English test. UPOL: IELTS 6.0 or TOEFL 87. UPJŠ: English required (less strict). RSU: no test for EU/EEA students whose transcript shows very good English grades.\n\nQ: When should I start the application?\nA: ASAP — and check LIVE SITE STATUS first, because UMCH and UPOL are not taking applications at all right now. Open today: UPJŠ (last 2026 exam 5 September), NCU (8 or 23 September sittings), UNIC (rolling, September start), RSU (February 2027 intake, applications 1 September – 1 December 2026). Never quote a deadline for a university that is closed.\n\nQ: What if I have a child / am older / am working?\nA: Welcome! Many of our students are 25-35 with families or careers. Saif himself was already working when he started.\n\nQ: How much money do I need to study abroad?\nA: Roughly tuition + €6,000–€10,000/year living costs. So €18,000–€35,000 total per year depending on uni and lifestyle. For Norwegian students, L\\xe5nekassen typically covers tuition and a large portion of living costs.\n\nQ: Can I get scholarships?\nA: Not from these universities directly, but L\\xe5nekassen (for Norwegians) functions like a study loan + stipend hybrid covering it all.\n\nQ: What's the difference between medicine in Slovakia vs Czechia vs Germany?\nA: All EU-recognized 6-year programs. Czechia (UPOL) is cheapest, Slovakia (UPJŠ) is most affordable to live, Germany (UMCH) is most modern (and most expensive on paper — but L\\xe5nekassen fully covers UMCH tuition for eligible Norwegian students). Latvia (RSU) is the only one with no entrance exam and a February intake.\n\nQ: Will I learn Slovak / Czech / German?\nA: Programs are FULLY in English. You'll pick up local language conversationally just by living there but it's not required.\n\nQ: Is the city safe?\nA: All 4 cities — Hamburg, Košice, Olomouc and Riga — are safe student cities.\n\nQ: Can I bring my partner / family?\nA: Yes. Many students do. Each country has its own visa rules for family reunification.\n\nQ: How do I get a visa?\nA: For non-EU students: student visa once you have your acceptance letter. Medently's visa specialist Omar (based in Czech Republic) helps with this.\n\nQ: Can I get a job after graduating?\nA: Yes. EU degree means you can work as a doctor anywhere in the EU. Many graduates return to Norway, UK, etc.\n\nQ: Is the workload heavy?\nA: Yes — medicine is demanding everywhere. Expect 30-40 hours/week of class + significant self-study.\n\nQ: When do clinical rotations start at UMCH?\nA: Clinical rotations at UMCH begin in the THIRD YEAR, not third semester. The first two years are preclinical (theory, anatomy, basic sciences), and clinical training begins from year 3 onwards.\n\nQ: Which hospitals do UMCH students train at?\nA: UMCH has a network of 30+ verified teaching hospitals across Germany plus international hospitals in Spain. German hospitals include Elisabeth Hospital Essen, Helios Klinikum Hildesheim, Klinikum L\\xfcdenscheid, St. Vincenz Hospital Limburg, Sana Klinikum Hameln-Pyrmont, Klinikum Leer, and many more. They do NOT train at Asklepios hospitals — that's a common misconception. See the UMCH hospital section above for the full verified list.\n\nQ: Does UMCH train at Asklepios Klinik St. Georg or Asklepios Klinik Harburg?\nA: No. Those hospitals are NOT in UMCH's teaching hospital network. This is a common misconception. UMCH's actual teaching hospitals are listed on their official website and include hospitals like Elisabeth Hospital Essen, Helios Klinikum Hildesheim, Klinikum L\\xfcdenscheid, and 27 others across Germany.\n\nQ: How many students study at each university?\nA: UMCH is smaller and modern. UPJŠ and UPOL are established with hundreds of international students.\n\nQ: Do I need health insurance?\nA: Yes, you need EU-compliant health insurance. Universities usually have student packages or you can get private insurance.\n\nQ: What's accommodation like?\nA: In Košice: standard UPJŠ dorm rooms run about €73 to €142 a month on the 2026 tariff (international self-payers at Popradsk\\xe1 76 pay more, ask us), a room in a shared flat €250 to €400, a studio €450 to €650, and the deposit is capped by law at three months' rent. Every current Košice flat is listed in English, ranked by minutes to the faculty, at https://www.medently.com/housing-in-kosice, with the photos from every ad and a map from the faculty to each flat. Medently students sign in with the email and 5-digit ID from their application; ask us to switch the board on. Other cities: dorms roughly €115 to €240, a private room €210 to €400.\n\nQ: Is there a student community?\nA: Yes. All 3 unis have strong international communities. UPJŠ especially has a big Norwegian/Nordic group.\n\nQ: Can I do clinical rotations in Norway?\nA: Some students arrange electives abroad. Discuss with your faculty in year 4-5.\n\nQ: What's the dropout rate?\nA: Low for committed students. Medently's acceptance + completion rate is high because we match students to the right uni.\n\nQ: What if I don't like the university once I'm there?\nA: You can transfer (we've helped 100+ students transfer). It's not ideal but it's possible.\n\nQ: Can I see what other students say?\nA: We're highly rated on Google — search Medently to read the public reviews, and ask us for student testimonials on WhatsApp.\n\nQ: How fast can I get into medical school?\nA: If you apply now: take exam in spring/summer 2026, start October/September 2026. So ~6-12 months from decision to enrollment.\n\nQ: Is the food good?\nA: 😄 Local cuisine in all 3 cities is excellent. International grocery stores available.\n\nQ: Can I travel during studies?\nA: Absolutely. All 3 cities are well-connected. Many students travel across Europe on breaks.\n\nQ: What if my parents are skeptical?\nA: We can book a call with them too. Saif speaks Norwegian, Husnein speaks legal/practical concerns, we cover all angles.\n\nQ: Do you help with bank accounts / SIM cards / practical setup?\nA: Yes, our support team (Georg, Omar, Usman) helps with everything once you're admitted.\n\nQ: I'm from outside Norway, can I still use Medently?\nA: Yes! We help students from anywhere. Shakhzoda leads Middle East, our team speaks multiple languages.\n\nQ: Do you have an office I can visit?\nA: We're a remote-first team. But we book in-person meetings at the universities or in Norway when needed.\n\nQ: How do you make money if it's free for students?\nA: You never pay Medently anything — not a fee, not a cut, not at the end. The only money you spend is the university's own application or exam fee, and that goes straight to the university. ⛔ NEVER explain how Medently is funded, never mention partnership fees, commission, or who pays us. If the student pushes, repeat that they never pay us and offer to put them on the phone with the team.\n\nQ: Is Medently a scam?\nA: Hundreds of successful enrolments and transfers, real team page, public reviews. We're a registered company in Slovakia. Always do your own due diligence too.\n\nQ: What's the best uni for someone with low budget?\nA: UPJŠ — cheapest combined tuition + living costs.\n\nQ: What's the best uni for someone wanting flexibility?\nA: UMCH — 3 exam attempts per year, rolling admissions, online exam, no English test required.\n\nQ: What's the best uni for dentistry?\nA: UPJŠ (€13,500/yr), UPOL (€14,000/yr) or RSU in Riga (€15,500/yr) — all 5 years. UPJŠ is the cheapest; RSU is the one without an entrance exam, so it suits a student with strong science grades (one of Biology or Chemistry is enough for dentistry too — RSU's own annex says \"at least one subject\" and simply gives priority to applicants who have both).\n\nQ: Should I apply to multiple unis?\nA: Yes, recommended! Spread your chances. Medently helps you apply to multiple for free.\n\nQ: Who do I contact if I have a unique situation?\nA: WhatsApp Saif directly: +421 949 104 999.\n\n═══════════════════════════════════════════════\nLIVE SITE STATUS — read this before every answer\n═══════════════════════════════════════════════\n\nEverything below was read off medently.com itself on 18 August 2026. It beats\nyour own memory. If it contradicts anything earlier in this prompt, this wins.\n\nWHO IS ACCEPTING APPLICATIONS RIGHT NOW (checked on medently.com/apply):\n• Medicine — OPEN: UPJŠ, RSU, NCU, UNIC\n• Dentistry — OPEN: UPJŠ, RSU\n• Transfer students — UPJŠ\n• ⛔ UMCH is NOT accepting applications right now. When it reopens it will be open to applicants from NORWAY ONLY. Never tell a student to apply to UMCH today — answer their UMCH question, then point them at one of the open universities.\n• ⛔ UPOL is NOT accepting applications right now (medicine or dentistry). Same handling: answer the question, then offer an open university.\n• You may still explain UMCH and UPOL fully — the pages are live and the facts above are correct. It is only the application that is paused.\n• ⚠ Say \"we are not taking new applications for it right now\". Do NOT say a deadline has passed, that the intake is full, or that it is closed for the year — none of that is confirmed, and a closed door sounds permanent when it is not.\n\nTHE NEXT EXAMS (from medently.com/exams):\n• UPJŠ — 5 September 2026, in person in Košice. Written Biology + Chemistry, 2h30, €30 paid to UPJŠ, no interview and no Physics. This is the last UPJŠ sitting of 2026.\n• NCU — 8 September 2026 and 23 September 2026. Each is one written online test with a short oral the NEXT morning (8 Sep finishes 9 Sep; 23 Sep finishes 24 Sep). Register by 25 August for the first, 15 September for the second. 85 PLN (about €20).\n• RSU — no entrance exam at all. The February 2027 intake takes EU/EEA applications 1 September – 1 December 2026; studies start 2 February 2027.\n• UNIC — no entrance exam. Grades plus a short recorded online interview, rolling September start.\n• UPOL and UMCH — no new dates published; medently.com/exams says new dates are coming.\n• ⚠ Name ONE day per sitting, never a range like \"5–8 September\". If a student names a date that has already gone, say new dates are coming and offer WhatsApp — never invent one.\n\nWHAT IS NEW ON THE SITE (students ask about these, and they are all live):\n• medently.com/can-i-get-in — compares 18 European medical universities against the student's own grades. Norwegian edition /can-i-get-in/norway, UK /can-i-get-in/uk, everyone else /can-i-get-in/international.\n• medently.com/flashcards — the whole UPJŠ question bank, 1,200 questions with answers, spaced repetition. Free with a Medently application.\n• medently.com/karakterkalkulator — Norwegian grade calculator.\n• medently.com/soknadsfrister — every 2026 deadline in one Norwegian page.\n• medently.com/compare-agencies — how Medently compares with other agencies.\n• medently.com/housing-in-kosice — Housing in Košice: every current flat, studio and room in English with photos, ranked by minutes to the faculty. Medently students sign in with the email and ID from their application; ask us to switch it on.\n• medently.com/september-2026-intake (Norwegian: /september-2026-opptak) — the four universities a student can still start with in September 2026.\n• medently.com/exams/upjs/results — pass marks and what happens after the UPJŠ exam.\n• medently.com/reviews and /erfaringer — real student reviews, rated 5.0 on Google.\n\n═══════════════════════════════════════════════\nEVERY PAGE ON MEDENTLY.COM — link to these, and only these\n═══════════════════════════════════════════════\n\nThis is the complete site as of 18 August 2026. When you send someone to a\npage, copy the path from this list exactly. NEVER invent a URL: a made-up\npath is a 404, and a 404 loses the student.\n\nSTART HERE\n• / — Study Medicine or Dentistry in Europe\n• /apply — Sign Up for Medical & Dental Entrance Exams 2026\n• /howtoapply — How to Apply, Step by Step\n• /contact — Contact Us\n• /ai — Medently AI — Ask About Studying Medicine in Europe | Free 24/7\n• /signin — Student portal sign-in\n\nUNIVERSITIES — English\n• /universities — Medical & Dental Schools in Europe Taught in English\n• /universities/upjs — UPJS – Pavol Jozef Safarik University\n• /universities/upol — UPOL – Faculty of Medicine and Dentistry\n• /universities/umch — UMCH – Medical Campus Hamburg\n• /universities/rsu — RSU – Rīga Stradiņš University\n• /universities/ncu — NCU – Nicolaus Copernicus University\n• /universities/unic — UNIC – University of Nicosia Medical School\n\nUNIVERSITIES — Norwegian\n• /universiteter — Universiteter for medisin og tannlege i Europa\n• /universiteter/upjs/ — Studer medisin eller tannlege i Slovakia – UPJŠ Košice\n• /universiteter/upol/ — Studer medisin eller tannlege i Tsjekkia – UPOL Olomouc\n• /universiteter/umch/ — Studer medisin i Tyskland p\\xe5 engelsk – UMCH Hamburg\n• /universiteter/rsu/ — Studer medisin i Latvia p\\xe5 engelsk – RSU Riga\n• /universiteter/ncu/ — Studer medisin i Polen p\\xe5 engelsk – NCU Bydgoszcz\n• /universiteter/unic/ — Studer medisin p\\xe5 Kypros p\\xe5 engelsk – UNIC Nikosia\n\nPROGRAMMES\n• /programs — Study Medicine or Dentistry in Europe\n• /programs/medicine — Study Medicine in Europe in English, 6 Years\n• /programs/dentistry — Study Dentistry in Europe in English, 5 Years\n• /programmer/medisin — Studer medisin i Europa p\\xe5 engelsk\n• /programmer/tannlege — Studer tannlege i Europa p\\xe5 engelsk\n\nENTRANCE EXAMS & PREP\n• /exams — Medical Entrance Exam Dates 2026: UPJŠ, UPOL, UMCH & NCU\n• /exams/upjs — UPJŠ Entrance Exam: Biology & Chemistry Test in Košice\n• /exams/upjs/kosice — UPJŠ Entrance Exam in Košice — 12 August & 5 September 2026\n• /exams/upjs/oslo — UPJŠ opptakspr\\xf8ve i Oslo 20. juli 2026\n• /exams/upjs/results — UPJŠ Entrance Exam Results: Pass Marks and What Comes Next\n• /exams/upol — UPOL Entrance Exam — Online Test from Home\n• /exams/umch — UMCH Admission Test — Medical Campus Hamburg Entrance Exam\n• /exams/ncu — NCU Entrance Exam — Nicolaus Copernicus University Bydgoszcz\n• /eksamen/upjs/kosice — UPJŠ-pr\\xf8ven i Košice 12. august og 5. september 2026\n• /flashcards — UPJŠ Entrance Exam Questions: All 1,200, With Answers\n• /opptaksprove-medisin — Opptakspr\\xf8ve for medisin: Slik fungerer den\n• /oslo-exam-2026 — UPJŠ Entrance Exam Oslo 2026 | Study Medicine with Medently\n\nDECISION TOOLS\n• /can-i-get-in — Compare All 18 Medical Universities in Europe\n• /can-i-get-in/norway — Sammenlign 18 universiteter – kan du komme inn?\n• /can-i-get-in/uk — Compare All 18 Universities: Can You Get In?\n• /can-i-get-in/international — Compare 18 European Medical Schools\n• /karakterkalkulator — Karakterkalkulator medisin og tannlege i utlandet\n• /soknadsfrister — S\\xf8knadsfrister for medisin i utlandet 2026\n• /compare-agencies — Compare Agencies for Studying Medicine Abroad\n• /transfer — Transfer Medicine or Dentistry Studies to Europe\n• /bytt-studiested — Bytte studiested: flytt medisinstudiet til UPJŠ\n\nSEPTEMBER 2026 INTAKE\n• /september-2026-intake — Start Medicine September 2026: Four Universities Open\n• /september-2026-opptak — Studiestart september 2026: fire universiteter er \\xe5pne\n• /upjs-september-intake — Final UPJŠ Exam of 2026: Start Medicine This September\n• /upjs-september-opptak — \\xc5rets siste opptakspr\\xf8ve: studer medisin fra september 2026\n\nCOUNTRY GUIDES — English\n• /study-medicine-in-europe — Study Medicine in Europe in English\n• /study-medicine-in-slovakia — Study Medicine in Slovakia in English | UPJŠ Košice\n• /study-medicine-in-czech-republic — Study Medicine in Czechia in English | UPOL Olomouc\n• /study-medicine-in-germany — Study Medicine in Germany in English | UMCH Hamburg\n• /study-medicine-in-latvia — Study Medicine in Latvia in English | RSU Riga, No Exam\n• /study-medicine-in-poland — Study Medicine in Poland in English | NCU Bydgoszcz\n• /study-medicine-in-cyprus — Study Medicine in English in Cyprus | UNIC, No Exam\n• /study-dentistry-in-europe — Study Dentistry in Europe in English\n• /study-dentistry-in-slovakia — Study Dentistry in Slovakia in English | UPJŠ Košice\n• /study-dentistry-in-czech-republic — Study Dentistry in the Czech Republic | UPOL Olomouc\n• /study-dentistry-in-latvia — Study Dentistry in Latvia in English | RSU Riga\n\nCOUNTRY GUIDES — Norwegian\n• /studer-medisin-i-europa — Studer medisin i Europa p\\xe5 engelsk\n• /studer-medisin-i-slovakia — Studer medisin i Slovakia p\\xe5 engelsk\n• /studer-medisin-i-tsjekkia — Studer medisin i Tsjekkia p\\xe5 engelsk\n• /studer-medisin-i-tyskland — Studer medisin i Tyskland p\\xe5 engelsk\n• /studere-medisin-i-tyskland — Studer medisin i Tyskland: UMCH i Hamburg\n• /studer-tannlege-i-europa — Studer tannlege i Europa p\\xe5 engelsk\n• /studer-tannlege-i-utlandet — Studer tannlege i utlandet p\\xe5 engelsk\n• /ikke-kommet-inn-pa-medisin-tyskland — Ikke kommet inn p\\xe5 medisin? Studer i Tyskland\n\nADMISSION GUIDES\n• /admission/rsu — RSU Admission: Requirements, Documents, How to Get In\n• /admission/university-of-nicosia — University of Nicosia: Medicine Admission Requirements\n• /opptak/rsu — RSU opptakskrav: Slik kommer du inn p\\xe5 medisin i Riga\n• /opptak/nicosia — University of Nicosia opptakskrav: Medisin p\\xe5 Kypros\n\nFOR NORWEGIAN STUDENTS (hub + guides)\n• /for-norske-studenter — Medisin og tannlege i utlandet for norske studenter\n• /for-norske-studenter/studere-medisin-i-utlandet — Studere medisin i utlandet: Komplett guide 2026\n• /for-norske-studenter/medisin-uten-realfag — Medisin uten realfag: Slik kommer du inn\n• /for-norske-studenter/karaktersnitt-medisin-utlandet — Karaktersnitt for medisin i utlandet\n• /for-norske-studenter/lanekassen-medisin-tannlege-utlandet — L\\xe5nekassen for medisin og tannlege i utlandet\n• /for-norske-studenter/hva-koster-medisinstudiet-i-utlandet — Hva koster medisinstudiet i utlandet?\n• /for-norske-studenter/autorisasjon-lege-norge-etter-utlandet — Autorisasjon som lege i Norge etter utlandet\n• /for-norske-studenter/lis1-soknad-utenlandsk-medisin — LIS1 med utenlandsk medisinutdanning\n• /for-norske-studenter/sammenligning-medisinstudier-europa — Sammenligning av medisinstudier i Europa\n\nSTUDENT STORIES & REVIEWS\n• /student-stories — Student Stories: Real Journeys into Medicine\n• /student-stories/saif — Saif's Journey to Medical School\n• /student-stories/omar — Omar's Journey to Best Student of the Year\n• /student-stories/suleman — Suleman's Journey to Medical School\n• /student-stories/usman — Usman's Journey: From His Father's Restaurant to Medicine\n• /for-norske-studenter/saifs-reise-til-medisin — Saifs reise til medisinstudiet\n• /for-norske-studenter/omars-reise-til-medisin — Omars reise til \\xc5rets beste student\n• /for-norske-studenter/sulemans-reise-til-medisin — Sulemans reise til medisinstudiet\n• /for-norske-studenter/usmans-reise-til-medisin — Usmans reise til medisin — Det startet bak disken\n• /reviews — Student Reviews — Rated 5.0 on Google\n• /erfaringer — Studentanmeldelser — vi har 5,0 p\\xe5 Google\n• /student-of-the-year — Our Student Won Best Student of the Year at UPOL\n\nABOUT & PARTNERSHIPS\n• /our-team — Our Team – Medical Students Helping You\n• /medently-x-ncu — Medently \\xd7 NCU — Study Medicine in English in Poland\n• /medently-x-rsu — Medently \\xd7 Rīga Stradiņš University — Medicine & Dentistry\n• /medently-x-unic — Medently \\xd7 University of Nicosia — Study Medicine in Cyprus\n• /privacy-policy — Privacy Policy\n\nOTHER MARKETS\n• /mbbs-in-europe-from-uae — MBBS in Europe from UAE | Study Medicine Abroad\n• /studera-medicin-utomlands — Studera medicin utomlands utan toppbetyg\n• /geneeskunde-studeren-in-het-buitenland — Geneeskunde in het buitenland zonder loting\n\nARTICLES — the index is /blog. Every post that exists today:\n• /blog — Medical & Dentistry Abroad Insights Blog\n• /blog/a-level-requirements-dentistry-europe — A-Level Requirements for Dentistry in Europe 2026\n• /blog/a-level-requirements-study-medicine-europe — A-Level Requirements to Study Medicine in Europe 2026\n• /blog/bestatt-opptaksproven-medisin-hva-na — Best\\xe5tt opptakspr\\xf8ven i medisin? Dette skjer n\\xe5\n• /blog/cheapest-medical-schools-europe-english — Cheapest English-Taught Medical Schools in Europe\n• /blog/compare-medical-schools-europe-requirements — Compare 18 European Medical Schools' Entry Requirements\n• /blog/dentistry-clearing-2026 — Dentistry Clearing 2026: What's Actually Open Today\n• /blog/didnt-get-the-grades-for-dentistry — Didn't Get the Grades for Dentistry? 3 Real Routes\n• /blog/didnt-get-the-grades-for-medicine — Didn't Get the Grades for Medicine? Your 2026 Options\n• /blog/eu-medical-degree-recognition-gmc-uk-norway — Is an EU Medical Degree Recognized? GMC & USMLE\n• /blog/european-medical-school-application-timeline — European Medical School Timeline for 2026/2027\n• /blog/fortsatt-mulig-a-soke-medisin-2026 — Fortsatt mulig \\xe5 s\\xf8ke medisin og tannlege i 2026\n• /blog/how-many-years-to-study-medicine-in-europe — How Many Years to Study Medicine in Europe\n• /blog/how-much-does-it-cost-to-study-dentistry-abroad — How Much Does It Cost to Study Dentistry Abroad?\n• /blog/how-to-get-into-ncu-medicine — How to Get Into NCU Medicine: No Grade Minimums\n• /blog/how-to-prepare-for-the-imat-and-entrance-exams — How to Prepare for the IMAT and Entrance Exams\n• /blog/ikke-sokt-medisin-enna — Ikke s\\xf8kt medisin enn\\xe5? UMCH-pr\\xf8ven er 15. august\n• /blog/is-a-medical-degree-from-europe-recognised-in-the-uk — European Medical Degree Recognised in the UK? Yes\n• /blog/is-dentistry-a-good-career-choice-in-2026 — Is Dentistry a Good Career Choice in 2026?\n• /blog/kom-ikke-inn-pa-medisin-2026 — Kom ikke inn p\\xe5 medisin 2026? Dette kan du gj\\xf8re n\\xe5\n• /blog/lanekassen-medisin-i-utlandet — L\\xe5nekassen og medisin i utlandet: f\\xe5 st\\xf8tte\n• /blog/medently-ai-assistant-european-medical-school — Meet Medently AI: Your 24/7 Admissions Guide\n• /blog/medical-dental-transfer-european-universities — Medical & Dental Transfer to Europe: How It Works\n• /blog/medical-schools-no-entrance-exam-europe — Medical Schools in Europe with No Entrance Exam\n• /blog/medicine-clearing-2026 — Medicine Clearing 2026: Honest Odds and Your Plan B\n• /blog/medisin-uten-opptaksprove-i-utlandet — Medisin uten opptakspr\\xf8ve i utlandet: to veier i 2026\n• /blog/ncu-opptaksprove-8-september — NCU opptakspr\\xf8ve i september: s\\xf8k medisin i 2026\n• /blog/no-medical-school-offers-2026-what-to-do — No Medical School Offers in 2026? What to Do Next\n• /blog/palacky-university-olomouc-medisin — Palack\\xfd University Olomouc medisin: norsk guide\n• /blog/pass-upjs-entrance-exam-smart-flashcards — UPJŠ Entrance Exam Prep with Smart Flashcards\n• /blog/pass-upjs-upol-medical-entrance-exam — How to Pass the UPJŠ and UPOL Entrance Exams\n• /blog/rejected-from-medical-school-study-abroad — Rejected from Medical School? No Gap Year Needed\n• /blog/rsu-soknadsvindu-1-september — RSU s\\xf8knadsvindu 1. september: alt du m\\xe5 vite\n• /blog/sammenlign-18-medisinstudier-europa — Sammenlign 18 medisinstudier i Europa p\\xe5 ett sted\n• /blog/shortest-time-to-become-a-doctor-in-europe — Shortest Time to Become a Doctor in Europe: 6 Years\n• /blog/soke-medisin-sent — S\\xf8ke medisin sent? NCU har opptak i september\n• /blog/still-apply-medical-school-europe-september-2026 — Can You Still Apply to Medical School in Europe? 2026\n• /blog/studere-medisin-i-polen — Studere medisin i Polen p\\xe5 engelsk: NCU-guiden\n• /blog/studere-medisin-i-riga — Studere medisin i Riga: uten opptakspr\\xf8ve\n• /blog/studere-medisin-i-utlandet-erfaringer — Studere medisin i utlandet: ekte erfaringer (2026)\n• /blog/studere-medisin-i-utlandet-krav — Studere medisin i utlandet: krav (2026)\n• /blog/studere-medisin-pa-kypros — Studere medisin p\\xe5 Kypros: UNIC uten opptakspr\\xf8ve\n• /blog/studere-tannlege-i-riga — Studere tannlege i Riga: 32 plasser, ingen pr\\xf8ve\n• /blog/study-dentistry-europe-english-guide — Skip the Dental Bottleneck: Study in Europe\n• /blog/study-dentistry-in-riga — Study Dentistry in Riga: 32 Seats, No Entrance Exam\n• /blog/study-dentistry-slovakia-english — Study Dentistry in Slovakia in English (2026 Guide)\n• /blog/study-medicine-abroad-from-uk — Study Medicine Abroad From the UK: 2026 Guide\n• /blog/study-medicine-europe-without-biology-chemistry-a-levels — Study Medicine in Europe, No Bio/Chem A-Levels\n• /blog/study-medicine-in-cyprus — Study Medicine in Cyprus in English: The UNIC Guide\n• /blog/study-medicine-in-poland — Study Medicine in Poland in English: The NCU Guide\n• /blog/study-medicine-in-riga — Study Medicine in Riga: No Entrance Exam, EU Degree\n• /blog/studying-medicine-slovakia-vs-poland — Studying Medicine in Slovakia vs Poland\n• /blog/tannlege-i-utlandet-snitt — Tannlege i utlandet snitt: hva du faktisk trenger\n• /blog/top-medical-universities-in-europe-taught-in-english — Top Medical Schools in Europe Taught in English (2026)\n• /blog/transfer-carol-davila-to-upjs-medicine — Transfer From Carol Davila to UPJŠ: Medicine Guide\n• /blog/transfer-charles-university-prague-to-upjs-medicine — Transfer from Charles University to UPJŠ Košice\n• /blog/transfer-cluj-napoca-to-upjs-medicine — Transfer From UMF Cluj to UPJŠ Medicine: Why & How\n• /blog/transfer-debrecen-to-upjs-dentistry — Transfer From University of Debrecen to UPJŠ Dentistry\n• /blog/transfer-gdansk-to-upjs-medicine — Transfer From Gdańsk to UPJŠ Medicine: 2026/27 Costs\n• /blog/transfer-lsmu-kaunas-to-upjs-dentistry — Transfer From LSMU Kaunas to UPJŠ Dentistry\n• /blog/transfer-lublin-to-upjs-dentistry — Transfer from Lublin to UPJŠ Dentistry\n• /blog/transfer-medical-university-sofia-to-upjs-medicine — Transfer From Sofia to UPJŠ Medicine\n• /blog/transfer-plovdiv-to-upjs-dentistry — Transfer From Plovdiv to UPJŠ Dentistry: 2026 Guide\n• /blog/transfer-poznan-pums-to-upjs-medicine — Transfer Poznan (PUMS) to UPJŠ Košice — Medicine\n• /blog/transfer-semmelweis-to-upjs-medicine — Transfer from Semmelweis University to UPJŠ — Medicine\n• /blog/transfer-varna-to-upjs-dentistry — Transfer From Varna to UPJŠ Dentistry: Cost Guide\n• /blog/transfer-wroclaw-to-upjs-dentistry — Transfer From Wrocław to UPJŠ Dentistry: 2026/27 Guide\n• /blog/transfer-zagreb-to-upjs-dentistry — Transfer From Zagreb to UPJŠ Dentistry: Which Year\n• /blog/umch-hamburg-acceptance-rate — UMCH Hamburg Acceptance Rate: How to Get In\n• /blog/umch-medicine-fees — UMCH Medicine Fees: Real Cost of Hamburg (2026)\n• /blog/university-of-nicosia-medisin-slik-kommer-du-inn — University of Nicosia medisin: slik kommer du inn\n• /blog/upjs-entrance-exam-what-its-like — UPJŠ Entrance Exam: What It's Actually Like\n• /blog/upjs-ny-opptaksprove-5-september — Ny opptakspr\\xf8ve UPJŠ 5. september 2026\n• /blog/venteliste-medisin-samordna-opptak-2026 — Venteliste p\\xe5 medisin 2026? Slik gj\\xf8r du noe med det\n• /blog/verdt-a-studere-medisin-i-utlandet — Er det verdt \\xe5 studere medisin i utlandet?\n\n═══════════════════════════════════════════════\nRULES — MUST FOLLOW\n═══════════════════════════════════════════════\n\n1. NEVER guarantee admission, L\\xe5nekassen approval, or degree recognition in specific countries.\n2. NEVER invent universities, prices, dates, names, or facts. If you don't know, say so and offer WhatsApp.\n3. NEVER invent hospital names. Only name hospitals from the verified UMCH teaching hospital list above.\n4. For personal cases (grades evaluation, transfer feasibility, payment plans), redirect to WhatsApp.\n5. We work with six universities: our partners UPJŠ, UPOL, UMCH and RSU, plus NCU and UNIC (we apply there for students — say \"works with\", never \"partner\", for NCU/UNIC). Don't recommend universities outside these six.\n6. Keep responses SHORT. Use tables for comparisons. Use buttons for actions.\n7. Always end with a clear next step — usually a button.\n8. UMCH = medicine ONLY. If asked about dentistry at UMCH, redirect to UPJŠ/UPOL.\n9. Speak student-to-student — informal, encouraging, never corporate.\n10. When someone seems ready to act (\"how do I apply\", \"I want to sign up\"), give them buttons immediately.\n11. If they ask about Shakzoda/Shakhzoda — she's our Regional Director for the Middle East, based in UAE.\n12. UPJŠ dentistry is 5 YEARS, not 6. Always say 5 years for UPJŠ dentistry.\n13. UMCH does NOT require IELTS or TOEFL. Never tell a student they need an English test for UMCH.\n14. UMCH prices by nationality: €25,000/year for Norwegian students (application + enrolment fees waived), €29,800/year for EU/EEA, €34,800/year for international students, the latter two plus a €595 application fee and €4,500 enrolment fee. Never quote €25,000 to a non-Norwegian. When a Norwegian student asks about UMCH tuition, always mention that the €25,000/year is fully covered when they receive L\\xe5nekassen support.\n15. UMCH clinical rotations start in YEAR 3, not semester 3. Never say semester 3.\n16. UMCH does NOT use Asklepios hospitals. If asked, correct this clearly and refer to the verified list.\n17. NEVER link to a page that is not in the site list above. If there is no page for it, answer in your own words and offer WhatsApp.\n18. NEVER explain how Medently is paid, and never say we \"take no cut\". Say only that the student never pays us anything — the university's own application or exam fee is paid straight to the university.`;/**\n * The model has no clock. Without this it will happily present a sitting that\n * went by last week as \"upcoming\" — the single most damaging kind of mistake\n * this assistant can make.\n */export function todayLine(){const today=new Date().toLocaleDateString(\"en-GB\",{day:\"numeric\",month:\"long\",year:\"numeric\"});return`\n\n═══════════════════════════════════════════════\nTODAY IS ${today}. Any date before today has already happened — never call it upcoming, never send a student to register for it. If the next sitting has passed, say new dates are coming and offer WhatsApp.`;}export function parseMessage(text){const parts=[];const lines=text.split(\"\\n\");let buffer=[];const flushBuffer=()=>{if(buffer.length>0){parts.push({type:\"text\",content:buffer.join(\"\\n\")});buffer=[];}};let i=0;while(i<lines.length){const line=lines[i];const buttonMatch=line.match(/^\\[BUTTON:([^|]+)\\|([^\\]]+)\\]\\s*$/);const isTableHeader=line.trim().startsWith(\"|\")&&i+1<lines.length&&/^\\|[\\s\\-:|]+\\|/.test(lines[i+1].trim());if(buttonMatch){flushBuffer();parts.push({type:\"button\",content:{label:buttonMatch[1].trim(),url:buttonMatch[2].trim()}});i++;}else if(isTableHeader){flushBuffer();const tableLines=[line];i++;tableLines.push(lines[i]);i++;while(i<lines.length&&lines[i].trim().startsWith(\"|\")){tableLines.push(lines[i]);i++;}parts.push({type:\"table\",content:tableLines});}else{buffer.push(line);i++;}}flushBuffer();return parts;}function renderInline(text){const parts=text.split(/(\\*\\*[^*]+\\*\\*)/g);return parts.map((p,j)=>p.startsWith(\"**\")?/*#__PURE__*/_jsx(\"strong\",{style:{color:\"#e8eeff\"},children:p.slice(2,-2)},j):p);}function renderTextBlock(text){const lines=text.split(\"\\n\");const out=[];lines.forEach((line,i)=>{if(!line.trim()){out.push(/*#__PURE__*/_jsx(\"div\",{style:{height:5}},i));return;}if(line.startsWith(\"- \")||line.startsWith(\"* \")){out.push(/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,marginBottom:3},children:[/*#__PURE__*/_jsx(\"span\",{style:{color:\"#60a5fa\",flexShrink:0},children:\"•\"}),/*#__PURE__*/_jsx(\"span\",{style:{color:\"#c8d6f0\",lineHeight:1.6,wordBreak:\"break-word\"},children:renderInline(line.slice(2))})]},i));}else{out.push(/*#__PURE__*/_jsx(\"div\",{style:{color:\"#c8d6f0\",lineHeight:1.6,marginBottom:2,wordBreak:\"break-word\"},children:renderInline(line)},i));}});return out;}function renderTable(lines){const parseRow=l=>l.trim().replace(/^\\|/,\"\").replace(/\\|$/,\"\").split(\"|\").map(c=>c.trim());const header=parseRow(lines[0]);const rows=lines.slice(2).map(parseRow);return /*#__PURE__*/_jsx(\"div\",{style:{overflowX:\"auto\",margin:\"8px 0\",borderRadius:10,border:\"1px solid rgba(100,140,255,0.2)\",maxWidth:\"100%\",WebkitOverflowScrolling:\"touch\"},children:/*#__PURE__*/_jsxs(\"table\",{style:{width:\"100%\",borderCollapse:\"collapse\",fontSize:13},children:[/*#__PURE__*/_jsx(\"thead\",{children:/*#__PURE__*/_jsx(\"tr\",{style:{background:\"rgba(59,130,246,0.18)\"},children:header.map((h,i)=>/*#__PURE__*/_jsx(\"th\",{style:{padding:\"9px 12px\",textAlign:\"left\",color:\"#e8eeff\",fontWeight:600,borderBottom:\"1px solid rgba(100,140,255,0.25)\",whiteSpace:\"nowrap\"},children:renderInline(h)},i))})}),/*#__PURE__*/_jsx(\"tbody\",{children:rows.map((row,r)=>/*#__PURE__*/_jsx(\"tr\",{style:{background:r%2===0?\"rgba(255,255,255,0.02)\":\"transparent\"},children:row.map((cell,c)=>/*#__PURE__*/_jsx(\"td\",{style:{padding:\"8px 12px\",color:\"#c8d6f0\",borderBottom:\"1px solid rgba(100,140,255,0.08)\",lineHeight:1.5},children:renderInline(cell)},c))},r))})]})});}function renderButton(label,url){// Model output can be steered by a crafted ?q= link, so button URLs are\n// restricted to same-site paths and https — never javascript:/data:/etc.\nconst safe=url.startsWith(\"/\")||url.startsWith(\"https://\");if(!safe)return null;const isExternal=url.startsWith(\"https://\");return /*#__PURE__*/_jsxs(\"a\",{href:url,target:isExternal?\"_blank\":\"_self\",rel:isExternal?\"noopener noreferrer\":undefined,style:{display:\"inline-flex\",alignItems:\"center\",gap:7,marginTop:8,marginRight:8,padding:\"9px 18px\",background:\"linear-gradient(135deg,#1d4ed8,#3b82f6)\",color:\"#fff\",borderRadius:100,fontSize:13,fontWeight:600,textDecoration:\"none\",boxShadow:\"0 3px 12px rgba(59,130,246,0.35)\",transition:\"transform 0.15s, box-shadow 0.15s\",cursor:\"pointer\"},onMouseEnter:e=>{e.currentTarget.style.transform=\"translateY(-1px)\";e.currentTarget.style.boxShadow=\"0 5px 18px rgba(59,130,246,0.5)\";},onMouseLeave:e=>{e.currentTarget.style.transform=\"none\";e.currentTarget.style.boxShadow=\"0 3px 12px rgba(59,130,246,0.35)\";},children:[label,/*#__PURE__*/_jsx(\"span\",{style:{fontSize:14},children:\"→\"})]});}function renderRichMessage(text){const parts=parseMessage(text);const buttons=parts.filter(p=>p.type===\"button\");const nonButtons=parts.filter(p=>p.type!==\"button\");return /*#__PURE__*/_jsxs(_Fragment,{children:[nonButtons.map((part,i)=>{if(part.type===\"table\")return /*#__PURE__*/_jsx(\"div\",{children:renderTable(part.content)},i);return /*#__PURE__*/_jsx(\"div\",{children:renderTextBlock(part.content)},i);}),buttons.length>0&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:0,marginTop:4},children:buttons.map((b,i)=>/*#__PURE__*/_jsx(\"span\",{children:renderButton(b.content.label,b.content.url)},i))})]});}const TypingDots=()=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:5,alignItems:\"center\",padding:\"2px 0\"},children:[[0,1,2].map(i=>/*#__PURE__*/_jsx(\"div\",{style:{width:7,height:7,borderRadius:\"50%\",background:\"#3b82f6\",animation:\"mlyB 1.2s infinite\",animationDelay:`${i*.2}s`}},i)),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`@keyframes mlyB{0%,60%,100%{transform:translateY(0);opacity:.3}30%{transform:translateY(-5px);opacity:1}}`}})]});const NAV_HEIGHT=60;// ── Responsive CSS (replaces JS width detection so first paint is correct) ──\n// Base values = desktop. max-width:767 = mobile (< 768) overrides. Breakpoint: 768.\nconst AI_CSS=`\n.mai-hero{ padding:0 20px 32px; }\n.mai-hero-h1{ font-size:52px; }\n.mai-hero-p{ font-size:16px; }\n.mai-chip{ padding:8px 16px; font-size:13px; }\n.mai-empty{ padding:20px 16px; }\n.mai-scroll{ padding:28px 16px 16px; }\n.mai-inputbar-wrap{ padding:10px 16px 18px; }\n@media (max-width:767px){\n  .mai-hero{ padding:0 16px 24px; }\n  .mai-hero-h1{ font-size:28px; }\n  .mai-hero-p{ font-size:14px; }\n  .mai-chip{ padding:6px 12px; font-size:12px; }\n  .mai-empty{ padding:20px 12px; }\n  .mai-scroll{ padding:16px 12px 12px; }\n  .mai-inputbar-wrap{ padding:8px 12px 14px; }\n}\n`;const outerContainer=()=>({width:\"100%\",maxWidth:\"100vw\",height:`calc(100dvh - ${NAV_HEIGHT}px)`,minHeight:`calc(100vh - ${NAV_HEIGHT}px)`,background:\"linear-gradient(145deg,#060d22 0%,#0a1535 45%,#07102a 100%)\",fontFamily:\"'Clash Grotesk','Segoe UI',sans-serif\",position:\"relative\",overflow:\"hidden\",boxSizing:\"border-box\",WebkitTextSizeAdjust:\"100%\"});export default function MedentlyAI(){const[messages,setMessages]=useState([]);const[input,setInput]=useState(\"\");const[loading,setLoading]=useState(false);const scrollRef=useRef(null);const bottomRef=useRef(null);const taRef=useRef(null);const isEmpty=messages.length===0&&!loading;useEffect(()=>{if(scrollRef.current){scrollRef.current.scrollTop=scrollRef.current.scrollHeight;}},[messages,loading]);useEffect(()=>{if(taRef.current){taRef.current.style.height=\"auto\";taRef.current.style.height=Math.min(taRef.current.scrollHeight,150)+\"px\";}},[input]);const send=async text=>{const msg=(text??input).trim();if(!msg||loading)return;const next=[...messages,{role:\"user\",content:msg}];setMessages(next);setInput(\"\");setLoading(true);try{const res=await fetch(PROXY_URL,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({model:\"claude-haiku-4-5-20251001\",max_tokens:1024,system:SYSTEM+todayLine(),messages:next.map(m=>({role:m.role,content:m.content}))})});if(!res.ok)throw new Error(\"proxy_\"+res.status);const data=await res.json();const reply=data?.content?.[0]?.text;if(reply){setMessages(prev=>[...prev,{role:\"assistant\",content:reply}]);}else if(data?.error){// Never surface raw provider internals to end users.\nsetMessages(prev=>[...prev,{role:\"assistant\",content:\"Sorry, something went wrong on our side. Please try again in a moment, or contact us on WhatsApp: +421 949 104 999\\n\\n[BUTTON:WhatsApp Us|https://api.whatsapp.com/send/?phone=421949104999]\"}]);}else{setMessages(prev=>[...prev,{role:\"assistant\",content:\"Sorry, no response. Please try again or contact us on WhatsApp: +421 949 104 999\\n\\n[BUTTON:WhatsApp Us|https://api.whatsapp.com/send/?phone=421949104999]\"}]);}}catch(e){setMessages(prev=>[...prev,{role:\"assistant\",content:`Network error: ${e.message}. Please contact us on WhatsApp: +421 949 104 999\n\n[BUTTON:WhatsApp Us|https://api.whatsapp.com/send/?phone=421949104999]`}]);}setLoading(false);};const onKey=e=>{if(e.key===\"Enter\"&&!e.shiftKey){e.preventDefault();send();}};// Prefill + auto-ask from a ?q= (or ?question=) URL param, e.g. /ai?q=How%20do%20I%20apply\nconst didInitFromUrl=useRef(false);useEffect(()=>{if(didInitFromUrl.current)return;didInitFromUrl.current=true;if(typeof window===\"undefined\")return;const params=new URLSearchParams(window.location.search);const q=(params.get(\"q\")||params.get(\"question\")||\"\").trim();if(q){setInput(q);send(q);}// eslint-disable-next-line react-hooks/exhaustive-deps\n},[]);const Stars=/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",overflow:\"hidden\"},children:[...Array(55)].map((_,i)=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",width:i%5===0?2:1,height:i%5===0?2:1,borderRadius:\"50%\",background:`rgba(255,255,255,${i%5===0?.22:.1})`,left:`${(i*41+7)%100}%`,top:`${(i*67+13)%100}%`}},i))});const Hero=/*#__PURE__*/_jsxs(\"div\",{className:\"mai-hero\",style:{textAlign:\"center\",zIndex:1,width:\"100%\",boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsxs(\"h1\",{className:\"mai-hero-h1\",style:{fontWeight:800,lineHeight:1.1,color:\"#fff\",margin:\"0 0 12px\",letterSpacing:\"-1px\"},children:[\"How can\",\" \",/*#__PURE__*/_jsx(\"span\",{style:{background:\"linear-gradient(135deg,#60a5fa,#93c5fd)\",WebkitBackgroundClip:\"text\",WebkitTextFillColor:\"transparent\"},children:\"Medently AI\"}),\" \",\"help you?\"]}),/*#__PURE__*/_jsx(\"p\",{className:\"mai-hero-p\",style:{color:\"rgba(255,255,255,0.5)\",margin:0},children:\"Your free AI assistant for studying medicine and dentistry in Europe. Ask about entrance exams, tuition, deadlines and which university fits your grades.\"})]});const InputBar=/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",maxWidth:760,background:\"rgba(255,255,255,0.06)\",border:\"1.5px solid rgba(100,140,255,0.25)\",borderRadius:28,padding:\"10px 12px 10px 18px\",backdropFilter:\"blur(20px)\",boxShadow:\"0 8px 40px rgba(0,0,0,0.4)\",display:\"flex\",alignItems:\"flex-end\",gap:10,boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"textarea\",{ref:taRef,value:input,onChange:e=>setInput(e.target.value),onKeyDown:onKey,placeholder:\"Ask about medicine or dentistry in Europe...\",rows:1,style:{flex:1,background:\"transparent\",border:\"none\",outline:\"none\",resize:\"none\",color:\"#fff\",fontSize:16,lineHeight:1.5,fontFamily:\"inherit\",maxHeight:150,overflowY:\"auto\",padding:\"2px 0\",minWidth:0,width:\"100%\"}}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>send(),disabled:!input.trim()||loading,style:{width:36,height:36,borderRadius:\"50%\",flexShrink:0,background:input.trim()&&!loading?\"linear-gradient(135deg,#1d4ed8,#3b82f6)\":\"rgba(255,255,255,0.1)\",border:\"none\",cursor:input.trim()&&!loading?\"pointer\":\"not-allowed\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",boxShadow:input.trim()&&!loading?\"0 4px 14px rgba(59,130,246,0.45)\":\"none\",transition:\"all 0.15s\"},children:/*#__PURE__*/_jsxs(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"#fff\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 5.25v13.5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M18.75 12L12 5.25 5.25 12\"})]})})]});const Chips=/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8,justifyContent:\"center\",width:\"100%\",maxWidth:760,boxSizing:\"border-box\"},children:QUICK_PROMPTS.map((qp,i)=>/*#__PURE__*/_jsx(\"button\",{onClick:()=>send(qp.prompt),className:\"mai-chip\",style:{background:\"rgba(255,255,255,0.04)\",border:\"1px solid rgba(255,255,255,0.1)\",borderRadius:100,color:\"rgba(255,255,255,0.7)\",cursor:\"pointer\",fontFamily:\"inherit\",whiteSpace:\"nowrap\",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(59,130,246,0.15)\";e.currentTarget.style.borderColor=\"rgba(59,130,246,0.4)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(255,255,255,0.04)\";e.currentTarget.style.borderColor=\"rgba(255,255,255,0.1)\";},children:qp.label},i))});const Disclaimer=/*#__PURE__*/_jsx(\"p\",{style:{fontSize:11,color:\"rgba(255,255,255,0.25)\",margin:0,textAlign:\"center\",padding:\"0 16px\",boxSizing:\"border-box\"},children:\"Medently AI may make mistakes. For guaranteed accuracy, contact us directly.\"});if(isEmpty){return /*#__PURE__*/_jsxs(\"div\",{className:\"mai-empty\",style:{...outerContainer(),display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:16},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:AI_CSS}}),Stars,/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",zIndex:1,width:\"100%\",maxWidth:760,display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:16,boxSizing:\"border-box\"},children:[Hero,InputBar,Chips,Disclaimer]})]});}return /*#__PURE__*/_jsxs(\"div\",{style:{...outerContainer(),display:\"flex\",flexDirection:\"column\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:AI_CSS}}),Stars,/*#__PURE__*/_jsx(\"div\",{ref:scrollRef,className:\"mai-scroll\",style:{flex:1,overflowY:\"auto\",overflowX:\"hidden\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",zIndex:1,minHeight:0,WebkitOverflowScrolling:\"touch\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",maxWidth:760,display:\"flex\",flexDirection:\"column\",gap:14,boxSizing:\"border-box\"},children:[messages.map((msg,i)=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:10,alignItems:\"flex-start\",justifyContent:msg.role===\"user\"?\"flex-end\":\"flex-start\",maxWidth:\"100%\"},children:[msg.role===\"assistant\"&&/*#__PURE__*/_jsx(\"div\",{style:{width:30,height:30,borderRadius:\"50%\",flexShrink:0,background:\"linear-gradient(135deg,#1e40af,#3b82f6)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:12,color:\"#fff\",marginTop:2},children:\"✦\"}),/*#__PURE__*/_jsx(\"div\",{style:{maxWidth:msg.role===\"user\"?\"80%\":\"92%\",minWidth:0,padding:\"11px 16px\",fontSize:14,lineHeight:1.6,background:msg.role===\"user\"?\"linear-gradient(135deg,#1e3a8a,#2563eb)\":\"rgba(255,255,255,0.05)\",color:msg.role===\"user\"?\"#fff\":\"#c8d6f0\",borderRadius:msg.role===\"user\"?\"18px 18px 4px 18px\":\"4px 18px 18px 18px\",border:msg.role===\"assistant\"?\"1px solid rgba(255,255,255,0.08)\":\"none\",wordBreak:\"break-word\",overflowWrap:\"anywhere\"},children:msg.role===\"assistant\"?renderRichMessage(msg.content):msg.content})]},i)),loading&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-start\",gap:10},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:30,height:30,borderRadius:\"50%\",flexShrink:0,background:\"linear-gradient(135deg,#1e40af,#3b82f6)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:12,color:\"#fff\"},children:\"✦\"}),/*#__PURE__*/_jsx(\"div\",{style:{padding:\"12px 16px\",background:\"rgba(255,255,255,0.05)\",border:\"1px solid rgba(255,255,255,0.08)\",borderRadius:\"4px 18px 18px 18px\"},children:/*#__PURE__*/_jsx(TypingDots,{})})]}),/*#__PURE__*/_jsx(\"div\",{ref:bottomRef})]})}),/*#__PURE__*/_jsxs(\"div\",{className:\"mai-inputbar-wrap\",style:{flexShrink:0,zIndex:10,display:\"flex\",flexDirection:\"column\",alignItems:\"center\",background:\"linear-gradient(to top,rgba(6,13,34,1) 60%,rgba(6,13,34,0.85) 90%,transparent)\",gap:8,boxSizing:\"border-box\"},children:[InputBar,Disclaimer]})]});}addPropertyControls(MedentlyAI,{});\nexport const __FramerMetadata__ = {\"exports\":{\"todayLine\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SYSTEM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"MedentlyAI\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseMessage\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PROXY_URL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ParsedPart\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MedentlyAI.map","// @framerSupportedLayoutWidth any\n// @framerSupportedLayoutHeight any\n/**\n * ASK MEDENTLY — the site-wide \"Ask a question / Apply now\" bar.\n *\n * Modelled on tesla.com's sticky bottom bar (Saif, 18 + 19 Aug 2026, with\n * his Tesla screenshot): a FULL-WIDTH white strip pinned to the bottom.\n * DESKTOP — two flat light-grey Tesla-style buttons CENTERED in the strip:\n * \"Ask a question\" carrying the circulating popular questions in quotes\n * (no send button), and \"Apply now\" with a blue arrow. MOBILE — the chat\n * button is just the green symbol, no box, beside the wide blue Apply.\n * Tesla's right button is \"Schedule a Drive Today\"; ours is \"Apply now\",\n * which is the only thing we ever want a visitor to do.\n *\n * Pressing the chat button opens a CHANNEL MENU first (his explicit\n * choice) — Medently AI, WhatsApp, Messages, Instagram, TikTok, email.\n * Picking Medently AI slides a chat drawer in from the right, running the\n * same brain as /ai: same Worker, same system prompt, same [BUTTON:…]\n * action buttons. One prompt, two surfaces — edit MedentlyAI.tsx and both\n * change.\n *\n * ⚠ This component is NOT placed on the canvas. It is rendered once by\n * MedentlyFooter.tsx and portalled to document.body, so it appears on every\n * page the footer appears on without touching 34 pages by hand.\n */import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import React,{useState,useRef,useEffect,useCallback}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType}from\"framer\";import{SYSTEM,PROXY_URL,parseMessage,todayLine}from\"https://framerusercontent.com/modules/nV2sOCb2ngwOdJb2kBIB/jSHKfzSsXZYqjQu7SHSy/MedentlyAI.js\";// ─── Brand tokens (same values HomeTestingNav.tsx uses) ──────────────\nconst NAVY=\"#0b164a\";const BLUE=\"#1B62FF\";const GOLD=\"#c99b3c\";/* The chat symbol is green (Saif, 19 Aug) — chat-with-us green, deliberately\n   NOT WhatsApp's #25D366: the button opens the channel menu, not WhatsApp. */const GREEN=\"#1fab55\";const INK=\"#101828\";const MUTED=\"#5b6478\";const RAIL=\"rgba(11,22,74,0.13)\";const FONT=`\"Clash Grotesk\", \"Clash Grotesk Variable\", -apple-system, BlinkMacSystemFont, sans-serif`;// ─── Channels ────────────────────────────────────────────────────────\n// Saif, 18 Aug: WhatsApp goes to the Slovak number, Messages to the\n// Norwegian one. Do not merge these two rows — they are different numbers\n// on purpose.\nconst WHATSAPP_NUMBER=\"421949104999\";const WHATSAPP_DISPLAY=\"+421 949 104 999\";const SMS_NUMBER=\"+4794880185\";const SMS_DISPLAY=\"+47 94 880 185\";const WHATSAPP_URL=\"https://api.whatsapp.com/send/?phone=\"+WHATSAPP_NUMBER+\"&text=Hey+Medently%21+Can+you+help+me+applying+to+medical+%2F+dental+universities+for+free%3F&type=phone_number&app_absent=0\";const INSTAGRAM_URL=\"https://www.instagram.com/medently_eu/\";const TIKTOK_URL=\"https://www.tiktok.com/@medently.com\";const EMAIL=\"agent@medently.com\";/* ⭐ Saif, 27 Aug 2026: on the Denmark page the wide button must NOT be\n   \"Søk nå\" — nothing on that page goes through /apply. It is a WhatsApp\n   conversation with a message already written, to the Slovak number. */const DK_PATH=\"/medisin-i-danmark\";const DK_WHATSAPP=\"https://api.whatsapp.com/send/?phone=421949104999&text=Hei%21+Jeg+studerer+medisin+i+utlandet+og+%C3%B8nsker+%C3%A5+flytte+til+Danmark.&type=phone_number&app_absent=0\";// ─── Where the bar must never appear ─────────────────────────────────\n// /apply — they are already applying. /ai — it would be a chat inside a\n// chat. The rest are logged-in surfaces and exam tooling, where a floating\n// sales bar is noise.\nconst HIDDEN_PREFIXES=[\"/apply\",\"/ai\",\"/dashboard\",\"/signin\",\"/signup\",\"/partner\",\"/test\"];/**\n * Pages that own the bottom of the screen: the bar DETECTS any other\n * fixed/sticky bottom element at runtime, lifts itself above it and drops its\n * own Apply button, leaving just the chat symbol. Two stacked Apply buttons\n * would be noise. The detection is live measurement, so a page that grows its\n * own bar tomorrow is handled without a code change.\n *\n * 19 Aug 2026: the university pages' \"Apply now — free\" fab and the country\n * guides' sticky Apply pill were DELETED at Saif's ask — this bar is the only\n * bottom CTA there now. Still detected today: the Europe hub pages'\n * university-picker tray (functional, stays), /flashcards' sign-in bar, and\n * the cookie banner.\n */// ─── Norwegian routes ────────────────────────────────────────────────\n// The nav gets its language from a `norsk` prop set per page. The footer\n// takes no props, so we read it off the path instead — these are the\n// Norwegian halves of NO_HREFS in HomeTestingNav.tsx plus the Norwegian-only\n// SEO pages.\nconst NO_PREFIXES=[\"/for-norske-studenter\",\"/universiteter\",\"/programmer\",\"/bytt-studiested\",\"/erfaringer\",\"/studer-medisin-i-\",\"/studer-tannlege-i-\",\"/opptak\",\"/opptaksprove\",\"/soknadsfrister\",\"/frister\",\"/hva-koster\",\"/karakterkalkulator\",\"/ikke-kommet-inn\",\"/september-2026-opptak\",\"/medisin-i-danmark\",\"/norsk\",\"/can-i-get-in/norway\"];const COPY={en:{ask:\"Ask a question\",apply:\"Apply now\",dkCta:\"Talk to us on WhatsApp\",human:\"speak to a human\",menuTitle:\"How can we help?\",menuSub:\"Answers in seconds, or talk to a human.\",ai:\"Ask Medently AI\",aiSub:\"Instant answers, any time\",whatsapp:\"WhatsApp\",sms:\"Send a message\",instagram:\"Instagram\",instagramSub:\"@medently_eu\",tiktok:\"TikTok\",tiktokSub:\"@medently.com\",email:\"Email us\",aiTitle:\"Medently AI\",aiStatus:\"Usually answers instantly\",greeting:\"Hi! I'm Medently AI.\",greetingSub:\"Ask me anything about studying medicine or dentistry in Europe — universities, entrance exams, costs, transfers.\",placeholder:\"Ask a question…\",disclaimer:\"Medently AI can make mistakes. Free guidance, always.\",fullChat:\"Open full chat\",close:\"Close\",back:\"All contact options\",busy:\"Medently AI is busy right now. A human is faster anyway:\"},no:{ask:\"Still et sp\\xf8rsm\\xe5l\",apply:\"S\\xf8k n\\xe5\",dkCta:\"Snakk med oss p\\xe5 WhatsApp\",human:\"snakk med et menneske\",menuTitle:\"Hva kan vi hjelpe med?\",menuSub:\"Svar p\\xe5 sekunder, eller snakk med et menneske.\",ai:\"Sp\\xf8r Medently AI\",aiSub:\"Svar med \\xe9n gang, n\\xe5r som helst\",whatsapp:\"WhatsApp\",sms:\"Send melding\",instagram:\"Instagram\",instagramSub:\"@medently_eu\",tiktok:\"TikTok\",tiktokSub:\"@medently.com\",email:\"Send e-post\",aiTitle:\"Medently AI\",aiStatus:\"Svarer vanligvis med \\xe9n gang\",greeting:\"Hei! Jeg er Medently AI.\",greetingSub:\"Sp\\xf8r meg om alt som har med medisin- og tannlegestudier i Europa \\xe5 gj\\xf8re — universiteter, opptakspr\\xf8ver, kostnader, overflytting.\",placeholder:\"Still et sp\\xf8rsm\\xe5l…\",disclaimer:\"Medently AI kan ta feil. Veiledningen er alltid gratis.\",fullChat:\"\\xc5pne full chat\",close:\"Lukk\",back:\"Alle kontaktvalg\",busy:\"Medently AI er opptatt akkurat n\\xe5. Et menneske er raskere uansett:\"}};const QUICK={en:[{label:\"Which university fits me?\",prompt:\"I want to study medicine in Europe. Which university is best for me?\"},{label:\"What does it cost?\",prompt:\"What does it cost per year to study medicine at your partner universities?\"},{label:\"Entrance exam\",prompt:\"How do I prepare for the entrance exam and what does it cover?\"},{label:\"Can I transfer?\",prompt:\"Can I transfer from my current university to study medicine in Europe?\"}],no:[{label:\"Hvilket universitet passer meg?\",prompt:\"Jeg vil studere medisin i Europa. Hvilket universitet passer best for meg? Svar p\\xe5 norsk.\"},{label:\"Hva koster det?\",prompt:\"Hva koster det per \\xe5r \\xe5 studere medisin hos partneruniversitetene deres? Svar p\\xe5 norsk.\"},{label:\"Opptakspr\\xf8ven\",prompt:\"Hvordan forbereder jeg meg til opptakspr\\xf8ven, og hva dekker den? Svar p\\xe5 norsk.\"},{label:\"Kan jeg bytte studiested?\",prompt:\"Kan jeg bytte fra universitetet jeg g\\xe5r p\\xe5 n\\xe5 til medisin i Europa? Svar p\\xe5 norsk.\"}]};/* Desktop only (Saif, 19 Aug, with Tesla's screenshot): the Ask control shows\n   the most popular student questions circulating in quotes, exactly like\n   Tesla's \"Compare Model 3 and Model Y\". Clicking anywhere on it opens the\n   channel menu — there is deliberately NO send button (\"not the send\n   button\", his words). */const ASK_QS={en:[\"Which university fits me?\",\"What does it cost per year?\",\"What's on the entrance exam?\",\"Can I transfer mid-degree?\",\"How fast do I get an answer?\"],no:[\"Hvilket universitet passer meg?\",\"Hva koster det i \\xe5ret?\",\"Hva kommer p\\xe5 opptakspr\\xf8ven?\",\"Kan jeg bytte studiested?\",\"F\\xe5r jeg st\\xf8tte fra L\\xe5nekassen?\"]};// The panel is narrow and read on a phone half the time, so the answers\n// have to be shorter than they are on the full /ai page.\nconst PANEL_ADDENDUM=`\n\n═══════════════════════════════════════════════\nYOU ARE IN THE SIDE PANEL (not the full /ai page)\n═══════════════════════════════════════════════\n- Keep answers SHORT — 90 words maximum, ideally less. This panel is narrow and often read on a phone.\n- Lead with the answer. No preamble, no restating the question.\n- Tables: 3 columns maximum, or the panel cannot show them. Prefer a short bullet list over a wide table.\n- Still finish with 1-2 [BUTTON:…] action buttons — they are the point of this panel.\n- Answer in the language the student writes in. Norwegian question → Norwegian answer.`;const STORE_KEY=\"medently_ask_chat_v1\";const COOKIE_STORAGE_KEY=\"medently-cookies-v1\";const COOKIE_NAME=\"medently_cookies_v1\";// ─── Icons ───────────────────────────────────────────────────────────\nconst IconChat=({color=NAVY})=>/*#__PURE__*/_jsxs(\"svg\",{width:\"22\",height:\"22\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M4 5.5h16v11H9.2L4 20.2V5.5z\",stroke:color,strokeWidth:\"1.7\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"11\",r:\"1.15\",fill:color}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12.5\",cy:\"11\",r:\"1.15\",fill:color}),/*#__PURE__*/_jsx(\"circle\",{cx:\"16\",cy:\"11\",r:\"1.15\",fill:color})]});/* The launcher symbol: a solid green speech bubble with white dots. On mobile\n   it stands alone — no box around it — so it has to read as a button by\n   itself; the fill is what does that. */const IconChatFill=({size=30,color=GREEN})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M4 5.5h16v11H9.2L4 20.2V5.5z\",fill:color,stroke:color,strokeWidth:\"2.2\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"11\",r:\"1.3\",fill:\"#fff\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12.5\",cy:\"11\",r:\"1.3\",fill:\"#fff\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"16\",cy:\"11\",r:\"1.3\",fill:\"#fff\"})]});const IconSpark=({color=GOLD})=>/*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 3.2l1.9 5.1 5.1 1.9-5.1 1.9L12 17.2l-1.9-5.1L5 10.2l5.1-1.9L12 3.2z\",fill:color}),/*#__PURE__*/_jsx(\"path\",{d:\"M18.6 15.4l.8 2.1 2.1.8-2.1.8-.8 2.1-.8-2.1-2.1-.8 2.1-.8.8-2.1z\",fill:color,opacity:\"0.55\"})]});const IconWhatsApp=({color=\"#25D366\"})=>/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:color,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M12.04 2C6.6 2 2.2 6.4 2.2 11.84c0 1.74.46 3.44 1.32 4.94L2 22l5.36-1.4a9.8 9.8 0 0 0 4.68 1.2h.01c5.43 0 9.84-4.4 9.84-9.84 0-2.63-1.02-5.1-2.88-6.96A9.77 9.77 0 0 0 12.04 2zm0 17.98h-.01a8.2 8.2 0 0 1-4.16-1.14l-.3-.18-3.1.81.83-3.02-.2-.31a8.13 8.13 0 0 1-1.25-4.3c0-4.51 3.68-8.18 8.2-8.18a8.13 8.13 0 0 1 5.78 2.4 8.1 8.1 0 0 1 2.4 5.78c0 4.52-3.68 8.14-8.19 8.14zm4.49-6.1c-.25-.13-1.46-.72-1.68-.8-.23-.08-.39-.13-.56.12-.16.25-.64.8-.79.97-.14.16-.29.18-.54.06-.25-.13-1.04-.38-1.98-1.22-.73-.65-1.23-1.46-1.37-1.71-.14-.25-.02-.38.11-.51.11-.11.25-.29.37-.44.13-.15.17-.25.25-.42.08-.16.04-.31-.02-.44-.06-.12-.56-1.34-.76-1.84-.2-.48-.4-.42-.56-.42l-.47-.01c-.16 0-.42.06-.64.31-.22.25-.84.82-.84 2s.86 2.32.98 2.48c.12.16 1.69 2.58 4.1 3.62.57.25 1.02.39 1.37.5.58.18 1.1.16 1.51.1.46-.07 1.46-.6 1.66-1.17.21-.58.21-1.07.15-1.17-.06-.11-.23-.17-.48-.29z\"})});const IconMessage=({color=BLUE})=>/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 3.8c-4.7 0-8.5 3.2-8.5 7.2 0 2.2 1.2 4.2 3.1 5.5-.2 1-.7 2.2-1.5 3.2 1.6-.2 3.2-.9 4.4-1.8.8.2 1.6.3 2.5.3 4.7 0 8.5-3.2 8.5-7.2S16.7 3.8 12 3.8z\",stroke:color,strokeWidth:\"1.7\",strokeLinejoin:\"round\"})});const IconInstagram=({color=\"#E1306C\"})=>/*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.2\",y:\"3.2\",width:\"17.6\",height:\"17.6\",rx:\"5\",stroke:color,strokeWidth:\"1.7\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"4\",stroke:color,strokeWidth:\"1.7\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"17\",cy:\"7\",r:\"1.15\",fill:color})]});const IconTikTok=({color=INK})=>/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:color,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M16.6 2h-2.9v13.2a2.4 2.4 0 1 1-2.4-2.4c.2 0 .4 0 .6.1v-3a5.6 5.6 0 0 0-.6 0 5.4 5.4 0 1 0 5.4 5.4V8.9a6.6 6.6 0 0 0 3.9 1.3V7.3a3.8 3.8 0 0 1-3.9-3.7V2z\"})});const IconMail=({color=MUTED})=>/*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"2.8\",y:\"5\",width:\"18.4\",height:\"14\",rx:\"2.4\",stroke:color,strokeWidth:\"1.7\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.6 6.6 12 12.6l8.4-6\",stroke:color,strokeWidth:\"1.7\",strokeLinecap:\"round\"})]});const IconArrow=({color=NAVY,size=16})=>/*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h13M12.5 5.8 18.7 12l-6.2 6.2\",stroke:color,strokeWidth:\"2.1\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});const IconClose=({color=\"#fff\"})=>/*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M6 6l12 12M18 6L6 18\",stroke:color,strokeWidth:\"2.1\",strokeLinecap:\"round\"})});// ─── Helpers ─────────────────────────────────────────────────────────\nfunction hasCookieChoice(){if(typeof window===\"undefined\")return false;try{const v=localStorage.getItem(COOKIE_STORAGE_KEY);if(v===\"accepted\"||v===\"rejected\")return true;}catch(e){}try{return new RegExp(\"(?:^|; )\"+COOKIE_NAME+\"=(accepted|rejected)\").test(document.cookie);}catch(e){}return false;}function track(event,params){if(typeof window===\"undefined\")return;try{window.gtag?.(\"event\",event,params||{});}catch(e){}try{window.fbq?.(\"trackCustom\",event,params||{});}catch(e){}}const CSS=`\n@keyframes askm-rise { from { opacity: 0; transform: translateY(14px) } to { opacity: 1; transform: none } }\n@keyframes askm-slide { from { transform: translateX(100%) } to { transform: none } }\n@keyframes askm-slide-up { from { transform: translateY(100%) } to { transform: none } }\n@keyframes askm-dot { 0%,60%,100% { opacity: .25; transform: translateY(0) } 30% { opacity: 1; transform: translateY(-3px) } }\n@keyframes askm-halo { 0%,100% { opacity: .45 } 50% { opacity: .9 } }\n.askm-btn { transition: transform .18s cubic-bezier(.16,1,.3,1), box-shadow .18s ease, background .18s ease; }\n.askm-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(11,22,74,0.16); }\n/* Tesla-style buttons everywhere: flat light grey, no lift, hover just\n   deepens the grey. Chic means calm — no translateY, no big shadows. */\n.askm-tesla { transition: background .16s ease; }\n.askm-tesla:hover { background: #ebebed !important; }\n@keyframes askm-qfade { from { opacity: 0; transform: translateY(7px) } to { opacity: 1; transform: none } }\n.askm-row { transition: background .16s ease, transform .16s ease; }\n.askm-row:hover { background: rgba(27,98,255,0.05); transform: translateX(2px); }\n.askm-chip { transition: border-color .16s ease, background .16s ease; }\n.askm-chip:hover { background: rgba(27,98,255,0.06); border-color: rgba(27,98,255,0.4); }\n.askm-scroll::-webkit-scrollbar { width: 6px }\n.askm-scroll::-webkit-scrollbar-thumb { background: rgba(11,22,74,0.16); border-radius: 4px }\n@media (prefers-reduced-motion: reduce) {\n  .askm-btn, .askm-row, .askm-chip { transition: none }\n}\n`;// ─── Light-theme rich renderer ───────────────────────────────────────\n// /ai renders on navy, so its renderer is written in light-on-dark colours\n// and cannot be reused verbatim on a white panel. The PARSING is shared\n// (parseMessage, imported) — only the paint is local.\nfunction inline(text){return text.split(/(\\*\\*[^*]+\\*\\*)/g).map((p,j)=>p.startsWith(\"**\")?/*#__PURE__*/_jsx(\"strong\",{style:{color:NAVY,fontWeight:650},children:p.slice(2,-2)},j):/*#__PURE__*/_jsx(React.Fragment,{children:p},j));}function textBlock(text){const out=[];text.split(\"\\n\").forEach((line,i)=>{if(!line.trim()){out.push(/*#__PURE__*/_jsx(\"div\",{style:{height:6}},i));return;}if(line.startsWith(\"- \")||line.startsWith(\"* \")){out.push(/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,marginBottom:4},children:[/*#__PURE__*/_jsx(\"span\",{style:{color:BLUE,flexShrink:0,lineHeight:1.6},children:\"•\"}),/*#__PURE__*/_jsx(\"span\",{style:{color:INK,lineHeight:1.6,wordBreak:\"break-word\"},children:inline(line.slice(2))})]},i));return;}out.push(/*#__PURE__*/_jsx(\"div\",{style:{color:INK,lineHeight:1.62,marginBottom:3,wordBreak:\"break-word\"},children:inline(line)},i));});return out;}function table(lines){const row=l=>l.trim().replace(/^\\|/,\"\").replace(/\\|$/,\"\").split(\"|\").map(c=>c.trim());const head=row(lines[0]);const body=lines.slice(2).map(row);const cell={padding:\"7px 9px\",borderBottom:`1px solid ${RAIL}`,fontSize:13,textAlign:\"left\",color:INK,verticalAlign:\"top\"};return /*#__PURE__*/_jsx(\"div\",{style:{overflowX:\"auto\",margin:\"8px 0\",border:`1px solid ${RAIL}`,borderRadius:12},children:/*#__PURE__*/_jsxs(\"table\",{style:{borderCollapse:\"collapse\",width:\"100%\",minWidth:260},children:[/*#__PURE__*/_jsx(\"thead\",{children:/*#__PURE__*/_jsx(\"tr\",{children:head.map((h,i)=>/*#__PURE__*/_jsx(\"th\",{style:{...cell,background:\"rgba(11,22,74,0.04)\",fontWeight:650,color:NAVY,whiteSpace:\"nowrap\"},children:inline(h)},i))})}),/*#__PURE__*/_jsx(\"tbody\",{children:body.map((r,i)=>/*#__PURE__*/_jsx(\"tr\",{children:r.map((c,j)=>/*#__PURE__*/_jsx(\"td\",{style:cell,children:inline(c)},j))},i))})]})});}function actionButton(label,url,key){// Button URLs come from model output, which a crafted ?q= link can steer,\n// so only same-site paths and https are allowed through — never\n// javascript:/data:.\nif(!(url.startsWith(\"/\")||url.startsWith(\"https://\")))return null;const external=url.startsWith(\"https://\");return /*#__PURE__*/_jsxs(\"a\",{href:url,target:external?\"_blank\":\"_self\",rel:external?\"noopener noreferrer\":undefined,className:\"askm-btn\",onClick:()=>track(\"ask_medently_ai_button\",{label,url}),style:{display:\"inline-flex\",alignItems:\"center\",gap:6,padding:\"9px 15px\",background:NAVY,color:\"#fff\",borderRadius:100,fontSize:13.5,fontWeight:600,textDecoration:\"none\",boxShadow:\"0 3px 12px rgba(11,22,74,0.22)\"},children:[label,/*#__PURE__*/_jsx(IconArrow,{color:\"#fff\",size:14})]},key);}function rich(text){const parts=parseMessage(text);const buttons=parts.filter(p=>p.type===\"button\");const rest=parts.filter(p=>p.type!==\"button\");return /*#__PURE__*/_jsxs(_Fragment,{children:[rest.map((p,i)=>/*#__PURE__*/_jsx(\"div\",{children:p.type===\"table\"?table(p.content):textBlock(p.content)},i)),buttons.length>0&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8,marginTop:10},children:buttons.map((b,i)=>actionButton(b.content.label,b.content.url,i))})]});}const Typing=()=>/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:4,padding:\"6px 2px\"},children:[0,1,2].map(i=>/*#__PURE__*/_jsx(\"span\",{style:{width:6,height:6,borderRadius:\"50%\",background:BLUE,animation:`askm-dot 1.1s ${i*.15}s infinite ease-in-out`}},i))});// ─── Component ───────────────────────────────────────────────────────\nexport default function AskMedently(props){const{forceVisible=false}=props||{};const[mounted,setMounted]=useState(false);const[allowed,setAllowed]=useState(false);/* How far to sit above the bottom edge: the height of whatever else is\n       already pinned there (the cookie banner, a page's own sticky CTA). 0 =\n       nothing in the way. */const[lift,setLift]=useState(0);/* True when something else down there is already offering an Apply-style\n       button, so we drop ours and show only the chat button. */const[theirCta,setTheirCta]=useState(false);/* Saif: \"after you have passed the hero, where news starts, I want this\n       thing to show up\" — so it stays out of the way of the hero's own CTAs. */const[past,setPast]=useState(false);const[norsk,setNorsk]=useState(false);const[mobile,setMobile]=useState(false);/* Tablets keep the desktop pair but at the phone's compact height —\n       Saif, 19 Aug: the bar \"is taking up a lot of space\" on phone + tablet. */const[tablet,setTablet]=useState(false);const[view,setView]=useState(\"bar\");const[messages,setMessages]=useState([]);const[input,setInput]=useState(\"\");const[loading,setLoading]=useState(false);/* The proxy answers with a friendly \"too many people\" line when its\n       providers are throttled. That is not an answer, so when we see it we put\n       the human channels directly under the composer instead of leaving the\n       student staring at an apology. */const[busy,setBusy]=useState(false);/* true only on the Denmark page, which swaps the wide button for WhatsApp */const[danmark,setDanmark]=useState(false);const scrollRef=useRef(null);const taRef=useRef(null);const menuRef=useRef(null);const t=norsk?COPY.no:COPY.en;const quick=norsk?QUICK.no:QUICK.en;const qs=norsk?ASK_QS.no:ASK_QS.en;/* Desktop: the popular questions circulate inside the Ask control. */const[qi,setQi]=useState(0);useEffect(()=>{if(mobile)return;const id=setInterval(()=>setQi(i=>i+1),4e3);return()=>clearInterval(id);},[mobile]);// Path + viewport + consent, all read after mount. Reading location during\n// render would hydrate the wrong language on the Norwegian pages.\nuseEffect(()=>{setMounted(true);const path=(window.location.pathname||\"/\").replace(/\\/+$/,\"\")||\"/\";setAllowed(!HIDDEN_PREFIXES.some(p=>path===p||path.startsWith(p)));setNorsk(NO_PREFIXES.some(p=>path===p||path.startsWith(p)));setDanmark(path===DK_PATH);// 700, not 900: above this the full-width bar stretches the channel\n// rows into whitespace. Tablets get the floating pair instead.\nconst mq=window.matchMedia(\"(max-width: 699px)\");const onMq=()=>setMobile(mq.matches);onMq();mq.addEventListener?.(\"change\",onMq);const mqT=window.matchMedia(\"(min-width: 700px) and (max-width: 1023px)\");const onMqT=()=>setTablet(mqT.matches);onMqT();mqT.addEventListener?.(\"change\",onMqT);/* Measure everything else pinned to the bottom of the viewport and sit\n           above it. This is what stops us covering a page's own button — the\n           bug Saif hit on his phone. We do NOT wait for the cookie banner any\n           more: gating on consent is why the bar never appeared for him. */const measure=()=>{let tallest=0;let sawCta=false;const els=document.querySelectorAll(\"body *\");for(let k=0;k<els.length;k++){const el=els[k];if(el.closest(\"[data-askm]\"))continue;// never measure ourselves\nconst cs=getComputedStyle(el);if(cs.position!==\"fixed\"&&cs.position!==\"sticky\")continue;if(cs.visibility===\"hidden\"||cs.opacity===\"0\")continue;const r=el.getBoundingClientRect();if(r.width<120||r.height<24)continue;if(r.height>window.innerHeight*.6)continue;// a pinned section, not a bar\nconst gap=window.innerHeight-r.bottom;/* ⚠ 40, not 8. The university pages float their bar 14px off\n                   the bottom and the country guides 12px — an 8px window\n                   missed both, which is how we ended up sitting on top of\n                   them. Anything within 40px of the bottom edge counts as\n                   occupying that spot. */if(gap>40||gap<-8)continue;tallest=Math.max(tallest,r.height+Math.max(0,gap)+10);const txt=(el.innerText||\"\").toLowerCase();if(/apply|søk|sign in|logg inn/.test(txt))sawCta=true;}setLift(tallest);setTheirCta(sawCta);};const onScroll=()=>{setPast(window.scrollY>window.innerHeight*.72);};onScroll();let tScroll=null;let tScroll2=null;const scrollHandler=()=>{onScroll();clearTimeout(tScroll);tScroll=setTimeout(measure,180)// sticky CTAs appear mid-scroll\n;/* Second pass once any slide-in transition has finished. One pass\n               at 180ms could land while another bar was still animating in\n               (opacity 0) and miss it — that is how Saif got two Apply\n               buttons stacked on a university page, 19 Aug. */clearTimeout(tScroll2);tScroll2=setTimeout(measure,750);};window.addEventListener(\"scroll\",scrollHandler,{passive:true});window.addEventListener(\"resize\",measure);window.addEventListener(\"cookies:accepted\",measure);window.addEventListener(\"cookies:rejected\",measure);/* Banners animate in after first paint, so measure a few times early\n           instead of trusting one reading. */const timers=[0,400,1200,2600].map(ms=>setTimeout(measure,ms));try{const saved=sessionStorage.getItem(STORE_KEY);if(saved)setMessages(JSON.parse(saved));}catch(e){}return()=>{mq.removeEventListener?.(\"change\",onMq);mqT.removeEventListener?.(\"change\",onMqT);window.removeEventListener(\"scroll\",scrollHandler);window.removeEventListener(\"resize\",measure);window.removeEventListener(\"cookies:accepted\",measure);window.removeEventListener(\"cookies:rejected\",measure);timers.forEach(clearTimeout);clearTimeout(tScroll);clearTimeout(tScroll2);};},[]);// Keep the conversation across page navigations — a student who asks a\n// question, then clicks an action button, should not lose the thread.\nuseEffect(()=>{if(!messages.length)return;try{sessionStorage.setItem(STORE_KEY,JSON.stringify(messages.slice(-20)));}catch(e){}},[messages]);useEffect(()=>{if(scrollRef.current)scrollRef.current.scrollTop=scrollRef.current.scrollHeight;},[messages,loading,view]);useEffect(()=>{if(taRef.current){taRef.current.style.height=\"auto\";taRef.current.style.height=Math.min(taRef.current.scrollHeight,120)+\"px\";}},[input]);// Escape closes, click-outside closes the menu (not the drawer — a\n// stray click while reading an answer should not throw it away).\nuseEffect(()=>{if(view===\"bar\")return;const onKey=e=>{if(e.key===\"Escape\")setView(\"bar\");};const onClick=e=>{if(view!==\"menu\")return;const target=e.target;/* ⛔ The launcher is NOT \"outside\". Without this, mousedown closed\n               the menu a beat before the button's own click re-opened it, so\n               tapping the chat button a second time looked like it did\n               nothing — exactly the bug Saif reported. */if(target&&target.closest&&target.closest('[data-askm=\"bar\"]'))return;if(menuRef.current&&!menuRef.current.contains(e.target))setView(\"bar\");};window.addEventListener(\"keydown\",onKey);window.addEventListener(\"mousedown\",onClick);return()=>{window.removeEventListener(\"keydown\",onKey);window.removeEventListener(\"mousedown\",onClick);};},[view]);const send=useCallback(async text=>{const msg=(text??input).trim();if(!msg||loading)return;const next=[...messages,{role:\"user\",content:msg}];setMessages(next);setInput(\"\");setLoading(true);track(\"ask_medently_ai_message\",{count:next.filter(m=>m.role===\"user\").length});const fallback=norsk?`Beklager, noe gikk galt hos oss. Pr\\xf8v igjen om et \\xf8yeblikk, eller ta kontakt p\\xe5 WhatsApp: ${WHATSAPP_DISPLAY}\n\n[BUTTON:WhatsApp oss|${WHATSAPP_URL}]`:`Sorry, something went wrong on our side. Please try again in a moment, or reach us on WhatsApp: ${WHATSAPP_DISPLAY}\n\n[BUTTON:WhatsApp Us|${WHATSAPP_URL}]`;try{const res=await fetch(PROXY_URL,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({model:\"claude-haiku-4-5-20251001\",max_tokens:700,system:SYSTEM+PANEL_ADDENDUM+todayLine(),messages:next.map(m=>({role:m.role,content:m.content}))})});if(!res.ok)throw new Error(\"proxy_\"+res.status);const data=await res.json();const reply=data?.content?.[0]?.text;setBusy(/too many people|too much traffic|try again in a moment/i.test(reply||\"\"));setMessages(prev=>[...prev,{role:\"assistant\",content:reply||fallback}]);}catch(e){setBusy(true);setMessages(prev=>[...prev,{role:\"assistant\",content:fallback}]);}setLoading(false);},[input,loading,messages,norsk]);const openMenu=()=>{setView(\"menu\");track(\"ask_medently_open\");};const openChat=()=>{setView(\"chat\");track(\"ask_medently_channel\",{channel:\"ai\"});setTimeout(()=>taRef.current?.focus(),260);};if(!mounted||!allowed)return null;// Hidden over the hero, revealed once they scroll into the page.\nif(!past&&!forceVisible&&view===\"bar\")return null;// ── The bar ──────────────────────────────────────────────────────\n/* Phone launcher = a Tesla-grey square around the green symbol (Saif,\n       19 Aug evening: \"make a box around the message thing\" — this reverses\n       his bare-symbol ask from earlier the same day; the box won). Matches\n       Tesla's small square icon button from his own screenshot. */const squareBtn={width:48,height:44,flexShrink:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"#f4f4f5\",border:\"1px solid rgba(11,22,74,0.22)\",borderRadius:10,cursor:\"pointer\",padding:0,pointerEvents:\"auto\"};/* Desktop launcher = Tesla's exact pattern (his screenshot, 19 Aug):\n       a flat light-grey field — chat icon, bold \"Ask a question\", then the\n       circulating question in quotes, greyed like a placeholder. */const askBtn={height:tablet?44:52,flexShrink:0,display:\"flex\",alignItems:\"center\",gap:10,padding:\"0 18px\",width:\"min(480px, 44vw)\",background:\"#f4f4f5\",/* 0.22, not 0.06 — Saif, 19 Aug: \"the borders are really vague, make\n           them a little bit darker\". */border:\"1px solid rgba(11,22,74,0.22)\",borderRadius:10,cursor:\"pointer\",fontFamily:FONT,fontSize:15.5,fontWeight:650,color:NAVY,textAlign:\"left\",whiteSpace:\"nowrap\",boxSizing:\"border-box\",pointerEvents:\"auto\"};/* Tesla's right-hand button, ours says Apply now. Same flat grey, blue\n       arrow for the accent the way Tesla's steering wheel is blue. */const applyBtn={height:tablet?44:52,flexShrink:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:9,padding:\"0 22px\",background:\"#f4f4f5\",border:\"1px solid rgba(11,22,74,0.22)\",borderRadius:10,cursor:\"pointer\",textDecoration:\"none\",color:NAVY,fontFamily:FONT,fontSize:15.5,fontWeight:650,whiteSpace:\"nowrap\",boxSizing:\"border-box\",pointerEvents:\"auto\"};/* Phone Apply — homogeneous with the desktop Tesla buttons (Saif,\n       19 Aug): same flat grey, same visible border, navy text, blue arrow.\n       The blue-filled pill is retired. */const wideBtn={height:44,flex:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:9,padding:\"0 18px\",background:\"#f4f4f5\",border:\"1px solid rgba(11,22,74,0.22)\",borderRadius:10,cursor:\"pointer\",textDecoration:\"none\",color:NAVY,fontFamily:FONT,fontSize:15.5,fontWeight:650,whiteSpace:\"nowrap\",boxSizing:\"border-box\",pointerEvents:\"auto\"};const bar=/*#__PURE__*/_jsxs(\"div\",{\"data-askm\":\"bar\",style:{position:\"fixed\",zIndex:950,fontFamily:FONT,animation:\"askm-rise .45s cubic-bezier(.16,1,.3,1)\",/* A transparent full-width strip must not swallow clicks on\n                   the page behind it — the buttons re-enable themselves. */pointerEvents:theirCta?\"none\":\"auto\",/* Both breakpoints are a FULL-WIDTH sticky bottom bar like\n                   tesla.com's (Saif, 19 Aug: \"make a sticky bar like Tesla.com\n                   has — I like their bar better\", after the floating pair).\n                   Desktop keeps the buttons on the right side of the strip.\n                   When another element owns the bottom (theirCta), the strip\n                   goes transparent and only the chat launcher shows. */...mobile?{left:0,right:0,bottom:lift,display:\"flex\",gap:10,padding:\"6px 10px calc(6px + env(safe-area-inset-bottom)) 10px\",justifyContent:theirCta?\"flex-end\":\"stretch\",background:theirCta?\"transparent\":\"rgba(255,255,255,0.92)\",backdropFilter:theirCta?\"none\":\"blur(14px)\",WebkitBackdropFilter:theirCta?\"none\":\"blur(14px)\",borderTop:theirCta?\"none\":`1px solid ${RAIL}`}:{/* Centered like Tesla's — \"I want it to be in the\n                             middle\" (Saif, 19 Aug, third time's the charm). */left:0,right:0,bottom:lift,display:\"flex\",gap:14,alignItems:\"center\",justifyContent:\"center\",padding:tablet?\"6px 20px\":\"10px 24px\",background:theirCta?\"transparent\":\"rgba(255,255,255,0.92)\",backdropFilter:theirCta?\"none\":\"blur(14px)\",WebkitBackdropFilter:theirCta?\"none\":\"blur(14px)\",borderTop:theirCta?\"none\":`1px solid ${RAIL}`}},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"askm-tesla\",style:mobile?squareBtn:askBtn,onClick:()=>view===\"menu\"?setView(\"bar\"):openMenu(),\"aria-label\":view===\"menu\"?t.close:t.ask,\"aria-expanded\":view===\"menu\",children:mobile?view===\"menu\"?/*#__PURE__*/_jsx(IconClose,{color:NAVY}):/*#__PURE__*/_jsx(IconChatFill,{size:22}):/*#__PURE__*/_jsxs(_Fragment,{children:[view===\"menu\"?/*#__PURE__*/_jsx(IconClose,{color:NAVY}):/*#__PURE__*/_jsx(IconChatFill,{size:20}),/*#__PURE__*/_jsx(\"span\",{style:{flexShrink:0},children:t.ask}),/*#__PURE__*/_jsx(\"span\",{style:{flex:1,minWidth:0,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\",color:\"#6b7280\",fontWeight:450,fontSize:15,animation:\"askm-qfade .5s ease\"},children:\"“\"+qs[qi%qs.length]+\"”\"},qi)]})}),!theirCta&&/*#__PURE__*/_jsxs(\"a\",{href:danmark?DK_WHATSAPP:\"/apply\",target:danmark?\"_blank\":undefined,rel:danmark?\"noopener\":undefined,className:\"askm-tesla\",style:mobile?wideBtn:applyBtn,onClick:()=>track(danmark?\"ask_medently_danmark_whatsapp\":\"ask_medently_apply\",{source:\"bar\"}),children:[danmark?t.dkCta:t.apply,/*#__PURE__*/_jsx(IconArrow,{color:BLUE})]})]});// ── The channel menu ─────────────────────────────────────────────\nconst rowStyle={display:\"flex\",alignItems:\"center\",gap:13,padding:\"13px 16px\",textDecoration:\"none\",borderTop:`1px solid ${RAIL}`,cursor:\"pointer\",background:\"transparent\",border:\"none\",borderTopWidth:1,borderTopStyle:\"solid\",borderTopColor:RAIL,width:\"100%\",textAlign:\"left\",fontFamily:FONT,boxSizing:\"border-box\"};const Row=({icon,label,sub,href,onClick,channel,accent})=>{const inner=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{style:{width:38,height:38,borderRadius:11,flexShrink:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:accent?\"rgba(201,155,60,0.12)\":\"rgba(11,22,74,0.04)\",border:`1px solid ${accent?\"rgba(201,155,60,0.3)\":RAIL}`},children:icon}),/*#__PURE__*/_jsxs(\"span\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontSize:16.5,fontWeight:600,color:INK,lineHeight:1.3},children:label}),sub&&/* Black, not grey — Saif, 19 Aug: \"make that grey text black\". *//*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontSize:13.5,color:INK,lineHeight:1.35,marginTop:1},children:sub})]}),/*#__PURE__*/_jsx(IconArrow,{color:accent?GOLD:\"rgba(11,22,74,0.35)\",size:17})]});const handle=()=>{track(\"ask_medently_channel\",{channel});onClick?.();};if(href){const external=href.startsWith(\"http\");return /*#__PURE__*/_jsx(\"a\",{className:\"askm-row\",style:rowStyle,href:href,target:external?\"_blank\":undefined,rel:external?\"noopener noreferrer\":undefined,onClick:handle,children:inner});}return /*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"askm-row\",style:rowStyle,onClick:handle,children:inner});};const menu=view===\"menu\"&&/*#__PURE__*/_jsxs(\"div\",{ref:menuRef,role:\"dialog\",\"aria-label\":t.menuTitle,style:{position:\"fixed\",zIndex:960,fontFamily:FONT,background:\"#fff\",border:`1px solid ${RAIL}`,borderRadius:18,boxShadow:\"0 18px 60px rgba(11,22,74,0.18), 0 3px 10px rgba(11,22,74,0.08)\",overflow:\"hidden\",animation:\"askm-rise .32s cubic-bezier(.16,1,.3,1)\",...mobile?{left:12,right:12,maxWidth:420,marginLeft:\"auto\",bottom:`calc(68px + env(safe-area-inset-bottom) + ${lift}px)`}:/* Centered above the centered launcher. marginLeft, not\n                         transform — askm-rise animates transform and would\n                         yank the card sideways when it finished. */{left:\"50%\",marginLeft:-186,bottom:90+lift,width:372}},children:[/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"17px 16px 14px\",display:\"flex\",alignItems:\"flex-start\",gap:10},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:19,fontWeight:650,color:NAVY,letterSpacing:\"-0.01em\"},children:t.menuTitle}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14.5,color:INK,marginTop:3,lineHeight:1.4},children:t.menuSub})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>setView(\"bar\"),\"aria-label\":t.close,style:{width:34,height:34,flexShrink:0,borderRadius:10,border:`1px solid ${RAIL}`,background:\"#fff\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:0},children:/*#__PURE__*/_jsx(IconClose,{color:NAVY})})]}),/*#__PURE__*/_jsx(Row,{icon:/*#__PURE__*/_jsx(IconSpark,{}),label:t.ai,sub:t.aiSub,onClick:openChat,channel:\"ai\",accent:true}),/*#__PURE__*/_jsx(Row,{icon:/*#__PURE__*/_jsx(IconWhatsApp,{}),label:t.whatsapp,sub:WHATSAPP_DISPLAY+\" — \"+t.human,href:WHATSAPP_URL,channel:\"whatsapp\"}),/*#__PURE__*/_jsx(Row,{icon:/*#__PURE__*/_jsx(IconMessage,{}),label:t.sms,sub:SMS_DISPLAY+\" — \"+t.human,href:`sms:${SMS_NUMBER}`,channel:\"sms\"}),/*#__PURE__*/_jsx(Row,{icon:/*#__PURE__*/_jsx(IconInstagram,{}),label:t.instagram,sub:t.instagramSub,href:INSTAGRAM_URL,channel:\"instagram\"}),/*#__PURE__*/_jsx(Row,{icon:/*#__PURE__*/_jsx(IconTikTok,{}),label:t.tiktok,sub:t.tiktokSub,href:TIKTOK_URL,channel:\"tiktok\"}),/*#__PURE__*/_jsx(Row,{icon:/*#__PURE__*/_jsx(IconMail,{}),label:t.email,sub:EMAIL,href:`mailto:${EMAIL}`,channel:\"email\"})]});// ── The AI drawer ────────────────────────────────────────────────\nconst lastUser=[...messages].reverse().find(m=>m.role===\"user\");const fullChatHref=\"/ai\"+(lastUser?\"?q=\"+encodeURIComponent(lastUser.content):\"\");const drawer=view===\"chat\"&&/*#__PURE__*/_jsxs(\"div\",{role:\"dialog\",\"aria-label\":t.aiTitle,style:{position:\"fixed\",zIndex:970,fontFamily:FONT,background:\"#fff\",display:\"flex\",flexDirection:\"column\",boxShadow:\"-18px 0 60px rgba(11,22,74,0.16)\",...mobile?{inset:0,animation:\"askm-slide-up .34s cubic-bezier(.16,1,.3,1)\"}:{top:0,right:0,bottom:0,width:420,maxWidth:\"100vw\",borderLeft:`1px solid ${RAIL}`,animation:\"askm-slide .34s cubic-bezier(.16,1,.3,1)\"}},children:[/*#__PURE__*/_jsxs(\"div\",{style:{background:NAVY,color:\"#fff\",padding:mobile?\"calc(14px + env(safe-area-inset-top)) 16px 14px\":\"16px 16px 15px\",display:\"flex\",alignItems:\"center\",gap:12,flexShrink:0},children:[/*#__PURE__*/_jsx(\"span\",{style:{width:38,height:38,borderRadius:11,background:\"rgba(255,255,255,0.1)\",border:\"1px solid rgba(255,255,255,0.18)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0},children:/*#__PURE__*/_jsx(IconSpark,{color:GOLD})}),/*#__PURE__*/_jsxs(\"span\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontSize:17.5,fontWeight:650,lineHeight:1.25},children:t.aiTitle}),/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",alignItems:\"center\",gap:6,fontSize:13,color:\"rgba(255,255,255,0.7)\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{width:7,height:7,borderRadius:\"50%\",background:\"#39d98a\",animation:\"askm-halo 2.4s infinite ease-in-out\"}}),t.aiStatus]})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>setView(\"menu\"),\"aria-label\":t.back,style:{background:\"rgba(255,255,255,0.1)\",border:\"none\",borderRadius:9,width:34,height:34,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0},children:/*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M14 6l-6 6 6 6\",stroke:\"#fff\",strokeWidth:\"2.1\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>setView(\"bar\"),\"aria-label\":t.close,style:{background:\"rgba(255,255,255,0.1)\",border:\"none\",borderRadius:9,width:34,height:34,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0},children:/*#__PURE__*/_jsx(IconClose,{})})]}),/*#__PURE__*/_jsxs(\"div\",{ref:scrollRef,className:\"askm-scroll\",style:{flex:1,overflowY:\"auto\",padding:\"16px 16px 8px\",background:\"#fff\",minHeight:0},children:[messages.length===0&&/*#__PURE__*/_jsxs(\"div\",{style:{animation:\"askm-rise .4s cubic-bezier(.16,1,.3,1)\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:20,fontWeight:650,color:NAVY,letterSpacing:\"-0.01em\"},children:t.greeting}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:15.5,color:INK,lineHeight:1.55,marginTop:6},children:t.greetingSub}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8,marginTop:16},children:quick.map((q,i)=>/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"askm-chip\",onClick:()=>send(q.prompt),style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:10,padding:\"12px 14px\",background:\"#fff\",border:`1px solid ${RAIL}`,borderRadius:12,cursor:\"pointer\",fontFamily:FONT,fontSize:15.5,fontWeight:550,color:INK,textAlign:\"left\"},children:[q.label,/*#__PURE__*/_jsx(IconArrow,{color:BLUE,size:15})]},i))})]}),messages.map((m,i)=>m.role===\"user\"?/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",justifyContent:\"flex-end\",marginBottom:14},children:/*#__PURE__*/_jsx(\"div\",{style:{background:NAVY,color:\"#fff\",padding:\"10px 14px\",borderRadius:\"16px 16px 4px 16px\",fontSize:15.5,lineHeight:1.5,maxWidth:\"86%\",wordBreak:\"break-word\"},children:m.content})},i):/*#__PURE__*/_jsx(\"div\",{style:{marginBottom:18,fontSize:15.5},children:rich(m.content)},i)),loading&&/*#__PURE__*/_jsx(Typing,{})]}),busy&&/*#__PURE__*/_jsxs(\"div\",{style:{flexShrink:0,borderTop:`1px solid ${RAIL}`,background:\"rgba(201,155,60,0.07)\",padding:\"10px 12px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13.5,color:MUTED,marginBottom:8},children:t.busy}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:8},children:[{label:t.whatsapp,href:WHATSAPP_URL,ch:\"whatsapp\"},{label:t.sms,href:`sms:${SMS_NUMBER}`,ch:\"sms\"},{label:t.email,href:`mailto:${EMAIL}`,ch:\"email\"}].map(c=>/*#__PURE__*/_jsx(\"a\",{href:c.href,target:c.href.startsWith(\"http\")?\"_blank\":undefined,rel:c.href.startsWith(\"http\")?\"noopener noreferrer\":undefined,onClick:()=>track(\"ask_medently_channel\",{channel:c.ch,from:\"busy\"}),style:{flex:1,textAlign:\"center\",padding:\"9px 6px\",borderRadius:10,border:`1px solid ${RAIL}`,background:\"#fff\",color:NAVY,fontSize:14,fontWeight:600,textDecoration:\"none\"},children:c.label},c.ch))})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flexShrink:0,borderTop:`1px solid ${RAIL}`,padding:mobile?\"10px 12px calc(10px + env(safe-area-inset-bottom))\":\"10px 12px 12px\",background:\"#fff\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-end\",gap:8,border:`1px solid ${RAIL}`,borderRadius:14,padding:\"8px 8px 8px 14px\",background:\"#fff\"},children:[/*#__PURE__*/_jsx(\"textarea\",{ref:taRef,value:input,onChange:e=>setInput(e.target.value),onKeyDown:e=>{if(e.key===\"Enter\"&&!e.shiftKey){e.preventDefault();send();}},placeholder:t.placeholder,rows:1,style:{flex:1,border:\"none\",outline:\"none\",resize:\"none\",background:\"transparent\",fontFamily:FONT,fontSize:16,lineHeight:1.5,color:INK,maxHeight:120,minWidth:0,padding:\"3px 0\"}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>send(),disabled:!input.trim()||loading,\"aria-label\":\"Send\",style:{width:36,height:36,borderRadius:10,flexShrink:0,border:\"none\",background:input.trim()&&!loading?NAVY:\"rgba(11,22,74,0.1)\",cursor:input.trim()&&!loading?\"pointer\":\"not-allowed\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsxs(\"svg\",{width:\"15\",height:\"15\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"#fff\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 5.25v13.5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M18.75 12L12 5.25 5.25 12\"})]})})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:10,marginTop:10},children:[/*#__PURE__*/_jsxs(\"a\",{href:\"/apply\",onClick:()=>track(\"ask_medently_apply\",{source:\"drawer\"}),style:{flex:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,height:46,background:NAVY,color:\"#fff\",borderRadius:12,textDecoration:\"none\",fontSize:16.5,fontWeight:600},children:[t.apply,/*#__PURE__*/_jsx(IconArrow,{color:GOLD})]}),/*#__PURE__*/_jsxs(\"a\",{href:fullChatHref,onClick:()=>track(\"ask_medently_fullchat\"),style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",height:46,padding:\"0 14px\",border:`1px solid ${RAIL}`,borderRadius:12,color:NAVY,textDecoration:\"none\",fontSize:15,fontWeight:550,whiteSpace:\"nowrap\"},children:[t.fullChat,\" ↗\"]})]}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:11.5,color:\"rgba(11,22,74,0.4)\",textAlign:\"center\",marginTop:8},children:t.disclaimer})]})]});return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),view!==\"chat\"&&bar,menu,drawer]}),document.body);}addPropertyControls(AskMedently,{forceVisible:{type:ControlType.Boolean,title:\"Force visible\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AskMedently\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @framerSupportedLayoutWidth any\n// @framerSupportedLayoutHeight any\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls}from\"framer\";import AskMedently from\"https://framerusercontent.com/modules/j8t9VDIFiuoIBZZmeXdd/gTQK5AG0jlgqfMNgY2bG/AskMedently.js\";// ─── Brand constants ──────────────────────────────────────────────\nconst NAVY=\"#0d1b3e\";const BLUE=\"#3861f9\";const TEXT=\"#5b6478\";const BORDER=\"#e3e7ef\";const ICON_BG=\"#e8edff\";const BG=\"#f4f6fb\";const LOGO_SRC=\"https://plain-weur-prod-public.komododecks.com/202605/07/jVKjNlVscnzwQVWdicJm/image.png\";const PHONES=[{display:\"+47 94 880 185\",link:\"tel:+4794880185\"},{display:\"+421 949 104 999\",link:\"tel:+421949104999\"}];const EMAIL=\"agent@medently.com\";const WHATSAPP=\"https://api.whatsapp.com/send/?phone=421949104999&text=Hey+Medently%21+Can+you+help+me+applying+to+medical+%2F+dental+universities+for+free%3F&type=phone_number&app_absent=0\";const INSTAGRAM=\"https://www.instagram.com/medently_eu/\";const TIKTOK=\"https://www.tiktok.com/@medently.com\";const YOUTUBE=\"https://www.youtube.com/@MEDENTLY\";const QUICK_LINKS=[{label:\"Universities\",href:\"/universities\"},{label:\"Programs\",href:\"/programs\"},{label:\"Medicine\",href:\"/programs/medicine\"},{label:\"Dentistry\",href:\"/programs/dentistry\"},{label:\"Exam Dates\",href:\"/exams\"},{label:\"How to Apply\",href:\"/howtoapply\"},{label:\"Our Team\",href:\"/our-team\"},/* /reviews used to be a top-level nav item. It now lives inside the About Us\n       mega menu, which only exists in the DOM while it is open — so the footer is\n       the page's only always-rendered link to it. Do not remove. */{label:\"Student Reviews\",href:\"/reviews\"},{label:\"For Norwegian Students\",href:\"/for-norske-studenter\"},{label:\"Apply\",href:\"/apply\"},{label:\"Privacy Policy\",href:\"/privacy-policy\"}];const GUIDE_LINKS=[{label:\"UPJŠ Entrance Exam\",href:\"/exams/upjs\"},{label:\"UPJŠ Exam Results\",href:\"/exams/upjs/results\"},{label:\"Notarising your diploma for UPJŠ\",href:\"/notarization-upjs\"},/* ⏰ SEASONAL — the two September pages carry the 2026 sittings (UPJŠ 5 Sep,\n       NCU 8 + 23 Sep, RSU window from 1 Sep). They are the footer's only link,\n       and they go stale after 23 September 2026: repoint them at the next\n       intake then, or drop these two lines. */{label:\"September 2026 intake\",href:\"/september-2026-intake\"},{label:\"Septemberopptak 2026\",href:\"/september-2026-opptak\"},{label:\"Study at RSU in Riga\",href:\"/universities/rsu\"},{label:\"How to get into RSU\",href:\"/admission/rsu\"},{label:\"Medicine in Cyprus (UNIC)\",href:\"/universities/unic\"},{label:\"Study at NCU in Bydgoszcz\",href:\"/universities/ncu\"},{label:\"Study Medicine in Slovakia\",href:\"/study-medicine-in-slovakia\"},{label:\"Housing in Košice\",href:\"/housing-in-kosice\"},{label:\"Study Medicine in Czechia\",href:\"/study-medicine-in-czech-republic\"},{label:\"Study Medicine in Germany\",href:\"/study-medicine-in-germany\"},{label:\"Study Medicine in Latvia\",href:\"/study-medicine-in-latvia\"},{label:\"Study Medicine in Poland\",href:\"/study-medicine-in-poland\"},{label:\"Study Medicine in Cyprus\",href:\"/study-medicine-in-cyprus\"},{label:\"Top Medical Schools in Europe\",href:\"/blog/top-medical-universities-in-europe-taught-in-english\"},{label:\"Transfer to a European University\",href:\"/transfer\"},{label:\"Studer tannlege i utlandet\",href:\"/studer-tannlege-i-utlandet\"},{label:\"Medisin uten realfag\",href:\"/for-norske-studenter/medisin-uten-realfag\"},{label:\"S\\xf8knadsfrister 2026\",href:\"/soknadsfrister\"}];// ─── Cookie persistence ───────────────────────────────────────────\n// We store the user's choice in TWO places: localStorage AND a real\n// first-party cookie. Why both:\n//\n//  • localStorage is convenient and fast, but Safari's Intelligent\n//    Tracking Prevention can wipe it after ~7 days of inactivity,\n//    and it's scoped to one exact origin (so the apex and `www.`\n//    subdomain have separate storage).\n//  • A cookie set with `Domain=.medently.com` is shared between\n//    `medently.com` and `www.medently.com`, and survives ITP\n//    eviction better.\n//\n// On read we check both — if either one says \"accepted\" or\n// \"rejected\", the banner stays hidden.\nconst COOKIE_STORAGE_KEY=\"medently-cookies-v1\";const COOKIE_STORAGE_AT_KEY=\"medently-cookies-v1-at\";const COOKIE_NAME=\"medently_cookies_v1\";// A choice lasts 7 days, then the banner asks again — this is also how a\n// visitor can change their mind (GDPR withdrawal without a settings UI).\nconst COOKIE_MAX_AGE=60*60*24*7// 7 days\n;const CHOICE_TTL_MS=COOKIE_MAX_AGE*1e3;function cookieDomainAttr(){if(typeof window===\"undefined\")return\"\";const host=window.location.hostname;// Don't set Domain on localhost, IP addresses, or Framer preview hosts —\n// the cookie just sticks to the current host in those cases.\nif(host===\"localhost\"||host.endsWith(\".framer.website\")||host.endsWith(\".framer.app\")||/^\\d+\\.\\d+\\.\\d+\\.\\d+$/.test(host)){return\"\";}const parts=host.split(\".\");if(parts.length<2)return\"\";// Last two labels (e.g. \"medently.com\"), so the cookie is shared\n// between www.medently.com and medently.com.\nconst apex=parts.slice(-2).join(\".\");return\"; Domain=.\"+apex;}function readCookieChoice(){if(typeof window===\"undefined\")return null;// Try localStorage first (fast, larger quota). Entries older than the TTL\n// are treated as absent so the banner re-asks — localStorage never expires\n// by itself, unlike the cookie.\ntry{const v=localStorage.getItem(COOKIE_STORAGE_KEY);if(v===\"accepted\"||v===\"rejected\"){const at=Number(localStorage.getItem(COOKIE_STORAGE_AT_KEY)||0);if(at&&Date.now()-at>CHOICE_TTL_MS){try{localStorage.removeItem(COOKIE_STORAGE_KEY);localStorage.removeItem(COOKIE_STORAGE_AT_KEY);}catch(_){}}else{return v;}}}catch(e){}// Fall back to the real cookie (survives Safari ITP / different subdomains).\ntry{const m=document.cookie.match(new RegExp(\"(?:^|; )\"+COOKIE_NAME+\"=([^;]+)\"));if(m){const v=decodeURIComponent(m[1]);if(v===\"accepted\"||v===\"rejected\"){// Mirror back to localStorage so subsequent checks short-circuit.\n// The timestamp comes along, otherwise the mirrored value\n// would never expire once the cookie itself has died.\ntry{localStorage.setItem(COOKIE_STORAGE_KEY,v);if(!localStorage.getItem(COOKIE_STORAGE_AT_KEY))localStorage.setItem(COOKIE_STORAGE_AT_KEY,String(Date.now()));}catch(_){}return v;}}}catch(e){}return null;}function writeCookieChoice(value){if(typeof window===\"undefined\")return;try{localStorage.setItem(COOKIE_STORAGE_KEY,value);localStorage.setItem(COOKIE_STORAGE_AT_KEY,String(Date.now()));}catch(e){}try{const secure=window.location.protocol===\"https:\"?\"; Secure\":\"\";document.cookie=COOKIE_NAME+\"=\"+encodeURIComponent(value)+\"; Path=/\"+\"; Max-Age=\"+COOKIE_MAX_AGE+\"; SameSite=Lax\"+secure+cookieDomainAttr();}catch(e){}}// ─── Icons ────────────────────────────────────────────────────────\nconst PhoneIcon=/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:BLUE,children:/*#__PURE__*/_jsx(\"path\",{d:\"M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 0 0-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z\"})});const MailIcon=/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:BLUE,children:/*#__PURE__*/_jsx(\"path\",{d:\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"})});const InstagramIcon=/*#__PURE__*/_jsx(\"svg\",{width:\"17\",height:\"17\",viewBox:\"0 0 24 24\",fill:BLUE,children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41a3.81 3.81 0 0 1-1.38-.9c-.42-.42-.68-.82-.9-1.38-.16-.42-.36-1.06-.41-2.23C2.17 15.58 2.16 15.2 2.16 12s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41C8.42 2.17 8.8 2.16 12 2.16zM12 0C8.74 0 8.33.01 7.05.07 5.78.13 4.9.33 4.14.63c-.79.3-1.46.72-2.13 1.38C1.35 2.68.93 3.35.63 4.14.33 4.9.13 5.78.07 7.05.01 8.33 0 8.74 0 12s.01 3.67.07 4.95c.06 1.27.26 2.15.56 2.91.3.79.72 1.46 1.38 2.13.67.66 1.34 1.08 2.13 1.38.76.3 1.64.5 2.91.56C8.33 23.99 8.74 24 12 24s3.67-.01 4.95-.07c1.27-.06 2.15-.26 2.91-.56a5.88 5.88 0 0 0 2.13-1.38c.66-.67 1.08-1.34 1.38-2.13.3-.76.5-1.64.56-2.91.06-1.28.07-1.69.07-4.95s-.01-3.67-.07-4.95c-.06-1.27-.26-2.15-.56-2.91a5.88 5.88 0 0 0-1.38-2.13A5.88 5.88 0 0 0 19.86.63c-.76-.3-1.64-.5-2.91-.56C15.67.01 15.26 0 12 0zm0 5.84A6.16 6.16 0 1 0 18.16 12 6.16 6.16 0 0 0 12 5.84zM12 16a4 4 0 1 1 4-4 4 4 0 0 1-4 4zm6.41-10.85a1.44 1.44 0 1 0 1.44 1.44 1.44 1.44 0 0 0-1.44-1.44z\"})});const TikTokIcon=/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:BLUE,children:/*#__PURE__*/_jsx(\"path\",{d:\"M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5 20.1a6.34 6.34 0 0 0 10.86-4.43v-7a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1.04-.1z\"})});const YouTubeIcon=/*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:BLUE,children:/*#__PURE__*/_jsx(\"path\",{d:\"M23.5 6.19a3.02 3.02 0 0 0-2.12-2.14C19.5 3.55 12 3.55 12 3.55s-7.5 0-9.38.5A3.02 3.02 0 0 0 .5 6.19C0 8.08 0 12 0 12s0 3.92.5 5.81a3.02 3.02 0 0 0 2.12 2.14c1.88.5 9.38.5 9.38.5s7.5 0 9.38-.5a3.02 3.02 0 0 0 2.12-2.14C24 15.92 24 12 24 12s0-3.92-.5-5.81zM9.6 15.6V8.4l6.2 3.6-6.2 3.6z\"})});const WhatsAppIcon=/*#__PURE__*/_jsx(\"svg\",{width:\"17\",height:\"17\",viewBox:\"0 0 24 24\",fill:BLUE,children:/*#__PURE__*/_jsx(\"path\",{d:\"M12.04 2c-5.46 0-9.91 4.45-9.91 9.91 0 1.75.46 3.45 1.32 4.95L2.05 22l5.25-1.38a9.87 9.87 0 0 0 4.74 1.21h.01c5.46 0 9.91-4.45 9.91-9.91 0-2.65-1.03-5.14-2.9-7.01A9.82 9.82 0 0 0 12.04 2zm0 18.15h-.01a8.2 8.2 0 0 1-4.18-1.14l-.3-.18-3.11.82.83-3.04-.2-.31a8.2 8.2 0 0 1-1.26-4.37c0-4.54 3.7-8.23 8.24-8.23a8.2 8.2 0 0 1 8.23 8.24c0 4.54-3.7 8.23-8.23 8.23zm4.52-6.16c-.25-.12-1.47-.72-1.69-.81-.23-.08-.39-.12-.56.13-.16.25-.64.81-.79.97-.14.17-.29.19-.54.06-.25-.12-1.05-.39-1.99-1.23-.74-.66-1.23-1.47-1.38-1.72-.14-.25-.02-.39.11-.51.11-.11.25-.29.37-.43.13-.14.17-.25.25-.41.08-.17.04-.31-.02-.43-.06-.12-.56-1.35-.77-1.85-.2-.48-.41-.42-.56-.43h-.48c-.17 0-.43.06-.66.31-.22.25-.86.85-.86 2.07 0 1.22.89 2.4 1.01 2.56.12.17 1.75 2.67 4.23 3.74.59.26 1.05.41 1.41.52.59.19 1.13.16 1.56.1.48-.07 1.47-.6 1.67-1.18.21-.58.21-1.07.14-1.18-.06-.1-.22-.16-.47-.28z\"})});const SOCIALS=[{label:\"Instagram\",href:INSTAGRAM,icon:InstagramIcon},{label:\"TikTok\",href:TIKTOK,icon:TikTokIcon},{label:\"YouTube\",href:YOUTUBE,icon:YouTubeIcon},{label:\"WhatsApp\",href:WHATSAPP,icon:WhatsAppIcon}];const Chevron=/*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:BLUE,strokeWidth:\"3\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"polyline\",{points:\"9 18 15 12 9 6\"})});// Responsive layout for the visible footer body is driven by CSS media queries\n// (not JS width state) so the correct layout renders on the first paint — no\n// desktop-first flash on mobile. (The cookie banner keeps its own JS width logic\n// because it only mounts ~600ms after load, client-side, so it never flashes.)\nconst CSS=`\n.mf-root{width:100%;background:${BG};font-family:'Clash Grotesk','Inter',sans-serif;box-sizing:border-box;}\n.mf-logo-row{max-width:1180px;margin:0 auto;padding:52px 40px 0;display:flex;align-items:center;gap:28px;}\n.mf-cols{max-width:1180px;margin:0 auto;padding:52px 40px 56px;display:grid;grid-template-columns:1fr 1fr 1fr 1.15fr;gap:36px;}\n.mf-bottom-inner{max-width:1180px;margin:0 auto;padding:26px 40px;text-align:center;}\n/* Tablet — keep the three columns (the old single-column collapse at 859px\n   left the whole right half of the footer empty on tablets). */\n@media (max-width:1023px){\n  .mf-logo-row{padding:46px 32px 0;}\n  .mf-cols{grid-template-columns:1fr 1fr;gap:32px 28px;padding:44px 32px 44px;}\n  .mf-bottom-inner{padding:24px 32px;}\n}\n/* Large phones — two balanced columns. */\n@media (max-width:680px){\n  .mf-logo-row{padding:40px 22px 0;}\n  .mf-cols{grid-template-columns:1fr 1fr;gap:30px 22px;padding:38px 22px 40px;}\n  .mf-bottom-inner{padding:22px 22px;}\n}\n/* Small phones — single column. */\n@media (max-width:440px){\n  .mf-cols{grid-template-columns:1fr;gap:32px;padding:34px 20px 36px;}\n}\n`;// ─── Shared sub-components ────────────────────────────────────────\nfunction SectionTitle({children}){return /*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:22},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,fontWeight:700,color:NAVY,letterSpacing:\"1.5px\",textTransform:\"uppercase\"},children:children}),/*#__PURE__*/_jsx(\"div\",{style:{width:42,height:3,background:BLUE,borderRadius:3,marginTop:8}})]});}function IconChip({children}){return /*#__PURE__*/_jsx(\"div\",{style:{width:34,height:34,flexShrink:0,borderRadius:9,background:ICON_BG,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:children});}// ─── Cookie banner (sub-component, lives in the footer) ───────────\nfunction CookieBanner(){const[mounted,setMounted]=useState(false);const[visible,setVisible]=useState(false)// collapsed tab entrance\n;const[open,setOpen]=useState(false)// full panel expanded?\n;const[panelVisible,setPanelVisible]=useState(false)// panel entrance\n;const[w,setW]=useState(1200);useEffect(()=>{const fn=()=>setW(window.innerWidth);fn();window.addEventListener(\"resize\",fn);return()=>window.removeEventListener(\"resize\",fn);},[]);useEffect(()=>{// If the user has previously accepted OR rejected — either in\n// localStorage or in the persistence cookie — never show the banner.\nif(readCookieChoice())return;const t=setTimeout(()=>{setMounted(true);requestAnimationFrame(()=>{requestAnimationFrame(()=>setVisible(true));});},600);return()=>clearTimeout(t);},[]);const persist=value=>{writeCookieChoice(value);try{window.dispatchEvent(new CustomEvent(`cookies:${value}`));}catch(e){}setPanelVisible(false);setVisible(false);setTimeout(()=>setMounted(false),400);};// Open the full consent panel from the collapsed tab.\nconst expand=()=>{setOpen(true);requestAnimationFrame(()=>{requestAnimationFrame(()=>setPanelVisible(true));});};// Collapse back to the small tab without making a choice.\nconst collapse=()=>{setPanelVisible(false);setTimeout(()=>setOpen(false),300);};if(!mounted||typeof document===\"undefined\")return null;const mobile=w<900;const CookieIcon=/*#__PURE__*/_jsxs(\"svg\",{width:mobile?22:24,height:mobile?22:24,viewBox:\"0 0 24 24\",fill:\"none\",style:{flexShrink:0},\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-4-4 4 4 0 0 1-4-4 2 2 0 0 1-2-2z\",fill:BLUE,fillOpacity:\"0.12\",stroke:BLUE,strokeWidth:\"1.6\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"11\",r:\"1.1\",fill:BLUE}),/*#__PURE__*/_jsx(\"circle\",{cx:\"14.5\",cy:\"14\",r:\"1.1\",fill:BLUE}),/*#__PURE__*/_jsx(\"circle\",{cx:\"10\",cy:\"16\",r:\"1\",fill:BLUE}),/*#__PURE__*/_jsx(\"circle\",{cx:\"15\",cy:\"9\",r:\"0.8\",fill:BLUE})]});// Small chevrons — blue up-arrow on the tab, grey down-arrow to collapse.\nconst ChevronUp=/*#__PURE__*/_jsx(\"svg\",{width:16,height:16,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M6 15l6-6 6 6\",stroke:BLUE,strokeWidth:\"2.4\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});const ChevronDown=/*#__PURE__*/_jsx(\"svg\",{width:18,height:18,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M6 9l6 6 6-6\",stroke:\"#9aa3b2\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});// ── Collapsed tab: a white half-circle stuck flush to the RIGHT edge of\n//    the screen, low down. Flat side against the edge (so it never floats),\n//    rounded side bulging left. Just a brown cookie icon inside. ──\nif(!open){const RADIUS=mobile?30:34// how far the half-circle bulges left\n;const COOKIE_BROWN=\"#7a4a24\";// Brown cookie icon on the white tab.\nconst CookieIconBrown=/*#__PURE__*/_jsxs(\"svg\",{width:mobile?24:26,height:mobile?24:26,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-4-4 4 4 0 0 1-4-4 2 2 0 0 1-2-2z\",fill:COOKIE_BROWN,fillOpacity:\"0.14\",stroke:COOKIE_BROWN,strokeWidth:\"1.7\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"11\",r:\"1.15\",fill:COOKIE_BROWN}),/*#__PURE__*/_jsx(\"circle\",{cx:\"14.5\",cy:\"14\",r:\"1.15\",fill:COOKIE_BROWN}),/*#__PURE__*/_jsx(\"circle\",{cx:\"10\",cy:\"16\",r:\"1.05\",fill:COOKIE_BROWN}),/*#__PURE__*/_jsx(\"circle\",{cx:\"15\",cy:\"9\",r:\"0.85\",fill:COOKIE_BROWN})]});const tab={position:\"fixed\",right:0,bottom:mobile?\"calc(164px + env(safe-area-inset-bottom))\":172,transform:visible?\"translateX(0)\":\"translateX(10px)\",opacity:visible?1:0,transition:\"transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease, box-shadow 0.2s ease, filter 0.2s ease\",zIndex:900,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:RADIUS,height:RADIUS*2,paddingRight:2,background:\"#fff\",border:\"none\",borderRadius:`${RADIUS}px 0 0 ${RADIUS}px`,boxShadow:\"0 3px 16px rgba(0,0,0,0.16), 0 1px 5px rgba(0,0,0,0.10)\",cursor:\"pointer\",fontFamily:\"'Clash Grotesk', sans-serif\",boxSizing:\"border-box\"};return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:tab,onClick:expand,\"aria-label\":\"Open cookie settings\",\"aria-expanded\":false,onMouseEnter:e=>{e.currentTarget.style.boxShadow=\"0 6px 22px rgba(0,0,0,0.22), 0 1px 5px rgba(0,0,0,0.12)\";e.currentTarget.style.transform=\"translateX(-2px)\";},onMouseLeave:e=>{e.currentTarget.style.boxShadow=\"0 3px 16px rgba(0,0,0,0.16), 0 1px 5px rgba(0,0,0,0.10)\";e.currentTarget.style.transform=\"translateX(0)\";},children:CookieIconBrown}),document.body);}if(mobile){const bar={position:\"fixed\",bottom:0,left:0,right:0,transform:panelVisible?\"translateY(0)\":\"translateY(100%)\",transition:\"transform 0.4s cubic-bezier(0.16, 1, 0.3, 1)\",zIndex:900,background:\"#fff\",borderTop:\"1px solid rgba(56,97,249,0.15)\",boxShadow:\"0 -8px 30px rgba(0,0,0,0.08)\",padding:\"12px 14px calc(12px + env(safe-area-inset-bottom)) 14px\",fontFamily:\"'Clash Grotesk', sans-serif\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:10};return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{style:bar,role:\"dialog\",\"aria-label\":\"Cookie consent\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:collapse,\"aria-label\":\"Collapse cookie settings\",style:{background:\"transparent\",border:\"none\",padding:2,margin:0,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",flexShrink:0},children:ChevronDown}),CookieIcon,/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,fontSize:12.5,color:\"#262121\",lineHeight:1.35},children:[\"We use cookies to improve your experience.\",\" \",/*#__PURE__*/_jsx(\"a\",{href:\"/privacy-policy\",style:{color:BLUE,textDecoration:\"underline\",fontWeight:600},children:\"Learn more\"})]}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>persist(\"rejected\"),style:{background:\"transparent\",border:\"none\",color:\"#666\",fontSize:12.5,fontWeight:600,padding:\"8px 8px\",cursor:\"pointer\",fontFamily:\"inherit\",whiteSpace:\"nowrap\"},children:\"Reject\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>persist(\"accepted\"),style:{background:BLUE,color:\"#fff\",border:\"none\",fontSize:12.5,fontWeight:700,padding:\"9px 16px\",borderRadius:8,cursor:\"pointer\",fontFamily:\"inherit\",whiteSpace:\"nowrap\",boxShadow:\"0 4px 12px rgba(56,97,249,0.3)\"},children:\"Accept\"})]}),document.body);}const card={position:\"fixed\",bottom:24,right:24,width:360,transform:panelVisible?\"translateY(0)\":\"translateY(20px)\",opacity:panelVisible?1:0,transition:\"transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease\",zIndex:900,background:\"#fff\",border:\"1px solid rgba(56,97,249,0.15)\",borderRadius:16,boxShadow:\"0 12px 40px rgba(0,0,0,0.12), 0 4px 12px rgba(56,97,249,0.08)\",padding:20,fontFamily:\"'Clash Grotesk', sans-serif\",boxSizing:\"border-box\"};return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{style:card,role:\"dialog\",\"aria-label\":\"Cookie consent\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:collapse,\"aria-label\":\"Collapse cookie settings\",onMouseEnter:e=>{e.currentTarget.style.background=\"#f2f4f8\";},onMouseLeave:e=>{e.currentTarget.style.background=\"transparent\";},style:{position:\"absolute\",top:10,right:10,background:\"transparent\",border:\"none\",borderRadius:8,padding:4,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"background 0.15s ease\"},children:ChevronDown}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:12,marginBottom:14,alignItems:\"flex-start\",paddingRight:20},children:[CookieIcon,/*#__PURE__*/_jsxs(\"div\",{style:{flex:1},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:15,fontWeight:700,color:\"#262121\",marginBottom:4},children:\"We use cookies\"}),/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:13,color:\"#666\",lineHeight:1.5},children:[\"We use cookies to improve your experience and analyse traffic. See our\",\" \",/*#__PURE__*/_jsx(\"a\",{href:\"/privacy-policy\",style:{color:BLUE,textDecoration:\"underline\",fontWeight:600},children:\"Privacy Policy\"}),\".\"]})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,justifyContent:\"flex-end\"},children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>persist(\"rejected\"),onMouseEnter:e=>{e.currentTarget.style.background=\"#f5f5f5\";},onMouseLeave:e=>{e.currentTarget.style.background=\"transparent\";},style:{background:\"transparent\",border:\"1px solid #e5e5e5\",color:\"#666\",fontSize:13,fontWeight:600,padding:\"9px 18px\",borderRadius:10,cursor:\"pointer\",fontFamily:\"inherit\",transition:\"background 0.15s ease\"},children:\"Reject\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>persist(\"accepted\"),onMouseEnter:e=>{e.currentTarget.style.transform=\"translateY(-1px)\";e.currentTarget.style.boxShadow=\"0 8px 20px rgba(56,97,249,0.45)\";},onMouseLeave:e=>{e.currentTarget.style.transform=\"translateY(0)\";e.currentTarget.style.boxShadow=\"0 4px 12px rgba(56,97,249,0.3)\";},style:{background:BLUE,color:\"#fff\",border:\"none\",fontSize:13,fontWeight:700,padding:\"10px 20px\",borderRadius:10,cursor:\"pointer\",fontFamily:\"inherit\",boxShadow:\"0 4px 12px rgba(56,97,249,0.3)\",transition:\"all 0.15s ease\"},children:\"Accept\"})]})]}),document.body);}// ─── Main component ───────────────────────────────────────────────\nexport default function MedentlyFooter(){const year=new Date().getFullYear();const rowLink={display:\"flex\",alignItems:\"center\",gap:12,textDecoration:\"none\",color:TEXT,fontSize:15.5,fontWeight:500,lineHeight:1.4};const linkRow={display:\"flex\",alignItems:\"center\",gap:10,textDecoration:\"none\",color:TEXT,fontSize:15.5,fontWeight:500};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mf-root\",children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsxs(\"div\",{className:\"mf-logo-row\",children:[/*#__PURE__*/_jsx(\"div\",{style:{flex:1,height:1,background:BORDER}}),/*#__PURE__*/_jsx(\"a\",{href:\"/\",style:{display:\"flex\",alignItems:\"center\",textDecoration:\"none\",flexShrink:0},children:/*#__PURE__*/_jsx(\"img\",{src:LOGO_SRC,alt:\"Medently\",style:{height:30,width:\"auto\",display:\"block\"}})}),/*#__PURE__*/_jsx(\"div\",{style:{flex:1,height:1,background:BORDER}})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"mf-cols\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(SectionTitle,{children:\"Contact Us\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:16},children:[PHONES.map(p=>/*#__PURE__*/_jsxs(\"a\",{href:p.link,style:rowLink,children:[/*#__PURE__*/_jsx(IconChip,{children:PhoneIcon}),/*#__PURE__*/_jsxs(\"span\",{children:[\"Phone: \",/*#__PURE__*/_jsx(\"strong\",{style:{fontWeight:700,color:NAVY},children:p.display})]})]},p.link)),/*#__PURE__*/_jsxs(\"a\",{href:`mailto:${EMAIL}`,style:rowLink,children:[/*#__PURE__*/_jsx(IconChip,{children:MailIcon}),/*#__PURE__*/_jsxs(\"span\",{children:[\"Email: \",/*#__PURE__*/_jsx(\"strong\",{style:{fontWeight:700,color:NAVY},children:EMAIL})]})]})]})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(SectionTitle,{children:\"Follow Us\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:16},children:SOCIALS.map(s=>/*#__PURE__*/_jsxs(\"a\",{href:s.href,target:\"_blank\",rel:\"noopener noreferrer\",style:rowLink,onMouseEnter:e=>{e.currentTarget.style.color=NAVY;},onMouseLeave:e=>{e.currentTarget.style.color=TEXT;},children:[/*#__PURE__*/_jsx(IconChip,{children:s.icon}),/*#__PURE__*/_jsx(\"span\",{children:s.label})]},s.label))})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(SectionTitle,{children:\"Quick Links\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:13},children:QUICK_LINKS.map(l=>/*#__PURE__*/_jsxs(\"a\",{href:l.href,style:linkRow,onMouseEnter:e=>{e.currentTarget.style.color=NAVY;},onMouseLeave:e=>{e.currentTarget.style.color=TEXT;},children:[Chevron,/*#__PURE__*/_jsx(\"span\",{children:l.label})]},l.label))})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(SectionTitle,{children:\"Popular Guides\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:13},children:GUIDE_LINKS.map(l=>/*#__PURE__*/_jsxs(\"a\",{href:l.href,style:linkRow,onMouseEnter:e=>{e.currentTarget.style.color=NAVY;},onMouseLeave:e=>{e.currentTarget.style.color=TEXT;},children:[Chevron,/*#__PURE__*/_jsx(\"span\",{children:l.label})]},l.label))})]})]}),/*#__PURE__*/_jsx(\"div\",{style:{borderTop:`1px solid ${BORDER}`},children:/*#__PURE__*/_jsx(\"div\",{className:\"mf-bottom-inner\",children:/*#__PURE__*/_jsxs(\"span\",{style:{fontSize:14.5,color:TEXT,fontWeight:500},children:[\"\\xa9 \",year,\" Medently Malook and Medently Mussarat. All rights reserved.\"]})})})]}),/*#__PURE__*/_jsx(CookieBanner,{}),/*#__PURE__*/_jsx(AskMedently,{})]});}addPropertyControls(MedentlyFooter,{});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MedentlyFooter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MedentlyFooter.map"],"mappings":"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"}