/*!
Theme Name: Europass
Theme URI: https://www.europassitalian.com/
Author: Simone Montanari
Author URI: https://simonemontanari.com/
Description: A custom theme for Europass Italian Language School. Last Update: 12/02/2025.
Version: 3.5.32
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: europass

v.3.5.* - 07/08/2024
- New product and course layout
- New childpages layout
- Footer redesign
- Home redesign
- Quiz CSS corrections
- New shortcode 'ep_course_preview'
*/


/*-----------------------------------------------
>>> TABLE OF CONTENTS:
-------------------------------------------------
# Variables
# Typography
# Elements
# Forms
# Navigation
	## Links
	## Menus
    ## Breadcrumbs
# Accessibility
# Alignments
# Clearings
# Helpers
# Widgets
# Header
    ## Main Navigation
# Content
    ## Footer
	## Posts and pages
    ## Custom templates
	## Comments
# Infinite scroll
# Media
	## Captions
	## Galleries
    ## Google Maps
# Shortcodes
# Plugins
    ## Contact Form 7
    ## Mailchimp
	## Easy Table of Contents
    ## QSM - Quiz and Survey Master
    ## Testimonial Pro
    ## YITH WooCommerce Checkout Manager
-----------------------------------------------*/


/*-----------------------------------------------
# Variables
-----------------------------------------------*/

:root {
    --color-text: #373737;
    --color-text-light: #575757;
    --color-accent: #31adb3;
    --color-accent-light: #90e0e0;
    --color-alt: #fd7e76;
    --color-alt-2: #85539a;
    --color-links: #305777;
    --color-links-hover: #1e4157;
    --color-light-background: #f0f0f0;
    --font-primary: 'Inter', sans-serif;
    --font-alt: 'Cabinet Grotesk', serif;
    --header-height: 105px;
    --narrow-width: 47em;
    --site-padding: 0.75em;
}

@media ( min-width: 768px) {
     :root {
        --site-padding: 2em;
    }
}

@media ( min-width: 1600px) {
     :root {
        --site-padding: 3em;
    }
}


/*-----------------------------------------------
# Typography
-----------------------------------------------*/

@font-face {
    font-family: 'Cabinet Grotesk';
    font-display: swap;
    font-style: normal;
    font-weight: 700;
    src: url('fonts/CabinetGrotesk-Bold.woff2') format('woff2'), url('fonts/CabinetGrotesk-Bold.woff') format('woff'), url('fonts/CabinetGrotesk-Bold.ttf') format('truetype');
}

@font-face {
    font-family: 'Cabinet Grotesk';
    font-display: swap;
    font-style: normal;
    font-weight: 900;
    src: url('fonts/CabinetGrotesk-Black.woff2') format('woff2'), url('fonts/CabinetGrotesk-Black.woff') format('woff'), url('fonts/CabinetGrotesk-Black.ttf') format('truetype');
}

@font-face {
    font-family: 'Inter';
    font-display: swap;
    font-style: normal;
    font-weight: 500;
    src: url('fonts/Inter-Medium.woff2') format('woff2'), url('fonts/Inter-Medium.woff') format('woff');
}

@font-face {
    font-family: 'Inter';
    font-display: swap;
    font-style: normal;
    font-weight: 600;
    src: url('fonts/Inter-SemiBold.woff2') format('woff2'), url('fonts/Inter-SemiBold.woff') format('woff');
}

@font-face {
    font-family: 'Inter';
    font-display: swap;
    font-style: normal;
    font-weight: 700;
    src: url('fonts/Inter-Bold.woff2') format('woff2'), url('fonts/Inter-Bold.woff') format('woff');
}


/*-----------------------------------------------
# Elements
-----------------------------------------------*/

html {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    font-family: sans-serif;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

*,
*:before,
*:after {
    -webkit-box-sizing: inherit;
    box-sizing: inherit;
}

body {
    background: #fff;
    color: var(--color-text);
    font-family: var(--font-primary), sans-serif;
    font-size: 16px;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5;
    margin: 0;
}

button,
input,
select,
optgroup,
textarea {
    color: var(--color-text);
    font-family: var(--font-primary), sans-serif;
    font-size: 16px;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5;
}

h1 {
    clear: both;
    color: var(--color-accent);
    font-family: var(--font-alt);
    font-size: 1.8em;
    font-weight: 900;
    line-height: 1.25;
    margin-top: 0;
    margin-bottom: 1em;
}

h2 {
    clear: both;
    color: var(--color-accent);
    font-family: var(--font-alt);
    font-size: 1.5em;
    font-weight: 900;
    line-height: 1.2;
    margin-top: 0;
    margin-bottom: 0.75em;
    scroll-margin-top: var(--header-height);
}

.entry-content>h2 {
    border-bottom: 1px solid #ccc;
    margin-bottom: 0.5em;
    padding-bottom: 0.25em;
}

h3,
.h3 {
    clear: both;
    color: var(--color-accent);
    font-size: 1.4em;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 0.5em;
    margin-top: 1em;
    scroll-margin-top: var(--header-height);
}

h2+h3 {
    margin-top: 0;
}

h4,
.h4,
.course h3,
.conditions-box .column h3 {
    clear: both;
    color: #686868;
    font-size: 1.2em;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 0.75em;
    margin-top: 1.5rem;
    scroll-margin-top: var(--header-height);
}

.entry-content>h4 {
    border-bottom: 1px dotted #aaa;
    padding-bottom: 0.1em;
}

h3+h4 {
    margin-top: 0;
}

h5 {
    color: var(--color-alt-2);
    font-size: 1.125em;
    font-weight: 400;
    line-height: 1.35;
    margin-bottom: 0.75em;
    margin-top: 1em;
    text-transform: uppercase;
}

h6 {
    color: var(--color-accent);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 0.75em;
    margin-top: 1em;
}

p {
    margin-top: 0;
}

p:not(:last-child) {
    margin-bottom: 1em;
}

.entry-content h2 {
    margin-top: 1.5em;
}

.entry-content>h2:first-child,
.entry-content>h3:first-child {
    margin-top: 0;
}

dfn,
cite,
em,
i {
    font-style: italic;
}

blockquote {
    font-size: 1.1em;
    font-style: italic;
    margin: 0 1.5em 2em;
}

address {
    margin: 0 0 1.5em;
}

pre {
    background: #eee;
    font-family: "Courier 10 Pitch", Courier, monospace;
    font-size: 15px;
    font-size: 0.9375rem;
    line-height: 1.6;
    margin-bottom: 1.6em;
    max-width: 100%;
    overflow: auto;
    padding: 1.6em;
}

code,
kbd,
tt,
var {
    font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
    font-size: 15px;
    font-size: 0.9375rem;
}

abbr,
acronym {
    border-bottom: 1px dotted var(--color-text);
    cursor: help;
}

mark,
ins {
    background: #fff9c0;
    text-decoration: none;
}

big {
    font-size: 125%;
}

small {
    font-size: 80%;
}

b,
strong {
    font-weight: 700;
}

hr {
    background-color: #ccc;
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
    border: 0;
    height: 1px;
    margin-bottom: 1.5em;
}

dt {
    font-weight: bold;
}

dd {
    margin: 0 1.5em 1.5em;
}

img {
    border: 0;
    height: auto;
    max-width: 100%;
}

figure {
    margin: 0;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
    margin: 0 0 1.5em;
    width: 100%;
}

td,
th {
    padding: 0;
}


/* Lists */

ul {
    list-style: disc;
    margin: 0 0 1.5em 0;
    padding-left: 1.2rem;
}

ol {
    list-style: decimal;
    margin: 0 0 1.5em 0;
    padding-left: 1.2rem;
}

.site-main ul>li {
    margin-bottom: 0.5em;
}

li>ul,
li>ol {
    margin-bottom: 0;
    margin-left: 1em;
}

.entry-content li>ul {
    list-style: circle;
    margin: 0.5em 0;
    padding-left: 1em;
}

ul.no-bullets {
    list-style: none;
    padding-left: 0;
}

ul.is-style-accent li::marker {
    color: var(--color-accent);
}

@media (min-width: 1200px) {
    h1 {
        font-size: 2.3em;
    }
    h2 {
        font-size: 1.8em;
    }
    h3 {
        font-size: 1.3em;
    }
    .entry-content p,
    .entry-content ol,
    .entry-content ul {
        font-size: 1.125rem;
        margin-top: 0;
    }
}


/* Icon */

.icon svg {
    display: inline-block;
    font-size: inherit;
    height: 1em;
    overflow: visible;
    vertical-align: -.125em;
}

.icon.circle {
    background-color: var(--color-links);
    border-radius: 100em;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2em;
    width: 2em
}

.icon.circle:hover {
    background-color: var(--color-links-hover);
}

.has-icon {
    display: flex;
    gap: 0.5em;
}

.has-icon .icon {
    color: var(--color-links-hover);
    order: 0;
}

.has-icon a {
    order: 1;
}


/*-----------------------------------------------
# Forms
-----------------------------------------------*/

button,
.button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button;
    appearance: button;
    background: var(--color-links);
    border: 0;
    color: #fff;
    cursor: pointer;
    font-weight: 500;
    line-height: 1;
    padding: .6em 1em .65em;
    -webkit-transition: all .2s;
    -o-transition: all .2s;
    transition: all .2s;
}

button:hover,
.button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
    background: var(--color-links-hover);
    color: #fff;
}

button:active,
button:focus,
.button:active,
.button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
    background: var(--color-accent);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
    color: var(--color-text);
    border: 1px solid var(--color-accent);
    border-radius: 3px;
    padding: 0.5em;
    width: 100%;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
    color: #111;
    outline-color: var(--color-alt);
}

fieldset {
    border: 1px solid var(--color-accent);
    border-radius: 3px;
    margin: 0 2px;
    padding: .6em;
}

select {
    color: #353535;
    border: 1px solid var(--color-accent);
    border-radius: 3px;
    max-width: 100%;
    padding: .6em;
    width: 100%;
}

select option {
    padding: .3em 0;
}

textarea {
    border-radius: 3px;
    max-width: calc(100% - 2em);
    overflow: auto;
    width: 100%;
}

/*-----------------------------------------------
# Navigation
-----------------------------------------------*/


/*-----------------------------------------------
## Links
-----------------------------------------------*/

a,
a:visited {
    background-color: transparent;
    color: var(--color-links);
    text-decoration: underline;
    -webkit-transition: color .2s;
    -o-transition: color .2s;
    transition: color .2s;
}

a:hover,
a:focus,
a:active {
    color: var(--color-links-hover);
    outline: 0;
}

a:active {
    color: var(--color-alt);
}

.button,
.button:visited {
    display: inline-block;
    background: var(--color-links);
    border-color: var(--color-links);
    border-style: solid;
    border-width: 0.125em;
    border-radius: 0;
    color: #fff;
    font-weight: normal;
    line-height: 1;
    padding: 0.6em 1em 0.65em;
    text-decoration: none;
}

.button.alt {
    background: transparent;
    color: var(--color-links);
}

.button:hover,
.entry-content .button:hover,
.button.alt:hover {
    background: var(--color-links-hover);
    border-color: var(--color-links-hover);
    color: #fff;
}

.button:focus,
.button:active {
    background-color: var(--color-accent);
}

.button a {
    text-decoration: none;
}

.button svg {
    margin-left: 0.4em;
}

.button.secondary,
.button.secondary:visited {
    background-color: transparent;
    border-style: solid;
    border-width: 0.125em;
    color: var(--color-links);
}

.button.secondary:hover,
.entry-content .button.secondary:hover {
    color: var(--color-links-hover);
}

.cta .button:not(:last-child) {
    margin-right: 1em;
}


/*-----------------------------------------------
## Menus
-----------------------------------------------*/

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
    margin: 0 0 1.5em;
    overflow: hidden;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
    float: left;
    width: 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
    float: right;
    text-align: right;
    width: 50%;
}


/*-----------------------------------------------
## Breadcrumbs
-----------------------------------------------*/

.breadcrumbs {
    color: var(--color-text-light);
    margin: 0.4em auto;
    max-width: 86em;
    width: calc(100% - (var(--site-padding) * 2));
}

.breadcrumbs a,
.breadcrumbs a:visited {
    color: var(--color-text-light);
    font-size: 0.85em;
    -webkit-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
    padding-bottom: 0.2em;
}

.breadcrumbs a:hover,
.breadcrumbs a:focus,
.breadcrumbs a:active {
    color: #ff5b45;
}

.breadcrumb_last {
    font-size: 0.85em;
}

@media (min-width: 1280px) {
    .breadcrumbs {
        margin-top: 0.4em;
    }
}


/*-----------------------------------------------
# Accessibility
-----------------------------------------------*/


/* Text meant only for screen readers. */

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
    /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}

.screen-reader-text:focus {
    background-color: #f1f1f1;
    -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    -webkit-clip-path: none;
    clip-path: none;
    color: #21759b;
    display: block;
    font-size: 14px;
    font-size: 0.875rem;
    font-weight: bold;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
    /* Above WP toolbar. */
}


/* Do not show the outline on the skip link target. */

#content[tabindex="-1"]:focus {
    outline: 0;
}


/*-----------------------------------------------
# Alignments
-----------------------------------------------*/

.alignleft {
    display: inline;
    float: left;
    margin-right: 1.5em;
}

.alignright {
    display: inline;
    float: right;
    margin-left: 1.5em;
}

.aligncenter {
    clear: both;
    display: block;
    margin-left: auto;
    margin-right: auto;
}


/*-----------------------------------------------
# Clearings
-----------------------------------------------*/

.clear:before,
.clear:after,
.comment-content:before,
.comment-content:after {
    content: "";
    display: table;
    table-layout: fixed;
}

.clear:after,
.comment-content:after {
    clear: both;
}


/*-----------------------------------------------
# Helpers
-----------------------------------------------*/

.relative {
    position: relative;
}

.txt-center {
    text-align: center;
}

.txt-big {
    font-size: 1.1em;
}

.margin-tp-3 {
    margin-top: 3em;
    margin-bottom: 3em;
}

.margin-tp-6 {
    margin-top: 6em;
    margin-bottom: 6em;
}

.no-margin-left {
    margin-left: 0 !important;
}

.gray,
.has-light-background-color {
    background-color: var(--color-light-background);
    padding: 2em var(--site-padding);
}

.blue,
.has-accent-background-color {
    background-color: var(--color-accent);
    color: #fff;
    padding: 2em;
}

.max-width_720 {
    margin-left: auto;
    margin-right: auto;
    max-width: 720px;
}

@media (min-width: 92em) {
    .gray,
    .blue {
        padding: 3em;
        width: 100%;
    }
}


/*-----------------------------------------------
# Widgets
-----------------------------------------------*/

.widget {
    margin: 0 0 1.5em;
}

.widget .menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.widget select {
    max-width: 100%;
}


/*-----------------------------------------------
# Header
-----------------------------------------------*/

.site-header {
    background-color: #fff;
    border-bottom: 1px solid var(--color-accent);
    margin-right: auto;
    margin-left: auto;
    max-width: 86em;
    padding-bottom: 0.5em;
    padding-top: 0.5em;
    position: sticky;
    top: -42px;
    z-index: 5000;
}

@media (max-width: 1023px) {
    .site-header {
        display: flex;
        align-items: center;
        gap: 1em;
        justify-content: space-between;
        padding-left: var(--site-padding);
        padding-right: var(--site-padding);
        width: 100%;
    }
}

@media (min-width: 1024px) {
    .site-header {
        display: grid;
        gap: 1em;
        grid-template-columns: 18em 1fr;
        grid-template-rows: auto auto;
        height: auto;
        overflow: visible;
        width: calc(100% - (var(--site-padding) * 2));
    }
    .logged-in.admin-bar .site-header {
        top: 32px
    }
    .site-top-bar {
        grid-column: 1 / 3;
        grid-row: 1 / 2;
    }
    .site-branding {
        grid-column: 1 / 2;
        grid-row: 2 / 3;
    }
    .site-header .main-navigation {
        grid-column: 2 / 3;
        grid-row: 2 / 3;
    }
}


/* Top Bar */

.site-top-bar {
    display: none;
}

@media (min-width: 1024px) {
    .site-top-bar {
        display: grid;
        grid-template-columns: 1fr auto auto;
        font-size: 0.9em;
    }
}

.company-information svg {
    color: var(--color-accent);
    margin-right: 0.5em;
}

.company-information .icon:not(:first-child) svg {
    margin-left: 1.2em;
}

.top-bar-menu {
    display: flex;
    align-items: center;
    list-style: none;
    margin-bottom: 0;
    margin-left: 0;
    padding-left: 0;
}

.top-bar-menu li.has-icon {
    display: inline-flex;
}

.top-bar-menu svg {
    color: var(--color-accent);
}

.top-bar-menu li:not(:last-child) {
    border-right: 1px solid #ccc;
    margin-right: 0.25em;
    padding-right: 0.5em;
}

.top-bar-menu li:not(:first-child) svg {
    display: none;
}

.site-top-bar .social-icons {
    float: right;
}

.site-top-bar .social-icons a {
    font-size: 0.9em;
    margin-right: 0.3em;
}

.site-top-bar .social-icons a svg {
    margin-left: 0;
    margin-right: 0;
}

/* Branding */

.site-branding {
    margin-bottom: 0;
    width: 100%;
}

.site-title {
    font-size: 1em;
    display: block;
}

.site-logo,
.woocommerce .site-logo {
    display: block;
    height: 2em;
    width: auto;
}

@media (min-width: 1024px) {
    .site-branding {
        font-size: 1em;
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
    }
    .site-logo,
    .woocommerce .site-logo {
        height: 2.5em;
    }
}


/* Language selector */

.site-top-bar .language-selector {
    display: flex;
    align-items: center;
    gap: 0.25em;
    margin-left: 20px;
}

.site-top-bar .language-selector .msls_languages {
    font-size: 0.9em;
    padding: 0.2em;
}

.language-selector a {
    margin-left: 0.25em;
    margin-right: 0.25em;
}

.language-selector .icon {
    color: var(--color-accent);
    margin-right: 0.2em;
}

.language-selector .current_language {
    font-weight: bold;
    text-decoration: none;
}

@media (min-width: 1024px) {
    .site-top-bar .language-selector {
        float: right;
    }
    .language-selector.mobile {
        display: none;
    }
}


/* Search Form */

.search-form {
    display: flex;
    align-items: stretch;
    color: var(--color-accent);
    padding: 0;
}

.search-form .search-field,
.search-form .search-field:focus {
    border: 0;
    border-radius: 0;
}

@media (max-width: 1023px) {
    .search-toggle {
        display: none;
    }
    .site-header .search-form {
        padding: 1em var(--site-padding) 2em;
    }
    .site-header .search-field {
        background-color: #ffffff80;
    }
    .site-header .search-form label {
        display: block;
        width: 100%;
    }
}

@media (min-width: 1024px) {
    .search-toggle {
        border-radius: 4px;
        color: var(--color-accent);
        cursor: pointer;
        display: inline-block;
        text-align: center;
        transition: background-color 0.2s ease-in, color 0.2s ease-in;
        width: 1.5em;
    }
    .search-toggle:hover {
        background-color: var(--color-links);
        color: #fff;
    }
    .site-header .search-form {
        background-color: var(--color-accent);
        color: #fff;
        padding: 1.75em;
        position: absolute;
        /* top = logo height + navigation padding */
        top: calc(2.5em + 0.5em);
        right: 0;
        width: 20em;
    }
    .site-header .search-form:not(.visible) {
        display: none;
    }
}


/*-----------------------------------------------
## Main Navigation
-----------------------------------------------*/

.main-navigation {
    position: relative;
}

.main-navigation ul {
    list-style: none;
}

.main-navigation li.menu-item-has-children {
    position: relative;
}

.main-navigation a {
    text-decoration: none;
}

.menu-item .no-link {
    color: var(--color-links);
    text-transform: uppercase;
}

.menu-item .no-link:hover {
    cursor: default;
}

@media (max-width: 1023px) {
    .menu-toggle {
        display: flex;
        gap: 0.5em
    }
    .menu-toggle .close {
        display: none;
    }
    .main-navigation {
        background-color: var(--color-accent);
        border-top: 2px solid var(--color-accent);
        position: absolute;
        left: 0;
        top: 100%;
        width: 100%;
    }
    .main-navigation:not(.toggled) {
        display: none;
    }
    .main-menu {
        display: none;
    }
    .extra-menu a,
    .extra-menu a:visited,
    .main-menu-mobile a,
    .main-menu-mobile a:visited {
        display: block;
        color: #fff;
        padding-bottom: 0.3em;
        padding-top: 0.3em;
    }
    .extra-menu a:hover,
    .extra-menu a:focus,
    .extra-menu a:active,
    .main-menu-mobile a:hover,
    .main-menu-mobile a:focus,
    .main-menu-mobile a:active {
        color: var(--color-links-hover);
    }
    .main-menu-mobile {
        padding-left: var(--site-padding);
        padding-right: var(--site-padding);
    }
    .main-menu-mobile li {
        clear: both;
        padding-bottom: 0.3em;
        padding-top: 0.3em;
        position: relative;
    }
    .main-menu-mobile>li {
        border-bottom: 1px solid #ffffff80;
    }
    .main-menu-mobile>li>a {
        display: inline-block;
        text-transform: uppercase;
    }
    .main-menu-mobile .sub-menu {
        display: none;
        margin-left: 0;
        padding-left: 0;
    }
    .main-menu-mobile li.open>.sub-menu {
        display: block;
    }
    .open-submenu {
        background-color: transparent;
        color: var(--color-links-hover);
        display: flex;
        align-items: center;
        justify-content: center;
        height: 2.5em;
        position: absolute;
        right: 0;
        top: 0;
        width: 2em;
    }
    .open>.open-submenu {
        transform: rotate(180deg);
    }
    .account-menu {
        background-color: #fff;
        display: flex;
        justify-content: space-between;
        gap: 0.5em;
        margin-bottom: var(--site-padding);
        padding: 1em var(--site-padding);
    }
    .language-selector.mobile {
        background-color: var(--color-light-background);
        font-size: 0.9em;
        padding: 1em var(--site-padding);
    }
}

@media (min-width: 1024px) {
    .main-navigation {
        display: flex;
        align-items: flex-end;
        justify-content: flex-end;
        gap: 1em;
        padding-bottom: 0;
        padding-top: 0;
    }
    .account-menu,
    .extra-menu,
    .main-menu-mobile,
    .menu-toggle,
    .open-submenu {
        display: none;
    }
    /* 1st level */
    .main-menu {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 1em;
        margin-bottom: 0;
        padding-left: 0;
    }
    .main-menu>li.menu-item-has-children {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%23305777' d='M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301 191.9 288 191.9L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right center;
        background-size: 0.6em auto;
        padding-right: 1em;
    }
    .main-menu>li>.sub-menu {
        display: none;
        background-color: var(--color-accent);
        padding: 1.2em 2em;
        width: 25em;
        z-index: 1000;
    }
    .main-menu>li:hover>.sub-menu {
        display: block;
        position: absolute;
        right: -1.75em;
    }
    .main-menu .sub-menu li {
        padding-bottom: 0.3em;
        padding-top: 0.3em;
    }
    .main-menu .sub-menu li:not(:last-child) {
        border-bottom: 1px solid #ffffff80;
    }
    .main-menu .sub-menu a {
        display: block;
        padding-bottom: 0.3em;
        padding-top: 0.3em;
    }
    .main-menu .sub-menu a,
    .main-menu .sub-menu a:visited {
        color: #fff;
    }
    .main-menu .sub-menu a:hover,
    .main-menu .sub-menu a:focus,
    .main-menu .sub-menu a:active {
        color: var(--color-links-hover);
    }
    /* 2nd level */
    .sub-menu .sub-menu {
        margin-left: 0;
        padding-left: 0;
    }
}


/* Mega Menu */

.main-menu>li.menu-item-has-children>a {
    text-transform: uppercase;
}

@media (min-width: 1024px) {
    .main-menu {
        gap: 2em;
    }
    .main-menu .mega-menu:hover>.sub-menu {
        display: grid;
        gap: 2.5em;
        grid-template-columns: repeat(2, 1fr);
        width: 56em;
    }
    .main-menu .mega-menu.columns-2:hover>.sub-menu {
        width: 45em;
    }
    .main-menu .mega-menu.columns-3>.sub-menu {
        grid-template-columns: repeat(3, 1fr);
    }
    .main-menu .mega-menu>.sub-menu>li:not(:last-child) {
        border-bottom: 0;
    }
    .main-menu .mega-menu>.sub-menu>li>a {
        font-weight: bold;
        border-bottom: 1px solid #fff;
        margin-bottom: 0.5em;
        display: inline-block;
    }
    .main-menu .mega-menu>.sub-menu .sub-menu li {
        margin-left: 0;
    }
}

@media (min-width: 1920px) {
    .main-menu .mega-menu:hover>.sub-menu {
        transform: translatex(15%);
    }
}


/*-----------------------------------------------
# Content
-----------------------------------------------*/

.site-main {
    margin: 0 auto;
    max-width: calc(80em + (2 * var(--site-padding)));
    padding-left: var(--site-padding);
    padding-right: var(--site-padding);
    position: relative;
}


/* Information Bar */

.information-bar {
    background-color: var(--color-alt);
    margin: 0 auto 0.5em;
    max-width: 82em;
    text-align: center;
}

.information-bar a,
.information-bar a:visited {
    color: #fff;
    text-decoration: underline;
}

.information-bar .drawer {
    font-weight: bold;
    font-size: 1em;
    padding: 0.25em 2em 0.3em;
}

.fixed .information-bar {
    display: none;
}


/* Back to Top */

.back-to-top {
    display: block;
    opacity: 0;
    position: fixed;
    right: 1em;
    bottom: 1em;
    -webkit-transition: opacity .3s;
    -o-transition: opacity .3s;
    transition: opacity .3s;
    z-index: -1;
}

.back-to-top .icon {
    font-size: 2em;
}

.back-to-top.show {
    opacity: 1;
    z-index: 10;
}

@media ( min-width: 1280px) {
    .back-to-top {
        right: 38px;
        bottom: 100px;
    }
}


/*-----------------------------------------------
## Footer
-----------------------------------------------*/

.site-footer {
    border-top: 1px solid var(--color-accent);
    margin: 5em auto 1em;
    max-width: 86em;
    padding-top: 3em;
    width: calc(100% - (var(--site-padding) * 2));
}

.site-footer h6:first-child {
    margin-top: 0;
}

.footer-top {
    margin-bottom: 3em; 
}

.footer-top>div:not(:last-child) {
    margin-bottom: 3em;
}

.footer-top .menu li:not(:last-child) {
    margin-bottom: 0.2em;
}

.footer-top .social-icons:not(:last-child) {
    margin-bottom: 2em;
}

.footer-top .social-link {
    display: inline-block;
    border-radius: 500em;
    height: 2em;
    margin: 0 0.5em 0 0;
    padding: 0;
    width: 2em;
}

.footer-bottom hr {
    background-color: var(--color-accent);
    margin-bottom: 2.5em;
    margin-top: 3em;
}

.footer-bottom a {
    color: var(--color-text);
}

.footer-bottom a:hover,
.fotter-bottom a:focus,
.footer-bottom a:active {
    color: var(--color-links);
}

.legal-info {
    margin-bottom: 3em;
    margin-top: 4em;
}

.rating-value {
    color: var(--color-accent);
    display: inline-block;
    font-weight: 700;
    line-height: 1.4;
}

.rating-base {
    color: var(--color-text-light);
    display: inline-block;
    padding-left: 0.25em;
    width: 2em;
}

/* Company rating(s) */

.company-rating {
    display: flex;
    align-items: center;
    gap: 0.5em;
    margin-bottom: 1em;
}

.company-rating-wrapper {
    margin-top: 3em;
}

.site-top-bar .company-rating {
    margin-left: 1em;
    transform: translateY(0.2em);
}

.site-top-bar .company-rating img {
    max-width: 100px;
}

.company-rating.stack {
    display: block;
}

.company-rating.aligncenter {
    justify-content: center;
}

.company-rating.inline {
    display: inline-flex;
}

.company-rating.service {
    display: grid;
    grid-template-columns: 72px auto;
    grid-template-rows: auto 1fr;
    margin-bottom: 2em;
    margin-left: auto;
    margin-right: auto;
    max-width: 23em;
}

.company-rating.service .platform {
    display: block;
    grid-column: 1 / 2;
    grid-row: 1 / 3;
}

.company-rating.service .stars {
    display: inline-block;
    align-self: end;
    grid-column: 2 / 3;
    grid-row: 1 / 2;
    margin-bottom: 0;
    margin-top: 0.5em;
}

.company-rating.service .rating-text {
    align-self: start;
    grid-column: 2 / 3;
    grid-row: 2 / 3;
    font-weight: 600;
}

.company-rating.service .rating-source {
    font-weight: 600;
}

@media (min-width: 768px) {
    .company-rating {
        margin-bottom: 0;
    }
}

/* Partners */

.company-partners {
    display: flex;
    flex-wrap: wrap;
    gap: 3em;
    margin-top: 2em;
}

.company-partners a:not(:hover) img {
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
}

@media (min-width: 768px) {
    .footer-top {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 3em;
    }
    .footer-top>div:not(:last-child) {
        margin-bottom: 0;
    }
    .footer-bottom {
        text-align: center;
    }
    .footer-bottom hr {
        max-width: 20em;
    }
    .company-partners {
        justify-content: center;
    }
}

@media (min-width: 1024px) {
    .footer-top {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ReCapchta */

.grecaptcha-badge {
    display: none;
}

.recapchta-disclaimer {
    font-size: 0.875em;
}

/*-----------------------------------------------
## Posts and pages
-----------------------------------------------*/

.updated:not(.published) {
    display: none;
}

.page-content,
.entry-summary {
    margin: 1.5em 0 0;
}

.page-links {
    clear: both;
    margin: 0 0 1.5em;
}

.entry-title {
    background-image: url('img/apostrophe.svg');
    background-position: top right;
    background-repeat: no-repeat;
    background-size: auto 1.2em;
    margin: 0.4em 0 0.8em;
    padding-right: 1.5em;
}

.page .entry-content {
    max-width: var(--narrow-width);;
}

.page-template-front-page .entry-content,
.page-template-full-width .entry-content {
    max-width: none;
}

.with-toc .entry-content {
    margin-top: 0;
}

.page-template-front-page .entry-content {
    margin-top: 1em
}

.home-reviews .review-box {
    font-size: .9em;
}

.home .entry-content>h2 {
    margin: 0;
}

.home .entry-content>h2+.row {
    margin-top: 1em;
}

.home .europass-map-container {
    background-position: calc(100% - 0.4em) 0.4em;
    background-size: 1.2em auto;
    padding-right: 2em;
}

.home .europass-map {
    padding-bottom: calc(100% / 3 * 2);
}

.floating-cta:not(.to-newsletter) {
    background-color: var(--color-accent);
    color: #fff;
    padding: 1em 1.5em 1.3em;
}

.floating-cta .top-cta {
    border: 1px solid var(--color-accent);
    border-bottom: 0;
    padding: 0.8em 1.5em 1.5em;
}

.floating-cta .bottom-cta {
    background-color: var(--color-accent);
    color: #fff;
    padding: 1em 1.5em 1.5em;
    position: relative;
}

.floating-cta .bottom-cta>.icon,
.floating-cta .top-cta>.icon {
    font-size: 2em;
    position: absolute;
    top: 0;
    right: 0.25em;
}

.floating-cta p {
    font-size: 0.9em;
    font-weight: 700;
    margin-bottom: 0.5em;
}

.floating-cta .top-cta p {
    color: var(--color-accent);
    line-height: 1.2;
}

.floating-cta .button {
    font-size: 0.9em;
    margin-top: 0;
    padding: 0.5em;
}

.post-floating-cta .sidebar__innner {
    background-color: var(--color-accent);
    color: #fff;
    padding: .8em 2em 1.2em;
}

.post-floating-cta p {
    font-size: 1.1em;
    font-style: italic;
}

.entry-content .floating-cta.to-newsletter {
    clear: both;
    display: none;
}

.sidebar .floating-cta.to-newsletter .top-cta {
    display: none;
}

@media (min-width: 48em) {
    .entry-content .floating-cta.to-newsletter {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin: 3em auto 0;
        padding: 0;
    }
    .entry-content .floating-cta.to-newsletter>div {
        width: 50%;
    }
    .entry-content .floating-cta.to-newsletter .top-cta {
        border: 1px solid var(--color-accent);
        margin-bottom: 0;
    }
    .entry-content .floating-cta.to-newsletter .bottom-cta .button {
        position: absolute;
        bottom: 1.5em;
    }
}

@media (min-width: 1280px) {
    .floating-cta {
        padding: 1.5em;
        opacity: 1;
    }
    .floating-cta.to-newsletter {
        padding-top: 0;
    }
    .floating-cta.fixed-on-mobile {
        bottom: auto;
        left: auto;
    }
    .floating-cta.fixed-on-the-side {
        position: fixed;
        top: 6em;
        left: auto;
        right: auto;
        width: calc(100% - 63em);
    }
    .floating-cta p {
        font-size: 1.2em;
        margin-bottom: 1em;
    }
    .floating-cta .button {
        padding: 0.6em 1em 0.65em;
    }
    .entry-content .floating-cta:not(.to-newsletter) p {
        font-size: 1.3em;
    }
}

.cat-links {
    text-transform: uppercase;
}

.edit-link {
    margin-left: 1em;
}

.edit-post-link {
    margin-top: 30px;
}

.post-author .author-avatar,
.post-author .author-name {
    display: inline-block;
}

.post-author .author-avatar {
    width: 70px;
}

.post-author .author-name {
    margin-top: calc(30px - .75em);
    vertical-align: top;
}

.author-name strong {
    color: var(--color-accent);
}

.post-author .author-bio {
    margin-top: .75em;
    margin-bottom: 2em;
}

.archive-description {
    margin-bottom: 3em;
}

.archive-description>p {
    max-width: 1024px;
}

.post-in-archive {
    background-color: #f0f3f8;
    padding: 1em;
    margin-bottom: 3em;
    width: 100%;
}

.post-in-archive .entry-meta {
    margin-bottom: 1.5em;
}

.post-in-archive .entry-title {
    margin-bottom: .3em;
}

.post-in-archive .entry-title a {
    text-decoration: none;
}

.post-in-archive .entry-title a:hover,
.post-in-archive .entry-title a:focus {
    text-decoration: underline;
}

.post-in-archive .entry-content {
    margin-bottom: 1.5em;
}

.post-in-archive .entry-featured-image {
    margin-bottom: 1.5em;
}

.post-in-archive .tags-links {
    float: right;
}

.post-in-archive .edit-link {
    display: none;
}

.call-to-action {
    background-color: var(--color-light-background);
    margin-top: 4em;
}

.call-to-action h2 {
    background-color: var(--color-accent);
    color: #fff;
    margin-top: 0;
    margin-bottom: 1em;
    padding: 1rem 2rem;
}

.call-to-action>.text {
    font-size: 1.1em;
    color: var(--color-text-light);
    margin-bottom: 1.8em;
    padding: 0 2em 2em;
}

.call-to-action .image {
    display: none;
    margin-bottom: 1.8em;
    padding: 0 0 0 2em;
    position: relative;
}

span+.newsletter {
    margin-top: 4em;
}

.single .category-link {
    text-align: center;
}

.single .tags-links {
    float: none;
}

.single .edit-link {
    display: block;
    text-align: center;
}

.single .social-share {
    text-align: center;
}

.comment-form label {
    display: inline-block;
    min-width: 5em;
}

.comment-form-cookies-consent label {
    margin-left: 0.5em;
}

@media (min-width: 48em) {
    .call-to-action {
        margin-left: auto;
        margin-right: auto;
        max-width: 48em;
    }
    .post-in-archive .entry-title {
        margin-top: 0;
    }
    .post-in-archive .entry-featured-image {
        display: inline-block;
        vertical-align: top;
        width: calc(50% - 2em);
    }
    .post-in-archive .entry-content {
        display: inline-block;
        margin: 0 0 1.5em 0;
        vertical-align: top;
        width: calc(50% - 2em);
    }
    .post-in-archive .entry-featured-image+.entry-content {
        margin-left: 2em;
    }
}

@media (min-width: 1024px) {
    .post-in-archive {
        padding: 32px;
        max-width: 64em;
    }
    .post-in-archive .entry-featured-image {
        width: 376px;
    }
    .post-in-archive .entry-content {
        margin-left: 0;
        width: calc(100% - 382px);
    }
    .post-in-archive .entry-featured-image+.entry-content {
        margin-left: 0;
        padding-left: 3em;
    }
    .with-toc .entry-featured-image {
        float: right;
        line-height: 0;
        margin-bottom: 0;
        vertical-align: bottom;
        width: calc(66.666666% - 1.5em);
    }
    .home-reviews .review-box {
        font-size: 1.1em;
    }
}

@media (min-width: 1280px) {
    .page-template-front-page .entry-content,
    .page-template-full-width .entry-content {
        float: none;
    }
    .single .newsletter,
    .single .comments-area {
        max-width: var(--narrow-width);;
    }
    .sidebar {
        will-change: min-height;
    }
    .sidebar__inner {
        -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
        transform: translate(0, 0);
        /* For browsers don't support translate3d. */
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        will-change: position, transform;
    }
    .call-to-action {
        max-width: none;
    }
    .call-to-action .image {
        display: block;
        float: left;
        margin-top: .4em;
        margin-right: 0;
        width: calc(33.333333% - 2em);
    }
    .call-to-action .text {
        float: right;
        padding-left: 1em;
        width: calc(66.666666% - 1em);
    }
    .search .entry-content {
        float: none;
    }
    .home .newsletter {
        margin-top: 5em;
        margin-left: 33%;
    }
    .home-reviews .review-box {
        font-size: 1.2em;
    }
}


/** Home **/

.hero .ep-cta-button {
    display: inline-block;
    margin-right: 1em
}

.hero h1 {
    margin-bottom: 0.5em;
}

.hero p {
    margin-bottom: 1.5em;
}

.hero .ep-cta-button a {
    border: 1px solid var(--color-links);
}

.hero .ep-cta-button+.ep-cta-button a {
    background-color: #fff;
    border: 1px solid var(--color-links);
    color: var(--color-links);
}

.hero .ep-cta-button+.ep-cta-button a:hover {
    background-color: var(--color-links);
    color: #fff;
}

.hero .column:first-of-type .company-rating {
    margin-bottom: 2.5em;
}

.hero .column p+.company-rating {
    margin-top: -1em;
}

@media (max-width: 580px) {
    .hero .ep-cta-button {
        margin-right: 0.25em;
    }
    .hero .ep-cta-button a {
        font-size: 0.85em;
        padding: 0.6em 0.3em 0.65em 0.5em;
    }
}

@media (max-width: 767px) {
    .hero .column:last-child {
        display: none;
    }
}

@media (min-width: 48em) {
    .home .hero {
        align-items: center;
        margin-top: 0;
    }
    .hero h1 {
        font-size: 2.6em;
    }
    .hero p {
        font-size: 1.2em;
    }
    .hero img {
        max-width: 90%;
    }
    .hero-image-mobile,
    .hero .column:first-of-type .company-rating {
        display: none;
    }
}

@media (min-width: 80em) {
    .hero h1 {
        font-size: 3.2em;
    }
    .hero p {
        font-size: 1.25em;
    }
}

.home .icons-features {
    margin-bottom: 3em;
}

.home .icons-help {
    margin: 3em auto !important;
}

.icon-feature,
.icon-help {
    text-align: center;
}

.icon-help>a {
    color: var(--color-accent);
}

.icons-features .column svg,
.icons-help .column svg {
    color: var(--color-accent);
    margin-bottom: 0.25em;
    margin-right: 0;
}

.icon-feature p {
    margin-left: auto;
    margin-right: auto;
    max-width: 9em;
}

@media (max-width: 767px) {
    .home .icons-features {
        display: grid;
        grid-template-columns: repeat(3, 3fr);
        gap: 1em;
        align-items: start;
    }
    .icon-help {
        display: grid;
        grid-template-columns: 70px 1fr;
        gap: 1em;
        align-items: center;
        justify-content: start;
        text-align: left;
        margin: 0 auto 2em !important;
        max-width: 250px;
    }
    .icons-help .icon-help svg {
        margin-bottom: 0;
        min-width: 70px;
    }
}

@media (min-width: 80em) {
    .icon-feature p,
    .icon-help p {
        font-size: 1.25em;
    }
}

.entry-content>h2.noline {
    border-bottom: 0;
    margin-top: 3em;
    padding-bottom: 0;
}


/*-----------------------------------------------
## Tables
-----------------------------------------------*/

table {
    margin-bottom: 1.5em;
    margin-top: 1em;
}

thead th,
tbody tr:first-child td {
    background-color: var(--color-accent);
    color: #fff;
    font-style: italic;
    font-weight: 400;
    padding: 0.5em 0.35em;
    text-align: center;
}

thead th:empty,
tbody tr:first-child td:empty {
    background-color: #fff;
}

td,
thead+tbody tr:first-child td {
    background-color: var(--color-light-background);
    color: var(--color-text);
    font-style: normal;
    padding: 0.25em 0.35em 0.5em;
    text-align: left;
    vertical-align: top;
}

.is-style-compare th,
.is-style-compare td {
    padding-left: 0.6em;
    padding-right: 0.6em;
}

.is-style-compare thead th,
.is-style-compare tbody tr:first-child td {
    border-left: 3px solid #ffffff;
}

.is-style-compare td,
.is-style-compare thead+tbody tr:first-child td {
    border-left: 3px solid var(--color-accent);
}


/* Simple table */

.simple-table {
    max-width: 100%;
    width: auto;
    text-align: left;
}

.simple-table th,
.simple-table td {
    padding: .2em 1em .2em 0;
}


/*--- Price tables --*/

.grammar-table {
    border: px solid var(--color-accent);
    max-width: 100%;
    width: auto;
    margin-bottom: 2em;
}

.grammar-table th,
.grammar-table td {
    border: 1px solid #f2f2f2;
    padding: .3em .6em;
    text-align: center;
}

.grammar-table th {
    color: var(--color-accent);
}

.grammar-table td:first-child {
    text-align: left;
}

.holiday-prices-table {
    background-color: var(--color-light-background);
    font-size: .8em;
    margin: 1.5em 0;
    max-width: 40em;
    width: 100%;
}

.holiday-prices-table tr {
    text-align: center;
}

.holiday-prices-table tr:first-child {
    border-bottom: 2px solid var(--color-accent);
}

.holiday-prices-table th {
    color: var(--color-accent);
    font-weight: bold;
    padding: 0.5em .1em;
}

.holiday-prices-table td {
    padding: .3em 0.5em;
}

.holiday-prices-table td:first-child {
    text-align: left;
}

.price-table {
    background-color: var(--color-light-background);
    max-width: 10em;
    width: 100%;
}

.price-table tr {
    text-align: center;
}

.price-table tr:first-child {
    border-bottom: 2px solid var(--color-accent);
}

.price-table th {
    color: var(--color-accent);
    font-weight: bold;
    padding: 0.5em .1em;
}

.price-table td {
    padding: .3em;
    width: 50%;
}

@media (min-width: 48em) {
    .holiday-prices-table {
        font-size: 1em;
    }
}


/*--- Course details and table layout ---*/

.course-hours {
    margin-bottom: 1.5em;
}

.course-details {
    margin-bottom: 2em;
}

.course-details div {
    margin-bottom: .3em;
}

.course-details span {
    display: inline-block;
    font-weight: bold;
    text-align: center;
    width: 1.8em;
}

.course-details .lessons-per-week span {
    color: var(--color-accent);
}

@media (min-width: 48em) {
    .course h3 {
        height: 3.4em;
        margin-bottom: .2em;
    }
    .course h3+p {
        height: 4.5em;
        margin-bottom: 1em;
    }
    .course .course-hours {
        margin-bottom: 0.5em;
    }
    .table-and-text {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }
    .table-and-text>table {
        -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
        flex: 1 0 auto;
        float: none;
        margin-right: 2em;
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
    }
    .table-and-text>div {
        -webkit-box-flex: 2;
        -ms-flex: 2 0 auto;
        flex: 2 0 auto;
        float: none;
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }
}

@media (min-width: 63em) {
    .course h3 {
        height: 2.8em;
    }
    .course h3+p {
        height: 3em;
    }
    .course .course-hours {
        height: 4.5em;
        margin-bottom: .7em;
    }
}

@media (min-width: 1280px) {
    .course {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
    .course>* {
        -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
        flex: 1 0 auto;
        width: 100%;
    }
    .course h3 {
        height: auto;
        margin-bottom: .875em;
    }
    .course .price-table {
        -webkit-box-ordinal-group: 101;
        -ms-flex-order: 100;
        order: 100;
    }
    .course .course-details {
        -webkit-box-ordinal-group: 102;
        -ms-flex-order: 101;
        order: 101;
        padding: 0 0.5em;
        max-width: calc(100% - 11em);
    }
    .course-details .lessons-per-week span {
        color: var(--color-accent);
    }
}

@media (min-width: 90em) {
    .course h3+p {
        height: auto;
        margin-bottom: 1.5em;
    }
    .course .course-hours {
        height: auto;
        margin-bottom: 1.7em;
    }
}


/*-----------------------------------------------
## Comments
-----------------------------------------------*/

.comments-area {
    margin: 3em 0;
}

.comment-list+.comment-respond,
.comment-navigation+.comment-respond {
    padding-top: 1.75em;
}

.comments-title,
.comment-reply-title {
    font-size: 1.5em;
    margin-top: 0;
}

.comments-title {
    margin-bottom: 1.2em;
}

.comment-list {
    border: 1px solid #fafafa;
    list-style: none;
    margin: 0;
    padding-left: 0;
}

.comment-list>li:nth-child(even) {
    background-color: #fafafa;
}

.comment-list article,
.comment-list .pingback,
.comment-list .trackback {
    padding: 1em;
}

.comment-list .children {
    list-style: none;
    margin: 0;
}

.comment-list .children>li {
    padding-left: 0.75em;
}

.comment-author {
    color: var(--color-accent);
    margin-bottom: 0.4em;
}

.comment-author .avatar {
    float: left;
    height: 20px;
    margin-right: 0.75em;
    position: relative;
    width: 20px;
}

.bypostauthor>article .fn:after {
    content: "\f304";
    left: 3px;
    position: relative;
    top: 5px;
}

.comment-metadata,
.pingback .edit-link {
    color: #686868;
    font-size: .8em;
    line-height: 1.6;
}

.comment-metadata {
    margin-bottom: 1.2em;
}

.comment-metadata a,
.pingback .comment-edit-link {
    color: #686868;
}

.comment-metadata a:hover,
.comment-metadata a:focus,
.pingback .comment-edit-link:hover,
.pingback .comment-edit-link:focus {
    color: var(--color-accent);
}

.comment-metadata .edit-link,
.pingback .edit-link {
    display: inline-block;
}

.comment-metadata .edit-link:before,
.pingback .edit-link:before {
    content: "\002f";
    display: inline-block;
    opacity: 0.7;
    padding: 0 0.5em;
}

.comment-content ul,
.comment-content ol {
    margin: 0 0 1.5em 1.25em;
}

.comment-content li>ul,
.comment-content li>ol {
    margin-bottom: 0;
}

.comment-list .reply {
    text-align: right;
}

.comment-reply-link {
    border: 1px solid #d1d1d1;
    border-radius: 2px;
    color: #ff5b45;
    display: inline-block;
    font-size: .8em;
    line-height: 1;
    margin-top: .8em;
    padding: 0.5384615385em 0.5384615385em 0.4615384615em;
}

.comment-reply-link:hover,
.comment-reply-link:focus {
    border-color: #ff5b45;
    -webkit-box-shadow: none;
    box-shadow: none;
    outline: 0;
}

.comment-form label {
    color: #686868;
    display: block;
    font-size: .8em;
    letter-spacing: 0.076923077em;
    line-height: 1.6153846154;
    margin-bottom: 0.5384615385em;
    text-transform: uppercase;
}

.comment-list .comment-form {
    padding-bottom: 1.75em;
}

.comment-notes,
.comment-awaiting-moderation,
.logged-in-as,
.form-allowed-tags {
    color: #686868;
    font-size: 0.8rem;
    line-height: 1.6153846154;
    margin-bottom: 2.1538461538em;
}

.no-comments {
    border-top: 1px solid var(--color-accent);
    font-weight: bold;
    margin: 0;
    padding-top: 1.75em;
}

.comment-navigation+.no-comments {
    border-top: 0;
    padding-top: 0;
}

.form-allowed-tags code {
    font-family: Inconsolata, monospace;
}

.form-submit {
    margin-bottom: 0;
}

.required {
    color: var(--color-accent);
}

.comment-reply-title small {
    font-size: 100%;
}

.comment-reply-title small a {
    border: 0;
    float: right;
    height: 32px;
    overflow: hidden;
    width: 26px;
}

.comment-reply-title small a:hover,
.comment-reply-title small a:focus {
    color: var(--color-accent);
}

.comment-reply-title small a:before {
    content: "\f405";
    font-size: 32px;
    position: relative;
    top: -5px;
}

.comment-form #wp-comment-cookies-consent {
    margin: 0 10px 0 0;
}

.comment-form .comment-form-cookies-consent label {
    display: inline;
    letter-spacing: 0;
    text-transform: none;
}


/*-----------------------------------------------
# Infinite scroll
-----------------------------------------------*/


/* Globally hidden elements when Infinite Scroll is supported and in use. */

.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
    /* Theme Footer (when set to scrolling) */
    display: none;
}


/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */

.infinity-end.neverending .site-footer {
    display: block;
}


/*-----------------------------------------------
# Media
-----------------------------------------------*/

.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
    border: none;
    margin-bottom: 0;
    margin-top: 0;
    padding: 0;
}


/* Make sure embeds and iframes fit their containers. */

embed,
iframe,
object {
    max-width: 100%;
}

.responsive-video {
    margin-bottom: 1em;
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 0;
    height: 0;
    overflow: hidden;
}

.responsive-video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


/* Make sure logo link wraps around logo image. */

.custom-logo-link {
    display: inline-block;
}


/*-----------------------------------------------
## Captions
-----------------------------------------------*/

.wp-caption {
    margin-bottom: 1.5em;
    max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.wp-caption .wp-caption-text {
    margin: 0.8075em 0;
}

.wp-caption-text {
    text-align: center;
}


/*-----------------------------------------------
## Galleries
-----------------------------------------------*/

.gallery {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-bottom: 1.5em;
}

.gallery-item {
    background-color: var(--color-accent);
    color: #fff;
    display: inline-block;
    -webkit-box-flex: 1;
    -ms-flex: 1 0 auto;
    flex: 1 0 auto;
    font-style: italic;
    margin-bottom: 0.5em;
    margin-right: 0.5em;
    text-align: center;
    vertical-align: top;
    width: 100%;
}

.gallery-item:nth-of-type(even) {
    background-color: var(--color-accent-light);
}

.gallery-columns-2 .gallery-item {
    max-width: calc(50% - 0.5em);
}

.gallery-columns-3 .gallery-item {
    max-width: calc(100% / 3 - 0.5em);
}

.gallery-columns-4 .gallery-item {
    max-width: calc(25% - 0.5em);
}

.gallery-columns-5 .gallery-item {
    max-width: calc(20% - 0.5em);
}

.gallery-columns-6 .gallery-item {
    max-width: calc(16.666% - 0.5em);
}

.gallery-columns-7 .gallery-item {
    max-width: calc(14.278% - 0.5em);
}

.gallery-columns-8 .gallery-item {
    max-width: calc(12.5% - 0.5em);
}

.gallery-columns-9 .gallery-item {
    max-width: calc(11.1% - 0.5em);
}

.gallery-caption {
    display: block;
    font-size: .9em;
    padding: 0 .2em .6em;
}

@media (max-width: 520px) {
    .gallery-columns-4 .gallery-item {
        max-width: calc(100% / 3 - 0.5em);
    }
}


/*-----------------------------------------------
## Google Maps
-----------------------------------------------*/

.europass-map-container {
    background-color: var(--color-accent);
    background-image: url('img/apostrophe-white.svg');
    background-position: calc(100% - 0.625em) 0.625em;
    background-repeat: no-repeat;
    background-size: 1.75em auto;
    padding-right: 3em;
}

.europass-map {
    height: 440px;
    width: 100%;
}

.europass-map {
    position: relative;
    padding-bottom: 35%;
    height: 0;
    overflow: hidden;
}

.europass-map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.map-infobox {
    display: block;
    padding-bottom: 5px;
}

.map-infobox strong {
    color: var(--color-accent);
}

.map-link {
    display: block;
    padding-top: 5px;
    border-top: 1px solid var(--color-accent);
}

a.noshadow {
    padding-bottom: 0;
}

a.noshadow:hover {
    -webkit-box-shadow: none;
    box-shadow: none;
    text-decoration: underline;
}

.payment-methods {
    display: flex;
    gap: 0.6em;
    flex-wrap: wrap;
    margin-top: 1.5em;
}

/*-----------------------------------------------
# Shortcodes
-----------------------------------------------*/


/*--- Accordion ---*/

.accordion {
    position: relative;
}

.accordion.standard {
    margin-top: 1.5em;
}

.accordion.standard+.accordion.standard {
    margin-top: 0;
}

.accordion summary {
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    color: var(--color-links);
    cursor: pointer;
    /* Remove default summary icon */
    display: block;
    font-size: 1.3em;
    font-weight: 600;
    margin-top: 0;
    margin-bottom: .875em;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
}

.accordion.light summary {
    font-size: 1.1em;
    margin-top: 0.3em;
    padding-top: 0.2em;
    padding-bottom: 0.2em;
}

.accordion summary .icon {
    float: right;
}

.accordion[open] {
    border-bottom: 1px solid #ccc;
    margin-bottom: 1em;
    padding-bottom: 1em;
}

.accordion.faq {
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

h2+.accordion.faq,
.accordion.faq:last-child {
    border-top: 0;
}

.accordion.faq summary {
    border: 0;
    font-size: 1.125em;
    margin-bottom: 0;
    padding-bottom: 0.65em;
    padding-top: 0.65em;
}

.accordion.faq .icon {
    font-size: 1.2em;
    margin-top: -2px
}

.accordion.faq .icon:last-child {
    display: none;
}

.accordion.faq[open] {
    margin-bottom: 0;
}

.accordion.faq[open] .icon:first-child {
    display: none;
}

.accordion.faq[open] .icon:last-child {
    display: block;
}

@media (max-width: 768px) {
    .accordion.faq summary {
        display: flex;
        justify-content: space-between;
        font-size: 1em;
        gap: 1em;
        line-height: 1.3
    }
    .accordion.faq summary .icon {
        margin-top: 0;
    }
}

.accordion.faq+.accordion.faq {
    border-top: 0;
    margin-top: 0;
}


/* Introbox */

.introbox {
    margin-top: 2em;
    margin-bottom: 2em;
}

.introbox .button {
    display: inline-block;
    margin-top: 1.8em;
}

.introbox-info {
    margin-bottom: 1.5em;
}

.introbox-links {
    background-color: var(--color-links);
    padding: 0.6em 1em 0.5em;
}

.introbox-links svg {
    margin-top: 0.2em;
}

.introbox .introbox-links a,
.introbox .introbox-links a:visited {
    -webkit-box-shadow: none;
    box-shadow: none;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    font-size: 0.95em;
    width: 100%;
}

.introbox .introbox-links a:hover,
.introbox .introbox-links a:focus {
    opacity: 0.8;
}

.introbox .introbox-links a:active {
    color: var(--color-alt);
    opacity: 1;
}

.introbox-links a {
    font-weight: 600;
}

.introbox-links a:not(.button) {
    text-decoration: none;
}

.introbox-links a span {
    padding-right: 0.4em;
}

.introbox-links a:nth-child(2) {
    border-top: 1px solid #fff;
    margin-top: 0.2em;
    padding-top: 0.5em;
}

h2+.introbox {
    margin-top: 1em;
}

.introbox-img img {
    display: block;
}

@media (min-width: 48em) {
    .introbox-info {
        float: left;
        margin-right: 3em;
        width: calc(50% - 1.5em);
    }
    .introbox-img {
        float: right;
        width: calc(50% - 1.5em);
    }
    .introbox-img img {
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: 50% 10%;
        object-position: 50% 10%;
        height: 28em;
    }
    .introbox-img .nocrop img {
        height: auto;
    }
}

@media (min-width: 1280px) {
    .introbox-info {
        margin-right: 0;
        width: calc(100% / 3 - 2em);
    }
    .introbox-img {
        width: calc(100% / 3 * 2 - 1em);
    }
    .introbox-img .crop {
        max-height: 26em;
        overflow: hidden;
    }
    .introbox-img .crop img {
        margin-top: 13em;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
    }
}


/*--- Rows and columns shortcodes ---*/

.row {
    margin-top: 1.5em;
    margin-bottom: 1.5em;
}

h3+.row {
    margin-top: 2em;
}

p+.row {
    margin-top: 3em;
}

.row>h2,
.row>p {
    margin-left: auto;
    margin-right: auto;
    max-width: 800px;
}

.row>h2:first-child {
    margin-bottom: 2.5rem;
}

.row>h2+p {
    margin-bottom: 3em;
    margin-top: -1.8rem;
}

.column {
    margin-bottom: 1em;
}

.column svg {
    margin-right: 0.5em;
}

.column h3:first-child,
.column .h3:first-child {
    margin-top: 0;
}

.row.gray,
.row.blue {
    padding-bottom: 1.5em;
}

.row.has-background {
    margin-top: 5em;
    margin-bottom: 5em;
    margin-left: calc(var(--site-padding) * -1);
    width: calc(100% + (2 * var(--site-padding)));
}

.row.has-background+.row:not(.has-background)>h2 {
    margin-top: 0;
}

.row.has-background>*:first-child {
    margin-top: 0;
}

@media (min-width: 48em) {
    .has-columns {
        display: grid;
        gap: 0 2em;
        grid-template-columns: repeat(2, 1fr);
    }
    .has-columns.align-items-center {
        align-items: center;
    }
    .has-columns .column {
        margin-bottom: 0;
    }
    .row>*:not(.column) {
        grid-column: 1 / 3;
    }
    .row>h2,
    .row>p {
        text-align: center;
    }
    .column h2:first-child,
    .column h3:first-child,
    .column h4:first-child {
        margin-top: 0;
    }
    .two-columns.reverse-columns .column:first-child {
        order: 2;
    }
    .two-columns.reverse-columns .column:last-child {
        order: 1;
    }
    .row.services {
        border: 1px solid var(--color-accent);
        margin-left: auto;
        margin-right: auto;
        max-width: 960px;
        padding: 1.8em 2em 2em;
    }
}

@media (min-width: 1024px) {
    .two-columns {
        column-gap: 3em;
    }
    .three-columns,
    .six-columns {
        grid-template-columns: repeat(3, 1fr);
    }
    .three-columns>*:not(.column),
    .six-columns>*:not(.column) {
        grid-column: 1 / 4;
    }
}

@media (min-width: 1280px) {
    .has-columns {
        column-gap: 2.5em;
    }
    .two-columns {
        column-gap: 4em;
    }
    .four-columns {
        grid-template-columns: repeat(4, 1fr);
    }
    .four-columns>*:not(.column) {
        grid-column: 1 / 5;
    }
    .five-columns {
        grid-template-columns: repeat(5, 1fr);
    }
    .five-columns>*:not(.column) {
        grid-column: 1 / 6;
    }
    .six-columns {
        grid-template-columns: repeat(6, 1fr);
    }
    .six-columns>*:not(.column) {
        grid-column: 1 / 7;
    }
    .row.gray,
    .row.blue {
        padding-bottom: 2.5em;
    }
}

.cta-text {
    color: var(--color-alt);
    display: block;
    font-size: 1.6em;
    font-weight: 700;
    margin: 2em 0 .4em;
}


/*--- Example ---*/

.example_text {
    background-color: var(--color-light-background);
    border-left: 4px solid var(--color-accent);
    display: block;
    padding: 0.2em 0.5em 0.2em 1em
}

.example_note {
    display: block;
    font-size: 0.9em;
    font-style: italic;
    padding-top: 0.2em;
    padding-left: calc(1em + 4px);
}


/*--- Icon Box ---*/

.icon-box {
    display: flex;
    margin-top: .4em;
    margin-bottom: .8em;
    text-align: left;
}

.icon-box:last-of-type {
    margin-bottom: 1.5em;
}

.icon-box svg {
    color: var(--color-text-light);
    float: left;
    margin-right: 0.5em;
}

.icon-box-text {
    display: block;
    float: left;
    width: calc(100% - 56px);
}

.icon-box .fa-2x+.icon-box-text {
    margin-top: 0.3em;
}

@media (min-width: 1024px) {
    .entry-content .icon-box-text {
        font-size: 1.125em
    }
}

/*--- Media Text ---*/

.media-text {
    display: grid;
}

.media-text img {
    display: inline-block;
    margin-bottom: 1em;
}

@media ( min-width: 340px ) {
    .media-text {
        display: grid;
        gap: 1em;
        grid-template-columns: 70px 1fr;
        margin-bottom: 1em;
        text-align: left;
    }
    .media-text img {
        margin-bottom: 0;
    }
}

@media ( min-width: 768px ) {
    .media-text {
        align-items: center;
        grid-template-columns: 100px 1fr;
    }
    .media-text img {
        max-width: 100px;
    }
}

/*--- Page Card ---*/

.entry-content .page-card {
    margin: 0 auto 2em;
}

.entry-content .page-card.is-style-default {
    display: grid;
    grid-template-columns: 3fr 2fr;
    grid-template-rows: auto 1fr auto;
    gap: 0.75em;
    -webkit-transition: all .2s;
    -o-transition: all .2s;
    transition: all .2s;
}

.page-card.is-style-default .page-card_image {
    grid-column: 2 / 3;
    grid-row: 2 / 4;
    line-height: 0;
    margin-bottom: 0;
    overflow: hidden;
}

.page-card.is-style-default .page-card_image img {
    -webkit-transition: -webkit-transform .3s ease-in;
    transition: -webkit-transform .3s ease-in;
    -o-transition: transform .3s ease-in;
    transition: transform .3s ease-in;
    transition: transform .3s ease-in, -webkit-transform .3s ease-in;
}

.page-card.is-style-default a:hover .page-card_image img,
.page-card.is-style-default a:active .page-card_image img,
.page-card.is-style-default a:focus .page-card_image img {
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
}

.page-card .page-card_title {
    color: var(--color-accent);
    font-family: var(--font-primary);
    font-size: 1.2em;
    line-height: 1.2;
    margin-top: 0;
    -webkit-transition: all 0.2s ease-in;
    -o-transition: all 0.2s ease-in;
    transition: all 0.2s ease-in;
}

.page-card.is-style-default .page-card_title {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    margin-bottom: 0;
}

.page-card .page-card_title a {
    color: var(--color-links);
    text-decoration: none;
}

.page-card .page-card_title a:hover {
    color: var(--color-links-hover);
    text-decoration: underline;
}

.page-card .page-card_title a:active,
.page-card .page-card_title a:focus {
    color: var(--color-alt);
}

.page-card .page-card_text {
    color: var(--color-text);
    line-height: 1.4;
}

.page-card.is-style-default .page-card_text {
    font-size: 0.85em;
    grid-column: 1 / 2;
    grid-row: 2 / 3;
    margin-bottom: 0;
}

.page-card .page-card_cta {
    font-weight: 600;
    gap: 0.5em;
    line-height: 1.2;
    -webkit-transition: all 0.2s ease-in;
    -o-transition: all 0.2s ease-in;
    transition: all 0.2s ease-in;
}

.page-card.is-style-default .page-card_cta {
    font-size: 0.9em;
    grid-column: 1 / 2;
    grid-row: 3 / 4;
}

.page-card .page-card_cta .icon {
    margin-left: 0.4em;
}

.page-card.is-style-excerpt {
    border: 2px solid var(--color-accent);
    padding: 1.25em;
}

.page-card.is-style-excerpt .page-card_text,
.page-card.is-style-excerpt .page-card_cta {
    font-size: 1rem;
}

@media (min-width: 460px) {
    .entry-content .page-card.is-style-default {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 767px) {
    body:not(.home) .column:nth-child(even) .page-card.is-style-default {
        background-color: #DFE6EF;
        margin-left: calc(var(--site-padding) * -1);
        padding: 1em var(--site-padding);
        width: calc(100% + (2 * var(--site-padding)));
    }
}

@media (min-width: 768px) {
    body:not(.page-template-course) .entry-content .page-card.is-style-default {
        display: block;
    }
    body:not(.page-template-course) .entry-content .page-card.is-style-default .page-card_image {
        margin-bottom: 0.5em;
    }
    body:not(.page-template-course) .entry-content .page-card.is-style-default .page-card_image img {
        height: auto;
        object-fit: unset;
    }
    body:not(.page-template-course) .entry-content .page-card.is-style-default .page-card_text {
        font-size: 1em;
        margin-bottom: 1rem;
    }
    body:not(.page-template-course) .entry-content .page-card.is-style-default .page-card_title {
        font-size: 1.6em;
        line-height: 1.35;
        margin-bottom: 0.75rem;
    }
    .page-card.is-style-excerpt .page-card_title {
        font-size: 1.4em;
    }
}

@media (min-width: 1024px) {
    .home .page-card.is-style-default {
        margin-bottom: 0;
    }
}


/*--- Review Box ---*/

.review-box {
    color: var(--color-text-light);
    font-size: 1.2em;
    margin-bottom: 1.5em;
    padding-right: 0.5em;
}

.column .review-box:last-child {
    margin-bottom: 0;
}

.review-box+p {
    margin-top: 3em;
}

.review-box .icon {
    color: var(--color-accent);
    font-size: 2em;
}

.blue .review-box {
    color: #fff;
}

.blue .review-box svg {
    color: #fff;
}

.review-text {
    display: block;
    margin-top: 0.5em;
    margin-bottom: 1em;
    max-width: 28em;
}

.review-author {
    font-weight: 600;
}

.page-template-course .entry-content>.review-box,
.single-product .woocommerce-tabs>.review-box {
    font-size: 1.1em;
}

.page-template-course .entry-content>.review-box .review-text,
.single-product .woocommerce-tabs>.review-box .review-text {
    max-width: none;
}


/*--- Conditions Box ---*/

.conditions-box {
    background-color: var(--color-light-background);
    margin-top: 2em;
    margin-bottom: 2em;
    padding: 2em;
}

.conditions-box+h2,
.conditions-box+h3 {
    margin-top: 2em;
}

.conditions-cta {
    margin: 1em 0.5em 1em;
    text-align: center;
}

.conditions-cta .cta-text {
    margin-top: 0;
}

.conditions-cta>svg {
    color: var(--color-alt);
    font-size: 2em;
    margin-top: 0.5em;
}

.conditions-text>h2,
.conditions-text>h3 {
    margin-top: 0;
}

.conditions-box h4 {
    margin-top: 0;
}

@media (min-width: 48em) {
    .conditions-box .column {
        margin-bottom: 0;
        max-width: none;
    }
}


/*-- Alphabet --*/

.alphabet-card {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    border-bottom: 1px solid #f2f2f2;
    margin-bottom: 1em;
    padding-bottom: 1em;
    max-width: 450px;
    width: 100%;
}

.ac-letter {
    color: var(--color-accent);
    font-size: 4em;
    text-align: center;
    width: 20%;
}

.ac-example {
    font-size: 1.125em;
    padding: 0.5em;
    width: 55%;
}

.alphabet-card img {
    width: 25%;
}

.ac-accent {
    color: crimson;
}


/* CTA Button */

.ep-cta-button {
    display: block;
    margin-bottom: 20px;
    text-align: center;
}


/*-----------------------------------------------
# Plugins
-----------------------------------------------*/


/*-----------------------------------------------
## Acowebs Woocommerce Dynamic Pricing
-----------------------------------------------*/

.call-to-action .wdp_table_outter {
    padding-bottom: 1.8em;
}


/*-----------------------------------------------
## Contact Form 7
-----------------------------------------------*/

.wpcf7 label {
    display: inline-block;
    font-weight: 600;
    margin-top: 0.5em;
    margin-bottom: .4em;
    width: 100%;
}

.wpcf7 label * {
    font-style: normal;
}

.wpcf7 p {
    margin-bottom: 0;
}

.wpcf7 textarea {
    max-width: var(--narrow-width);;
}

.wpcf7-form-control-wrap {
    padding-bottom: 0.5em;
}

.radio-ch .wpcf7-list-item {
    display: block;
}

span.wpcf7-list-item.first,
.radio-ch span.wpcf7-list-item,
.wpcf7-acceptance span.wpcf7-list-item {
    margin-left: 0;
}

.wpcf7 h3 {
    margin-top: 0.75em;
    margin-bottom: 0.25em;
}

.wpcf7-submit[disabled] {
    cursor: not-allowed;
    opacity: 0.7;
}

.wpcf7-submit~.accept-notice {
    display: block;
    font-size: 0.9em;
    font-style: italic;
    margin-top: 0.5em;
    opacity: 0;
    transition: opacity 0.2s ease-in;
}

.wpcf7-submit:disabled~.accept-notice {
    opacity: 1;
}

.course-options .private-lessons .wpcf7-list-item label {
    margin: 0 0 0.2em 0;
}

.course-options .private-lessons {
    display: block;
    margin-bottom: 0em;
}

.course-options>label {
    margin-bottom: 0.25em;
}

.course-options,
.course-choice {
    margin-bottom: 0.8em;
}

.course-choice .weeks .wpcf7-list-item,
.course-choice .weeks-promo .wpcf7-list-item {
    display: block;
    margin-left: 0;
}

.course-choice .weeks .wpcf7-list-item label,
.course-choice .weeks-promo .wpcf7-list-item label {
    margin: 0 0 0.1em 0;
}

.course-choice .weeks .wpcf7-list-item label input,
.course-choice .weeks-promo .wpcf7-list-item label input {
    margin-right: 0.25em;
}

.not-available {
    border: 3px solid #ff5b45;
    max-width: 38em;
    padding: 0.75em;
}

.booking-form-intro {
    max-width: 38em;
}

.booking-form-intro p {
    margin-bottom: 0.5em;
}

@media (min-width: 37.5em) {
    .form-personal-information p {
        display: inline-block;
        margin-right: 4%;
        width: 45%
    }
    .form-course-information,
    .form-extras {
        display: inline-block;
        vertical-align: top;
        margin-top: 2em;
        margin-right: 4%;
        width: 45%
    }
    .radio-ch .wpcf7-list-item-label {
        font-size: 1.1em;
    }
}


/*-----------------------------------------------
## MailChimp for WordPress
-----------------------------------------------*/

.newsletter:not(.page-card) {
    background-color: #f2f2f2;
    padding: 2em 2em;
}

.newsletter h2 {
    margin-top: 0;
}

.newsletter p {
    font-size: 1.1em;
}

.mc4wp-response {
    background-color: #CEEAE7;
    font-weight: bold;
    margin-bottom: -2em;
    margin-left: -2em;
    margin-top: 1em;
    width: calc(100% + 4em)
}

.mc4wp-alert {
    padding: 0.75em 2em;
}

.woocommerce form .form-row.mc4wp-checkbox-woocommerce label {
    line-height: 1.2
}

.woocommerce form .form-row.mc4wp-checkbox-woocommerce .input-checkbox {
    margin-top: 4px
}

.woocommerce-checkout input[type="checkbox"]#_mc4wp_subscribe_woocommerce {
    float: none;
}


/*-----------------------------------------------
## Easy Table of Contents
-----------------------------------------------*/

#ez-toc-container,
.ez-toc-widget-container {
    background-color: var(--color-light-background);
    font-size: 0.95em;
    padding-bottom: 1rem;
}

#ez-toc-container .ez-toc-title-container,
.ez-toc-widget-container .widget-title {
    background-color: var(--color-accent);
    margin-bottom: 1rem;
    padding: 8px 12px;
}

.ez-toc-title {
    color: #fff;
    display: block;
    font-family: var(--font-primary);
    font-size: 1.125rem;
    line-height: 1.35;
    margin-bottom: 0;
}

#ez-toc-container ul,
.ez-toc-widget-container ul {
    list-style: none;
    margin: 0 1em;
    padding-left: 0;
}

#ez-toc-container ul li,
.ez-toc-widget-container ul li {
    background-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='far' data-icon='arrow-right' class='svg-inline--fa fa-arrow-right' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23305777' d='M264.6 70.63l176 168c4.75 4.531 7.438 10.81 7.438 17.38s-2.688 12.84-7.438 17.38l-176 168c-9.594 9.125-24.78 8.781-33.94-.8125c-9.156-9.5-8.812-24.75 .8125-33.94l132.7-126.6H24.01c-13.25 0-24.01-10.76-24.01-24.01s10.76-23.99 24.01-23.99h340.1l-132.7-126.6C221.8 96.23 221.5 80.98 230.6 71.45C239.8 61.85 254.1 61.51 264.6 70.63z'%3E%3C/path%3E%3C/svg%3E");
    background-position: left 4px;
    background-repeat: no-repeat;
    background-size: auto 1rem;
    color: var(--color-links);
    height: auto !important;
    margin-bottom: 0.3em;
    padding-left: 1.5rem;
}

#ez-toc-container ul ul,
.ez-toc-widget-container ul ul {
    margin-left: 0;
}

#ez-toc-container ul ul li,
.ez-toc-widget-container ul ul li {
    background-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='far' data-icon='angle-right' class='svg-inline--fa fa-angle-right' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 512'%3E%3Cpath fill='%23305777' d='M89.45 87.5l143.1 152c4.375 4.625 6.562 10.56 6.562 16.5c0 5.937-2.188 11.87-6.562 16.5l-143.1 152C80.33 434.1 65.14 434.5 55.52 425.4c-9.688-9.125-10.03-24.38-.9375-33.94l128.4-135.5l-128.4-135.5C45.49 110.9 45.83 95.75 55.52 86.56C65.14 77.47 80.33 77.87 89.45 87.5z'%3E%3C/path%3E%3C/svg%3E");
    background-position: 0.25em 4px;
    padding-left: 1.25rem;
}

#ez-toc-container ul ul li:first-child,
.ez-toc-widget-container ul ul li:first-child {
    margin-top: 0.3em;
}

h2>span,
h3>span {
    scroll-margin-top: var(--header-height);
}

/*-----------------------------------------------
## Testimonial Pro
-----------------------------------------------*/

.tpro-testimonial-content-area {
    border-top-left-radius: 1em;
    border-top-right-radius: 1em;
}

.tpro-testimonial-meta-area {
    border-bottom-left-radius: 1em;
    border-bottom-right-radius: 1em;
}

.sp-testimonial-pro-section .sp-testimonial-pro .tpro-testimonial-content-area {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='%2331adb3' d='M336 480h160c26.467 0 48-21.533 48-48V272c0-26.467-21.533-48-48-48h-50.386c9.567-31.726 34.591-49.541 66.159-60.461C531.049 156.87 544 138.654 544 118.208V80.01c0-30.932-29.095-54.082-59.551-46.591C353.208 65.7 288 163.181 288 296v136c0 26.467 21.533 48 48 48zm-16-184c0-119.516 56.608-203.112 172.092-231.517C502.212 61.993 512 69.582 512 80v38.208c0 6.788-4.274 12.87-10.688 15.089-57.863 20.016-91.691 58.979-92.147 122.703H496c8.836 0 16 7.163 16 16v160c0 8.837-7.164 16-16 16H336c-8.836 0-16-7.163-16-16V296zM48 480h160c26.467 0 48-21.533 48-48V272c0-26.467-21.533-48-48-48h-50.386c9.567-31.726 34.591-49.541 66.159-60.461C243.049 156.87 256 138.654 256 118.208V80.01c0-30.932-29.095-54.082-59.551-46.591C65.208 65.7 0 163.181 0 296v136c0 26.467 21.533 48 48 48zM32 296C32 176.484 88.608 92.888 204.092 64.483 214.212 61.993 224 69.582 224 80v38.208c0 6.788-4.274 12.87-10.688 15.089-57.863 20.016-91.691 58.979-92.147 122.703H208c8.836 0 16 7.163 16 16v160c0 8.837-7.164 16-16 16H48c-8.836 0-16-7.163-16-16V296z'/%3E%3C/svg%3E") !important;
    ;
    background-position: 24px 16px !important;
    background-repeat: no-repeat !important;
    background-size: 36px !important;
}

.home .sp-testimonial-pro-section .sp-testimonial-pro .tpro-testimonial-content-area {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='%23fff' d='M336 480h160c26.467 0 48-21.533 48-48V272c0-26.467-21.533-48-48-48h-50.386c9.567-31.726 34.591-49.541 66.159-60.461C531.049 156.87 544 138.654 544 118.208V80.01c0-30.932-29.095-54.082-59.551-46.591C353.208 65.7 288 163.181 288 296v136c0 26.467 21.533 48 48 48zm-16-184c0-119.516 56.608-203.112 172.092-231.517C502.212 61.993 512 69.582 512 80v38.208c0 6.788-4.274 12.87-10.688 15.089-57.863 20.016-91.691 58.979-92.147 122.703H496c8.836 0 16 7.163 16 16v160c0 8.837-7.164 16-16 16H336c-8.836 0-16-7.163-16-16V296zM48 480h160c26.467 0 48-21.533 48-48V272c0-26.467-21.533-48-48-48h-50.386c9.567-31.726 34.591-49.541 66.159-60.461C243.049 156.87 256 138.654 256 118.208V80.01c0-30.932-29.095-54.082-59.551-46.591C65.208 65.7 0 163.181 0 296v136c0 26.467 21.533 48 48 48zM32 296C32 176.484 88.608 92.888 204.092 64.483 214.212 61.993 224 69.582 224 80v38.208c0 6.788-4.274 12.87-10.688 15.089-57.863 20.016-91.691 58.979-92.147 122.703H208c8.836 0 16 7.163 16 16v160c0 8.837-7.164 16-16 16H48c-8.836 0-16-7.163-16-16V296z'/%3E%3C/svg%3E") !important;
    ;
    background-position: 24px 20px !important;
    background-repeat: no-repeat !important;
    background-size: 36px !important;
}


/*-----------------------------------------------
## YITH WooCommerce Checkout Manager
-----------------------------------------------*/

#additional_language_level_field .woocommerce-input-wrapper {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

#additional_language_level_field .woocommerce-input-wrapper input {
    margin-top: -2px;
}

#additional_language_level_field .woocommerce-input-wrapper label {
    line-height: 1.2;
    margin-right: 0.5em;
}

.woocommerce form #additional_language_level_field .woocommerce-input-wrapper .description {
    background: var(--color-light-background);
    color: var(--color-text);
    border-radius: 0;
    padding: 0;
    margin: 0.5em 0 0;
    clear: both;
    display: block !important;
    position: static;
    width: 100%;
}

.woocommerce form #additional_language_level_field .woocommerce-input-wrapper .description::before {
    display: none;
}

#add_payment_method #payment ul.payment_methods li input,
.woocommerce-cart #payment ul.payment_methods li input,
.woocommerce-checkout #payment ul.payment_methods li input {
    margin: 0.7em 0.8em 0 0;
}

.woocommerce-checkout form .form-row label.checkbox .woocommerce-terms-and-conditions-checkbox-text {
    line-height: 1.35 !important;
}

.woocommerce-terms-and-conditions-wrapper {
    font-size: 1em;
}

.entry-content .woocommerce-terms-and-conditions-wrapper p {
    font-size: 1em;
    margin-top: 0;
}

.woocommerce-checkout form .form-row label.checkbox input#terms {
    margin-top: 4px;
}