@-ms-viewport{
  width: device-width;
}

:root *, :root *::before, :root *::after {
	box-sizing: border-box;
}

.font-teko {
	font-family: 'Teko', sans-serif;
}

.font-lobster {
	font-family: 'Lobster', cursive;
}

html {
	margin: 0;
	padding: 0;
	font-family: 'Roboto', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 62.5%;
	font-weight: 400;
	color: hsla(215,9%,28%,1.00);
	text-align: center;
	background: rgb(255,255,255);
	
	text-rendering: optimizeLegibility;
	-webkit-text-size-adjust: none;
	-ms-text-size-adjust: 100%;
	text-size-adjust: none;
	
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

html * {
	margin: 0;
	padding: 0;
}

body {}

a {
	text-decoration: none;
}

img {
	margin: 0;
	display: block;
	border: 0px;
}

h1, h2, h3 {
	font-family: 'Teko', sans-serif;
}

/* -------- */

.wrapper {
	max-width: 1244px;
	margin: 0 auto;
	padding: 0 32px;
}

@supports(padding: max(0px)) {
	.post {
		padding-left: max(32px, env(safe-area-inset-left));
		padding-right: max(32px, env(safe-area-inset-right));
	}
}

.wrapper.nav {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
}

.wrapper.wrap_intro {
	height: 100%;
}

.wrapper.wrap_about {
	max-width: 920px;
}

.wrapper.wrap_good_company {
	max-width: 1020px;
}

.wrap_contacts {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
}

/* -------- */

nav {
	width: 100%;
	padding: 32px 0;
	background: hsla(0,0%,100%,1.00);
	
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	
	z-index: 1200;
}

.logo {
	height: 88px;
}

.tab-nav-menu {
	width: 28px;
	height: 14px;
	align-self: center;
	display: none;
}
.tab-nav-menu svg {
	width: 28px;
	height: 14px;
	fill: hsla(359,65%,41%,1.00);
}
.tab-nav-menu.active svg {
	fill: hsla(359,65%,41%,0.60);
}

.nav-links {
	width: 689px;
	padding: 28px 0 0 64px;
	font-size: 2.1rem;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
}
.nav-links a {
	color: hsla(216,9%,28%,1.00);
	text-transform: uppercase;
}

/* -------- */

header {
	width: 100%;
	height: 624px;
	margin: 152px 0 0 0;
	color: hsla(0,0%,100%,1.00);
	position: relative;
	overflow: hidden;
	text-align: left;
}

.post-header {
	width: 100%;
	height: 24px;
	background: hsla(0,0%,100%,1.00);
	z-index: 16;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
}
.post-header::before {
	width: 100%;
	transform-origin: 0 0;
	transform: skewY(-2.4deg);
	
	background: inherit;
	content: '';
	display: block;
	height: 400%;
	left: 0;
	position: absolute;
	right: 0;
}

.patterns {
	width: 100%;
	height: 100%;
	position: absolute;
	background: hsla(359,65%,41%,1.00);
}
.patterns-bg {
	width: 53.6%;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	background-image: url("/_img/bg.intro.png");
	background-size: cover;
	background-position: left center;
	background-repeat: no-repeat;
}

.intro {
	width: 480px;
	height: 580px;
	position: relative;
	
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	align-items: flex-start;
}
.intro span {
	width: 100%;
}

.intro h1 {
	margin: 0;
	font-size: 10rem;
	line-height: 0.84;
}

.intro p {
	margin: 32px 0 0 0;
	font-size: 2.1rem;
	line-height: 1.4em;
}

/* -------- */

.about {
	width: 100%;
	padding: 72px 0 124px 0;
	font-size: 3.1rem;
	line-height: 1.4;
	background: url("/_img/bg.dots.png") left bottom repeat-x;
}

/* -------- */

.flavor {
	width: 100%;
	min-width: 320px;
}

.flavor_row {
	width: 100%;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: stretch;
}

.block {
	width: 50%;
	align-self: stretch;
}

.block.collage {
	width: 50%;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-around;
	align-items: stretch;
	align-self: stretch;
}

.block.collage .image {
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.block.collage .image:nth-of-type(1) {
	background-image: url("/_img/flavor.wings.jpg");
}
.block.collage .image:nth-of-type(2) {
	background-image: url("/_img/flavor.hotdog.jpg");
}


.block.title {
	padding: 84px 48px;
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	align-items: flex-start;
	background-color: hsla(65,56%,48%,1.00);
	background-image: url("/_img/bg.dots.sloped.png");
	background-size: 100% auto;
	background-position: left bottom;
	background-repeat: no-repeat;
	align-self: stretch;
}
.block.title h2 {
	font-size: 8rem;
	color: hsla(100,0%,100%,1.00);
	line-height: 0.84;
}
.block.title h2 span {
	font-size: 6.4rem;
}


.block.big_image {
	width: 50%;
	height: auto;
	background-image: url("/_img/flavor.bbq.jpg");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.block.copy {
	padding: 84px 48px;
	font-size: 2.1rem;
	text-align: left;
	line-height: 1.6;
}
.block.copy p {
	width: 100%;
	max-width: 524px;
}

/* -------- */

.good_company {
	width: 100%;
	height: 720px;
	padding: 84px 0;
	background-color: hsla(201,63%,49%,1.00);
	background-image: url("/_img/bg.good_company.jpg");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.good_company h2 {
	font-size: 8rem;
	color: hsla(100,0%,100%,1.00);
	line-height: 0.84;
}

.good_company p {
	margin-top: 24px;
	font-size: 2.7rem;
	color: hsla(100,0%,100%,1.00);
	line-height: 1.4;
}

/* -------- */

.services {
	width: 100%;
	padding: 118px 0 96px 0;
	background: url("/_img/bg.dots.png") left top repeat-x;
}

.service_grid {
	max-width: 1180px;
	margin: 0 auto;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: flex-start;
}

.a_service {
	width: 352px;
	max-width: 100%;
	
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	align-items: flex-start;
}

.icon {
	width: 100%;
	height: 96px;
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	align-items: center;
}
.icon svg {
	width: 165px;
	height: auto;
}

.service_copy {
	width: 100%;
	margin: 24px 0 0 0;
	font-size: 2.1rem;
	line-height: 1.4;
	text-align: center;
}
.service_copy h3 {
	width: 92%;
	margin: 0 auto;
	font-family: 'Teko', sans-serif;
	font-size: 4.4rem;
	color: hsla(359,65%,41%,1.00);
	line-height: 0.84;
}
.service_copy h3 span {
	text-transform: uppercase;
}
.service_copy h3 span::after {
	content: "\A";
	white-space: pre;
}

.service_copy p {
	margin: 16px 0 0 0;
}

/* -------- */

.contacts {
	width: 100%;
	padding: 56px 0;
	background: hsla(298,3%,93%,1.00);
}

.contacts_title {
	width: 920px;
	margin: 0 auto 96px auto;
	padding: 48px 32px 0 32px;
	font-family: 'Teko', sans-serif;
	font-size: 7.6rem;
	color: hsla(215,9%,28%,1.00);
	line-height: 1;
	
	background-image: url("/_img/bg.frame.left.png"), url("/_img/bg.frame.right.png");
	background-size: 132px 148px;
	background-position: left top, right bottom;
	background-repeat: no-repeat;
}
.contacts_title span {
	font-size: 6.4rem;
}

.wrapper.wrap_contacts {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
}

/* ---- */

.formed {
	width: 768px;
}

form {
	width: 100%;
	text-align: left;
	display: block;
}
form.hide {
	display: none;
}

label {
	width: 100%;
	padding: 6px 12px;
	font-size: 1.5rem;
	font-weight: 500;
	color: #777;
	text-transform: uppercase;
	letter-spacing: 0.032864em;
	background: hsla(0,100%,100%,1.00);
	border: 2px hsla(106,0%,59%,1.00) solid;
	border-radius: 6px;
	display: block;
}
label + label {
	margin-top: 32px;
}

label > input {
	width: 100%;
	margin: 2px 0 0 0;
	font-family: 'Roboto', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 2.0rem;
	color: #333;
	-webkit-appearance: none;
	appearance: none;
	border: 0;
}

label > textarea {
	width: 100%;
	height: 240px;
	margin: 4px 0 0 0;
	font-family: 'Roboto', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 2.0rem;
	color: #333;
	line-height: 1.35;
	-webkit-appearance: none;
	appearance: none;
	border: 0;
}

input[type="button"] {
	margin: 48px 0 0 0;
	padding: 12px 32px;
	font-family: 'Roboto', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 2.0rem;
	font-weight: 500;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.032864em;
	-webkit-appearance: none;
	appearance: none;
	background: hsla(359,65%,41%,1.00);
	border: 0;
	border-radius: 5px;
}

label:nth-of-type(4), input#contact_subject {
	display: none;
}

/* ---- */

.response {
	max-width: 508px;
	margin: 0 auto;
	font-size: 2.1rem;
	line-height: 1.4;
	opacity: 0;
}
.response.show {
	opacity: 1;
	transition: opacity 2.0s;
}

.response h2 {
	font-family: 'Teko', sans-serif;
	font-size: 7.2rem;
	color: hsla(359,65%,41%,1.00);
	line-height: 0.92;
}

.response h2 + p {
	margin: -2px 0 0 0;
}


/* ---- */

.contact_info {
	width: 296px;
	padding: 0;
	font-size: 2.1rem;
	line-height: 1.4;
	text-align: left;
	
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
}

.contact_info p {
	width: 100%;
}

.contact_info a.phone {
	width: 100%;
	margin: 72px 0;
	font-family: 'Teko', sans-serif;
	font-size: 7.2rem;
	letter-spacing: -0.0032648em;
	color: hsla(359,65%,41%,1.00);
	align-self: flex-start;
}

/* -------- */

footer {
	padding: 48px 0 40px 0;
	font-size: 1.7rem;
	color: hsla(100,0%,100%,1.00);
	text-align: left;
	background: hsla(106,0%,56%,1.00);
}

/* -------- */

@media only screen and (max-width: 1112px) {
	.block.title {
		padding: 64px 48px;
	}
	.block.title h2 {
		font-size: 6rem;
	}
	.block.title h2 span {
		font-size: 4.8rem;
	}
	
	.block.copy {
		padding: 32px 48px;
	}
	
	.good_company {
		width: 100%;
		height: 540px;
	}
	
	.services {
		padding-left: 32px;
		padding-right: 32px;
	}
	
	.a_service {
		width: 272px;
	}
	
	.service_copy h3 {
		width: 100%;
		font-size: 3.6rem;
	}
	
	.formed {
		width: 600px;
	}
	
	label + label {
		margin-top: 16px;
	}
	
	input[type="button"] {
		margin: 24px 0 0 0;
	}
	
	.contact_info a.phone {
		margin: 48px 0;
	}
}

/* -------- */

@media only screen and (max-width: 960px) {
	.patterns-bg {
		width: 40%;
	}
	
	.block.title h2 {
		font-size: 5rem;
	}
	.block.title h2 span {
		font-size: 4.0rem;
	}
	
	.contacts_title {
		width: calc(100% - 64px);
		margin: 0 auto 72px auto;
		padding: 48px 32px 0 32px;
		font-size: 6.0rem;
	}
	.contacts_title span {
		font-size: 5.6rem;
	}
	
	.formed {
		width: 600px;
	}
	
	label > textarea {
		height: 216px;
	}
	
	.contact_info {
		width: 240px;
		margin-left: 48px;
	}
	
	.contact_info img {
		width: 240px;
	}
	
}

/* -------- */

@media only screen and (max-width: 880px) {
	.service_grid {
		flex-wrap: wrap;
	}
	
	.a_service {
		width: 100%;
		margin-top: 48px;
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
	}
	.a_service:nth-of-type(1) {
		margin-top: 0;
	}

	.icon {
		width: 165px;
		margin-right: 48px;
	}

	.service_copy {
		width: 100%;
		margin: 0;
		text-align: left;
	}
	.service_copy h3 span::after {
		content: " ";
	}
	
	.service_copy p {
		margin: 0;
	}
}

/* -------- */

@media only screen and (max-width: 840px) {
	.block.title {
		padding: 48px 32px;
	}
	.block.title h2 {
		font-size: 4.4rem;
	}
	.block.title h2 span {
		font-size: 3.4rem;
	}
	.block.copy {
		padding: 28px 32px;
	}
	
	
	.good_company h2 {
		font-size: 6.4rem;
	}
}

/* -------- */

@media only screen and (max-width: 720px) {
	.wrapper {
		padding: 0 24px;
	}

	@supports(padding: max(0px)) {
		.post {
			padding-left: max(24px, env(safe-area-inset-left));
			padding-right: max(24px, env(safe-area-inset-right));
		}
	}
	
	nav {
		max-height: 110px;
		padding: 24px 0 20px 0;
	  transition: all 0.3s ease-in-out;
		overflow: hidden;
	}
	nav.mobile-active {
		max-height: 320px;
	}
	.wrapper.nav {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-start;
	}
	.logo {
		height: 66px;
	}
	.tab-nav-menu {
		display: block;
	}
	.nav-links {
		width: 100%;
		max-height: 320px;
		margin-top: 20px;
		padding: 0;
		flex-wrap: wrap;
	}
	.nav-links a {
		width: 100%;
		padding: 12px 0;
		text-align: left;
		font-size: 2rem;
		line-height: 1;
		border-top: 1px #ddd solid;
	}
	.nav-links a:last-of-type {
		padding: 12px 0 0 0;
	}
	
	
	header {
		height: 540px;
		margin: 110px 0 0 0;
	}
	.patterns-bg {
		width: 28%;
	}
	.intro {
		width: 84%;
		height: 100%;
	}
	.intro h1 {
		font-size: 6.4rem;
	}
	.intro p {
		margin: 16px 0 0 0;
	}
	
	
	.about {
		padding: 48px 0 84px 0;
		font-size: 2.4rem;
	}


	.flavor_row {
		flex-direction: column;
	}
	.block {
		width: 100%;
		align-self: stretch;
	}
	.block.collage {
		width: 100%;
		height: 160px;
	}
	.block.title {
		padding: 48px 24px;
	}
	.block.title h2 {
		font-size: 4.8rem;
		align-self: center;
	}
	.block.title h2 span {
		font-size: 3.8rem;
	}
	.block.big_image {
		width: 100%;
		height: 320px;
		order: 2;
	}
	.block.copy {
		padding: 24px;
	}
	.block.copy p {
		max-width: 100%;
	}
	
	
	.good_company {
		width: 100%;
		height: auto;
		padding: 48px 0;
	}
	.good_company h2 {
		font-size: 6.0rem;
	}
	.good_company p {
		font-size: 2.4rem;
	}
	
	
	.services {
		padding: 68px 0 48px 0;
	}
	.a_service {
		width: 100%;
		margin-top: 48px;
		flex-direction: column;
		justify-content: space-between;
		align-items: flex-start;
	}
	.a_service:nth-of-type(1) {
		margin-top: 0;
	}
	.icon {
		width: 100%;
		margin-right: 0;
	}
	.service_copy {
		width: 100%;
		margin: 24px 0 0 0;
		text-align: center;
	}
	.service_copy h3 span::after {
		content: "\A";
	}
	.service_copy p {
		width: calc(100% - 48px);
		margin: 16px auto 0 auto;
	}
	
	
	.contacts {
		padding: 36px 0;
	}
	.wrapper.wrap_contacts {
		flex-direction: column;
	}
	.contacts_title {
		width: 100%;
		margin: 0 auto 48px auto;
		padding: 40px 32px;
		font-size: 6.0rem;
	}
	.contacts_title span {
		font-size: 4.2rem;
	}
	.formed {
		width: 100%;
		padding-bottom: 48px;
		border-bottom: 1px #bbb solid;
	}
	label > textarea {
		height: 168px;
	}
	.contact_info {
		width: 240px;
		margin: 48px auto 12px auto;
	}
	.contact_info img {
		width: 100%;
	}
	
	
	footer {
		padding: 32px 0 24px 0;
		font-size: 1.5rem;
		text-align: center;
	}
	
}

/* -------- */

@media only screen and (max-width: 360px) {
	.intro h1 {
		font-size: 6.0rem;
	}
	.intro p {
		font-size: 2.0rem;
	}
}
