@font-face {
	font-family: "Museo";
	src: url("../fonts/Museo/ofont.ru_Museo Sans Cyrl 300.ttf") format("truetype");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Museo";
	src: url("../fonts/Museo/ofont.ru_Museo Sans Cyrl 500.ttf") format("truetype");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Asket";
	src: url("../fonts/Asket/Asket Extended Light.ttf") format("truetype");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

:root {
	--arch-black: #10100f;
	--arch-white: #f5f2ee;
	--arch-paper: #f4f0eb;
	--arch-beige: #d8d4cf;
	--arch-brown: #6f5846;
	--arch-muted: #7c7973;
	--arch-line: rgba(18, 18, 17, .22);
	--arch-dark-line: rgba(245, 242, 238, .28);
	--arch-serif: "Asket", Georgia, serif;
	--arch-sans: "Museo", Arial, sans-serif;
	--swiper-theme-color: var(--arch-brown);
}

body {
	background: var(--arch-white);
	color: var(--arch-black);
	font-family: var(--arch-sans);
	font-weight: 300;
	letter-spacing: 0;
}

body .arch-page,
body .arch-page *,
.arch-site-header,
.arch-site-header * {
	box-sizing: border-box;
}

.arch-page {
	width: 100%;
	overflow: hidden;
	background: var(--arch-white);
	color: var(--arch-black);
	font-family: var(--arch-sans);
	font-weight: 300;
}

.arch-page a,
.arch-site-header a,
.elementor-location-footer a,
.elementor[data-elementor-type="footer"] a {
	color: inherit;
	text-decoration: none;
}

.arch-page,
.arch-site-header,
.arch-footer,
.elementor-location-footer,
.elementor[data-elementor-type="footer"] {
	--e-global-color-primary: var(--arch-black);
	--e-global-color-secondary: var(--arch-muted);
	--e-global-color-text: var(--arch-black);
	--e-global-color-accent: var(--arch-brown);
	--e-global-color-astglobalcolor0: var(--arch-brown);
	--e-global-color-astglobalcolor1: var(--arch-black);
}

.arch-page .elementor-button,
.arch-page .elementor-button:visited,
.arch-page button,
.arch-page input[type="button"],
.arch-page input[type="submit"],
.arch-footer .elementor-button,
.arch-footer .elementor-button:visited,
.elementor-location-footer .elementor-button,
.elementor-location-footer .elementor-button:visited,
.elementor-location-footer button,
.elementor-location-footer input[type="button"],
.elementor-location-footer input[type="submit"],
.elementor[data-elementor-type="footer"] .elementor-button,
.elementor[data-elementor-type="footer"] .elementor-button:visited,
.elementor[data-elementor-type="footer"] button,
.elementor[data-elementor-type="footer"] input[type="button"],
.elementor[data-elementor-type="footer"] input[type="submit"],
.elementor-widget-arch_contacts .elementor-button,
.elementor-widget-arch_contacts .elementor-button:visited,
.elementor-widget-arch_contacts button,
.elementor-widget-arch_contacts input[type="button"],
.elementor-widget-arch_contacts input[type="submit"] {
	background-color: var(--arch-beige) !important;
	border-color: var(--arch-beige) !important;
	color: var(--arch-black) !important;
	box-shadow: none;
}

.arch-page .elementor-button:hover,
.arch-page .elementor-button:focus-visible,
.arch-page button:hover,
.arch-page button:focus-visible,
.arch-page input[type="button"]:hover,
.arch-page input[type="button"]:focus-visible,
.arch-page input[type="submit"]:hover,
.arch-page input[type="submit"]:focus-visible,
.arch-footer .elementor-button:hover,
.arch-footer .elementor-button:focus-visible,
.elementor-location-footer .elementor-button:hover,
.elementor-location-footer .elementor-button:focus-visible,
.elementor-location-footer button:hover,
.elementor-location-footer button:focus-visible,
.elementor-location-footer input[type="button"]:hover,
.elementor-location-footer input[type="button"]:focus-visible,
.elementor-location-footer input[type="submit"]:hover,
.elementor-location-footer input[type="submit"]:focus-visible,
.elementor[data-elementor-type="footer"] .elementor-button:hover,
.elementor[data-elementor-type="footer"] .elementor-button:focus-visible,
.elementor[data-elementor-type="footer"] button:hover,
.elementor[data-elementor-type="footer"] button:focus-visible,
.elementor[data-elementor-type="footer"] input[type="button"]:hover,
.elementor[data-elementor-type="footer"] input[type="button"]:focus-visible,
.elementor[data-elementor-type="footer"] input[type="submit"]:hover,
.elementor[data-elementor-type="footer"] input[type="submit"]:focus-visible,
.elementor-widget-arch_contacts .elementor-button:hover,
.elementor-widget-arch_contacts .elementor-button:focus-visible,
.elementor-widget-arch_contacts button:hover,
.elementor-widget-arch_contacts button:focus-visible,
.elementor-widget-arch_contacts input[type="button"]:hover,
.elementor-widget-arch_contacts input[type="button"]:focus-visible,
.elementor-widget-arch_contacts input[type="submit"]:hover,
.elementor-widget-arch_contacts input[type="submit"]:focus-visible {
	background-color: var(--arch-brown) !important;
	border-color: var(--arch-brown) !important;
	color: var(--arch-white) !important;
}

.arch-page :focus-visible,
.arch-site-header :focus-visible,
.arch-footer :focus-visible,
.elementor-location-footer :focus-visible,
.elementor[data-elementor-type="footer"] :focus-visible {
	outline: 1px solid var(--arch-beige);
	outline-offset: 3px;
}

.arch-site-header {
	position: absolute;
	z-index: 10;
	top: 0;
	left: 0;
	width: 100%;
	display: grid;
	grid-template-columns: minmax(140px, 220px) 1fr minmax(120px, 180px);
	align-items: start;
	gap: 24px;
	padding: 38px 48px 0;
	color: #fff;
	font-family: var(--arch-sans);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.arch-logo {
	display: inline-block;
	line-height: 0;
	letter-spacing: 0;
	color: #fff;
}

.arch-logo__image {
	display: block;
	width: clamp(150px, 13vw, 212px);
	max-width: 100%;
	height: auto;
}

.arch-site-header .custom-logo {
	width: auto;
	max-width: 150px;
	height: auto;
}

.arch-nav {
	display: flex;
	justify-content: center;
	gap: clamp(18px, 3.2vw, 54px);
	padding-top: 10px;
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	color: #fff;
	text-shadow:
		0 1px 2px rgba(0, 0, 0, .82),
		0 2px 5px rgba(0, 0, 0, .46);
}

.arch-nav ul {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: inherit;
	margin: 0;
	padding: 0;
	list-style: none;
}

.arch-nav a {
	position: relative;
	display: inline-block;
	padding-bottom: 8px;
	transition:
		transform .24s ease,
		opacity .24s ease,
		text-shadow .24s ease;
}

.arch-nav a:after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	opacity: .9;
	transform: translateX(-50%) scaleX(0);
	transform-origin: center;
	transition: transform .28s ease;
}

.arch-nav a:hover,
.arch-nav a:focus-visible {
	opacity: .96;
	transform: translateY(-2px);
	text-shadow:
		0 1px 2px rgba(0, 0, 0, .88),
		0 4px 9px rgba(0, 0, 0, .5);
}

.arch-nav a:hover:after,
.arch-nav a:focus-visible:after {
	transform: translateX(-50%) scaleX(1);
}

.arch-nav a:focus-visible {
	outline: 0;
}

.arch-menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	align-self: start;
	justify-self: end;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .42) !important;
	background: rgba(16, 16, 15, .72) !important;
	color: #fff !important;
	cursor: pointer;
	place-items: center;
	position: relative;
	box-shadow: 0 8px 22px rgba(0, 0, 0, .14);
}

.arch-menu-toggle:hover,
.arch-menu-toggle:focus,
.arch-menu-toggle:focus-visible,
.arch-site-header.is-menu-open .arch-menu-toggle {
	border-color: rgba(245, 242, 238, .7) !important;
	background: rgba(111, 88, 70, .9) !important;
	color: var(--arch-white) !important;
	outline: 1px solid rgba(245, 242, 238, .45);
	outline-offset: 3px;
}

.arch-menu-toggle span:not(.screen-reader-text) {
	position: absolute;
	left: 12px;
	width: 20px;
	height: 1px;
	background: currentColor;
	transition: transform .22s ease, opacity .18s ease, top .22s ease;
}

.arch-menu-toggle span:nth-child(2) {
	top: 14px;
}

.arch-menu-toggle span:nth-child(3) {
	top: 21px;
}

.arch-menu-toggle span:nth-child(4) {
	top: 28px;
}

.arch-site-header.is-menu-open .arch-menu-toggle span:nth-child(2) {
	top: 21px;
	transform: rotate(45deg);
}

.arch-site-header.is-menu-open .arch-menu-toggle span:nth-child(3) {
	opacity: 0;
}

.arch-site-header.is-menu-open .arch-menu-toggle span:nth-child(4) {
	top: 21px;
	transform: rotate(-45deg);
}

.arch-lang {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	padding-top: 10px;
	font-size: 15px;
	font-weight: 500;
	text-transform: uppercase;
	color: #fff;
	text-shadow:
		0 1px 2px rgba(0, 0, 0, .82),
		0 2px 5px rgba(0, 0, 0, .46);
}

.arch-lang span {
	color: currentColor;
	opacity: .52;
}

.arch-hero {
	position: relative;
	min-height: 835px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: #1b1916;
}

.arch-hero__side {
	position: relative;
	min-height: 835px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 0 40px 72px;
	background-position: center;
	background-size: cover;
	isolation: isolate;
}

.arch-hero__side:before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
}

.arch-hero__side--light:before {
	background: linear-gradient(180deg, rgba(245, 242, 238, .15), rgba(13, 11, 9, .42));
}

.arch-hero__side--dark {
	color: var(--arch-white);
}

.arch-hero__side--dark:before {
	background: linear-gradient(180deg, rgba(0, 0, 0, .34), rgba(0, 0, 0, .64));
}

.arch-hero__card {
	position: absolute;
	z-index: 4;
	top: 315px;
	left: 50%;
	width: min(282px, 80vw);
	min-height: 260px;
	transform: translateX(-50%);
	display: grid;
	align-content: center;
	justify-items: center;
	padding: 30px 24px;
	background: rgba(245, 242, 238, .94);
	color: var(--arch-black);
	text-align: center;
	box-shadow: 0 18px 50px rgba(0, 0, 0, .11);
}

.arch-hero__logo-image {
	display: block;
	width: min(178px, 62vw);
	height: auto;
}

.arch-hero__tagline {
	margin-top: 34px;
	max-width: 240px;
	font-size: 17px;
	line-height: 1.35;
	font-weight: 500;
	text-transform: uppercase;
}

.arch-project-link {
	text-align: center;
	color: var(--arch-white);
	text-transform: uppercase;
}

.arch-project-link__title {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(31px, 3vw, 40px);
	line-height: 1.18;
	letter-spacing: .04em;
}

.arch-project-link__line {
	width: 52px;
	height: 1px;
	margin: 22px auto 30px;
	background: currentColor;
	opacity: .75;
}

.arch-btn {
	display: inline-grid;
	place-items: center;
	min-width: 267px;
	min-height: 54px;
	padding: 0 30px;
	border: 1px solid currentColor;
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.arch-btn:hover {
	background: var(--arch-black);
	border-color: var(--arch-black);
	color: var(--arch-white);
}

.arch-btn--dark {
	min-width: 206px;
	background: var(--arch-black);
	color: var(--arch-white) !important;
}

.arch-btn--dark:hover {
	background: transparent;
	color: var(--arch-black);
}

.arch-section {
	padding: 80px clamp(28px, 10vw, 132px);
}

.arch-eyebrow {
	display: flex;
	align-items: center;
	gap: 28px;
	margin-bottom: 34px;
	font-size: 15px;
	font-weight: 500;
	text-transform: uppercase;
}

.arch-eyebrow:after {
	content: "";
	width: 96px;
	height: 1px;
	background: var(--arch-line);
}

.arch-about {
	display: grid;
	grid-template-columns: minmax(280px, 380px) minmax(420px, 1fr);
	gap: clamp(48px, 8vw, 110px);
	align-items: center;
	padding-top: 82px;
	padding-bottom: 72px;
}

.arch-about h1 {
	margin: 0 0 35px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(30px, 3.1vw, 43px);
	line-height: 1.18;
	font-weight: 400;
	letter-spacing: .035em;
	text-transform: uppercase;
}

.arch-about p {
	margin: 0 0 35px;
	max-width: 330px;
	color: #282725;
	font-size: 15px;
	line-height: 1.78;
	font-weight: 300;
}

.arch-about__image {
	min-height: 397px;
	background-position: center;
	background-size: cover;
}

.arch-clients {
	background: #ebe9e6;
	padding-top: 46px;
	padding-bottom: 48px;
}

.arch-clients__row {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	align-items: center;
	border-top: 0;
}

.arch-client {
	display: grid;
	place-items: center;
	min-height: 70px;
	border-left: 1px solid rgba(16, 16, 15, .15);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(24px, 3vw, 34px);
	line-height: 1;
	text-align: center;
}

.arch-client:first-child {
	border-left: 0;
}

.arch-client small {
	display: block;
	margin-top: 4px;
	font-family: var(--arch-sans);
	font-size: 7px;
	font-weight: 500;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.arch-footer {
	position: relative;
	display: grid;
	grid-template-columns: minmax(250px, 310px) 1fr minmax(350px, 438px);
	gap: clamp(34px, 7vw, 88px);
	padding-top: 56px;
	padding-bottom: 0;
	background: #090909;
	color: var(--arch-white);
}

.arch-footer .arch-eyebrow:after {
	background: var(--arch-dark-line);
}

.arch-contacts {
	display: grid;
	gap: 23px;
	margin-top: 35px;
	font-size: 14px;
	line-height: 1.4;
}

.arch-contact {
	display: grid;
	grid-template-columns: 18px 1fr;
	gap: 18px;
	align-items: center;
}

.arch-blueprint {
	align-self: center;
	min-height: 230px;
	opacity: .88;
	background: url("../images/footer/viarch-footer-schematic.png") center / contain no-repeat;
	filter: contrast(1.04);
}

.arch-form form {
	display: grid;
	gap: 13px;
}

.arch-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 13px;
}

.arch-form input,
.arch-form textarea {
	width: 100%;
	border: 1px solid rgba(245, 242, 238, .55);
	background: transparent;
	color: var(--arch-white);
	font: 300 15px var(--arch-sans);
	outline: 0;
}

.arch-form input {
	height: 42px;
	padding: 0 16px;
}

.arch-form textarea {
	min-height: 84px;
	resize: vertical;
	padding: 13px 16px;
}

.arch-form input::placeholder,
.arch-form textarea::placeholder {
	color: rgba(245, 242, 238, .72);
}

.arch-form .wpcf7-not-valid-tip,
.arch-footer .wpcf7-not-valid-tip,
.elementor-location-footer .wpcf7-not-valid-tip,
.elementor[data-elementor-type="footer"] .wpcf7-not-valid-tip {
	color: #d7c6b3;
}

.arch-form .wpcf7 form .wpcf7-response-output,
.arch-footer .wpcf7 form .wpcf7-response-output,
.elementor-location-footer .wpcf7 form .wpcf7-response-output,
.elementor[data-elementor-type="footer"] .wpcf7 form .wpcf7-response-output {
	border-color: var(--arch-brown);
	color: var(--arch-white);
}

.arch-submit,
.arch-form input[type="submit"],
.arch-form button[type="submit"] {
	height: 44px;
	border: 0;
	background: var(--arch-beige);
	color: var(--arch-black);
	font: 500 13px var(--arch-sans);
	text-transform: uppercase;
	cursor: pointer;
}

.arch-footer__bottom {
	grid-column: 1 / -1;
	display: flex;
	justify-content: space-between;
	gap: 24px;
	margin-top: 22px;
	padding: 20px 0 24px;
	border-top: 1px solid rgba(245, 242, 238, .18);
	font-size: 13px;
}

@media (max-width: 1300px) {
	.arch-site-header {
		grid-template-columns: minmax(130px, 190px) 1fr 44px;
		align-items: start;
		padding: 28px 32px 0;
	}

	.arch-menu-toggle {
		display: grid;
		grid-column: 3;
	}

	.arch-nav {
		position: absolute;
		top: calc(100% + 18px);
		right: 32px;
		width: min(330px, calc(100vw - 64px));
		display: block;
		padding: 18px 22px 20px;
		background: rgba(16, 16, 15, .9);
		border: 1px solid rgba(255, 255, 255, .16);
		box-shadow: 0 24px 60px rgba(0, 0, 0, .25);
		opacity: 0;
		pointer-events: none;
		transform: translateY(-8px);
		transition: opacity .2s ease, transform .2s ease;
	}

	.arch-site-header.is-menu-open .arch-nav {
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
	}

	.arch-nav ul {
		display: grid;
		gap: 0;
		justify-content: stretch;
	}

	.arch-nav li {
		border-top: 1px solid rgba(255, 255, 255, .14);
	}

	.arch-nav li:first-child {
		border-top: 0;
	}

	.arch-nav a {
		display: block;
		padding: 14px 0;
	}

	.arch-nav a:hover,
	.arch-nav a:focus-visible {
		transform: translateX(4px);
	}

	.arch-nav a:after {
		left: 0;
		width: 24px;
		transform: scaleX(0);
		transform-origin: left;
	}

	.arch-nav a:hover:after,
	.arch-nav a:focus-visible:after {
		transform: scaleX(1);
	}
}

@media (max-width: 980px) {
	.arch-hero {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.arch-hero__side {
		min-height: 520px;
		padding-bottom: 48px;
	}

	.arch-hero__card {
		top: 232px;
	}

	.arch-about,
	.arch-footer {
		grid-template-columns: 1fr;
	}

	.arch-about__image {
		min-height: 320px;
	}

	.arch-clients__row {
		grid-template-columns: repeat(2, 1fr);
	}

	.arch-client {
		border-top: 1px solid rgba(16, 16, 15, .15);
	}
}

@media (max-width: 620px) {
	.arch-lang {
		font-size: 12px;
	}

	.arch-logo__image {
		width: 138px;
	}

	.arch-hero__side {
		min-height: 430px;
		padding: 0 22px 34px;
	}

	.arch-hero__card {
		top: 175px;
		min-height: 210px;
	}

	.arch-hero__logo-image {
		width: 142px;
	}

	.arch-project-link__title {
		font-size: 25px;
	}

	.arch-btn {
		min-width: 220px;
	}

	.arch-section {
		padding-left: 22px;
		padding-right: 22px;
	}

	.arch-form__row,
	.arch-clients__row {
		grid-template-columns: 1fr;
	}

	.arch-client {
		border-left: 0;
	}

	.arch-footer__bottom {
		flex-direction: column;
	}
}

.arch-services-hero {
	position: relative;
	min-height: 420px;
	display: grid;
	place-items: center;
	overflow: hidden;
	background: #111;
	color: #fff;
	text-align: center;
}

.elementor-widget-arch_services_hero .arch-services-hero,
.elementor-widget-arch_services_catalog .arch-services-content,
.elementor-widget-arch_services_cta .arch-services-content,
.elementor-widget-arch_services_page .arch-page {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.elementor-widget-arch_services_hero,
.elementor-widget-arch_services_catalog,
.elementor-widget-arch_services_cta,
.elementor-widget-arch_services_page {
	margin: 0;
}

.elementor-widget-arch_services_hero .elementor-widget-container,
.elementor-widget-arch_services_catalog .elementor-widget-container,
.elementor-widget-arch_services_cta .elementor-widget-container,
.elementor-widget-arch_services_page .elementor-widget-container {
	overflow: visible;
}

.arch-services-hero:before,
.arch-services-hero:after {
	content: "";
	position: absolute;
	inset: 0;
}

.arch-services-hero:before {
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .34), rgba(0, 0, 0, .22), rgba(0, 0, 0, .62)),
		linear-gradient(90deg, rgba(245, 242, 238, .18) 0 50%, transparent 50% 100%),
		var(--arch-services-left-image) left center / 50% 100% no-repeat,
		var(--arch-services-right-image) right center / 50% 100% no-repeat;
}

.arch-services-hero:after {
	background: rgba(0, 0, 0, .18);
}

.arch-services-hero__content {
	position: relative;
	z-index: 2;
	margin-top: 74px;
}

.arch-services-hero h1 {
	margin: 0 0 18px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(54px, 7.4vw, 92px);
	line-height: .98;
	font-weight: 400;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.arch-services-hero p {
	max-width: 560px;
	margin: 0 auto;
	font-size: clamp(18px, 2vw, 25px);
	line-height: 1.45;
	font-weight: 300;
}

.arch-services-content {
	padding: 46px clamp(26px, 8vw, 132px) 0;
	background: var(--arch-white);
}

.arch-service-tabs,
.arch-service-group,
.arch-extra-services,
.arch-service-cta {
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
}

.arch-service-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 40px;
}

.arch-service-tab {
	position: relative;
	display: flex;
	align-items: center;
	gap: 26px;
	min-height: 104px;
	padding: 22px 44px;
	background: rgba(245, 242, 238, .72);
	border: 1px solid rgba(16, 16, 15, .06);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
	text-transform: uppercase;
}

.arch-service-tab.is-active:after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 86px;
	height: 4px;
	background: var(--arch-black);
	transform: translateX(-50%);
}

.arch-icon-disc {
	flex: 0 0 auto;
	width: 56px;
	height: 56px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, .68);
	color: var(--arch-black);
}

.arch-icon-disc svg {
	width: 29px;
	height: 29px;
	stroke: currentColor;
	stroke-width: 1.45;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.arch-service-group {
	margin-bottom: 38px;
}

.arch-service-heading {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 30px;
	margin-bottom: 28px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 20px;
	text-transform: uppercase;
}

.arch-service-heading:after {
	content: "";
	height: 1px;
	background: var(--arch-line);
}

.arch-service-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
}

.arch-service-card {
	min-height: 218px;
	display: grid;
	justify-items: center;
	align-content: center;
	padding: 28px 22px 26px;
	border: 1px solid rgba(16, 16, 15, .1);
	background: rgba(245, 242, 238, .36);
	text-align: center;
}

.arch-service-card h3 {
	margin: 20px 0 12px;
	font-size: 16px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
}

.arch-service-card p {
	max-width: 210px;
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
}

.arch-extra-services {
	margin-top: 8px;
	margin-bottom: 44px;
	padding: 22px 32px 34px;
	background: rgba(245, 242, 238, .72);
	border: 1px solid rgba(16, 16, 15, .05);
}

.arch-extra-services__title {
	display: flex;
	align-items: center;
	gap: 28px;
	margin-bottom: 30px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 16px;
	text-transform: uppercase;
}

.arch-extra-services__title:after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--arch-line);
}

.arch-extra-services__row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	align-items: center;
}

.arch-extra-service {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	min-height: 52px;
	border-left: 1px solid rgba(16, 16, 15, .12);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 15px;
	text-transform: uppercase;
}

.arch-extra-service:first-child {
	border-left: 0;
}

.arch-services-content--cta {
	padding-top: 0;
	padding-bottom: 56px;
}

.arch-service-cta {
	display: grid;
	grid-template-columns: minmax(270px, 360px) 1fr;
	gap: clamp(34px, 7vw, 92px);
	align-items: center;
}

.arch-service-cta h2 {
	margin: 0 0 12px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 26px;
	line-height: 1.18;
	font-weight: 400;
	text-transform: uppercase;
}

.arch-service-cta__line {
	width: 18px;
	height: 1px;
	margin-bottom: 18px;
	background: var(--arch-black);
}

.arch-service-cta p {
	margin: 0 0 26px;
	font-size: 15px;
	line-height: 1.55;
}

.arch-service-cta__image {
	min-height: 260px;
	background-position: center;
	background-size: cover;
}

@media (max-width: 980px) {
	.arch-services-hero {
		min-height: 460px;
	}

	.arch-service-tabs,
	.arch-service-grid,
	.arch-extra-services__row,
	.arch-service-cta {
		grid-template-columns: 1fr;
	}

	.arch-extra-service {
		border-left: 0;
		border-top: 1px solid rgba(16, 16, 15, .12);
	}

	.arch-extra-service:first-child {
		border-top: 0;
	}
}

@media (max-width: 620px) {
	.arch-services-hero {
		min-height: 410px;
	}

	.arch-services-hero:before {
		background:
			linear-gradient(180deg, rgba(0, 0, 0, .46), rgba(0, 0, 0, .54)),
			var(--arch-services-left-image) center / cover;
	}

	.arch-services-content {
		padding-left: 22px;
		padding-right: 22px;
	}

	.arch-service-tab {
		padding: 20px 24px;
		font-size: 15px;
	}
}

.arch-site-header--gallery {
	position: relative;
	left: 0;
	width: 100%;
	max-width: none;
	grid-template-columns: minmax(140px, 220px) 1fr minmax(120px, 180px);
	align-items: start;
	gap: 24px;
	margin: 0;
	padding: 38px 48px 22px;
	color: var(--arch-black);
	border-bottom: 1px solid rgba(16, 16, 15, .18);
}

.arch-site-header--gallery .arch-logo {
	color: var(--arch-black);
}

.arch-site-header--gallery .arch-logo__image {
	width: clamp(150px, 13vw, 212px);
	filter: none;
}

.arch-site-header--gallery .arch-nav,
.arch-site-header--gallery .arch-lang {
	justify-content: center;
	gap: clamp(18px, 3.2vw, 54px);
	padding-top: 10px;
	color: var(--arch-black);
	text-shadow: none;
}

.arch-site-header--gallery .arch-nav ul {
	justify-content: center;
	gap: inherit;
}

.arch-site-header--gallery .arch-nav a,
.arch-site-header--gallery .arch-lang a {
	text-shadow: none;
}

.arch-site-header--gallery .arch-nav a:hover,
.arch-site-header--gallery .arch-nav a:focus-visible {
	text-shadow: none;
}

.arch-site-header--gallery .arch-menu-toggle {
	border-color: rgba(16, 16, 15, .38) !important;
	background: rgba(245, 242, 238, .74) !important;
	color: var(--arch-black) !important;
}

.arch-site-header--gallery .arch-menu-toggle:hover,
.arch-site-header--gallery .arch-menu-toggle:focus,
.arch-site-header--gallery .arch-menu-toggle:focus-visible,
.arch-site-header--gallery.is-menu-open .arch-menu-toggle {
	border-color: var(--arch-brown) !important;
	background: var(--arch-brown) !important;
	color: var(--arch-white) !important;
}

@media (max-width: 1300px) {
	.arch-site-header--gallery {
		grid-template-columns: minmax(130px, 190px) 1fr 44px;
		padding: 28px 32px 22px;
	}

	.arch-site-header--gallery .arch-nav {
		justify-content: initial;
		gap: clamp(18px, 3.2vw, 54px);
		color: #fff;
		text-shadow:
			0 1px 2px rgba(0, 0, 0, .82),
			0 2px 5px rgba(0, 0, 0, .46);
	}

	.arch-site-header--gallery .arch-nav ul {
		justify-content: stretch;
		gap: 0;
	}

	.arch-site-header--gallery .arch-nav a:hover,
	.arch-site-header--gallery .arch-nav a:focus-visible {
		text-shadow:
			0 1px 2px rgba(0, 0, 0, .88),
			0 4px 9px rgba(0, 0, 0, .5);
	}
}

.arch-gallery-page {
	background:
		radial-gradient(circle at 8% 4%, rgba(111, 88, 70, .08), transparent 26%),
		var(--arch-white);
}

.arch-gallery-hero,
.arch-gallery-section,
.arch-gallery-cta {
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
}

.arch-gallery-hero {
	display: grid;
	grid-template-columns: 86px minmax(0, 1fr);
	gap: 30px;
	align-items: start;
	padding: 34px clamp(28px, 7vw, 72px) 42px;
}

.arch-gallery-hero__rule {
	height: 1px;
	margin-top: 26px;
	background: rgba(16, 16, 15, .22);
}

.arch-gallery-hero h1 {
	margin: 0 0 18px;
	font: 300 clamp(40px, 5vw, 66px) / .95 var(--arch-serif);
	text-transform: uppercase;
}

.arch-gallery-hero p {
	max-width: 440px;
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: #4a463f;
}

.arch-gallery-section {
	padding: 0 clamp(28px, 7vw, 72px) 54px;
}

.arch-gallery-space-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-bottom: 36px;
	border: 1px solid rgba(16, 16, 15, .34);
}

.arch-gallery-space-tabs button,
.arch-gallery-filters button {
	border: 0;
	border-radius: 0;
	background: transparent !important;
	background-color: transparent !important;
	color: var(--arch-black) !important;
	font: 500 14px var(--arch-sans);
	text-transform: uppercase;
	letter-spacing: .02em;
	cursor: pointer;
}

.arch-gallery-space-tabs button {
	min-height: 54px;
	padding: 0 22px;
	border-left: 1px solid rgba(16, 16, 15, .28);
}

.arch-gallery-space-tabs button:first-child {
	border-left: 0;
}

.arch-gallery-space-tabs button.is-active {
	background: var(--arch-black) !important;
	background-color: var(--arch-black) !important;
	color: var(--arch-white) !important;
}

.arch-gallery-space-tabs button:not(.is-active):hover,
.arch-gallery-space-tabs button:not(.is-active):focus-visible {
	background: rgba(216, 212, 207, .5) !important;
	background-color: rgba(216, 212, 207, .5) !important;
	color: var(--arch-black) !important;
}

.arch-gallery-filters button:hover,
.arch-gallery-filters button:focus-visible,
.arch-gallery-filters button.is-active {
	background: transparent !important;
	background-color: transparent !important;
	color: var(--arch-black) !important;
}

.arch-gallery-toolbar {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 24px;
	align-items: start;
	margin-bottom: 34px;
	padding-top: 24px;
	border-top: 1px solid rgba(16, 16, 15, .18);
}

.arch-gallery-filters {
	display: flex;
	gap: clamp(24px, 5vw, 76px);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.arch-gallery-filters::-webkit-scrollbar {
	display: none;
}

.arch-gallery-filters button {
	position: relative;
	flex: 0 0 auto;
	padding: 0 0 15px;
}

.arch-gallery-filters button:after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--arch-black);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s ease;
}

.arch-gallery-filters button.is-active:after,
.arch-gallery-filters button:hover:after,
.arch-gallery-filters button:focus-visible:after {
	transform: scaleX(1);
}

.arch-gallery-sort select {
	min-width: 158px;
	border: 0;
	border-bottom: 1px solid rgba(16, 16, 15, .5);
	border-radius: 0;
	background: transparent;
	color: var(--arch-black);
	font: 300 14px var(--arch-sans);
	outline: 0;
	padding: 0 26px 10px 0;
}

.arch-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px;
}

.arch-gallery-card {
	background: rgba(255, 255, 255, .28);
	box-shadow: 0 18px 40px rgba(16, 16, 15, .04);
	transition: opacity .2s ease, transform .2s ease;
}

.arch-gallery-card[hidden] {
	display: none;
}

.arch-gallery-card__image {
	display: block;
	aspect-ratio: 1.48 / 1;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.arch-gallery-card__body {
	padding: 19px 18px 20px;
}

.arch-gallery-card h2 {
	margin: 0 0 18px;
	font: 300 clamp(20px, 2vw, 28px) / 1.08 var(--arch-serif);
}

.arch-gallery-card__meta {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	color: #5b574f;
	font-size: 13px;
}

.arch-gallery-card__meta span + span {
	padding-left: 16px;
	border-left: 1px solid rgba(16, 16, 15, .2);
}

.arch-gallery-modal-open {
	overflow: hidden;
}

.arch-gallery-modal[hidden] {
	display: none;
}

.arch-gallery-modal {
	position: fixed;
	z-index: 99999;
	inset: 0;
	display: grid;
	place-items: center;
	padding: clamp(16px, 3vw, 38px);
	background: rgba(9, 9, 9, .88);
	backdrop-filter: blur(8px);
}

.arch-gallery-modal__panel {
	position: relative;
	width: min(1180px, 100%);
	max-height: min(820px, 94vh);
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	gap: 16px;
	padding: clamp(18px, 2vw, 28px);
	background: #10100f;
	color: var(--arch-white);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .38);
}

.arch-gallery-modal__header {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding-right: 48px;
	font-size: 14px;
	text-transform: uppercase;
}

.arch-gallery-modal__title {
	font: 300 clamp(20px, 2.2vw, 32px) / 1.1 var(--arch-serif);
	text-transform: none;
}

.arch-gallery-modal__count {
	color: rgba(245, 242, 238, .72);
	white-space: nowrap;
}

.arch-gallery-modal__close,
.arch-gallery-modal__arrow,
.arch-gallery-modal__thumb {
	border: 0;
	background: transparent !important;
	background-color: transparent !important;
	color: var(--arch-white) !important;
	cursor: pointer;
}

.arch-gallery-modal__close {
	position: absolute;
	top: 18px;
	right: 18px;
	width: 34px;
	height: 34px;
}

.arch-gallery-modal__close:before,
.arch-gallery-modal__close:after {
	content: "";
	position: absolute;
	top: 16px;
	left: 8px;
	width: 18px;
	height: 1px;
	background: currentColor;
}

.arch-gallery-modal__close:before {
	transform: rotate(45deg);
}

.arch-gallery-modal__close:after {
	transform: rotate(-45deg);
}

.arch-gallery-modal__stage {
	min-height: 0;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) 44px;
	gap: 14px;
	align-items: center;
}

.arch-gallery-modal__track {
	min-height: 0;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.arch-gallery-modal__track::-webkit-scrollbar {
	display: none;
}

.arch-gallery-modal__slide {
	min-width: 0;
	height: min(62vh, 610px);
	display: grid;
	place-items: center;
	scroll-snap-align: center;
	opacity: .35;
	transition: opacity .18s ease;
}

.arch-gallery-modal__slide.is-active {
	opacity: 1;
}

.arch-gallery-modal__slide img {
	max-width: 100%;
	max-height: 100%;
	display: block;
	object-fit: contain;
}

.arch-gallery-modal__arrow {
	position: relative;
	width: 44px;
	height: 58px;
}

.arch-gallery-modal__arrow:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 15px;
	height: 15px;
	border-top: 1px solid currentColor;
	border-left: 1px solid currentColor;
}

.arch-gallery-modal__arrow--prev:before {
	transform: translate(-35%, -50%) rotate(-45deg);
}

.arch-gallery-modal__arrow--next:before {
	transform: translate(-65%, -50%) rotate(135deg);
}

.arch-gallery-modal__thumbs {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding-bottom: 2px;
	scrollbar-width: none;
}

.arch-gallery-modal__thumbs::-webkit-scrollbar {
	display: none;
}

.arch-gallery-modal__thumb {
	flex: 0 0 74px;
	height: 54px;
	background-position: center !important;
	background-size: cover !important;
	opacity: .45;
	border: 1px solid rgba(245, 242, 238, .2);
	transition: opacity .18s ease, border-color .18s ease;
}

.arch-gallery-modal__thumb.is-active {
	opacity: 1;
	border-color: var(--arch-beige);
}

.arch-gallery-cta {
	display: grid;
	grid-template-columns: minmax(260px, 1fr) minmax(240px, 420px);
	gap: 36px;
	align-items: center;
	margin-bottom: 0;
	padding: 32px clamp(28px, 7vw, 72px);
	background: rgba(235, 233, 230, .78);
}

.arch-gallery-cta h2 {
	margin: 0 0 8px;
	font: 300 clamp(28px, 3vw, 42px) / 1.1 var(--arch-serif);
}

.arch-gallery-cta p {
	margin: 0;
	font-size: 15px;
	color: #4a463f;
}

.arch-gallery-cta .arch-btn {
	justify-self: end;
	width: min(100%, 360px);
}

.elementor-widget-arch_gallery_hero .arch-gallery-hero,
.elementor-widget-arch_gallery_grid .arch-gallery-section,
.elementor-widget-arch_gallery_cta .arch-gallery-cta,
.elementor-widget-arch_gallery_page .arch-gallery-page {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.elementor-widget-arch_gallery_hero,
.elementor-widget-arch_gallery_grid,
.elementor-widget-arch_gallery_cta,
.elementor-widget-arch_gallery_page {
	margin: 0;
}

@media (max-width: 980px) {
	.arch-gallery-hero {
		grid-template-columns: 1fr;
		gap: 18px;
		padding-top: 28px;
	}

	.arch-gallery-hero__rule {
		width: 72px;
		margin-top: 0;
	}

	.arch-gallery-space-tabs {
		grid-template-columns: 1fr;
	}

	.arch-gallery-space-tabs button {
		border-left: 0;
		border-top: 1px solid rgba(16, 16, 15, .18);
	}

	.arch-gallery-space-tabs button:first-child {
		border-top: 0;
	}

	.arch-gallery-toolbar {
		grid-template-columns: 1fr;
	}

	.arch-gallery-sort {
		justify-self: start;
	}

	.arch-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}

	.arch-gallery-cta {
		grid-template-columns: 1fr;
	}

	.arch-gallery-cta .arch-btn {
		justify-self: start;
	}
}

@media (max-width: 620px) {
	.arch-site-header--gallery {
		width: 100%;
		padding-top: 28px;
		padding-bottom: 16px;
	}

	.arch-gallery-hero,
	.arch-gallery-section,
	.arch-gallery-cta {
		padding-left: 22px;
		padding-right: 22px;
	}

	.arch-gallery-hero h1 {
		font-size: 42px;
	}

	.arch-gallery-space-tabs button {
		min-height: 50px;
		font-size: 12px;
	}

	.arch-gallery-grid {
		grid-template-columns: 1fr;
	}

	.arch-gallery-card__image {
		aspect-ratio: 1.25 / 1;
	}

	.arch-gallery-card__meta {
		font-size: 12px;
	}

	.arch-gallery-modal {
		padding: 0;
	}

	.arch-gallery-modal__panel {
		width: 100%;
		min-height: 100vh;
		max-height: none;
		padding: 18px 16px 22px;
	}

	.arch-gallery-modal__stage {
		grid-template-columns: 1fr;
	}

	.arch-gallery-modal__arrow {
		display: none;
	}

	.arch-gallery-modal__slide {
		height: 62vh;
	}

	.arch-gallery-modal__thumb {
		flex-basis: 64px;
		height: 48px;
	}
}
