<:root{ --ink:#1B2A4A; --cream:#FBF6EC; --paper:#FFFDF8; --marigold:#E8A33D; --jade:#2E7D6B; --coral:#E15B4F; --charcoal:#22262E; --line: rgba(27,42,74,0.14); --radius: 14px; --display: 'Fraunces', serif; --body: 'Public Sans', sans-serif; --mono: 'Space Mono', monospace; --maxw: 1180px; } *{box-sizing:border-box;} html{scroll-behavior:smooth;} body{margin:0;font-family:var(--body);color:var(--charcoal);background:var(--cream);line-height:1.55;-webkit-font-smoothing:antialiased;} img{max-width:100%;display:block;} a{color:inherit;} .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;} h1,h2,h3{font-family:var(--display);color:var(--ink);margin:0 0 .5em;font-weight:600;} .eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--jade);display:inline-flex;align-items:center;gap:.5em;margin-bottom:.9em;} .eyebrow::before{content:"";width:22px;height:2px;background:var(--marigold);display:inline-block;} @media (prefers-reduced-motion: reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important;}} :focus-visible{outline:3px solid var(--coral);outline-offset:2px;} .topbar{background:var(--ink);color:#f1ede0;font-family:var(--mono);font-size:.78rem;} .topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap;} .topbar a{text-decoration:none;opacity:.9;} .topbar a:hover{opacity:1;text-decoration:underline;} .topbar-contact{display:flex;gap:18px;flex-wrap:wrap;} header.site-header{background:var(--cream);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;} .nav-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px;} .logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-weight:700;font-size:1.25rem;color:var(--ink);} .logo img{height:40px;width:auto;} nav.primary-nav{display:flex;align-items:center;gap:28px;} nav.primary-nav > ul{list-style:none;display:flex;gap:26px;margin:0;padding:0;font-weight:600;font-size:.95rem;} nav.primary-nav > ul > li{position:relative;} nav.primary-nav > ul > li > a{text-decoration:none;padding:8px 0;display:inline-block;} nav.primary-nav > ul > li:hover > a{color:var(--jade);} .submenu{display:none;position:absolute;top:100%;left:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;min-width:210px;padding:8px;box-shadow:0 12px 30px rgba(27,42,74,.12);} nav.primary-nav > ul > li:hover .submenu{display:block;} .submenu li a{display:block;padding:8px 10px;border-radius:6px;text-decoration:none;font-weight:500;font-size:.9rem;} .submenu li a:hover{background:var(--cream);color:var(--jade);} .nav-cta{background:var(--coral);color:#fff;padding:10px 20px;border-radius:999px;text-decoration:none;font-weight:700;font-size:.9rem;white-space:nowrap;box-shadow:0 6px 16px rgba(225,91,79,.35);} .nav-cta:hover{background:#c94a3f;} .lang-pills{display:flex;gap:6px;font-family:var(--mono);font-size:.72rem;} .lang-pills a{border:1px solid var(--line);border-radius:999px;padding:3px 9px;text-decoration:none;} .lang-pills a.active{background:var(--ink);color:#fff;border-color:var(--ink);} .menu-toggle{display:none;background:none;border:2px solid var(--ink);border-radius:8px;padding:8px 10px;cursor:pointer;} .page-hero{background:var(--ink);color:#fff;padding:52px 0 44px;} .page-hero .eyebrow{color:var(--marigold);} .page-hero .eyebrow::before{background:var(--marigold);} .page-hero h1{color:#fff;font-size:clamp(2rem,4vw,2.9rem);max-width:20ch;margin-bottom:.3em;} .page-hero p{color:#dfe3ee;max-width:56ch;font-size:1.05rem;margin:0;} section{padding:60px 0;} .btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.98rem;text-decoration:none;padding:14px 26px;border-radius:999px;transition:transform .15s ease,box-shadow .15s ease;} .btn:hover{transform:translateY(-2px);} .btn-primary{background:var(--coral);color:#fff;box-shadow:0 10px 24px rgba(225,91,79,.4);} .contact-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:start;} .form-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:36px;box-shadow:0 20px 44px rgba(27,42,74,.07);} .form-card h2{font-size:1.5rem;} .form-card > p{color:#4b5160;margin-bottom:1.6em;} .field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;} .field{margin-bottom:18px;} .field label{display:block;font-weight:700;font-size:.86rem;margin-bottom:6px;color:var(--ink);} .field .hint{font-weight:400;color:#8b93aa;font-size:.78rem;} .field input, .field select, .field textarea{ width:100%;font-family:var(--body);font-size:.95rem;padding:12px 14px; border:1.5px solid var(--line);border-radius:9px;background:#fff;color:var(--charcoal); } .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--jade);outline:none;} .field textarea{resize:vertical;min-height:120px;} .radio-group{display:flex;gap:10px;flex-wrap:wrap;} .radio-group label{ display:flex;align-items:center;gap:8px;font-weight:500;font-size:.88rem; border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;cursor:pointer;color:var(--charcoal); } .radio-group input{accent-color:var(--jade);} .form-submit{width:100%;justify-content:center;font-size:1rem;padding:15px;margin-top:8px;border:none;cursor:pointer;} .form-note{font-size:.8rem;color:#8b93aa;margin-top:14px;text-align:center;} .side-col{display:flex;flex-direction:column;gap:20px;} .side-card{background:var(--ink);color:#fff;border-radius:var(--radius);padding:28px;} .side-card h3{color:#fff;font-size:1.15rem;} .side-card p{color:#c8cede;font-size:.92rem;margin-bottom:0;} .side-card.light{background:var(--paper);border:1px solid var(--line);} .side-card.light h3{color:var(--ink);} .side-card.light p{color:#4b5160;} .contact-line{display:flex;align-items:center;gap:12px;margin-bottom:14px;} .contact-line:last-child{margin-bottom:0;} .contact-icon{ width:38px;height:38px;flex-shrink:0;border-radius:50%;background:rgba(255,255,255,.12); display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.72rem;color:var(--marigold); } .contact-line a, .contact-line span{font-size:.92rem;color:#fff;text-decoration:none;font-weight:600;} .side-card.light .contact-icon{background:#EFE9DA;color:var(--jade);} .side-card.light .contact-line a, .side-card.light .contact-line span{color:var(--ink);} .quick-links{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:8px;} .quick-links a{font-size:.88rem;font-weight:600;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:6px;display:block;} .quick-links a:hover{color:var(--jade);} .social-row{display:flex;gap:10px;} .social-row a{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;text-decoration:none;color:#fff;font-size:.75rem;} .social-row a:hover{background:var(--marigold);border-color:var(--marigold);} footer{background:var(--ink);color:#c8cede;padding:56px 0 26px;} .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px;margin-bottom:40px;} .footer-col h4{color:#fff;font-family:var(--display);font-size:1.05rem;margin-bottom:.8em;} .footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;font-size:.9rem;} .footer-col ul a{text-decoration:none;color:#c8cede;} .footer-col ul a:hover{color:var(--marigold);} .footer-logo{font-family:var(--display);color:#fff;font-size:1.2rem;font-weight:700;margin-bottom:10px;} .footer-mission{font-size:.9rem;max-width:34ch;margin-bottom:16px;} .footer-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.8rem;color:#8b93aa;} @media (max-width: 980px){ nav.primary-nav{display:none;} .menu-toggle{display:inline-flex;} .contact-layout{grid-template-columns:1fr;} .footer-grid{grid-template-columns:1fr 1fr;} } @media (max-width: 600px){ .wrap{padding:0 18px;} .topbar .wrap{justify-content:center;text-align:center;} .field-row{grid-template-columns:1fr;} .form-card{padding:24px;} .footer-grid{grid-template-columns:1fr;} section{padding:44px 0;} } .mobile-nav{display:none;position:fixed;inset:0;background:var(--ink);z-index:100;padding:24px;overflow-y:auto;} .mobile-nav.open{display:block;} .mobile-nav-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;} .mobile-nav-head button{background:none;border:none;color:#fff;font-size:1.6rem;cursor:pointer;} .mobile-nav ul{list-style:none;padding:0;margin:0 0 20px;} .mobile-nav > ul > li{border-bottom:1px solid rgba(255,255,255,.14);} .mobile-nav > ul > li > a{display:block;padding:16px 4px;color:#fff;text-decoration:none;font-weight:700;font-size:1.1rem;} .mobile-nav .submenu-mobile{list-style:none;padding:0 0 12px 12px;margin:0;} .mobile-nav .submenu-mobile a{padding:10px 4px;font-weight:500;font-size:.95rem;color:#c8cede;display:block;text-decoration:none;} .mobile-nav .btn-primary{width:100%;justify-content:center;margin-top:10px;}>
Get in touch

Tell us your language and level — we'll take it from there.

Whether you want a free trial class, a translation quote, or exam prep, one form gets you to the right teacher. We usually reply within one business day.

Contact Us

Fill in a few details below and a Fantasia teacher will reach out to schedule your free trial class.

By submitting, you agree to be contacted by Fantasia Language School about your request.

Talk to us

We love hearing from our students! Reach us directly anytime, anywhere.

Follow us on social media

See classes in action and catch student stories.