@charset "UTF-8";
:root {
  --color-glow: transparent;
  --shadow-header: 0 15px 35px rgba(0, 0, 0, 0.1);
  --transition: 0.4s;
  --shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
  --hover-speed: 0.4s;
  --hover-scale: 1.05;
}
/* Mobile: align the homepage stats and header controls to the site side gutters. */
@media (max-width: 781px) {
  body.home .custom-border-block > .mobile-no-borders {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  body.home .custom-border-block .mobile-no-borders .wp-block-group {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  #mega-menu-wrap-max_mega_menu_1 .mega-menu-toggle .mega-toggle-blocks-right {
    padding-right: 0 !important;
  }
  #mega-menu-wrap-max_mega_menu_1 .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated {
    position: relative;
    left: 4px;
  }
}
/* --- 1. УБИРАЕМ ОТСТУП 1.2rem (ФИНАЛЬНОЕ РЕШЕНИЕ) --- */
/* Этот селектор прицельно бьет по тому, что мы видели в инспекторе */
@media (min-width: 1111px) {
  body .wp-site-blocks > * {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
  }
}
/* 1. БАЗОВЫЕ НАСТРОЙКИ (ВСЕГДА) */
header {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999 !important;
}
/* 2. НАСТРОЙКИ ДЛЯ ПК (экраны от 1111px и выше) */
@media (min-width: 1111px) {
  /* Вверху страницы — прозрачный */
  /* При скролле — включаем стекло */
  body:has(.hero-cover) header:not(.scrolled), body:has(.hero-cover) header:not(.scrolled) .has-contrast-background-color {
    background-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transition: 0.3s !important;
  }
  header.scrolled, header.scrolled .has-contrast-background-color {
    background-color: #3c3938 !important;
    background: #3c3938 !important;
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37) !important;
    transition: 0.3s !important;
  }
}
/* ==========================================================================
   3. НАСТРОЙКИ ДЛЯ МОБИЛЬНЫХ И ПЛАНШЕТОВ (экраны 1110px и ниже)
   ========================================================================== */
@media (max-width: 1110px) {
  /* [СИГНАЛ НА РАСКРЫТИЕ] Мягко убираем обрезку, позволяя стеклу плавно "упасть" вниз */
  body::before {
    content: "" !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 25px !important;
    /* Ровно по высоте твоей закрытой шапки */
    background: #3c3938 !important;
    /* Чистый черный основной фон */
    z-index: 9998 !important;
  }
  header, header .has-contrast-background-color, header.scrolled, header.scrolled .has-contrast-background-color {
    background-color: #3c3938 !important;
    background: #3c3938 !important;
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37) !important;
    height: 103vh !important;
    clip-path: inset(0 0 calc(100vh - 70px) 0) !important;
    transition: clip-path 0.4s cubic-bezier(0.25, 1, 0.5, 1) !important;
  }
  body.mega-menu-max_mega_menu_1-mobile-open header, body.mega-menu-max_mega_menu_1-mobile-open header .has-contrast-background-color {
    clip-path: inset(0 0 0 0) !important;
    overflow-y: auto !important;
    transition: clip-path 0.4s cubic-bezier(0.25, 1, 0.5, 1) !important;
  }
}
/* --- КНОПКИ --- */
.wp-block-button__link {
  transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1) !important;
  transform: translateY(0);
  display: inline-block;
  border-style: solid;
}
.btn-lift .wp-block-button__link:hover {
  transform: translateY(-5px) !important;
}
.hvr-glass .wp-block-button__link:hover {
  background-color: rgba(255, 255, 255, 0.15) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  box-shadow: none !important;
}
.hvr-outline .wp-block-button__link:hover {
  background-color: transparent !important;
  backdrop-filter: blur(0px) !important;
}
.btn-solid-glow .wp-block-button__link:hover {
  box-shadow: none !important;
  transform: translateY(-5px) !important;
}
.colum-text .text:hover {
  text-shadow: 0 0 10px #ff8000;
}
html {
  scroll-behavior: smooth;
}
[id] {
  scroll-margin-top: 120px;
}
* {
  -webkit-tap-highlight-color: transparent !important;
}
*:focus:not(:focus-visible) {
  outline: none !important;
}
@media (min-width: 782px) {
  /* 1. Базовый контейнер */
  /* 2. Верхний хвостик линии (идет от начала секции до первой точки) */
  /* 3. Жестко фиксируем отступы между строками, чтобы математика не сбивалась */
  /* 4. САМА ТОЧКА (с плавным переходом) */
  /* 4.1. АКТИВНАЯ ТОЧКА (когда доскроллили) */
  .timeline-columns {
    position: relative;
    padding: 20px 0;
  }
  .timeline-columns::before {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
    width: 2px;
    height: 29px;
    /* Обрывается ровно перед первой точкой */
    background: #636363;
  }
  .timeline-columns .wp-block-columns {
    position: relative;
    margin-bottom: 30px !important;
  }
  .timeline-columns .wp-block-columns::before {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 15px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #ff8000;
    z-index: 3;
    transition: background-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s ease;
  }
  .timeline-columns .wp-block-columns.active-step::before {
    box-shadow: none;
    transform: translateX(-50%) scale(1.3);
  }
  .timeline-columns .wp-block-columns::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 35px;
    bottom: -39px;
    width: 2px;
    background: #636363;
    z-index: 1;
  }
  .timeline-columns .wp-block-columns:last-child::after {
    display: none !important;
  }
  .timeline-columns .hvr-txt-right, .timeline-columns .hvr-txt-right * {
    text-align: right !important;
  }
  .timeline-columns .hvr-txt-right {
    padding: 0 45px 0 0 !important;
  }
  .timeline-columns .hvr-txt-left, .timeline-columns .hvr-txt-left * {
    text-align: left !important;
  }
  .timeline-columns .hvr-txt-left {
    padding: 0 0 0 45px !important;
  }
}
/* ==========================================================================
   КНОПКА НА ВСЮ ШИРИНУ КОЛОНКИ
   ========================================================================== */
.full-width-btn, .full-width-btn .wp-block-button__link, .full-width-btn a {
  width: 100% !important;
  display: block !important;
  text-align: center !important;
  /* Центрируем текст внутри растянутой кнопки */
  box-sizing: border-box !important;
  /* Чтобы отступы (padding) не ломали ширину */
}
/* Если кнопка лежит в flex-контейнере Gutenberg, заставляем контейнер тоже растянуться */
.wp-block-buttons .wp-block-button.full-width-btn {
  flex-basis: 100% !important;
  width: 100% !important;
}
/* --- IMAGE COLUMN --- */
.wp-block-columns:has(.is-image-column) {
  align-items: stretch !important;
}
.wp-block-columns .is-image-column.wp-block-column {
  display: flex !important;
  padding: 0 !important;
  margin: 0 !important;
}
.wp-block-columns .is-image-column .wp-block-image {
  display: flex;
  flex: 1;
  margin: 0;
}
.wp-block-columns .is-image-column .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 780px) {
  /* 3. Магия: добавляем горизонтальную линию ВСЕМ колонкам с этим классом, кроме ПОСЛЕДНЕЙ */
  .custom-border-block .mobile-no-borders h2 {
    font-size: var(--wp--preset--font-size--xx-large) !important;
  }
  .mobile-no-borders {
    /* 1. Убираем вертикальные линии по бокам */
    border-left: none !important;
    border-right: none !important;
    /* 2. Добавляем отступы сверху и снизу, чтобы текст не прилипал к новым линиям */
    padding-top: 25px;
    padding-bottom: 25px;
  }
  .mobile-no-borders:not(:last-child) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    /* Серый/полупрозрачный цвет линии */
  }
  .mobile-spacer {
    /* Добавляет отступ снизу, например, 30 пикселей */
    margin-bottom: 60px !important;
  }
  .wp-block-group.mobile-spacer:has(> .custom-border-block) {
    margin-bottom: var(--wp--preset--spacing--40) !important;
  }
}
@media (min-width: 780px) {
  .spacer-mobile {
    margin-bottom: 60px !important;
  }
}
/* Делаем последний пункт меню кнопкой с фоном */
.mega-menu-wrap #mega-menu-max_mega_menu_1 > li.mega-menu-item:last-child > a.mega-menu-link {
  background-color: #ff8000 !important;
  /* Твой фирменный оранжевый цвет */
  color: #ffffff !important;
  /* Белый цвет текста */
  border-radius: 30px !important;
  /* Скругление углов, как у кнопок на сайте */
  padding-left: 20px !important;
  /* Внутренние отступы, чтобы кнопка дышала */
  padding-right: 20px !important;
  transition: 0.3s ease !important;
}
/* Эффект при наведении на кнопку */
.mega-menu-wrap #mega-menu-max_mega_menu_1 > li.mega-menu-item:last-child > a.mega-menu-link:hover {
  box-shadow: none !important;
  color: #3c3938 !important;
  /* Меняем цвет текста на ярко-оранжевый */
  background-color: #ffffff !important;
}
/* Эффект при наведении на ВСЕ ОСТАЛЬНЫЕ пункты меню */
.mega-menu-wrap #mega-menu-max_mega_menu_1 > li.mega-menu-item:not(:last-child) > a.mega-menu-link:hover {
  color: #ff8000 !important;
  /* Меняем цвет текста на ярко-оранжевый */
  transition: 0.3s ease !important;
  /* Плавный переход */
}
@media (max-width: 1110px) {
  #mega-menu-wrap-max_mega_menu_1 #mega-menu-max_mega_menu_1 > li.mega-menu-item:not(:last-child) > a.mega-menu-link, #mega-menu-wrap-max_mega_menu_1 #mega-menu-max_mega_menu_1 > li.mega-menu-item:not(:last-child) > a.mega-menu-link:hover, #mega-menu-wrap-max_mega_menu_1 #mega-menu-max_mega_menu_1 > li.mega-menu-item:not(:last-child) > a.mega-menu-link:focus {
    color: #ffffff !important;
    background-color: transparent !important;
  }
}
/* Настройки блока контактов при ширине меньше 1197px */
@media (max-width: 1196px) {
  /* Заставляем оставшуюся колонку с текстом растянуться на всю ширину */
  .glass-contact-box {
    flex-basis: 100% !important;
  }
  body .flex-columns {
    flex-direction: column !important;
  }
  body .flex-columns .wp-block-image img, body .flex-columns img {
    max-height: 550px !important;
    /* Жестко задаем максимальную высоту (подкрути под себя, например 350px-450px)  */
    object-fit: cover !important;
  }
  .column-reverse {
    flex-direction: column-reverse !important;
    /* Выстраивает элементы вертикально, но снизу вверх  */
  }
}
@media (max-width: 1033px) {
  body .columns-cover {
    flex-direction: column !important;
  }
  .hero-cover:has(.columns-cover > .img-contact-box) {
    align-items: center !important;
  }
  .hero-cover .wp-block-cover__inner-container > .mobile-spacer {
    display: none !important;
  }
  .hero-cover .columns-cover {
    margin-block-start: 0 !important;
    padding-top: 0 !important;
  }
  .columns-cover > .img-contact-box {
    display: none !important;
  }
}
@media (max-width: 781px) {
  .img-contact-box {
    display: none !important;
  }
  .wp-site-blocks .wp-block-button__link {
    padding: 12px 20px !important;
  }
  #Leistungen .wp-block-columns {
    row-gap: clamp(28px, var(--wp--preset--spacing--50), 40px) !important;
  }
  #Leistungen .wp-block-columns:not(:last-child) {
    margin-bottom: clamp(28px, var(--wp--preset--spacing--50), 40px) !important;
  }
}
/* --- 5. INTERAKTIVE ELEMENTE --- */
.hover-card-effect {
  transition: transform var(--hover-speed) ease, box-shadow var(--hover-speed) ease;
  will-change: transform;
  box-shadow: var(--shadow);
  z-index: 1;
}
.hover-card-effect:hover, .hover-card-effect.is-active {
  transform: scale(var(--hover-scale));
  box-shadow: var(--shadow);
  z-index: 10;
}
/* ===== Contact Form ===== */
.wpcf7 {
  background: #fff;
  border: 2px solid #2d2a29;
  border-radius: 16px;
  padding: 40px;
}
.wpcf7 label {
  display: block;
  font-weight: 700;
  color: #000;
}
.wpcf7 input:not([type=submit]):not([type=checkbox]), .wpcf7 select, .wpcf7 textarea {
  width: 100%;
  padding: 16px;
  border: 1px solid #d9d9d9;
  border-radius: 10px;
  box-sizing: border-box;
  font: inherit;
}
.wpcf7 textarea {
  height: 140px !important;
  min-height: 140px !important;
  resize: none;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
  outline: none;
  border-color: #f28c00;
}
.wpcf7 input[type=submit] {
  width: 100%;
  padding: 16px;
  border: 0;
  border-radius: 8px;
  background: #f28c00;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: 0.2s;
}
.wpcf7 input[type=submit]:hover {
  background: #d97706;
}
.wpcf7 a {
  color: #f28c00;
}
.wpcf7 .wpcf7-list-item {
  margin: 0 20px 0 0;
}
.review-card {
  border: 1px solid #222;
  border-radius: 18px;
  padding: 28px 24px;
  height: 420px;
  box-sizing: border-box;
  text-align: center;
  overflow: hidden;
}
.review-card .wp-block-image img {
  width: 96px;
  height: 96px;
  object-fit: cover;
}
.review-card .wp-block-heading {
  margin-bottom: 14px;
}
.review-card .review-stars {
  font-size: 34px !important;
  line-height: 1 !important;
  color: #f5b301 !important;
  margin: 10px 0 16px !important;
  letter-spacing: 2px;
}
.review-card .review-text {
  font-size: 15px !important;
  line-height: 1.6 !important;
  max-height: 150px;
  overflow-y: auto;
  padding-right: 6px;
  margin: 0;
}
.before-after-card {
  border-radius: 10px;
  overflow: hidden;
}
.before-after-card img, .before-after-card video, .before-after-card iframe, .before-after-card canvas {
  display: block;
  width: 100%;
  border-radius: 10px;
}
/* Полностью скрываем первую колонку (с фото) в блоке контактов при ширине меньше 1197px */
@media (max-width: 1196px) {
  .column-reverse {
    flex-direction: column-reverse !important;
    /* Выстраивает элементы вертикально, но снизу вверх  */
  }
}
/* ==========================================================================
   SAFE MOBILE FIXES: overflow, fixed header, form and footer
   ========================================================================== */
@media (max-width: 1110px) {
  body.page-id-2482 main, body.page-id-2479 main, body.page-id-2475 main, body.page-id-2521 main {
    padding-top: 40px;
  }
}
body.error404 main {
  padding-top: 110px;
}
@media (max-width: 781px) {
  footer .wp-block-columns.is-not-stacked-on-mobile {
    flex-wrap: wrap !important;
  }
  footer .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column {
    flex-basis: 100% !important;
    min-width: 0;
  }
}
@media (max-width: 480px) {
  main :where(p, li, h1, h2, h3, h4, a), footer :where(p, li, h1, h2, h3, h4, a) {
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
  }
  #bewertungen > .wp-block-heading, #bewertungen .wp-block-heading:first-child {
    font-size: clamp(2rem, 8.7vw, 2.125rem) !important;
  }
  .wpcf7 {
    padding: clamp(20px, 6vw, 24px);
    font-size: 18px;
    line-height: 1.55;
  }
  #kontakt > .wp-block-heading {
    font-size: var(--wp--preset--font-size--large) !important;
    line-height: 1.2 !important;
    font-weight: 700;
  }
}
/* ==========================================================================
   SERVICE PAGES: class-based responsive layout
   New gallery images inherit the grid when added inside .service-gallery.
   ========================================================================== */
.service-gallery {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: clamp(16px, 2vw, 24px) !important;
}
.service-gallery > .wp-block-column, .service-gallery > .wp-block-column > .wp-block-gallery {
  display: contents !important;
}
.service-gallery .wp-block-image {
  min-width: 0;
  margin: 0 !important;
  overflow: hidden;
  border-radius: 10px;
  aspect-ratio: 0.8;
}
.service-gallery .wp-block-gallery .wp-block-image {
  width: 100% !important;
  max-width: none !important;
}
.service-gallery .wp-block-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
@media (max-width: 781px) {
  .service-page {
    min-width: 0;
    padding-top: 25px;
  }
  .service-hero {
    flex-direction: column !important;
    row-gap: clamp(28px, 8vw, 40px) !important;
  }
  .service-hero__content {
    order: -1;
  }
  .service-title {
    font-size: clamp(2rem, 8.8vw, 2.35rem) !important;
    line-height: 1.15 !important;
    overflow-wrap: normal;
    hyphens: auto;
  }
  .service-hero__content > p {
    font-size: 18px !important;
    line-height: 1.55 !important;
  }
  .service-section-title, .service-contact__title {
    font-size: clamp(1.875rem, 8vw, 2.25rem) !important;
    line-height: 1.18 !important;
  }
  .service-hero__media, .service-hero__content, .service-details > .wp-block-column {
    min-width: 0;
  }
  .service-hero__media .wp-block-image {
    margin: 0 !important;
  }
  .service-hero__media img {
    display: block;
    width: 100% !important;
    height: auto !important;
  }
  .service-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px !important;
    margin-inline: clamp(16px, 6vw, 24px) !important;
  }
  .service-gallery .wp-block-image {
    aspect-ratio: 0.8;
  }
  .service-details {
    row-gap: clamp(28px, 8vw, 40px) !important;
  }
  .service-cta {
    margin-top: clamp(20px, 6vw, 28px) !important;
  }
  .service-contact {
    padding-inline: 0 !important;
  }
  .service-contact__columns {
    flex-direction: column !important;
    gap: 0 !important;
  }
  .service-contact__form {
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: none !important;
  }
  .service-contact__form .wpcf7 {
    width: 100%;
    box-sizing: border-box;
  }
  .mobile-hide-when-stacked {
    display: none !important;
  }
  body:has(.service-page) .ht-ctc-chat {
    right: 10px !important;
    bottom: 10px !important;
    transform: scale(0.68);
    transform-origin: right bottom;
  }
}
@media (min-width: 782px) {
  body:has(.service-page) main {
    margin-bottom: 0 !important;
  }
  body:has(.service-page) footer.wp-block-template-part {
    margin-top: 0 !important;
  }
  .service-contact__portrait {
    display: flex !important;
    flex-direction: column;
    justify-content: flex-end;
    align-self: stretch;
  }
  .service-contact__portrait > .wp-block-image {
    margin-top: auto !important;
    margin-bottom: 0 !important;
  }
  .service-contact__portrait img {
    display: block;
  }
}
@media (min-width: 782px) and (max-width: 1100px) {
  .service-contact__columns {
    gap: 0 !important;
  }
  .service-contact__portrait {
    display: none !important;
  }
  .service-contact__form {
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: none !important;
  }
}
/* ========================================================================== 
   SERVICE PAGES: marker and spacing refinement
   ========================================================================== */
.service-title mark {
  background-color: transparent !important;
  padding: 0;
}
/* ==========================================================================
   SERVICE PAGES: fullscreen work-photo viewer
   ========================================================================== */
body:not(.home):has(.service-page) .service-lightbox-trigger {
  cursor: zoom-in;
}
body.service-lightbox-open {
  overflow: hidden !important;
}
body.service-lightbox-open .ht-ctc-chat {
  visibility: hidden !important;
}
.service-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: none;
  place-items: center;
  box-sizing: border-box;
  padding: 24px 64px;
  background: rgba(12, 12, 12, 0.96);
  color: #fff;
  touch-action: pan-y;
}
.service-lightbox.is-open {
  display: grid;
}
.service-lightbox__figure {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  margin: 0;
}
.service-lightbox__image {
  display: block;
  width: auto;
  height: auto;
  max-width: min(1600px, calc(100vw - 128px));
  max-height: calc(100dvh - 80px);
  object-fit: contain;
  border-radius: 6px;
}
.service-lightbox__close, .service-lightbox__nav {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font: inherit;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}
.service-lightbox__close {
  top: max(12px, env(safe-area-inset-top));
  right: max(12px, env(safe-area-inset-right));
  font-size: 0;
}
.service-lightbox__close::before, .service-lightbox__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}
.service-lightbox__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.service-lightbox__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.service-lightbox__nav {
  top: 50%;
  transform: translateY(-50%);
}
.service-lightbox__prev {
  left: 12px;
}
.service-lightbox__next {
  right: 12px;
}
.service-lightbox__counter {
  position: absolute;
  bottom: max(12px, env(safe-area-inset-bottom));
  left: 50%;
  transform: translateX(-50%);
  padding: 5px 10px;
  border-radius: 20px;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: 14px;
  line-height: 1.2;
}
@media (max-width: 600px) {
  .service-lightbox {
    padding: 52px 12px 64px;
  }
  .service-lightbox__image {
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - 116px);
  }
  .service-lightbox__nav {
    width: 44px;
    height: 44px;
    font-size: 26px;
  }
}
@media (max-width: 781px) {
  .service-hero__content, .service-details__content {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    padding-left: clamp(20px, 6vw, 24px) !important;
    padding-right: clamp(12px, 4vw, 16px) !important;
  }
  .service-details {
    width: auto !important;
    margin-inline: clamp(16px, 6vw, 24px) !important;
  }
  .service-details__media, .service-details__media .wp-block-image {
    width: 100% !important;
    margin-inline: 0 !important;
  }
  .service-details__media img {
    display: block;
    width: 100% !important;
    height: auto !important;
  }
}
/* ==========================================================================
   MOBILE SPACING SYSTEM
   24px inside groups; 44-56px around major sections.
   ========================================================================== */
@media (max-width: 781px) {
  .entry-content {
    --mobile-inner-spacing: 24px;
    --mobile-section-spacing: clamp(44px, 12vw, 56px);
    --mobile-item-spacing: clamp(36px, 10vw, 48px);
  }
  .mobile-inner-spacing {
    --wp--style--block-gap: var(--mobile-inner-spacing);
  }
  .mobile-section-spacing, body.home .entry-content > .wp-block-group:not(.mobile-spacer), .service-page .service-content, .service-page .service-contact {
    --wp--style--block-gap: var(--mobile-inner-spacing);
    padding-top: var(--mobile-section-spacing) !important;
    padding-bottom: var(--mobile-section-spacing) !important;
  }
  body:not(.home) .entry-content:not(:has(> .service-page)) {
    --wp--style--block-gap: var(--mobile-inner-spacing);
  }
  body.home .custom-border-block {
    margin-top: var(--mobile-section-spacing) !important;
    margin-bottom: 0 !important;
  }
  body.home .wp-block-group.mobile-spacer:has(> .custom-border-block) {
    margin-bottom: var(--mobile-section-spacing) !important;
  }
  .entry-content .wp-block-group > .wp-block-columns:not(.custom-border-block):not(.service-gallery):not(.service-hero):not(.service-details), .mobile-item-list > .wp-block-columns {
    row-gap: var(--mobile-inner-spacing) !important;
  }
  .entry-content .wp-block-group > .wp-block-columns + .wp-block-columns, .mobile-item-list > * + * {
    margin-top: var(--mobile-item-spacing) !important;
  }
}
/* ==========================================================================
   LEGAL PAGES: readable measure and consistent content rhythm
   ========================================================================== */
.legal-page {
  width: 100%;
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(24px, 4vw, 48px) !important;
  padding-right: clamp(24px, 4vw, 48px) !important;
  box-sizing: border-box;
  --wp--style--block-gap: 0;
}
.legal-page > h2 {
  margin-top: 0;
  margin-bottom: clamp(28px, 4vw, 40px);
}
.legal-page > h3 {
  margin-top: clamp(32px, 5vw, 48px);
  margin-bottom: 14px;
}
.legal-page > p, .legal-page > ul, .legal-page > ol {
  margin-top: 0;
  margin-bottom: 20px;
  line-height: 1.7;
}
.legal-page li + li {
  margin-top: 10px;
}
.legal-page a {
  overflow-wrap: anywhere;
}
@media (max-width: 781px) {
  .legal-page {
    max-width: none !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .legal-page > h2 {
    margin-bottom: 28px;
  }
  .legal-page > h3 {
    margin-top: 32px;
    margin-bottom: 12px;
  }
  .legal-page > p, .legal-page > ul, .legal-page > ol {
    margin-bottom: 18px;
    line-height: 1.65;
  }
}
/*# sourceMappingURL=data:application/json,%7B%22version%22%3A3%2C%22sourceRoot%22%3A%22%2F%22%2C%22sources%22%3A%5B%22wp-content%2Fcustom_codes%2F2099-scss-default.scss%22%2C%22(stdin)%22%5D%2C%22names%22%3A%5B%5D%2C%22mappings%22%3A%22%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACAA%3BADUA%3BAACE%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACzBF%3BAAAA%3BADkCA%3BAACA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACnCA%3BAD2CA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAC3CA%3BADoDA%3BAAAA%3BAAAA%3BAAEI%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAYA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAClEJ%3BAAAA%3BAAAA%3BAD8EA%3BAAAA%3BAAEC%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAWG%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAaA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACxGJ%3BADsHA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAGA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAACA%3BAAAA%3BAAAA%3BAACA%3BAAAA%3BAAAA%3BAACA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAEI%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAYA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAeA%3BAAAA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAWA%3BAAAA%3BAAAA%3BAAGA%3BAAAA%3BAAAA%3BAACA%3BAAAA%3BAAAA%3BAAEA%3BAAAA%3BAAAA%3BAACA%3BAAAA%3BAAAA%3BAAAA%3BAC7NJ%3BAAAA%3BAAAA%3BADqOA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACrOA%3BAD%2BOA%3BAAAA%3BAAAA%3BAAAA%3BAC%2FOA%3BADuPA%3BAAAA%3BAAAA%3BAAGA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAUA%3BAAAA%3BAACE%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAWA%3BAAAA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAMF%3BAACA%3BAAAA%3BAAAA%3BAAAA%3BAC9SA%3BADoTA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACpTA%3BAD8TA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAC9TA%3BADqUA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAACI%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAC7UJ%3BADsVA%3BAAAA%3BAAEI%3BAAAA%3BAAAA%3BAAMF%3BAAAA%3BAAAA%3BAAID%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAASA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMD%3BAACE%3BAAAA%3BAAAA%3BAAIE%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAKJ%3BAACI%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BACrZJ%3BAD8ZA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACraA%3BADmbA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAWA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAaA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAASA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAUA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAQA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAWA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACliBA%3BAD%2BiBA%3BAACC%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAChjBD%3BAAAA%3BAAAA%3BADyjBA%3BAACE%3BAAAA%3BAAAA%3BAAAA%3BAAQF%3BAAAA%3BAAAA%3BAAIA%3BAACE%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMF%3BAACE%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACpmBF%3BAAAA%3BAAAA%3BAAAA%3BADgnBA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAQA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAACE%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAQF%3BAACE%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAKF%3BAACE%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACrxBF%3BAAAA%3BAAAA%3BAD%2BxBA%3BAAAA%3BAAAA%3BAAAA%3BAC%2FxBA%3BAAAA%3BAAAA%3BADuyBA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAaA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAQA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAUA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAmBA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAYA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAaA%3BAACE%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAOF%3BAACE%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAASA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BACn8BF%3BAAAA%3BAAAA%3BAAAA%3BAD88BA%3BAACE%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAASA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BACp%2FBF%3BAAAA%3BAAAA%3BAD6%2FBA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAWA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAQA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAIA%3BAACE%3BAAAA%3BAAAA%3BAAAA%3BAAAA%3BAAMA%3BAAAA%3BAAAA%3BAAIA%3BAAAA%3BAAAA%3BAAAA%3BAAKA%3BAAAA%3BAAAA%3BAAAA%3BAAAA%22%7D */