@red: #ed3700; @yellow: #ffbb00; @yellow-alpha: fade(@yellow, 50%); @green: #76a810; @blue: #021b24; @white: #ffffff; @gray: #dddddd; @gray-dark: #808080; @height-header: 10rem; html { font-size: 10px; } body { /* Для закрепления подвала внизу страницы */ display: flex; min-height: 100vh; flex-direction: column; position: relative; font-family: 'Exo 2', sans-serif; font-size: 1.6rem; line-height: 1.4em; color: @blue; background-color: @white; &.fade { &:before { content: ""; position: absolute; top: @height-header; right: 0; bottom: 0; left: 0; background-color: rgba(0,0,0,.3); z-index: 12; } } } h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 0.5em; line-height: 1em; } h1 { font-size: 4rem; } h2 { font-size: 3.2rem; } h3 { font-size: 2.8rem; } h4 { font-size: 2.4rem; } h5 { font-size: 2rem; } h6 { font-size: 1.6rem; } a { color: @red; &.dashed { text-decoration: none; border-bottom: 1px dashed; } } small { font-size: 0.875em; } hr { height: 1px; margin: 3rem 0; font-size: 0; border: none; background-color: @gray; } .block { display: block; } .bold { font-weight: bold; } .mute { color: @gray; } .mute-dark { color: @gray-dark; a { color: #f89172; } } .left { text-align: left; } .right { text-align: right; } .center { text-align: center; } .nowrap { white-space: nowrap; } .through { position: relative; padding: 0 1rem; &:before { position: absolute; content: ""; left: 0; top: 50%; right: 0; border-top: 1px solid; border-color: inherit; transform:rotate(-10deg); } } .scrolled { overflow-x: auto; } .alert { position: relative; margin-bottom: 3rem; padding-left: 4rem; &.alert-success, &.alert-danger, &.alert-warning { &:before { position: absolute; top: 0; left: 0; content: ""; display: inline-block; width: 2.4rem; height: 2.4rem; } } &.alert-success:before { background-image: url("/image/skin-2/img/icon_alert_success.svg"); } &.alert-danger:before { background-image: url("/image/skin-2/img/icon_alert_error.svg"); } &.alert-warning:before { background-image: url("/image/skin-2/img/icon_alert_warning.svg"); } > h4 { margin-bottom: 0.25em; } } .container { box-sizing: border-box; display: block; max-width: 1200px; margin: 0 auto; } .container-content { .container; padding: 0 1.5rem; } section#before_header { background-color: @yellow; > x-row { .container; display: flex; flex-flow: row wrap; justify-content: flex-start; align-items: center; > x-col { margin: 1rem 1.5rem; line-height: 1em; font-size: 1.2rem; text-transform: uppercase; &.col-warhouse { white-space: nowrap; span { font-weight: bold; } a { color: @blue; text-decoration: none; border-bottom: 1px dashed; } } &.col-banner { flex: 1; flex-basis: 300px; text-align: center; > * { margin: 0; } } } } } header { position: sticky; top: 0; left: 0; right: 0; background-color: @red; box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); z-index: 1000; > x-row { .container; display: flex; flex-flow: row nowrap; justify-content: flex-start; align-items: center; height: @height-header; > x-col { padding: 1.5rem; /* Колонка логотипа */ &.col-logo { > a.logo { display: block; width: 15rem; height: 7rem; background: url("/image/skin-2/img/logo.svg") center center no-repeat; } } /* Колонка навигации */ &.col-nav { > a.button-nav { display: none; height: 5rem; width: 5rem; background: url("/image/skin-2/img/button_nav.svg") center center no-repeat; &.close { background-image: url("/image/skin-2/img/button_nav_close.svg"); } } > nav { &.dropdown { position: absolute; top: @height-header; left: 0; right: 0; display: block !important; padding: 1.5rem 0; background-color: @red; border-top: 1px solid @white; box-shadow: 0 0.4rem 0.5rem rgba(0, 0, 0, 0.3); > a { display: block; margin: 0; padding: 1rem 1.5rem; } } > a { position: relative; display: inline-block; margin-left: 3rem; line-height: 1.2em; font-size: 2rem; font-weight: bold; text-transform: uppercase; text-decoration: none; white-space: nowrap; color: @white; &:hover, &.active { text-decoration: underline; } } } } /* Колонка телефона */ &.col-phone { margin-left: auto; text-align: right; white-space: nowrap; color: @white; > .phone { margin-bottom: 0.5rem; line-height: 1em; font-size: 2.4rem; font-weight: bold; } > .hours { line-height: 1em; font-size: 1.4rem; } } /* Колонка корзины */ &.col-cart { position: relative; padding: 2.5rem 1.5rem; &.active { background-color: @white; > a.button-cart { color: @red; &:before { background-image: url("/image/skin-2/img/button_cart_red.svg"); } .count { color: @white; background-color: @red; } } > x-dropdown { display: block; } } > a.button-cart { display: flex; flex-flow: row nowrap; justify-content: center; align-items: center; color: @white; text-align: right; text-decoration: none; white-space: nowrap; &:before { content: ""; display: block; height: 5rem; width: 5rem; margin-right: 1rem; background: url("/image/skin-2/img/button_cart.svg") center center no-repeat; } .title { font-size: 2rem; font-weight: bold; } .price { font-size: 1.4rem; } .count { position: absolute; top: 2rem; left: 3.8rem; width: 2rem; height: 2rem; line-height: 2rem; font-size: 1.2rem; text-align: center; color: @red; background-color: @white; border-radius: 1rem; } } > x-dropdown { position: absolute; top: @height-header; right: 0; display: none; padding: 1.5rem; background-color: @white; box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.5); z-index: -1; } } } } } section#after_header { } main { /* Для закрепления подвала внизу страницы*/ flex: 1; width: 100%; .container-content; padding-top: 5rem; padding-bottom: 5rem; } section#before_footer { } footer { padding: 2.5rem 0 4rem 0; background-color: @blue; color: @white; overflow: hidden; a { color: @white; } > x-row { .container; display: flex; flex-flow: row wrap; justify-content: space-between; align-items: flex-start; margin-bottom: 3rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.5); > x-col { padding: 1.5rem; /* Колонка меню */ &.col-menu { > a { display: block; } } /* Колонка контактных данных */ &.col-address { } /* Колонка социальных кнопок */ &.col-social { > a { display: inline-block; margin-right: 0.5rem; width: 5rem; height: 5rem; text-decoration: none; &.vkontakte { background: url("/image/skin-2/img/icon_vkontakte.svg") center center no-repeat; } &.facebook { background: url("/image/skin-2/img/icon_facebook.svg") center center no-repeat; } &.instagam { background: url("/image/skin-2/img/icon_instagram.svg") center center no-repeat; } } } /* Колонка способов оплаты */ &.col-payment { > span { display: inline-block; margin-right: 0.5rem; width: 7.5rem; height: 5rem; &.visa { background: url("/image/skin-2/img/icon_visa.svg") center center no-repeat; } &.mastercard { background: url("/image/skin-2/img/icon_mastercard.svg") center center no-repeat; } &.maestro { background: url("/image/skin-2/img/icon_maestro.svg") center center no-repeat; } } } } } .copyright { .container-content; text-align: center; } } ul.breadcrumb { display: block; margin: 0 0 3rem 0; padding: 0; list-style: none; li { display: inline-block; &:not(:last-child):after { content: "»"; display: inline-block; } } } ul.pagination { display: block; margin: 3rem 0; padding: 0; list-style: none; text-align: center; li { display: inline-block; margin: 0 0.25rem; a, span { display: inline-block; padding: 0.5rem 1.5rem; text-decoration: none; color: @white; } a { background-color: @red; } span { background-color: @gray; &.active { background-color: @green; } } } } ul.list-warehouse { display: block; margin: 0; padding-left: 2rem; li { margin-bottom: 1.5rem; &:last-child { margin-bottom: 0; } } } table.table-cart { width: 100%; border-collapse: collapse; > tbody { > tr { &:last-child { > td { border-bottom: none; } } > td { padding: 1rem; border-bottom: 1px solid @gray; &.image { width: 1%; a { display: block; } img { display: block; max-width: 10rem; height: auto; } } &.title { line-height: 1em; font-weight: bold; text-align: left; } &.count { width: 1%; text-align: center; white-space: nowrap; } &.price { width: 1%; text-align: right; white-space: nowrap; } &.total { width: 1%; font-weight: bold; text-align: right; white-space: nowrap; } } } } > tfoot { border-top: 1px solid @gray; > tr { > td { padding: 1.5rem; font-weight: bold; text-align: right; } } } &.small { > tbody > tr > td { padding: 0.5rem 1rem; &.image { width: 1%; img { max-width: 5rem; } } } > tfoot > tr > td { padding: 1rem; } } } table.table-spec { width: 50%; margin: 1em 0; border-collapse: collapse; > tbody { > tr { > td { &:first-child { padding-right: 1.5rem; border-bottom: 1px dashed @gray; } &:last-child { width: 1%; white-space: nowrap; } } } } } table.table-data { border-collapse: collapse; > tbody > tr { > td { padding: 0.5rem 1rem; vertical-align: baseline; &:first-child { width: 1%; padding-left: 0; font-weight: bold; text-align: left; white-space: nowrap; &:after { content: ":"; } } } &:last-child > td { padding-right: 0; } } &.small { font-size: 1.4rem; > tbody > tr > td { padding-top: 0; padding-bottom: 0; } } } x-row.product-list { display: flex; flex-flow: row wrap; justify-content: center; align-items: stretch; margin: 0 -1.5rem; > x-col { flex: 0 1 calc(~"100%/3 - 1.5rem*2"); margin: 1.5rem; &:hover { .image { img { animation: jump 0.5s linear 0s 1 normal; } } } .image { display: block; margin-bottom: 1.5rem; text-decoration: none; img { display: block; margin: 0 auto; } } .title { display: block; margin-bottom: 1.5rem; line-height: 1em; font-size: 2.4rem; font-weight: bold; text-align: center; text-transform: uppercase; text-decoration: none; color: @blue; } > x-row { display: flex; flex-flow: row nowrap; justify-content: space-between; align-items: center; > x-col { flex: 1 1 50%; .price { position: relative; height: 4rem; line-height: 4rem; margin: 0 1rem; font-size: 2rem; font-weight: bold; text-align: center; white-space: nowrap; color: @white; background-color: @green; &:before { content: ""; position: absolute; top: 0; left: -1rem; width: 0; height: 0; border-style: solid; border-width: 0 0 4rem 1rem; border-color: transparent transparent @green transparent; } &:after { content: ""; position: absolute; top: 0; right: -1rem; width: 0; height: 0; border-style: solid; border-width: 4rem 1rem 0 0; border-color: @green transparent transparent transparent; } span { font-weight: normal; font-size: 1.6rem; } } .button-buy { position: relative; display: block; height: 4rem; line-height: 4rem; margin: 0 1rem; text-align: center; text-decoration: none; text-transform: uppercase; white-space: nowrap; color: @white; background-color: @red; &:before { content: ""; position: absolute; top: 0; left: -1rem; width: 0; height: 0; border-style: solid; border-width: 0 0 4rem 1rem; border-color: transparent transparent @red transparent; } &:after { content: ""; position: absolute; top: 0; right: -1rem; width: 0; height: 0; border-style: solid; border-width: 4rem 1rem 0 0; border-color: @red transparent transparent transparent; } } } } .info { margin-top: 1.5rem; } } } x-row.product-info { display: flex; flex-flow: row wrap; justify-content: space-between; align-items: flex-start; margin: 0 -1.5rem; > x-col { flex: 1 1 460px; margin: 1.5rem; &.col-image { img { display: block; max-width: 100%; margin: 0 auto; } } &.col-description { .price { font-size: 2.8rem; font-weight: bold; span { font-size: 2rem; font-weight: normal; color: @gray; } } } } } x-row.cart-list { display: flex; flex-flow: row wrap; justify-content: space-between; align-items: flex-start; margin: 0 -1.5rem; > x-col { flex: 1 1 auto; margin: 1.5rem; &:first-child { flex-basis: 650px; overflow: hidden; } fieldset { min-width: 20rem; max-width: 50rem; } } } x-row.warehouse-list { display: flex; flex-flow: row wrap; justify-content: flex-start; align-items: flex-start; margin: 0 -1.5rem; > x-col { flex: 1 1 400px; margin: 1.5rem; } } x-panel { display: flex; flex-flow: row wrap; align-items: center; &.top { margin-bottom: 3rem; &.bordered { padding-bottom: 1rem; border-bottom: 1px solid @gray; } } &.bottom { margin-top: 3rem; &.bordered { padding-top: 1rem; border-top: 1px solid @gray; } } > * { margin: 0.5rem 0; // line-height: 1em; h1, h2, h3, h4, h5, h6 { margin: 0; } } > x-right { margin-left: auto; } } x-tab { display: block; box-sizing: border-box; > x-head { display: flex; flex-flow: row nowrap; justify-content: flex-start; align-items: stretch; border-bottom: 1px solid @gray; > x-item { padding: 1rem 1.5rem; line-height: 1em; border-top: 1px solid @gray; border-right: 1px solid @gray; font-weight: bold; color: @gray; cursor: pointer; &:first-child { border-left: 1px solid @gray; } &.active { position: relative; color: @blue; background-color: @white; &:before { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; font-size: 0; background-color: @white; } } } } > x-body { display: block; padding: 1rem 0; > x-item { display: none; &.active { display: block; } } } > x-foot { display: flex; flex-flow: row wrap; align-items: center; padding: 1rem 0; border-top: 1px solid @gray; > * { margin: 0.5rem 0; } > x-right { margin-left: auto; } } } x-modal { display: none; } @keyframes jump { 0%{ transform: translateY(0); } 30%{ transform: translateY(-3rem); } 50%{ transform: translateY(0); } 80%{ transform: translateY(-1.5rem); } 100%{ transform: translateY(0); } } @import "form"; @import "media";