/*
Theme Name: FoxGate
Theme URI: https://foxgate.ua
Author: Illya K.
Author URI:
Description: A custom classic WordPress theme for the FoxGate network equipment catalog. Designed to work with Advanced Custom Fields (ACF), Polylang for localization, and WooCommerce.
Version: 1.0.1
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Text Domain: foxgate
Domain Path: /languages
Tags: custom-background, custom-logo, custom-menu, translation-ready
*/

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
    line-height: 1.15; /* 1 */
    -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
    margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
    display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
    background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
    border-bottom: none; /* 1 */
    text-decoration: underline; /* 2 */
    text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
    font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
    font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
    border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: 1.15; /* 1 */
    margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
    overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
    text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
    padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
    box-sizing: border-box; /* 1 */
    color: inherit; /* 2 */
    display: table; /* 1 */
    max-width: 100%; /* 1 */
    padding: 0; /* 3 */
    white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
    vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
    overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
    display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
    display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
    display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
    display: none;
}




/*! foxgate.css v1.0.1 | by Illya K. */

/* Colors, Sizes & Typography
   ========================================================================== */
:root {
    --caution-common: #EF2D26;
    --primary-common: #7AC243;
    --contrast-common: #141C23;
    --contrast-bright: #535F6A;
    --bg-darker: #E8E7E4;
    --bg-common: #F1EFEB;
    --bg-bright: #FFFFFF;

    --border-common: rgb(from var(--contrast-bright) r g b / .2);
    --border-bright: rgb(from var(--bg-bright) r g b / .4);

    --desktop: 1920px;
    --mobile: 768px;
    --hover: .3s;

    --radius-sm: .25rem;
    --radius-md: 1.25rem;
    --radius-lg: 2.5rem;
    --radius-xl: 3.5rem;

    --font-tree: 'Ubuntu Sans', 'Ubuntu', 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial;
    --font-root: clamp(8px, calc(2.667px + 0.694vw), 16px); /* 768 to 1920px = 8 to 16px */
    --font-accent: 1.1rem;
}

html {
    margin: 0 !important;
    box-sizing: border-box;
    font-family: var(--font-tree), sans-serif;
    font-size: var(--font-root);
    color: var(--contrast-common);
    background-color: var(--bg-common);
}

body {
    font-size: var(--font-accent);
    line-height: 1.4;
    overflow-x: clip;
}

body:has(.css-toggle#mobile-menu-toggle:checked) {
    overflow: hidden;
}

#wpadminbar {
    position: fixed !important;
    top: unset !important;
    bottom: 0;
}

h1 { line-height: 1.1; font-size: 3.75rem; font-weight: 800; }
h2 { line-height: 1.2; font-size: 3.125rem; font-weight: 700; }
h3 { line-height: 1.2; font-size: 2.875rem; font-weight: 700; }
h5 { line-height: 1.3; font-size: 1.375rem; font-weight: 600; }
h6 { line-height: 1.4; font-size: 1.1875rem; font-weight: 600; }

.green { color: var(--primary-common); }
.grey { color: var(--contrast-bright); }

@media (max-width: 768px) {
    :root {
        --font-root: clamp(16px, calc(8.941px + 1.961vw), 24px); /* 360 to 768px = 16 to 24px */
    }

    body {
        font-size: .875rem;
    }

    h1 { font-size: 1.9375rem;  }
    h2 { font-size: 1.75rem; }
    h3 { font-size: 1.5625rem; }
    h5 { font-size: 1.125rem; }
    h6 { font-size: 1rem; }
}

/* Basic blocks
   ========================================================================== */
*, *::before, *::after {
    box-sizing: inherit;
}

body {
    display: flex;
}

img {
    max-width: 100%;
    height: auto;
}

a {
    display: inline-block;
    color: inherit;
}

.wrap {
    display: flex;
    flex-direction: column;
    max-width: var(--desktop);
    width: 100%;
    margin: 0 auto;
}

.main {
    display: flex;
    flex-direction: column;
    margin: 3.125rem 0;
    gap: 8.125rem;
}

.main--products {
    margin: 0 0 3.125rem 0;
    gap: 3.125rem;
}

.main--favorites {
    padding: 0 8.125rem;
}

.main__ribbon {
    display: flex;
    align-items: center;
    margin: 0 4.375rem;
    gap: 3.125rem;
}

.main__split {
    display: grid;
    grid-template-columns: 2fr 8fr;
    margin: 0 4.375rem;
    gap: 3.125rem;
}

.main__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem;
    border-radius: var(--radius-sm);
    background: var(--bg-darker);
}

.main__content {
    display: flex;
    flex-direction: column;
    gap: 3.125rem;
}

.block-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.block {
    display: flex;
    flex-direction: column;
    margin: 0 1.25rem;
    padding: 0 5.625rem;
    gap: 3.125rem;
    border-radius: var(--radius-sm);
}

.block.darker,
.block.bright,
.block.contrast {
    padding-top: 6.25rem;
    padding-bottom: 6.25rem;
    overflow: hidden;
}

.block__heading {
    margin: 0;
}

.block__subheading {
    margin: 0;
}

.block > .block__heading {
    text-transform: uppercase;
}

.block:not([class*="block--"]) > .block__heading,
.block:not([class*="block--"]) > .block__subheading {
    max-width: 50%;
    align-self: center;
    text-align: center;
}

.block__col {
    display: flex;
    flex-direction: column;
    gap: 3.125rem;
}

.block__col > .circle {
    align-self: start;
}

.block__paragraph {
    margin: 0;
}

.darker {
    background: var(--bg-darker);
}

.bright {
    background: var(--bg-bright);
}

.contrast {
    color: var(--bg-bright);
    background: var(--contrast-common);
    font-weight: 600;
}

.inline {
    display: inline-flex;
    align-items: center;
    gap: .625rem;
}

.video {
    width: 100%;
    height: 100%;
    border-radius: var(--radius-sm);
    background: var(--bg-darker);
    object-fit: cover;
}

.css-toggle {
    display: none;
}

@media (min-width: 768px) {
    .block--col-2,
    .block--grid-2 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .block--col-2 > .circles {
        grid-column: span 2;
    }

    .block--grid-2 > .block__subheading {
        padding-right: 33%;
    }

    .block__paragraph {
        line-height: 1.6;
        font-size: 1.25rem;
    }
}

@media (max-width: 768px) {
    .wrap {
        overflow-x: clip;
    }

    .main {
        gap: 3rem;
    }

    .main--products {
        margin: 1.875rem 0;
    }

    .main--product {
        margin-top: 0;
    }

    .main--favorites {
        padding: 0 .9375rem;
    }

    .main__ribbon {
        display: none;
    }

    .main__split {
        display: flex;
        flex-direction: column;
        margin: 0 .9375rem;
        gap: 1.875rem;
    }

    .main__nav {
        flex-wrap: wrap;
        justify-content: space-around;
        gap: 1rem;
    }

    .main__nav > .button {
        flex: 1;
    }

    .block-row {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .block {
        margin: 0;
        padding: 0 .9375rem;
        gap: 1rem;
        border-radius: 0;
    }

    .block.darker,
    .block.bright,
    .block.contrast {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .block--grid-2 {
        text-align: center;
    }

    .block__col {
        gap: 1rem;
    }

    .block__heading {
        font-size: 1.75rem;
    }

    .block--grid-2 > .block__heading {
        order: -1;
    }

    .block:not([class*="block--"]) > .block__heading,
    .block:not([class*="block--"]) > .block__subheading {
        max-width: 100%;
    }

    .block__subheading {
        font-size: 1rem;
    }
}

/* Navbar
   ========================================================================== */
.dgwt-wcas-suggestions-wrapp {
    border: none;
    border-radius: var(--radius-sm);
}

.navbar,
.navbar__actions {
    z-index: 1500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    gap: 3.125rem;
}

.navbar {
    padding: 1.5rem 8.125rem;
    transition: var(--hover) ease-out;
    background: var(--bg-common);
}

.home {
    display: flex;
    flex-shrink: 0;
}

.home__logo {
    width: 18.75rem;
}

@media (min-width: 768px) {
    .navbar > .action,
    .navbar__actions > .action {
        display: none;
    }
}

@media (max-width: 768px) {
    .dgwt-wcas-suggestions-wrapp {
        --margin: .3125rem;
        width: calc( 100% - var(--margin) * 2 ) !important;
        margin: var(--margin);
    }

    .navbar,
    .navbar__actions {
        gap: 1.25rem;
    }

    .navbar {
        z-index: 2500;
        padding: .375rem .9375rem;
        position: sticky;
        top: 0;
        left: 0;
    }

    .navbar:has(.css-toggle#mobile-menu-toggle:checked) {
        background-color: var(--bg-bright);
    }

    .navbar__actions {
        gap: 1.25rem;
        overflow: hidden;
    }

    .navbar__actions > * {
        transition: var(--hover) ease-out;
    }

    .navbar__actions > .language {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    .css-toggle#mobile-menu-toggle:not(:checked) ~ .navbar__actions > .language {
        transform: translate(-50%, -200%);
        opacity: 0;
    }

    .css-toggle#mobile-menu-toggle:checked ~ .navbar__actions > .action {
        transform: translate(0, 200%);
        opacity: 1;
    }


    .navbar > .menu,
    .navbar > .language,
    .navbar > .button--contact {
        display: none;
    }

    .home {
        margin-right: auto;
    }

    .home__logo {
        width: 10rem;
    }
}

/* Navrib
   ========================================================================== */
.navrib {
    z-index: 500;
    display: flex;
    align-items: center;
    margin: 0 1.25rem;
    padding: .6875rem 6.975rem;
    gap: 1.875rem;
    position: sticky;
    top: -1px;
    left: 0;
    transition: z-index 0s linear var(--hover);
}

.navrib--sticky {
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}

.navrib:not(.navrib--sticky) {
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}

.navrib > * {
    transition: opacity 0.3s ease, display 0.3s ease allow-discrete;
    opacity: 1;
}

.navrib--sticky .action__description,
.navrib:not(.navrib--sticky) > .button--contact,
.navrib:not(.navrib--sticky) > .home
{
    opacity: 0;
    display: none;
}

@starting-style {
    .navrib--sticky > .button--contact,
    .navrib--sticky > .home,
    .navrib:not(.navrib--sticky) .action__description {
        opacity: 0;
    }
}

.navrib:has(.mega:hover) {
    z-index: 1500;
    transition: z-index 0s linear 0s;
}

.navrib > .menu {
    margin-right: auto;
}

.navrib .home__logo {
    width: 3rem;
    aspect-ratio: 1.25 / 1;
    object-fit: cover;
    object-position: left;
}

@media (max-width: 768px) {
    .navrib {
        z-index: 1500;
        display: block;
        height: 0;
        margin: 0;
        padding: 0;
    }

    .navrib > *:not(.mega) {
        display: none;
    }
}

/* Menu
   ========================================================================== */
.menu {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

.menu__link {
    display: flex;
    text-decoration-color: transparent;
    text-decoration-thickness: 2px;
    text-underline-offset: .5rem;
    text-wrap: nowrap;
    transition: var(--hover) ease-out;
}

.menu--linear .menu__link:hover {
    text-decoration-color: var(--contrast-common);
}

.contrast > .menu__linear {
    line-height: 1.2;
}

.contrast > .menu--linear .menu__link:hover {
    color: var(--primary-common);
    text-decoration-color: transparent;
}

.menu--linear {
    line-height: 1.4;
    gap: 1.875rem;
}

.menu--col {
    grid-row: span 3;
    flex-direction: column;
}

.menu--col .menu__link {
    font-size: 1.1875rem;
    font-weight: 600;
    padding: .25rem 0;
}

.menu--col:has(+ .footer__text) {
    grid-row: span 2;
}

@media (min-width: 768px) {
    .menu__link {
        font-size: var(--font-accent);
    }
}

@media (max-width: 768px) {
    .menu--linear {
        flex-direction: column;
        gap: 1rem;
    }
}

/* Menu -- Mega
   ========================================================================== */
@media (min-width: 768px) {
    .button--mega {
        overflow: hidden;
    }

    .button--mega > i {
        transition: var(--hover) ease-out;
    }

    .button--mega > .icon-bars {
        position: absolute;
        left: 1.25rem;
        top: 50%;
        transform: translateY(-50%);
    }

    .mega:not(:has(.mega__wrap:hover)) > .button--mega:not(:hover) > .icon-bars {
        transform: translateY(-200%);
    }

    .mega:has(.mega__wrap:hover) > .button--mega > .icon-bars-shifted,
    .button--mega:hover > .icon-bars-shifted {
        transform: translateY(200%);
    }

    .mega__wrap .action--mega,
    .mega__wrap .button,
    .mega__wrap .circle,
    .mega__footer {
        display: none;
    }

    .mega__wrap {
        z-index: 100;
        display: flex;
        width: 100%;
        padding: 3.125rem;
        position: absolute;
        top: 100%;
        left: 0;
        transform: translateY(-.6875rem);
        border-top: .6875rem solid var(--contrast-common);
        border-radius: 0 0 var(--radius-sm) var(--radius-sm);
        font-weight: 400;
        color: var(--contrast-common);
        background: var(--bg-bright);
        transition: var(--hover) ease-out;
        visibility: hidden;
        opacity: 0;
    }

    .mega__wrap:hover,
    .button--mega:hover ~ .mega__wrap {
        visibility: visible;
        opacity: 1;
    }

    .menu--mega.menu--top {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        flex: 1;
        gap: 1.25rem;
    }

    .menu--mega.menu--top > .menu__item > .menu__header > .menu__link {
        font-size: 1.375rem;
        font-weight: 600;
        padding-bottom: 1.25rem;
        border-bottom: 2px solid var(--contrast-common);
    }

    .menu--mega.menu--sub {
        flex-direction: column;
    }

    .menu--mega.menu--sub > .menu__item > .menu__link {
        padding: .9375rem 0;
        border-bottom: 1px solid var(--bg-darker);
        border-radius: 0 0 var(--radius-sm) var(--radius-sm);
        transition: var(--hover) ease-out;
        position: relative;
        overflow: hidden;
    }

    .menu--mega.menu--sub > .menu__item:hover > .menu__link {
        padding-left: 2.8125rem;
        background: var(--bg-common);
    }

    .menu--mega.menu--sub > .menu__item > .menu__link > i {
        font-size: 1.25rem;
        position: absolute;
        top: 50%;
        left: 0;
        opacity: 0;
        transform: translateY(-50%);
        transition: var(--hover) ease-out;
    }

    .menu--mega.menu--sub > .menu__item:hover > .menu__link > i {
        left: .625rem;
        opacity: 1;
    }

    .menu--mega .action--circle {
        margin-left: auto;
    }
}

@media (max-width: 768px) {
    .mega > .button--mega,
    .mega__wrap .action--circle,
    .menu--mega .menu__link > i {
        display: none;
    }

    .mega {
        position: absolute;
        left: 0;
        top: 0;
    }

    .mega__wrap {
        --navbar-height: 3.5rem;
        z-index: 1;
        display: flex;
        flex-direction: column;
        width: 100vw;
        height: auto;
        position: fixed;
        top: var(--navbar-height);
        left: 0;
        border-top: 2px solid var(--contrast-common);
        font-weight: 400;
        color: var(--contrast-common);
        background: var(--bg-bright);
        transition: var(--hover) ease-out;
        opacity: 0;
        visibility: hidden;
        overflow-x: clip;
    }

    .navbar:has(.css-toggle#mobile-menu-toggle:checked) ~ .navrib .mega__wrap {
        opacity: 1;
        visibility: visible;
    }

    .menu--mega.menu--top {
        flex-direction: column;
    }

    .menu--mega.menu--top > .menu__item {
        flex: 1;
        display: grid;
        grid-template-rows: 1fr;
        transition: var(--hover) ease-out;
        position: relative;
    }

    .menu--mega.menu--top:has(> .menu__item > .css-toggle:checked)
    > .menu__item:not(:has(> .css-toggle:checked)) {
        grid-template-rows: 0fr;
        opacity: 0;
        pointer-events: none;
    }

    .menu--mega.menu--top:has(> .menu__item > .css-toggle:checked)
    > .menu__item:not(:has(> .css-toggle:checked)) > .menu__header {
        padding: 0;
    }

    .menu--mega .menu__header {
        display: flex;
        align-items: center;
        min-height: 0;
        padding: .75rem 1rem;
        gap: 1.5rem;
        border-bottom: 1px solid var(--bg-darker);
        overflow: hidden;
    }

    .menu--mega .menu__header > .menu__link {
        font-weight: 600;
    }

    .menu--mega .menu__header > .action--right {
        margin-left: auto;
    }

    .menu--mega .menu__header > .action {
        max-width: 1.25rem;
        padding: .5rem 0;
        box-sizing: content-box;
        overflow: hidden;
    }

    .menu--mega .menu__item > .css-toggle:checked ~ .menu__header > .action--right,
    .menu--mega .menu__item > .css-toggle:not(:checked) ~ .menu__header > .action--left {
        margin-left: -1.5rem;
        padding: 0;
        max-width: 0;
    }

    .menu--mega .menu__body {
        z-index: 1;
        display: flex;
        flex-direction: column;
        width: 100%;
        padding: .75rem 0 1.5rem 0;
        gap: .75rem;
        position: absolute;
        top: 100%;
        left: 0;
        background: var(--bg-bright);
        transition: var(--hover) ease-out;
    }

    .menu--mega .menu__item > .css-toggle:not(:checked) ~ .menu__body{
        transform: translateX(100vw);
    }

    .menu--mega .menu__body .menu__link {
        padding: .75rem 1rem;
    }

    .menu--mega .menu__body > .button--back {
        margin: 0 1rem;
    }

    .menu--mega.menu--sub {
        display: flex;
        flex-direction: column;
    }

    .mega__footer {
        display: flex;
        flex-direction: column;
        padding: 1.5rem 1rem;
        gap: 1.5rem;
    }

    .mega__bg {
        display: block;
        width: 100vw;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        background: var(--contrast-common);
        transition: var(--hover) ease-out;
        opacity: .5;
    }

    .navbar:has(.css-toggle#mobile-menu-toggle:not(:checked)) ~ .navrib .mega__bg {
        opacity: 0;
        visibility: hidden;
    }
}

/* Language
   ========================================================================== */
.language {
    --language-gap: 1.25rem;

    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: var(--language-gap);
}

.language__item {
    position: relative;
}

.language__item:not(:last-child)::after {
    content: '';
    display: block;
    width: 1px;
    height: 100%;
    position: absolute;
    right: calc(var(--language-gap) / -2);
    top: 0;
    opacity: .2;
    background-color: var(--contrast-bright);
}

.language__link {
    color: var(--contrast-bright);
    font-size: var(--font-accent);
    text-decoration-color: transparent;
    text-decoration-thickness: 2px;
    text-underline-offset: .5rem;
    transition: var(--hover) ease-out;
}

.language__item--active > .language__link {
    color: var(--contrast-common);
    font-weight: 700;
}

.language__item:not(.language__item--active) > .language__link:hover {
    text-decoration-color: var(--contrast-common);
    font-weight: 600;
}

@media (max-width: 768px) {
    .language {
        --language-gap: .625rem;
    }
}

/* Circle
   ========================================================================== */
.circles {
    display: flex;
    flex-direction: row-reverse;
    align-items: end;
    justify-content: start;
    margin: 0;
    padding: 0;
    list-style: none;
}

.contrast .circles {
    border-top: 1px solid var(--border-common);
}

.circles__item {
    flex-shrink: 0;
    margin-right: -1.25rem;
}

.circle {
    flex-shrink: 0;
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    border-radius: 50%;
    position: relative;
    overflow: clip;
}

.circle:before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    background: transparent;
    transition: var(--hover) ease-out;
}

.circles .circle {
    border: 2px solid var(--bg-common);
}

.contrast .circles .circle {
    border: 2px solid var(--contrast-common);
}

.circles .circle__img {
    z-index: 0;
    transform: scale(1.5);
}

.circles__item--stretch {
    flex: 1;
}

.circle__img {
    z-index: 1;
    width: 2.5rem;
    height: 2.5rem;
    object-fit: contain;
    transition: var(--hover) ease-out;
}

.circle__heading {
    width: 100%;
    margin: 0;
    text-align: center;
}

.circles__item--stretch .circle__heading {
    text-align: left;
}

.circle:has(.circle__heading) {
    padding: 2.3125rem 2.5rem;
    border-radius: var(--radius-xl);
}

.circle--md {
    padding: 1.25rem;
}

.circle--md .circle__img {
    width: 3.75rem;
    height: 3.75rem;
}

.circle--lg {
    padding: .625rem;
}

.circle--lg .circle__img {
    width: 6.25rem;
    height: 6.25rem;
}

.circle--white { background: var(--bg-bright); }
.circle--grey { background: var(--bg-darker); }
.circle--blobs {
    color: var(--bg-bright);
    background: url('assets/image/green-13.png') center / cover;
}

@media (max-width: 768px) {
    .circles {
        align-items: stretch;
        padding-top: 1rem;
    }

    .circle {
        padding: .78125rem;
    }

    .circle .circle__img {
        width: 1.5626rem;
        height: 1.5625rem;
    }

    .circle:has(.circle__heading) {
        padding: 2.25rem 1.5rem;
    }

    .circle--md {
        padding: .625rem;
    }

    .circle--md .circle__img {
        width: 1.875rem;
        height: 1.875rem;
    }

    .circles .circle--md {
        padding: 0;
    }

    .circles .circle--md .circle__img {
        width: 4.5rem;
        height: 4.5rem;
    }

    .circle--lg .circle__img {
        width: 4.6875rem;
        height: 4.6875rem;
    }

    .circles__item:has(.circle--blobs) {
        flex: 1;
    }

    .circles__item > .circle--blobs {
        height: 100%;
        margin-right: 1.25rem;
    }


    .circles--stretch {
        padding-bottom: 5rem;
        align-items: center;
        position: relative;
    }

    .circles__item--stretch .circle {
        height: 1.5rem;
        overflow: visible;
    }

    .circles__item--stretch .circle__heading {
        font-size: 1rem;
        font-weight: 600;
        line-height: 1.1;
        width: 100%;
        margin-top: 1rem;
        position: absolute;
        top: 100%;
        left: 0;
        color: var(--contrast-bright);
    }

    .circles--stretch > .circles__item:not(.circles__item--stretch) {
        display: none;
    }
}

/* Button
   ========================================================================== */
.button {
    display: flex;
    align-items: center;
    justify-content: center;
    text-wrap: nowrap;
    text-decoration: none;
    border: none;
    outline: none;
    font-weight: 600;
    position: relative;
    color: inherit;
    border-radius: var(--radius-lg);
    transition: var(--hover) ease-out;
}

.button:hover {
    cursor: pointer;
    border-radius: var(--radius-sm);
}

.button > i {
    font-size: 1.5rem;
}

.button--hollow {
    padding: 1rem 1.5rem;
    gap: .625rem;
    border: 2px solid var(--contrast-common);
    background: transparent;
}

.contrast > .button--hollow {
    border: 2px solid var(--bg-bright);
}

.button--primary {
    padding: .75rem 1.25rem;
    gap: .9375rem;
    background: var(--primary-common);
    color: var(--contrast-common);
}

.button--secondary {
    padding: .75rem 1.25rem;
    gap: .9375rem;
    font-style: italic;
    font-weight: 400;
    background: var(--bg-darker);
    color: var(--contrast-common);
}

.button--bright {
    padding: .5rem .625rem .5rem 1.25rem;
    gap: .9375rem;
    font-style: italic;
    font-weight: 400;
    background: var(--bg-bright);
    color: var(--contrast-common);
}

.button--bright:hover {
    background: var(--primary-common);
}

.button--action {
    padding: .625rem .625rem .625rem 1.25rem;
    gap: 1.25rem;
    font-style: italic;
    font-weight: 400;
    background: var(--bg-bright);
    color: var(--contrast-common);
}

.button--action:hover {
    background: var(--primary-common);
}

@media (max-width: 768px) {
    .button--action {
        padding: .5rem .625rem .5rem 1.25rem;
    }
}

/* Action
   ========================================================================== */
.action {
    display: flex;
    align-items: center;
    font-size: 1.25rem;
    line-height: 0;
    padding: 0;
    margin: 0;
    gap: .9375rem;
    position: relative;
    color: inherit;
    border: none;
    background: none;
    text-decoration: none;
    transition: var(--hover) ease-out;
}

.action:hover {
    cursor: pointer;
}

.contrast > .action {
    font-size: 1.5rem;
    color: var(--primary-common);
}


.action--primary {
    padding: .625rem;
    border-radius: var(--radius-md);
    background: var(--primary-common);
    overflow: hidden;
}

.action--circle {
    padding: .625rem;
    border-radius: var(--radius-lg);
    background: var(--bg-darker);
}

.action--circle:hover,
.action--circle.action--active,
*:hover > .action--child.action--circle {
    border-radius: var(--radius-sm);
    background: var(--primary-common);
}

.contrast > .action--circle {
    color: var(--contrast-common);
    background: var(--border-bright);
}

.contrast > .action--circle:hover {
    background: var(--primary-common);
}

.action--bright {
    background: var(--bg-bright);
}


.action--menu > i {
    transition: var(--hover) ease-out;
}

.action--menu > .icon-cross {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateY(-50%) translateX(-50%);
}

.css-toggle#mobile-menu-toggle:not(:checked) ~ .action--menu > .icon-cross {
    transform: translateY(-200%) translateX(-50%);
}

.css-toggle#mobile-menu-toggle:checked ~ .action--menu > .icon-bars {
    transform: translateY(200%);
}


.action > .icon-cross {
    font-size: 1.5rem;
}

.action__description {
    font-size: var(--font-accent);
    transition: var(--hover) ease-out;
}

.contrast > .action:not(:hover) > .action__description {
    color: var(--bg-common);
}



/* Forms
   ========================================================================== */
.form {
    align-self: stretch;
    display: flex;
}

.form--search {
    flex: 0 1 37.5rem;
}

.form--contact {
    flex-direction: column;
    gap: .625rem;
}

.form__row {
    display: flex;
    gap: .625rem;
}

.form__control {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 18.25rem;
    width: 100%;
    height: 100%;
    padding: 0 1.625rem;
    gap: .625rem;
    color: var(--contrast-bright);
    background: var(--bg-bright);
    border-radius: var(--radius-lg);
    transition: var(--hover) ease-out;
    overflow: hidden;
}

.form__control:hover,
.form__control:has(.form__input:focus-within),
.form__control:has(.form__input:not(:placeholder-shown)) {
    color: var(--contrast-common);
    border-radius: var(--radius-sm);
}

.form__input {
    flex: 1;
    line-height: 1.2;
    padding: .8125rem 0;
    border: none;
    outline: none;
}

.form__input::placeholder,
.form__placeholder {
    color: var(--contrast-bright);
    font-style: italic;
}

/*
 * Show action buttons depending on if the field is empty, always show the last one.
 */

.form__control > .action:not(:last-child) {
    transition: var(--hover) ease-out;
}

.form__control:has(:placeholder-shown) > .action:not(:last-child) {
    transform: translateX(400%);
    opacity: 0;
}

.form__control > .action:not(:last-child)::after {
    content: '';
    display: block;
    width: 1px;
    height: 100%;
    position: absolute;
    right: -.3125rem;
    top: 0;
    opacity: .2;
    background-color: var(--contrast-bright);
}

@media (max-width: 768px) {
    .form--search {
        z-index: 2500;
        width: 100%;
        height: 100%;
        padding: .3125rem;
        position: absolute;
        top: 0;
        left: 0;
        background-color: var(--bg-common);
        transition: var(--hover) ease-out;
    }

    .form__bg {
        z-index: -1;
        display: block;
        width: 100vw;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        background-color: var(--contrast-common);
        opacity: .5;
    }

    .form__row {
        flex-direction: column;
    }

    .css-toggle#mobile-search-toggle:not(:checked) ~ .form--search {
        opacity: 0;
        transform: translateY(-100%);
        pointer-events: none;
    }
}

/* Hero
   ========================================================================== */
.hero {
    z-index: 1000;
    margin: 0 1.25rem;
    position: relative;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    background: none;
    overflow: hidden;
    background: var(--bg-darker);
}

.hero__banner {
    display: grid;
    grid-template-columns: .85fr 1fr;
    padding: 20rem 6.875rem 6.875rem 6.875rem;
    gap: 8.5rem;
    position: relative;
}

.hero__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    padding: 3.75rem 7.5rem 1.25rem 7.5rem;
}

.hero__content:has(.categories) {
    padding-bottom: 0;
}

.hero__heading {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    gap: 1.875rem;
    text-transform: uppercase;
    text-wrap: balance;
}

.hero__content > .hero__heading {
    width: 100%;
    text-align: center;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--border-common);
}

.hero.contrast > .hero__content > .hero__heading {
    border-color: var(--border-bright);
}

.hero__tint {
    z-index: -1;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(20, 28, 35, 0.2) 0%, rgba(20, 28, 35, 0.8) 100%);
}

.hero__bg {
    z-index: -2;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
}

@media (min-width: 768px) {
    .hero__banner > .button--primary {
        display: none;
    }
}

@media (max-width: 768px) {
    .hero {
        margin: 0;
        border-radius: 0;
    }

    .hero__banner {
        display: flex;
        flex-direction: column;
        padding: 4rem .9375rem;
        gap: 1rem;
    }

    .hero__content {
        padding: 3rem 1rem 1rem 1rem;
    }

    .hero__heading {
        gap: .5rem;
        flex-wrap: wrap;
        text-align: center;
    }

    .hero__banner > .hook.hook--hero {
        display: none;
    }
}

/* Hook
   ========================================================================== */
.hook {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: auto 1fr;
    margin: auto 0 0 0;
    padding: 0;
    gap: 1.25rem;
    list-style: none;
}

.hook--hero {
    grid-template-columns: repeat(3, 1fr);
}

.hook--stats {
    grid-template-columns: repeat(2, 1fr);
    margin: auto;
    gap: 3.125rem;
}

.hook__item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2;
}

.hook__item:not(:has(> .hook__body)) {
    grid-template-rows: auto;
}

.hook--stats .hook__item {
    gap: 1.25rem;
}

.hook__header {
    display: flex;
    padding: 1rem 0;
    gap: 1.25rem;
    border-top: 2px solid var(--bg-bright);
    border-bottom: 1px solid var(--contrast-bright);
}

.hook__heading {
    display: flex;
    margin: 0;
    gap: .625rem;
}

.hook--stats .hook__heading {
    font-size: 3.75rem;
}

.hook__index {
    text-wrap: nowrap;
}

.hook__body {
    font-weight: 400;
}

@media (max-width: 768px) {
    .hook:not(.hook--stats) {
        display: flex;
        flex-direction: column;
        gap: 1.75rem;
    }

    .hook--stats .hook__heading {
        font-size: 2rem;
    }

    .hook__item {
        display: flex;
        flex-direction: column;
        gap: .9375rem;
    }

    .hook__header {
        gap: .5rem;
    }

    .hook__heading {
        font-size: 1rem;
        gap: .5rem;
    }
}

/* Slider
   ========================================================================== */
.slider__nav {
    display: flex;
}

.slider__controls {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.slider__buttons {
    display: flex;
    align-items: center;
    gap: .625rem;
}

.slider__wrap {
    width: 100%;
    min-width: 0;
    overflow: visible !important;
}

.slider__pages {
    width: fit-content !important;
    margin: 0;
    text-wrap: nowrap;
}

.slider--shaded {
    margin: 0 1.25rem;
    padding: 1.25rem !important;
    border-radius: var(--radius-sm);
    background: var(--bg-darker);
    overflow: hidden;
}

.slider--circles {
    z-index: 50;
    display: flex;
    max-width: 100%;
    padding-left: 8.125rem;
    gap: 5rem;
    position: relative;
}

.slider--circles .slider__nav {
    z-index: 10;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
}

.slider--shaded .slider__nav {
    padding: 1.875rem;
}

.slider--circles .slider__controls {
    justify-content: space-between;
    margin-right: 1.25rem;
}

.slider--circles .slider__slides {
    padding-bottom: .75rem;
    gap: 2.5rem;
}

.slider--full {
    display: flex;
    flex-direction: column;
    gap: 3.125rem;
}

.slider--full .slider__nav {
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem;
    border-radius: var(--radius-sm);
    background: var(--bg-darker);
}

.bright .slider--full .slider__nav {
    background: var(--bg-common);
}

.slider--full .slider__nav--center {
    justify-content: center;
    gap: 1.25rem;
}

@media (min-width: 768px) {
    .slider--circles .slider__nav:after {
        content: '';
        display: block;
        width: 1px;
        height: 100%;
        position: absolute;
        top: 0;
        right: -2.5rem;
        background-color: var(--contrast-bright);
        opacity: .5;
    }

    .slider--circles .slider__nav:before {
        z-index: -1;
        content: '';
        display: block;
        width: 100vw;
        height: 100%;
        position: absolute;
        top: 0;
        right: -10rem;
        background: linear-gradient(90deg, var(--bg-common) 95%, transparent 100%);
    }

    .slider--shaded.slider--circles .slider__nav:before {
        background: linear-gradient(90deg, var(--bg-darker) 95%, transparent 100%);
    }
}

@media (max-width: 768px) {
    .slider--shaded {
        display: none;
    }

    .slider--circles {
        flex-direction: column;
        padding: 0;
        gap: 1rem;
    }

    .slider--circles .badge {
        width: fit-content;
        align-self: center;
    }

    .slider--circles .slider__controls {
        display: none;
    }

    .slider--full {
        gap: 1rem;
    }

    .slider--full .slider__nav {
        padding: .5rem .5rem .5rem 1.5rem;
    }

    .slider--full .slider__nav--center {
        display: none;
    }

    .slider--full .slider__buttons {
        display: none;
    }
}

/* Cards
   ========================================================================== */
:not(.swiper-initialized) > .cards {
    gap: var(--gap);
}

.swiper-initialized .card {
    padding-right: var(--gap);
    box-sizing: border-box;
}

.card {
    flex-shrink: 0;
    width: fit-content !important;
}

.card__wrap {
    position: relative;
    text-decoration: none;
}

/*
 * Circles
 */
.cards--circle {
    display: flex !important;
    align-items: center;
    --gap: 2.5rem;
}

.slider--shaded .cards--circle {
    --gap: .9375rem;
}

.slider--shaded .card--circle .card__wrap {
    padding: .9375rem;
    border-radius: var(--radius-sm);
    transition: var(--hover);
    overflow: hidden;
}

.slider--shaded .card--circle.card--active .card__wrap {
    color: var(--bg-bright);
    background: var(--contrast-common);
}

.slider--shaded .card--circle .card__wrap:hover {
    background: var(--bg-common);
}

.slider--shaded .card--circle.card--active .card__wrap:hover {
    background: var(--contrast-bright);
}

.card--circle .card__wrap  {
    display: flex !important;
    flex-direction: column;
    gap: .9375rem;
}

.card--circle .circle {
    margin: 0 1.25rem;
}

.card--circle .icon-cross {
    position: absolute;
    top: .9375rem;
    right: .9375rem;
}

.card--circle:not(.card--active) .icon-cross {
    display: none;
}

.card--circle .card__heading {
    width: 0;
    min-width: 100%;
    line-height: 1.2;
    font-size: var(--font-accent);
    font-weight: 500;
    text-align: center;
    text-wrap: balance;
    transition: var(--hover) ease-out;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 2px;
}

.card--circle .card__wrap:hover .card__heading {
    text-decoration-color: var(--contrast-common);
}

.card--circle .card__wrap:hover .circle__img {
    transform: scale(1.1);
}

/*
 * Gallery
 */
.cards--gallery {
    display: flex !important;
    align-items: center;
    --gap: 1.25rem;
}

.card--gallery .card__wrap {
    width: 33.75rem !important;
}

/*
 * Products & Posts
 */
.cards--product,
.cards--post {
    display: grid !important;
}

.cards--product {
    --per-view: 4;
    --gap: 1.25rem;
}

.cards--post {
    --per-view: 4;
    --gap: 1.25rem;
}

.main__content .cards--post {
    padding: 0 6.875rem;
    gap: 3.125rem;
}

:not(.swiper-initialized) > .cards--product {
    grid-template-columns: repeat(var(--per-view), 1fr);
    gap: var(--gap);
}

:not(.swiper-initialized) > .cards--post {
    grid-template-columns: repeat(var(--per-view), 1fr);
    gap: var(--gap);
}

.swiper-initialized > .cards--product {
    grid-auto-columns: calc(100% / var(--per-view));
    grid-auto-flow: column;
    grid-template-rows: 1fr auto;
    row-gap: var(--gap);
}

.swiper-initialized > .cards--post {
    grid-auto-columns: calc(100% / var(--per-view));
    grid-auto-flow: column;
    grid-template-rows: auto 1fr;
    row-gap: var(--gap);
}

.card--product,
.card--post {
    display: grid;
    grid-row: span 2;
    grid-template-rows: subgrid;
}

.card--product .card__wrap,
.card--post .card__wrap {
    display: grid !important;
    width: 100% !important;
    grid-row: span 2;
    grid-template-rows: subgrid;
    gap: 1.25rem;
}

.card__header {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.card__thumb {
    display: flex;
    flex-direction: column;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-common);
    position: relative;
    overflow: hidden;
}

.card__ribbon {
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .8125rem 1.25rem;
    transition: var(--hover) ease-out;
}

.card__wrap:hover .card__ribbon {
    color: var(--contrast-common);
    background: var(--primary-common);
}

.card__meta {
    display: inline-flex;
    align-items: center;
    font-size: .75rem;
    line-height: 1.2;
    margin: 0;
    gap: .625rem;
    vertical-align: middle;
    text-transform: uppercase;
}

.card__tag {
    z-index: 1;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.2;
    padding: .3125rem .75rem;
    position: absolute;
    top: 1.25rem;
    left: 0;
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    text-transform: uppercase;
}

.card__tag--hit {
    background: var(--caution-common);
    color: var(--bg-bright);
}

.card__tag--new {
    background: var(--contrast-common);
    color: var(--primary-common);
}

.card__img {
    width: 100%;
    object-fit: cover;
    transition: var(--hover) ease-out;
    background: var(--bg-bright);
}

.card--product .card__img {
    height: 19.375rem;
}

.card--gallery .card__img {
    height: 22.18rem;
}

.card__wrap:hover .card__img {
    transform: scale(1.05);
}

.card__more {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: .9375rem 0;
    position: absolute;
    bottom: 0;
    left: 0;
    font-style: italic;
    background: var(--primary-common);
    transition: var(--hover) ease-out;
}

.card__wrap:not(:hover) .card__more {
    transform: translateY(100%);
}

.card__title {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1.25rem;
}

.card__heading {
    margin: 0;
    word-break: break-all;
    hyphens: auto;
}

.card .action--wish {
    z-index: 1;
    font-size: 1.5rem;
    padding: .625rem;
    position: absolute;
    top: .625rem;
    right: .625rem;
}

.card .action--wish:hover,
.action--wish.action--active{
    color: var(--primary-common)
}

.action--wish.action--active > i:before {
    content: "\e915";
}

.card .action--cosmetic {
    padding: .625rem;
    border-radius: var(--radius-lg);
    color: var(--bg-bright);
    background: var(--contrast-common);
}

.card__wrap:hover .action--cosmetic {
    color: var(--contrast-common);
    background: var(--primary-common);
}

.card__body {
    display: flex;
    flex-direction: column;
    border-top: 2px solid var(--contrast-common);
}

.card--post .card__body {
    padding-top: 1.25rem;
    color: var(--contrast-bright);
}

@media (min-width: 768px) {
    .card--post:nth-child(3n+1),
    .main__content .card--post {
        grid-column: span 2;
        display: flex !important;
        flex-direction: column;
    }
}

@media (max-width: 768px) {
    .card--circle {
        --gap: 1rem;
    }

    .card--gallery .card__wrap {
        width: 15rem !important;
    }

    .cards--product {
        --per-view: 2;
        --gap: .75rem;
    }

    .card--product .card__img {
        height: 7.625rem;
    }

    .card--gallery .card__img {
        height: 10rem;
    }

    .cards--post {
        --per-view: 1;
        --gap: .9375rem;
    }

    .main__content .cards--post {
        padding: 0 .9375rem;
        gap: 1rem;
    }

    .card__tag {
        top: .75rem;
        font-size: .5rem;
    }

    .card__heading {
        font-size: .9375rem;
    }

    .card .action--wish {
        top: 0;
        right: 0;
        font-size: 1.25rem;
    }

    .card--circle .card__heading {
        font-size: .875rem;
        font-weight: 400;
    }
}

/* Badge
   ========================================================================== */
.badge {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
    margin: 0;
    padding: .625rem 1.25rem;
    gap: 1.25rem;
    font-size: var(--font-accent);
    font-weight: 600;
    border-radius: var(--radius-md);
    background: var(--bg-darker);
    text-transform: uppercase;
    text-wrap: nowrap;
}

/* Menu -- Block
   ========================================================================== */
.menu--block.menu--top > .menu__item {
    display: flex;
    flex-direction: column;
    position: relative;
    background: var(--bg-bright);
    border-radius: var(--radius-sm);
    transition: var(--hover) ease-out;
    overflow: hidden;
}

.menu--block.menu--top > .menu__item:hover {
    background: var(--bg-darker);
}

.menu--block.menu--top > .menu__item > .menu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 1.25rem 1.25rem 0 1.25rem;
    padding: 1.25rem;
    border-bottom: 2px solid var(--contrast-common);
}

.menu--block.menu--top > .menu__item > .menu__header > .menu__heading {
    width: min-content;
    margin: 0;
    font-size: 1.875rem;
    font-weight: 600;
}

.menu--block.menu--top > .menu__item > .menu__header > .circle:before {
    background: url('assets/image/green-12.png') center / cover;
}

.menu--block.menu--top > .menu__item:hover > .menu__header > .circle:before {
    opacity: 1;
}

.menu--block.menu--top > .menu__item > .menu__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin: 0 1.25rem .625rem 1.25rem;
}

.menu--block.menu--top > .menu__item > .menu__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .9375rem 2.5rem;
    font-size: var(--font-accent);
    font-style: italic;
    color: var(--bg-bright);
    background: var(--contrast-common);
}

.menu--block.menu--top > .menu__item:hover > .menu__link {
    color: var(--contrast-common);
    background: var(--primary-common);
}

.menu--block.menu--top > .menu__item > .menu__link:before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.menu--block.menu--sub {
    flex: 1;
    z-index: 1;
    display: flex;
    flex-direction: column;
    position: relative;
    pointer-events: none;
}

.menu--block.menu--sub:after {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: 0;
    left: 0;
    background: var(--bg-bright);
    transition: var(--hover) ease-out;
}

.menu--block.menu--top > .menu__item:hover > .menu__body > .menu--block.menu--sub:after {
    background: var(--bg-darker);
}

.menu--block.menu--sub > .menu__item {
    display: flex;
    align-items: center;
    pointer-events: all;
}

.menu--block.menu--sub > .menu__item > .menu__link {
    flex: 1;
    display: flex;
    align-items: center;
    padding: .9375rem 1.25rem;
    gap: .9375rem;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    border-bottom: 1px solid var(--border-common);
    background: transparent;
}

.menu--block.menu--sub > .menu__item:hover > .menu__link {
    padding-left: 2.8125rem;
    background: var(--bg-bright);
}

@media (min-width: 768px) {
    .menu--block.menu--top {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 1.25rem;
    }

    .menu--block.menu--sub > .menu__item > .menu__link {
        font-weight: 500;
    }
}

@media (max-width: 768px) {
    .menu--block.menu--top {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .menu--block.menu--top > .menu__item > .menu__header {
        padding: 0 0 .5rem .5rem;
    }

    .menu--block.menu--top > .menu__item > .menu__header > .menu__heading {
        width: fit-content;
        font-size: 1.125rem;
    }

    .menu--block.menu--sub > .menu__item > .menu__link > i {
        font-size: 1.25rem;
    }
}

/* Attributes
   ========================================================================== */
.attr {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin: 0;
    padding: 0;
    list-style: none;
}

.attr--border {
    border-top: 2px solid var(--contrast-common);
}

.attr__row {
    display: contents;
}

.attr__cell {
    display: inline-flex;
    flex-wrap: wrap;
    padding: .625rem 0;
    column-gap: .9375rem;
    align-items: center;
    border-bottom: 1px solid var(--border-common);
    word-break: break-all;
    hyphens: auto;
}

.attr__cell--key {
    padding-right: .3125rem;
    font-style: italic;
    color: var(--contrast-bright);
}

@media (max-width: 768px) {
    .attr__cell {
        padding: .25rem 0;
    }
}

/* Footer
   ========================================================================== */
.footer__nav {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(3, 1fr);
    grid-template-columns: 2fr 1fr 1fr;
    align-items: start;
    padding: 6.25rem;
    column-gap: 13.75rem;
}

.footer__nav > .footer__text {
    align-self: end;
}

.footer__nav > .menu--linear {
    gap: .625rem;
}

.footer__cert {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    font-size: var(--font-accent);
}

.footer__text {
    margin: 0;
    font-style: italic;
}

@media (max-width: 768px) {
    .footer__nav {
        grid-auto-flow: row;
        grid-template-rows: auto;
        grid-template-columns: 1fr 1fr;
        padding: .9375rem;
        row-gap: 1.75rem;
        column-gap: .75rem;
    }

    .footer__nav > *:not(.menu) {
        grid-column: span 2;
    }

    .footer__nav > .footer__text {
        order: 255;
    }

    .footer__nav > .menu--linear {
        gap: 1.75rem;
    }

    .footer__nav .home__logo {
        width: 15rem;
    }

    .footer__cert > .circle {
        align-self: start;
    }
}

/* Popup
   ========================================================================== */
.popup {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0;
    padding: 3.125rem;
    gap: .9375rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(.95);
    border: none;
    border-radius: var(--radius-sm);
    opacity: 0;
    transition: var(--hover);
    pointer-events: none;
}

.popup[open] {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    pointer-events: all;
}

@starting-style {
    .popup[open] {
        opacity: 0;
        transform: translate(-50%, -50%) scale(.95);
    }
}

.popup::backdrop {
    opacity: 0;
    background: var(--contrast-common);
    transition: var(--hover);
}

.popup[open]::backdrop {
    opacity: .5;
}

.popup__heading {
    margin: 0;
    padding-bottom: .9375rem;
    text-align: center;
    text-transform: uppercase;
    border-bottom: 1px solid var(--border-bright);
}

.popup__subheading {
    width: 0;
    min-width: 100%;
    margin: 0 0 2rem 0;
    text-align: center;
    font-weight: 400;
}

.popup > .action--close {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
}

@media (max-width: 768px) {
    .popup {
        padding: 1.5rem;
    }

    .popup__subheading {
        margin: 0;
    }
}

/* Crumbs
   ========================================================================== */
.crumb {
    display: flex;
    max-width: 100%;
    margin: 0;
    padding: 0 0 .5rem 0;
    gap: 1.25rem;
    list-style: none;
    overflow: auto;
}

.crumb__item {
    display: inline-flex;
    align-items: center;
    font-style: italic;
    font-weight: 400;
}

.crumb__item:not(:last-child):after {
    content: '/';
    display: block;
    margin-left: 1.25rem;
}

.crumb__link {
    text-wrap: nowrap;
    text-decoration: none;
    transition: var(--hover);
    color: var(--contrast-bright);
}

.contrast .crumb__link {
    color: inherit;
}

.crumb__link:hover {
    color: var(--primary-common) !important;
}

.crumb__item:last-child > .crumb__link {
    color: var(--border-common);
    pointer-events: none;
}

.contrast .crumb__item:last-child > .crumb__link {
    color: var(--border-bright);
}

/* Chips
   ========================================================================== */
.chips {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0 0 .5rem 0;
    gap: .625rem;
    list-style: none;
    overflow: auto;
}

.chips__link {
    display: inline-flex;
    align-items: center;
    margin: 2px;
    padding: .625rem .9375rem;
    gap: .3125rem;
    box-shadow: inset 0 0 0 1px var(--border-common);
    border-radius: var(--radius-sm);
    text-decoration: none;
    text-wrap: nowrap;
    transition: var(--hover);
}

.chips__link:hover {
    box-shadow: inset 0 0 0 2px var(--contrast-common);
}

.chips__link > .icon-cross {
    transition: var(--hover);
}

.chips__link:not(:hover) > .icon-cross {
    color: var(--contrast-bright);
}

/* Categories
   ========================================================================== */
.categories {
    display: flex;
    max-width: 100%;
    margin: 0;
    padding: 0;
    gap: 3.125rem;
    list-style: none;
    overflow: auto;
}

.categories__link {
    display: inline-flex;
    padding: 1.25rem 0;
    line-height: 1.4;
    font-size: 1.1875rem;
    font-weight: 600;
    border-bottom: 2px solid transparent;
    text-decoration: none;
    text-wrap: nowrap;
    transition: var(--hover);
}

.categories__link:hover,
.categories__link--active {
    border-color: var(--contrast-common);
}

@media (max-width: 768px) {
    .categories {
        padding-bottom: .5rem;
        gap: 1rem;
    }
}

/* Filters
   ========================================================================== */
.filters__list {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    gap: .625rem;
    list-style: none;
}

.filters__footer {
    display: flex;
    gap: .625rem;
}

.filters__footer .button {
    flex: 1;
}

.filter {
    margin: 0 !important;
}

.filter__accordion {
    padding: 1.875rem;
    border-radius: var(--radius-sm);
    background: var(--bg-bright);
    overflow: hidden;
}

.filter__accordion::details-content {
    transition: var(--hover) allow-discrete;
}

.filter__accordion .icon-chevron-down {
    font-size: 1.5rem;
    transition: var(--hover);
}

.filter__accordion[open] .icon-chevron-down {
    transform: rotate(180deg);
}

.filter__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .9375rem;
    border-bottom: 1px solid transparent;
    transition: var(--hover);
    cursor: pointer;
}

.filter__accordion[open] .filter__header {
    padding-bottom: .9375rem;
    margin-bottom: .9375rem;
    border-color: var(--border-common);
}

.filter__heading {
    margin: 0;
}

.filter__wrap {
    display: grid !important;
    grid-template-rows: 0fr;
    transition: var(--hover);
}

.filter__accordion[open] .filter__wrap {
    grid-template-rows: 1fr;
}

.filter__options {
    min-height: 0;
    overflow: hidden;
}

.filter__control {
    display: flex;
    gap: .9375rem;
}

.filter__link {
    font-size: var(--font-accent);
    line-height: 1.4;
    text-wrap: balance;
    pointer-events: none;
}

.filter__count {
    color: var(--contrast-bright);
}

@media (min-width: 768px) {
    .button--filters,
    .filters__header,
    .filters__form .chips {
        display: none;
    }

    .filters__form {
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
    }
}

@media (max-width: 768px) {
    .filters__form {
        z-index: 3000;
        display: flex;
        flex-direction: column;
        width: 100vw;
        height: 80vh;
        gap: .5rem;
        position: fixed !important;
        top: 0;
        left: 0;
        background: var(--bg-common);
        transition: var(--hover);
        opacity: 0;
        visibility: hidden;
        overflow-x: clip;
    }

    .css-toggle#mobile-filter-toggle:checked ~ .filters__form {
        opacity: 1;
        visibility: visible;
    }

    .filters__bg {
        z-index: 2500;
        display: block;
        width: 100vw;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        background: var(--contrast-common);
        transition: var(--hover) ease-out;
        opacity: .5;
    }

    .css-toggle#mobile-filter-toggle:not(:checked) ~ .filters__bg {
        opacity: 0;
        visibility: hidden;
    }


    .filters__header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: .75rem .9375rem;
        border-bottom: 2px solid var(--contrast-common);
    }

    .filters__heading {
        line-height: 1.1;
        margin: 0;
    }

    .filters__form .chips {
        margin: 0 .5rem;
    }

    .filters__list {
        margin: 0 .5rem;
        overflow: auto;
    }

    .filters__footer {
        width: 100%;
        margin-top: auto;
        padding: .5rem .9375rem;
        background: var(--bg-darker);
    }


    .filter__accordion {
        padding: .75rem;
    }

    .filter__header {
        padding: 0 !important;
        border: none;
    }
}

/* Checkbox
   ========================================================================== */
.checkbox {
    display: grid;
    place-content: center;
    width: 1.5rem;
    height: 1.5rem;
    margin: 2px !important;
    border-radius: var(--radius-sm);
    color: var(--bg-bright);
    background: var(--bg-bright);
    box-shadow: inset 0 0 0 1px var(--border-common);
    transition: var(--hover);
    appearance: none;
    outline: none;
    cursor: pointer;
}

.checkbox:before {
    content: "\e903";
    font-size: 1.5rem;

    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'foxgate' !important;
    speak: never;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;

    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.checkbox:checked {
    color: var(--primary-common);
    background: var(--contrast-common) !important;
}

.checkbox:checked,
.checkbox:hover {
    box-shadow: inset 0 0 0 2px var(--contrast-common);
}

/* Pagination
   ========================================================================== */
.pages {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    gap: .625rem;
    list-style: none;
}

.pages__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1;
    margin: 0;
    font-size: var(--font-accent);
    font-weight: 600;
}

/* FAQ
   ========================================================================== */
.faq {
    display: flex;
    flex-direction: column;
    gap: .625rem;
}

.faq__item {
    padding: .9375rem 1.875rem;
    border-radius: var(--radius-sm);
    background: var(--bg-darker);
    overflow: hidden;
}

.faq__item::details-content,
.faq__item .icon-cross {
    transition: var(--hover) allow-discrete;
}

.faq__item:not([open]) .icon-cross {
    transform: rotate(45deg);
}

.faq__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .9375rem;
    transition: var(--hover);
    cursor: pointer;
}

.faq__item[open] .faq__header {
    margin-bottom: .9375rem;
}

.faq__heading {
    margin: 0;
}

.faq__wrap {
    display: grid;
    grid-template-rows: 0fr;
    transition: var(--hover);
}

.faq__item[open] .faq__wrap {
    grid-template-rows: 1fr;
}

.faq__content {
    min-height: 0;
    overflow: hidden;
}

/* Anchors
   ========================================================================== */
.anchors {
    order: -1;
    min-width: 0;
}

.anchors__heading {
    margin: 0;
    font-size: var(--font-accent);
    font-weight: 400;
    text-align: center;
}

.anchors__list {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0 0 .5rem 0;
    list-style: none;
    overflow: auto;
}

.anchors__link {
    display: flex;
    align-items: center;
    padding: .9375rem 1.25rem;
    gap: .9375rem;
    font-size: 1.1875rem;
    font-weight: 600;
    position: relative;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    border-bottom: 1px solid var(--border-common);
    transition: var(--hover);
    text-decoration: none;
}

.anchors__link:hover,
.anchors__link--active {
    padding-left: 2.8125rem;
}

.anchors__link:hover {
    background: var(--border-common);
}

.anchors__link--active {
    border-bottom: 2px solid var(--contrast-common);
}

.anchors__link > .icon-arrow-right {
    font-size: 1.25rem;
    position: absolute;
    left: 0;
    opacity: 0;
    transition: var(--hover);
}

.anchors__link:hover > .icon-arrow-right,
.anchors__link--active > .icon-arrow-right {
    left: .625rem;
    opacity: 1;
}

@media (min-width: 768px) {
    .anchors {
        align-self: start;
        position: sticky;
        top: 10rem;
        left: 0;
    }
}

@media (max-width: 768px) {
    .anchors--compactable .anchors__list {
        flex-direction: row;
    }

    .anchors__link {
        border-radius: 0;
    }
}

/* Product & Post Content
   ========================================================================== */
:is([class$="__content"], [class*="__content"]) h2 {
    margin: 0;
    scroll-margin-top: 10rem;
}

.product__content h2 {
    padding-bottom: .625rem;
    border-bottom: 2px solid var(--contrast-common);
}


:is([class$="__content"], [class*="__content"]) table {
    min-width: 100%;
    padding: 2.5rem;
    border-radius: var(--radius-sm);
    background: var(--bg-bright);
    table-layout: fixed;
}

:is([class$="__content"], [class*="__content"]) :is(td, th) {
    padding: .625rem 1.25rem;
    border-bottom: 1px solid var(--border-common);
}


@media (max-width: 768px) {
    :is([class$="__content"], [class*="__content"]) table {
        padding: 1rem;
    }
}

/* Template: Single Product
   ========================================================================== */
.product {
    display: flex;
    flex-direction: column;
    padding: 0 8.125rem;
    gap: 1.25rem;
}

.product__header {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: min-content;
    column-gap: 3.125rem;
    row-gap: 1.875rem;
}

.product__header > *:not(.carousel) {
    grid-column: 2;
}

.product__heading {
    margin: 0;
}

.product__split {
    display: grid;
    grid-template-columns: 2fr 8fr;
    margin-top: 6rem;
    gap: 3.125rem;
}

.product__content {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 6rem;
}

.product__content > section {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}


.carousel {
    grid-column: 1;
    grid-row: 1 / 6;
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: .625rem;
}

.carousel__slide {
    border: 2px solid transparent;
    border-radius: var(--radius-sm);
    box-sizing: border-box;
    overflow: hidden;
    cursor: pointer;
    transition: var(--hover);
}

.carousel__slide.swiper-slide-thumb-active {
    border-color: var(--contrast-common);
}

.carousel__thumbs .carousel__slide {
    width: fit-content;
}

.carousel__thumbs .carousel__wrap {
    gap: .625rem;
}

.carousel__thumb {
    display: block;
    width: 4.1875rem;
    height: 3.125rem;
    object-fit: cover;
}

.carousel__gallery {
    overflow: hidden;
}

.carousel__lightbox {
    display: flex;
}

.carousel__image {
    flex: 1;
    display: block;
    height: 38.5rem;
    object-fit: contain;
    background: var(--bg-bright);
}

.carousel__nav {
    display: none;
}


.variations {
    display: flex;
    flex-direction: column;
    max-height: 20rem;
    margin: 0;
    padding: 0;
    gap: .625rem;
    overflow: auto;
    list-style: none;
}

.variations__item {
    display: flex;
    align-items: start;
    gap: .625rem;
}

.variations__lightbox {
    display: flex;
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.variations__thumb {
    display: block;
    width: 4.1875rem;
    height: 3.125rem;
    object-fit: cover;
}

.variations__wrap {
    flex: 1;
    display: flex;
    align-items: start;
    padding: .75rem;
    gap: 3.125rem;
    border-radius: var(--radius-sm);
    background: var(--bg-darker);
    overflow: hidden;
}

.variations__wrap > .action--wish {
    font-size: 1.5rem;
}

.variations__checkbox {
    background: transparent;
    color: transparent;
}

.variations__details {
    flex: 1;
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 3.125rem;
    word-break: break-all;
    hyphens: auto;
    cursor: pointer;
}

.variations__heading {
    flex: 7;
    margin: 0;
}

.variations__attribute {
    flex: 3;
    margin: 0;
}


.files {
    overflow: auto;
}

.files__table {
    width: max-content;
}

.files__heading {
    font-size: 1.1875rem;
    text-align: left;
}

.file__title {
    font-weight: 500;
}

.file__media a {
    display: inline-flex;
    align-items: center;
    gap: .625rem;
}

.file__icon {
    width: 2.5rem;
    height: 2.5rem;
}

.file__size {
    font-style: italic;
    color: var(--contrast-bright);
}

.file__desc {
    color: var(--contrast-bright);
}


@media (min-width: 768px) {
    .product__header > .button {
        width: fit-content;
    }

    .product__content > .product__description {
        display: block;
        column-count: 2;
        column-gap: 8rem;
        scroll-margin-top: 10rem;
    }
}

@media (max-width: 768px) {
    .product {
        padding: 0 .9375rem;
        gap: 3rem;
    }

    .product__header {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .product__heading {
        order: -1;
    }

    .product__split {
        grid-template-columns: 1fr;
        margin: 0;
        gap: 1.875rem;
    }

    .product__content,
    .product__content > section {
        gap: 1.75rem;
    }


    .carousel__image {
        height: 15.5rem;
    }

    .carousel__thumbs {
        display: none;
    }

    .carousel__nav {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: .625rem;
        background: var(--bg-darker);
    }

    .carousel__pages {
        margin: 0;
        text-align: center;
    }


    .variations__wrap {
        gap: 1rem;
    }

    .variations__details {
        flex-direction: column;
        gap: 0;
    }
}

/* Template: Single Post
   ========================================================================== */
.post {
    display: flex;
    flex-direction: column;
    padding: 0 15.625rem;
    gap: 1rem;
}

.post__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
}

.post__heading {
    width: 100%;
    margin: 0;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--border-common);
    text-align: center;
    text-transform: uppercase;
    word-break: break-word;
    hyphens: auto;
}

.post__ribbon {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    column-gap: 1.75rem;
    row-gap: 1rem;
}

.post__meta {
    display: inline-flex;
    align-items: center;
    gap: .625rem;
}

.post__thumb {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius-sm);
}

.post__split {
    display: grid;
    grid-template-columns: 3fr 7fr;
    margin-top: 6rem;
    gap: 3.125rem;
}

.post__wrap {
    display: flex;
    flex-direction: column;
    gap: 3.125rem;
}

@media (max-width: 768px) {
    .post {
        padding: 0 .9375rem;
    }

    .post__ribbon {
        justify-content: space-around;
    }

    .post__ribbon > .button {
        order: 3;
    }

    .post__thumb {
        width: 100vw;
        max-width: initial;
        border-radius: 0;
    }

    .post__split {
        grid-template-columns: 1fr;
        margin: 0;
        gap: 1.875rem;
    }

    .post__wrap {
        gap: 1.75rem;
    }
}


/* Template: About
   ========================================================================== */
.timeline {
    grid-column: span 2;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 3.125rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.timeline__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .9375rem;
}

.timeline__heading,
.timeline__subheading {
    margin: 0;
    text-align: center;
}

.timeline__stripe {
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, var(--primary-common), var(--contrast-common));
    position: relative;
}

.timeline__stripe:after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
}

.timeline__item > .timeline__stripe:after {
    /* arrow */
    width: .625rem;
    height: .625rem;
    border-top: 2px solid var(--contrast-common);
    border-right: 2px solid var(--contrast-common);
    transform: translateY(-50%) rotate(45deg);
}

.timeline__item:last-child .timeline__stripe:after {
    /* circle */
    width: .75rem;
    height: .75rem;
    border-radius: 50%;
    background: var(--contrast-common);
    transform: translateY(-50%);
}

@media (max-width: 768px) {
    .timeline {
        grid-auto-flow: column;
        grid-template-columns: none;
        grid-auto-columns: 8.75rem;
        padding: 1rem 0;
        gap: 1rem;
        overflow: auto;
    }
}

/* Template: Contacts
   ========================================================================== */
.contacts {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.contacts__heading {
    margin: 0;
}

.block__col > iframe {
    flex: 1;
    min-height: 11.5rem;
}

/* Template: 404
   ========================================================================== */
.not-found {
    display: flex;
    flex-direction: column;
    gap: 6.25rem;
    padding: 6.25rem 8.125rem;
}

.not-found__symbols {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3.125rem;
}

.not-found__symbol {
    height: auto;
}

.not-found__symbol--4 {
    width: 10.625rem;
}

.not-found__symbol--0 {
    width: 23.75rem;
}

.not-found__block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border-bright);
}

.not-found__heading {
    margin: 0;
    text-transform: uppercase;
}

.not-found__sub {
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
}

.not-found__paragraph {
    margin: 0;
    line-height: 1.6;
    font-size: 1.1875rem;
    font-weight: 400;
}

@media (min-width: 768px) {
    .not-found__sub > .button {
        width: fit-content;
    }
}

@media (max-width: 768px) {
    .not-found {
        padding: 3rem 1rem;
        gap: 3rem;
    }

    .not-found__symbols {
        gap: 1.25rem;
    }

    .not-found__symbol--4 {
        width: 4.0625rem;
    }

    .not-found__symbol--0 {
        width: 9.625rem;
    }

    .not-found__block {
        display: flex;
        flex-direction: column;
    }

    .not-found__heading,
    .not-found__paragraph {
        text-align: center;
    }

    .not-found__paragraph {
        font-size: .875rem;
    }
}