* { box-sizing: border-box; }
*:focus { outline: none; }

body { margin: 0; font: 300 16px/1.5 'Roboto', sans-serif; background: #fff; color: #333; }

h1, h2, h3 { font: 900 42px/1.3 'Roboto', sans-serif; margin: 0 0 20px; }
h2 { font-size: 36px; }
h3 { font-size: 24px; }
h4 { font: 900 16px/1.5 'Roboto', sans-serif; margin: 0; }

b, strong { font-family: 'Roboto'; font-weight: 700; }

a { color: #05c; }
a:hover { color: #c00; }

p, blockquote, table, ul, ol { margin: 0 0 20px; }
p:last-child, blockquote:last-child, table:last-child, ul:last-child, ol:last-child { margin: 0; }

ul, ol { list-style: none; padding-left: 40px; }
ol { counter-reset: item; }

li ul,
li ol { padding-top: 10px; }

li { position: relative; margin-bottom: 10px; }
li:before { position: absolute; right: 100%; margin-right: 10px; color: #09c; }

ul > li:before { content: '\2014'; }
ol > li { counter-increment: item; }
ol > li:before { content: counter(item) '.'; }

blockquote { font-size: 1.5rem; line-height: 1.3; padding: 20px; border-left: 1px solid #ccc; }
small { display: inline-block; font-size: 14px; color: #999; }

img { max-width: 100%; height: auto !important; border: 0; vertical-align: top; }
iframe { border: 0; }

table { width: 100%; border-collapse: collapse; }
th, td { vertical-align: top; text-align: left; padding: 10px; border: 1px solid #ccc; }

label { cursor: pointer; display: inline-block; }
label[for] { margin-bottom: 10px; }

input, select, textarea, button { font: inherit; }
input, select, textarea { width: 100%; border: 1px solid #ccc; background: #fff; vertical-align: top; }
input, select { height: 40px; padding: 0 10px; }
textarea { padding: 10px; resize: vertical; }

input:focus, select:focus, textarea:focus { border-color: #09c; }

select + span:before,
input + span:before { font-family: 'Font Awesome 5 Free'; font-weight: 900; color: #09c; display: inline-block; width: 40px; text-align: center; }

select { padding-right: 40px; appearance: none; -webkit-appearance: none; -moz-appearance: none; }
select::-ms-expand { display: none; }

select + span { height: 40px; line-height: 40px; margin-left: -40px; pointer-events: none; }
select + span:before { content: '\f0dc'; }

input[type='checkbox'],
input[type='radio'],
input[type='file'] { display: none; }

input[type='checkbox'] + span:before { content: '\f0c8'; }
input[type='checkbox']:checked + span:before { content: '\f14a'; }

input[type='radio'] + span:before { content: '\f111'; }
input[type='radio']:checked + span:before { content: '\f058'; }

input[type='file'] + span:before { content: '\f574'; }
input[type='file'] + span:empty:after { content: attr(title); }

button, .button { display: inline-block; font-size: 14px; height: 40px; padding: 0 20px; background: #09c; color: #fff; cursor: pointer; text-decoration: none; border: 0; border-bottom: 3px solid #069; }
button:hover, .button:hover { color: #fff; }
button:active, .button:active { border: 0; border-top: 3px solid #069; }

hr { border: 0; border-top: 1px solid #ccc; margin: 40px 0; }

.clearfix:after { content: ''; display: block; clear: both; }
.hidden { display: none; }

@media screen and (min-width: 1024px) {
	.d-desktop-hidden,
	.d-tablet-visible { display: none; }
}

@media screen and (max-width: 1023px) {
	.d-desktop-visible { display: none; }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
	.d-tablet-hidden { display: none; }
}

@media screen and (min-width: 768px) {
	.d-phone-visible { display: none; }
}

@media screen and (max-width: 767px) {
	.d-tablet-visible,
	.d-phone-hidden { display: none; }
}

.l-grid { display: flex; flex-wrap: wrap; margin: 0 -20px -20px; }
[class*='l-cell-'] { padding: 0 20px 20px; }

.l-row-center { align-items: center; }
.l-row-bottom { align-items: flex-end; }

.l-cell-3 { width: calc(3/12 * 100%); }
.l-cell-4 { width: calc(4/12 * 100%); }
.l-cell-6 { width: calc(6/12 * 100%); }
.l-cell-8 { width: calc(8/12 * 100%); }
.l-cell-9 { width: calc(9/12 * 100%); }

.l-offset-3 { margin-left: calc(3/12 * 100%); }
.l-offset-4 { margin-left: calc(4/12 * 100%); }

.l-wrapper { max-width: 720px; margin: 0 auto; padding: 0 40px; }

.b-slider { position: relative; }

.b-slider .prev,
.b-slider .next { position: absolute; z-index: 1; top: calc(50% - 20px); width: 40px; line-height: 40px; text-align: center; color: #09c; cursor: pointer; }
.b-slider .prev { left: -40px; }
.b-slider .next { right: -40px; }

.b-slider .swiper-button-disabled { display: none; }

.b-slider .swiper-pagination-bullets { position: absolute; bottom: -20px; width: 100%; display: flex; align-items: center; justify-content: center; }
.b-slider .swiper-pagination-bullet { width: 10px; height: 10px; background: #ccc; opacity: 1; margin: 0 5px; }
.b-slider .swiper-pagination-bullet-active { background: #09c; }

.b-swiper .swiper-slide { width: auto; }

.b-gallery .fancybox-button,
.b-modal .fancybox-button { width: 40px; height: 40px; line-height: 40px; text-align: center; padding: 0; }

.b-gallery .fancybox-button { background: rgba(0, 0, 0, .25); color: #fff; }
.b-modal .fancybox-button { position: absolute; top: 0; right: 0; background: none; color: #09c; }

.b-modal .fancybox-content { padding: 40px; background: #fff; max-width: 720px; position: relative; }

.fancybox-bg { background: rgba(0, 0, 0, .75); }
.fancybox-is-open .fancybox-bg { opacity: 1; }
.fancybox-loading { border: 2px solid #09c; border-bottom-color: transparent; opacity: 1; }

.fancybox-navigation .fancybox-button { top: calc(50% - 20px); }
.fancybox-navigation .next { right: 0; }

.fancybox-caption { padding: 40px; background: rgba(0, 0, 0, .25); font: inherit; color: #fff; }

.fancybox-slide--html,
.fancybox-slide--image { padding: 20px; }

@media screen and (max-width: 767px) {
	table { display: block; overflow-x: auto; }
	tbody { display: table; width: 100%; }

	.l-mobile-cell-6 { width: calc(6/12 * 100%); }
	.l-mobile-cell-12 { width: 100%; }
}