:root {
    --font-primary: 'Ubuntu', sans-serif;
    --font-secondary: 'Tahu', sans-serif;
    --clr-blue: #003c73;
    --clr-lightBlue: #34b5e8;
    --clr-orange: #f49a51;
    --clr-darkGrey: #404040;
    --clr-red: #da0d24;
    --clr-primary: white;
    --clr-clickable: var(--clr-blue);
    --font-clr-primary: var(--clr-darkGrey);
    --content-width: 1455px;
    --z-menu: 100;
}

@font-face {
    font-family: 'Tahu';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: local(''), url('../assets/fonts/Tahu/Tahu.woff') format('woff');
}

@font-face {
    font-family: 'Ubuntu';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: local(''),
        url('../assets/fonts/Ubuntu/ubuntu-v20-latin-300.woff2') format('woff2'),
        url('../assets/fonts/Ubuntu/ubuntu-v20-latin-300.woff') format('woff');
}

@font-face {
    font-family: 'Ubuntu';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: local(''),
        url('../assets/fonts/Ubuntu/ubuntu-v20-latin-regular.woff2')
            format('woff2'),
        url('../assets/fonts/Ubuntu/ubuntu-v20-latin-regular.woff')
            format('woff');
}

@font-face {
    font-family: 'Ubuntu';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: local(''),
        url('../assets/fonts/Ubuntu/ubuntu-v20-latin-500.woff2') format('woff2'),
        url('../assets/fonts/Ubuntu/ubuntu-v20-latin-500.woff') format('woff');
}

@font-face {
    font-family: 'Ubuntu';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: local(''),
        url('../assets/fonts/Ubuntu/ubuntu-v20-latin-700.woff2') format('woff2'),
        url('../assets/fonts/Ubuntu/ubuntu-v20-latin-700.woff') format('woff');
}

html,
body {
    margin: 0;
    font-family: var(--font-primary);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: normal;
    color: var(--font-clr-primary);
    text-rendering: optimizeLegibility;
    scroll-behavior: smooth;
    scroll-padding-top: 135px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

*:not(.amadeus-ibe) a {
    color: var(--clr-clickable);
    text-decoration: none;
}

.button-reset {
    margin: 0;
    padding: 0;
    border: none;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.u-contentWidth {
    --paddingX: 18px;
    width: min(100% - var(--paddingX), 1455px);
    width: min(100% - var(--paddingX), var(--content-width));
    margin-left: auto;
    margin-right: auto;
}

@media screen and (min-width: 769px) {
    .u-contentWidth {
        --paddingX: 60px;
    }
}

@media screen and (min-width: 1026px) {
    .u-contentWidth {
        --paddingX: 100px;
    }
}

@media screen and (min-width: 1367px) {
    .u-contentWidth {
        --paddingX: 160px;
    }
}

@media screen and (min-width: 1540px) {
    :root {
        --content-width: 1520px;
    }
}

.BurgerMenu {
    position: relative;
    width: 60px;
    height: 38px;
    background-color: transparent;
    color: var(--clr-blue);
    cursor: pointer;
}

.BurgerMenu.is-Active {
    position: relative;
    z-index: calc(var(--z-menu) + 10);
    color: #ffffff;
}

.BurgerMenu-line {
    position: absolute;
    left: 0;
    display: block;
    width: 100%;
    height: 6px;
    border-radius: 6px;
    background-color: currentColor;
    opacity: 1;
    transform: rotate(0deg);
    transition: 0.25s ease-in-out;
}

.BurgerMenu-line:nth-child(1) {
    top: 0;
}

.BurgerMenu-line:nth-child(2),
.BurgerMenu-line:nth-child(3) {
    top: 16px;
}

.BurgerMenu-line:nth-child(4) {
    top: 32px;
}

.BurgerMenu.is-Active .BurgerMenu-line:nth-child(1) {
    top: 16px;
    left: 50%;
    width: 0;
}

.BurgerMenu.is-Active .BurgerMenu-line:nth-child(2) {
    transform: rotate(45deg);
}

.BurgerMenu.is-Active .BurgerMenu-line:nth-child(3) {
    transform: rotate(-45deg);
}

.BurgerMenu.is-Active .BurgerMenu-line:nth-child(4) {
    top: 16px;
    left: 50%;
    width: 0;
}

.Header-desktop {
    position: sticky;
    z-index: 101;
    top: 0;
    display: none;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100vw;
    padding: 30px 40px;
    background-color: rgba(255, 255, 255, 0.8);
    transition: background-color 250ms ease-in-out,
        -webkit-backdrop-filter 250ms ease-in-out;
    transition: background-color 250ms ease-in-out,
        backdrop-filter 250ms ease-in-out;
    transition: background-color 250ms ease-in-out,
        backdrop-filter 250ms ease-in-out,
        -webkit-backdrop-filter 250ms ease-in-out;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.Header-desktop > div {
    flex: 1;
}

.Header-desktop.is-Active {
    background: var(--clr-blue);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

@media screen and (min-width: 1026px) {
    .Header-desktop {
        display: flex;
    }
}

.Header-center {
    display: flex;
    flex: 5;
    align-items: center;
    justify-content: center;
}

.Header-left {
    display: flex;
    align-items: center;
}

.Header-logo {
    --logo-color: #104375;
    --logo-middle-color: #104375;
}

.Header-logo * {
    transition: fill 250ms ease-in-out;
}

@media screen and (max-width: 1800px) {
    .Header-logo {
        max-width: 500px;
    }
}
@media screen and (max-width: 1600px) {
    .Header-logo {
        max-width: 400px;
    }
}

@media screen and (max-width: 1400px) {
    .Header-logo {
        max-width: 300px;
    }
}

.Header-desktop.is-Active .Header-logo {
    --logo-color: #ffffff;
    --logo-middle-color: #0e64aa;
}

.Header-right {
    display: flex;
    justify-content: flex-end;
}

.Header-rightInner {
    display: flex;
    flex-direction: column;
}

.Header-phone,
.Header-whatsapp {
    display: flex;
    align-items: center;
    margin-bottom: 13px;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--clr-blue);
}

.Header-whatsapp {
    display: none;
}

.Header-phone svg,
.Header-whatsapp svg {
    width: 22px;
    height: 22px;
    margin-right: 10px;
    fill: var(--clr-blue);
}

.Header-phone > div,
.Header-whatsapp > div {
    width: 100%;
}

.Header-openingHours {
    line-height: 1.4375rem;
    color: var(--clr-blue);
}

.Header-openingHours p {
    margin: 0;
}

.Header-openingHours p + p {
    margin-top: 2px;
}

.Header-mobile {
    position: sticky;
    z-index: 101;
    top: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100vw;
    background-color: var(--clr-blue);
}

@media screen and (min-width: 1026px) {
    .Header-mobile {
        display: none;
    }
}

.Header-mobile .BurgerMenu {
    display: block;
    color: #ffffff;
    transform: scale(0.5);
}

.Header-mobileLeft {
    padding: 15px 20px;
}

@media screen and (max-width: 370px) {
    .Header-mobileLeft {
        padding: 15px 0 15px 9px;
    }
}

.Header-mobileLogo {
    --logo-color: #ffffff;
}

.Header-franchiseFinder {
    display: flex;
    flex-direction: column;
    margin-left: 55px;
}

@media screen and (max-width: 1200px) {
    .Header-franchiseFinder {
        margin-left: 35px;
    }
}

.Header-desktop.is-Active .Header-franchiseFinder {
    display: none;
}

.Header-franchiseFinder-title {
    margin-bottom: 7px;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.3125rem;
    color: var(--clr-blue);
}

.Header-franchiseFinder-input {
    padding: 10px 15px;
    border: 1px solid var(--clr-blue);
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.125rem;
    background: #ffffff;
    color: var(--clr-blue);
}

.Header-franchiseFinder-input::-moz-placeholder {
    color: var(--clr-blue);
}

.Header-franchiseFinder-input::placeholder {
    color: var(--clr-blue);
}

.Header-mobileRight {
    display: flex;
    align-items: center;
    margin-right: 10px;
}

.Header-mobilePopoverButton {
    width: 35px;
    height: 35px;
    padding: 5px;
    background: transparent;
}

.Header-mobilePopover {
    position: relative;
}

.Header-mobilePopover + .Header-mobilePopover {
    margin-left: 7px;
}

.Header-mobilePopoverButton svg {
    max-width: 100%;
    max-height: 100%;
    fill: #ffffff;
    transition: fill 250ms ease-in-out;
}

.Header-mobilePopover.is-Active .Header-mobilePopoverButton svg {
    fill: #50b4ea;
}

.Header-mobile-popover {
    position: absolute;
    top: 47px;
    right: 0;
    display: none;
    padding: 20px;
    background-color: var(--clr-blue);
    color: #ffffff;
}

.Header-mobilePopover.is-Active .Header-mobile-popover {
    display: flex;
    flex-direction: column;
    width: -moz-max-content;
    width: max-content;
}

.Header-mobile-phone,
.Header-mobile-whatsapp {
    display: flex;
    font-size: 1.5rem;
    font-weight: 600;
}

.Header-mobile-whatsapp-popover {
    display: none;
}

.Header-mobile-whatsAppButton {
    padding: 2px;
}

.Header-mobile-phone a,
.Header-mobile-whatsapp a {
    color: #ffffff;
}

.Header-mobile-phone svg,
.Header-mobile-whatsapp svg {
    width: 20px;
    margin-right: 10px;
    fill: #ffffff;
}

.Header-mobile-franchiseFinderForm {
    display: flex;
    flex-direction: column;
}

.Header-mobile-franchiseFinder-input {
    padding: 10px 15px;
    border: 1px solid var(--clr-blue);
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.125rem;
    background: #ffffff;
    color: var(--clr-blue);
}

.Header-mobile-franchiseFinder-title {
    margin-bottom: 5px;
}

.Header-desktop-franchise .BurgerMenu,
.Header-mobile-franchise .BurgerMenu,
.Header-desktop-franchise .Header-franchiseFinder,
.Header-mobile-franchise .Header-mobile-franchiseFinderButton {
    display: none;
}

.Footer {
    position: relative;
    margin-top: 70px;
    background-color: var(--clr-blue);
    color: #ffffff;
}

.Footer::before {
    content: '';
    position: absolute;
    top: 0;
    width: 100%;
    height: 30px;
    background-image: url('../assets/Footer-wavesMobile.svg');
    background-size: cover;
    transform: translateY(-60%);
}

@media screen and (min-width: 769px) {
    .Footer::before {
        height: 147px;
        background-image: url('../assets/Footer-waves.svg');
    }
}

@media screen and (min-width: 2000px) {
    .Footer::before {
        height: 187px;
    }
}

@media screen and (min-width: 769px) {
    .Footer {
        margin-top: 100px;
    }
}

.Footer-logo {
    display: none;
    margin: 0 auto;
}

.Footer-content {
    padding-top: 30px;
    padding-bottom: 25px;
}

.Footer-content .Text,
.Footer-content a {
    text-decoration: none !important;
    color: #ffffff !important;
}

.Footer-content .Column + .Column {
    margin-top: 30px;
}

@media screen and (min-width: 769px) {
    .Footer-content {
        padding-top: 80px;
    }

    .Footer-content .Column + .Column {
        margin-top: 0;
        margin-top: initial;
    }
}

.Footer-linkBar {
    padding: 12px 0 14px 0;
    text-align: center;
    background-color: rgba(0, 0, 0, 0.5);
}

.Footer-linkBar a {
    color: #ffffff;
}

.Footer-linkNavigation {
    display: flex;
    flex-direction: column;
    gap: 20px;
    justify-content: center;
}

@media screen and (min-width: 769px) {
    .Footer-linkNavigation {
        flex-direction: row;
        gap: 40px;
    }
}

.Footer-contentSocials {
    display: flex;
    flex-direction: column;
    margin-top: 25px;
}

.Footer-contentSocials-title {
    margin-bottom: 5px;
}

.Footer-contentSocials-items {
    display: flex;
    align-items: center;
}

.Footer-contentSocials-item svg {
    width: 30px;
    fill: #ffffff;
}

.Footer-contentSocials-item + .Footer-contentSocials-item {
    margin-left: 20px;
}

/* stylelint-disable comment-empty-line-before */

.Columns {
    display: flex;
    flex-direction: column;
    gap: 8px;
    gap: var(--spaces, 8px);
}

@media screen and (min-width: 769px) {
    .Columns {
        flex-direction: row;
    }
}

.Columns > * {
    flex: 0 0 100%;
    max-width: 100%;
}

@media screen and (min-width: 769px) {
    .Columns > * {
        flex: 0 0 calc(50% - 8px / 2);
        flex: 0 0 calc(50% - var(--spaces, 8px) / 2);
        max-width: 50%;
    }
}

.Columns--big {
    justify-content: space-between;
}

@media screen and (min-width: 769px) {
    .Columns--33-33-33 {
        flex-wrap: wrap;
        gap: 25px;
        gap: var(--spaces, 25px);
    }

    .Columns--33-33-33 > * {
        flex: 1 1 calc(100% / 2 - 25px);
        flex: 1 1 calc(100% / 2 - var(--spaces, 25px));
        max-width: calc(100% / 2 - 25px);
        max-width: calc(100% / 2 - var(--spaces, 25px));
    }
}

@media screen and (min-width: 769px) {
    .Columns--25-25-25-25 {
        flex-wrap: wrap;
        gap: 18px;
        gap: var(--spaces, 18px);
    }

    .Columns--25-25-25-25 > * {
        flex: 1 1 calc(50% - 18px);
        flex: 1 1 calc(50% - var(--spaces, 18px));
        max-width: calc(50% - 18px);
        max-width: calc(50% - var(--spaces, 18px));
    }
}

@media screen and (min-width: 769px) {
    .Columns--25-75 > *:nth-child(1) {
        flex: 0 0 calc(25% - 8px / 2);
        flex: 0 0 calc(25% - var(--spaces, 8px) / 2);
        max-width: 25%;
    }

    .Columns--25-75 > *:nth-child(2) {
        flex: 0 0 calc(75% - 8px / 2);
        flex: 0 0 calc(75% - var(--spaces, 8px) / 2);
        max-width: 75%;
    }

    .Columns--75-25 > *:nth-child(1) {
        flex: 0 0 calc(75% - 8px / 2);
        flex: 0 0 calc(75% - var(--spaces, 8px) / 2);
        max-width: 75%;
    }

    .Columns--75-25 > *:nth-child(2) {
        flex: 0 0 calc(25% - 8px / 2);
        flex: 0 0 calc(25% - var(--spaces, 8px) / 2);
        max-width: 25%;
    }

    .Columns--33-66 > *:nth-child(1) {
        flex: 0 0 calc(33% - 8px / 2);
        flex: 0 0 calc(33% - var(--spaces, 8px) / 2);
        max-width: 33%;
    }

    .Columns--33-66 > *:nth-child(2) {
        flex: 0 0 calc(67% - 8px / 2);
        flex: 0 0 calc(67% - var(--spaces, 8px) / 2);
        max-width: 67%;
    }

    .Columns--66-33 > *:nth-child(1) {
        flex: 0 0 calc(67% - 8px / 2);
        flex: 0 0 calc(67% - var(--spaces, 8px) / 2);
        max-width: 67%;
    }

    .Columns--66-33 > *:nth-child(2) {
        flex: 0 0 calc(33% - 8px / 2);
        flex: 0 0 calc(33% - var(--spaces, 8px) / 2);
        max-width: 33%;
    }

    .Columns--big > *:nth-child(2) {
        max-width: 37%;
    }
}

@media screen and (min-width: 1361px) {
    /* 33% - 33% - 33% */
    .Columns--33-33-33 {
        flex-wrap: nowrap;
        gap: 78px;
    }

    .Columns--33-33-33 > * {
        flex: 1 1 calc(100% / 3);
        max-width: calc(100% / 3);
    }
}

@media screen and (min-width: 1367px) {
    .Columns--25-25-25-25 {
        flex-wrap: nowrap;
        gap: 17px;
    }

    .Columns--25-25-25-25 > * {
        flex: 1 1 calc(100% / 4);
        max-width: calc(100% / 4);
    }
}

@media screen and (min-width: 1921px) {
    .Columns--big > *:nth-child(2) {
        max-width: 40%;
    }
}

.Columns--100 > * {
    flex: 0 0 100%;
    max-width: 100%;
}

.Section {
    position: relative;
    width: 100%;
    margin-top: 0;
    padding-top: 30px;
    padding-bottom: 30px;
}

@media screen and (min-width: 601px) {
    .Section {
        padding-top: 70px;
        padding-bottom: 70px;
    }
}

.Section--blue {
    background-color: var(--clr-blue);
}

.Section--lightBlue {
    background-color: #f4f9f9;
}

.Section--brightBlue {
    background-color: #50b4ea;
    color: #ffffff;
}

.Section--brightBlue .Text,
.Section--brightBlue .Text p {
    color: #ffffff;
}

.Text {
    width: 100%;
    font-family: var(--font-primary);
    font-size: 1rem;
    line-height: 1.5rem;
    text-align: inherit;
    color: currentColor;
    color: var(--font-clr-primary, currentColor);
}

.Text a {
    text-decoration: underline;
    color: var(--clr-blue);
}

.Text p {
    margin: 0;
}

.Text * ~ p,
.Text * ~ h1,
.Text * ~ h2,
.Text * ~ h3,
.Text * ~ h4 {
    margin: 1em 0 0;
}

.Text ul {
    padding: 0 0 0 0.8em;
    list-style: disc;
}

.Text ul li {
    padding: 0.44em 0 0 0.44em;
}

.Text ul li::marker {
    color: var(--clr-primary);
}

.Text ol {
    padding: 0;
    counter-reset: item;
    list-style: none;
}

.Text ol li {
    position: relative;
    padding: 0 0 0 1.77em;
    counter-increment: item;
}

.Text ol li + li {
    padding-top: 0.44em;
}

.Text ol li li {
    padding-top: 0.44em;
    padding-left: 3.22em;
}

.Text ol li li li {
    padding-top: 0.44em;
    padding-left: 4.55em;
}

.Text ol li::before {
    content: counters(item, '.') '.';
    position: absolute;
    left: 0;
    font-family: var(--font-primary);
    font-weight: 700;
    color: var(--clr-blue);
}

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

.Text--left {
    text-align: left;
}

.Text--right {
    text-align: right;
}

.Text--w-75 {
    width: 100%;
}

@media screen and (min-width: 601px) {
    .Text--w-75 {
        width: 75%;
    }
}

.Text--w-100 {
    width: 100%;
}
