/*
    Theme Name: Follya
    Author: Egloo
    Author URI: https://egloo.it
    Version: 2.0.0
    Text Domain: eg-follya
    Description: A custom WordPress theme for Follya, designed by Egloo.
    License: GNU General Public License v2 or later
    License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

* {
    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(dialog[open]) {
    overflow: hidden;
}

/* ======================================== */
/* UTILS */
/* ======================================== */

#eg-pagination {
    font-size: 3.75rem;
    font-weight: 600;
    line-height: 1.167;
    letter-spacing: -0.011em;
    font-family: var(--ff-primary);
    display: flex;
    gap: 2.0625rem;
    justify-content: center;
    align-items: center;
}

#eg-pagination[aria-hidden="true"] {
    display: none;
}

#eg-pagination .page-btn {
    color: var(--c-on-accent);
    background-color: var(--accent);
    line-height: 0;
    inline-size: 2.6875rem;
    block-size: 2.6875rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 2px solid var(--on-accent);
}

#eg-pagination .page-btn:disabled,
#eg-pagination .page-separator,
#eg-pagination .page:not(.page-current) {
    opacity: 0.4;
}

#eg-pagination .page-btn.page-btn-next {
    rotate: 180deg;
}

#eg-pagination .page-btn.page-btn-next {
    margin-inline-start: 1.875rem;
}

#eg-pagination .page-btn.page-btn-prev {
    margin-inline-end: 1.875rem;
}

#eg-pagination :disabled {
    pointer-events: none;
}

.eg-pagination-desktop {
    display: contents;
}

.eg-pagination-mobile {
    display: none;
}

@media (max-width: 768px) {
    #eg-pagination {
        justify-content: space-between;
    }

    .eg-pagination-desktop {
        display: none;
    }

    .eg-pagination-mobile {
        display: block;
        font-size: 2.5rem;
        line-height: 1.25;
    }

    .eg-pagination-mobile .eg-pagination-total {
        color: var(--c-grey-medium);
    }

    #eg-pagination .page-btn.page-btn-next,
    #eg-pagination .page-btn.page-btn-prev {
        margin-inline: 0;
        flex-shrink: 0;
    }
}

nav.breadcrumbs ul {
    --_gap: 15px;
    display: block;
    font-size: 0.75rem;
    line-height: 1.5;
    letter-spacing: -0.011em;
    font-weight: 500;
    font-family: var(--ff-primary);
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

nav.breadcrumbs li {
    display: inline;
    position: relative;
}

nav.breadcrumbs li:first-child::before {
    content: "";
    inline-size: 8px;
    block-size: 10px;
    background-image: url("data:image/svg+xml,%3Csvg width='8' height='10' viewBox='0 0 8 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 8.85714V3.71428C0 3.53333 0.0354999 3.3619 0.1065 3.2C0.1775 3.03809 0.275333 2.90476 0.4 2.8L3.4 0.228571C3.575 0.0761905 3.775 0 4 0C4.225 0 4.425 0.0761905 4.6 0.228571L7.6 2.8C7.725 2.90476 7.823 3.03809 7.894 3.2C7.965 3.3619 8.00033 3.53333 8 3.71428V8.85714C8 9.17143 7.902 9.44057 7.706 9.66457C7.51 9.88857 7.27466 10.0004 7 10H5.5C5.35833 10 5.23967 9.94514 5.144 9.83543C5.04833 9.72571 5.00033 9.59009 5 9.42857V6.57143C5 6.40952 4.952 6.2739 4.856 6.16457C4.76 6.05524 4.64133 6.00038 4.5 6H3.5C3.35833 6 3.23967 6.05486 3.144 6.16457C3.04833 6.27428 3.00033 6.4099 3 6.57143V9.42857C3 9.59047 2.952 9.72628 2.856 9.836C2.76 9.94571 2.64133 10.0004 2.5 10H1C0.725 10 0.489666 9.88819 0.294 9.66457C0.0983332 9.44095 0.000333333 9.17181 0 8.85714Z' fill='black'/%3E%3C/svg%3E%0A");
    display: inline-block;
}

nav.breadcrumbs li:first-child a {
    display: none;
}

nav.breadcrumbs li:not(:last-child) {
    margin-inline-end: var(--_gap);
}

nav.breadcrumbs li svg {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-end: calc((var(--_gap) * -1) / 2);
    translate: 50% -50%;
    scale: 0.9;
}

nav.breadcrumbs [aria-current] {
    color: rgb(from currentColor r g b / 0.3);
}

.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: none;
    color: var(--c-blue);
}

.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;
}

.img-wrapper.img-wrapper-ratio > picture {
    block-size: 100%;
    display: block;
}

.img-wrapper.img-wrapper-ratio > video,
.img-wrapper.img-wrapper-ratio > canvas,
.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: 1.25rem;
    --container-column-width: 5.25rem;
    --container-x-padding: 2rem;

    --eg-form-gap-row: 1.875rem;
    --eg-form-gap-col: var(--container-gap);
    --eg-form-field-min-width: 14.375rem;
    --eg-form-checkbox-size: 0.75rem;
    --eg-form-checkbox-bg: var(--c-white);
    --eg-form-checkbox-checked-bg: var(--c-black);
    --eg-form-input-bg: #ffffff;
    --eg-form-input-fg: #000000;
    --eg-form-input-border: var(--c-grey-medium);
    --eg-form-input-font-size: 0.9375rem;
    --eg-form-input-weight: 500;
    --eg-form-input-padding-block: 0.9375rem 0.875rem;
    --eg-form-input-padding-inline: 1.25rem;
    --eg-form-label-weight: 500;
    --eg-form-border-radius-input: 0.625rem;
    --eg-form-border-radius-checkbox: 0.1875rem;
    --eg-form-border-radius-radio: 50%;
    --eg-form-label-field-gap: 0.625rem;
    --eg-form-icon-check: url("data:image/svg+xml,%3Csvg width='6' height='4' viewBox='0 0 6 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.25009 3.05857L5.50006 0L6 0.470549L2.25009 4L0 1.8822L0.499941 1.41165L2.25009 3.05857Z' fill='%23F7F5F0'/%3E%3C/svg%3E%0A");
    --eg-form-icon-file: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMy4zNjIiIGhlaWdodD0iMTkuNzQ4IiB2aWV3Qm94PSIwIDAgMjMuMzYyIDE5Ljc0OCI+CiAgPGcgaWQ9IlJhZ2dydXBwYV8xNTc4IiBkYXRhLW5hbWU9IlJhZ2dydXBwYSAxNTc4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzM4LjA4NiAtNjU0Mi41MDEpIj4KICAgIDxwYXRoIGlkPSJUcmFjY2lhdG9fMjA5MDkiIGRhdGEtbmFtZT0iVHJhY2NpYXRvIDIwOTA5IiBkPSJNMzQuMzM2LDU3LjQ1N2EuNjE2LjYxNiwwLDAsMC0uNjIyLjYyMnYyLjk2NUEyLjMyLDIuMzIsMCwwLDEsMzEuNCw2My4zNjJIMTYuMTQ4YTIuMzEyLDIuMzEyLDAsMCwxLTIuMzE3LTIuMzE3VjU4LjA3OWEuNjIyLjYyMiwwLDAsMC0xLjI0NSwwdjIuOTY1YTMuNTYzLDMuNTYzLDAsMCwwLDMuNTYzLDMuNTYzSDMxLjM4NWEzLjU2MywzLjU2MywwLDAsMCwzLjU2My0zLjU2M1Y1OC4wNzlhLjYuNiwwLDAsMC0uNjEyLS42MjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3MjYgNjQ5Ny4xNDEpIiBmaWxsPSIjYmI4ZWY4IiBzdHJva2U9IiNiYjhlZjgiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgPHBhdGggaWQ9IlRyYWNjaWF0b18yMDkxMCIgZGF0YS1uYW1lPSJUcmFjY2lhdG8gMjA5MTAiIGQ9Ik0zOS43NTcsMzIuMTZhLjYxNi42MTYsMCwwLDAsLjYyMi0uNjIyVjIwLjg2MWwyLjY2NiwyLjgyN2EuNjQ1LjY0NSwwLDAsMCwuNDQ4LjIuNTY4LjU2OCwwLDAsMCwuNDI0LS4xNzQuNjI4LjYyOCwwLDAsMCwuMDI1LS44ODRsLTMuNzM3LTMuOTc0YS42NDguNjQ4LDAsMCwwLS45MSwwTDM1LjU1OCwyMi44M2EuNjI1LjYyNSwwLDEsMCwuOTA5Ljg2bDIuNjY2LTIuODI3VjMxLjUzOGEuNjE4LjYxOCwwLDAsMCwuNjI0LjYyMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcxMC4wMTYgNjUyNC4zMzIpIiBmaWxsPSIjYmI4ZWY4IiBzdHJva2U9IiNiYjhlZjgiIHN0cm9rZS13aWR0aD0iMSIvPgogIDwvZz4KPC9zdmc+Cg==");
}

@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;
}

/* ======================================== */
/* WPCF7 */
/* ======================================== */

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration,
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    display: none;
}

input[type="checkbox"],
input[type="radio"] {
    appearance: none;
    inline-size: var(--eg-form-checkbox-size);
    block-size: var(--eg-form-checkbox-size);
    background-color: var(--eg-form-checkbox-bg);
    flex-shrink: 0;
    cursor: pointer;
}

input[type="checkbox"] {
    border-radius: var(--eg-form-border-radius-checkbox);
    border: 1px solid var(--c-grey-medium);
}

input[type="radio"] {
    border-radius: var(--eg-form-border-radius-radio);
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
    background-color: var(--eg-form-checkbox-checked-bg);
    border-color: var(--eg-form-checkbox-checked-bg);
    background-image: var(--eg-form-icon-check);
    background-repeat: no-repeat;
    background-position: center;
}

input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
    outline: 2px solid var(--on-surface);
    outline-offset: 2px;
}

input:is([type="text"], [type="number"], [type="email"], [type="tel"], [type="password"]):not(.not-styled),
textarea:not(.not-styled),
.select2 {
    inline-size: 100%;
    padding-block: var(--eg-form-input-padding-block);
    padding-inline: var(--eg-form-input-padding-inline);
    border: 1px solid transparent;
    background-color: var(--eg-form-input-bg);
    color: var(--eg-form-input-fg);
    border-radius: var(--eg-form-border-radius-input);
    font-size: var(--eg-form-input-font-size);
    font-weight: var(--eg-form-input-weight);
    outline: none;
}

.select2-container .select2-dropdown,
.select2-container .select2-selection {
    background: transparent;
    border: none;
    margin: 0;
}

.select2-container .select2-selection--single .select2-selection__rendered {
    padding: 0;
}

.select2-container.select2-container--open .select2-dropdown--below {
    background-color: var(--surface);
    box-shadow: 0px 2px 10px #0000002e;
}

.select2-container.select2-container--open {
    width: fit-content;
}

input::placeholder,
textarea::placeholder,
.wpcf7-styled label:has(input[type="file"]) > span:first-child {
    color: rgb(from var(--on-surface) r g b / 0.4);
    color: rgb(from currentColor r g b / 0.4);
}

textarea:not(.not-styled) {
    min-block-size: 6.875rem;
    field-sizing: content;
    resize: vertical;
}

input:is([type="text"], [type="number"], [type="email"], [type="tel"], [type="password"]):focus-visible,
textarea:focus-visible {
    border-color: var(--accent);
    outline: 1px solid var(--accent);
    outline-offset: 0;
}

.wpcf7-styled label {
    font-size: 0.875rem;
    line-height: 1.571;
    letter-spacing: -0.01em;
    font-weight: var(--eg-form-label-weight);
    display: flex;
    flex-direction: column;
    gap: var(--eg-form-label-field-gap);
}

.wpcf7-styled .align-center {
    text-align: center;
}

.wpcf7-styled label:has(input[type="file"]) {
    overflow: hidden;
    display: grid;
    background-image: var(--eg-form-icon-file);
    background-repeat: no-repeat;
    background-position: calc(100% - 1rem) center;
    background-color: rgb(from currentColor r g b / 0.1);
    border: 1px solid transparent;
    border-radius: var(--eg-form-border-radius-input);
    padding-block: var(--eg-form-input-padding-block);
    padding-inline: var(--eg-form-input-padding-inline);
    cursor: pointer;
}

.wpcf7-styled label:has(input[type="file"]) > span:first-child {
    overflow: hidden;
    max-inline-size: calc(100% - 3rem);
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
}

.wpcf7-styled label:has(input[type="file"]) input[type="file"] {
    opacity: 0;
    width: 0.1px;
    height: 0.1px;
    position: absolute;
    z-index: -1;
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) > p {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(var(--eg-form-field-min-width), 100%), 1fr));
    row-gap: var(--eg-form-gap-row);
    column-gap: var(--eg-form-gap-col);
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) > p .wide {
    grid-column: 1 / -1;
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) .wpcf7-submit {
    inline-size: 100%;
    margin-inline: auto;
    border-radius: var(--eg-form-border-radius-input);
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) > p br,
.wpcf7-styled :is([data-class="wpcf7cf_group"], form) .wpcf7-spinner {
    display: none;
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) .wpcf7-not-valid-tip {
    font-size: 0.75rem;
    margin-top: 0.25rem;
}

.wpcf7-styled .wpcf7-acceptance label {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.75rem;
}

.wpcf7-styled .wpcf7-acceptance label span {
    text-box: trim-both cap alphabetic;
}

.wpcf7-styled .wpcf7-response-output {
    padding: 1rem;
    text-wrap: balance;
    font-size: 0.875rem;
    inline-size: 100%;
    border: 1px solid transparent;
    margin-block-start: 3rem;
    border-radius: var(--eg-form-border-radius-input);
}

.wpcf7-styled form.sent .wpcf7-response-output {
    background-color: #5ad66521;
    border-color: #5ad6659e;
}

.wpcf7-styled form.invalid .wpcf7-response-output {
    border-color: #ffb900cc;
}

.wpcf7-list-item {
    margin: 0;
}

/* ======================================== */
/* THEME */
/* ======================================== */

@keyframes spin {
    to {
        rotate: 1turn;
    }
}

/* instrument-sans-regular - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: "Instrument Sans";
    font-style: normal;
    font-weight: 400;
    src: url("assets/fonts/instrument-sans/instrument-sans-v4-latin-regular.woff2") format("woff2");
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* instrument-sans-500 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: "Instrument Sans";
    font-style: normal;
    font-weight: 500;
    src: url("assets/fonts/instrument-sans/instrument-sans-v4-latin-500.woff2") format("woff2");
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* instrument-sans-600 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: "Instrument Sans";
    font-style: normal;
    font-weight: 600;
    src: url("assets/fonts/instrument-sans/instrument-sans-v4-latin-600.woff2") format("woff2");
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* instrument-sans-700 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: "Instrument Sans";
    font-style: normal;
    font-weight: 700;
    src: url("assets/fonts/instrument-sans/instrument-sans-v4-latin-700.woff2") format("woff2");
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* instrument-serif-regular - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: "Instrument Serif";
    font-style: normal;
    font-weight: 400;
    src: url("assets/fonts/instrument-serif/instrument-serif-v5-latin-regular.woff2") format("woff2");
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

:root {
    --z-header: 999;
    --z-above-header: 1000;
    --z-below-header: 998;
    --header-promo-height: 1.875rem;
    --header-bar-height: 4.625rem;
    --header-menus-height: 2.5rem;
    --header-height: calc(var(--header-promo-height) + var(--header-bar-height) + var(--header-menus-height));
    --ff-primary: "Instrument Sans", sans-serif;
    --ff-secondary: "Instrument Serif", serif;
    --c-fluo-green: #91f78e;
    --c-grey-text: #868686;
    --c-black: #000000;
    --c-orange: #fc6a45;
    --c-pink: #ffbce2;
    --c-yellow: #fcf168;
    --c-blue: #56a0e9;
    --c-white: #ffffff;
    --c-grey-medium: #bbbbbb;
    --c-beige: #f7f5f0;
    --c-grey-lighter: #e5e5e5;
}

@media (hover: none) or (max-width: 768px) {
    :root {
        --header-bar-height: 4.375rem;
        --header-menus-height: 0px;
    }
}

[data-theme="light"] {
    --surface: var(--c-white);
    --on-surface: var(--c-black);
    --accent: var(--c-fluo-green);
    --on-accent: var(--c-black);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="dark"] {
    --surface: var(--c-black);
    --on-surface: var(--c-white);
    --accent: var(--c-fluo-green);
    --on-accent: var(--c-black);
    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);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="orange"] {
    --surface: var(--c-orange);
    --on-surface: var(--c-black);
    --accent: var(--c-fluo-green);
    --on-accent: var(--c-black);
    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);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="yellow"] {
    --surface: var(--c-yellow);
    --on-surface: var(--c-black);
    --accent: var(--c-pink);
    --on-accent: var(--c-black);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="green"] {
    --surface: var(--c-fluo-green);
    --on-surface: var(--c-black);
    --accent: var(--c-yellow);
    --on-accent: var(--c-black);
    color: var(--on-surface);
    background-color: var(--surface);
}

[data-theme="beige"] {
    --surface: var(--c-beige);
    --on-surface: var(--c-black);
    --accent: var(--c-fluo-green);
    --on-accent: var(--c-black);
    color: var(--on-surface);
    background-color: var(--surface);
}

:focus-visible {
    outline-offset: 4px;
    outline: 0px solid var(--on-surface);
    animation:
        focus-ring-in 0.2s forwards,
        focus-ring-out 0.2s 0.2s forwards;
}

@keyframes focus-ring-in {
    to {
        outline-width: 8px;
    }
}

@keyframes focus-ring-out {
    to {
        outline-width: 4px;
    }
}

.fs-btn-text {
    font-size: 1.25rem;
    line-height: 1;
    font-weight: 400;
    font-family: var(--ff-secondary);
}

.fs-note {
    font-size: 0.75rem;
    line-height: 1.5;
    letter-spacing: -0.011em;
    font-weight: 500;
    font-family: var(--ff-primary);
}

.fs-note-bigger {
    font-size: 0.8125rem;
    line-height: 1.769;
    letter-spacing: -0.011em;
    font-weight: 500;
    font-family: var(--ff-primary);
}

.fs-title-1 {
    font-size: 3.75rem;
    line-height: 1.167;
    letter-spacing: -0.011em;
    font-weight: 700;
    font-family: var(--ff-primary);
}

.fs-title-2 {
    font-size: 2.188rem;
    line-height: 1.2;
    letter-spacing: -0.011em;
    font-weight: 700;
    font-family: var(--ff-primary);
}

.fs-title-3 {
    font-size: 1.875rem;
    line-height: 0.6667;
    font-family: var(--ff-primary);
    font-weight: 400;
}

.fs-title-4 {
    font-size: 1.438rem;
    line-height: 1.304;
    font-weight: 600;
    font-family: var(--ff-primary);
}

.fs-title-small {
    font-size: 1.125rem;
    line-height: 1.222;
    font-weight: 500;
    font-family: var(--ff-primary);
}

body,
.fs-body {
    font-size: 0.9375rem;
    line-height: 1.533;
    letter-spacing: -0.011em;
    font-family: var(--ff-primary);
}

.fs-product-title-small {
    font-size: 0.9375rem;
    line-height: 1.333;
    letter-spacing: -0.011em;
    font-weight: 600;
    font-family: var(--ff-primary);
}

@media (max-width: 768px) {
    .fs-title-1 {
        font-size: 2.5rem;
        line-height: 1.25;
    }
    .fs-title-2 {
        font-size: 2rem;
        line-height: 1.1875;
    }
}

.fw-bold {
    font-weight: 700;
}

.fw-semibold {
    font-weight: 600;
}

.fw-medium {
    font-weight: 500;
}

.ff-primary {
    font-family: var(--ff-primary);
}

.ff-secondary {
    font-family: var(--ff-secondary);
}

.btn.btn-primary {
    font-size: 1.25rem;
    line-height: 1;
    font-family: var(--ff-secondary);
    padding: 0.5625rem;
    border: 2px solid var(--on-accent);
    color: var(--on-accent);
    background-color: var(--accent);
    text-transform: uppercase;
    text-align: center;
    display: inline-flex;
    min-inline-size: 10.8125rem;
    border-radius: 0.9375rem;
    justify-content: center;
    align-items: center;
    -webkit-text-stroke-width: 0.2px;
}

.text-stroke {
    -webkit-text-stroke-width: 0.2px;
}

body {
    padding-block-start: var(--header-height);
}

/* ======================================== */
/* HERO CONFETTI */
/* ======================================== */

section.hero.hero-confetti .layers {
    min-block-size: calc(100vh - var(--header-height));
    min-block-size: calc(100svh - var(--header-height));
}

section.hero.hero-confetti .container {
    position: relative;
    display: grid;
    align-items: center;
    block-size: 100%;
}

section.hero.hero-confetti .sticker {
    rotate: -10.76deg;
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 30%;
}

section.hero.hero-confetti .text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.6875rem;
    max-inline-size: 50.75rem;
    margin-inline: auto;
    text-align: center;
}

section.hero.hero-confetti .pretitle {
    font-size: 1rem;
    line-height: 1.5;
    letter-spacing: -0.011em;
    font-weight: 500;
    order: -1;
}

section.hero.hero-confetti .layer-bg:has(img, video)::after {
    background-color: black;
    opacity: 0.1;
}

section.hero.hero-confetti .layers:has(.layer-bg img, .layer-bg video) .layer-fg {
    color: white;
}

@media (max-width: 768px) {
    section.hero.hero-confetti .text {
        margin-inline: -0.5rem;
    }

    section.hero.hero-confetti .pretitle {
        max-inline-size: 15rem;
        text-wrap: balance;
    }

    section.hero.hero-confetti .sticker {
        display: none;
    }
}

/* ======================================== */
/* STICKER */
/* ======================================== */

.sticker.sticker-wave {
    color: var(--c-black);
    display: grid;
    place-items: center;
    font-size: 1.25rem;
    line-height: 1;
    font-family: var(--ff-secondary);
}

.sticker.sticker-wave > * {
    grid-area: 1/1;
}

.sticker.sticker-wave span {
    position: relative;
    display: block;
    text-align: center;
}

.sticker.sticker-wave span:nth-child(2) {
    font-size: 3.625rem;
    line-height: 1.034483;
    letter-spacing: -0.01em;
}

@media (prefers-reduced-motion: no-preference) {
    .sticker.sticker-wave svg {
        animation: spin 50s linear infinite;
    }
}

.sticker.sticker-circle {
    --_size: 7.875rem;
    display: grid;
    text-align: center;
    inline-size: var(--_size);
    block-size: var(--_size);
    place-items: center;
}

.sticker.sticker-circle::before,
.sticker.sticker-circle p {
    grid-area: 1/1;
}

.sticker.sticker-circle p {
    padding: 0.5rem;
}

.sticker.sticker-circle::before {
    content: "";
    display: block;
    background-color: var(--c-yellow);
    border-radius: 50%;
    block-size: 100%;
    inline-size: 100%;
}

.sticker.sticker-wide-wave {
    display: grid;
    place-items: center;
    inline-size: fit-content;
    block-size: fit-content;
    text-align: center;
}

.sticker.sticker-wide-wave > * {
    grid-area: 1/1;
}

.sticker.sticker-wide-wave p {
    max-inline-size: calc(100% - 1.5rem);
}

/* ======================================== */
/* SPLIT */
/* ======================================== */

section.split :is(.layer-bg, .container) {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    position: relative;
}

section.split:where(.flipped) .text,
section.split:where(:not(.flipped)) .img-wrapper {
    grid-column: 2;
}

section.split .text {
    max-inline-size: 26.625rem;

    margin-inline: auto;
    padding-block: 10.75rem;
}

section.split .text {
    max-inline-size: 26.625rem;
    margin-inline: auto;
    padding-block: 10.75rem;
}

section.split .title:not(:only-child) {
    margin-block-end: 1.25rem;
}

section.split .ctas {
    margin-block-start: 3.125rem;
    display: flex;
    align-items: center;
    gap: 2.1875rem;
}

section.split:where(.flipped) .sticker {
    position: absolute;
    inset-block-start: 3.875rem;
    inset-inline-start: min(100% - var(--container-x-padding), 88vw);
    translate: -50%;
    rotate: 18deg;
}

section.split:where(:not(.flipped)) .sticker {
    position: absolute;
    inset-block-start: 3.4375rem;
    inset-inline-end: min(100% - var(--container-x-padding), 85vw);
    translate: 50%;
    rotate: -15deg;
}

@media (max-width: 768px) {
    section.split :is(.layer-bg, .container) {
        display: block;
    }
    section.split .layers {
        display: flex;
        flex-direction: column-reverse;
    }

    section.split .layer-bg {
        block-size: 25rem;
    }

    section.split .text {
        padding-block: 5.625rem;
    }

    section.split .sticker {
        inset-block-start: 0;
        inset-inline-start: 50%;
        translate: -50% -50%;
    }

    section.split .sticker.sticker-wide-wave {
        inset-inline-start: auto;
        inset-inline-end: 2rem;
        translate: 0 -50%;
    }
}

/* ======================================== */
/* FEATURED CARDS */
/* ======================================== */

section.featured-cards {
    padding-block: 10rem 5.625rem;
}

section.featured-cards .container {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

section.featured-cards ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 1rem;
}

section.featured-cards li {
    flex-grow: 1;
    flex-basis: 0;
    border-radius: 1.25rem;
    overflow: hidden;
    flex-basis: 18.75rem;
    position: relative;
}

section.featured-cards li a::before {
    content: "";
    position: absolute;
    inset: 0;
}

section.featured-cards ul:has(li:nth-child(5):last-child) li:is(:nth-child(1), :nth-child(2)) {
    --_img-height: 23.75rem;
    flex-basis: 27.5rem;
}

section.featured-cards li:nth-child(5n + 1) {
    background-color: var(--c-blue);
}

section.featured-cards li:nth-child(5n + 2) {
    background-color: var(--c-yellow);
}

section.featured-cards li:nth-child(5n + 3) {
    background-color: var(--c-pink);
}

section.featured-cards li:nth-child(5n + 4) {
    background-color: var(--c-orange);
}

section.featured-cards li:nth-child(5n + 5) {
    background-color: var(--c-fluo-green);
}

section.featured-cards li p {
    display: flex;
    align-items: start;
    justify-content: space-between;
    padding-block: 2rem;
    padding-inline: 2.5rem;
}

section.featured-cards li span {
    display: inline-block;
    margin-block-start: 0.25rem;
}

section.featured-cards li .img-wrapper {
    block-size: var(--_img-height, 16.875rem);
}

@media (max-width: 768px) {
    section.featured-cards {
        padding-block: 7.5rem 3.75rem;
    }

    section.featured-cards .container {
        gap: 3.75rem;
    }

    section.featured-cards li p {
        padding: 1.875rem;
    }

    section.featured-cards li .img-wrapper {
        block-size: 16.875rem;
    }
}

/* ======================================== */
/* CARDS SLIDER */
/* ======================================== */

section.cards-slider {
    padding-block: 5.625rem;
    overflow: hidden;
}

section.cards-slider .swiper {
    overflow: visible;
}

section.cards-slider .container {
    display: flex;
    flex-direction: column;
    gap: 3.75rem;
}

section.cards-slider .text {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding-inline: 1.5rem;
    gap: var(--container-gap);
}

section.cards-slider .text .title:only-child {
    grid-column: -1/1;
}

section.cards-slider .text .info {
    display: flex;
    align-items: center;
    gap: var(--container-gap);
    justify-content: space-between;
}

section.cards-slider .text .info a {
    margin-inline-start: auto;
}

section.cards-slider .text .description {
    max-inline-size: 24.75rem;
}

section.cards-slider .swiper-scrollbar {
    position: static;
    background: var(--c-black);
    width: auto;
    height: 2px;
}

section.cards-slider .swiper-scrollbar-drag {
    background: var(--c-blue);
    height: 0.625rem;
    translate: 0 calc(-0.3125rem + 1.5px);
    cursor: ew-resize;
}

section.cards-slider[data-card-type="news"] .swiper-slide {
    max-inline-size: 24.75rem;
}

section.cards-slider:is([data-card-type="product"], [data-card-type="character"]) .swiper-slide {
    max-inline-size: 17.375rem;
}

body.home section.split + section.cards-slider {
    margin-block-start: 5.625rem;
}

@media (max-width: 768px) {
    section.cards-slider {
        padding-block: 3.75rem;
    }

    body.home section.split + section.cards-slider {
        margin-block-start: 3.75rem;
    }

    section.cards-slider:has(+ section.split) {
        margin-block-end: 1.875rem;
    }

    section.cards-slider .text {
        display: contents;
    }

    section.cards-slider .text .info {
        display: contents;
    }

    section.cards-slider .text .info a {
        margin-inline-start: 0;
        order: 2;
    }

    section.cards-slider .text .description {
        margin-block-start: -1.875rem;
    }

    section.cards-slider .swiper-scrollbar {
        display: none;
    }

    body.single-news section.cards-slider {
        padding-block-end: 6.25rem;
    }

    body.single-news section.cards-slider .text {
        text-align: center;
    }
}

/* ======================================== */
/* CARD NEWS */
/* ======================================== */

article.card.card-news {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
}

article.card.card-news .card-meta {
    order: 2;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

article.card.card-news .img-wrapper {
    aspect-ratio: 396/250;
    border-radius: 0.9375rem;
}

article.card.card-news img {
    transition: scale 0.2s ease;
}

article.card.card-news:where(:hover, :has(:focus-visible)) img {
    scale: 1.05;
}

article.card.card-news a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* ======================================== */
/* BANNER NEWSLETTER */
/* ======================================== */

section.banner.banner-newsletter {
    background-color: transparent;
    display: grid;
    grid-template-rows: [icons-start] 8.75rem [img-start] auto [icons-end content-start] 1fr [content-end img-end];
    margin-block-start: 5.625rem;
}

body:is(.single-news, .woocommerce-account) section.banner.banner-newsletter {
    display: none;
}

section.banner.banner-newsletter .icons-wrap {
    grid-row: icons;
    grid-column: 1;
}

section.banner.banner-newsletter .img-wrapper {
    grid-column: 1;
    grid-row: img;
    z-index: -1;
}

section.banner.banner-newsletter .img-wrapper::after {
    content: "";
    inset: 0;
    background-color: rgb(0 0 0 / 0.2);
    position: absolute;
}

section.banner.banner-newsletter .content {
    grid-column: 1;
    grid-row: content;
    display: flex;
    align-items: center;
    gap: var(--container-gap);
    justify-content: space-between;
    padding-block: 8.75rem;
}

section.banner.banner-newsletter .text {
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
    max-inline-size: 24.75rem;
}

section.banner.banner-newsletter .form-wrapper {
    max-inline-size: 24.75rem;
    --eg-form-gap-row: 0.625rem;
    --eg-form-field-min-width: 10rem;
    --eg-form-input-padding-block: 1.15625rem;
    --eg-form-input-padding-inline: 1.25rem;
    --eg-form-icon-check: url("data:image/svg+xml,%3Csvg width='10' height='7' viewBox='0 0 10 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.49693 7L0 3.68191L0.874233 2.85239L3.49693 5.34096L9.12577 0L10 0.829522L3.49693 7Z' fill='black'/%3E%3C/svg%3E");
    --eg-form-checkbox-size: 0.625rem;
}

section.banner.banner-newsletter .wpcf7-list-item {
    margin: 0;
}

section.banner.banner-newsletter .wpcf7-not-valid-tip {
    background: #dc3232;
    color: white;
    padding: 0.5em 1em;
    border-radius: var(--eg-form-border-radius-input);
}

section.banner.banner-newsletter input:checked {
    background-size: 70%;
}

section.banner.banner-newsletter .icons-wrapper {
    border-radius: 1.25rem;
    padding-block: 4.5625rem 4.4375rem;
    display: grid;
    --grid-item-width: 15.625rem;
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width), 1fr));
    grid-template-columns: repeat(auto-fill, minmax(min(var(--grid-item-width), 100%), 1fr));
    gap: 4.6875rem;
    padding-inline: 4rem;
    text-align: center;
}

section.banner.banner-newsletter .icons-wrapper .icon {
    block-size: 2.5rem;
    inline-size: 2.5rem;
    margin-block-end: 2.5rem;
    margin-inline: auto;
}

section.banner.banner-newsletter .icons-wrapper .text {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

section.banner.banner-newsletter .icons-wrapper .item {
    max-inline-size: 18.125rem;
    margin-inline: auto;
}

@media (max-width: 768px) {
    section.banner.banner-newsletter {
        margin-block-start: 3.75rem;
        grid-template-rows: [icons-start] auto [icons-end img-start] auto [content-start] 1fr [content-end img-end];
    }

    section.banner.banner-newsletter .icons-wrap {
        padding-block-end: var(--container-x-padding);
    }

    section.banner.banner-newsletter .icons-wrapper {
        padding: 5rem 1.375rem;
    }

    section.banner.banner-newsletter .icons-wrapper .icon {
        margin-block-end: 1.875rem;
    }

    section.banner.banner-newsletter .content {
        padding-block: 8.75rem;
        display: flex;
        flex-direction: column;
        gap: 3.125rem;
    }

    section.banner.banner-newsletter .content .text .title {
        text-wrap: pretty;
    }

    section.banner.banner-newsletter .content .btn-primary {
        margin-block-start: 2.5rem;
    }
}

/* ======================================== */
/* HEADER */
/* ======================================== */
header.egloo .header-bar .items ul li {
    display: grid;
}

header.egloo .header-bar .items ul a {
    position: relative;
    line-height: 0;
}

header.egloo .header-bar .items ul a .items-count {
    position: absolute;
    font-size: 0.5rem;
    line-height: 1.2;
    font-weight: 700;
    color: var(--surface);
    background-color: var(--on-surface);
    block-size: 0.6875rem;
    inline-size: 0.6875rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    inset-block-start: 0;
    inset-inline-end: 0;
    translate: 50% -20%;
}
@media (min-width: 768px) and (hover: hover) {
    header.egloo .header-menus-mobile,
    header.egloo .menu-btn {
        display: none;
    }

    header.egloo {
        position: fixed;
        inset-inline-start: 0;
        inset-block-start: 0;
        inline-size: 100%;
        z-index: var(--z-header);
    }

    header.egloo .header-promo .container {
        block-size: var(--header-promo-height);
        display: grid;
        align-items: center;
        text-align: center;
        font-size: 0.875rem;
        line-height: 1.5;
        letter-spacing: -0.01em;
    }

    header.egloo .header-bar {
        block-size: var(--header-bar-height);
        padding-inline: 3.125rem;
        display: grid;
        align-items: center;

        grid-template-columns: 1fr auto 1fr;
        gap: var(--container-gap);
    }

    header.egloo .header-bar .start ul {
        display: flex;
        align-items: center;
        gap: 2.5rem;
        font-size: 0.8125rem;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: -0.01em;
    }

    header.egloo .header-bar .end {
        justify-self: end;
    }

    header.egloo .header-bar .end,
    header.egloo .header-bar .items ul,
    header.egloo .header-bar .languages ul {
        display: flex;
        align-items: center;
    }

    header.egloo .header-bar .languages ul {
        gap: 0.8125rem;
        font-size: 0.8125rem;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: -0.01em;
        text-transform: uppercase;
    }

    header.egloo .header-bar .languages a[aria-current="page"] {
        opacity: 0.3;
    }

    header.egloo .header-bar .items ul {
        gap: 1.875rem;
        margin-inline: 3.75rem 1.875rem;
        line-height: 0;
    }

    header.egloo .header-bar button.search {
        line-height: 0;
    }

    header.egloo .header-menus ul.level-1 {
        block-size: var(--header-menus-height);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.9375rem;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: -0.01em;
    }

    header.egloo .header-menus ul.level-1 > li > a {
        block-size: var(--header-menus-height);
        display: grid;
        vertical-align: middle;
        place-items: center;
    }

    header.egloo .header-menus ul.level-1 > li:not(:last-child) > a {
        padding-inline-end: 1.25rem;
    }

    header.egloo .header-menus ul.level-1 > li:not(:first-child) > a {
        padding-inline-start: 1.25rem;
    }

    header.egloo .header-menus ul.level-1 > li > a:where(:hover, :focus-visible) {
        color: var(--accent);
    }

    header.egloo .header-menus .submenu {
        position: fixed;
        inset-block-start: var(--header-height);
        inset-inline-start: 0;
        inline-size: 100%;
        display: grid;
        grid-template-rows: 0fr;
        overflow: hidden;
        transition: grid-template-rows 0.5s ease-in-out;
        max-block-size: calc(100% - var(--header-height));
        overflow: auto;
        scrollbar-width: none;
        overscroll-behavior: contain;
    }

    header.egloo .header-menus .submenu:is(:focus-within, :hover, a:is(:hover, :focus-visible) + .submenu) {
        grid-template-rows: 1fr;
    }

    header.egloo .header-menus .submenu .small-marquee {
        position: sticky;
        inset-block-end: 0;
    }

    header.egloo .header-menus .submenu > div {
        min-block-size: 0;
    }

    header.egloo [data-submenu="costumes"] .container {
        padding-block: 6.25rem;
        display: grid;
        grid-template-columns: repeat(12, 1fr);
        gap: var(--container-gap);
    }

    header.egloo [data-submenu="costumes"] h2 {
        grid-column: span 2;
        position: sticky;
        inset-block-start: calc(5rem);
        block-size: fit-content;
    }

    header.egloo [data-submenu="costumes"] .items {
        grid-column: span 10;
        display: grid;
        --grid-item-width: 10.625rem;
        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: var(--container-gap);
    }

    header.egloo [data-submenu="costumes"] .img-wrapper {
        aspect-ratio: 1/1;
    }

    header.egloo :is([data-submenu="characters"], [data-submenu="anniversaries"]) .container {
        --_padding-y: 3.125rem;
        padding-block: var(--_padding-y) 1.25rem;
        display: flex;
        gap: var(--container-gap);
        justify-content: space-between;
        align-items: start;
    }

    header.egloo :is([data-submenu="characters"], [data-submenu="anniversaries"]) .text {
        flex-grow: 1;
        max-inline-size: 44.375rem;
    }

    header.egloo :is([data-submenu="characters"], [data-submenu="anniversaries"]) .start {
        display: flex;
        align-items: end;
        justify-content: space-between;
        margin-block-end: 4.375rem;
    }

    header.egloo :is([data-submenu="characters"], [data-submenu="anniversaries"]) .img-wrapper {
        border-radius: 1.25rem;
        inline-size: 24.75rem;
        flex-shrink: 0;
        block-size: calc(100vh - var(--header-height) - (2 * var(--_padding-y)));
        position: sticky;
        inset-block-start: var(--_padding-y);
        max-block-size: 37.5rem;
        align-self: center;
    }

    header.egloo [data-submenu="characters"] ul {
        column-count: 4;
        row-gap: 2rem;
    }

    header.egloo [data-submenu="characters"] li {
        margin-block-end: 1.0625rem;
    }

    header.egloo :is([data-submenu="characters"], [data-submenu="anniversaries"]) a:where(:hover, :focus-visible) {
        text-decoration: underline;
        text-underline-offset: 6px;
        text-decoration-thickness: 2px;
    }

    header.egloo :is([data-submenu="party"], [data-submenu="house"]) .container {
        padding-block: 6.25rem;
        display: grid;
        grid-template-columns: repeat(12, 1fr);
    }

    header.egloo :is([data-submenu="party"], [data-submenu="house"]) .container > :is(.title, a) {
        grid-column: span 2;
    }

    header.egloo :is([data-submenu="party"], [data-submenu="house"]) .container > a {
        text-align: right;
    }

    header.egloo :is([data-submenu="party"], [data-submenu="house"]) .items {
        grid-column: span 8;
        display: grid;
        --grid-item-width: 10.625rem;
        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));
        row-gap: 2.25rem;
        column-gap: 1.25rem;
    }

    header.egloo :is([data-submenu="party"], [data-submenu="house"]) .img-wrapper {
        aspect-ratio: 188/150;
    }

    header.egloo [data-submenu="anniversaries"] .items {
        display: grid;
        --grid-item-width: 8.625rem;
        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: var(--container-gap);
    }

    header.egloo [data-submenu="anniversaries"] nav p {
        margin-block-end: 1.5rem;
    }

    header.egloo [data-submenu="anniversaries"] ul {
        display: flex;
        flex-direction: column;
        gap: 0.9375rem;
    }

    header.egloo [data-submenu="anniversaries"] .text {
        align-self: stretch;
        display: grid;
        grid-template-rows: 1fr auto 1fr;
    }

    header.egloo [data-submenu="anniversaries"] .start {
        align-self: start;
    }
}

@media (max-width: 768px) or (hover: none) {
    header.egloo .header-menus-desktop,
    header.egloo .menu-btn svg[hidden] {
        display: none !important;
    }

    header.egloo {
        position: fixed;
        z-index: var(--z-header);
        inset-block-start: 0;
        inline-size: 100%;
    }

    header.egloo .header-promo .container {
        block-size: var(--header-promo-height);
        display: grid;
        align-items: center;
        text-align: center;
        font-size: 0.8125rem;
        line-height: 1.5;
        letter-spacing: -0.011em;
    }

    header.egloo .header-bar {
        block-size: var(--header-bar-height);
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-inline: var(--container-x-padding);
    }

    header.egloo .header-bar .start {
        display: none;
    }

    header.egloo .header-bar .center {
        line-height: 0;
    }

    header.egloo .header-bar :is(.end, ul) {
        display: flex;
        align-items: center;
        gap: 1.25rem;
        line-height: 0;
    }

    header.egloo .header-bar :is(.languages, .search) {
        display: none;
    }

    header.egloo .header-menus {
        position: fixed;
        z-index: var(--z-header);
        inline-size: 100%;
        block-size: calc(100vh - var(--header-height));
        inset-block-start: var(--header-height);
        inset-inline-start: 0;
        transition: translate ease-out 0.3s;
        display: flex;
        flex-direction: column;
        touch-action: none;
    }

    header.egloo .header-menus[inert] {
        translate: 100%;
        transition: translate ease-in 0.3s;
    }

    header.egloo .header-menus .content {
        --_content-px: var(--container-x-padding);
        --_content-py: 2.5rem;
        padding-inline: var(--_content-px);
        padding-block: var(--_content-py);
        flex-grow: 1;
        block-size: 0;
        overflow: auto;
        display: flex;
        flex-direction: column;
        gap: 4.375rem;
        position: relative;
        overscroll-behavior: contain;
    }

    header.egloo .header-menus .content,
    header.egloo .header-menus .content * {
        touch-action: auto;
    }

    header.egloo .header-menus .search {
        padding-block: 0.625rem;
        display: flex;
        align-items: center;
        gap: 0.625rem;
        padding-inline: var(--container-x-padding);
        inline-size: 100%;
        font-size: 0.9375rem;
        font-weight: 600;
        letter-spacing: -0.011em;
    }

    header.egloo ul.level-1 {
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
    }

    header.egloo li.level-1 {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    header.egloo .languages-navigation {
        padding-inline: var(--container-x-padding);
    }

    header.egloo .languages-navigation ul {
        border-block-start: 2px solid currentColor;
        padding-block: 0.975rem;
        display: flex;
        align-items: center;
        gap: 1.5625rem;
        font-weight: 500;
    }

    header.egloo .languages-navigation [aria-current] {
        color: var(--c-grey-text);
    }

    header.egloo .secondary-navigation ul {
        font-weight: 500;
        display: flex;
        flex-direction: column;
        gap: 0.9375rem;
    }

    header.egloo .submenu[inert] {
        display: none;
    }

    header.egloo .submenu {
        position: absolute;
        inset-block-start: 0;
        inset-inline-start: 0;
        inline-size: 100%;
        padding-inline: var(--_content-px);
        padding-block-end: var(--_content-py);
    }

    header.egloo .submenu .start {
        padding-block: var(--_content-py);
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-block-end: calc(3.5rem - var(--_content-py));
        position: sticky;
        inset-block-start: calc(-1 * var(--_content-py));
        background-color: var(--surface);
    }

    header.egloo .submenu .start button {
        display: flex;
        align-items: center;
        gap: 0.9375rem;
    }

    header.egloo .submenu .start a {
        text-decoration: underline;
        text-underline-offset: 6px;
    }

    header.egloo .submenu ul {
        display: flex;
        flex-direction: column;
        gap: 1.5625rem;
    }

    header.egloo .item-accordion:not(:last-child) {
        margin-block-end: 1.5625rem;
    }

    header.egloo .item-accordion button {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--container-gap);
        inline-size: 100%;
    }

    header.egloo .item-accordion button span {
        inline-size: 1.75rem;
        block-size: 1.75rem;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background-color: var(--c-beige);
        transition: rotate 0.2s ease;
    }

    header.egloo .item-accordion button[aria-expanded="true"] span {
        rotate: 45deg;
    }

    header.egloo .item-content-wrapper {
        display: grid;
        grid-template-rows: 1fr;
        transition: grid-template-rows 0.3s ease;
        overflow: hidden;
    }

    header.egloo .item-content-wrapper[inert] {
        grid-template-rows: 0fr;
    }

    header.egloo .item-content-wrapper > div {
        min-block-size: 0;
    }

    header.egloo .item-content {
        padding-block-start: 1.5625rem;
        padding-inline-start: 1.875rem;
    }
}

/* ======================================== */
/* SEARCH HERO */
/* ======================================== */

.search-hero {
    min-block-size: calc(100svh - var(--header-height));
    padding-block-start: 8.4375rem;
    display: grid;
    padding-block-end: 3.75rem;
}

dialog .search-hero {
    position: fixed;
    inset-inline-start: 0;
    inset-block-start: var(--header-height);
    z-index: var(--z-header);
    inline-size: 100%;
}

.search-hero .container {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.search-hero search {
    padding-block-end: 1.625rem;
    border-block-end: 2px solid currentColor;
}

.search-hero form {
    display: flex;
    align-items: center;
    gap: var(--container-gap);
}

.search-hero label {
    flex-grow: 1;
    inline-size: 100%;
}

.search-hero input {
    background-color: transparent;
    border-color: transparent;
    flex-grow: 1;
    inline-size: 100%;
    max-inline-size: none;
}

.search-hero .results-filters {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    text-align: center;
}

.search-hero .results-filters .filters {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    justify-content: safe center;
    flex-wrap: wrap;
}

.search-hero .results-filters button {
    border-radius: 999px;
    background-color: var(--accent);
    background-color: rgba(from var(--accent) r g b / 0.5);
    color: var(--on-accent);
    padding-inline: 1.875rem;
    padding-block: 0.21875rem;
}

.search-hero .results-filters button[aria-pressed="true"] {
    background-color: var(--accent);
}

@media (max-width: 768px) {
    .search-hero {
        padding-block: 7.875rem 3.9375rem;
        min-block-size: calc(80svh - var(--header-height));
    }

    dialog .search-hero {
        min-block-size: calc(100svh - var(--header-height));
    }

    .search-hero .results-filters > p {
        font-size: 1.4375rem;
        text-align: start;
        line-height: 1.304347826;
    }

    .search-hero form {
        display: flex;
        flex-direction: column;
        gap: 1.875rem;
    }

    .search-hero .results-filters {
        gap: 1.4375rem;
    }

    .search-hero .results-filters .filters {
        flex-wrap: nowrap;
        overflow: auto;
        inline-size: 0;
        padding-inline: var(--container-x-padding);
        position: relative;
        inset-inline-start: calc(-1 * var(--container-x-padding));
        min-inline-size: calc(100% + var(--container-x-padding) * 2);
        scrollbar-width: none;
    }

    .search-hero input {
        font-size: 1.4375rem;
        line-height: 1.304347826;
        padding-block-end: 0.625rem;
        border-block-end: 2px solid currentColor;
    }

    .search-hero search {
        padding-block-end: 0;
        border-block-end: none;
    }

    .search-hero search .btn-primary {
        inline-size: 100%;
    }
}

/* ======================================== */
/* CARD RESULT */
/* ======================================== */

article.card.card-result {
    display: flex;
    gap: var(--container-gap);
    padding-block: 1.875rem;
    border-block-end: 2px solid currentColor;
    position: relative;
}

article.card.card-result[hidden] {
    display: none;
}

article.card.card-result .img-wrapper {
    border-radius: 0.9375rem;
    aspect-ratio: 1/1;
    inline-size: 14.25rem;
    background-color: var(--c-grey-lighter);
}

article.card.card-result .text {
    order: 2;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

article.card.card-result hgroup {
    display: flex;
    flex-direction: column-reverse;
    gap: 0.9375rem;
    align-items: start;
}

article.card.card-result .post-type {
    background-color: var(--c-beige);
    padding-block: 0.21875rem;
    padding-inline: 1.875rem;
    border-radius: 999px;
}

article.card.card-result a::before {
    content: "";
    position: absolute;
    inset: 0;
}

@media (max-width: 768px) {
    article.card.card-result:first-child {
        padding-block-start: 0;
    }

    article.card.card-result .img-wrapper {
        inline-size: 10.4375rem;
        aspect-ratio: auto;
        block-size: 12.5rem;
        flex-shrink: 0;
    }
}

/* ======================================== */
/* SEARCH RESULTS */
/* ======================================== */

section.search-results {
    padding-block: 6.25rem 3.75rem;
}

section.search-results .container {
    max-inline-size: calc(44.25rem + (2 * var(--container-x-padding)));
}

@media (max-width: 768px) {
    section.search-results {
        padding-block: 5rem 1.25rem;
    }
}

/* ======================================== */
/* NEWS ARCHIVE */
/* ======================================== */

section.news-archive .title-wrapper {
    padding-block: 6.25rem;
    text-align: center;
}

section.news-archive .title-wrapper .breadcrumbs {
    display: none;
}

section.news-archive .wrapper {
    display: grid;
    --grid-item-width: 24.75rem;
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width), 1fr));
    grid-template-columns: repeat(auto-fill, minmax(min(var(--grid-item-width), 100%), 1fr));
    gap: 4.25rem 1.25rem;
}

section.news-archive #eg-pagination {
    margin-block-start: 6.25rem;
}

@media (max-width: 768px) {
    section.news-archive .title-wrapper .breadcrumbs {
        display: block;
        margin-block-end: 1.25rem;
    }

    section.news-archive .wrapper {
        gap: 3.125rem;
    }

    section.news-archive {
        margin-block-end: 6.25rem;
    }

    section.news-archive #eg-pagination {
        margin-block-start: 3.125rem;
    }
}

/* ======================================== */
/* NEWS SINGLE */
/* ======================================== */

section.news-single {
    --_blocks-gap: 5rem;
}

section.news-single .hero {
    margin-block: 5rem;
    text-align: center;
}

section.news-single .hero .container {
    display: flex;
    flex-direction: column;
}

section.news-single .hero .breadcrumbs {
    order: -1;
    margin-block-end: 2.5rem;
}

section.news-single .hero .img-wrapper {
    margin-block-start: 3.75rem;
    aspect-ratio: 812/512;
    border-radius: 0.9375rem;
}

section.news-single [data-layout] {
    margin-block: var(--_blocks-gap);
}

section.news-single [data-layout="text"] .container {
    display: flex;
    flex-direction: column;
    gap: calc(var(--_blocks-gap) / 2.5);
    align-items: start;
}

section.news-single [data-layout="quote"] .text {
    padding-block: var(--_blocks-gap);
    text-align: center;
    font-size: 1.875rem;
    line-height: 1.166667;
    font-family: var(--ff-secondary);
}

section.news-single [data-layout="images"] .items {
    display: grid;
    --grid-item-width: 24.75rem;
    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: var(--container-gap);
}

section.news-single [data-layout="images"] .items .img-wrapper {
    min-block-size: 32rem;
    border-radius: 0.9375rem;
}

section.news-single [data-layout="images"] .items:where(:has(> :nth-child(3))) .img-wrapper {
    min-block-size: 18.25rem;
}

@media (max-width: 768px) {
    section.news-single {
        --_blocks-gap: 3.125rem;
    }
    section.news-single .hero .breadcrumbs {
        margin-block-end: 1.25rem;
    }

    section.news-single .hero .img-wrapper {
        margin-block-start: 6.25rem;
    }

    section.news-single .hero {
        margin-block: 6.25rem 3.125rem;
    }

    section.news-single [data-layout="images"] .items {
        gap: 3.125rem;
    }

    section.news-single [data-layout="quote"] .text {
        padding-block: 5rem;
    }

    section.news-single [data-layout="images"] .items:where(:has(> :nth-child(3))) {
        display: flex;
        gap: var(--container-gap);
        overflow: auto;
        scrollbar-width: none;
        position: relative;
        inset-inline-start: calc(-1 * var(--container-x-padding));
        padding-inline: var(--container-x-padding);
        inline-size: calc(100% + (2 * var(--container-x-padding)));
    }

    section.news-single [data-layout="images"] .items:where(:has(> :nth-child(3))) .img-wrapper {
        flex-shrink: 0;
        aspect-ratio: 300/221;
        min-block-size: 13.8125rem;
    }

    section.news-single [data-layout="images"] .items .img-wrapper:only-child {
        min-block-size: auto;
        aspect-ratio: 335/211;
    }

    section.news-single [data-layout="text"] .btn {
        inline-size: 100%;
    }
}

/* ======================================== */
/* CARD PRODUCT */
/* ======================================== */

article.card.card-product .card-thumbnail {
    --_thumbnail-bg: #f7f5f0;
    --_thumbnail-radius: 0.9375rem;
    display: grid;
    margin-block-end: 0.75rem;
    border-radius: var(--_thumbnail-radius);
    overflow: hidden;
    background-color: var(--_thumbnail-bg);
}

article.card.card-product .card-thumbnail > * {
    grid-area: 1/1;
}

article.card.card-product .card-meta {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

@media (hover: hover) {
    article.card.card-product .card-meta .btn {
        opacity: 0;
        translate: 0 10%;
        scale: 0.95;
        transition:
            opacity 0.1s ease,
            translate 0.2s ease,
            scale 0.2s ease;
    }

    article.card.card-product:where(:has(:focus-visible), :hover, .active) .card-meta .btn {
        opacity: 1;
        translate: 0 0%;
        scale: 1;
    }
}

article.card.card-product .card-meta .start {
    padding: 0.625rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

article.card.card-product .card-meta :is(.card-discount, .card-new) {
    font-size: 0.75rem;
    line-height: 0.583333;
    font-weight: 700;
    letter-spacing: -0.01em;
    padding: 0.5625rem 0.5rem;
    border-radius: 999px;
    background-color: var(--c-fluo-green);
}

article.card.card-product .card-meta .card-new {
    padding: 0.5625rem 0.5rem;
    background-color: var(--c-black);
    color: var(--c-white);
    text-transform: uppercase;
}

article.card.card-product .card-meta .card-favorite {
    background-color: var(--c-white);
    padding: 0.125rem;
    padding-inline-start: 0.4375rem;
    display: flex;
    align-items: center;
    gap: 0.4375rem;
    border-radius: 999px;
}

@media (hover: hover) {
    article.card.card-product .card-meta .card-favorite {
        opacity: 0;
        scale: 0.95;
        transform-origin: top right;
        transition:
            scale 0.2s ease,
            background-color 0.1s ease,
            opacity 0.1s ease;
    }

    article.card.card-product .card-meta .card-favorite[aria-pressed="true"],
    article.card.card-product:where(:hover, :has(:focus-visible)) .card-meta .card-favorite {
        opacity: 1;
        scale: 1;
    }
}

article.card.card-product .card-meta .card-favorite[aria-pressed="true"] rect:nth-child(1) {
    display: none;
}

article.card.card-product .card-meta .card-favorite[aria-pressed="true"] {
    background-color: var(--c-yellow);
}

article.card.card-product .card-meta .end {
    padding: 0.625rem;
    border-radius: var(--_thumbnail-radius);
    transition: background-color 0.3s ease;
}

article.card.card-product[data-type="variants"] .card-meta .end {
    background-color: var(--c-white);
}

article.card.card-product .card-meta .end:has([inert]) {
    background-color: transparent;
}

article.card.card-product .card-meta .end .btn {
    inline-size: 100%;
    background-color: var(--_thumbnail-bg);
}

article.card.card-product .card-meta .end .btn[hidden] {
    display: none;
}

article.card.card-product .card-meta .card-variants-wrap {
    display: grid;
    grid-template-rows: 1fr;
    overflow: hidden;
    transition: grid-template-rows 0.2s ease;
}

article.card.card-product .card-meta .card-variants-wrap[inert] {
    grid-template-rows: 0fr;
}

article.card.card-product .card-meta .card-variants-wrap > div {
    min-block-size: 0;
}

article.card.card-product .card-meta .card-variants-wrap p {
    margin-block-end: 0.4375rem;
}

article.card.card-product .card-meta .card-variants {
    display: flex;
    gap: 0.625rem;
    margin-block-end: 0.8125rem;
}

article.card.card-product .card-meta .card-variant {
    min-inline-size: 1.5625rem;
    block-size: 1.5625rem;
    border-radius: 0.3125rem;
    border: 1px solid transparent;
}

article.card.card-product .card-meta .card-variant[aria-pressed="true"] {
    border-color: currentColor;
}

article.card.card-product .card-meta .card-variant:not([aria-pressed="true"]):where(:focus-visible, :hover) {
    border-color: rgba(from currentColor r g b / 0.5);
}

article.card.card-product .card-meta .card-favorite:where(:hover, :focus-visible) {
    background-color: var(--c-yellow);
}

article.card.card-product .card-rating {
    display: flex;
    align-items: center;
    gap: 0.1875rem;
    margin-block: 0.625rem;
}

article.card.card-product .card-rating svg {
    color: var(--c-grey-medium);
}

article.card.card-product .card-rating svg.filled {
    color: var(--c-blue);
}

article.card.card-product .card-price {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

article.card.card-product .card-original-price {
    color: var(--c-grey-text);
}

/* ======================================== */
/* CARD CHARACTER */
/* ======================================== */

article.card.card-character {
    position: relative;
}

article.card.card-character .img-wrapper {
    border-radius: 1.25rem;
    aspect-ratio: 292/366;
    margin-block-end: 0.625rem;
}

article.card.card-character a {
    margin-block-start: 0.625rem;
    display: inline-block;
}

article.card.card-character a::after {
    content: "";
    position: absolute;
    inset: 0;
}

/* ======================================== */
/* CHARACTERS ARCHIVE */
/* ======================================== */

section.characters-archive .hero {
    margin-block: 6.25rem;
}

section.characters-archive .hero .container {
    display: flex;
    flex-direction: column;
    gap: 2.25rem;
    text-align: center;
}

section.characters-archive .wrap {
    display: grid;
    --grid-item-width: 12.5rem;
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width), 1fr));
    grid-template-columns: repeat(auto-fill, minmax(min(var(--grid-item-width), 100%), 1fr));
    gap: 5rem 1.25rem;
    margin-block-end: 12.5rem;
}

/* ======================================== */
/* PRODUCT SINGLE */
/* ======================================== */

section.product-single .container > .breadcrumbs {
    display: none;
}

section.product-single .zones {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--container-gap);
}

section.product-single .zone-text {
    order: 2;
    margin-inline: auto 2.5rem;
    display: flex;
    flex-direction: column;
    gap: 3.625rem;
    max-inline-size: 28.9375rem;
}

section.product-single .titles-wrapper {
    display: flex;
    flex-direction: column;
    gap: 1.4375rem;
}

section.product-single .titles-wrapper .rating {
    order: -1;
}

section.product-single .rating .stars,
section.product-single .rating .average,
section.product-single .rating {
    display: flex;
    align-items: center;
    gap: 0.9375rem;
}

section.product-single .rating .average {
    gap: 0.3125rem;
    color: var(--c-blue);
}

section.product-single .rating .stars {
    gap: 0.1875rem;
}

section.product-single .rating .stars svg:not(.filled) {
    color: var(--c-grey-medium);
}

section.product-single .breadcrumbs {
    order: -1;
}

section.product-single .breadcrumbs ul {
    --_gap: 1.6875rem;
    font-size: 0.75rem;
    line-height: 1.5;
    letter-spacing: -0.011em;
    font-weight: 500;
    font-family: var(--ff-primary);
}

section.product-single .purchase-wrapper {
    display: flex;
    flex-direction: column;
}

section.product-single .variants-wrapper {
    margin-block-end: 2.5rem;
}

section.product-single fieldset.variant-group {
    border: none;
}

section.product-single fieldset.variant-group legend {
    margin-block-end: 0.625rem;
}

section.product-single fieldset.variant-group .options {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

section.product-single fieldset.variant-group label {
    inline-size: 3.75rem;
    block-size: 3.75rem;
    border-radius: 0.625rem;
    border: 1px solid transparent;
    position: relative;
    display: grid;
    place-items: center;
    background-color: var(--c-beige);
}

section.product-single fieldset.variant-group label:has(input:checked) {
    border-width: 2px;
    border-color: currentColor;
}

section.product-single fieldset.variant-group label:has(input:focus-visible) {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

section.product-single fieldset.variant-group button {
    margin-block-start: 0.625rem;
    text-decoration: underline;
}

section.product-single .purchase-wrapper .remaining {
    order: 2;
    color: var(--c-orange);
    margin-block-start: 0.625rem;
}

section.product-single .purchase-wrapper .btn.btn-primary[type="submit"] {
    block-size: 5rem;
}

section.product-single .content {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

section.product-single .description-wrapper {
    display: flex;
    flex-direction: column;
    gap: 0.9375rem;
}

section.product-single .infos {
    background-color: var(--c-beige);
    border-radius: 0.625rem;
    padding: 1.875rem;
    padding-block-end: 0.9375rem;
    border: 1px solid transparent;
}

section.product-single .infos .infos-head {
    padding-block-end: 0.9375rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

section.product-single .infos .infos-head button {
    transition: rotate 0.3s ease;
}

section.product-single .infos:not(:has([inert])) .infos-head button {
    rotate: 45deg;
}

section.product-single .infos .infos-head button[aria-expanded="true"] {
    rotate: 45deg;
}

section.product-single .infos .infos-content-wrapper {
    display: grid;
    grid-template-rows: 1fr;
    overflow: hidden;
    transition: grid-template-rows 0.2s ease;
}

section.product-single .infos .infos-content-wrapper[inert] {
    grid-template-rows: 0fr;
}

section.product-single .infos .infos-content-wrapper > div {
    min-block-size: 0;
}

section.product-single .infos .infos-content {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 1.25rem;
}

section.product-single .infos .infos-content p {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: -1/1;
    border-block-start: 1px solid currentColor;
    padding-block: 0.9375rem;
    align-items: center;
}

section.product-single .infos .infos-content p:last-child {
    padding-block-end: 0;
}

section.product-single .infos .infos-content .info-title {
    color: var(--c-grey-text);
}

section.product-single .reviews .title {
    margin-block-end: 0.9375rem;
}

section.product-single .reviews .rating {
    justify-content: space-between;
}

section.product-single .reviews .average {
    gap: 0.625rem;
}

section.product-single .reviews .help {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1.25rem;
}

section.product-single .reviews .help > button:nth-child(3) {
    inline-size: 100%;
    text-align: left;
}

section.product-single .reviews .user-review {
    margin-block: 1.875rem 1.375rem;
}

section.product-single .zone-thumbnail .layers {
    position: sticky;
    aspect-ratio: 1/1;
    border-radius: 0.9375rem;
    background-color: var(--c-beige);
    inset-block-start: calc(var(--header-height) + 1rem);
}

section.product-single .zone-thumbnail .layer {
    padding: 0.625rem;
}

section.product-single .zone-thumbnail .img-wrapper {
    block-size: 0;
    min-block-size: 100%;
}

section.product-single .zone-thumbnail .img-wrapper img {
    block-size: 100%;
    object-fit: contain;
}

section.product-single .zone-thumbnail .swiper {
    block-size: 100%;
    inline-size: 0;
    min-inline-size: 100%;
}

section.product-single .zone-thumbnail .layer-fg {
    z-index: 2;
    display: flex;
    align-items: end;
    padding-block-end: 1.875rem;
    pointer-events: none;
}

section.product-single .zone-thumbnail .swiper-pagination {
    --swiper-pagination-bullet-horizontal-gap: 0.3125rem;
    --swiper-pagination-bullet-size: 0.8125rem;
    --swiper-pagination-bullet-inactive-opacity: 1;
    --swiper-pagination-bullet-inactive-color: var(--c-grey-lighter);
    --swiper-pagination-color: var(--c-black);
    line-height: 0;
    position: static;
    pointer-events: auto;
}

@media (max-width: 768px) {
    section.product-single .zone-thumbnail .swiper-pagination {
        --swiper-pagination-bullet-size: 0.625rem;
    }
    section.product-single .container > .breadcrumbs {
        display: block;
        margin-block-end: 1.875rem;
        padding-inline: var(--container-x-padding);
        margin-block-start: 3.125rem;
    }

    section.product-single .zone-thumbnail .layer-fg {
        padding-block-end: 1.25rem;
    }

    section.product-single {
        margin-block-end: 7.1875rem;
    }

    section.product-single .zones {
        display: flex;
        flex-direction: column;
        gap: 1.875rem;
    }

    section.product-single .zone-text {
        gap: 1.875rem;
        max-inline-size: unset;
        margin-inline: 0;
    }

    section.product-single .zone-text .breadcrumbs {
        display: none;
    }

    section.product-single fieldset.variant-group legend {
        margin-block-end: 1.25rem;
    }

    section.product-single fieldset.variant-group button {
        margin-block-start: 1.25rem;
    }

    section.product-single fieldset.variant-group label {
        inline-size: 3.125rem;
        block-size: 3.125rem;
    }

    section.product-single .infos .infos-content p {
        align-items: start;
    }

    section.product-single .infos .infos-content p:last-child {
        padding-block-end: 0.9735rem;
    }
}

/* ======================================== */
/* NOTICE */
/* ======================================== */

.notice {
    background-color: var(--c-black);
    color: white;
    padding: 1.25rem;
    border-radius: 0.625rem;
    display: flex;
    gap: 0.9375rem;
    border: 1px solid transparent;
}

.notice svg {
    flex-shrink: 0;
    margin-block-start: 0.15em;
}

/* ======================================== */
/* REVIEW */
/* ======================================== */

.user-review {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    padding: 1.5625rem;
    padding-inline: 1.6875rem;
    border-radius: 1.25rem;
    border: 1px solid currentColor;
    border-color: rgba(from currentColor r g b / 0.15);
}

.user-review .user-review-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    order: -1;
}

.user-review .user-review-author {
    margin-block-end: 0.625rem;
}

.user-review .user-review-stars {
    display: flex;
    align-items: center;
    gap: 0.1875rem;
}

.user-review .user-review-stars svg:not(.filled) {
    color: var(--c-grey-medium);
}

.user-review .user-review-date {
    color: var(--c-grey-text);
}

/* ======================================== */
/* DIALOGS */
/* ======================================== */

dialog {
    border: none;
    background-color: transparent;
}

.dialog-basic {
    border: transparent;
    background-color: var(--c-white);
    border-radius: 1.25rem;
}

dialog::backdrop {
    background-color: rgba(0 0 0 / 0.2);
    backdrop-filter: blur(10px);
}

.dialog-basic button.dialog-close {
    position: absolute;
    inset-block-start: 1.9375rem;
    inset-inline-end: var(--container-x-padding);
    color: var(--c-grey-medium);
    line-height: 0;
}

.dialog-basic.dialog-text {
    max-inline-size: 44.0625rem;
    max-inline-size: min(44.0625rem, 100% - (2 * var(--container-x-padding)));
    inline-size: 100%;
}

.dialog-basic.dialog-text .container {
    position: relative;
    padding-block-start: 5.125rem;
    padding-block-end: 3.5625rem;
}

.dialog-basic.dialog-text .text {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

@media (max-width: 768px) {
    .dialog-basic.dialog-text .container {
        padding-block: 5rem 3.125rem;
    }
}

.dialog-basic.dialog-reviews button.dialog-close {
    position: sticky;
    margin-block-end: -13px;
    align-self: end;
    margin-inline-end: -5.0625rem;
    translate: 0 -2.5rem;
    inset-block-start: 0rem;
}

.dialog-basic.dialog-reviews {
    inline-size: 100%;
    max-inline-size: 44.8125rem;
    max-inline-size: min(44.8125rem, 100vw - (2 * var(--container-x-padding)));
    margin-inline: auto;
    position: relative;
}

dialog:has(.dialog-basic.dialog-reviews) {
    inline-size: 100%;
    scrollbar-width: none;
    max-block-size: 100%;
    padding-block: 5.125rem;
    max-inline-size: 44.8125rem;
    max-inline-size: min(44.8125rem, 100% - (2 * var(--container-x-padding)));
}

.dialog-basic.dialog-reviews .container {
    padding-block-start: 5.125rem;
    padding-block-end: 3.5625rem;
    max-inline-size: calc(28.9375rem + (2 * var(--container-x-padding)));
    display: flex;
    flex-direction: column;
}

.dialog-basic.dialog-reviews .start {
    display: flex;
    flex-direction: column;
    gap: 0.9375rem;
}

.dialog-basic.dialog-reviews .average,
.dialog-basic.dialog-reviews .rating {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.dialog-basic.dialog-reviews .average {
    gap: 0.625rem;
    color: var(--c-blue);
}

.dialog-basic.dialog-reviews .average .stars {
    line-height: 0;
    display: flex;
    gap: 3px;
}

.dialog-basic.dialog-reviews .average svg {
    inline-size: 0.875rem;
    block-size: 0.875rem;
}

.dialog-basic.dialog-reviews .average svg:not(.filled) {
    color: var(--c-grey-medium);
}

.dialog-basic.dialog-reviews .rating {
    padding-block-end: 0.9375rem;
    border-block-end: 1px solid var(--c-grey-lighter);
}

.dialog-basic.dialog-reviews .start button {
    margin-block: 1.25rem;
}

.dialog-basic.dialog-reviews .items {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

@media (max-width: 768px) {
    dialog:has(.dialog-basic.dialog-reviews) {
        padding: 0;

        max-inline-size: 100%;
    }

    .dialog-basic.dialog-reviews,
    .dialog-basic.dialog-reviews .container {
        max-inline-size: 100%;
        border-radius: 0;
    }

    .dialog-basic.dialog-reviews button.dialog-close {
        /* top: ??; */
    }
}

dialog:has(.dialog-basic.dialog-guides) {
    inline-size: 100%;
    max-block-size: 100%;
    padding-block: 5rem;
    scrollbar-width: none;
}

.dialog-basic.dialog-guides {
    padding-block-start: 1.875rem;
    inline-size: 100%;
    max-inline-size: 53.6875rem;
    margin-inline: auto;
    padding-block-end: 4rem;
}

.dialog-basic.dialog-guides .container {
    max-inline-size: calc(44.75rem + (2 * var(--container-x-padding)));
}

.dialog-basic.dialog-guides .dialog-close {
    position: sticky;
    margin-block-end: 1.6875rem;
    margin-inline-start: calc(100% - 1.875rem);
    translate: -100%;
    inset-block-start: -3rem;
}

.dialog-basic.dialog-guides h2 {
    margin-block-end: 1.25rem;
}

.dialog-basic.dialog-guides h3 {
    margin-block-end: 0.625rem;
    position: sticky;
    inset-inline-start: 0;
}

.dialog-basic.dialog-guides .size-chart-section + .size-chart-section {
    margin-block-start: 1.875rem;
}

.dialog-basic.dialog-guides .size-chart-section {
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--c-black) var(--c-white);
}

@media (max-width: 768px) {
    dialog:has(.dialog-basic.dialog-guides) {
        max-inline-size: unset;
        padding: 0;
        max-block-size: unset;
        block-size: 100%;
    }

    .dialog-basic.dialog-guides {
        max-inline-size: unset;
        block-size: 100%;
        border-radius: 0;
    }

    .dialog-basic.dialog-guides .dialog-close {
        margin-block-end: 1.0625rem;
    }

    .dialog-basic.dialog-guides h3 {
        margin-block-end: 1.25rem;
    }

    .dialog-basic.dialog-guides .size-chart-section {
        position: relative;
        inset-inline-start: calc(-1 * var(--container-x-padding));
        inline-size: calc(100% + (2 * var(--container-x-padding)));
        padding-inline: var(--container-x-padding);
        scrollbar-width: none;
    }
}

dialog:has(.dialog-basic.dialog-add-review) {
    inline-size: 100%;
    max-inline-size: min(44.8125rem, 100% - var(--container-x-padding));
}

.dialog-basic.dialog-add-review {
    padding-block: 5.125rem 3.75rem;
    inline-size: 100%;
    max-inline-size: 44.8125rem;
    margin-inline: auto;
    position: relative;
}

.dialog-basic.dialog-add-review .container {
    max-inline-size: calc(28.9375rem + (2 * var(--container-x-padding)));
}

.dialog-basic.dialog-add-review .title {
    text-align: center;
    margin-block-end: 1.875rem;
    text-wrap: balance;
}

.dialog-basic.dialog-add-review fieldset {
    border: none;
}

.dialog-basic.dialog-add-review fieldset[inert] {
    display: none;
}

.dialog-basic.dialog-add-review .rating .stars {
    display: flex;
    align-items: center;
    justify-content: center;
}

.dialog-basic.dialog-add-review .rating .stars label:nth-child(4n):not(:last-child) {
    padding-inline-end: 0.625rem;
}

.dialog-basic.dialog-add-review .rating .stars label:nth-child(4n) {
    margin-inline-start: -1px;
}

.dialog-basic.dialog-add-review .rating .stars label {
    color: var(--c-grey-medium);
}

.dialog-basic.dialog-add-review .rating .stars label:where(input:checked + label, :has(~ input:checked)) {
    color: var(--c-blue);
}

.dialog-basic.dialog-add-review .rating .stars label:where(:hover, :has(~ label:hover)) {
    color: var(--c-blue);
}
.dialog-basic.dialog-add-review .rating .stars label:hover ~ label {
    color: var(--c-grey-medium);
}

.dialog-basic.dialog-add-review .rating:not(:has(:checked)) .value {
    opacity: 0;
}

.dialog-basic.dialog-add-review .rating .value {
    transition: opacity 0.2s ease;
    text-align: center;
    margin-block: 1.625rem 1.5rem;
    color: var(--c-blue);
}

.dialog-basic.dialog-add-review form.is-step-two .rating .content {
    display: flex;
    align-items: center;
    flex-direction: row-reverse;
    justify-content: center;
    gap: 10px;
}

::view-transition-old(dialog-add-review-stars-value),
::view-transition-new(dialog-add-review-stars-value),
::view-transition-old(dialog-add-review-stars),
::view-transition-new(dialog-add-review-stars) {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.dialog-basic.dialog-add-review form.is-step-two .rating .value {
    margin-block: 0;
}

.dialog-basic.dialog-add-review form.is-step-two .rating .stars svg {
    block-size: 0.8125rem;
    inline-size: auto;
}

.dialog-basic.dialog-add-review form.is-step-two .rating .btn {
    display: none;
}

.dialog-basic.dialog-add-review form.is-step-two .rating .stars label:nth-child(4n):not(:last-child) {
    padding-inline-end: 0.1875rem;
}

.dialog-basic.dialog-add-review .btn.btn-primary {
    text-transform: none;
    inline-size: 100%;
}

.dialog-basic.dialog-add-review .comment label {
    display: flex;
    flex-direction: column;
    gap: 0.3125rem;
    margin-block: 1.875rem;
}

.dialog-basic.dialog-add-review .comment textarea {
    border: 1px solid var(--c-grey-medium);
}

.table-basic :is(td, th),
.table-basic {
    border: 1px solid #dcdcdc;
    border-collapse: collapse;
    font-size: 0.8125rem;
    line-height: 1.769;
    letter-spacing: -0.011em;
    font-weight: 500;
    font-family: var(--ff-primary);
}

.table-basic th {
    background-color: var(--c-black);
    color: var(--c-white);
    border-color: var(--c-black);
}

.table-basic :is(th, td) {
    padding-block: 0.3125rem;
    padding-inline: 0.625rem;
    text-align: center;
    min-inline-size: 6.25rem;
}

.table-basic tr:nth-child(even) {
    background-color: #f2f2f2;
}

.table-basic tr:nth-child(odd) {
    background-color: var(--c-white);
}

/* ======================================== */
/* FAVORITES */
/* ======================================== */

section.favorites-archive .title {
    text-align: center;
    padding-block-end: 8.5rem;
}

section.favorites-archive .container {
    max-inline-size: calc(54.625rem + (2 * var(--container-x-padding)));
    padding-block: 6.25rem;
}

section.favorites-archive .items {
    display: grid;
    --grid-item-width: 15rem;
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width), 1fr));
    grid-template-columns: repeat(auto-fill, minmax(min(var(--grid-item-width), 100%), 1fr));
    gap: 5rem 1.25rem;
}

section.favorites-archive .breadcrumbs {
    display: none;
}

@media only screen and (max-width: 768px) {
    section.favorites-archive .breadcrumbs {
        display: block;
        margin-block-end: 1.25rem;
    }

    section.favorites-archive .title {
        padding-block-end: 6.25rem;
    }
}

/* ======================================== */
/* HERO SPLIT */
/* ======================================== */

section.hero.hero-split .text {
    padding-block: 9.375rem;
    max-inline-size: 26.625rem;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    grid-column: 2;
}

section.hero.hero-split .container,
section.hero.hero-split .layer-bg {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 768px) {
    section.hero.hero-split .layers {
        display: flex;
        flex-direction: column-reverse;
    }

    section.hero.hero-split .container,
    section.hero.hero-split .layer-bg {
        display: block;
    }

    section.hero.hero-split .layer-bg {
        min-block-size: calc(50svh - (var(--header-height) / 2));
        block-size: 0;
    }

    section.hero.hero-split .text {
        min-block-size: calc(50svh - (var(--header-height) / 2));
        padding-block: 5rem;
        text-align: center;
        justify-content: center;
    }
}

/* ======================================== */
/* RELATED PRODUCTS */
/* ======================================== */

section.related-products {
    padding-block-start: 3.4375rem;
    padding-block-end: 3.125rem;
}

section.related-products .container {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

section.related-products .items {
    display: grid;
    --grid-item-width: 15.625rem;
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width), 1fr));
    grid-template-columns: repeat(auto-fill, minmax(min(var(--grid-item-width), 100%), 1fr));
    gap: 5rem var(--container-gap);
}

section.related-products .titles-wrapper {
    display: flex;
    align-items: end;
    justify-content: space-between;
}

@media (max-width: 768px) {
    section.related-products .titles-wrapper {
        display: contents;
    }

    section.related-products .container {
        gap: 3.75rem;
    }

    section.related-products .titles-wrapper a {
        order: 2;
    }

    section.related-products .items {
        position: relative;
        display: flex;
        flex-direction: row;
        overflow: auto;
        scrollbar-width: none;
        inset-inline-start: calc(-1 * var(--container-x-padding));
        inline-size: calc(100% + (2 * var(--container-x-padding)));
        padding-inline: var(--container-x-padding);
    }

    section.related-products .card {
        inline-size: 70vw;
        flex-shrink: 0;
    }
}

/* ======================================== */
/* PRODUCTS ARCHIVE */
/* ======================================== */

section.products-archive {
    margin-block: 5.625rem 9.0625rem;
}

section.products-archive .start {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    margin-block-end: 3.125rem;
}

section.products-archive .start .title {
    justify-self: center;
}

section.products-archive .btn-filter {
    justify-self: start;
}

section.products-archive .order-wrapper {
    justify-self: end;
}

section.products-archive :is(.btn-filter, .btn-order) {
    padding-block: 0.6875rem 0.75rem;
    padding-inline: 2.1875rem;
    border-radius: 0.9375rem;
    background-color: var(--c-beige);
    display: flex;
    align-items: center;
    gap: 0.5625rem;
    border: 1px solid transparent;
    transition: background-color 0.2s ease;
}

@media (hover: hover) {
    section.products-archive :is(.btn-filter, .btn-order):where(:hover, :focus-visible, [aria-expanded="true"]) {
        border-color: currentColor;
    }

    section.products-archive :is(.btn-filter, .btn-order)[aria-expanded="true"] {
        background-color: transparent;
    }
}

section.products-archive .order-wrapper {
    position: relative;
}

section.products-archive .order-wrapper .orders-content-wrapper {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.2s ease;
    overflow: hidden;
    position: absolute;
    inset-block-start: calc(100% - 0.9375rem);
    inline-size: 100%;
}

section.products-archive .order-wrapper .orders-content-wrapper[inert] {
    grid-template-rows: 0fr;
}

section.products-archive .order-wrapper .orders-content-wrapper > div {
    min-block-size: 0;
}

section.products-archive .order-wrapper .order-content {
    background-color: var(--c-beige);
    transition: background-color 0.2s ease;
    border: 1px solid currentColor;
    border-block-start: 0;
    border-radius: 0.9375rem;
    border-start-start-radius: 0;
    border-start-end-radius: 0;
    text-align: center;
    padding-block: 0.625rem 1.125rem;
    display: flex;
    flex-direction: column;
    gap: 0.3125rem;
}

section.products-archive .order-wrapper .order-content:not([inert]) {
    background-color: var(--c-white);
}

section.products-archive .content {
    display: flex;
}

section.products-archive .filters-wrapper {
    inline-size: 19.5rem;
    overflow: hidden;
    transition: inline-size 0.3s ease;
    flex-shrink: 0;
}

section.products-archive .filters-wrapper[inert] {
    inline-size: 0;
}

section.products-archive .content .items {
    display: grid;
    --grid-item-width: 15.625rem;
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width), 1fr));
    grid-template-columns: repeat(auto-fill, minmax(min(var(--grid-item-width), 100%), 1fr));
    gap: 5rem 2.375rem;
}

section.products-archive .filters {
    max-inline-size: 13rem;
}

section.products-archive .filters .active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3125rem;
    margin-block-end: 2.5rem;
}

section.products-archive .filters .active-filters:empty {
    display: none;
}

section.products-archive .filters .active-filters button {
    display: inline-flex;
    gap: 0.3125rem;
    align-items: center;
    background-color: var(--c-beige);
    padding-inline: 0.625rem;
    padding-block: 0.1875rem;
    border-radius: 999px;
    font-size: 0.75rem;
    line-height: 1.5;
    letter-spacing: -0.011em;
}

section.products-archive .filters .active-filters button svg {
    color: var(--c-grey-text);
}

section.products-archive .filters fieldset {
    border: none;
    padding-block-end: 1.25rem;
    border-block-end: 1px solid var(--c-grey-lighter);
}

section.products-archive .filters .fieldset-content-wrapper {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.2s ease;
    overflow: hidden;
}

section.products-archive .filters .fieldset-content-wrapper[inert] {
    grid-template-rows: 0fr;
}

section.products-archive .filters .fieldset-content-wrapper > div {
    min-block-size: 0;
}

section.products-archive .filters legend {
    display: block;
    inline-size: 100%;
}

section.products-archive .filters legend button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    inline-size: 100%;
    gap: 0.5rem;
    padding-block-start: 1.25rem;
}

section.products-archive .filters legend svg {
    transition: rotate 0.3s ease;
}

section.products-archive .filters .checkboxes-list {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-block-start: 0.9375rem;
}

section.products-archive .filters .checkboxes-list label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

section.products-archive .filters .fieldset-subtitle {
    margin-block-start: 0.375rem;
    margin-block-end: 1.5625rem;
    color: var(--c-grey-text);
}

section.products-archive .filters .two-inputs {
    display: grid;
    --grid-item-width: 5rem;
    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: 1.125rem;
    text-align: center;
}

section.products-archive .filters .two-inputs {
    padding-block-start: 0.625rem;
}

section.products-archive .filters .two-inputs input {
    padding: 0.46875rem;
    text-align: center;
    border: 1px solid var(--c-grey-lighter);
}

section.products-archive .filters-end,
section.products-archive .filters-head {
    display: none;
}

@media (max-width: 768px) {
    section.products-archive {
        margin-block-start: 6.25rem;
    }

    section.related-characters + section.products-archive {
        margin-block-start: 5rem;
    }

    section.products-archive .start {
        display: grid;
        grid-template-columns: 1fr 1fr;
        row-gap: 1.875rem;
    }

    section.products-archive .start .title {
        grid-column: -1/1;
        grid-row: 1;
        justify-self: auto;
    }

    section.products-archive :is(.btn-filter, .btn-order) {
        padding-inline: 1.875rem;
    }

    section.products-archive .filters-wrapper {
        position: fixed;
        inset-inline-start: 0;
        inset-block-start: 0;
        z-index: var(--z-above-header);
        background-color: var(--surface);
        inline-size: 100%;
        block-size: 100%;
        transition: translate 0.3s ease-out;
        display: grid;
    }

    section.products-archive .filters-wrapper,
    section.products-archive .filters-wrapper *:not(form, form *) {
        touch-action: none;
    }

    section.products-archive .filters-wrapper[inert] {
        translate: -100%;
        inline-size: 100%;
        transition: translate 0.3s ease-in;
    }

    section.products-archive .filters {
        max-inline-size: unset;
        display: flex;
        flex-direction: column;
    }

    section.products-archive form {
        padding-inline: var(--container-x-padding);
        flex-grow: 1;
        overflow: auto;
        block-size: 0;
        overscroll-behavior: contain;
    }

    section.products-archive .filters-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-block: 2rem;
        padding-inline: var(--container-x-padding);
    }

    section.products-archive .filters-end {
        display: block;
        padding: 1.375rem var(--container-x-padding);
        background-color: var(--c-beige);
        position: sticky;
        inset-block-end: 0;
    }

    section.products-archive .filters-btn-filter {
        padding-block: 0.6875rem 0.75rem;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 0.9375rem;
        border: 1px solid currentColor;
        inline-size: 100%;
        gap: 0.5625rem;
        font-weight: 500;
    }

    section.products-archive .filters fieldset:last-child {
        border-block-end: 0;
    }

    section.products-archive .filters .active-filters {
        margin-block-end: 1.25rem;
    }
}

/* ======================================== */
/* WOOCOMMERCE */
/* ======================================== */

:is(#customer_login, .basic-form-wrapper, .user-area-wrapper) {
    padding-block-start: var(--header-height);
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
    margin-block-end: 0;
}

:is(#customer_login, .basic-form-wrapper),
.user-area-wrapper h2 {
    margin-block-end: 3.125rem;
}

:is(#customer_login, .basic-form-wrapper, .user-area-wrapper) .btn.btn-primary {
    --accent: var(--c-fluo-green);
    float: none;
    display: block;
    margin-right: 0;
    inline-size: 100%;
}

#customer_login .email-link-message {
    margin-block-start: -1.25rem;
    margin-block-end: 1lh;
}

.basic-form-wrapper .normal-message,
#customer_login .policy-message {
    margin-block-end: 1.875rem;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
    padding: 0;
    border: 0;
}

.woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme,
.woocommerce-form__label.woocommerce-form__label-for-checkbox {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.woocommerce form .form-row label {
    font-size: 1.533333;
    margin-block-end: 0.3125rem;
}

.woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme,
.woocommerce form .form-row {
    margin-block-end: 1.875rem;
    padding: 0;
}

.woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme {
    margin-block-start: -1.25rem;
}

.woocommerce-LostPassword.lost_password {
    margin-block-end: 0.625rem;
}

.woocommerce form .form-row-last,
.woocommerce-page form .form-row {
    float: none;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last,
.woocommerce-page form .form-row-first,
.woocommerce-page form .form-row-last {
    width: auto;
}

section.user-area-wrapper .my-account-title {
    margin-block-end: 5.1875rem;
}

section.user-area-wrapper .my-account-title .breadcrumbs {
    display: none;
}

section.user-area-wrapper .dashboard-text {
    max-inline-size: 41.3125rem;
}

.woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
}

.woocommerce-MyAccount-navigation a[aria-current="page"] {
    color: var(--c-grey-text);
}

.woocommerce-MyAccount-navigation a:is([aria-current="page"], :hover, :focus-visible) {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
}

.woocommerce .addresses-intro {
    margin-block-end: 3.75rem;
    text-wrap: balance;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 100%;
    max-inline-size: 20rem;
    float: none;
}

.woocommerce-account .woocommerce-MyAccount-content {
    width: auto;
    float: none;
    flex-grow: 1;
}

.woocommerce-account .user-area-content {
    display: flex;
    gap: var(--container-gap);
}

.woocommerce .addresses-content-wrapper {
    max-inline-size: 41.3125rem;
}

.woocommerce-account .addresses .title .edit,
.woocommerce .addresses-content-wrapper h2 {
    margin-block-end: 1.625rem;
}

.woocommerce-account .addresses .title .edit {
    float: none;
    display: block;
}

.woocommerce-address-fields,
.woocommerce-EditAccountForm {
    --eg-form-input-bg: var(--c-beige);
}

.woocommerce-update-password {
    border: none;
    margin-block-start: 5.625rem;
}

.woocommerce-update-password legend {
    display: block;
    margin-block-end: 3.5rem;
}

.woocommerce-EditAccountForm .btn.btn-primary {
    --accent: var(--c-black) !important;
    --on-accent: var(--c-white);
}

@media (min-width: 768px) {
    .woocommerce-account .woocommerce-MyAccount-navigation.woocommerce-MyAccount-navigation-mobile {
        display: none;
    }
}

@media (max-width: 768px) {
    .woocommerce-account .woocommerce-MyAccount-navigation.woocommerce-MyAccount-navigation-desktop {
        display: none;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation button {
        padding-block-end: 0.625rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
        inline-size: 100%;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation button svg {
        transition: rotate 0.2s ease;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation button[aria-expanded="true"] svg {
        rotate: 180deg;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation div {
        display: grid;
        grid-template-rows: 1fr;
        transition: grid-template-rows 0.2s ease;
        overflow: hidden;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation div[inert] {
        grid-template-rows: 0fr;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation div > ul {
        min-block-size: 0;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
        padding-block-end: 0.625rem;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation li:first-child {
        padding-block-start: 0.9375rem;
    }

    :is(#customer_login, .basic-form-wrapper) {
        padding-block-start: 5rem;
    }

    .user-area-wrapper {
        padding-block-start: 6.25rem !important;
        padding-block-end: 6.25rem;
    }

    .woocommerce form.register {
        margin-block-start: 3.125rem;
    }

    section.user-area-wrapper .my-account-title .breadcrumbs {
        display: block;
        margin-block-start: 1.25rem;
    }

    section.user-area-wrapper .my-account-title {
        margin-block-end: 3.125rem;
    }

    .woocommerce-account .user-area-content {
        flex-direction: column;
        gap: 5rem;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation {
        background-color: var(--c-beige);
        border-radius: 0.625rem;
        padding: 1.875rem 1.25rem;
        max-inline-size: none;
        position: sticky;
        inset-block-start: calc(var(--header-height) + 1rem);
        padding-block-end: 1.25rem;
        z-index: var(--z-below-header);
    }

    .woocommerce-MyAccount-navigation ul {
        gap: 1.5625rem;
    }

    .woocommerce .addresses-content-wrapper .addresses {
        display: flex;
        flex-direction: column;
        gap: 3.75rem;
    }

    .woocommerce .addresses-content-wrapper .addresses::after,
    .woocommerce .addresses-content-wrapper .addresses::before {
        content: initial;
    }
}

/* ======================================== */
/* CONTACTS */
/* ======================================== */

section.contacts {
    padding-block: 6.25rem;
}

section.contacts .titles-wrapper {
    margin-block-end: 3.125rem;
}

section.contacts .content {
    display: grid;
    display: grid;
    --grid-item-width: 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: var(--container-gap);
}

section.contacts .infos {
    max-inline-size: 18.125rem;
    inline-size: 100%;
    margin-inline: auto;
}

section.contacts .infos :is(.title, .address) {
    margin-block-end: 1.5rem;
}

section.contacts .infos .socials {
    margin-block-start: 3.5rem;
}

section.contacts .wpcf7-acceptance {
    display: block;
    margin-block-start: -1.25rem;
}

@media (max-width: 768px) {
    section.contacts .content {
        gap: 5rem;
    }

    section.contacts .infos {
        max-inline-size: none;
    }

    section.contacts .infos .socials {
        margin-block-start: 5rem;
    }

    section.contacts {
        padding-block-end: 1.875rem;
    }
}

/* ======================================== */
/* SOCIALS */
/* ======================================== */

nav.socials ul {
    display: flex;
    align-items: center;
    gap: 1.875rem;
}

nav.socials img {
    inline-size: 1.0625rem;
    block-size: 1.0625rem;
}

@media (max-width: 768px) {
    nav.socials img {
        inline-size: 1.25rem;
        block-size: 1.25rem;
    }
}

/* ======================================== */
/* FOOTER */
/* ======================================== */

footer.egloo .layer-fg {
    padding-block: 6.5625rem;
}

:where(body.woocommerce-page) footer.egloo .layer-fg {
    padding-block: 0;
    margin-block-start: 9.375rem;
    background: var(--c-beige);
}

:where(body.woocommerce-page) footer.egloo .layer-bg {
    display: none;
}

body:is(.woocommerce-account):not(.woocommerce-dashboard) footer.egloo {
    display: none;
}

footer.egloo .content-wrapper {
    background-color: rgba(from var(--c-beige) r g b / 0.9);
    padding-block: 5.625rem;
    border-radius: 1.875rem;
    padding-inline: var(--container-x-padding);
}

footer.egloo .content {
    max-inline-size: 63.9375rem;
    margin-inline: auto;
}

footer.egloo .infos {
    display: flex;
    flex-direction: column;
    align-self: stretch;
}

footer.egloo .infos .socials {
    margin-block-start: auto;
}

footer.egloo .infos .logo {
    margin-block-end: 2.5rem;
}

footer.egloo .infos .email,
footer.egloo .infos .address {
    margin-block-end: 1.5rem;
}

footer.egloo .content .start {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--container-gap);
}

footer.egloo .menu-title {
    margin-block-end: 2.5rem;
}

footer.egloo .end {
    margin-block-start: 2.5rem;
}

footer.egloo .end .texts {
    display: flex;
    align-items: center;
    gap: 9.375rem;
}

@media (max-width: 768px) {
    footer.egloo {
        background-color: var(--c-beige);
    }

    :where(body.woocommerce-page) footer.egloo .layer-fg {
        margin-block-start: 0;
    }

    footer.egloo a {
        pointer-events: none;
    }

    footer.egloo .layer-fg {
        padding: 0;
    }

    footer.egloo .layer-bg {
        display: none;
    }

    footer.egloo .infos .email:has(+ .socials),
    footer.egloo .infos .address:has(+ .socials) {
        margin-block-end: 0;
    }

    footer.egloo .content-wrapper {
        padding: 0;
        padding-block: 5.625rem;
        background-color: transparent;
    }

    footer.egloo .content .start {
        display: flex;
        flex-direction: column;
        gap: 3.75rem;
    }

    footer.egloo .menu-title {
        margin-block-end: 1.25rem;
    }

    footer.egloo .infos .socials {
        margin-block-start: 3.75rem;
    }
}

/* ======================================== */
/* RELATED CHARACTERS */
/* ======================================== */

section.related-characters {
    overflow: hidden;
    margin-block: 6.9375rem 8rem;
}

section.related-characters .title {
    margin-block-end: 1.25rem;
}

section.related-characters .swiper {
    overflow: visible;
}

section.related-characters .swiper-slide {
    position: relative;
    inline-size: fit-content;
}

section.related-characters .img-wrapper {
    inline-size: 14.375rem;
    border-radius: 0.9375rem;
    aspect-ratio: 1;
    margin-block-end: 0.625rem;
}

section.related-characters .title a::before {
    content: "";
    position: absolute;
    inset: 0;
}

@media (max-width: 768px) {
    section.related-characters {
        margin-block: 6.25rem 5rem;
    }

    section.related-characters .title {
        margin-block-end: 3.125rem;
    }
}

/* ======================================== */
/* CARD SIMPLE */
/* ======================================== */

article.card.card-simple {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

article.card.card-simple .img-wrapper {
    border-radius: 0.9375rem;
}

/* ======================================== */
/* MARQUEE */
/* ======================================== */

.small-marquee {
    block-size: 1.875rem;
    display: flex;
    align-items: center;
    overflow: hidden;
    inline-size: 0;
    min-inline-size: 100%;
}

.small-marquee .marquee-section {
    padding-inline: 0.3125rem;
    display: flex;
    white-space: nowrap;
    animation: marquee 30s linear infinite;
}

.small-marquee .marquee-section svg {
    margin-inline-end: 0.625rem;
    flex-shrink: 0;
}

@keyframes marquee {
    from {
        translate: 0%;
    }
    to {
        translate: -100%;
    }
}
