/*
    Theme Name: Ideal
    Author: Egloo
    Author URI: https://egloo.it
    Version: 2.0.2
    Text Domain: eg-ideal
    Description: A custom WordPress theme for Ideal, designed by Egloo.
    License: GNU General Public License v2 or later
    License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

@view-transition {
    navigation: auto;
}

* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

dialog {
    margin: auto;
}

a,
input,
textarea,
select,
button,
h1,
h2,
h3,
h4,
h5,
h6 {
    font: inherit;
    color: inherit;
}

a {
    text-decoration: none;
}

img,
video,
iframe {
    display: block;
    inline-size: 100%;
    block-size: auto;
}

button,
label,
input {
    cursor: pointer;
}

input[type="reset"],
input[type="submit"],
button {
    border: none;
    background-color: transparent;
}

span:has(> svg:only-child),
svg {
    line-height: 0;
}

ul {
    list-style-type: none;
}

html {
    scroll-behavior: smooth;
    scroll-padding: 6.25rem;
    -webkit-tap-highlight-color: transparent;
}

body:has(.header-menu:not([inert])),
body:has(dialog[open]) {
    overflow: hidden;
}

/* ======================================== */
/* UTILS */
/* ======================================== */

.rich-text > *:not(:last-child) {
    margin-block-end: 1lh;
}

.rich-text strong {
    font-weight: 700;
}

.rich-text ul {
    list-style-type: disc;
}

.rich-text ol {
    list-style-type: decimal;
}

.rich-text ul,
.rich-text ol {
    padding-inline-start: 1rem;
}

.rich-text a {
    text-decoration: underline;
}

.sr-only {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.img-wrapper.img-wrapper-ratio > picture,
.img-wrapper.img-wrapper-ratio {
    overflow: hidden;
    position: relative;
    block-size: 0;
}

.img-wrapper.img-wrapper-ratio > picture {
    block-size: 100%;
    display: block;
}

.img-wrapper.img-wrapper-ratio > iframe,
.img-wrapper.img-wrapper-ratio > video,
.img-wrapper.img-wrapper-ratio > picture > video,
.img-wrapper.img-wrapper-ratio > picture > img,
.img-wrapper.img-wrapper-ratio > img {
    inline-size: 100%;
    block-size: 100%;
    position: absolute;
    object-fit: cover;
    inset: 0;
}

.layers {
    display: grid;
}

.layers > .layer {
    grid-column: -1/1;
    grid-row: -1/1;
}

.layers > .layer.layer-bg {
    position: relative;
}

.layers > .layer.layer-bg > .img-wrapper.img-wrapper-ratio:only-child {
    block-size: 100%;
}

.layers > .layer.layer-bg::before,
.layers > .layer.layer-bg::after {
    content: "";
    pointer-events: none;
    inset-block-start: 0;
    inset-inline-start: 0;
    inline-size: 100%;
    block-size: 100%;
    position: absolute;
}

.layers > .layer.layer-fg {
    position: relative;
    z-index: 1;
}

:root {
    --container-columns: 12;
    --container-gap: 1rem;
    --container-column-width: 6.25rem;
    --container-x-padding: 2rem;
}

@media (max-width: 768px) {
    :root {
        --container-x-padding: 1.25rem;
    }
}

.container {
    inline-size: 100%;
    max-inline-size: calc((var(--container-x-padding) * 2) + ((var(--container-columns) - 1) * var(--container-gap)) + (var(--container-columns) * var(--container-column-width)));
    margin-inline: auto;
    padding-inline: var(--container-x-padding);
}
.container.container-10 {
    --container-columns: 10;
}
.container.container-8 {
    --container-columns: 8;
}
.container.container-6 {
    --container-columns: 6;
}
.container.container-5 {
    --container-columns: 5;
}
.container.container-4 {
    --container-columns: 4;
}

/*
@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Light.ttf") format("truetype");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Light Oblique.ttf") format("truetype");
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}
*/

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Book.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
/*
@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Book Oblique.ttf") format("truetype");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Medium Oblique.ttf") format("truetype");
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Demi.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Demi Oblique.ttf") format("truetype");
    font-weight: 600;
    font-style: italic;
    font-display: swap;
} */

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
/*
@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Bold Oblique.ttf") format("truetype");
    font-weight: 800;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Heavy.ttf") format("truetype");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT";
    src: url("assets/fonts/futura-pt/Futura PT Heavy Oblique.ttf") format("truetype");
    font-weight: 800;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT Cond";
    src: url("assets/fonts/futura-pt-cond/Futura PT Cond Book.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT Cond";
    src: url("assets/fonts/futura-pt-cond/Futura PT Cond Book Oblique.ttf") format("truetype");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT Cond";
    src: url("assets/fonts/futura-pt-cond/Futura PT Cond Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT Cond";
    src: url("assets/fonts/futura-pt-cond/Futura PT Cond Medium Oblique.ttf") format("truetype");
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT Cond";
    src: url("assets/fonts/futura-pt-cond/Futura PT Cond Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Futura PT Cond";
    src: url("assets/fonts/futura-pt-cond/Futura PT Cond Bold Oblique.ttf") format("truetype");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}
*/
@font-face {
    font-family: "Futura PT Cond";
    src: url("assets/fonts/futura-pt-cond/Futura PT Cond Extra Bold.ttf") format("truetype");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}
/*
@font-face {
    font-family: "Futura PT Cond";
    src: url("assets/fonts/futura-pt-cond/Futura PT Cond Extra Bold Oblique.ttf") format("truetype");
    font-weight: 800;
    font-style: italic;
    font-display: swap;
} */

.bracketed::before {
    content: "[ ";
    color: var(--on-surface);
}

.bracketed::after {
    content: " ]";
    color: var(--on-surface);
}

.focus-visible-parent:has(:focus-visible),
article.card.card-case:has(a:focus-visible),
:focus-visible {
    outline: 4px solid var(--on-surface);
    outline-offset: 4px;
}

/* ======================================== */
/* THEME */
/* ======================================== */

:root {
    --ff-primary: "Futura PT", sans-serif;
    --ff-secondary: "Futura PT Cond", sans-serif;

    --ff-accent: var(--ff-secondary);

    --c-gray: #7c787b;
    --c-yellow: #cfff00;
    --c-black: #000000;
    --c-white: #ffffff;
    --c-orange: #ff3f01;
    --c-pink: #ff3ef6;
    --c-blue: #0768ff;

    --z-header-bar: 100;
    --z-header-menu: 99;
}

svg.icon-smiley:hover > path:nth-child(2),
svg.icon-smiley:not(:hover) > path:nth-child(1) {
    display: none;
}

.ff-primary {
    --ff-accent: var(--ff-secondary);
    font-family: var(--ff-primary);
}

.ff-secondary {
    --ff-accent: var(--ff-primary);
    font-family: var(--ff-secondary);
}

.ff-accent {
    font-family: var(--ff-accent);
}

[data-theme="black"] {
    --surface: var(--c-black);
    --on-surface: var(--c-white);
    --accent: var(--c-yellow);
    --on-accent: var(--c-black);
    --btn-primary-bg: var(--c-white);
    --btn-primary-fg: var(--c-black);
    --btn-primary-hover-bg: var(--c-yellow);
    --btn-primary-hover-fg: var(--c-black);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="gray"] {
    --surface: var(--c-gray);
    --on-surface: var(--c-white);
    --accent: var(--c-yellow);
    --on-accent: var(--c-black);
    --btn-primary-bg: var(--c-white);
    --btn-primary-fg: var(--c-black);
    --btn-primary-hover-bg: var(--c-yellow);
    --btn-primary-hover-fg: var(--c-black);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="orange"] {
    --surface: var(--c-orange);
    --on-surface: var(--c-black);
    --accent: var(--c-white);
    --on-accent: var(--c-black);
    --btn-primary-bg: var(--c-white);
    --btn-primary-fg: var(--c-black);
    --btn-primary-hover-bg: var(--c-black);
    --btn-primary-hover-fg: var(--c-white);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="pink"] {
    --surface: var(--c-pink);
    --on-surface: var(--c-black);
    --accent: var(--c-white);
    --on-accent: var(--c-black);
    --btn-primary-bg: var(--c-white);
    --btn-primary-fg: var(--c-black);
    --btn-primary-hover-bg: var(--c-black);
    --btn-primary-hover-fg: var(--c-white);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="yellow"] {
    --surface: var(--c-yellow);
    --on-surface: var(--c-black);
    --accent: var(--c-white);
    --on-accent: var(--c-black);
    --btn-primary-bg: var(--c-white);
    --btn-primary-fg: var(--c-black);
    --btn-primary-hover-bg: var(--c-black);
    --btn-primary-hover-fg: var(--c-yellow);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="blue"] {
    --surface: var(--c-blue);
    --on-surface: var(--c-black);
    --accent: var(--c-white);
    --on-accent: var(--c-black);
    --btn-primary-bg: var(--c-white);
    --btn-primary-fg: var(--c-black);
    --btn-primary-hover-bg: var(--c-black);
    --btn-primary-hover-fg: var(--c-white);
    color: var(--on-surface);
    background-color: var(--surface);
}

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

body {
    font-family: var(--ff-primary);
}

.btn.btn-primary.btn-outline:is(:focus-visible, :hover),
.btn.btn-primary {
    font-size: 1rem;
    font-weight: 700;
    padding-block: 1rem;
    padding-inline: 1.25rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background-color: var(--btn-primary-bg);
    color: var(--btn-primary-fg);
}

.btn.btn-primary.btn-outline {
    background-color: transparent;
    color: currentColor;
    border-color: currentColor;
}

.btn.btn-primary:active {
    scale: 0.95;
}

.btn.btn-primary:has(svg:only-child) {
    line-height: 0;
}

.btn.btn-primary:where(:focus-visible, :hover) {
    background-color: var(--btn-primary-hover-bg);
    color: var(--btn-primary-hover-fg);
}

.img-wrapper.img-wrapper-ratio[data-vimeo-video] {
    block-size: auto;
    aspect-ratio: 16/9;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAwIiBoZWlnaHQ9IjYxNCIgdmlld0JveD0iMCAwIDgwMCA2MTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04MS42NDM5IDQ0My45NjRDNzUuOTMwMSA0NDUuODMgNzAuMzk3OCA0NDguMjkzIDY1LjE4OTkgNDUxLjI5OUM1OS45ODE5IDQ1NC4zMDYgNTUuMDc1NSA0NTcuODcgNTAuNTc5MyA0NjEuODk5QzQ4LjA4MDYgNDY0LjE3NCA0Ny41MDgxIDQ2Ny43OTYgNDkuMTk3MiA0NzAuNzIyTDEyMy41NjUgNTk5LjUzQzEyNS4yODkgNjAyLjUxNyAxMjguODk4IDYwMy44MzcgMTMyLjE0IDYwMi42NTVMMTYzLjUzOCA1OTEuMjMyQzE2My45MzIgNTkxLjA4NiAxNjQuMzIgNTkwLjkxMyAxNjQuNjg2IDU5MC43MDJDMTY2LjMxIDU4OS43NjQgMTY3LjQ4NSA1ODguMjQzIDE2Ny45OCA1ODYuNDIzQzE2OC40ODEgNTg0LjU3OSAxNjguMjM2IDU4Mi42NTggMTY3LjI4MiA1ODEuMDA1TDkwLjAxMTEgNDQ3LjE2OEM4OC4zMjE5IDQ0NC4yNDMgODQuODg2OSA0NDIuOTI0IDgxLjY0ODMgNDQzLjk3MUw4MS42NDM5IDQ0My45NjRaIiBmaWxsPSIjODg4ODg4Ii8+CjxwYXRoIGQ9Ik0yMDguODg4IDI2Ny4xOTRDMjAzLjE3IDI2OS4wNTMgMTk3LjYzIDI3MS41MiAxOTIuNDIyIDI3NC41MjdDMTg3LjIxNCAyNzcuNTM0IDE4Mi4zMDcgMjgxLjA5OCAxNzcuODQ2IDI4NS4xMTZDMTc1LjM2IDI4Ny4zNDQgMTc0Ljc3IDI5MS4wNTcgMTc2LjQzNyAyOTMuOTQ1TDIyMi41NDYgMzczLjgwOEMyMDcuMzcgMzczLjgxMyAxOTIuNTA2IDM3Ny43OTMgMTc5LjI3NiAzODUuNDMxQzEzNy44NDIgNDA5LjM1MyAxMjMuNTc5IDQ2Mi41IDE0Ny40NzggNTAzLjg5NEMxNzEuMzc3IDU0NS4yODkgMjI0LjUzOSA1NTkuNTE4IDI2NS45NzQgNTM1LjU5NUMyNzkuNTc3IDUyNy43NDIgMjkwLjY5OSA1MTYuNDU0IDI5OC4zMTMgNTAyLjgwNEMzMDAuMDIyIDUwMy42ODYgMzAyLjA4IDUwMy44NyAzMDQuMDA2IDUwMy4xNzRMMzM1LjQgNDkxLjc0M0MzMzUuNzkzIDQ5MS41OTcgMzM2LjE4MSA0OTEuNDI0IDMzNi41NCA0OTEuMjE3QzMzOC4xNjQgNDkwLjI3OSAzMzkuMzMyIDQ4OC43NjIgMzM5LjgyNiA0ODYuOTQzQzM0MC4zMjggNDg1LjA5OSAzNDAuMDgzIDQ4My4xNzggMzM5LjEyOCA0ODEuNTI1TDIxNy4yMzEgMjcwLjM5MkMyMTUuNTY0IDI2Ny41MDUgMjEyLjA1MiAyNjYuMTYgMjA4Ljg4IDI2Ny4xOTlMMjA4Ljg4OCAyNjcuMTk0Wk0yNDcuMjMgNDk5Ljg5QzIyNy4zMTMgNTExLjM4OSAyMDAuNjkzIDUwMi43MDIgMTg3Ljg4NCA0ODAuNTE1QzE3NS4wNzQgNDU4LjMyOCAxODAuODY1IDQzMC45MzkgMjAwLjc4MiA0MTkuNDRDMjIwLjY5OSA0MDcuOTQxIDI0Ny4zMjYgNDE2LjYyNCAyNjAuMTMxIDQzOC44MDNDMjcyLjkzNyA0NjAuOTgyIDI2Ny4xNTQgNDg4LjM4NyAyNDcuMjMgNDk5Ljg5WiIgZmlsbD0iIzg4ODg4OCIvPgo8cGF0aCBkPSJNNDExLjYyNiAzNjMuNTM3TDQ2OC41MiAzMTUuODE3TDQ2Ny4yMzUgMzEzLjgzN0M0NjEuMjQzIDMwNC42MzggNDUzLjY1OCAyOTYuNzY2IDQ0NC43MTQgMjkwLjQ1QzQxNy4xNTYgMjcwLjk5OCAzODAuNDY0IDI2OS4zMjUgMzUxLjI0NSAyODYuMTk1QzMzMi4yNTEgMjk3LjE2MSAzMTguMjIxIDMxNC43MTkgMzExLjczMyAzMzUuNjU0QzMwNS4yODUgMzU2LjQ2MyAzMDYuODUgMzc4LjcyMiAzMTYuMTMgMzk4LjMzNEMzMTcuMTQ2IDQwMC40OCAzMTguMjY3IDQwMi42MTcgMzE5LjQ1MSA0MDQuNjY2QzMyMy43MzEgNDEyLjA3OSAzMjkuMDMzIDQxOC43ODEgMzM1LjIxNiA0MjQuNTc3QzM0OC41MDIgNDM3LjA0MSAzNjUuODQyIDQ0NS4xMzMgMzg0LjAyNyA0NDcuMzYzQzQwMi44MzUgNDQ5LjY3IDQyMS40NjggNDQ1Ljg2MSA0MzcuOTMgNDM2LjM1NkM0NjEuNTA3IDQyMi43NDQgNDc3LjA1OSAzOTkuNDQxIDQ4MC42MDUgMzcyLjQyNEM0ODAuODU2IDM3MC41MDEgNDgwLjMwNiAzNjguNTQzIDQ3OS4xIDM2Ny4wMzVDNDc3Ljg3MyAzNjUuNTA5IDQ3Ni4xMjUgMzY0LjU3NyA0NzQuMTc5IDM2NC40MTFMNDQ1LjIwMiAzNjEuODlDNDQzLjcyMyAzNjEuNzU4IDQ0Mi4yNTUgMzYyLjA4NyA0NDAuOTc0IDM2Mi44MjdDNDM4LjkwOCAzNjQuMDIgNDM3LjU3OSAzNjYuMTM4IDQzNy40MjggMzY4LjUwMUM0MzYuNDg4IDM4Mi44MDkgNDI5LjM0MiAzOTQuODM4IDQxNy44MDUgNDAxLjQ5OUM0MDMuNzY4IDQwOS42MDQgMzg1LjU1OSA0MDcuNzczIDM3MS41OTMgMzk3LjEyNEw0MDEuMzg4IDM3Mi4xM0w0MTEuNjI2IDM2My41MzdaTTM1Mi4zNTMgMzY1LjMzMkMzNTEuODMgMzYyLjMxMiAzNTEuNTk3IDM1OS4yNjcgMzUxLjY1MiAzNTYuMjI4QzM1MS45MjQgMzQxLjE2OCAzNTkuMjk1IDMyOC4wMTQgMzcxLjM2NSAzMjEuMDQ1QzM4Mi4wMTcgMzE0Ljg5NSAzOTUuMTM3IDMxNC4zMzkgNDA3LjEzOSAzMTkuMzY3TDM2My45NjIgMzU1LjU5MkwzNTIuMzUzIDM2NS4zMzJaIiBmaWxsPSIjODg4ODg4Ii8+CjxwYXRoIGQ9Ik01ODUuMDk4IDE1My4yOTNDNTc5LjM4NCAxNTUuMTYgNTczLjg0OCAxNTcuNjM0IDU2OC42NDggMTYwLjYzN0M1NjMuNDQ4IDE2My42MzkgNTU4LjUyOSAxNjcuMiA1NTQuMDM4IDE3MS4yMzZDNTUxLjUzOSAxNzMuNTEyIDU1MC45NjYgMTc3LjEzNCA1NTIuNjU1IDE4MC4wNTlMNTU0LjY0OCAxODMuNTExQzUzOC4xNjggMTgzLjMzNCA1MjMuMDgxIDE4Ni45NDUgNTEwLjc1OSAxOTQuMDU5QzQ2OS4zMjQgMjE3Ljk4MiA0NTUuMDYxIDI3MS4xMjggNDc4Ljk2NCAzMTIuNTNDNTAyLjg2OCAzNTMuOTMyIDU1Ni4wMjEgMzY4LjE0NiA1OTcuNDU2IDM0NC4yMjRDNjExLjA0NCAzMzYuMzc5IDYyMi4xMzcgMzI1LjEyOCA2MjkuNzM3IDMxMS41MjZDNjMxLjQ4MyAzMTIuNDg5IDYzMy42MSAzMTIuNzA0IDYzNS41OTQgMzExLjk4NUw2NjcuMDA0IDMwMC41NjVDNjY3LjM5OCAzMDAuNDE5IDY2Ny43NzQgMzAwLjI0MyA2NjguMTMyIDMwMC4wMzZDNjcxLjM2NSAyOTguMTY5IDY3Mi41ODMgMjk0LjEzNCA2NzAuOTYgMjkwLjc5NEM2NzAuODQxIDI5MC41MTcgNjcwLjcxNCAyOTAuMjk3IDY3MC42MjYgMjkwLjE0NEw1OTMuNDYxIDE1Ni40OUM1OTEuNzcxIDE1My41NjUgNTg4LjMzNiAxNTIuMjQ2IDU4NS4wOTggMTUzLjI5M1pNNTkxLjU5IDI0Ny40OTZDNjA0LjM5NSAyNjkuNjc1IDU5OC42MDggMjk3LjA3MiA1NzguNjkyIDMwOC41NzFDNTU4Ljc3NSAzMjAuMDcgNTMyLjE0NyAzMTEuMzg3IDUxOS4zNDIgMjg5LjIwOEM1MDYuNTM3IDI2Ny4wMjkgNTEyLjMxOSAyMzkuNjI0IDUzMi4yNDQgMjI4LjEyMUM1NTIuMTY4IDIxNi42MTggNTc4Ljc4IDIyNS4zMDkgNTkxLjU5IDI0Ny40OTZaIiBmaWxsPSIjODg4ODg4Ii8+CjxwYXRoIGQ9Ik02MDQuNDQ1IDM4LjcwNzRDNTk4LjcyNyA0MC41NjYzIDU5My4xODcgNDMuMDMzMyA1ODcuOTc5IDQ2LjA0MDFDNTgyLjc3MSA0OS4wNDY5IDU3Ny44NjUgNTIuNjExMSA1NzMuMzk2IDU2LjYzMzhDNTcwLjkyMiA1OC44NjQ2IDU3MC4zMzEgNjIuNTc4MyA1NzEuOTk0IDY1LjQ1ODNMNjkwLjk4OCAyNzEuNTYyQzY5Mi43MTIgMjc0LjU0OSA2OTYuMzIxIDI3NS44NjggNjk5LjU3MSAyNzQuNjgzTDczMC45NjkgMjYzLjI2QzczMS4zNjMgMjYzLjExNCA3MzEuNzM5IDI2Mi45MzcgNzMyLjA5NyAyNjIuNzNDNzMzLjcyMSAyNjEuNzkzIDczNC44ODkgMjYwLjI3NiA3MzUuMzk2IDI1OC40NTlDNzM1LjkwNSAyNTYuNjExIDczNS42NiAyNTQuNjkgNzM0LjcwMSAyNTMuMDI5TDYxMi44MDQgNDEuODk3QzYxMS4xMzYgMzkuMDA5NCA2MDcuNjI1IDM3LjY2NDEgNjA0LjQ1MyAzOC43MDNMNjA0LjQ0NSAzOC43MDc0WiIgZmlsbD0iIzg4ODg4OCIvPgo8cGF0aCBkPSJNNzU1LjI0OSAxOTguNzQyQzc0My45OTUgMjA1LjI0IDc0MC4xMiAyMTkuNjc4IDc0Ni42MDggMjMwLjkxNkM3NTMuMDk3IDI0Mi4xNTQgNzY3LjU0MiAyNDYuMDI1IDc3OC43OTYgMjM5LjUyN0M3OTAuMDUxIDIzMy4wMjkgNzkzLjkyNiAyMTguNTkyIDc4Ny40MzMgMjA3LjM0NkM3ODAuOTQgMTk2LjEgNzY2LjUwNCAxOTIuMjQ0IDc1NS4yNDkgMTk4Ljc0MloiIGZpbGw9IiM4ODg4ODgiLz4KPC9zdmc+Cg==");
    background-size: 3vw;
    background-color: #2c2c2c;
}

/*
In the single case, make the video take its natural aspect ratio.
But force the iframe to be 16/9, because you can't know the real ratio
*/
body.single-case .img-wrapper.img-wrapper-ratio[data-vimeo-video] {
    aspect-ratio: auto;
}

body.single-case .img-wrapper.img-wrapper-ratio[data-vimeo-video] video {
    object-fit: contain;
    position: static;
    background-color: black;
}

body.single-case .img-wrapper.img-wrapper-ratio[data-vimeo-video] iframe {
    aspect-ratio: 16/9;
    position: static;
}

.section-title.bracketed {
    text-transform: uppercase;
    font-size: 1.25rem;
    line-height: 1.2;
    font-weight: 700;
    color: var(--accent);
}

@media (max-width: 768px) {
    .section-title.bracketed {
        font-size: 1rem;
        line-height: 1.5;
    }
}

[data-vimeo-video] button {
    block-size: 2.1875rem;
    inline-size: 2.8125rem;
    display: grid;
    place-items: center;
    background-color: rgb(255 255 255 / 0.6);
    border-radius: 999px;
    position: absolute;
    z-index: 1;
}

[data-vimeo-video] button:active {
    scale: 0.95;
}

[data-vimeo-video] button:not(.active) > svg:last-child,
[data-vimeo-video] button.active > svg:first-child {
    display: none;
}

[data-vimeo-video] button.btn-pause {
    inset-inline-start: 0.625rem;
    inset-block-end: 0.625rem;
}

[data-vimeo-video] button.btn-volume {
    inset-block-start: 0.625rem;
    inset-inline-end: 0.625rem;
}

body.home main {
    overflow-x: hidden;
}

/* ======================================== */
/* HEADER */
/* ======================================== */

header.egloo {
    --_btn-menu-bg: var(--c-black);
    --_btn-menu-fg: var(--c-white);

    --_btn-menu-bg: var(--c-white);
    --_btn-menu-fg: var(--c-black);
}

/* body:is(.post-type-archive-case, .page-template-work-with-us) header.egloo, */
/* header.egloo:has(.header-menu:not([inert])) { */
/*     --_btn-menu-bg: var(--c-yellow); */
/*     --_btn-menu-fg: var(--c-black); */
/* } */

header.egloo .header-bar-logo {
    color: white;
    pointer-events: none;
    position: fixed;
    z-index: var(--z-header-bar);
    inline-size: 100%;
    inset-inline-start: 0;
    inset-block-start: 0;
    mix-blend-mode: difference;
    padding-block-start: 1.875rem;
    transition: opacity 0.2s ease;
}

header.egloo .header-bar-logo.transparent {
    opacity: 0;
}

header.egloo .header-bar-logo .logo {
    max-inline-size: 5.25rem;
    /* margin-inline: auto; */
    display: block;
}

header.egloo .header-bar-logo .logo svg {
    pointer-events: auto;
    max-inline-size: 100%;
    block-size: auto;
}

header.egloo .header-bar {
    position: absolute;
    z-index: var(--z-header-bar);
    inline-size: 100%;
    inset-inline-start: 0;
    inset-block-start: 0;
}

header.egloo .header-bar .container {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--container-gap);
    padding-block: 1.125rem;
}

header.egloo .header-bar .center {
    justify-self: center;
}

header.egloo .header-bar .end {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

header.egloo #menutoggle {
    inline-size: 3rem;
    block-size: 3rem;
    display: inline-flex;
    gap: 0.625rem;
    justify-content: center;
    align-items: center;
    background-color: var(--_btn-menu-bg);
    color: var(--_btn-menu-fg);
    font-size: 1rem;
    line-height: 1;
    font-weight: 700;
    text-transform: uppercase;
    padding: 1rem;
    padding-inline: 0.8125rem;
    border-radius: 999px;
    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

header.egloo #menutoggle .btn-icon {
    line-height: 0;
    inline-size: 1.25rem;
}

header.egloo:has(.header-menu:not([inert])) #menutoggle svg:first-child,
header.egloo:has(.header-menu[inert]) #menutoggle svg:last-child {
    display: none;
}

footer.egloo .btn,
.btn.lang-switcher,
header.egloo .header-bar .btn {
    background-color: var(--c-white);
    color: var(--c-black);
    font-size: 1rem;
    line-height: 1;
    font-weight: 700;
    text-transform: uppercase;
    padding: 1rem;
    padding-inline: 1.25rem;
    border-radius: 999px;
}

.btn.lang-switcher {
    position: relative;
    background-color: transparent;
    isolation: isolate;
}

.btn.lang-switcher :focus-visible {
    outline-color: currentColor;
}

.btn.lang-switcher button {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.btn.lang-switcher button svg {
    transition: rotate 0.2s ease;
}

.btn.lang-switcher:has(ul:not([inert])) button svg {
    rotate: 0.5turn;
}

.btn.lang-switcher ul {
    position: absolute;
    inset-block-start: 0;
    inset-inline-end: 0;
    inline-size: 100%;
    background-color: var(--c-white);
    color: transparent;
    border-radius: 1.5rem;
    display: grid;
    align-items: end;
    z-index: -1;
    overflow: hidden;
    block-size: 100%;
    transition:
        color 0.2s ease,
        block-size 0.2s ease;
}

.btn.lang-switcher ul a {
    display: inline-block;
    padding-inline-start: 1.25rem;
    padding-block-end: 0.5rem;
}

.btn.lang-switcher ul:not([inert]) {
    block-size: calc(100% + 1rem);
    color: var(--c-black);
}

header.egloo .header-menu {
    position: fixed;
    z-index: var(--z-header-menu);
    inline-size: 100%;
    block-size: 100%;
    inset-block-start: 0;
    inset-inline-start: 0;
    backdrop-filter: blur(20px);
    translate: 0;
    transition:
        translate 0.5s ease-out,
        backdrop-filter 0.2s ease 0.5s;
}

header.egloo:has(.header-menu:not([inert])) *,
header.egloo:has(.header-menu:not([inert])) {
    touch-action: none;
}

header.egloo .header-menu[inert] {
    translate: 100%;
    backdrop-filter: blur(0px);
    transition:
        translate 0.5s ease-in,
        backdrop-filter 0.2s ease;
}

header.egloo .header-menu .container {
    block-size: 100%;
}

header.egloo .header-menu .content {
    block-size: 100%;
    max-inline-size: 45rem;
    display: grid;
    grid-template-rows: minmax(3.125rem, 1fr) minmax(0, auto) minmax(3.125rem, 1fr);
    box-shadow: 100vw 0 0 100vw var(--surface);
    padding-block: 1.25rem;
    padding-inline-start: 2.5rem;
    --dot-color: var(--accent);
    margin-inline-start: auto;
}

header.egloo .header-menu .menu {
    overflow: auto;
    overscroll-behavior: none;
    scrollbar-width: none;
    grid-row: 2;
    display: flex;
    flex-direction: column;
    gap: 0;
    font-size: 3.75rem;
    line-height: 1.333333;
    font-weight: 800;
    text-transform: uppercase;
}

header.egloo .header-menu .menu *,
header.egloo .header-menu .menu {
    touch-action: auto;
}

header.egloo .header-menu .menu a:where(:hover, :focus-visible) {
    font-family: var(--ff-accent);
    color: var(--accent);
}

header.egloo .header-menu .infos {
    grid-row: 3;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--container-gap);
}

header.egloo .header-menu .logo svg {
    max-inline-size: 6.5rem;
    block-size: auto;
}

header.egloo .header-menu .socials {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

header.egloo .header-menu .socials a {
    block-size: 2.25rem;
    inline-size: 2.25rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background-color: var(--on-surface);
    color: var(--surface);
    line-height: 0;
}

header.egloo .header-menu .socials a img {
    max-inline-size: 1rem;
    max-block-size: 1rem;
}

header.egloo .header-menu .lang-buttons {
    display: none;
}

@media (max-width: 768px) {
    header.egloo .header-bar {
        position: fixed;
        transition: translate 0.2s ease-out;
    }

    header.egloo.floating:not(.floating-active) .header-bar {
/*         translate: 0 -100%; */
        transition: translate 0.2s ease-in;
    }

    header.egloo #menutoggle {
        background-color: var(--c-white);
        color: var(--c-black);
        inline-size: 10rem;
        border-start-start-radius: 0;
        border-start-end-radius: 0;
        padding-block: 0.5rem;
        block-size: auto;
    }

    header.egloo .header-bar .container {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
    }

    header.egloo .header-bar .container .end > *:not(menutoggle),
    header.egloo .header-bar .container .start,
    header.egloo .header-bar .container .center {
        display: none;
    }

    header.egloo .header-bar-logo {
        padding-inline: 1.25rem;
        display: flex;
        justify-content: start;
        mix-blend-mode: unset;
        color: var(--on-surface);
        --dot-color: var(--accent);
    }

    header.egloo .header-bar-logo .logo {
        margin-inline: 0;
        max-inline-size: 8.75rem;
    }

    body.home header.egloo .header-bar-logo {
        display: none;
    }

    /* Menu */
    header.egloo .header-menu .container {
        padding-inline: 0;
    }

    header.egloo .header-menu {
        transition:
            translate 0.2s ease-out,
            backdrop-filter 0.1s ease 0.2s;
    }

    header.egloo .header-menu[inert] {
        transition:
            translate 0.2s ease-out,
            backdrop-filter 0.1s ease;
    }

    header.egloo .header-menu .content {
        padding-inline: 1.25rem;
        padding-block: 1.875rem;
        display: flex;
        flex-direction: column;
    }

    header.egloo .header-menu .menu {
        text-align: center;
        font-size: 2.5rem;
        line-height: 1;
        flex-grow: 1;
        justify-content: center;
        gap: 1rem;
    }

    header.egloo .header-menu .infos {
        display: flex;
        flex-direction: column;
        gap: 2.5rem;
        align-items: center;
        justify-content: end;
    }

    header.egloo .header-menu .lang-buttons {
        display: flex;
        align-items: center;
        gap: var(--container-gap);
        inline-size: 100%;
        text-transform: uppercase;
        text-align: center;
    }

    header.egloo .header-menu .lang-buttons .btn {
        flex-grow: 1;
    }

    header.egloo .header-menu .infos .logo {
        display: none;
    }
}

/* ======================================== */
/* HERO LOGO */
/* ======================================== */

section.hero.hero-logo {
    block-size: 100svh;
    transition:
        color 1s ease,
        background-color 1s ease;
}

section.hero.hero-logo .container {
    block-size: 100%;
    display: grid;
    grid-template-rows: 1fr auto 1fr;
    gap: var(--container-gap);
    padding-block: 2.3125rem;
}

section.hero.hero-logo .logo {
    --letter-color: currentColor;
    --dot-color: var(--accent);
    grid-row: 2;
    justify-self: center;
    align-self: center;
    max-inline-size: 48.1875rem;
    inline-size: 100%;
}

section.hero.hero-logo .logo svg {
    inline-size: 100%;
}

svg.icon-logo-animated :is(path, circle) {
    pointer-events: none;
    transition: scale 0.3s ease;
    transform-origin: center;
}

svg.icon-logo-animated :is(path, circle).hovered,
svg.icon-logo-animated rect:hover + :is(path, circle) {
    scale: 1 0.5;
}

section.hero.hero-logo .ctas {
    grid-row: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: end;
}

@media (max-width: 768px) {
    section.hero.hero-logo .container {
        padding-block: 1.875rem;
    }
    section.hero.hero-logo .ctas {
        justify-content: center;
    }

    section.hero.hero-logo .ctas svg {
        inline-size: 14.3125rem;
        block-size: auto;
    }

    section.hero.hero-logo .ctas .copyright,
    section.hero.hero-logo .ctas > a {
        display: none;
    }
}

/* ======================================== */
/* TEXT BASIC */
/* ======================================== */

section.text-basic {
    padding-block: 9.375rem;
}

section.text-basic .section-title {
    margin-block-end: 1.25rem;
}

section.text-basic .title {
    font-size: 7.5rem;
    line-height: 0.833333;
    font-weight: 800;
}

section.text-basic span.animation-loaded {
    position: relative;
}

section.text-basic span.animation-loaded::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--on-surface);
    scale: 1 var(--_scale-y, 0);
    transform-origin: var(--_transform-origin, "top");
}

section.text-basic .description {
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.25;
    max-width: 43.75rem;
    margin-block-start: 13rem;
}

@media (max-width: 768px) {
    section.text-basic {
        padding-block: 6.25rem;
        text-align: center;
    }

    section.text-basic .title {
        font-size: 3.125rem;
        line-height: 1;
    }

    section.text-basic .title br {
        display: none;
    }

    section.text-basic .title span {
        font-family: var(--ff-primary);
    }

    section.text-basic .description {
        margin-block-start: 3.125rem;
        font-size: 1rem;
        line-height: 1.375;
    }
}

/* ======================================== */
/* FEATURED CASES */
/* ======================================== */

section.featured-cases {
    padding-block: 9.375rem;
}

section.featured-cases .zones {
    display: grid;
    gap: 9.375rem;
}

section.featured-cases .section-title {
    margin-block-end: 0.9375rem;
}

section.featured-cases .title {
    font-size: 7.5rem;
    line-height: 0.833333;
    font-family: var(--ff-secondary);
    font-weight: 800;
    text-transform: uppercase;
}

section.featured-cases .title:where(:hover) span {
    font-family: var(--ff-primary);
    line-height: 0;
}

section.featured-cases .zone-items {
    display: grid;
    --grid-item-width: 31.25rem;
    grid-template-columns: repeat(auto-fit, minmax(var(--grid-item-width), 1fr));
    grid-template-columns: repeat(auto-fit, minmax(min(var(--grid-item-width), 100%), 1fr));
    gap: 3.125rem 1rem;
}

section.featured-cases .zone-cta {
    display: grid;
    place-items: center;
}

@media (max-width: 768px) {
    section.featured-cases {
        padding-block: 6.25rem;
    }

    section.featured-cases .zones {
        gap: 6.25rem;
    }

    section.featured-cases .zone-titles {
        text-align: center;
    }

    section.featured-cases .zone-titles .title {
        font-size: 3.125rem;
        line-height: 1;
    }

    section.featured-cases .zone-titles .title span {
        font-family: var(--ff-primary);
    }

    section.featured-cases .zone-items {
        row-gap: 3.75rem;
    }
}

/* ======================================== */
/* CARD CASE */
/* ======================================== */

article.card.card-case {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    position: relative;
}

article.card.card-case .card-thumbnail {
    display: grid;
}

article.card.card-case .card-thumbnail > * {
    grid-area: 1/1;
}

article.card.card-case .card-text {
    position: relative;
    z-index: 1;
    padding: 1.875rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    opacity: 0;
}

article.card.card-case:where(:hover) .card-text,
article.card.card-case:where(:has(a:hover, a:focus-visible)) .card-text {
    opacity: 1;
}

article.card.card-case .card-title {
    font-size: 5rem;
    line-height: 1;
    text-transform: uppercase;
    font-family: var(--ff-secondary);
    font-weight: 800;
}

article.card.card-case a::after {
    content: "";
    position: absolute;
    inset: 0;
}

article.card.card-case .card-title span {
    color: var(--accent);
}

article.card.card-case .card-text-end {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
}

article.card.card-case .card-slogan {
    font-size: 1.75rem;
    line-height: 1;
    font-weight: 700;
    text-transform: uppercase;
}

article.card.card-case .card-cta {
    background-color: var(--accent);
    color: var(--on-accent);
    padding-block: 1rem;
    padding-inline: 1.25rem;
    min-block-size: 3rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
}

article.card.card-case .card-description {
    font-size: 1.25rem;
    line-height: 1.4;
    font-weight: 800;
}

article.card.card-case .card-subtitle {
	font-size: 1rem;
	line-height: 1.4;
	font-weight: 800;
	margin-block-end: 0.5em;
	text-transform: uppercase;
}

body.home article.card.card-case .card-info {
    display: none;
}

@media (max-width: 768px) {
    article.card.card-case .card-thumbnail {
        display: flex;
        flex-direction: column-reverse;
        gap: 1rem;
    }

    article.card.card-case .card-text {
        position: static;
        opacity: 1;
        padding: 0;
        background-color: transparent;
        color: inherit;
        display: grid;
        grid-template-columns: 1fr auto;
    }

    article.card.card-case .card-title {
        --accent: var(--c-yellow);
        font-size: 2rem;
        line-height: 0.875;
    }

    article.card.card-case .card-text-end {
        display: contents;
    }

    article.card.card-case .card-slogan {
        font-size: 1.125rem;
        line-height: 1.277777778;
        margin-block-start: 0.625rem;
    }

    article.card.card-case .card-cta {
        align-self: start;
        grid-row: 1/3;
        grid-column: 2;
        min-block-size: 2.1875rem;
        padding: 0;
        min-inline-size: 2.625rem;
    }

    article.card.card-case .card-description {
        font-size: 1.125rem;
        line-height: 1.444444444;
    }
}

/* ======================================== */
/* TITLE SHOWER */
/* ======================================== */

section.title-shower .zone-title {
    text-align: center;
    padding-block: 8.75rem 6.25rem;
    font-size: 5rem;
    line-height: 0.875;
    font-weight: 800;
    text-transform: uppercase;
}

section.title-shower .zone-title:not(:last-child) {
    border-block-end: 1px solid currentColor;
}

section.title-shower .zone-title .line {
    inline-size: fit-content;
    margin-inline: auto;
}

section.title-shower .zone-description .container {
    padding-block: 7.625rem 9.375rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--container-gap);
}

section.title-shower .zone-description .description {
    font-size: 1rem;
    line-height: 1.375;
    font-weight: 700;
    max-inline-size: 28.125rem;
}

@media (max-width: 768px) {
    section.title-shower .zone-title {
        padding-block: 6.25rem 3.125rem;
        font-size: 2.5rem;
        line-height: 1;
    }

    section.title-shower .zone-title:not(:last-child) {
        border-block-end: 0;
    }

    section.title-shower .zone-title br {
        display: none;
    }

    section.title-shower .zone-description .container {
        display: flex;
        flex-direction: column;
        gap: 3.125rem;
        text-align: center;
        padding-block: 0 6.25rem;
    }

    section.title-shower .zone-description .description {
        padding-block-start: 3.125rem;
        border-block-start: 1px solid currentColor;
    }
}

/* ======================================== */
/* CARDS REVEAL */
/* ======================================== */

section.cards-reveal {
    display: grid;
    grid-template-rows: 1fr 1fr;
}

section.cards-reveal .title-wrapper {
    display: grid;
    align-items: center;
}

section.cards-reveal .title-wrapper .container {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.9375rem;
}

section.cards-reveal .title-wrapper .section-title {
    margin-block-end: 0.9375rem;
}

section.cards-reveal .title-wrapper .title {
    text-transform: uppercase;
    font-size: 7.5rem;
    line-height: 0.833333;
    font-weight: 800;
}

section.cards-reveal .items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

section.cards-reveal .item {
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-block-size: 26.9375rem;
}

section.cards-reveal .item .title {
    font-family: var(--ff-secondary);
    font-weight: 800;
    font-size: 2.625rem;
    line-height: 1;
    text-transform: uppercase;
}

section.cards-reveal .item .description {
    font-size: 1rem;
    line-height: 1.375;
    max-inline-size: 22.8125rem;
    font-weight: 800;
}

@media (max-width: 980px) {
    section.cards-reveal {
        display: block;
    }

    section.cards-reveal .title-wrapper {
        text-align: center;
        padding-block: 6.25rem;
    }

    section.cards-reveal .item {
        min-block-size: unset;
        gap: 6.25rem;
    }

    section.cards-reveal .items {
        display: block;
    }

    section.cards-reveal .item .title {
        font-size: 2.375rem;
        line-height: 1.052631579;
    }
	
	section.cards-reveal .item .title br {
		display: none;
	}

    section.cards-reveal .item .description {
        max-inline-size: 40rem;
    }
}

@media (max-width: 768px) {
    section.cards-reveal .item .description {
        max-inline-size: 40rem;
    }

    section.cards-reveal .title-wrapper .container {
        gap: 1.25rem;
    }

    section.cards-reveal .title-wrapper .section-title {
        margin-block-end: 0;
    }

    section.cards-reveal .title-wrapper .title {
        font-size: 3.125rem;
        line-height: 1;
    }
}

/* ======================================== */
/* SIMLEY SECTION */
/* ======================================== */

section.smiley-section {
    padding-block: 14.8125rem 9.375rem;
    text-align: center;
}

section.smiley-section .section-title {
    margin-block-end: 1.875rem;
}

section.smiley-section .title {
    font-size: 7.5rem;
    line-height: 0.833333;
    font-weight: 800;
    text-transform: uppercase;
    position: relative;
}

section.smiley-section .title svg {
    position: absolute;
    inset-block-start: 100%;
    inset-inline-start: 100%;
    translate: -38% -45%;
}

section.smiley-section .description {
    margin-block-start: 7.375rem;
    font-size: 1.5rem;
    line-height: 1.25;
    font-weight: 700;
}

@media (max-width: 768px) {
    section.smiley-section {
        padding-block: 6.25rem;
    }

    section.smiley-section .section-title {
        gap: 1.25rem;
    }

    section.smiley-section .title {
        font-size: 3.125rem;
        line-height: 1;
    }

    section.smiley-section .title svg {
        /*         display: none; */
        inline-size: 3rem;
        block-size: 3rem;
        translate: -108% -50%;
    }

    section.smiley-section .description {
        margin-block-start: 3.125rem;
    }
}

/* ======================================== */
/* BANNER BASIC */
/* ======================================== */

section.banner.banner-basic {
    padding-block: 14rem;
    text-align: center;
}

section.banner.banner-basic .section-title {
    margin-block-end: 1.25rem;
}

section.banner.banner-basic .description {
    margin-block-start: 3.125rem;
    font-size: 2rem;
    line-height: 0.875;
    font-weight: 700;
}

section.banner.banner-basic .title {
    text-transform: uppercase;
    font-size: 7.5rem;
    line-height: 0.833333;
    font-weight: 800;
}

@media (max-width: 768px) {
    section.banner.banner-basic {
        padding-block: 6.25rem;
    }

    section.banner.banner-basic .title {
        font-size: 3.125rem;
        line-height: 1;
    }

    section.banner.banner-basic .description {
        font-size: 1.25rem;
        line-height: 1.25;
    }
}

/* ======================================== */
/* CASES ARCHIVE */
/* ======================================== */

section.cases-archive {
    padding-block: 13.6875rem 9.375rem;
}

section.cases-archive .titles {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 1.9375rem;
    margin-block-end: 8.4375rem;
}

section.cases-archive .titles .title {
    font-size: 7.5rem;
    line-height: 0.833333;
    text-transform: uppercase;
}

section.cases-archive .items {
    display: grid;
    --grid-item-width: 28.125rem;
    grid-template-columns: repeat(auto-fit, minmax(var(--grid-item-width), 1fr));
    grid-template-columns: repeat(auto-fit, minmax(min(var(--grid-item-width), 100%), 1fr));
    gap: 6.25rem var(--container-gap);
}

@media (max-width: 768px) {
    section.cases-archive {
        padding-block-start: 11.125rem;
    }

    section.cases-archive .titles {
        gap: 1.25rem;
        margin-block-end: 6.25rem;
    }

    section.cases-archive .titles .title {
        font-size: 3.125rem;
        line-height: 1;
    }

    section.cases-archive .titles .title span {
        font-weight: 700;
        font-family: var(--ff-accent);
    }
}

/* ======================================== */
/* SINGLE CASE */
/* ======================================== */

section.single-case {
    padding-block: 13.6875rem 9.375rem;
}

section.single-case .case-header {
    display: grid;
    align-items: end;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--container-gap);
    margin-block-end: 3.125rem;
}

section.single-case .case-header > * {
    grid-row: 1;
}

section.single-case .case-header .btn-prev {
    grid-column: 1;
    justify-self: start;
}

section.single-case .case-header .btn-next {
    grid-column: 3;
    justify-self: end;
}

section.single-case .case-header .titles {
    grid-column: 2;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 0.9375rem;
    text-align: center;
}

section.single-case .case-header .title {
    font-size: 7.5rem;
    line-height: 0.833333;
    font-weight: 800;
    text-transform: uppercase;
}

section.single-case .case-header .slogan {
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.2;
    text-transform: uppercase;
}

body[data-theme="yellow"] section.single-case .case-header .slogan {
    color: var(--on-surface);
}

section.single-case .case-main .subtitle {
    margin-block-start: 3.125rem;
    max-inline-size: 42.625rem;
    text-align: center;
    font-weight: 700;
    font-size: 1rem;
	text-transform: uppercase;
    line-height: 1.4;
    margin-inline: auto;
    inline-size: 100%;
}

section.single-case .case-main .description {
    margin-block-start: 1.125rem;
    max-inline-size: 42.625rem;
    text-align: center;
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.4;
    margin-inline: auto;
    inline-size: 100%;
}

section.single-case .navigation-buttons {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--container-gap);
    margin-block-start: 6.25rem;
}

section.single-case .navigation-buttons .btn-control {
    padding-block: 1rem;
    display: inline-flex;
    gap: 0.625rem;
    line-height: 1;
    font-size: 1rem;
    text-transform: uppercase;
}

section.single-case .navigation-buttons .btn-control.btn-next:only-child {
    margin-inline-start: auto;
}

section.single-case .navigation-buttons .btn-control.btn-prev {
    background-color: var(--c-black);
    color: var(--c-white);
}

section.single-case .all-cases {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-block-start: 3.75rem;
}

@media (min-width: 768px) {
    section.single-case .navigation-buttons {
        display: none;
    }
}

@media (max-width: 768px) {
    section.single-case {
        padding-block: 11.125rem 6.25rem;
    }

    section.single-case .container {
        padding-inline: 0;
    }

    section.single-case .navigation-buttons,
    section.single-case .case-main .description,
    section.single-case .case-header {
        padding-inline: var(--container-x-padding);
    }

    section.single-case .case-header .btn-control {
        display: none;
    }

    section.single-case .case-header .titles {
        gap: 1.25rem;
    }

    section.single-case .case-header .slogan {
        font-size: 1rem;
        line-height: 1.5;
        color: inherit;
    }

    section.single-case .case-header .title {
        font-size: 3.125rem;
        line-height: 1;
        font-family: var(--ff-secondary);
    }
}

/* ======================================== */
/* HERO BANNER */
/* ======================================== */

section.hero.hero-banner .container {
    min-block-size: 100vh;
    min-block-size: 100svh;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

section.hero.hero-banner .title {
    font-size: 7.5rem;
    line-height: 0.833333;
    font-weight: 800;
    text-transform: uppercase;
}

section.hero.hero-banner .section-title {
    margin-block-end: 1.25rem;
}

section.hero.hero-banner .btn {
    margin-block-start: 3.125rem;
}

@media (max-width: 768px) {
    section.hero.hero-banner .container {
        min-block-size: unset;
        padding-block: 11.125rem 6.25rem;
    }

    section.hero.hero-banner .title {
        font-size: 3.125rem;
        line-height: 1;
    }

    section.hero.hero-banner .title span {
        font-family: var(--ff-accent);
    }
}

/* ======================================== */
/* FOOTER */
/* ======================================== */

footer.egloo .start .container {
    padding-block-start: 1.125rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--container-gap);
}

footer.egloo .start .part-of {
    inline-size: 100%;
}

footer.egloo .start .part-of svg {
    inline-size: 100%;
    max-inline-size: 20.375rem;
    block-size: auto;
}

footer.egloo .start .ctas {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

footer.egloo .center .container {
    padding-block: 6.25rem;
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--container-gap);
}

footer.egloo .center .main-menu {
    text-transform: uppercase;
    font-size: 1.5rem;
    line-height: 1.666667;
    font-weight: 700;
}

footer.egloo .center .infos {
    display: flex;
    align-items: start;
    gap: var(--container-gap);
}

footer.egloo .center .info {
    min-inline-size: 13.5625rem;
    font-size: 1rem;
    line-height: 1.375;
    font-weight: 700;
}

footer.egloo .center .socials {
    margin-block-start: 4.375rem;
}

footer.egloo .center .socials ul {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

footer.egloo .center .socials a {
    display: grid;
    place-items: center;
    border-radius: 50%;

    background-color: var(--accent);
    color: var(--on-accent);
    block-size: 2.25rem;
    inline-size: 2.25rem;
}

footer.egloo .center .socials a img {
    max-block-size: 0.875rem;
    max-inline-size: 0.875rem;
}

footer.egloo .end .container {
    border-block-start: 1px solid currentColor;
    padding-block: 3.125rem 1.875rem;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--container-gap);
    align-items: end;
}

footer.egloo .end svg {
    inline-size: 100%;
    justify-self: center;
    block-size: auto;
    max-inline-size: 48.1875rem;
    --dot-color: var(--accent);
}

footer.egloo .end p {
    font-size: 1rem;
    line-height: 1.375;
    font-weight: 700;
}

footer.egloo .end .copyright-text {
    justify-self: end;
}

@media (min-width: 769px) {
    footer.egloo .lang-buttons,
    footer.egloo .end svg.icon-part-of,
    footer.egloo .start .container .icon-logo-animated {
        display: none;
    }
}

@media (max-width: 768px) {
    footer.egloo .start .part-of,
    footer.egloo .start .ctas {
        display: none;
    }

    footer.egloo .start {
        --dot-color: var(--accent);
    }

    footer.egloo .start .container {
        padding-block-start: 3.125rem;
    }

    footer.egloo .start .container svg {
        block-size: auto;
    }

    footer.egloo .center .container {
        padding-block: 3.125rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
    }

    footer.egloo .center .lang-buttons {
        display: flex;
        gap: var(--container-gap);
        padding-block-end: 3.125rem;
        margin-block: 3.125rem;
        border-block-end: 1px solid currentColor;
        inline-size: 100%;
        text-align: center;
    }

    footer.egloo .center .lang-buttons .btn {
        flex-grow: 1;
    }

    footer.egloo .center .main-menu {
        font-size: 1.5rem;
        line-height: 1;
    }

    footer.egloo .center .main-menu ul {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 0.8rem;
    }

    footer.egloo .center .infos {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 3.125rem var(--container-gap);
    }

    footer.egloo .center .info:last-child {
        display: contents;
    }

    footer.egloo .center .info {
        min-inline-size: unset;
    }

    footer.egloo .center .socials {
        margin-block-start: 0;
    }

    footer.egloo .end .container {
        padding-inline: 0;
        max-inline-size: calc(100% - (var(--container-x-padding) * 2));
        padding-block: 3.125rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0;
    }

    footer.egloo .end .icon-part-of {
        margin-block-start: 3.125rem;
        max-inline-size: 14.3125rem;
        block-size: auto;
    }

    footer.egloo .end .icon-logo-animated {
        display: none;
    }
}

/* ======================================== */
/* PARTNERS MARQUEE */
/* ======================================== */

section.partners-marquee {
    background-color: var(--c-white);
    filter: saturate(0);
    padding-block: 1.875rem;
}

section.partners-marquee .marquee-section,
section.partners-marquee {
    display: flex;
    align-items: center;
}

section.partners-marquee .img-wrapper {
    inline-size: 13.5625rem;
    block-size: 6.25rem;
    display: grid;
    place-items: center;
    padding: 1rem;
}

section.partners-marquee .img-wrapper img {
    block-size: 0;
    max-inline-size: 80%;
    object-fit: contain;
    min-block-size: 100%;
}

section.partners-marquee .marquee-section {
    animation: marquee-loop 20s linear infinite;
}

@keyframes marquee-loop {
    from {
        translate: 0%;
    }

    to {
        translate: -100%;
    }
}

/* -----------------------------------
==============================================================================
#IUBENDA
==============================================================================
----------------------------------- */

body #iubenda-cs-banner *,
body #iubenda-cs-banner .iubenda-banner-content:not(.iubenda-custom-content) *,
body #iubenda-cs-banner [class*=" iub"],
body #iubenda-cs-banner [class^="iub"] {
  font-family: var(--ff-primary) !important;
  color: #fff !important;
  font-weight: 400 !important;
  font-size: 13px !important;
}

body #iubenda-cs-banner label {
  margin-bottom: 0;
}

body #purposes-content-container .purposes-header .purposes-header-text,
body #purposes-content-container .purposes-section-header-text {
  font-size: 13px !important;
}

body #purposes-content-container .purposes-item .purposes-item-body,
body #purposes-content-container .purposes-item .purposes-item-title .purposes-item-title-btn {
  font-weight: 500 !important;
}

body #purposes-content-container .purposes-section-header-title {
  line-height: 1.4 !important;
  padding-bottom: 7px !important;
}

body #purposes-content-container .purposes-header {
  padding-top: 0 !important;
}

body #iubenda-iframe .purposes-header-right button {
  /*background-color: var(--accent) !important;
  color: #ffffff !important;
  border: 0.5px solid var(--accent) !important;*/
  box-shadow: none !important;
  opacity: 1;
  border-radius: 64px !important;
}

body #iubenda-iframe .purposes-header-right button:hover {
  opacity: 0.8;
  /*background-color: var(--accent) !important;
  color: #ffffff !important;
  border: 0.5px solid var(--accent) !important;*/
}

body #iubenda-iframe .iub-toggle-checkbox input.style1:checked {
  background-color: #a19210 !important;
}

body #iubenda-iframe .iub-btn-stroked {
  border: 1px solid #ffffff !important;
}

body #purposes-content-container .purposes-header .purposes-header-title {
  font-weight: 600 !important;
  font-size: 2rem !important;
  margin-bottom: 8px !important;
  line-height: 1.2 !important;
  padding-bottom: 0.5rem !important;
  padding-top: 1.6rem !important;
}

body #iubenda-cs-banner .iubenda-granular-controls-container .granular-control-checkbox input.style1:checked {
  background-color: var(--accent) !important;
}

body #iubenda-cs-banner .iubenda-cs-opt-group button,
body .iubenda-alert button.iubenda-button-cancel,
body #iiubenda-cs-banner .iub-btn-consent,
body #iubenda-iframe #iubFooterBtnContainer button,
body #iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-accept-btn {
  border: 0.5px solid var(--accent) !important;
  font-weight: 600 !important;
  outline: none !important;
  box-shadow: none !important;
  color: #000000 !important;
  background-color: var(--accent) !important;
  transition: opacity 200ms ease-in-out;

  font-size: 14px !important;
}

body #iubenda-cs-banner.iub-btn-consent.iub-btn-reject,
body #iubenda-cs-banner .iub-btn-consent.iub-btn-accept {
  color: #ffffff !important;
  background-image: none !important;
  padding-left: 25px !important;
  padding-right: 25px !important;

  font-size: 12px !important;
}

body #iubenda-iframe .iub-btn-consent.iub-btn-reject {
  background-size: 9px !important;
}

body #iubenda-iframe .iub-btn-consent.iub-btn-accept {
  background-size: 11px !important;
}

body #iubenda-cs-banner .iubenda-cs-opt-group button:hover,
body .iubenda-alert button.iubenda-button-cancel:hover,
body #iubenda-iframe #iubFooterBtnContainer button:hover,
body #iubenda-iframe #iubFooterBtnContainer button:focus {
  background-color: var(--accent) !important;
  color: #000 !important;
  border: 0.5px solid var(--accent) !important;
  box-shadow: none !important;
  opacity: 0.8;
}

body #iubenda-iframe #iubFooterBtnContainer button,
body #iubenda-iframe #iubFooterBtnContainer button:hover {
	background-color: #000 !important;
	color: white !important;
	border: 1px solid #000!important;
}

body #iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-reject-btn {
  background: transparent !important;
  color: #ffffff !important;
  border: 1px solid white!important
}

body #iubenda-cs-banner [tabindex]:not([tabindex="-1"]):focus,
body #iubenda-cs-banner a[href]:focus,
body #iubenda-cs-banner button:focus,
body #iubenda-cs-banner details:focus,
body #iubenda-cs-banner input:focus,
body #iubenda-cs-banner select:focus,
body #iubenda-cs-banner textarea:focus,
body #iubenda-iframe [tabindex]:not([tabindex="-1"]):focus,
body #iubenda-iframe a[href]:focus,
body #iubenda-iframe button:focus,
body #iubenda-iframe details:focus,
body #iubenda-iframe input:focus,
body #iubenda-iframe select:focus,
body #iubenda-iframe textarea:focus {
  outline: none !important;
}

body .iubenda-tp-btn[data-tp-float][data-tp-float="bottom-right"] {
  border-radius: 50% !important;
  bottom: 2.5rem !important;
  right: 2.5rem !important;
  margin: 0 !important;
  width: 3rem !important;
  height: 3rem !important;
  background-position: center !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: 0 0 0 1px var(--accent) !important;
  background-size: 22px !important;
  opacity: 0.5;
  transition: all 200ms ease-in-out;
}

body .iubenda-tp-btn[data-tp-float][data-tp-float="bottom-right"]:hover {
  opacity: 1;
}

body #iubenda-iframe .purposes-header-right .iub-iframe-brand-button {
  display: none !important;
}

body #iubenda-cs-banner.iubenda-cs-branded .iubenda-cs-close-btn {
  height: 32px !important;
  min-width: 32px !important;
  font-size: 25px !important;
  margin-top: 6px !important;
}

body #cookie-warning {
  display: none !important;
}

body .iubenda-tp-btn[data-tp-float][data-tp-float="bottom-right"] {
	display: none!important;
}

@media only screen and (max-width: 768px) {
  body #purposes-content-container .purposes-header .purposes-header-title {
    font-size: 1.2rem !important;
  }

  body .iubenda-tp-btn[data-tp-float][data-tp-float="bottom-right"] {
    right: 1.25rem !important;
    bottom: 1.25rem !important;
    width: 2.5rem !important;
    height: 2.5rem !important;
  }

  body #purposes-content-container .purposes-section-header-title {
    font-size: 17px !important;
  }

  body #purposes-content-container .purposes-header {
    padding-top: 0 !important;
    padding-bottom: 1.5rem !important;
  }

  body #purposes-content-container .purposes-item {
    margin: 0 !important;
  }

  body #iubenda-cs-banner.iubenda-cs-default .iubenda-cs-brand {
    margin-bottom: -1rem !important;
    margin: -8px -8px 0 !important;
    margin: 0 !important;
    margin-bottom: -0.8rem !important;
  }

  body #iubenda-iframe .iubenda-modal-navigation.iubenda-modal-navigation-brand .iubenda-modal-navigation-logo img {
    max-width: 100% !important;
  }
}

