:root {
  --bs-body-font-family: "Inter", sans-serif;
  --bs-font-family-title: "Montserrat", sans-serif;
  --color-primary: #6a884d;
  --color-primary-hover: #57723e;
  --color-graphite: #424242;
  --color-light-gray: #c7c7c7;
  --color-bg-light: #f7f7f5;
  --color-white: #ffffff;
  --color-text-subtle: #666666;
  --color-border: #e2e2df;
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
  --border-radius: 4px;
  --box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  --box-shadow-hover: 0 10px 30px rgba(0, 0, 0, 0.1);
  --bs-link-color: var(--color-graphite);
  --bs-link-hover-color: var(--color-primary);
  --bs-body-bg: var(--color-bg-light);
  --bs-body-color: var(--color-graphite);
  --bs-padding-region: 96px 0;
  --bs-padding-region-contact: 96px 0 48px;
  --bs-body-font-size: 14px;
  --bs-table-border-color: #e2e2df;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--bs-font-family-title);
  color: var(--color-graphite);
  font-weight: 700;
  line-height: 1.25;
}
.h1,
h1 {
  line-height: 1.15;
}
a {
  color: inherit;
  text-decoration: none;
}
.btn {
  --bs-btn-font-family: var(--bs-font-family-title);
  --bs-btn-font-size: 0.9375rem;
  --bs-btn-font-weight: 600;
  border-radius: var(--border-radius);
  transition:
    color 0.15s ease-in-out,
    background-color 0.15s ease-in-out,
    border-color 0.15s ease-in-out,
    box-shadow 0.15s ease-in-out;
  --bs-btn-padding-x: 28px;
  --bs-btn-padding-y: 15.75px;
}
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--color-primary);
  --bs-btn-border-color: var(--color-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--color-primary-hover);
  --bs-btn-hover-border-color: var(--color-primary-hover);
  --bs-btn-focus-shadow-rgb: 49, 132, 253;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--color-primary-hover);
  --bs-btn-active-border-color: var(--color-primary-hover);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--color-primary-hover);
  --bs-btn-disabled-border-color: var(--color-primary-hover);
}
.bg-beige {
  background-color: #efefeb;
}
.table {
  --bs-table-color: var(--color-graphite);
  margin-bottom: 0;
  --bs-table-bg: var(--color-white);
}
.product-view-full table.table tr td:first-child {
  color: var(--color-text-subtle);
  font-weight: 500;
}
.product-view-full table.table tr td:not(:first-child) {
  font-weight: 700;
}
.product-view-full tr:nth-child(2n) td {
  background-color: #fafaf8;
}
.product-view-full table.table tr td {
  font-size: 0.9375rem;
  padding: 16px 24px;
}
.container,
.container-lg,
.container-md,
.container-sm,
.container-xl,
.container-xxl {
  max-width: 1240px;
  padding: 0 20px;
}
@keyframes portfolio-pulse {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 170, 0, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(255, 170, 0, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 170, 0, 0);
  }
}
.front .h1,
.front h1 {
  font-size: 3rem;
}
.h2,
h2 {
  font-size: 2.25rem;
}
.h3,
h3 {
  font-size: 1.25rem;
}
.h4,
h4 {
  font-size: 1.2rem;
}
/* header */
header#header .container > .d-flex {
  gap: clamp(12px, 1.6vw, 28px);
}
header .logo {
  max-width: 86px;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
header .logo:hover {
  transform: scale(1.02);
}
header .col-contacts {
  align-items: center;
  gap: clamp(10px, 1.2vw, 18px);
  flex-shrink: 0;
}
header#header {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 500;
  background-color: rgba(247, 247, 245, 0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--color-border, #e5e5e5);
  padding: 8px 0;
}
header a.nav-link {
  padding: 10px 2px;
  letter-spacing: -0.01em;
  transition: color var(--transition-fast, 0.2s ease);
  font-family: var(--bs-font-family-title, sans-serif);
  font-size: clamp(0.84rem, 0.92vw, 0.9375rem);
  font-weight: 600;
}
header a.nav-link.is-active {
  color: var(--color-primary);
}
header ul.nav {
  gap: 0 clamp(10px, 1.2vw, 22px);
}
header .contact-item {
  gap: 6px;
  font-family: var(--bs-font-family-title, sans-serif);
  font-weight: 700;
  font-size: clamp(0.875rem, 0.95vw, 1rem);
  color: var(--color-graphite, #222);
  white-space: nowrap;
}
header .contact-item svg {
  width: 20px;
  fill: var(--color-graphite, #222);
}
header .contact-item:hover {
  color: var(--color-primary);
}
header .contact-item:hover svg {
  fill: var(--color-primary);
}
.col-callback a {
  padding: 10px clamp(14px, 1.3vw, 22px);
  font-size: clamp(0.8125rem, 0.88vw, 0.9375rem);
  white-space: nowrap;
}
/* end header */

/* slider */
.node--type-slide {
  position: relative;
  padding: 80px 0;
  min-height: 640px;
  display: flex;
  align-items: center;
}
.node--type-slide .field--name-field-image {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.node--type-slide .field--name-field-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.node--type-slide .field--name-field-image:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    90deg,
    rgba(30, 30, 30, 0.85) 0%,
    rgba(30, 30, 30, 0.4) 100%
  );
  z-index: 1;
}
.field--name-field-slide-title p {
  background-color: rgba(255, 255, 255, 0.2);
  color: var(--color-white);
  backdrop-filter: blur(4px);
  margin-bottom: 20px;
  display: inline-block;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}
.node--type-slide .field--name-node-title h1 {
  color: var(--color-white);
  margin-bottom: 20px;
}
.node--type-slide .content .field--name-body {
  font-size: 1.25rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 36px;
  font-weight: 400;
}
.node--type-slide .content .field--name-body p:last-child {
  margin: 0;
}
.field--name-field-slide-link {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 48px;
}
.field--name-field-slide-link a {
  display: block;
  padding: 18px 36px;
  font-size: 1.0625rem;
  align-items: center;
  justify-content: center;
  font-family: var(--bs-font-family-title);
  font-weight: 600;
  border-radius: var(--border-radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition-fast);
}
.field--name-field-slide-link .field__item:first-child a {
  background-color: var(--color-primary);
  color: var(--color-white);
}
.field--name-field-slide-link .field__item:first-child a:hover {
  background-color: var(--color-primary-hover);
}
.field--name-field-slide-link .field__item:nth-child(2) a {
  background-color: transparent;
  border-color: var(--color-white);
  color: var(--color-white);
}
.field--name-field-slide-link .field__item:nth-child(2) a:hover {
  background-color: var(--color-white);
  color: var(--color-graphite);
}
.node--type-slide .field--name-field-benefits-list {
  display: flex;
  gap: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: 24px;
  flex-wrap: wrap;
}
.node--type-slide .field--name-field-benefits-list .paragraph--type-benefits {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9375rem;
  color: rgba(255, 255, 255, 0.9);
}
/* end slider */

/* benefits */
.benefits-block {
  padding: var(--bs-padding-region);
}
.field--name-field-small-title {
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary);
  margin-bottom: 8px;
}
.field--name-block-title h2 {
  margin-bottom: 12px;
}
.block-content--type-benefits-block .field--name-body {
  font-size: 1.125rem;
  color: var(--color-text-subtle);
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}
.block-content--type-benefits-block .field--name-block-title,
div#block-vesta-theme-benefits-block2 .field--name-field-small-title,
div#block-vesta-theme-benefits-block .field--name-field-small-title {
  text-align: center;
}
.benefits-block .field--name-field-benefits-block {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.benefits-block .paragraph--type-benefits,
.field--name-field-about-project-info .paragraph--type-benefits {
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  padding: 32px 24px;
  border-radius: var(--border-radius);
  transition: all var(--transition-normal);
  height: 100%;
}
.benefits-block .field--name-field-benefits-img {
  width: 56px;
  height: 56px;
  background-color: rgba(106, 136, 77, 0.1);
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}
.benefits-block .field--name-field-benefits-title {
  font-family: var(--bs-font-family-title);
  color: var(--color-graphite);
  font-weight: 700;
  line-height: 1.25;
  font-size: 1.25rem;
  margin-bottom: 12px;
}
.benefits-block .field--name-field-benefits-img img {
  width: 32px;
}
.benefits-block .field--name-field-benefits-body {
  color: var(--color-text-subtle);
  font-size: 0.9375rem;
}
.benefits-block .field--name-field-benefits-body p:last-child {
  margin: 0;
}
.benefits-block .paragraph--type-benefits:hover,
.field--name-field-about-project-info .paragraph--type-benefits:hover {
  transform: translateY(-4px);
  box-shadow: var(--box-shadow-hover);
  border-color: var(--color-primary);
}
/* end benefits */

/* benefits-2 */
.benefits2-block {
  padding: var(--bs-padding-region);
}
.benefits2-block .field--name-field-benefits-img {
  width: 36px;
  margin-bottom: 16px;
}
.benefits2-block .paragraph--type-benefits {
  background-color: var(--color-white);
  padding: 32px 28px;
  border-radius: var(--border-radius);
  border: 1px solid var(--color-border);
  height: 100%;
}
.benefits2-block .field--name-field-benefits-block {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.benefits2-block .field--name-field-benefits-title {
  font-size: 1.125rem;
  margin-bottom: 10px;
  font-family: var(--bs-font-family-title);
  font-weight: 700;
  line-height: 1.25;
}
.benefits2-block .field--name-field-benefits-body {
  font-size: 0.9375rem;
  color: var(--color-text-subtle);
}
.benefits2-block .field--name-field-benefits-body p:last-child {
  margin: 0;
}
/* end benefits-2 */

/* engineering */
.engineering-block {
  padding: var(--bs-padding-region);
}
.node--type-engineering.node--view-mode-teaser {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.field--name-field-engineering-short-body {
  font-size: 1.125rem;
  color: var(--color-graphite);
  margin-bottom: 28px;
}
.node--type-engineering.node--view-mode-teaser .paragraph--type-benefits {
  display: flex;
  gap: 16px;
}
.field--name-field-benefits-img {
  flex-shrink: 0;
}
.node--type-engineering.node--view-mode-teaser .field--name-field-benefits-img {
  width: 28px;
}
.field--name-field-benefits-img img {
  width: 100%;
}
.node--type-engineering.node--view-mode-teaser
  .field--name-field-benefits-title {
  font-weight: 700;
}
.field--name-field-engineering-img-teaser {
  height: 480px;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--box-shadow);
}
.field--name-field-engineering-img-teaser img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.froup-right {
  height: max-content;
  position: relative;
}
.field--name-field-text-img-teaser {
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(6px);
  padding: 20px 24px;
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  font-size: 0.875rem;
  color: var(--color-graphite);
  font-weight: 500;
}
p:has(strong) {
  display: block;
  font-family: var(--bs-font-family-title);
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: 4px;
}
.field--name-field-text-img-teaser p:last-child {
  margin: 0;
}
.field--name-field-tehnologiya .field--name-field-small-title {
  background-color: #edf1e9;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 7px;
  margin: 0;
  width: max-content;
  border-radius: 4px;
}
.field--name-field-tehnologiya .field--name-field-small-title:before {
  content: "";
  width: 15px;
  height: 15px;
  background: url(/sites/all/themes/vesta_theme/image/factory.svg) no-repeat
    center;
  background-size: contain;
  flex-shrink: 0;
}
.technology-mark {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 25px;
}
.field--name-field-technology-mark {
  background-color: var(--color-bg-light);
  padding: 5px;
  border: 1px solid #e2e2df;
  font-weight: 600;
  border-radius: var(--border-radius);
}
.horizontal-tabs-panes {
  background-color: #fff;
  border-radius: var(--border-radius, 8px);
  overflow: hidden;
  border: 1px solid var(--color-border, #e5e7eb);
  box-shadow: var(--box-shadow, 0 4px 12px rgba(0, 0, 0, 0.05));
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  padding: 44px;
  margin-bottom: 56px;
}
.horizontal-tabs-panes .horizontal-tabs-pane {
  padding: 0;
}
.card-body {
  padding: 0;
}
.horizontal-tabs .horizontal-tabs-list {
  display: flex;
  justify-content: center;
  margin-bottom: 33px;
}
.horizontal-tabs ul.horizontal-tabs-list li a {
  display: flex;
  align-items: center;
  gap: 8px;
  background-color: transparent;
  border: none;
  padding: 15px;
}
.horizontal-tab-button.selected {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  overflow: hidden;
}
.horizontal-tabs ul.horizontal-tabs-list li.selected a {
  background-color: #fff;
  padding: 15px;
  border-bottom: 2px solid var(--color-primary);
  color: var(--color-primary);
  display: flex;
}
.horizontal-tabs .horizontal-tab-button {
  background: transparent;
  border-right: none;
}
.horizontal-tabs ul.horizontal-tabs-list li a:before {
  content: "";
  width: 15px;
  height: 15px;
  display: block;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  filter: brightness(0.5);
  flex-shrink: 0;
}
.horizontal-tabs ul.horizontal-tabs-list li a:hover:before,
.horizontal-tabs ul.horizontal-tabs-list li.selected a:before {
  filter: brightness(1);
}
.horizontal-tabs ul.horizontal-tabs-list li:first-child a:before {
  background-image: url(/sites/all/themes/vesta_theme/image/factory.svg);
}
.horizontal-tabs ul.horizontal-tabs-list li:nth-child(2) a:before {
  background-image: url(/sites/all/themes/vesta_theme/image/foundation.svg);
}
.horizontal-tabs ul.horizontal-tabs-list li:nth-child(3) a:before {
  background-image: url(/sites/all/themes/vesta_theme/image/square_foot.svg);
}
.horizontal-tabs ul.horizontal-tabs-list li:nth-child(4) a:before {
  background-image: url(/sites/all/themes/vesta_theme/image/house.svg);
}
.horizontal-tabs ul.horizontal-tabs-list li:nth-child(5) a:before {
  background-image: url(/sites/all/themes/vesta_theme/image/shield.svg);
}
.horizontal-tabs .horizontal-tabs-list {
  background-color: transparent;
  border-color: #e2e2df;
  flex-wrap: wrap;
}
.horizontal-tabs {
  border: none;
}
.horizontal-tabs .horizontal-tab-button a:hover {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  color: var(--color-primary);
  overflow: hidden;
}
.field--name-field-technology-body {
  font-size: 0.875rem;
  color: var(--color-text-subtle, #666666);
}
.field--name-field-technique-img-title {
  font-weight: 700;
  font-size: 1rem;
}
.field--name-field-technology-img-body {
  font-size: 12px;
  color: var(--color-text-subtle, #666666);
}
.technology-img-info:before {
  content: "";
  width: 40px;
  height: 40px;
  display: block;
  background-image: url(/sites/all/themes/vesta_theme/image/layers.svg);
  background-size: 20px;
  background-position: center;
  background-repeat: no-repeat;
  grid-row: span 2;
}
.technology-img-info {
  display: grid;
  grid-template-columns: 40px auto;
  column-gap: 8px;
  margin-bottom: 22px;
}
.field--name-field-technology-img {
  border-radius: 8px;
  overflow: hidden;
}
.field--name-field-technology-img img {
  width: 100%;
  height: auto;
}
.technology-img-block {
  padding: 28px 24px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background-color: #fcfdf9;
  margin-bottom: 36px;
}
.field--name-field-technology-body-2 {
  color: var(--color-text-subtle, #666666);
}
.field--name-field-technology-body-2 blockquote {
  background-color: var(--color-bg-light);
  padding: 30px;
  border-radius: 10px;
  border: 1px solid var(--color-border);
  color: var(--color-graphite);
  margin: 0;
}
.field--name-field-technology-title-2 {
  padding-top: 36px;
  border-top: 1px solid var(--color-border);
}
div#block-vesta-theme-tekhnologiyastroitelstvazagorodnykhdomovizzhbi {
  text-align: center;
  max-width: 860px;
  margin: 60px auto 40px;
}
div#block-vesta-theme-tekhnologiyastroitelstvazagorodnykhdomovizzhbi
  .field--name-body {
  max-width: 650px;
  margin: auto;
  color: var(--color-text-subtle, #666666);
}
div#block-vesta-theme-tekhnologiyastroitelstvazagorodnykhdomovizzhbi
  .field--name-field-small-title {
  background-color: #dfe3d7;
  width: max-content;
  margin: 0 auto 20px;
  padding: 5px 10px;
  border-radius: 14px;
}
/* end engineering */

/* about */
.about-block {
  padding: var(--bs-padding-region);
}
.node--type-about.node--view-mode-teaser {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 56px;
  align-items: center;
}
.node--type-about.node--view-mode-teaser.clearfix::after {
  display: none;
}
.about-left {
  height: max-content;
  position: relative;
}
.field--name-field-img-teaser-about {
  width: 100%;
  height: 540px;
  border-radius: var(--border-radius, 16px);
  overflow: hidden;
}
.field--name-field-img-teaser-about img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.plate1 {
  position: absolute;
  top: 24px;
  right: 24px;
  background: #ffffff;
  padding: 12px 18px;
  border-radius: 30px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
}
.field--name-field-plate1-value {
  font-family: var(--bs-font-family-title, inherit);
  font-weight: 800;
  font-size: 0.9375rem;
  color: var(--color-primary);
  background: rgba(224, 90, 30, 0.1);
  padding: 4px 10px;
  border-radius: 20px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.field--name-field-plate1-title {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-graphite, #222);
}

.field--name-field-plate2-img {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background-color: var(--color-primary);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.plate2 {
  position: absolute;
  bottom: 24px;
  left: 24px;
  background: rgba(34, 34, 34, 0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #ffffff;
  padding: 18px 24px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.1);
  max-width: calc(100% - 48px);
}
.field--name-field-plate2-title {
  font-family: var(--bs-font-family-title, inherit);
  font-size: 1.125rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.2;
}
.field--name-field-plate-2-text {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.75);
}
.field--name-field-short-body-about p {
  font-size: 1.0625rem;
  line-height: 1.6;
  font-weight: 500;
  color: var(--color-graphite, #333);
  margin-bottom: 12px;
}
.field--name-field-short-body-about p:nth-child(2n) {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-text-subtle, #666);
  margin-bottom: 24px;
}
.about-right .field--name-field-benefits-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-graphite, #222);
  margin: 0;
}
.about-right .field--name-field-benefits-body {
  font-size: 0.84375rem;
  color: var(--color-text-subtle, #777);
  margin: 0;
}
.field--name-field-benefits-block-about {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding: 20px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  margin-bottom: 32px;
}
.paragraph--type--about-benefits {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.field--name-field-title-about-benefits {
  font-family: var(--bs-font-family-title, inherit);
  font-size: clamp(1.5rem, 2vw, 1.85rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-primary);
}
.field--name-field-about-benefits-body {
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--color-text-subtle, #666);
  font-weight: 500;
}
.about-button {
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.field--name-field-about-link a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-graphite, #222);
  transition:
    color 0.2s ease,
    transform 0.2s ease;
}
.field--name-field-about-link a:hover {
  color: var(--color-primary);
  transform: translateX(3px);
}
.node--type-about.node--view-mode-teaser .field--name-field-benefits-img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(224, 90, 30, 0.12);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}
.node--type-about.node--view-mode-teaser .field--name-field-benefits-img img {
  width: 18px;
}
.node--type-about.node--view-mode-teaser .paragraph--type-benefits {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.field--name-field-about-link a:after {
  content: "";
  background: url(/sites/all/themes/vesta_theme/image/arrow.svg);
  width: 16px;
  height: 16px;
  filter: brightness(0);
}
.field--name-field-about-link a:hover:after {
  filter: brightness(1);
}
/* end about */

/* steps */
div#step-block {
  padding: var(--bs-padding-region);
}
.field--name-field-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.field--name-field-step-number {
  font-family: var(--bs-font-family-title);
  font-size: 2.5rem;
  font-weight: 800;
  color: rgba(106, 136, 77, 0.25);
  line-height: 1;
  margin-bottom: 12px;
}
.paragraph--type-step-work {
  background-color: var(--color-white);
  padding: 32px 24px;
  border-radius: var(--border-radius);
  border: 1px solid var(--color-border);
  position: relative;
  height: 100%;
}
.field--name-field-step-body {
  font-size: 0.875rem;
  color: var(--color-text-subtle);
}

.field--name-field-step-title {
  font-size: 1.125rem;
  margin-bottom: 10px;
  font-family: var(--bs-font-family-title);
  color: var(--color-graphite);
  font-weight: 700;
  line-height: 1.25;
}
div#block-vesta-theme-step-block .field--name-body {
  font-size: 1.125rem;
  color: var(--color-text-subtle);
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
  margin-bottom: 48px;
}
div#block-vesta-theme-step-block h2 {
  text-align: center;
}
div#block-vesta-theme-step-block .field--name-field-small-title {
  text-align: center;
}
/* end steps */

/* geography */
.geography-block {
  padding: var(--bs-padding-region);
}
.node--type-geography.node--view-mode-teaser {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.node--type-geography.node--view-mode-teaser.clearfix::after {
  display: none;
}
.node--type-geography.node--view-mode-teaser .field--name-body {
  font-size: 1.0625rem;
  color: var(--color-text-subtle);
  margin-bottom: 28px;
}
.paragraph--type-regions {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.field--name-field-region {
  font-weight: 700;
}
.field--name-field-region-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.right-block-region {
  background-color: var(--color-graphite);
  color: var(--color-white);
  padding: 48px 36px;
  border-radius: var(--border-radius);
  text-align: center;
}
.right-block-region:before {
  content: "";
  width: 64px;
  height: 64px;
  display: block;
  background: url(/sites/all/themes/vesta_theme/image/map.svg) no-repeat center;
  background-size: contain;
  margin: 0 auto 16px;
}
.view-geography .field--name-field-city {
  color: var(--color-white);
  font-size: 1.5rem;
  margin-bottom: 12px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700;
  line-height: 1.25;
  font-family: var(--bs-font-family-title);
}
.node--type-geography.node--view-mode-teaser .field--name-node-link {
  margin-top: 20px;
}
.node--type-geography.node--view-mode-teaser .field--name-node-link a {
  background-color: transparent;
  border-color: var(--color-graphite);
  color: var(--color-graphite);
}
.node--type-geography.node--view-mode-teaser .field--name-node-link a:hover {
  background-color: var(--color-graphite);
  color: var(--color-white);
}
.field--name-field-regions-icon {
  height: 28px;
}
.field--name-field-city .field__item:not(:last-child) {
  display: flex;
  align-items: center;
}
.node--type-geography.node--view-mode-teaser
  .field--name-field-city
  .field__item:not(:last-child):after {
  content: "●";
  color: inherit;
  font-size: 14px;
}
.field--name-field-text-city {
  color: var(--color-light-gray);
  font-size: 1rem;
}
.field--name-field-text-city p:last-child {
  margin: 0;
}
.field--name-field-city .field__item:not(:last-child) {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* end geography */

/* calc */
.calculation-block {
  padding: var(--bs-padding-region);
}
.form-description {
  color: var(--color-text-subtle);
  font-size: 1rem;
}
div#block-vesta-theme-vebforma,
div#block-vesta-theme-vebforma-booking,
div#block-vesta-theme-vebforma-2 {
  background-color: var(--color-white);
  border-radius: var(--border-radius);
  padding: 48px;
  box-shadow: var(--box-shadow);
  border: 1px solid var(--color-border);
  max-width: 900px;
  margin: 0 auto;
}
div#block-vesta-theme-vebforma .fieldset-wrapper,
div#block-vesta-theme-vebforma-booking .fieldset-wrapper,
div#block-vesta-theme-vebforma-2 .fieldset-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.form-control {
  padding: 14px 16px;
  font-size: 0.9375rem;
  transition:
    border-color var(--transition-fast),
    background-color var(--transition-fast);
  border-radius: var(--border-radius);
  border: var(--bs-border-width) solid var(--color-border);
  background-color: var(--color-bg-light);
}
.js-form-item label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-graphite);
  margin-bottom: 6px;
}
.js-form-item select,
.js-form-item input {
  margin: 0;
}
.js-form-item-message {
  margin: 15px 0;
}
.description {
  width: calc(100% - 10px - 13px);
}
.form-control:focus {
  outline: none;
  border-color: var(--color-primary);
  background-color: var(--color-white);
  box-shadow: none;
}
.form-checkbox {
  accent-color: var(--color-primary);
}
.webform-element-description a {
  color: var(--color-graphite);
  text-decoration: underline;
}
.js-form-item-privacy {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.8125rem;
  color: var(--color-text-subtle);
  align-items: center;
  flex-wrap: wrap;
}
.webform-submission-form .form-item--error-message {
  order: 2;
  font-size: 13px;
  color: #bf5757;
}
.webform-button--submit {
  width: 100%;
  padding: 18px 36px;
  font-size: 1.0625rem;
  margin-top: 16px;
}
div#block-vesta-theme-vebforma:before,
div#block-vesta-theme-vebforma-2:before {
  content: "Онлайн расчет";
  background-color: rgba(106, 136, 77, 0.15);
  color: var(--color-primary);
  display: inline-block;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}
div#block-vesta-theme-vebforma-2:before {
  content: "Консультация главного инженера";
}
.calc-engineering-block {
  padding: 60px 0;
}
/* end calc */

/* contact */
.contacts-block {
  padding: var(--bs-padding-region-contact);
}
.field--name-field-kontakt > .field__item,
div#block-vesta-theme-bloknastranicekontakty .field--name-body > .field__item {
  display: flex;
  align-items: center;
  gap: 16px;
  background-color: #ffffff;
  padding: 16px 20px;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}
.field--name-field-kontakt.clearfix::after {
  display: none;
}
.field--name-field-kontakt > .field__item:hover,
div#block-vesta-theme-bloknastranicekontakty
  .field--name-body
  > .field__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
.field--name-field-kontakt > .field__item:before,
div#block-vesta-theme-bloknastranicekontakty
  .field--name-body
  > .field__item:before {
  content: "";
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background-color: rgba(224, 90, 30, 0.1);
  flex-shrink: 0;
  background-position: center;
  background-repeat: no-repeat;
}
.field--name-field-kontakt > .field__item:has(.block-phone):before,
div#block-vesta-theme-bloknastranicekontakty
  .field--name-body
  > .field__item:has(.block-phone):before {
  background-image: url(/sites/all/themes/vesta_theme/image/tel-green.svg);
}
.field--name-field-kontakt > .field__item:has(.block-mail):before,
div#block-vesta-theme-bloknastranicekontakty
  .field--name-body
  > .field__item:has(.block-mail):before {
  background-image: url(/sites/all/themes/vesta_theme/image/mail-green.svg);
}
.field--name-field-kontakt > .field__item:has(.block-work):before,
div#block-vesta-theme-bloknastranicekontakty
  .field--name-body
  > .field__item:has(.block-work):before {
  background-image: url(/sites/all/themes/vesta_theme/image/time-green.svg);
}
.field--name-field-kontakt > .field__item:has(.block-local):before,
div#block-vesta-theme-bloknastranicekontakty
  .field--name-body
  > .field__item:has(.block-local):before {
  background-image: url(/sites/all/themes/vesta_theme/image/local-green.svg);
}
.field--name-field-kontakt,
div#block-vesta-theme-bloknastranicekontakty .field--name-body {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.block-content--type-kontakty .field--name-body {
  font-size: 1.0625rem;
  color: var(--color-text-subtle, #666);
  line-height: 1.6;
  margin-bottom: 32px;
  margin-top: 6px;
}
.region-contacts {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: stretch;
}

.field--name-field-kontakt span.contact-item__label,
div#block-vesta-theme-bloknastranicekontakty
  .contact-block
  .contact-item__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text-subtle, #777);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}
.field--name-field-kontakt .contact-item,
div#block-vesta-theme-bloknastranicekontakty .contact-block .contact-item {
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--color-graphite, #222);
  transition: color 0.2s ease;
}
a.contact-item:hover {
  color: var(--color-primary);
}
.field--name-field-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background-color: #f6f6f6;
  color: var(--color-graphite, #333);
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 0.8125rem;
  font-weight: 600;
  align-self: flex-start;
  margin-bottom: 18px;
}
.field--name-field-tag:before {
  content: "";
  background-image: url(/sites/all/themes/vesta_theme/image/domain.svg);
  background-position: center;
  background-size: 16px;
  background-repeat: no-repeat;
  width: 16px;
  height: 16px;
}
.field--name-field-btn-call a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  font-family: var(--font-family-title);
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: var(--border-radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition-fast);
  white-space: nowrap;
  background-color: var(--color-primary);
  color: var(--color-white);
  width: 100%;
}
.field--name-field-btn-call a:hover {
  background-color: var(--color-primary-hover);
}
.block-content--type-invitation .field--name-body {
  color: var(--color-text-subtle, #666);
  font-size: 0.9375rem;
  line-height: 1.6;
  margin-bottom: 20px;
}
.block-content--type-invitation {
  width: 100%;
  background-color: #ffffff;
  border-radius: 16px;
  padding: 36px;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
  height: 100%;
  justify-content: space-between;
}
.block-content--type-invitation.clearfix:after {
  display: none;
}
.field--name-field-features .field__item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
}
.field--name-field-features .field__item:before {
  content: "";
  background-image: url(/sites/all/themes/vesta_theme/image/check_circle.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 18px;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}
.field--name-field-features {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 28px;
}
/* end contact */

/* map */
.map-block {
  padding-bottom: 96px;
}

.block-content--type-ya-map.clearfix:after {
  display: none;
}
.block-content--type-ya-map {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 20px;
}
.block-content--type-ya-map .field--name-body p {
  font-size: 0.9375rem;
  color: var(--color-text-subtle, #666);
  margin: 0;
}
.field--name-field-link-map a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  font-size: 0.875rem;
  border-radius: 8px;
  border: 2px solid #d1d1d1;
  color: var(--color-graphite, #333);
  background-color: transparent;
  font-weight: 600;
  justify-content: center;
  transition: all var(--transition-fast);
  white-space: nowrap;
  font-family: var(--bs-font-family-title);
}
.field--name-field-link-map a:hover {
  border-color: var(--color-graphite, #222);
  background-color: var(--color-graphite, #222);
  color: var(--color-white);
}
.field--name-field-link-map a:hover:after {
  filter: brightness(5);
}
.field--name-field-link-map a:after {
  content: "";
  width: 16px;
  height: 16px;
  background: url(/sites/all/themes/vesta_theme/image/open_in_new.svg) no-repeat
    center;
  background-size: contain;
}
.mapContainer {
  height: 420px;
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  background-color: #e5e3df;
  border: 1px solid rgba(0, 0, 0, 0.08);
}
.region-map {
  background-color: var(--color-white);
  border-radius: 16px;
  padding: 28px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}

/* end map */

/* footer */
footer#footer {
  background-color: var(--color-graphite, #22252a);
  color: var(--color-white, #ffffff);
  padding: 80px 0 40px;
}
.gooter-content {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 40px;
}
.logo-footer {
  width: 75px;
  margin-bottom: 16px;
}
.logo-footer img {
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.company-desc {
  color: var(--color-light-gray, #c3c7cb);
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 20px;
  max-width: 320px;
}
.copyright {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 8px;
  line-height: 1.4;
}
.webvesta {
  margin-top: 4px;
}
.webvesta a {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition:
    color 0.2s ease,
    text-decoration-color 0.2s ease;
}
.webvesta a:hover {
  color: var(--color-primary);
}
.link-footer {
  margin-top: 16px;
  line-height: 1.6;
  display: flex;
  flex-direction: column;
}
.link-footer a {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s ease;
}
.link-footer a:hover {
  color: var(--color-white);
}
div#block-vesta-theme-contact-footer .block-title,
div#block-vesta-theme-informaciya-menu,
div#block-vesta-theme-navigaciya-menu {
  color: var(--color-white, #ffffff);
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 20px;
  position: relative;
  font-family: var(--bs-font-family-title);
}
div#block-vesta-theme-contact-footer .block-title:after,
div#block-vesta-theme-informaciya-menu:after,
div#block-vesta-theme-navigaciya-menu:after {
  content: "";
  display: block;
  width: 30px;
  height: 2px;
  background-color: var(--color-primary);
  margin-top: 8px;
}
footer#footer a.nav-link {
  color: var(--color-light-gray, #c3c7cb);
  font-size: 0.875rem;
  transition: color 0.2s ease;
  padding: 0;
}
footer#footer a.nav-link:hover {
  color: var(--color-white, #ffffff);
}
footer#footer ul.nav {
  gap: 10px;
}
.social-block {
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  margin-bottom: 12px;
}
.social-block img {
  width: 22px;
  height: 22px;
  display: block;
  object-fit: contain;
}
.social-block img:hover {
  background: none;
  border: none;
  opacity: 1;
  transform: translateY(-2px);
}
div#block-vesta-theme-contact-footer .contact-item__label {
  color: var(--color-white, #ffffff);
  font-weight: 700;
}
div#block-vesta-theme-contact-footer .contact-item {
  color: var(--color-white, #ffffff);
  transition: color 0.2s ease;
}
div#block-vesta-theme-contact-footer a.contact-item:hover {
  color: var(--color-primary);
}
div#block-vesta-theme-contact-footer .contact-item {
  font-size: 0.875rem;
  color: var(--color-light-gray, #c3c7cb);
  margin-bottom: 8px;
  line-height: 1.5;
}
.footer-content {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 40px;
}
/* end footer */

/* project */
.field--name-field-project-subtitle {
  display: inline-block;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary);
  margin-bottom: 8px;
}
.product-title h1 {
  font-size: 2rem;
  margin: 8px 0 16px;
  line-height: 1.2;
}
.product-full-info .field--name-body {
  font-size: 1.0625rem;
  color: var(--color-text-subtle);
  margin-bottom: 24px;
}
.parametrs-project {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  background-color: var(--color-bg-light);
  padding: 20px;
  border-radius: var(--border-radius);
  border: 1px solid var(--color-border);
  margin-bottom: 24px;
}
.product-full-info .parametrs-project .field__label,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  .field__label {
  display: block;
  font-size: 0.75rem;
  color: var(--color-text-subtle);
  text-transform: uppercase;
}
.product-full-info .parametrs-project .field__item,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  .field__item {
  font-family: var(--font-family-title);
  font-size: 1rem;
  color: var(--color-graphite);
  font-weight: 700;
}
.product-full-info .parametrs-project > div,
.node--type-completed-projects.node--view-mode-full .parametrs-project > div {
  display: grid;
  grid-template-columns: 28px auto;
  column-gap: 12px;
  align-items: center;
}
.parametrs-project > div:before,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  > div:before {
  content: "";
  width: 28px;
  height: 28px;
  display: block;
  grid-row: 1/3;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.parametrs-project > div.field--name-field-total-area:before,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  > div.field--name-field-total-area:before {
  background-image: url(/sites/all/themes/vesta_theme/image/square_foot.svg);
}
.parametrs-project > div.field--name-field-number-bedrooms:before,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  > div.field--name-field-number-bedrooms:before {
  background-image: url(/sites/all/themes/vesta_theme/image/bed.svg);
}
.parametrs-project > div.field--name-field-etazhnost:before,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  > div.field--name-field-etazhnost:before {
  background-image: url(/sites/all/themes/vesta_theme/image/layers.svg);
}
.parametrs-project > div.field--name-field-install-time:before,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  > div.field--name-field-install-time:before {
  background-image: url(/sites/all/themes/vesta_theme/image/timer.svg);
}
.parametrs-project > div.field--name-field-energoeffekt:before,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  > div.field--name-field-energoeffekt:before {
  background-image: url(/sites/all/themes/vesta_theme/image/energy.svg);
}
.parametrs-project > div.field--name-field-otdelka:before,
.node--type-completed-projects.node--view-mode-full
  .parametrs-project
  > div.field--name-field-otdelka:before {
  background-image: url(/sites/all/themes/vesta_theme/image/repair.svg);
}
.product-price {
  background-color: #f0f4ec;
  border: 1px solid rgba(106, 136, 77, 0.3);
  padding: 24px;
  border-radius: var(--border-radius);
  margin-bottom: 24px;
}
.price_label {
  font-size: 0.875rem;
  color: var(--color-text-subtle);
}
.price-block {
  display: flex;
  gap: 8px;
  font-family: var(--bs-font-family-title);
  font-size: 2rem;
  font-weight: 800;
  color: var(--color-primary);
}
.field--name-field-project-link .field__item a {
  padding: 18px 36px;
  font-size: 1.0625rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--bs-font-family-title);
  font-weight: 600;
  border-radius: var(--border-radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition-fast);
  white-space: nowrap;
}
.field--name-field-project-link .field__item:first-child a {
  background-color: var(--color-primary);
  color: var(--color-white);
}
.field--name-field-project-link .field__item:first-child a:hover {
  background-color: var(--color-primary-hover);
}
.field--name-field-project-link .field__item:nth-child(2n) a {
  background-color: transparent;
  border-color: var(--color-graphite);
  color: var(--color-graphite);
}
.field--name-field-project-link .field__item:nth-child(2n) a:hover {
  background-color: var(--color-graphite);
  color: var(--color-white);
}
.field--name-field-project-link .field__item:nth-child(2n) a:before {
  content: "";
  width: 24px;
  height: 24px;
  background: url(/sites/all/themes/vesta_theme/image/tel.svg) no-repeat center;
  background-size: contain;
}
.field--name-field-project-link .field__item:nth-child(2n) a:hover:before {
  filter: brightness(5);
}
.field--name-field-project-link {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.field--name-price {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 12px;
}
.field--name-field-specifications-block {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 0px;
  background-color: #efefeb;
}
.field--name-field-specifications-block:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100px;
  transform: scaleX(6.5) translateX(-50px);
  background-color: inherit;
  z-index: -1;
}
.field--name-field-specifications-block:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100px;
  transform: scaleX(6.5) translateX(50px);
  background-color: inherit;
  z-index: -1;
}
.field--name-field-specifications-block .field--name-field-small-title {
  text-align: center;
}
.field--name-field-block-title {
  text-align: center;
}
.field--name-field-materials-body {
  font-size: 1.125rem;
  color: var(--color-text-subtle);
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
  margin-bottom: 48px;
}
.field--name-field-specifications {
  background-color: var(--color-white);
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  border: 1px solid var(--color-border);
  overflow: hidden;
}
.field--name-field-layout-block .block-head {
  text-align: center;
}
.layout-content {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 40px;
  align-items: center;
}
.layout-content .block-title {
  margin-bottom: 20px;
  border-bottom: 2px solid var(--color-primary);
  padding-bottom: 10px;
  display: inline-block;
}
.content-left {
  position: relative;
  height: max-content;
  background-color: var(--color-white);
  padding: 24px;
  border-radius: var(--border-radius);
  border: 1px solid var(--color-border);
  box-shadow: var(--box-shadow);
}
.field--name-field-layout-img {
  width: 100%;
  height: 380px;
}
.field--name-field-layout-img img {
  height: 100%;
  object-fit: cover;
}
.field--name-field-layout-img-text {
  position: absolute;
  bottom: 40px;
  right: 40px;
  background-color: var(--color-graphite);
  color: var(--color-white);
  padding: 6px 14px;
  font-size: 0.8125rem;
  border-radius: 4px;
  font-weight: 600;
}
.paragraph--type-premises-area {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--color-border);
  font-size: 0.9375rem;
  margin-bottom: 12px;
  counter-increment: item;
}
.paragraph--type-premises-area:before {
  content: counter(item, decimal-leading-zero);
  font-weight: 700;
  color: var(--color-primary);
  margin-right: 12px;
}
.content-right {
  background-color: var(--color-white);
  padding: 32px;
  border-radius: var(--border-radius);
  border: 1px solid var(--color-border);
  box-shadow: var(--box-shadow);
  counter-reset: item;
}
.field--name-field-area {
  color: var(--color-graphite);
  font-weight: 700;
}
.paragraph--type-premises-area.clearfix::after {
  display: none;
}
.field--name-field-room-name {
  color: var(--color-graphite);
  flex-grow: 1;
}
.field--name-field-final-area-value {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--color-bg-light);
  padding: 14px 20px;
  border-radius: var(--border-radius);
  font-family: var(--font-family-title);
  font-size: 1rem;
}
.field--name-field-final-area-value .field__item {
  color: var(--color-primary);
  font-size: 1.25rem;
  font-weight: 700;
}
.field--name-field-layout-block {
  padding: 45px 0;
}
.js-form-item-name-project {
  display: none;
}
.body-product-type--vesta_product div#step-block {
  padding: 45px 0;
}
.booking-block {
  padding: 50px 0;
}
/* end project */

/* page project */
.view-tovary .view-content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.project-teaser-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.project-teaser-img {
  position: relative;
}
.field--name-field-teg {
  position: absolute;
  top: 16px;
  left: 16px;
  background-color: var(--color-primary);
  color: var(--color-white);
  padding: 6px 14px;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  border-radius: 4px;
  z-index: 5;
}
.commerce-product--type-vesta-product.commerce-product--view-mode-teaser,
.node--type-completed-projects.node--view-mode-teaser {
  background-color: var(--color-white, #ffffff);
  border-radius: var(--border-radius, 8px);
  overflow: hidden;
  border: 1px solid var(--color-border, #e5e7eb);
  box-shadow: var(--box-shadow, 0 4px 12px rgba(0, 0, 0, 0.05));
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.commerce-product--type-vesta-product.commerce-product--view-mode-teaser:hover,
.node--type-completed-projects.node--view-mode-teaser:hover {
  transform: translateY(-6px);
  box-shadow: var(--box-shadow-hover, 0 12px 24px rgba(0, 0, 0, 0.12));
}
.commerce-product--type-vesta-product.commerce-product--view-mode-teaser
  .field--name-title,
.node--type-completed-projects.node--view-mode-teaser .field--name-node-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--color-graphite, #222222);
  font-family: var(--bs-font-family-title);
  line-height: 1.25;
}
.commerce-product--type-vesta-product.commerce-product--view-mode-teaser
  .field--name-body,
.node--type-completed-projects.node--view-mode-teaser .field--name-body {
  font-size: 0.875rem;
  color: var(--color-text-subtle, #666666);
  margin-bottom: 20px;
  line-height: 1.5;
}
.teaser-parametr.parametrs-project {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  border-top: 1px solid var(--color-border, #e5e7eb);
  border-bottom: 1px solid var(--color-border, #e5e7eb);
  padding: 12px 0;
  margin-bottom: 20px;
  font-size: 0.8125rem;
  color: var(--color-graphite, #333333);
  border-right: 0;
  border-left: 0;
  background-color: #fff;
}
.teaser-parametr.parametrs-project > div {
  display: flex;
  align-items: center;
  gap: 6px;
}
.project-teaser-bottom {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.teaser-price-label {
  display: block;
  font-size: 0.75rem;
  color: var(--color-text-subtle, #666666);
}
.teaser-price-item {
  font-family: var(--bs-font-family-title, inherit);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--color-graphite, #222222);
}
.project-teaser-link {
  background-color: var(--color-graphite);
  color: var(--color-white);
}
.project-teaser-link:hover {
  background-color: #2b2b2b;
  color: var(--color-white);
}
.field--name-field-image-product-view,
.node--type-completed-projects.node--view-mode-teaser
  .field--name-field-completed-projects-img {
  height: 240px;
  overflow: hidden;
  background-color: #e5e7eb;
}
.commerce-product--type-vesta-product.commerce-product--view-mode-teaser:hover
  .field--name-field-image-product-view
  img,
.node--type-completed-projects.node--view-mode-head-page-block
  .completed-project-content-left:hover
  .field--name-field-completed-projects-img
  .field__item:before,
.node--type-completed-projects.node--view-mode-teaser:hover
  .field--name-field-completed-projects-img
  img,
.completed-project-content-right
  .field--name-field-photo-carousel:hover
  .paragraph--type--photo-album-card
  .field--name-field-photo-album-img:before,
.completed-project-content-right
  .field--name-field-carousel-construction:hover
  .paragraph--type--photo-album-card
  .field--name-field-photo-album-img:before {
  transform: scale(1.05);
}
.field--name-field-image-product-view img,
.node--type-completed-projects.node--view-mode-teaser
  .field--name-field-completed-projects-img
  img {
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.project-block {
  padding: var(--bs-padding-region);
}
.project-block .view-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 48px;
}
.project-block .view-header .head-link {
  background-color: transparent;
  border-color: var(--color-graphite);
  color: var(--color-graphite);
}
.project-block .view-header .head-link:hover {
  color: var(--color-white);
  background-color: var(--color-graphite);
}
.header-mob-right {
  gap: clamp(10px, 1.2vw, 18px);
  flex-shrink: 0;
}
/* end page project */

/* articles */
div#articles-block {
  padding: 70px 0;
  background-color: #fff;
}
.view-articles .view-content {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 24px;
}
.node--type-article.node--view-mode-teaser {
  background-color: var(--color-white, #ffffff);
  border-radius: var(--border-radius, 8px);
  overflow: hidden;
  border: 1px solid var(--color-border, #e5e7eb);
  box-shadow: var(--box-shadow, 0 4px 12px rgba(0, 0, 0, 0.05));
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.node--type-article.node--view-mode-teaser:hover {
  transform: translateY(-6px);
  box-shadow: var(--box-shadow-hover, 0 12px 24px rgba(0, 0, 0, 0.12));
}
.article-content {
  padding: 24px 20px;
  flex-grow: 1;
}
.node--type-article.node--view-mode-teaser .field--name-field-image {
  height: 200px;
  width: 100%;
}
.node--type-article.node--view-mode-teaser .field--name-field-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.node--type-article.node--view-mode-teaser .field--name-node-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--color-graphite, #222222);
  font-family: var(--bs-font-family-title);
  line-height: 1.25;
}
.node--type-article.node--view-mode-teaser .field--name-body {
  font-size: 0.875rem;
  color: var(--color-text-subtle, #666666);
  margin-bottom: 20px;
  line-height: 1.5;
}
.node--type-article.node--view-mode-teaser .field--name-node-link {
  padding-top: 20px;
  border-top: 1px solid var(--color-border, #e5e7eb);
  color: var(--color-primary);
  font-weight: 600;
}
.node--type-article.node--view-mode-teaser .field--name-node-link:hover {
  color: inherit;
}
.field--name-node-post-date {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-bottom: 16px;
  font-size: 12px;
  font-weight: 500;
}
.field--name-node-post-date:before {
  content: "";
  width: 13px;
  height: 13px;
  background: url(/sites/all/themes/vesta_theme/image/calendar.svg) no-repeat
    center;
  background-size: contain;
  display: block;
}
div#block-vesta-theme-articles-header {
  text-align: center;
  margin-bottom: 48px;
}
div#block-vesta-theme-articles-header .field--name-body {
  font-size: 1rem;
  color: var(--color-text-subtle);
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.more-link a {
  display: block;
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: var(--border-radius);
  transition:
    color 0.15s ease-in-out,
    background-color 0.15s ease-in-out,
    border-color 0.15s ease-in-out,
    box-shadow 0.15s ease-in-out;
  padding: 15.75px 28px;
  font-family: var(--bs-font-family-title);
  width: max-content;
  background-color: transparent;
  border: 1px solid var(--color-graphite);
  color: var(--color-graphite);
  margin: auto;
}
.more-link a:hover {
  background-color: var(--color-graphite);
  color: var(--color-white);
}
div#articles-block .more-link {
  margin-top: 48px;
}
div#articles-block .field--name-field-small-title {
  background-color: #edf1e9;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 7px;
  width: max-content;
  margin: 0 auto;
  border-radius: 4px;
}

div#articles-block .field--name-field-small-title:before {
  content: "";
  background: url(/sites/all/themes/vesta_theme/image/book.svg) no-repeat center;
  background-size: contain;
  width: 18px;
  height: 15px;
  display: block;
}
/* end articles */

/* comparison */
.comparison-block {
  padding: 67px 0;
}
div#block-vesta-theme-comparison-block .field--name-field-small-title,
div#block-vesta-theme-comparison-block .block-title {
  text-align: center;
}
div#block-vesta-theme-comparison-block .field--name-body p:first-child {
  font-size: 1rem;
  color: var(--color-text-subtle);
  max-width: 640px;
  margin: 0 auto 48px;
  text-align: center;
}

div#block-vesta-theme-comparison-block .field--name-body .table th {
  background-color: var(--color-bg-light);
}
div#block-vesta-theme-comparison-block .field--name-body tr td:first-child {
  font-weight: 700;
}
div#block-vesta-theme-comparison-block .field--name-body tr td:nth-child(2),
tr th:nth-child(2) {
  font-weight: 700;
  color: var(--color-primary);
  background-color: #f3f6f1;
}
div#block-vesta-theme-comparison-block
  .field--name-body
  .table
  > :not(caption)
  > *
  > * {
  padding: 22px 25px;
}
/* end comparison */

/* banner */
.block-content--type-banner-technology {
  position: relative;
  padding: 90px 0 70px;
}
.field--name-field-banner-img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
}
.field--name-field-banner-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.banner-content {
  color: #fff;
  max-width: 790px;
}
.banner-content h1 {
  color: inherit;
}
.field--name-field-banner-img:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    90deg,
    rgba(30, 30, 30, 0.85) 0%,
    rgba(30, 30, 30, 0.4) 100%
  );
  z-index: 1;
}
.field--name-field-banner-link a {
  display: block;
  background-color: var(--color-primary);
  color: var(--color-white);
  width: max-content;
  padding: 14.5px 44px;
  font-weight: 600;
  border-radius: var(--border-radius);
  overflow: hidden;
  font-size: 1rem;
}
.field--name-field-banner-link a:hover {
  background-color: var(--color-primary-hover);
}
.banner-content .field--name-body {
  color: rgba(255, 255, 255, 0.9);
  margin: 24px 0 32px;
}
/* end banner */

/* portfolio */
.node--type-completed-projects.node--view-mode-full .field--name-body {
  font-size: 1.125rem;
  color: var(--color-text-subtle);
  line-height: 1.6;
  max-width: 840px;
  margin: 0 auto 40px;
}
.completed-projects-content {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 40px;
  align-items: start;
  padding-bottom: 64px;
}
.node--type-completed-projects.node--view-mode-full .parametrs-project {
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 20px;
  margin-bottom: 0;
  border: none;
  padding: 0;
}
.node--type-completed-projects.node--view-mode-full .parametrs-project > div {
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius);
  padding: 16px 12px;
  box-shadow: var(--box-shadow);
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-completed-projects-img {
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--box-shadow);
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  height: 420px;
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-completed-projects-img
  img {
  height: 100%;
  object-fit: cover;
}
.field--name-field-completed-rojects-fos {
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius);
  padding: 36px 30px;
  box-shadow: var(--box-shadow);
  height: 100%;
}
.field--name-field-completed-rojects-fos .form-body {
  font-size: 0.875rem;
  color: var(--color-text-subtle);
  line-height: 1.5;
  margin-bottom: 24px;
}
.field--name-field-completed-rojects-fos .js-form-item-phone {
  margin: 16px 0 32px;
}
.field--name-field-completed-rojects-fos .webform-button--submit {
  margin-top: 20px;
}
.paragraph--type-photo-album .field--name-field-small-title,
.paragraph--type-photo-album h2 {
  text-align: center;
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-photo-album-body {
  font-size: 1.125rem;
  color: var(--color-text-subtle);
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
  margin-bottom: 48px;
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-photo-album-cards {
  position: relative;
  max-width: 1000px;
  margin: 0 auto;
  height: 520px;
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-photo-album-img
  img {
  height: 520px;
  height: 100%;
  object-fit: cover;
}
.node--type-completed-projects.node--view-mode-full
  .paragraph--type--photo-album-card {
  position: relative;
  height: 520px;
}
.field--name-field-photo-album-img {
  height: 100%;
  object-fit: cover;
}
.node--type-completed-projects.node--view-mode-full
  .completed-project-img-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.85) 100%);
  color: var(--color-white);
  padding: 36px 32px 28px;
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-photo-album-img-title {
  color: var(--color-white);
  margin-bottom: 6px;
}
.field--name-field-photo-album-img-body {
  font-size: 0.9375rem;
  color: var(--color-light-gray);
}
.paragraph--type-photo-album button.slick-next.slick-arrow::before,
.paragraph--type-photo-album button.slick-prev.slick-arrow::before {
  background-image: url(/sites/all/themes/vesta_theme/image/arrow_forward.svg);
}
.paragraph--type-photo-album button.slick-next.slick-arrow {
  right: -25px;
}
.paragraph--type-photo-album button.slick-prev.slick-arrow {
  left: -25px;
}
.paragraph--type-photo-album button.slick-arrow {
  width: 52px;
  height: 52px;
}
.paragraph--type-photo-album button.slick-arrow:hover {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}
.paragraph--type-photo-album button.slick-arrow:hover::before {
  filter: brightness(0) invert(1);
}
.node--type-completed-projects.node--view-mode-full
  .paragraph--type-photo-album {
  padding-bottom: 35px;
}
.paragraph--type-photo-album ul.slick-dots li button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--color-light-gray);
  border: none;
  cursor: pointer;
  transition: all var(--transition-fast);
}
.paragraph--type-photo-album ul.slick-dots li.slick-active button {
  background-color: var(--color-primary);
  width: 28px;
  border-radius: 6px;
}
.paragraph--type-photo-album ul.slick-dots {
  gap: 10px;
  max-width: 20px 0;
}
.paragraph--type-photo-album .slick-list.draggable {
  overflow: hidden;
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow-hover);
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-photo-carousel {
  position: relative;
  padding: var(--bs-padding-region);
  background-color: #efefeb;
  border-top: 1px solid var(--color-border);
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-photo-carousel:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100px;
  transform: scaleX(6.5) translateX(-50px);
  background-color: inherit;
  z-index: -1;
  border-top: 1px solid var(--color-border);
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-photo-carousel:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100px;
  transform: scaleX(6.5) translateX(50px);
  background-color: inherit;
  z-index: -1;
  border-top: 1px solid var(--color-border);
}
.about-project-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.about-project-content_left .field--name-field-block-title {
  text-align: start;
}
.field--name-field-about-body {
  font-size: 1.0625rem;
  color: var(--color-graphite);
  margin-bottom: 16px;
  line-height: 1.65;
}
.field--name-field-about-project-img {
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius);
  padding: 20px;
  box-shadow: var(--box-shadow);
}
.field--name-field-about-project-img .field__item {
  height: 380px;
}
.field--name-field-about-project-img img {
  height: 100%;
  object-fit: cover;
}
.field--name-field-about-project-img .field__label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--bs-font-family-title);
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 16px;
  color: var(--color-graphite);
}
.field--name-field-about-project-img .field__label::before {
  content: "";
  width: 24px;
  height: 24px;
  background-image: url(/sites/all/themes/vesta_theme/image/architecture.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.field--name-field-about-project-info
  .paragraph--type-benefits
  .field--name-field-benefits-img {
  width: 48px;
  height: 48px;
  background-color: rgba(106, 136, 77, 0.1);
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.field--name-field-about-project-info
  .paragraph--type-benefits
  .field--name-field-benefits-img
  img {
  width: 28px;
}
.field--name-field-about-project-info {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 60px;
}
.field--name-field-about-project-info .field--name-field-benefits-title {
  font-size: 1.125rem;
  margin-bottom: 8px;
  font-family: var(--bs-font-family-title);
  color: var(--color-graphite);
  font-weight: 700;
  line-height: 1.25;
}
.field--name-field-about-project-info .field--name-field-benefits-body {
  font-size: 0.875rem;
  color: var(--color-text-subtle);
  line-height: 1.5;
}
.field--name-field-about-project {
  padding: var(--bs-padding-region);
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-carousel-construction {
  position: relative;
  padding: var(--bs-padding-region);
  background-color: #efefeb;
  border-top: 1px solid var(--color-border);
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-carousel-construction:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100px;
  transform: scaleX(6.5) translateX(-50px);
  background-color: inherit;
  z-index: -1;
}
.node--type-completed-projects.node--view-mode-full
  .field--name-field-carousel-construction:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100px;
  transform: scaleX(6.5) translateX(50px);
  background-color: inherit;
  z-index: -1;
}
.view-portfolio.view-display-id-page_1 .view-content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.completed-project-content {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  margin-bottom: 36px;
  gap: 28px;
}
.node--type-completed-projects.node--view-mode-head-page-block .parametrs {
  display: flex;
  flex-wrap: wrap;
  padding-top: 16px;
  gap: 10px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .parametrs
  > div {
  font-size: 0.8125rem;
  display: inline-flex;
  align-items: center;
  background: var(--color-bg-light, #f4f5f7);
  padding: 6px 12px;
  border-radius: 8px;
  gap: 5px;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .parametrs
  > div
  .field__label {
  color: var(--color-text-subtle, #6c757d);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .parametrs
  > div
  .field__item {
  font-weight: 700;
  color: var(--color-graphite, #1d2125);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-completed-projects-img
  .field__item {
  height: clamp(260px, 32vw, 380px);
  position: relative;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-completed-projects-img
  .field__item:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.35) 0%,
    transparent 40%,
    rgba(0, 0, 0, 0.25) 100%
  );
  pointer-events: none;
  z-index: 1;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-completed-projects-img
  img {
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .completed-project-content-left,
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-photo-carousel,
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-carousel-construction {
  position: relative;
  background: #ffffff;
  border-radius: var(--border-radius, 16px);
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.06);
  display: flex;
  flex-direction: column;
  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .completed-project-info {
  padding: clamp(20px, 3vw, 28px);
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .completed-project-info
  .field--name-body {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--color-text-subtle, #5e6c84);
  margin: 0 0 18px 0;
  flex-grow: 1;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .paragraph--type--photo-album-card
  .field--name-field-photo-album-img {
  height: 200px;
  position: relative;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .paragraph--type--photo-album-card
  .field--name-field-photo-album-img:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.35) 0%,
    transparent 40%,
    rgba(0, 0, 0, 0.25) 100%
  );
  pointer-events: none;
  z-index: 1;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .completed-project-img-content {
  padding: 20px;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-photo-album-img
  img {
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-city {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 0.8125rem;
  color: var(--color-primary);
  font-weight: 600;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-city
  .field__item:not(:first-child) {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text-subtle, #6c757d);
  font-weight: 500;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-city
  .field__item:not(:first-child):before {
  content: "●";
  font-size: 5px;
  color: #adb5bd;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .paragraph--type-photo-album
  .field--name-field-small-title {
  position: absolute;
  top: 16px;
  left: 16px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  background: rgba(29, 33, 37, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 999px;
  letter-spacing: 0.02em;
  z-index: 2;
  text-transform: none;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-photo-carousel
  .paragraph--type-photo-album
  .field--name-field-small-title {
  background: rgba(224, 90, 30, 0.85);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-carousel-construction
  .paragraph--type-photo-album
  .field--name-field-small-title {
  background: rgba(43, 49, 57, 0.8);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .paragraph--type-photo-album
  .field--name-field-small-title:before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-carousel-construction
  .paragraph--type-photo-album
  .field--name-field-small-title:before {
  background-color: #2ed573;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-photo-carousel
  .paragraph--type-photo-album
  .field--name-field-small-title:before {
  background-color: #ffaa00;
  box-shadow: 0 0 0 0 rgba(255, 170, 0, 0.7);
  animation: portfolio-pulse 2s infinite;
}
.completed-project-content-right {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-completed-projects-img
  .field__label {
  content: "Готовый объект";
  position: absolute;
  top: 16px;
  left: 16px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  background: rgba(29, 33, 37, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 999px;
  letter-spacing: 0.02em;
  z-index: 2;
  text-transform: none;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-completed-projects-img
  .field__label:before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
  background-color: #2ed573;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-photo-album-img-body {
  color: inherit;
  font-size: 0.875rem;
  margin-bottom: 0;
}
.node--type-completed-projects.node--view-mode-head-page-block
  .completed-project-content-left:hover,
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-photo-carousel:hover,
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-carousel-construction:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
}
.node--type-completed-projects.node--view-mode-head-page-block
  .completed-project-content-left:hover
  .field--name-field-completed-projects-img
  img,
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-photo-carousel:hover
  .field--name-field-photo-album-img
  img,
.node--type-completed-projects.node--view-mode-head-page-block
  .field--name-field-carousel-construction:hover
  .field--name-field-photo-album-img
  img {
  transform: scale(1.05);
}
.completed-block .block-content--type-benefits-project {
  background: #ffffff;
  border-radius: var(--border-radius, 16px);
  padding: clamp(20px, 3vw, 32px) clamp(20px, 4vw, 40px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.06);
  /* flex-wrap: wrap; */
}
.completed-block
  .block-content--type-benefits-project
  .field--name-field-benefits-project {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 1;
  gap: 48px;
}
.completed-block
  .block-content--type-benefits-project
  .field--name-field-benefits-project
  > .field__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 1;
}
.completed-block
  .block-content--type-benefits-project
  .field--name-field-benefits-project
  > .field__item:after {
  content: "";
  display: block;
  width: 1px;
  height: 48px;
  background-color: rgba(0, 0, 0, 0.08);
}
.completed-block
  .block-content--type-benefits-project
  .field--name-field-benefits-project
  > .field__item
  .paragraph--type--about-benefits {
  max-width: 170px;
}
.completed-block .block-content--type-benefits-project.clearfix::after {
  display: none;
}
.field--name-field-benefits-project-link {
  padding-left: 48px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.field--name-field-benefits-project-link .field__label {
  font-size: 0.8125rem;
  color: var(--color-text-subtle, #6c757d);
}
.field--name-field-benefits-project-link .field__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-graphite, #1d2125);
  text-decoration: none;
  transition:
    color 0.2s ease,
    transform 0.2s ease;
}
.field--name-field-benefits-project-link .field__item:hover {
  color: var(--color-primary, #e05a1e);
  transform: translateX(3px);
}
.completed-block .field--name-field-title-about-benefits {
  font-size: clamp(1.75rem, 2.5vw, 2.25rem);
  line-height: 1;
  letter-spacing: -0.02em;
}
.completed-block .field--name-field-about-benefits-body {
  color: var(--color-graphite, #2d3748);
}
div#completed-block {
  padding: clamp(64px, 8vw, 108px) 0;
}
.view-portfolio.view-display-id-block_1 {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
}
.view-portfolio.view-display-id-block_1 .more-link {
  width: max-content;
  order: 2;
}
.view-portfolio.view-display-id-block_1 .more-link a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 26px;
  color: var(--color-graphite, #1d2125);
  background: #ffffff;
  border: 1.5px solid rgba(29, 33, 37, 0.15);
  border-radius: var(--border-radius, 12px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  transition: all 0.25s ease;
  white-space: nowrap;
}
.view-portfolio.view-display-id-block_1 .more-link a:after {
  content: "";
  background: url(/sites/all/themes/vesta_theme/image/arrow.svg);
  width: 18px;
  height: 18px;
  filter: brightness(0);
  transition: transform 0.25s ease;
  background-position: center;
  background-repeat: no-repeat;
}
.view-portfolio.view-display-id-block_1 .more-link a:hover {
  background: var(--color-graphite, #1d2125);
  color: #ffffff;
  border-color: var(--color-graphite, #1d2125);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}
.view-portfolio.view-display-id-block_1 .more-link a:hover:after {
  transform: translateX(4px);
  filter: brightness(0) invert(1);
}
.view-portfolio.view-display-id-block_1 .view-header {
  order: 1;
  max-width: 760px;
}
.view-portfolio.view-display-id-block_1 .view-content {
  order: 3;
  margin-top: clamp(32px, 5vw, 52px);
}
.view-portfolio.view-display-id-block_1 .field--name-field-small-title {
  background: rgba(224, 90, 30, 0.08);
  padding: 6px 14px;
  border-radius: 999px;
  width: max-content;
}
.view-portfolio.view-display-id-block_1 .head-desc {
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  line-height: 1.6;
  color: var(--color-text-subtle, #5e6c84);
}
.node--type-completed-projects.node--view-mode-teaser
  .teaser-parametr.parametrs-project
  > div:nth-child(4n) {
  display: none;
}
/* end portfolio */

/* documents */
.field--name-field-certificates .field__items {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 30px;
}
.field--name-field-certificates .field__items img {
  aspect-ratio: 1 / 1.414;
}
.field--name-field-certificates .field__label,
.field--name-field-documents .field__label {
  font-family: var(--bs-font-family-title);
  font-weight: 700;
  font-size: 1rem;
  margin-top: 40px;
  margin-bottom: 20px;
}
.field--name-field-documents .field__item a {
  font-size: 1rem;
  text-decoration: underline;
}
.field--name-field-documents .field__item a:hover {
  color: var(--color-primary);
}
/* end documents */

/* questions */
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover {
  border: 1px solid #6a884d;
  background: #6a884d;
}
.ui-accordion .ui-accordion-header {
  padding: 1rem 0.5rem 1rem 0.7rem;
  font-size: 1rem;
  font-family: var(--bs-font-family-title);
  font-weight: 600;
}
.view-questions .views-row .views-row {
  margin-bottom: 10px;
}
.ui-state-hover:not(.ui-state-active),
.ui-widget-content .ui-state-hover:not(.ui-state-active),
.ui-widget-header .ui-state-hover:not(.ui-state-active),
.ui-state-focus:not(.ui-state-active),
.ui-widget-content .ui-state-focus:not(.ui-state-active),
.ui-widget-header .ui-state-focus:not(.ui-state-active),
.ui-button:hover,
.ui-button:focus {
  border: 1px solid #6a884d;
  background: #6a884d26;
}
.view-questions .views-field-body {
  font-size: 0.875rem;
  color: var(--color-text-subtle, #666666);
  margin-bottom: 20px;
  line-height: 1.5;
}
.view-questions .views-field-body p:last-child {
  margin: 0;
}
/* end questions */

/* menu */
.dropdown-toggle::after {
  display: none;
}
.dropdown-menu {
  --bs-dropdown-bg: var(--color-white, #ffffff);
  --bs-dropdown-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
  --bs-dropdown-border-radius: 6px;
  --bs-dropdown-border-color: var(--color-border, #eaeaea);
  --bs-dropdown-item-padding-x: 18px;
  --bs-dropdown-item-padding-y: 9px;
  --bs-dropdown-font-size: 0.875rem;
  --bs-dropdown-link-hover-color: var(--color-primary);
  --bs-dropdown-link-hover-bg: var(--color-bg-light, #f4f4f2);
  --bs-dropdown-link-active-color: var(--color-primary);
  --bs-dropdown-link-active-bg: var(--color-bg-light, #f4f4f2);
  --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);
}
.dropdown-item {
  font-weight: 500;
}
/* end menu */

/* offcanvas */
.offcanvas .logo {
  width: 60px;
}
.offcanvas div#block-vesta-theme-contact-footer--2 .block-title {
  font-weight: 600;
  margin-bottom: 5px;
}
.offcanvas div#block-vesta-theme-contact-footer--2 span.contact-item__label {
  font-weight: 500;
}
.offcanvas div#block-vesta-theme-contact-footer--2 {
  margin-top: 20px;
}
/* end offcanvas */

.page-node--821 h2.block-title {
  margin-bottom: 25px;
}
.page-node--821 div#block-vesta-theme-views-block-articles-block-2 {
  margin-bottom: 80px;
}
.page-node--821 .more-link {
  margin-top: 30px;
}
.page-node--815 .field--name-field-small-title,
.page-node--815 .field--name-block-description {
  display: none;
}
.modal-header,
.modal-footer {
  border: none;
}
.not-front:not(.page-product) main {
  padding: 50px 0 80px;
}
.not-front:not(.page-product) main div#block-vesta-theme-page-title {
  margin-bottom: 35px;
}
.not-front.page-completed-project main {
  padding-top: 50px;
  padding-bottom: 0;
}
.not-front.page-completed-project div#block-vesta-theme-page-title {
  max-width: 840px;
  margin: 0 auto 16px;
}
.not-front.page-node--808 main {
  padding: 0;
}
