/* Variables */ /* Mixins */ /* Helpers */
.skew--top { -webkit-clip-path: polygon(0 0, 100% 7%, 100% 100%, 0 100%); clip-path: polygon(0 0, 100% 7%, 100% 100%, 0 100%); }
.skew--clip { -webkit-clip-path: polygon(0 0, 100% 0, 100% 93%, 0 100%); clip-path: polygon(0 0, 100% 0, 100% 93%, 0 100%); }
.img-responsive { max-width: 100%; height: auto; vertical-align: middle; }
.img-rounded { border-radius: 0; }
.img-circle { border-radius: 50%; }
.text-left { text-align: left; }
.text-center { text-align: center !important; }
.text-right { text-align: right; }
.text-light { color: var(--lx-white) !important; }
.text-dark { color: var(--lx-dark) !important; }
.text-grey { color: var(--lx-grey-200) !important; }
.text-accent { color: var(--lx-accent) !important; }
.list-unstyled { margin: 0; padding: 0; list-style: none; }
.small { font-size: 80%; }
.screen-reader-text, .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
.hide { display: none !important; }
@media only screen and (max-width: 1024px) { .d-none-md { display: none !important; } }
@media only screen and (max-width: 767px) { .d-block-sm { display: block !important; } }
.bg-contain { background-repeat: no-repeat; background-size: contain; background-position: 50% 50%; }
.bg-cover { background-repeat: no-repeat; background-size: cover; background-position: 50% 50%; }
.bg-repeat { background-repeat: repeat; background-size: auto; background-position: 0 0; }
.card { padding: 60px; background-color: var(--lx-white); }
@media only screen and (max-width: 1700px) { .card { padding: 40px; } }
@media only screen and (max-width: 1024px) { .card { padding: 28px; } }
@media only screen and (max-width: 767px) { .card { padding: 16px; } }
@media only screen and (max-width: 575px) { .card { margin-bottom: 12px; } }

.ui-draggable-handle { touch-action: none; }

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html { line-height: 1.15; -webkit-text-size-adjust: 100%; }
body { margin: 0; }
main { display: block; }
h1 { font-size: 2em; margin: 0.67em 0; }
hr { box-sizing: content-box; height: 0; overflow: visible; }
a { background-color: transparent; }
b, strong { font-weight: bolder; }
small { font-size: 80%; }
img { border-style: none; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; }
button, input { overflow: visible; }
button, select { text-transform: none; }
button, [type=button], [type=reset], [type=submit] { -webkit-appearance: button; }
[hidden] { display: none; }

/* Global style declarations */
:root {
  --lx-primary: #305572;
  --lx-secondary: #f1eeec;
  --lx-accent: #305572;
  --lx-state-error: #d90d12;
  --lx-state-success: #00df9c;
  --lx-state-warning: #ff5e19;
  --lx-state-info: #092cff;
  --lx-text: #585858;
  --lx-dark: #1e1e1e;
  --lx-black: #000;
  --lx-white: #fff;
  --lx-body-bg: #f1eeec;
  --lx-grey-200: #e5e5e5;
  --lx-grey-400: #c9c9c9;
  --lx-grey-500: #585858;
  --lx-primary-font-family: "Jost", sans-serif;
  --scroll-bar-width: 0;
  --header-height: 10rem;
}
@media (max-height: 440px) { :root { --header-height: 4.5rem; } }

html, :root { font-size: 16px; }
html { box-sizing: border-box; }
*::before, *::after, * { box-sizing: border-box; }
body { position: relative; margin: 0; padding: 0; color: var(--lx-text); background-color: var(--lx-body-bg); overflow-x: hidden; min-height: 105vh; }
a { color: var(--lx-accent); text-decoration: none; outline: 0; transition: color 0.25s linear; text-underline-offset: 0.375rem; text-decoration-thickness: 0.5px; }
a:hover, a:focus { color: var(--lx-primary); text-decoration-line: underline; }
hr { margin: 1rem 0; border: 0; border-top: 1px solid var(--lx-grey-400); }
img { display: inline-block; vertical-align: middle; max-width: 100%; height: auto; }
::selection { background-color: var(--lx-primary); color: var(--lx-white); }
::-webkit-scrollbar { width: 0.5rem; height: 0.5rem; }
::-webkit-scrollbar-thumb { border: 0.125rem solid transparent; background-clip: padding-box; background-color: var(--lx-grey-200); transition: background-color 0.1s; border-radius: 0.75rem; }

/* Typography */
body { font-family: var(--lx-primary-font-family); font-size: 0.9375rem; line-height: 2; font-weight: 200; letter-spacing: 0.14em; -webkit-font-smoothing: antialiased; text-size-adjust: 100%; }
h1, h2, h3, h4, h5, h6 { position: relative; margin: 1.5em 0 0.75em; font-weight: 200; font-family: var(--lx-primary-font-family); line-height: 1.2; text-transform: uppercase; color: inherit; }
h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child { margin-top: 0; }
h1:last-child, h2:last-child, h3:last-child, h4:last-child, h5:last-child, h6:last-child { margin-bottom: 0; }
@media only screen and (max-width: 767px) { h1 br, h2 br, h3 br, h4 br, h5 br, h6 br { display: none; } }
h1 { font-size: 1.25rem; }
h2 { font-size: 1.375rem; }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.125rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.9375rem; }
.text-sm { font-size: 0.875rem; line-height: 1.9; }
.text-xs { font-size: 0.75rem; }
b, strong { font-weight: 500; }
p { margin: 0 0 1.5em; }
p:last-child { margin-bottom: 0; }
ul:last-child { margin-bottom: 0; }

.btn { display: inline-block; vertical-align: middle; border: 1px solid var(--lx-primary); border-radius: 0; padding: 1.125rem 1.5rem; background: var(--lx-accent); color: var(--lx-white); text-align: center; user-select: none; font-size: 0.9375rem; line-height: 1.1; font-weight: 200; font-family: var(--lx-primary-font-family); text-transform: uppercase; letter-spacing: 0.14em; transition: opacity 0.15s ease-in-out, color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; cursor: pointer; max-width: 100%; overflow: hidden; }
.btn:hover, .btn:focus { text-decoration: none; outline: none; color: var(--lx-primary); background-color: var(--lx-secondary); }
.btn:disabled { cursor: not-allowed; opacity: 0.6; }
.btn--secondary { color: var(--lx-primary); background-color: var(--lx-body-bg); }
.btn--secondary:hover, .btn--secondary:focus { color: var(--lx-white); background-color: var(--lx-primary); }
.btn--link { color: currentColor; padding: 0; border: 0; min-width: 10px; background-color: transparent; }
.btn--link:hover, .btn--link:focus { background-color: transparent; color: currentColor; }
.btn--full { width: 100%; }

.scroll-up-button { position: fixed; display: none; bottom: 0.125rem; right: 0.125rem; padding: 0.75rem 0.375rem; opacity: 0.8; z-index: 99; min-width: 1.25rem; }
.scroll-up-button.show { display: block; }
.scroll-up-button:hover, .scroll-up-button:focus { opacity: 1; }

.socials { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 1rem 2rem; }
.socials__link { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; color: var(--lx-primary); transition: color 0.25s ease; }
.socials__link:hover { color: var(--lx-text); text-decoration: none; }
.socials__link svg { width: 100%; height: auto; }

.container { margin: 0 auto; width: 100%; max-width: 1320px; padding: 0 5rem; }
@media only screen and (max-width: 1024px) { .container { padding-left: 1rem; padding-right: 1rem; } }
.container--md { max-width: 65.75rem; }
.container--sm { max-width: 26.375rem; padding-left: 1rem; padding-right: 1rem; }
.container--xs { max-width: 21.375rem; padding-left: 1rem; padding-right: 1rem; }
.container--wide { max-width: 1920px; }
.container--full { max-width: 100%; }

.site-content { position: relative; padding-top: var(--header-height); padding-bottom: 5.375rem; min-height: 100vh; min-height: 100dvh; }
@media only screen and (max-width: 767px) { .site-content { padding-bottom: 3.125rem; } }
@media (max-height: 440px) { .site-content { padding-bottom: 1.25rem; } }
.site-main { padding-bottom: 2.75rem; }
@media only screen and (max-width: 767px) { .site-main { padding-bottom: 1.5rem; } }

#page { display: flex; flex-direction: column; min-height: 100vh; }
#page .site-content { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; }
#page .site-main { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; }

.section { width: 100%; padding-top: 2.75rem; padding-bottom: 2.75rem; }
@media only screen and (max-width: 767px) { .section { padding-top: 2.25rem; padding-bottom: 2.25rem; } }
.section:first-child:not(:last-child) { padding-top: 0; }
.section:last-child:not(:first-child) { padding-bottom: 0; }

.footer { padding: 1.75rem 0; background-color: var(--lx-grey-200); }
.footer__row { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1.5rem; }
@media only screen and (max-width: 1500px) { .footer__row { grid-template-columns: 1fr 1.5fr; } }
@media only screen and (max-width: 1024px) { .footer__row { grid-template-columns: 1fr; grid-gap: 1rem; } }
.footer__inner-row { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1.5rem; }
@media only screen and (max-width: 1024px) { .footer__inner-row { grid-template-columns: 1fr; } }
.footer__info { line-height: 2.5; }
@media only screen and (max-width: 1024px) { .footer__info { text-align: center; } }
@media only screen and (max-width: 767px) { .footer__info { font-size: 0.75rem; line-height: 2; } }
.footer__phone { display: inline-flex; align-items: center; gap: 0.5rem; color: inherit; }
.footer__navigation { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); padding-bottom: 2.5rem; }
@media only screen and (max-width: 1024px) { .footer__navigation { text-align: center; } }
@media only screen and (max-width: 767px) { .footer__navigation { grid-template-columns: 1fr; } }
.footer .menu-item { line-height: 1; }
.footer .menu-item a { display: inline-block; vertical-align: middle; font-size: 0.6875rem; line-height: 3.3; font-weight: 200; color: var(--lx-text); text-transform: uppercase; }
.footer .menu-item.current-menu-item a { text-decoration-line: underline; }
.footer__socials { align-self: start; }
.footer__socials .socials { justify-content: flex-end; }
@media only screen and (max-width: 1024px) { .footer__socials .socials { justify-content: center; } }

form p { margin: 0; }
form .error { display: inline-block; vertical-align: middle; margin-bottom: 15px; color: var(--lx-state-error); margin-top: -10px; }
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=search], input[type=url], select, textarea { display: inline-block; vertical-align: middle; width: 100%; padding: 0.5rem 1rem; height: 2.5rem; border: 1px solid var(--lx-primary); border-radius: 0; font-size: 0.9375rem; line-height: 1.1; font-weight: 200; font-family: var(--lx-primary-font-family); box-shadow: none; outline: none; color: var(--lx-text); background-color: var(--lx-body-bg); }
input[type=text], input[type=email], input[type=tel], input[type=url], textarea { appearance: none; }
textarea { min-height: 10rem; }

/* Newsletter (Forminator-style, adapted) */
.newsletter-form { position: absolute; top: calc(100% - 2rem); left: 50%; display: none; width: 100%; max-width: 24.375rem; transform: translateX(-50%); }
.newsletter-form.active { display: block; }
.newsletter-form__inner { position: relative; display: flex; flex-wrap: wrap; }
.newsletter-form__inner .row-main { flex: none; width: calc(100% - 8.25rem); }
.newsletter-form__inner .row-last { width: 8.25rem; flex: none; }
.newsletter-form__inner .btn { position: relative; left: -1px; z-index: 2; padding: 0.5rem; width: 8.25rem; min-width: 8.25rem; height: 2.5rem; }
.newsletter-form__msg { font-size: 0.75rem; text-align: center; margin-top: 0.5rem; min-height: 1rem; }

.header { position: absolute; top: 0; left: 0; right: 0; background-color: transparent; z-index: 999; }
.header__row { position: relative; display: flex; align-items: center; justify-content: center; grid-gap: 1rem; padding: 4rem 0; }
@media only screen and (max-width: 767px) { .header__row { padding-top: 3rem; padding-bottom: 1.25rem; } }
.header__burger { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
.header__logo-wrapper { position: relative; z-index: 99999; }
.header__logo { width: auto; height: 2rem; z-index: 10; }
.header__logo a { display: inline-block; vertical-align: top; height: 100%; }
.header__logo img { width: auto; height: 100%; transition-delay: 0.2s; }
.header__menu-wrapper { position: fixed; top: 0; left: 0; right: 0; display: flex; align-items: center; flex-direction: column; gap: 1.25rem; height: 100vh; height: 100dvh; width: 100%; max-width: 100%; padding: var(--header-height) 1rem 5.375rem; background-color: var(--lx-secondary); z-index: 5; transform: translateY(-100%); overflow: hidden; overflow-y: auto; opacity: 0; transition: opacity 0.3s ease-out; }
@media only screen and (max-width: 767px) { .header__menu-wrapper { padding-bottom: 3.125rem; } }
.header__menu-wrapper > div { opacity: 0; transition: opacity 0.6s ease-in-out; }
.header__menu-wrapper.active { opacity: 1; transform: translateY(0); }
.header__menu-wrapper.active > div { opacity: 1; }
.header__menu-inner { display: flex; margin-top: auto; margin-bottom: auto; align-self: stretch; }
.header__menu-content { position: relative; padding-top: 3rem; padding-bottom: 3rem; width: 100%; }
.header__menu { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.25rem; }
.header .menu-item { line-height: 1; }
.header .menu-item.current-menu-item a, .header .menu-item.current-menu-ancestor a { text-decoration-line: underline; }
.header .menu-item a { display: inline-block; vertical-align: middle; font-size: 0.9375rem; line-height: 2; font-weight: 200; color: var(--lx-text); text-transform: uppercase; transition: color 0.2s linear; cursor: pointer; }
.header .menu-item a:hover, .header .menu-item a:focus { text-decoration-line: underline; color: var(--lx-accent); }
.header__actions { display: flex; flex-direction: column; align-items: center; gap: 2rem; width: 100%; max-width: 24.375rem; }
.header__info { font-size: 0.75rem; text-align: center; }
.header__phone { display: inline-flex; align-items: center; gap: 0.5rem; color: inherit; }
.header__button { position: relative; }
.header__languages { text-align: center; }
.header__burger { position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: inline-flex; width: 2.375rem; height: 1.25rem; z-index: 20; overflow: visible; background: transparent; }
.header__burger span { display: inline-flex; vertical-align: middle; transition: transform 0.25s; position: absolute; left: 50%; margin-left: -1.1875rem; top: -1px; height: 1px; width: 100%; background-color: var(--lx-text); cursor: pointer; }
.header__burger span:nth-child(2) { top: 50%; }
.header__burger span:nth-child(3) { top: auto; bottom: -1px; }
.header__burger.active span { top: 50%; }
.header__burger.active span:nth-child(1) { transform: rotate(25deg); }
.header__burger.active span:nth-child(2) { opacity: 0; }
.header__burger.active span:nth-child(3) { bottom: auto; transform: rotate(-25deg); }
.header__title { font-size: 0.5rem; text-align: center; }

.languages { display: flex; gap: 1.5rem; text-transform: uppercase; font-size: inherit; justify-content: center; }
.languages a { color: inherit; line-height: 1.5; }
.languages .current-lang a { text-decoration-line: underline; }

body.menu-open { overflow: hidden; padding-right: var(--scroll-bar-width); }

/* image-context (About spaces) */
.image-context .container--md .image-context__image { width: 42%; max-width: 23.375rem; }
@media only screen and (max-width: 1024px) { .image-context .container--md .image-context__image { width: 100%; } }
.image-context .container--md .image-context__content { max-width: 24.5rem; text-align: center; }
.image-context__row { display: flex; justify-content: space-between; align-items: center; }
@media only screen and (max-width: 1024px) { .image-context__row { flex-direction: column; justify-content: center; } }
.image-context__row--right { flex-direction: row-reverse; }
@media only screen and (max-width: 1024px) { .image-context__row--right { flex-direction: column; } }
.image-context__image { flex: none; width: 45%; max-width: 32.625rem; }
@media only screen and (max-width: 1024px) { .image-context__image { margin-bottom: 1.5rem; width: 100%; } }
.image-context__image img { width: 100%; }
.image-context__content { width: 50%; max-width: 23.375rem; }
@media only screen and (max-width: 1024px) { .image-context__content { width: 100%; } }
.image-context__title { font-size: 0.875rem; }
@media only screen and (max-width: 1024px) { .image-context__title { text-align: center; } }

/* full-screen hero */
@media (max-height: 440px) { body.shapes .full-screen { position: relative; padding: 0; } }
body.cover .site-content { position: relative; }
body.cover .full-screen { background-color: var(--lx-primary); }
body.cover .full-screen__content { color: var(--lx-white); }
.full-screen { position: absolute; top: 0; bottom: 0; left: 0; right: 0; display: flex; flex-direction: column; justify-content: flex-end; padding-top: var(--header-height); width: 100%; height: 100%; min-height: calc(100vh - var(--header-height)); min-height: calc(100dvh - var(--header-height)); overflow: hidden; }
.full-screen__shapes { display: flex; justify-content: center; align-items: flex-start; flex: 1 1 auto; gap: 5%; z-index: 5; }
@media only screen and (max-width: 767px) { .full-screen__shapes { gap: 0.5rem; } }
@media only screen and (max-width: 575px) { .full-screen__shapes { position: relative; flex-wrap: wrap; justify-content: space-around; gap: 0; margin-top: auto; margin-bottom: auto; padding-top: 0; padding-bottom: 0; min-height: 250px; } }
.full-screen__shapes img { position: relative; cursor: grab; max-width: 30%; height: auto; -webkit-user-drag: none; user-select: none; -webkit-user-select: none; touch-action: none; will-change: transform; }
.full-screen__shapes img.is-dragging { cursor: grabbing; }
.full-screen__shapes img:nth-child(2) { align-self: flex-end; }
@media only screen and (max-width: 575px) { .full-screen__shapes img:nth-child(2) { margin-top: 0; order: 3; align-self: center; } }
@media only screen and (max-width: 575px) { .full-screen__shapes img:nth-child(3) { transform: translate(40%, 50%); } }
@media only screen and (max-width: 575px) { .full-screen__shapes img { max-height: 40vw; max-width: 42%; } }
@media (max-height: 440px) { .full-screen__shapes img { max-height: 40vh; } }
.full-screen__content { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 1.5rem; margin-left: auto; margin-right: auto; padding-top: 2.75rem; padding-bottom: 5.375rem; width: 100%; text-align: center; }
@media only screen and (max-width: 767px) { .full-screen__content { padding-top: 1.5rem; padding-bottom: 3.125rem; } }
.full-screen__info { position: relative; z-index: 10; }
.full-screen__phone { color: inherit; }
.full-screen__button { position: relative; z-index: 10; }
.full-screen > img { position: absolute; width: 100%; height: 100%; top: 0; bottom: 0; left: 0; right: 0; object-fit: cover; }

/* text-context (interior pages) */
body.page-template-default .text-context { text-align: left; }
.text-context { margin-left: auto; margin-right: auto; max-width: 41.25rem; text-align: center; }
.text-context .container--xs .text-context__content { text-align: left; }
.text-context__content a { text-decoration: none; color: inherit; }
.text-context__content a:hover { text-decoration: underline; }
.text-context__title { font-size: inherit; text-align: center; }
.text-context__map-wrapper { position: relative; max-width: 25rem; margin-left: auto; margin-right: auto; }
.text-context__map { position: relative; margin-top: 2rem; margin-bottom: 1.25rem; padding-bottom: 100%; width: 100%; }
@media only screen and (max-width: 767px) { .text-context__map { padding-bottom: 80%; } }
.text-context__map iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
.text-context__phone { display: inline-flex; align-items: center; gap: 0.5rem; color: inherit; }
.text-context__socials { margin-top: 2rem; }

.cta { position: sticky; bottom: 5.375rem; left: 0; right: 0; margin-left: auto; margin-right: auto; width: 24.375rem; max-width: 100%; min-height: 3.375rem; opacity: 0; transition: opacity 0.3s; }
@media only screen and (max-width: 767px) { .cta { bottom: 3.125rem; } }
@media only screen and (max-width: 440px) { .cta { width: 100%; padding-left: 1rem; padding-right: 1rem; } }
.script-loaded .cta { opacity: 1; }
