@charset 'utf-8';

@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap');

@font-face {
    font-family: 'Klarheit';
    src: local('ESKlarheitGrotesk Rg'), local('ESKlarheitGrotesk-Rg'),
        url('../fonts/ESKlarheitGrotesk-Rg.woff2') format('woff2'),
        url('../fonts/ESKlarheitGrotesk-Rg.woff') format('woff'),
        url('../fonts/ESKlarheitGrotesk-Rg.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Klarheit';
    src: local('ESKlarheitGrotesk Bd'), local('ESKlarheitGrotesk-Bd'),
        url('../fonts/ESKlarheitGrotesk-Bd.woff2') format('woff2'),
        url('../fonts/ESKlarheitGrotesk-Bd.woff') format('woff'),
        url('../fonts/ESKlarheitGrotesk-Bd.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/RobotoMono-Thin.ttf') format('truetype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

/* reset */

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, a, abbr, acronym, address,
img, center, ol, ul, li, dl, dt, dd, form, fieldset, label, legend, input, select, button, textarea, table, tbody, tr, th, td,
article, aside, canvas, details, embed, figure, figcaption, footer, header, nav, section, time, mark, audio, video {
	border: 0; font-size: 100%; font: inherit; vertical-align: baseline; padding: 0; margin: 0; }
header, footer, nav, section, article, time { display: block; }
ol, ul { list-style: none; }
table { border-spacing: 0; }
input, button { background: none; }
button::-moz-focus-inner, input[type=submit]::-moz-focus-inner, input[type=button]::-moz-focus-inner { padding: 0; border: 0; }

/* basic */

html, body { width: 100%; height: auto; min-height: 100vh; }
body { background-color: #fff; color: #000; font: 400 1em/1 'Klarheit', sans-serif; display: flex; flex-direction: column; }
a { color: #000; text-decoration: underline; outline: none; }
a:hover { text-decoration: none; }
b { font-weight: 800; }
input:focus { outline: none; }
input::-webkit-input-placeholder, input::-moz-placeholder, input::-ms-placeholder { color: #888; opacity: 1; }
.nowrap { white-space: nowrap; }
.center { text-align: center; }
.red { color: #fb6751; }
img, svg { display: block; }
img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.trigger { cursor: pointer; }
.mobile_flag, .min_flag { display: none; }
#mxcpr { display: none; }

/* form elements */

.fieldset {
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
}

.fieldset:not(:first-of-type) { margin-top: 1rem; }
label { user-select: none; }

input[type=text], input[type=password], input[type=search], input[type=tel], input[type=email], input[type=time], textarea, select {
    background: #fcfcfc;
    border: #e7e7e7 0.0625rem solid;
    font-size: 0.9375rem;
    text-decoration: none;
    display: block;
    box-sizing: border-box;
    outline: none;
    -webkit-appearance: none;
}

input[type=text], input[type=password], input[type=search], input[type=tel], input[type=email], input[type=time], select {
    line-height: 2.25rem;
    height: 2.25rem;
    padding: 0 1rem;
}

textarea {
    line-height: 1.25;
    min-height: 5.5rem;
    padding: 1rem;
    resize: vertical;
}

input[type=text]:focus, input[type=password]:focus, input[type=search]:focus,
input[type=tel]:focus, input[type=email]:focus, input[type=time]:focus, textarea:focus, select:focus { border-color: #ccc; background: #fff; }


input[type=text]:hover, input[type=password]:hover, input[type=search]:hover,
input[type=tel]:hover, input[type=email]:hover, input[type=time]:hover, textarea:hover, select:hover { border-color: #ccc; }

input:not(:placeholder-shown), textarea:not(:placeholder-shown) { border-color: #ccc; }

button, .button, input[type=button], input[type=submit] {
    background: #000;
    border: 0.0625rem solid #000;
    color: #fff;
    font: 400 1rem/2.25rem 'Roboto Mono', serif;
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    line-height: 2.0625rem;
    height: 2.25rem;
    display: block;
    min-width: 10rem;
    padding: 0 1.5rem;
    cursor: pointer;
    box-sizing: border-box;
    transition: background 0.2s linear;
    -webkit-appearance: none;
}

button:hover, .button:hover, input[type=button]:hover, input[type=submit]:hover { background: #000; color: #fff; }

button:disabled, .button.disabled, input[type=button]:disabled, input[type=submit]:disabled {
    opacity: 0.5;
    cursor: default;
}

/* layout */

.wrapper {
    width: 100%;
    min-height: 100vh;
    margin: auto;
}

.container {
    background-color: #fff;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    width: 100%;
    min-height: 100vh;
    margin: 0 auto;
}

.content {
    overflow: hidden;
    padding-left: 1.9375rem;
}

/* helpers */

.overlay {
    background: transparent;
    position: fixed;
    display: none;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
}

/* menu */

nav {
    background: #fff;
    border-right: 0.0625rem solid #000;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 99;
    width: 2rem;
    box-sizing: border-box;
}

nav .switch {
    font-size: 1.5625rem;
    text-align: center;
    text-transform: uppercase;
    line-height: 2rem;
    height: 2rem;
    transform: rotate(-90deg);
    transform-origin: top left;
    position: absolute;
    top: 6rem;
    left: 0;
    width: 4.5rem;
}

nav:not(.active) > *:not(.trigger):not(.bttn_window), nav.active .trigger:not(.close_menu), nav.active .cart_trigger { display: none; }

nav.active {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    overflow-x: hidden;
    overflow-y: auto;
}

nav ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1 0 50%;
    width: 30rem;
    padding: 1rem 2rem;
    box-sizing: border-box;
}

nav ul:not(:last-of-type) { border-bottom: 0.0625rem solid #000; }

nav .submenu { padding-bottom: 4rem; }

nav a {
    color: #000;
    font-size: 1.5rem;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    line-height: 3.5rem;
    display: block;
    transition: color 0.2s linear;
}

nav .close_menu {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    margin: auto;
}

nav .close_menu svg {
    stroke: #000;
    stroke-width: 0.125rem;
    width: 1.5rem;
    height: 1.5rem;
    transition: stroke 0.2s linear;
}

nav ul.socials {
    border: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex: 0;
    padding: 1rem 3rem 0;
}

nav ul.socials li:not(:last-child) { margin-right: 3rem; }

nav ul.socials li:nth-child(1) { width: 2rem; height: 2rem; }
nav ul.socials li:nth-child(2) { width: 3.875rem; height: 1.75rem; }
nav ul.socials li:nth-child(3) { width: 2.3125rem; height: 1.75rem; }

nav ul.socials li img { transform: scale(0.75); }

/* shopping cart */

/*.cart_trigger {
    position: absolute;
    bottom: 1rem;
    left: 0;
    right: 0;
    margin: auto;
    width: 1.5rem;
}*/

.cart_trigger {
    position: absolute;
    top: 7.75rem;
    right: 1.375rem;    
    display: none;
    flex-direction: row;
    align-items: flex-end;
    user-select: none;
}

.product_page .cart_trigger, .cart_trigger.full { display: flex; }

.cart_trigger svg {
    fill: none;
    stroke: #000;
    width: 2rem;
    height: 2rem;
}

.cart_trigger::after {
    content: attr(data-quanity);
    font: 800 1rem/1.25 'Roboto Mono';
    display: block;
    margin-left: 0.25rem;
}

.dark .cart_trigger svg, body[data-theme=dark] .cart_trigger svg { stroke: #fff; }

/* header */

.header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    position: fixed;
    top: 0;
    left: 2rem;
    right: 0;
    z-index: 5;
    height: 7rem;
    padding-bottom: 1.25rem;
    box-sizing: border-box;
}

/* logo */

.logo {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.logo svg {
    fill: #000;
    width: 17.125rem;
    height: 2rem;
}

.dark .logo svg, body[data-theme=dark] .logo svg { fill: #fff; }

/* gallery layout */

.photo_module, .text_module { border-left: 0.0625rem solid #000; }

.photo_module {
    background: #efefef;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: center;
    height: 100vh;
}

.photo_module .img {
    flex: 1 1 auto;
    min-width: 0;
    height: 100vh;
}

.photo_module img {
    /*border: solid #000;
    border-width: 0.0625rem 0.0625rem 0.0625rem 0;*/
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
    box-sizing: border-box;
}

.video_box.portrait.gif img { object-position: left center; }

.photo_module .img_link {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
}

.content > .text_module:first-child { margin-top: 7rem; }

.text_module { padding: 1rem; }

.text_module .inner {
    background-color: #fff;
    color: #000;
}

.text_module.invert .inner {
    background-color: #000;
    color: #fff;
}

.text_module.invert a  { color: #fff; }

.text_module {
    font-size: 1.25rem;
    text-align: left;
    line-height: 1.25;
}

.text_module.small { font-size: 0.9375rem; }
.text_module.medium { font-size: 1.5625rem; }
.text_module.big { font-size: 2rem; }
.text_module:not(.roboto) { font-weight: 800; }

.text_module.roboto {
    font-family: 'Roboto Mono', 'Helvetica', sans-serif;    
    font-weight: 200;
    text-transform: none;
}

/* content articles */

article[role=main] {
    border-top: 0.0625rem solid;
    margin: 7rem 0 3rem;
}

article h1, article h2 {
    border-bottom: 0.0625rem solid;
    font-size: 1.75rem;
    font-weight: 400;
    line-height: 1.25;
}

article h1 { padding: 0.5rem 1rem; }
article h2 { padding: 0.25rem 1rem; }

article p {
    font-family: 'Roboto Mono', 'Helvetica', sans-serif;
    font-weight: 300;
    text-align: left;
    line-height: 1.25;
    padding: 0 1rem;
}

article p + h2 {
    border-top: 0.0625rem solid;
    margin-top: 2rem;
}

article h1 + p, article h2 + p { margin-top: 1rem; }
article p + p { margin-top: 1rem; }

/* shop */

.button_back {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 1.375rem;
    bottom: 0.75rem;
    height: 3rem;
}

.button_back svg {
    fill: transparent;
    stroke: #000;
    stroke-width: 0.0625rem;
    width: 2.625rem;
    height: 2.6875rem;
}

.dark .button_back svg, body[data-theme=dark] .button_back svg  { stroke: #fff; }

/* view type*/

.view_type, .view_type ul {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.view_type {
    overflow: hidden;
    position: absolute;
    bottom: 1.125rem;
    right: 1.5rem;
}

.view_type ul {
    visibility: hidden;
    position: absolute;
}

.view_type li:not(:first-of-type) { margin-left: 1rem; }

.view_type svg {
    stroke: #000;
    stroke-width: 0.0625rem;
    flex: 1 0 2.6875rem;
    width: 2.6875rem;
    height: 2.6875rem;
    cursor: pointer;
}

.dark .view_type svg, body[data-theme=dark] .view_type svg  { stroke: #fff; }

/* audio player */

.player {
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 99;
}

.player iframe {
    visibility: hidden;
    position: fixed;
    z-index: -1;
}

.play_button {
    border: 0.0625rem solid #000;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    position: fixed;
    right: 2rem;
    bottom: 4rem;
    z-index: 99;
    width: 2.5rem;
    height: 2.5rem;
    overflow: hidden;
    cursor: pointer;
    user-select: none;
}

.player.ready .play_button { display: flex; }

.play_button svg {
    fill: none;
    stroke: #000;
    stroke-width: 0.0625rem;
    width: 1.5rem;
    height: 1.5rem;
}

.play_button:not(.active) .play_sound { display: none; }
.play_button.active .mute_sound { display: none; }

body[data-theme=dark] .play_button { border-color: #fff; }
body[data-theme=dark] .play_button svg { stroke: #fff; }

/* category */

.dark .container, body[data-theme=dark] .container { background-color: #000; }
.dark .header, .dark .logo, .dark .catalog, .dark .catalog_items a, .dark .content,
body[data-theme=dark] .header, body[data-theme=dark] .logo, body[data-theme=dark] .catalog, body[data-theme=dark] .catalog_items a, body[data-theme=dark] .content
{ color: #fff; }

section.catalog {
    border-top: 0.0625rem solid;
    margin: 7rem 0 0  -0.0625rem;
}

section.catalog + section.catalog {
    border: none;
    margin-top: 0;
}

section.catalog h1, section.product h1 {
    border-bottom: solid 0.0625rem;
    font-size: 2rem;
    line-height: 3.5rem;
    padding: 0 1.5rem;
}

.catalog .no_items { padding: 1.5rem; }

.catalog_items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    grid-auto-rows: minmax(27rem, auto);
    width: 100%;
}

.catalog[data-view=small_cards] .catalog_items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    grid-auto-rows: minmax(27rem, auto);
    width: 100%;
}

.catalog[data-view=big_cards] .catalog_items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(25rem, 1fr));
    grid-auto-rows: minmax(27rem, auto);
    width: 100%;
}

.catalog_item {
    border: solid;
    border-width: 0 0.0625rem 0.0625rem 0;
    overflow: hidden;
    padding: 1.9375rem 1.9375rem 0.5rem 1.9375rem;
    box-sizing: border-box;
    transition: border-color 0.2s linear;
}

.catalog_item dl {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    position: relative;
    height: 100%;
}

.catalog_item dt {
    position: relative;
    padding-top: 0.5rem;
    margin-bottom: 0;
}

.catalog_item dt::before {
    content: '';
    background-color: #000;
    position: absolute;
    top: -0.0625rem;
    left: -2rem;
    right: -2rem;
    height: 0.0625rem;
    z-index: 2;
}

.dark .catalog_item dt::before, body[data-theme=dark] .catalog_item dt::before { background-color: #fff; }

.catalog_item dt a {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.25;
    text-decoration: none;
    text-transform: uppercase;
    display: block;
}

.catalog_item dt b { display: block; }

.item_photo {
    order: -1;
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 135%;
    margin-bottom: 2rem;
}

.item_photo img {
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    margin: auto;
    object-fit: cover;
}

.catalog_item .big_a {
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.catalog_item .item_descr, .catalog_item .item_buy {
    font-size: 1rem;
    font-weight: 200;
    line-height: 1.25;
    overflow: hidden;
    max-height: 3.25rem;
    margin-top: auto;
}

.catalog_item .item_buy { display: none ; }
.catalog_item:hover .item_buy { display: block; } 

.catalog_item .links {
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    position: absolute;
    bottom: 0;
    right: 0;
}

.catalog_item .links a, .catalog_item .links i {
    font: 200 0.8125rem/1.25rem 'Roboto Mono', serif;
    text-decoration: none;
}

body:not(.events):not(.collections) .catalog_item dt a, body:not(.events):not(.collections) .catalog_item .item_descr, .catalog_item .item_buy { text-align: center; }
body:not(.events):not(.collections) .catalog_item:hover .item_descr { display: none; }

.categories .catalog_item dt a {
    /*text-transform: none;*/
    font-weight: 300;
    padding: 0.5rem 0;
}
.categories .item_photo img:nth-child(2), .catalog .item_photo img:nth-child(2) {
    z-index: 2;
    opacity: 0;
    top: -2rem;
    bottom: -2rem;
    left: -2rem;
    right: -2rem;
    max-width: inherit;
    max-height: inherit;
    width: calc(100% + 4rem);
    height: calc(100% + 4rem);
    transition: opacity 0.2s linear;
}

.categories .item_photo:hover img:nth-child(2), .catalog .item_photo:hover img:nth-child(2) {
    opacity: 1;
}

.buttons {
    position: relative;
    margin-left: auto;
}

.buy_bttn, .in_cart_list, .item_list_added {
    text-indent: -999rem;
    overflow: hidden;
    width: 2.5rem;
    height: 2.5rem;
    min-width: inherit;
    padding: 0;
    transition: background-color 0.2s linear;
}

.buy_bttn { background: #99b88d url(../images/sprite.svg#cart_white) 0.4375rem center / 1.5rem 1.4375rem no-repeat; }
.in_cart_list { background: #99b88d url(../images/sprite.svg#incart) center / 1.5rem 1.5rem no-repeat; }

.item_list_added {
    background: #fff url(../images/sprite.svg#incart_green) center / 1.5rem 1.5rem no-repeat;
    box-shadow: 0 0 0 0.125rem #99b88d inset;
}

.in_cart_list, .item_list_added {
    border-radius: 0;
    position: absolute;
    top: 0;
    left: 0;
}

.buy_bttn:hover, .in_cart_list:hover {
    background-color: #80a670;
    opacity: 1;
}

.load_more {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-bottom: 3rem;
}

.load_more button { margin: auto; }

.load_more button.loading {
    background-image: url(../images/sprite.svg#loading);
    background-repeat: no-repeat;
    background-position:  center;
    background-size: 15%;
    color: rgba(255,255,255,0);
    opacity: 0.8;
}

.catalog .pagination { display: none; }

.seo_text { margin-top: 2rem; }

/* product */

section.product {
    border-top: 0.0625rem solid;
    margin-top: 7rem;
}

.product form {
    display: flex;
    flex-flow: row-reverse nowrap;
    align-items: stretch;
    justify-content: space-evenly;
    height: calc(100vh - 10.625rem);
}

.product form > div {
    width: 50%;
    box-sizing: border-box;
}

.product_photo {
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-start;
    justify-content: center;
    padding: 3rem;
}

.product_photo.bullits { padding-bottom: 1.5rem; }

.main_photo {
    position: relative;
    width: 100%;
    height: 100%;
}

.main_photo .single_photo, .main_photo span, .main_photo .img_slider {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.main_photo .single_photo img {
    width: 100%;
    height: 100%;
}

.main_photo span img { width: auto; }

.main_photo .img_slider {
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
}

.img_slider .swiper-wrapper {
    flex-direction: row;
    align-items: stretch;
    justify-content: flex-start;
}

.img_slider .slide {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    min-width: 100%;
    width: auto !important;
}

.img_slider .slide img { margin: auto; }

.slider_navi {
    list-style: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin-top: 1.5rem;
}

.slider_navi li {
    text-indent: -999rem;
    overflow: hidden;
    display: block;
    position: relative;
    width: 1rem;
    height: 1rem;
    cursor: pointer;
}

.slider_navi li::before {
    content: '';
    border: 0.0625rem solid;
    border-radius: 50%;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    width: 0.5rem;
    height: 0.5rem;
    margin: auto;
    box-sizing: border-box;
}

.slider_navi .current::before { background: #000; }
.dark .slider_navi .current::before, body[data-theme=dark] .slider_navi .current::before { background: #fff; }

.product_info {
    border-left: 0.0625rem solid;
    font: 300 1rem/1.25 'Roboto Mono';
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: space-evenly;
}

.product_info > div {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    width: 50%;
    box-sizing: border-box;
}

.product_info > div:nth-child(2), .product_info > div:nth-child(2) > .inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
}

.product_info .p2 {
    border: 0.0625rem solid;
    border-width: 0 0 0 0.0625rem;
}

.product_info .inner {
    flex: 1;
    padding: 3rem;
}

.product_info .p1 .product_descr { padding-top: 1.5rem; }

.product_main .inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}

.product_title {
    text-align: center;
    padding-top: 1rem;
}

.product_title span {
    font: 400 1em/1 'Klarheit', sans-serif;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.5rem;
}

.product_descr {
    /*border-top: 0.0625rem solid;*/
    position: relative;
}

.product_info .add_info {
    display: flex;
    border-top: 0.0625rem solid;
    text-align: center;
    text-decoration: none;
    flex-direction: row;
    align-items: center;
    justify-content: space-evenly;
    padding: 0.75rem;
    cursor: pointer;
    user-select: none;
}

.add_info::before {
    content: '+';
    display: block;
}

.add_info.active::before { content: '-'}

.product_info .p1 .features, .additional_info, .product_info.add_info_active .product_descr { display: none; }
.product_info.add_info_active .p1 .features, .product_info.add_info_active .additional_info { display: block; }

.product_descr p:not(:first-child) { margin-top: 1rem; }

.product_info .features {
    margin-top: 1.5rem;
    text-align: left;
}

.product_descr .read_more {
    position: absolute;
    left: 2rem;
    top: 100%;
    margin-top: -3.25rem;
    cursor: pointer;
}

.product_descr .read_more svg {
    fill: #000;
    width: 0.75rem;
    height: 0.75rem;
    margin: 0.125rem;
}

.product_info .product_descr.spoiler { padding-bottom: 4.75rem; }

.product_descr.spoiler .inner {
    overflow: hidden;
    max-height: 100%;
}

.product form.spoiler_open  {
    height: auto;
    min-height: calc(100vh - 8.75rem);
}

.spoiler_open .product_info > div:nth-child(1) > div { min-height: inherit; }

.product .articul {
    font-size: 0.875rem;
    margin-bottom: 2rem;
}

.product .buy {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    padding-top: 2rem;
    margin-top: auto;
}

.product .not_available, .product .in_stock {
    text-align: center;
    text-transform: lowercase;
    margin-top: 2rem;
}

.product_links a {
    border-top: 0.0625rem solid;
    text-align: center;
    text-decoration: none;
    display: block;
    padding: 0.75rem;
}

.specs { margin-bottom: 1.5rem; }
.specs:not(:first-child) { margin-top: 1.5rem; }

.p2 .specs h3 { 
    text-align: center;
    margin-bottom: 0.5rem;
}

.specs ul, .specs.group_measurements li {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.p1 .specs ul, .p1 .specs.group_measurements li  { justify-content: flex-start; }

.p2 .inner ul {
    border: 0.0625rem solid;
    padding: 0.75rem;
}

.specs.group_measurements li:not(:last-child)::after {
    content: 'X';
    display: block;
    margin: 0 0.5rem;
}

.specs.group_measurements li:last-child::after {
    content: 'CM';
    display: block;
    margin-left: 0.5rem;
}

.specs .value {
    text-transform: lowercase;
    display: block;
}

.product_price {
    text-align: center;
    /*text-decoration: underline;*/
}

.quantity {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.prod_qty { margin-bottom: 1rem; }

.prod_buttons {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    margin: 2rem 0 0;
}

.prod_qty_input input, .prod_qty_input input:hover, .prod_qty_input input:focus {
    background: #fff;
    border-color: inherit;
    line-height: 2.75rem;
    text-align: center;
    max-width: 7rem;
    height: 2.75rem;
}

.product-buttons { margin: 0; }

.product-buttons input[type=submit] {
    line-height: 2.5rem;
    height: 2.75rem;
    min-width: 100%;
}

.in_cart_pro, .item_pro_added {
    background: #fff;
    border: 0.0625rem solid #000;
    font: 400 0.875rem/2.25rem 'Roboto Mono', serif;
    color: #000;
    text-decoration: none;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    right: 0;
    bottom: 0;
}

.in_cart_pro, .in_cart_pro:hover {
    border-radius: 0;
    font-size: 0.875rem;
    text-align: center;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
}

.in_cart_pro:hover {
    background: #000;
    color: #fff;
}

.in_cart_pro::before, .item_pro_added::before {
    content: '';
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    margin-right: 0.5rem;
}

.in_cart_pro::before { background: url(../images/sprite.svg#incart_black) center / cover no-repeat; }
.in_cart_pro:hover::before { background: url(../images/sprite.svg#incart) center / cover no-repeat; }
.item_pro_added::before { background: url(../images/sprite.svg#incart_black) center / cover no-repeat; }

.product .not_available {
    text-align: center;
    text-transform: uppercase;
    line-height: 2.5;
}

.product .buy input { width: 100%; }

/* image viewer */

#img_viewer .swiper-button-next.swiper-button-disabled, #img_viewer .swiper-button-prev.swiper-button-disabled { opacity: 1; }
#img_viewer .swiper-button-next.swiper-button-disabled:before, #img_viewer .swiper-button-prev.swiper-button-disabled:before { opacity: 0.5; }

.swiper-button-prev, .swiper-button-next { outline: none; }

#img_viewer {
    background: rgba(0,0,0,0.5);
    display: none;
    position: fixed;
    top: 0;
    left: 2.4375rem;
    right: 0;
    bottom: 0;
    z-index: 2;
    overflow: auto;
}

#img_viewer .slide {
    display: flex;
    align-items: center;
    justify-content: center;
}

#img_viewer .slide img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    margin: 0 4.5rem;
}

#img_viewer .swiper-button-prev {
    background: url(../images/sprite.svg#back_white) center no-repeat;
    left: 0;
}

#img_viewer .swiper-button-next {
    background: url(../images/sprite.svg#forth_white) center no-repeat;
    right: 0;
}

#img_viewer .swiper-button-prev, #img_viewer .swiper-button-next {
    background-size: 1.125rem 2rem;
    top: 0;
    bottom: 0;
    width: 5%;
    height: auto;
    margin: auto;
}

#img_viewer .close_bttn {
    background: rgba(0,0,0,0.3) url(../images/sprite.svg#close_bttn) center / 1.5rem 1.5rem no-repeat;
    top: 0;
    right: 0;
    z-index: 20;
    padding: 0.75rem;
}

/* related */

.product + aside { border-top: 0.0625rem solid; }

aside h2 {
    border-bottom: 0.0625rem solid;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.5;
    text-transform: lowercase;
    padding: 0.25rem 1rem;
}

.item_mini_card { padding: 4rem 4rem 2.5rem 4rem; }
.item_mini_card dt::before { display: none; }

/* newsletter */

.window_newsletter {
    background: #ff00ff;
    border: none;
    border-radius: 50%;
    width: 31.25rem;
    height: 31.25rem;
}

.window_newsletter .inner {
    font-family: 'Roboto Mono', serif;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    height: 100%;
    padding: 3rem;
    box-sizing: border-box;
}

.window_newsletter form {
    width: 20.625rem;
    margin: auto;
}

.form_title {
    font: 800 2.5rem/1 'Klarheit', sans-serif;
    text-align: center;
    margin: 1.5625rem 0 2.125rem;
}

.window_newsletter input[type=email] {
    background: none;
    border-radius: 0;
    border-width: 0 0 0.25rem 0;
    border-color: #000;
    font-size: 2rem;
    font-weight: 300;
    line-height: 3rem;
    height: 3rem;
    max-width: 100%;
    padding: 0;
    cursor: text;
}

.window_newsletter input::placeholder {
    color: #000;
    text-transform: lowercase;
    opacity: 1;
}

.form_descr {
    font-size: 1.125rem;
    font-weight: 300;
    letter-spacing: 0.03125rem;
    line-height: 1.3;
    text-align: center;
    margin-top: 1.5rem;
}

.window_newsletter .controls { margin-top: 2.125rem; }

.window_newsletter .controls input[type=button] {
    background: none;
    border: 0.0625rem solid #000;
    border-radius: 0;
    color: #000;
    font-size: 2rem;
    font-weight: 300;
    text-transform: lowercase;
    line-height: 3rem;
    flex: 0;
    height: 3.375rem;
    min-width: inherit;
    max-width: inherit;
    padding: 0 0.875rem 0.25rem 0.875rem;
    margin: auto;
    transition: none;
}

.window_newsletter .close_bttn { display: none; }

/* acymail overrides */

.acym_invalid_field {
    background: #fff !important;
    border-width: 0 0 0.25rem 0 !important;
    border-color: #000 !important;
}

div.acym_module_success {
    background: none;
    text-align: center;
    line-height: 1.5;
    color: inherit;
    margin: 0;
}

div.acym_module_error {
    background: #000;
    color: #fff;
    text-align: center;
    top: 0;
    position: absolute;
    z-index: 3;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin: 0;
}

/* shopping cart */

/*#basket_store {
    position: static;
    width: auto;
    padding: 0;
}*/

.window_prompt p { line-height: 1.5; }

#basket_store.window_cart {
    width: 100%;
    max-width: 40rem;
    padding: 0;
}

#cart_icon { display: none; }

/*.shopping_cart .cart_inner {
    background: rgba(255,255,255,0.95);
    background: #fff;
    position: fixed;
    z-index: 90;
    right: -34.75rem;
    top: 0;
    bottom: 0;
    padding: 3rem 4rem;
    overflow-x: hidden;
    overflow-y: auto;
    width: 34.75rem;
    box-sizing: border-box;
    transition: right 0.3s linear; 
}*/

.shopping_cart .basket_content {
    position: static;
    width: auto;
    visibility: visible;
    opacity: 1;
    -webkit-transition: none;
    transition: none;
}

.shopping_cart .no_items_cart {
    font-family: 'Roboto Mono', 'Helvetica', sans-serif;
    font-weight: 300;
    margin-top: -1rem;
}

.shopping_cart_active .cart_inner {
    visibility: visible;
    opacity: 1;
    right: 0;
}

.shopping_cart h3 {
    text-transform: uppercase;
    margin-bottom: 2rem;
}

.shopping_cart .close_bttn, .window_prompt .close_bttn {
    background: url(../images/sprite.svg#close_bttn) center / 1.5rem 1.5rem no-repeat;
    text-indent: -9999rem;
    text-decoration: none;
    display: block;
    overflow: hidden;
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    z-index: 1;
    width: 1.5rem;
    height: 1.5rem;
    cursor: pointer;
}

.shopping_cart .basket_list {
    background: none;
    box-shadow: none;
    padding: 0;
    margin: 0;
    position: relative;
}

.basket_rows {
    max-height: inherit;
    padding: 0;
}

.basket_row {
    border: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding:  0.25rem 0 0 9rem;
    position: relative;
    margin: 0 0 1.5rem;
    min-height: 10.25rem;
}

.basket_row:last-child { margin-bottom: 2rem; }

.basket_img {
    border: 0.0625rem solid #000;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 7.5rem;
    height: 10.0625rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.basket_img img {
    display: block;
    max-width: 100%;
    max-height: inherit;
}

.basket_name {
    font-size: 1rem;
    padding: 0;
}

.basket_name a {
    font-size: 1.125rem;
    font-weight: normal;
    line-height: 1.25;
    display: block;
    margin: -0.25rem 0 0.25rem;
}

.basket_name .short_descr {
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

.basket_value {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.basket_price {
    color: #1e1e1e;
    font-size: 1.25rem;
    font-weight: 500;
    flex: 1 0 100%;
    float: none;
    padding: 0;
    margin-bottom: 1rem;
    order: 1;
}

.basket_price .currencycode {
    font-size: 0.875rem;
    font-style: normal;
    font-weight: normal;
    display: inline-block;
}

.basket_price em { display: none; }

.basket_quan {
    font-weight: 500;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    order: 2;
    margin: 0;
}

.basket_minus { background: url(../images/sprite.svg#minus) center no-repeat; }
.basket_plus { background: url(../images/sprite.svg#plus) center no-repeat; }

.basket_quan span {
    background-size: 0.75rem 0.75rem;
    text-indent: -9999rem;
    display: block;
    overflow: hidden;
    width: 1rem;
    height: 1rem;
    cursor: pointer;
}

input.basket_inputbox {
    background: #fff;
    border: 0.0625rem solid #000;
    font-size: 1rem;
    width: inherit;
    text-align: center;
    min-width: inherit;
    height: 1.75rem;
    width: 4rem;
    padding: 0;
    margin: 0 0.5rem;
}

#basket_store a.basket_del {
    background: url(../images/sprite.svg#remove) center / cover no-repeat; ;
    text-indent: -999rem;
    display: block;
    overflow: hidden;
    width: 1rem;
    height: 1.125rem;
    margin-right: 0;
    order: 3;
    opacity: 1;
    transition: opacity 0.2s linear;
}

#basket_store a.basket_del:hover { opacity: 1; }

.basket_total {
    border: none;
    text-align: inherit;
    font-size: 1rem;
    font-weight: inherit;
    color: #000;
    position: static;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0;
    /*margin: 0 0 4rem 0;*/
}

.total_price { margin-right: 1rem; }

.total_price .total_text {
    font-size: 0.875rem;
    line-height: 1;
    white-space: nowrap;
    display: block;
}

.total_price b {
    font-size: 2rem;
    font-weight: normal;
    white-space: nowrap;
    display: block;
    margin-bottom: 0.25rem;
}

.total_price .currencycode {
    font-size: 1.125rem;
    display: inline-block;
    margin-left: -0.25em;
}

.basket_total .button {
    width: 100%;
    min-width: inherit;
    max-width: 15rem;
}

.basket_load {
    background: rgba(255,255,255,0.9) url(../images/sprite.svg#preloader) center no-repeat;
    background-size: 5rem 5rem;
	position: absolute;
	top: 0;
	left: 0;
    right: 0;
    bottom: 0;
	width: auto;
	height: auto;
	opacity: 1;
}

.basket_load_ajax {
    background: rgba(255,255,255,0.8) url(../images/sprite.svg#preloader) center no-repeat;
    background-size: 5rem 5rem;
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    z-index: 9999;
    opacity: 1;
}

/* order */

.shopping_cart_view, .make_order, #comjshop {
    border-top: 0.0625rem solid;
    padding: 3rem 5% 3rem;
    margin-top: 7.5rem;
}

.cart_empty_text {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.cart_empty_text .button { margin-top: 2rem; }

/* scrollme */

.scrollme {
    position: relative;
    min-height: 100vh;
}

.moving_text {
    position: relative;
    z-index: 1;
}

.moving_text.text_module { padding: 0; }
.moving_text.text_module .inner { padding: 1rem; }
.moving_text:first-child .inner { padding-top: 7rem; }

.scrollme .photo_module {
    position: relative;
    z-index: 2;
}

.fixme {
    /*background: #fff; ? */
    /* min-height: 50vh; */
    visibility: hidden;
    box-sizing: border-box;
}

/* .fixme.invert { background: #000; } */
.fixme.active { visibility: visible; }

.fixme .inner {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 1.9375rem;
    padding: 1rem;
}

.photo_module.dummy_module {
    background: none;
    height: 100vh;
    z-index: 0;
}

.min_height.fixme.text_first .inner { bottom: auto; }
.photo_module.dummy_module.first_dummy { height: 0; }
.fixme.fixed_video .inner { padding: 0; }
.text_module.full_height:not(.text_first) { height: 100vh; }

.moving_text .inner {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    min-height: 100vh;
    box-sizing: border-box;
}

/* video */

.video_box {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100vh;
}

video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.button_play {
    border: 0.0625rem solid;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 1;
    width: 4rem;
    height: 4rem;
    margin: auto;
    cursor: pointer;
}

.button_play::after {
    content: '';
    border-color: transparent transparent transparent #000;
    border-width: 1.5625rem 0 1.5625rem 2.5rem;
    border-style: solid;
    display: block;
    width: 0rem;
    height: 0rem;
    margin-right: -0.5rem;
    transform: scale(0.75);
}

body[data-theme=dark] .button_play::after, .dark .button_play::after { border-color: transparent transparent transparent #fff; }

/* cookies */

.cookies {
    display: none;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: 0;
    left: 2rem;
    right: 0;
    z-index: 2;
    padding: 1rem;
}

.cookie_bttn {
    background: none;
    color: #000;
    margin-left: 1rem;
}

.dark .cookies, body[data-theme=dark] .cookies { color: #fff; }

.dark .cookie_bttn, body[data-theme=dark] .cookie_bttn {
    border-color: #fff;
    color: #fff;
}
 
/* media queries, yeah! */

@media screen and (orientation: landscape) {

    .portrait { display: none; }

}

@media screen and (orientation: portrait) {
    
    .landscape { display: none; }
    video { height: 100%; }

}

@media screen and (max-width: 80rem) { /* 1280 */

    .product form { height: auto; }
    .product_info { display: block; }
    .product_info > div { width: auto; }
    .product_info > div:nth-child(2) { border-width: 0.0625rem 0 0 0; }
    
}

@media screen and (max-width: 64rem) { /* 1024 */

    .mobile_flag, .min_flag { display: block; } /* set minimal width for JS */
    .button_play { display: flex; }
    .gif .button_play { display: none; }
    .product form { flex-direction: column-reverse; }
    .product form > div { width: auto; }
    .product_photo { border-bottom: 0.0625rem solid #000; }
    .main_photo { height: calc(100vh - 15.125rem); }
    
    .main_photo img {
        width: 100%;
        height: 100%;object-fit: cover;
    }
    
    .text_module { font-size: 1rem; }
    
    .checkout_main {
        flex-wrap: wrap;
        justify-content: flex-end;
    }
    
    .checkout_box {
        box-sizing: border-box;
        flex: 0 1 50%;
    }
    
    .checkout_box:not(:first-child) {
        border-left: solid #000;
        border-width: 0 0 0 0.0625rem;
    }
    
    .checkout_box:first-child { border: none; }
    .checkout_box:last-child { border-top: 0.0625rem solid #000; }
    
    .text_module { font-size: 1rem; }
    .text_module.small { font-size: 0.75rem; }
    .text_module.medium { font-size: 1.25rem; }
    .text_module.big { font-size: 1.5625rem; }

}

@media screen and (max-width: 48.75rem) { /* 780 */
    
    .checkout_main { display: block; }
    
}

@media screen and (max-width: 41.825rem) { /* 669 */
    
    .header { height: 5rem; }
    .logo { font-size: 2rem; }
    .view_type { display: none; }
    section.catalog, .content > .text_module:first-child, section.product, article[role=main] { margin-top: 5rem; }
    .cart_trigger { top: 5.75rem; }
    
}

@media screen and (max-width: 40rem) { /* 640 */
    
    .product_photo { padding: 2rem; }
    .item_mini_card { padding: 3rem 3rem 1.5rem 3rem; }
    .item_mini_card .item_photo { margin-bottom: 1rem; }
    
    .play_button {
        right: 1.5rem;
        bottom: 1.5rem;
        width: 2rem;
        height: 2rem;
    }

    .play_button svg {
        width: 1.25rem;
        height: 1.25rem;
    }
    
    .cookies {
        flex-direction: column;
        justify-content: flex-end;
        align-items: flex-start;
        right: 4rem;
        bottom: 0.375rem;
    }
    
    .cookie_bttn { margin: 1rem 0 0 0; }
    
}

@media screen and (max-width: 33.75rem) { /* 540 */

    #window_newsletter .w_container { padding: 1%; }
    
    .window_newsletter {
        width: 22rem;
        height: 22rem;
    }
    
    .window_newsletter .inner { padding: 0; }
    .window_newsletter form { width: 15rem; }

    .form_title {
        font-size: 1.75rem;
        margin: 0;
    }
    
    .window_newsletter input[type=email] {
        border-width: 0 0 0.125rem 0;
        font-size: 1.5rem;
    }
    
    .form_descr {
        font-size: 0.75rem;
        margin-top: 0.75rem;
    }
    
    .window_newsletter .controls input[type=button] { font-size: 1.5rem; }

}

@media screen and (max-width: 30rem) { /* 480 */

    nav.active {
        border: none;
        width: 100%;
    }
    
    nav a { line-height: 2; }
    
    .button_back { display: none; }
    
}

@media screen and (max-width: 28.75rem) { /* 460 */
    


}

@media screen and (max-width: 26.875rem) { /* 430 */

    .catalog[data-view=big_cards] .catalog_items { display: block; }
    
    /* shopping cart */ 
    
    .basket_row {
        padding-left: 6.25rem;
        min-height: 6.75rem;
    }
    
    .basket_name a, .basket_price { font-size: 1rem; }
    .basket_name .short_descr, .basket_price .currencycode { font-size: 0.8125rem; }
    .basket_name .short_descr { margin-bottom: 0.5rem; }
    .basket_price { margin-bottom: 0.75rem; }
    
    .basket_img {
        width: 5rem;
        height: 6.75rem;
    }
    
    .basket_total {
        flex-direction: column;
        align-items: stretch;
    }
    
    .total_price { margin: 0 0 0.5rem 0; }
    .basket_total .button { max-width: inherit; }

}

@media screen and (max-width: 22.5rem) { /* 360 */

    .logo { font-size: 1.75rem; }

}

@media screen and (max-width: 21.875rem) { /* 350 */

    .catalog[data-view=small_cards] .catalog_items { display: block; }
    
    .basket_quan {
        flex: 1 0 100%;
        margin-bottom: 1rem;
    }

}

@media screen and (min-resolution: 2dppx) {
    
    nav { border-right-width: 0.03125rem; }
    nav ul:not(:last-of-type) { border-bottom: 0.03125rem solid #000; }
    .photo_module img { border-width: 0.03125rem 0.03125rem 0.03125rem 0; }
    section.catalog, section.product, .product_links a, article[role=main], article p + h2, nav ul:not(:first-of-type), .product + aside { border-top-width: 0.03125rem; }
    section.catalog h1, section.product h1, article h1, article h2, aside h2 { border-bottom: solid 0.03125rem; }
    .catalog_item { border-width: 0 0.03125rem 0.03125rem 0; }
    .product_info { border-width: 0.03125rem; }
    .product_info .p2 { border-width: 0 0 0 0.03125rem; }
    .button_back svg, .view_type svg { stroke-width: 0.03125rem; }
    input[type=text], input[type=password], input[type=search], input[type=tel], input[type=email], input[type=time], textarea, select,
    .specs:not(.group_materials) ul, .basket_img, .in_cart_pro, .item_pro_added { border-width: 0.03125rem; }
    .catalog_item dt::before { top: -0.03125rem; height: 0.03125rem; }
    .product_info .add_info { border-top-width: 0.03125rem; }
    
}

@media screen and (max-width: 80rem) and (min-resolution: 2dppx) {
    
    .product_info > div:nth-child(2) { border-width: 0.03125rem 0 0 0; }
    
}

@media screen and (max-width: 64rem) and (min-resolution: 2dppx) { /* 1024 */

    .product_photo { border-bottom: 0.03125rem solid #000; }

}

@media screen and (orientation: portrait) {
    
    .photo_module {
        flex-direction: column;
        align-items: stretch;
        height: auto;
    }
    
}