/* desktop only */

@media all and (min-width: 1225px) {

	.hide-on-desktop {
		display: none !important;
	}

}

/* desktop and tablet */

@media all and (max-width: 1224px) {

	:root {
    	--container-width: 100%;
    	--container-width-mobile: ( 100vw - var(--container-padding) * 2 );
		--proportion-32: calc( var(--container-width-mobile) * 2 / 3 );
		--proportion-43: calc( var(--container-width-mobile) * 3 / 4 );
		--proportion-169: calc( var(--container-width-mobile)  * 9 / 16 );
		--min-image-height: 220px;
	}

    #grid {
        display: none !important;
    }

	.builder.hero .background .image-wrap {
		top: 150px;
		right: initial;
		left: -200px;
	}

	.builder.hero .background .image-wrap img {
		width: 400px;
	}

    .builder.hero .picture img {
    	object-position: center;
    }

	.builder.hero .picture,
	.builder.hero.medium .picture,
	.builder.hero .picture.cropped {
		height: 420px;
		width: 100%;
	}

	.builder.hero.high .picture {
		height: 500px;
	}

	.builder.hero.small .picture {
		height: 400px;
	}

	.builder.hero .picture .caption {
		right: var(--container-padding);
	}

    .builder.hero .content {
    	flex-shrink: 0;
    }

	.builder.proposal .content {
		width: 400px;
		margin-right: 55px;
		flex-shrink: 0;
	}

	.builder.proposal .cta {
		margin-top: 20px;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	.builder.proposal .cta a + a {
		margin: 15px 0 0;
	}

	.builder.proposal .image {
		width: 100%;
	}

	.builder.app .content {
		width: auto;
		margin-left: 200px;
    }

}

@media all and (max-width: 1200px) {

	form.two-columns .gform_body .gfield.tc-quarter {
		width: calc(50% - 30px);
	}

}

@media all and (max-width: 1100px) {

    /*
    .button {
        font-size: 14px;
    }
	*/

	:root {
		--topline-height: 0;
	}

	form .gform_page_footer {
		display: flex;
		flex-direction: column;
	}

	form .gform_page_footer button + button {
		margin-top: 20px;
	}

	.button,
	.button.medium {
		min-width: 180px;
		padding: 14px 25px;
	}

	.button.large {
		min-width: 220px;
		padding: 18px 30px;
	}

	.button.small {
		min-width: 140px;
		padding: 8px 20px;
	}

	.builder.title-text .title {
		width: 320px;
	}

    .builder.hero .content {
    	width: 340px;
    }

	.builder.hero .title,
	.builder.hero.high .title {
		font-size: 30px;
		line-height: 36px;
	}

	.builder.hero.small .title,
	.builder.hero.medium .title {
		font-size: 26px;
		line-height: 32px;
	}

	.builder.hero .text {
		font-size: 14px;
		line-height: 22px;
		padding-right: 40px;
	}

	.builder.links {
		padding: 70px 0;
	}

	.builder.links .image {
		width: 350px;
		margin-right: 75px;
		flex-shrink: 0;
	}

	.builder.links .content {
		width: 100%;
	}

	.builder.links .title {
		font-size: 26px;
		line-height: 32px;
	}

	.builder.links .text {
		font-size: 14px;
		line-height: 22px;
	}

	.builder.links .text strong {
		font-size: 16px;
	}

	.builder.links .elements {
		margin: 30px -15px 0;
	}

	.builder.links .elements .link {
		width: calc(50% - 30px);
		margin: 10px 15px;
	}

	.builder.links .elements .link a {
		padding: 0 20px;
		min-height: 70px;
	}

	.builder.proposal .image {
		height: 520px !important;
	}

	.builder.proposal .tagline {
		font-size: 11px;
		margin-bottom: 15px;
	}

	.builder.proposal .title {
		font-size: 26px;
		line-height: 32px;
	}

	.builder.proposal .text {
		font-size: 14px;
		line-height: 22px;
		margin-top: 15px;
	}

	.builder.app .title {
		font-size: 26px;
		line-height: 32px;
	}

	.builder.app .text {
		font-size: 14px;
		line-height: 22px;
	}

    .post-large .pic {
		width: 520px;
		height: 320px;
		flex-shrink: 0;
	}

	.post-large .content {
		width: 100%;
		margin-right: 50px;
	}

	.post-large .title a {
		font-size: 18px;
		line-height: 26px;
	}

	.post-large .excerpt {
		font-size: 14px;
		line-height: 22px;
	}

	.builder.numbers .header .description {
		width: 480px;
	}

	.builder.numbers .elements {
		margin: 30px -20px 0;
	}

	.builder.numbers .elements .number {
		height: auto;
		width: calc(33.3332% - 40px);
		margin: 20px;
		padding: 30px;
	}

	.builder.numbers .elements .number .value {
		font-size: 64px;
	}

	.builder.numbers .elements .number .text {
		font-size: 14px;
		line-height: 22px;
	}

	.builder.numbers2 .elements {
		margin: 50px -20px 0;
	}

	.builder.numbers2 .elements .number {
		width: calc(33.3332% - 40px);
		margin: 20px;
	}

	.builder.checkerboard .elements .block .content .title {
		font-size: 26px;
		line-height: 32px;
	}

	.builder.checkerboard .elements .block .content .text {
		font-size: 14px;
		line-height: 22px;
	}

	.builder.checkerboard .elements .block > .image {
		width: 320px;
		height: 480px;
	}

	.builder.checkerboard .elements .block .content {
		width: calc(100% - 320px - 60px);
	}

	.builder.tools .elements {
		margin: 0 -15px;
	}

	.builder.tools .elements .item {
		width: calc(33.33332% - 30px);
		margin: 15px;
	}

	.builder.faq.vacancies .elements .sidebar {
		width: 300px;
	}

	.builder.faq.vacancies .elements .links {
		width: calc(100% - 300px - 100px);
	}

	#contacts-header .content {
		margin-right: 50px;
	}

    #employees .list .employee {
        width: calc(50% - 40px);
    }

	.article {
        font-size: 14px;
        line-height: 22px;
	}

	#forma .sidebar {
		width: 320px;
	}

	.page-id-266 #forma .sidebar .image img {
		max-width: 420px;
		margin-left: -120px;
	}

}

/* tablet and mobile */

@media all and (max-width: 960px) {

	:root {
    	--header-height: 80px;
    	--container-padding: 25px;
	}

	.builder.faq.vacancies .elements .sidebar {
		width: 100%;
	}

	.builder.faq.vacancies .elements .links {
		width: 100%;
	}

	#forma {
		flex-direction: column;
	}

	#forma .sidebar {
		margin: 0 !important;
		width: 100%;
		padding: 70px var(--container-padding);
	}

	.page-id-266 #forma .sidebar .image img {
		max-height: 320px;
		margin-left: 0;
	}

	#forma .content {
		margin: 0 !important;
		width: 100%;
		padding: 0 var(--container-padding) 70px;
		box-shadow: none;
	}

	.category-list {
		padding: 70px 0;
	}

	.category-list .posts {
		margin-left: -20px;
		margin-right: -20px;
	}

	.category-list .posts .post-medium {
		width: calc(50% - 40px);
		margin: 20px;
	}

	.category-list .posts .post-medium:nth-child(n + 3) {
		margin-top: 63px !important;
	}

	.category-list .posts .post-medium:nth-child(4n + 4):before {
		display: none;
	}

	.category-list .posts .post-medium:nth-child(3n + 3):before {
		content: '';
		display: block;
		width: calc( 100% - 27px - 27px );
		height: 1px;
		background: var(--liner);
		position: absolute;
		left: 27px;
		margin-top: -50px;
	}

	#employees-wrap {
		padding: 70px 0;
	}

	#employees-wrap .container {
		flex-direction: column;
	}

	#employees-wrap .contact-form {
		width: auto;
		padding: 70px var(--container-padding);
		margin: 0 calc( var(--container-padding) * -1 );
		background: var(--back-grey);
	}

	#employees-wrap .contact-form > .title, #employees > .title {
		font-size: 18px;
		line-height: 26px;
	}

	#employees-wrap .contact-form > .title {
		margin-bottom: 30px;
	}

	#employees {
		width: auto;
		margin-top: 70px;
	}

	#employees .nav {
		margin-left: -10px;
		margin-right: -10px;
		flex-direction: column;
		align-items: flex-start;
	}

	#employees .nav li {
		font-size: 14px;
		line-height: 24px;
		margin-top: 3px;
		margin-bottom: 3px;
	}

	#employees .list {
		padding-top: 20px;
		border-top: 1px solid var(--liner);
		margin: 30px -25px 0;
	}

	#employees .list .employee {
		width: calc(33.33332% - 50px);
		margin: 25px;
	}

	#contacts-header .image {
		height: 450px;
	}

	#contacts-header .content .company-name {
		font-size: 18px;
	}

	#contacts-header .content .block {
		font-size: 14px;
	}

	#header {
		background: white;
	}

	#header:after {
		display: none;
	}

	#header .logo img {
		height: 34px;
	}

    #header .nav .menu {
        display: none;
    }

    #header .burger {
        display: block;
    }

    #header .topline {
    	display: none;
    }

	#footer .schedule {
	    margin-left: 50px;
	}

	#grid-switch {
        left: calc(50% - 8px);
        display: none;
	}

	.builder.title-text {
		padding: 70px 0;
	}

	.builder.title-text .container {
		flex-direction: column;
	}

	.builder.title-text .title {
		width: auto;
		margin-right: 0;
		font-size: 16px;
		line-height: 24px;
	}

	.builder.title-text .text {
		margin-top: 35px;font-size: 18px;
        line-height: 32px;
	}

	.builder.contact-offices {
		padding: 70px 0 0;
	}

	.builder.contact-offices .title {
		font-size: 18px;
		line-height: 26px;
	}

	.builder.contact-offices .container {
		flex-direction: column;
	}

	.builder.contact-offices .contact-form {
		order: 2;
		width: auto;
		padding: 70px var(--container-padding);
		margin: 0 calc( var(--container-padding) * -1 );
		background: var(--back-grey);
		margin-top: 70px;
	}

	.builder.contact-offices .contact-form > .title, #employees > .title {
		font-size: 18px;
		line-height: 26px;
	}

	.builder.contact-offices .contact-form > .title {
		margin-bottom: 30px;
	}

	.builder.contact-offices .offices {
		order: 1;
	}

	.builder.tools {
		padding: 55px 0 250px;
	}

	.builder.tools .background {
		right: 0;
		bottom: 0;
		overflow: hidden;
		height: 100%;
		display: flex;
		align-items: flex-end;
	}

	.builder.tools .background img {
		transform: scaleX(-1);
		height: 360px;
		margin-top: 0;
		object-fit: contain;
		width: auto;
	}

	.builder.tools .elements .item {
		width: calc(50% - 30px);
	}

	.builder.faq {
        padding: 70px 0;
    }

	.builder.faq .header .title {
		font-size: 26px;
		line-height: 32px;
	}

	.builder.faq .header .description {
		font-size: 14px;
		line-height: 22px;
	}

	.builder.faq .elements {
		flex-direction: column;
		margin-top: 40px;
	}

	.builder.faq .elements .links {
		width: auto;
		order: 2;
	}

	.builder.faq .elements .sidebar {
		margin-bottom: 30px;
		width: auto;
	}

	.builder.faq .elements .sidebar .nav {
		margin-left: 0;
		display: flex;
		flex-wrap: wrap;
		margin: 0 -10px;
	}

	.builder.faq .elements .sidebar .nav li,
	.builder.faq .elements .sidebar .nav li + li {
		margin: 5px 10px;
	}

	.builder.faq .elements .sidebar .image {
		display: none;
	}

	.builder.faq .elements > .image {
		order: 3;
		display: block;
		margin-top: 50px;
	}

	.builder.faq .elements > .image img {
		max-width: 270px;
		transform: scaleX(-1);
	}

	.builder.faq .elements .links .item a {
		font-size: 12px;
		line-height: 22px;
		min-height: 71px;
		padding: 13px 65px 13px 10px;
	}

	.builder.faq .elements .links .item a:hover {
		padding: 13px 45px 13px 30px;
	}

	.builder.faq .elements .links .item a img {
		right: 10px;
		height: 15px;
	}

	.builder.faq .elements .links .item a span i {
		font-size: 12px;
	}

	.builder.links .container {
		align-items: flex-start;
	}

	.builder.links .image {
		margin-right: 50px;
	}

	.builder.links .elements {
		margin: 20px 0 0;
	}

	.builder.links .elements .link {
		width: 100%;
		margin: 0;
	}

	.builder.links .elements .link + .link {
		margin-top: 10px;
	}

	.builder.proposal .content {
		width: 320px;
		margin-right: 40px;
	}

	.builder.proposal .image {
		height: 500px !important;
	}

	.builder.app .image {
		height: 600px;
		width: 320px;
	}

	.builder.app .content {
		margin-left: 120px;
    }

	.builder.app .screenshot {
		right: -98px;
		top: 0;
	}

	.builder.app .screenshot img {
		width: 250px;
	}

	.builder-area .builder.news {
		padding: 70px 0 50px;
	}

    .post-large .pic {
		width: 460px;
		height: 280px;
	}

	.builder.news .posts {
		margin: 0 -20px;
	}

	.builder.news .posts .post {
		width: calc(33.33332% - 40px);
		margin: 20px;
	}

	.builder.numbers {
		padding: 70px 0;
	}

	.builder.numbers .header {
		flex-direction: column;
	}

	.builder.numbers .header .title {
		font-size: 30px;
		line-height: 36px;
	}

	.builder.numbers .header .description {
		width: auto;
		margin-top: 20px;
		font-size: 14px;
		line-height: 22px;
	}

	.builder.numbers .elements {
		margin: 20px -15px 0;
	}

	.builder.numbers .elements .number {
		width: calc(33.3332% - 30px);
		margin: 15px;
		padding: 25px;
	}

	.builder.numbers .elements .number .value {
		font-size: 54px;
	}

	.builder.numbers .elements .number .icon img {
		height: 48px;
	}

	.builder.numbers2 {
		padding: 70px 0;
	}

	.builder.numbers2 .elements {
	}

	.builder.numbers2 .elements .number .value {
		font-size: 64px;
	}

	.builder.checkerboard {
		padding: 70px 0;
	}

	.builder.checkerboard .nav li a {
		font-size: 14px;
		line-height: 22px;
	}

	.builder.checkerboard .elements {
		margin-top: 60px;
	}

	form .validation_error {
		bottom: -53px;
	}

	.article {
        padding: 45px 0 70px;
        display: flex;
        flex-direction: column;
    }

    .all-news {
    	order: 3;
    	justify-content: center;
    	margin: 45px 0 0;
    }

    .article .builder.news {
    	margin-top: 65px;
    }

}

/* mobile only */

@media all and (max-width: 825px) {

	:root {
        --container-thin-width: 100%;
	}

}

/* tablet only */

@media all and (min-width: 768px) and (max-width: 959px) {

}

/* mobile only */

@media all and (max-width: 767px) {

	form .gform_body .gfield .ginput_container_fileupload {
		justify-content: center;
	}

	form .gform_body .gfield .ginput_container_fileupload .gform_drop_area {
		flex-direction: column;
	}

	form .gform_body .gfield .ginput_container_fileupload .gform_drop_area>input {
		margin-left: 0;
		margin-top: 10px;
	}

	form.two-columns .gform_body .gfield.tc-half {
		width: 100%;
	}

	.category-list .navigation a {
        font-size: 14px;
        line-height: 24px;
    }

	.category-list .posts {
		margin-left: 0;
		margin-right: 0;
		margin-top: 50px;
	}

	.category-list .posts .post-medium {
		width: 100%;
		margin: 0;
	}

	.category-list .posts .post-medium + .post-medium {
		margin-top: 50px;
	}

	.category-list .posts .post-medium:before {
		display: none !important;
	}

	.category-list .posts .post-medium .pic {
		height: var(--proportion-169);
		min-height: var(--min-image-height);
		max-height: 320px;
	}

	#contacts-header {
		flex-direction: column;
	}

	#contacts-header .image {
		height: var(--proportion-169);
		min-height: var(--min-image-height);
	}

	#contacts-header .image img {

	}

	#contacts-header .content {
		order: 2;
		width: 100%;
		margin: 0;
		padding: 40px var(--container-padding) 0;
	}

	#employees .list .employee {
		width: calc(50% - 50px);
	}

	#employees .list .employee .name {
		font-size: 14px;
	}

	.builder.hero {
		flex-direction: column;
	}

	.builder.hero .picture {
		height: var(--proportion-169) !important;
		min-height: 250px;
		width: 100% !important;
	}

	.builder.hero .picture .caption {
		right: var(--container-padding);
		padding: var(--container-padding);
		width: auto;
	}

	.builder.hero .content {
		order: 2;
		margin: 40px 0 0;
		width: auto;
		padding-right: var(--container-padding);
		padding-bottom: 40px;
		overflow: hidden;
	}

	.builder.hero .background + .content {
		padding-top: 0;
		padding-bottom: 140px;
	}

	.builder.hero .background.without-image + .content {
		padding-bottom: 0;
	}

	.builder.hero .background {

	}

	.builder.hero .background.grey + .content {
		padding-bottom: 70px;
	}

	.builder.hero .background .image-wrap {
		top: initial;
		right: 0;
		left: initial;
		bottom: -235px;
		overflow-x: hidden;
	}

	.builder.hero .background .image-wrap img {
		height: 600px;
		width: auto;
		margin-right: -100px;
		transform: scaleX(-1);
	}

	.builder.hero .cta {
		margin-top: 20px;
	}

	.builder.links .container {
        display: block;
	}

	.builder.links .content {
		margin-top: 0;
	}

	.builder.links .elements {
		margin: 30px -15px 0;
	}

	.builder.links .elements .link {
		width: calc(50% - 20px);
		margin: 10px;
	}

	.builder.links .image.desktop {
		display: none;
	}

	.builder.links .image.mobile {
		display: block;
		width: 100%;
		margin-right: 0;
		height: var(--proportion-169);
		min-height: var(--min-image-height);
	}

	.builder.proposal {
		flex-direction: column;
		align-items: flex-start;
	}

	.builder.proposal .content {
		padding: 70px var(--container-padding);
		width: auto;
		margin: 0;
	}

	.builder.proposal .image {
		height: var(--proportion-169) !important;
		min-height: 260px;
	}

	.builder.app {
		flex-direction: column;
		align-items: flex-end;
	}

	.builder.app .content {
		margin: 0;
		padding: 70px var(--container-padding);
	}

	.builder.app .image {
		order: 2;
		height: 420px;
		width: 65%;
	}

	.builder.app .image img {
		object-position: 70% center;
	}

	.builder.app .screenshot {
		right: initial;
		top: 15px;
		left: -125px;
	}

	.builder.app .screenshot img {
		width: 210px;
	}

	.builder.checkerboard .nav {
	    flex-direction: column;
	    margin: 0;
	}

	.builder.checkerboard .nav li + li {
		margin-top: 5px;
	}

	.builder.checkerboard .elements {
		margin-top: 45px;
	}

	.builder.checkerboard .elements .block + .block {
        margin-top: 45px;
        padding-top: 45px;
    }

	.builder.checkerboard .elements .block > .image {
		display: none;
	}

	.builder.checkerboard .elements .block .content {
		width: auto;
	}

	.builder.checkerboard .elements .block .content > .image {
		display: block;
		height: var(--proportion-169) !important;
		min-height: 190px;
		margin: 25px 0;
	}

	.builder.checkerboard .elements .block .content > .image img {
		object-fit: cover;
		height: 100%;
		width: 100%;
	}

	.post-large .content {
		margin-right: 0;
	}

	.post-large > .pic {
		display: none;
	}

	.post-large .content > .pic {
		display: block;
		margin-top: 20px;
		width: 100%;
		height: var(--proportion-169);
		min-height: 220px;
	}

	.post-large .title {
		overflow: hidden;
	}

	.post-large .pic {

	}

	.builder.news .sticky + .posts {
		margin-top: 45px;
	}

	.builder.news .posts {
		margin: 0;
		flex-direction: column;
	}

	.builder.news .posts .post {
		width: 100%;
		margin: 0;
	}

	.builder.news .posts .post + .post {
		margin-top: 25px;
		padding-top: 30px;
	}

	.builder.numbers .elements {
		margin: 20px 0 0;
		flex-direction: column;
	}

	.builder.numbers .elements .number {
		width: auto;
		margin: 0;
		padding: 25px;
	}

	.builder.numbers .elements .number + .number {
		margin-top: 25px;
	}

	.builder.numbers2 .elements {
		flex-direction: column;
		margin-left: 0;
		margin-right: 0;
	}

	.builder.numbers2 .elements .number {
		margin: 0;
		width: 100%;
	}

	.builder.numbers2 .elements .number + .number {
		margin-top: 50px;
	}

	.builder.numbers2 .elements .number .block {
		display: flex;
		align-items: center;
		margin-top: 5px;
	}

	.builder.numbers2 .elements .number .value {
		width: 240px;
		flex-shrink: 0;
		margin-top: 0;

	}

	.builder.numbers2 .elements .number .text {
		margin-top: 10px;
	}

	#footer {
		padding: 60px 0 20px;
	}

	#footer .row:first-child {
		display: block;
	}

	#footer .row:first-child .column + .column {
		margin-top: 50px;
	}

	#footer .company {
		min-width: auto;
		max-width: 300px;
	}

	#footer .company .disclaimer br {
		display: none;
	}

	#footer .schedule {
		margin-left: 0;
		line-height: 24px;
	}

	#footer .schedule .full {
		display: none;
	}

	#footer .schedule .short {
		display: block;
	}

	#footer .nav {
		display: none;
	}

	#footer .row:last-child {
		margin-top: 50px;
	}

	#footer .copyright {
		margin-top: 65px;
	}

	.builder.tools .elements .item {
		width: 100%;
	}

}

/* extra small screens */

@media all and (max-width: 500px) {
	form .gform_body .gfield .ginput_container_fileupload {
		padding-top: 50px;
		height: 160px;
	}

	form .gform_body .gfield:not(.default-styling) {
		overflow: hidden;
	}

	.builder.links .elements {
		margin: 20px 0 0;
	}

	.builder.links .elements .link {
		width: 100%;
		margin: 0;
	}

	.builder.links .elements .link + .link {
		margin-top: 10px;
	}

    .builder.numbers2 .elements .number {
    }

	.builder.numbers2 .elements .number .block {
    	flex-direction: column;
    	align-items: flex-start;
	}

	.builder.numbers2 .elements .number .value {
		width: auto;
	}
}

@media all and (max-width: 400px) {

    #footer .subscribe form {
        width: 100%;
    }

    #footer .subscribe form input {
    	width: 100%;
    }

    #employees .list {
    	margin-left: 0;
    	margin-right: 0;
    }

	#employees .list .employee {
		width: 100%;
		margin: 0;
	}

	#employees .list .employee + .employee {
		margin-top: 20px;
	}

}