.pm-skip-link { position: fixed; left: 12px; top: -120px; z-index: 10000; background: white; color: black; padding: 12px 18px; }
.pm-skip-link:focus { top: 12px; }
.pm-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.pm-form-status { margin-top: 12px; font-size: 14px; }
.pm-form-status:empty { display: none; }
.pm-form-status[data-state="error"] { color: #ffb8a8; }
.pm-request-form button:disabled { opacity: .6; cursor: wait; }
.pm-menu-item { position: relative; }
@font-face {
  font-family: "TeX Gyre Adventor";
  src: url("fonts/TeXGyreAdventor-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
.header__services { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; }
.services-mega-menu { display: none; }
@media (min-width: 1200px) {
  .header__nav { display: flex; align-items: center; gap: 24px; width: auto; height: auto; }
  .header__services-menu, .header__nav > a { position: relative; left: auto; top: auto; }
  .header__nav { position: static; transform: none; }
  .header__nav .header__services-menu { position: static; }
  .header__services-menu::after { content: none; }
  .services-mega-menu {
    position: absolute;
    top: calc(100% + 7px);
    right: var(--desktop-gutter, 4.43vw);
    display: grid;
    grid-template-columns: 223fr 235fr 268fr 191fr;
    width: 955px;
    max-width: calc(100vw - 2 * var(--desktop-gutter, 4.43vw));
    min-height: 216px;
    padding: 25px 19px 18px;
    border-radius: 1px;
    background: #ededed;
    color: rgba(0, 0, 0, .9);
    font-size: 14px;
    line-height: 1.05;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-5px);
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms;
  }
  .services-mega-menu::before { content: ""; position: absolute; bottom: 100%; left: 0; width: 100%; height: 8px; }
  .header__services-menu--open .services-mega-menu { visibility: visible; opacity: 1; transform: none; }
  .services-mega-menu__column { position: relative; min-width: 0; }
  .services-mega-menu__column + .services-mega-menu__column { padding-left: 25px; }
  .services-mega-menu__title { margin: 0 0 20px; font-size: inherit; font-weight: 700; line-height: inherit; }
  .services-mega-menu__links { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
  .services-mega-menu__links a { display: inline-block; }
  .services-mega-menu__divider { position: absolute; top: 0; right: 0; max-width: none; transform: rotate(-90deg); transform-origin: right top; }
}
.pm-menu-item > .services-dropdown { display: none; }
.pm-menu-item:hover > .services-dropdown, .pm-menu-item:focus-within > .services-dropdown { display: flex; }
.mobile-menu .pm-menu-item, .site-footer .pm-menu-item { display: contents; }
.pm-document { max-width: 1000px; margin: 0 auto; padding: 120px 30px 70px; }
.pm-document h1 { margin: 0 0 30px; font-size: clamp(28px, 4vw, 44px); font-weight: 400; line-height: 1.2; }
.pm-document p { margin: 20px 0; line-height: 1.6; }
.pm-document a { text-decoration: underline; }
/* Editable copy needs normal flow so a longer heading cannot overlap its description. */
.hero .hero__content p { position: relative; top: auto; left: auto; transform: none; margin: 16px auto 0; }
.hero .hero__content .hero__button { position: relative; top: auto; left: auto; transform: none; margin: 38px auto 0; }
@media (max-width: 767px) {
  .hero .hero__content p { margin: 16px 0 0; }
  .hero .hero__content .hero__button { margin: 32px 0 0; }
}
body.admin-bar .header--fixed { top: 32px; }
:focus-visible { outline: 2px solid #c4ac85; outline-offset: 4px; }
@media (max-width: 782px) { body.admin-bar .header--fixed { top: 46px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* One type scale for breadcrumbs in every page template. */
:root { --pm-breadcrumb-font-size: 16px; }
:is(.breadcrumbs, .about-founder__breadcrumbs, .contacts-page__breadcrumb,
    .services-catalog__breadcrumb, .portfolio-gallery__breadcrumb,
    .case-details__breadcrumb, .reviews__breadcrumb, .price-packages__breadcrumb) {
  font-size: var(--pm-breadcrumb-font-size);
  font-weight: 400;
  line-height: 1.25;
}
@media (max-width: 1199px) { :root { --pm-breadcrumb-font-size: 14px; } }
@media (max-width: 767px) { :root { --pm-breadcrumb-font-size: 12px; } }
/* Hidden submission fields must not change the visible modal field positions. */
.consultation-form__field--name { top: 161px; }
.consultation-form__field--phone { top: 219px; height: 36px; }
.consultation-form .pm-form-status { position: absolute; top: 392px; left: 78.5px; width: 368px; margin: 12px 0 0; font-size: 12px; }
@media (max-width: 600px) {
  .consultation-form__field--name { top: 173px; }
  .consultation-form__field--phone { top: 231px; }
  .consultation-form .pm-form-status { left: 28px; width: calc(100% - 56px); }
}
.pm-document h2 { margin: 36px 0 18px; font-size: clamp(20px, 2.5vw, 28px); line-height: 1.3; }
.pm-document ul { margin: 20px 0; padding-left: 24px; }
.pm-document li { margin: 8px 0; line-height: 1.6; }
.pm-document { overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .pm-document { padding: 90px 20px 50px; }
  .pm-document h1 { font-size: 24px; line-height: 1.25; }
}

/* Interior design project on the prices page. */
.interior-project { margin: 120px var(--desktop-gutter, 60px) 0; color: #fff; }
.interior-project__card { display: grid; grid-template-columns: minmax(0, 434fr) minmax(0, 305fr) minmax(0, 373fr); grid-template-rows: 1fr 50px; column-gap: 54px; row-gap: 15px; min-height: 494px; padding: 27px 19px 37px 39px; border: .5px solid rgba(255,255,255,.6); }
.interior-project__summary { grid-area: 1 / 1; max-width: 374px; padding-top: 8px; }
.interior-project h2 { max-width: 320px; margin: 0; font-size: 32px; font-weight: 400; line-height: 1.25; text-transform: uppercase; }
.interior-project p { margin: 0; }
.interior-project .interior-project__subtitle { margin-top: 14px; color: rgba(255,255,255,.6); font-size: 14px; line-height: 1.2; }
.interior-project .interior-project__price { display: flex; align-items: baseline; gap: 14px; margin-top: 14px; font-size: 44px; line-height: 1.25; }
.interior-project__price span { color: #f2f2f2; font-size: 16px; line-height: 1.2; }
.interior-project__rates { display: grid; gap: 10px; margin-top: 13px; color: rgba(242,242,242,.85); font-size: 16px; line-height: 1.15; }
.interior-project__gift { display: grid; grid-template-columns: 80px minmax(0,1fr); align-items: center; gap: 32px; min-height: 81px; margin-top: 22px; padding: 14px 15px; border: 1px solid #3d3d3d; background: #121514; font-size: 14px; line-height: 1.15; }
.interior-project__gift > span { text-transform: uppercase; }
.interior-project__gift > div { position: relative; }
.interior-project__gift > div::before { content: ''; position: absolute; right: calc(100% + 16px); top: 50%; width: 1px; height: 49px; background: url('images/prices/interior-gift-desktop.svg') center / 1px 100% no-repeat; transform: translateY(-50%); }
.interior-project__gift p + p { margin-top: 5px; max-width: 200px; color: rgba(255,255,255,.8); font-size: 13px; }
.interior-project__features { position: relative; grid-area: 1 / 2 / 3 / 3; padding-top: 12px; }
.interior-project__features::before { content: ''; position: absolute; top: 12px; bottom: 3px; right: calc(100% + 54px); width: 1px; background: url('images/prices/interior-divider-desktop.svg') center / 1px 100% no-repeat; }
.interior-project__features h3 { margin: 0; color: rgba(255,255,255,.6); font-size: 18px; font-weight: 400; line-height: 1.1; text-transform: uppercase; }
.interior-project__features ol { display: grid; gap: 29px; margin: 46px 0 0; padding: 0; list-style: none; }
.interior-project__features li { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 8px; font-size: 14px; line-height: 1.15; }
.interior-project__number { color: rgba(255,255,255,.5); }
.interior-project__features li p + p { max-width: 225px; margin-top: 12px; color: rgba(255,255,255,.8); font-size: 13px; }
.interior-project__image { grid-area: 1 / 3 / 3 / 4; height: 428px; overflow: hidden; }
.interior-project__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.interior-project__button { grid-area: 2 / 1; width: min(100%,374px); min-height: 50px; padding: 10px; border: .6px solid #fff; background: transparent; color: rgba(255,255,255,.8); font: inherit; font-size: 16px; cursor: pointer; transition: background-color .2s,color .2s; }
.interior-project__button:hover, .interior-project__button:focus-visible { background: #fff; color: #0b0d0d; }
@media (min-width: 1200px) and (max-width: 1350px) {
  .interior-project__card { column-gap: 32px; padding-left: 27px; }
  .interior-project h2 { font-size: 30px; }
  .interior-project__features::before { right: calc(100% + 32px); }
}
/* Match the scale used by the other prices-page cards on wide screens. */
@media (min-width: 1920px) {
  .interior-project { margin-top: 8.5714vw; }
  .interior-project__card { grid-template-rows: 1fr 3.5714vw; column-gap: 3.8571vw; row-gap: 1.0714vw; min-height: 35.2857vw; padding: 1.9286vw 1.3571vw 2.6429vw 2.7857vw; }
  .interior-project__summary { max-width: 26.7143vw; padding-top: .5714vw; }
  .interior-project h2 { max-width: 22.8571vw; font-size: 2.2857vw; }
  .interior-project .interior-project__subtitle { margin-top: 1vw; font-size: 1vw; }
  .interior-project .interior-project__price { gap: 1vw; margin-top: 1vw; font-size: 3.1429vw; }
  .interior-project__price span, .interior-project__rates { font-size: 1.1429vw; }
  .interior-project__rates { gap: .7143vw; margin-top: .9286vw; }
  .interior-project__gift { grid-template-columns: 5.7143vw minmax(0,1fr); gap: 2.2857vw; min-height: 5.7857vw; margin-top: 1.5714vw; padding: 1vw 1.0714vw; font-size: 1vw; }
  .interior-project__gift > div::before { right: calc(100% + 1.1429vw); height: 3.5vw; }
  .interior-project__gift p + p { max-width: 14.2857vw; margin-top: .3571vw; font-size: .9286vw; }
  .interior-project__features { padding-top: .8571vw; }
  .interior-project__features::before { top: .8571vw; bottom: .2143vw; right: calc(100% + 3.8571vw); }
  .interior-project__features h3 { font-size: 1.2857vw; }
  .interior-project__features ol { gap: 2.0714vw; margin-top: 3.2857vw; }
  .interior-project__features li { grid-template-columns: 2.1429vw minmax(0,1fr); gap: .5714vw; font-size: 1vw; }
  .interior-project__features li p + p { max-width: 16.0714vw; margin-top: .8571vw; font-size: .9286vw; }
  .interior-project__button { max-width: 26.7143vw; width: 100%; min-height: 3.5714vw; padding: .7143vw 1.4286vw; font-size: 1.1429vw; }
  .interior-project__image { height: 30.5714vw; }
}
@media (max-width: 1199px) {
  .interior-project { margin: 25px 20px 0; }
  .interior-project__card { display: flex; flex-direction: column; gap: 0; min-height: 0; padding: 0 0 26px; }
  .interior-project__image { order: -1; min-height: 0; height: auto; aspect-ratio: 728 / 355; }
  .interior-project__image img { object-position: center 66.4%; }
  .interior-project__summary { max-width: none; padding: 29px 29px 0; }
  .interior-project h2 { max-width: none; font-size: 22px; line-height: 1.1; }
  .interior-project .interior-project__subtitle { margin-top: 15px; font-size: 17px; }
  .interior-project .interior-project__price { gap: 10px; margin-top: 21px; font-size: 24px; line-height: 1.1; }
  .interior-project__price span { font-size: 17px; }
  .interior-project__rates { position: relative; gap: 13px; margin-top: 55px; font-size: 17px; }
  .interior-project__rates::before { content: ''; position: absolute; top: -28px; left: 0; width: 100%; height: .5px; background: url('images/prices/interior-price-tablet.svg') center / 100% 100% no-repeat; }
  .interior-project__gift { grid-template-columns: 78px minmax(0,1fr); gap: 34px; min-height: 68px; margin-top: 28px; font-size: 15px; }
  .interior-project__gift > div::before { height: 38px; background-image: url('images/prices/interior-gift-tablet.svg'); }
  .interior-project__gift p + p { max-width: none; font-size: 15px; }
  .interior-project__features { margin: 27px 29px 0; padding-top: 33px; }
  .interior-project__features::before { top: 0; right: auto; bottom: auto; left: 0; width: 100%; height: 1px; background: url('images/prices/interior-divider-tablet.svg') center / 100% 100% no-repeat; }
  .interior-project__features h3 { font-size: 16px; }
  .interior-project__features ol { gap: 24px; margin-top: 22px; }
  .interior-project__features li { grid-template-columns: 29px minmax(0,1fr); font-size: 16px; }
  .interior-project__features li p + p { max-width: none; margin-top: 8px; font-size: 16px; }
  .interior-project__button { width: auto; max-width: none; flex-shrink: 0; margin: 48px 29px 0; }
}
@media (max-width: 767px) {
  .interior-project { margin: 20px 10px 0; }
  .interior-project__card { padding-bottom: 25px; }
  .interior-project__image { aspect-ratio: 355 / 255; }
  .interior-project__image img { object-position: center 64%; }
  .interior-project__summary { padding: 24px 14px 0; }
  .interior-project h2 { font-size: 20px; line-height: 1.1; }
  .interior-project .interior-project__subtitle { margin-top: 15px; font-size: 14px; }
  .interior-project .interior-project__price { margin-top: 20px; font-size: 22px; }
  .interior-project__price span { font-size: 16px; }
  .interior-project__rates { margin-top: 58px; font-size: 16px; line-height: 1.1; }
  .interior-project__rates::before { top: -30px; background-image: url('images/prices/interior-price-mobile.svg'); }
  .interior-project__gift { grid-template-columns: 72px minmax(0,1fr); gap: 32px; min-height: 85px; margin-top: 18px; padding: 14px 12px; font-size: 14px; }
  .interior-project__gift > div::before { right: calc(100% + 15px); height: 53px; background-image: url('images/prices/interior-gift-mobile.svg'); }
  .interior-project__gift p + p { font-size: 14px; }
  .interior-project__features { margin: 26px 14px 0; padding-top: 28px; }
  .interior-project__features::before { background-image: url('images/prices/interior-divider-mobile.svg'); }
  .interior-project__features h3 { font-size: 14px; }
  .interior-project__features ol { margin-top: 20px; gap: 20px; }
  .interior-project__features li { grid-template-columns: 27px minmax(0,1fr); gap: 8px; font-size: 14px; }
  .interior-project__features li p + p { max-width: 268px; margin-top: 7px; font-size: 14px; }
  .interior-project__button { margin: 48px 14px 0; }
}

/* Long labels must stay inside their column in every tariff dialog. */
.price-package-modal__details dt,
.price-package-modal__details dd { min-width: 0; overflow-wrap: anywhere; }
.price-package-modal__action { position: static; margin: 50px auto 0; transform: none; }
@media (max-width: 767px) {
  .price-package-modal__content h2 { white-space: normal; }
  .price-package-modal__details { width: 100%; max-width: 100%; }
  .price-package-modal__action { max-width: 100%; margin-top: 36px; }
}
/* Keep the interior-project introduction readable inside the shared tariff dialog. */
.price-package-modal[data-price-package-current="interior"] .price-package-modal__lead {
  width: 450px;
  max-width: calc(100% - 80px);
}
@media (min-width: 1920px) {
  .price-package-modal[data-price-package-current="interior"] .price-package-modal__lead { width: 32.1429vw; }
}
@media (max-width: 767px) {
  .price-package-modal[data-price-package-current="interior"] .price-package-modal__lead { width: 100%; max-width: 100%; }
}
@media (max-width: 767px) {
  .service-trust + .interior-project { margin-top: 60px; }
}
/* Two levels of service navigation in the phone and tablet drawer. */
.mobile-menu__services { color: inherit; font: inherit; }
.mobile-submenu__inner { gap: 14px; padding-left: 0; color: inherit; font-size: inherit; }
.mobile-submenu--open .mobile-submenu__inner { padding-top: 14px; padding-bottom: 30px; }
.mobile-menu__services-group--open { margin-bottom: 8px; border-bottom-color: rgba(255,255,255,.25); }
.mobile-service-category { width: 100%; }
.mobile-service-category__toggle { display: flex; align-items: center; gap: 8px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.mobile-service-category__toggle img { flex: 0 0 auto; transition: transform 180ms ease; }
.mobile-service-category__toggle[aria-expanded="true"] img { transform: rotate(180deg); }
.mobile-service-category__links { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding-top: 12px; color: rgba(255,255,255,.7); font-size: 13px; line-height: 1.25; }
.mobile-service-category__links[hidden] { display: none; }
@media (max-width: 767px) {
  .mobile-menu__panel { width: min(320px, calc(100vw - 48px)); padding-top: 100px; }
}
/* Keep the mobile separators visible at fractional viewport sizes. */
@media (max-width: 767px) {
  .interior-project__rates::before,
  .interior-project__features::before {
    height: 0;
    border-top: 1px solid rgba(255, 255, 255, .35);
    background: none;
  }
}
