@font-face {
  font-family: "Inter";
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-Light.woff") format("woff");
}
@font-face {
  font-family: "Inter";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-Regular.woff") format("woff");
}
@font-face {
  font-family: "Inter";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-Medium.woff") format("woff");
}
@font-face {
  font-family: "Inter";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-SemiBold.woff") format("woff");
}
@font-face {
  font-family: "Inter";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-Bold.woff") format("woff");
}
body {
  font-family: "Inter", sans-serif;
  font-weight: 400;
}

*, *::after, *::before {
  box-sizing: border-box;
  outline: none !important;
}

h1, h2, h3, h4, h5, h6, p {
  margin: 0;
  padding: 0;
}

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  text-decoration: none;
}

body, html {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  min-width: 320px;
  max-width: 100%;
}

button, input, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: none;
  border: none;
  outline: none;
}

:root {
  --color-primary: #D7161E;
  --color-text: #222;
  --color-green: #147A55;
  --color-grey: #6B6B66;
  --color-text-grey: #595959;
}

.container {
  max-width: 1232px;
  padding: 0px 16px;
  margin: 0 auto;
}

section {
  padding: 64px 0;
}

.site-container {
  height: 100%;
}

.site-container {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.page-container {
  flex: 1 0 auto;
}

.footer {
  flex: 0 0 auto;
}

.title {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}
@media (max-width: 768px) {
  .title {
    font-size: 20px;
  }
}

.text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.text p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}

html {
  overflow-x: hidden;
}

.footer {
  padding-top: 28px;
  border-top: 1px solid rgba(34, 34, 34, 0.15);
}
.footer__top .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  padding: 0 24px 18px;
}
.footer__logo {
  display: flex;
}
.footer__logo img {
  width: 100%;
  height: auto;
  max-width: 170px;
}
.footer__socials {
  display: flex;
  gap: 16px;
}
.footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  text-decoration: none;
  transition: 0.3s ease;
}
.footer__social-link:hover {
  transform: scale(1.1);
}
.footer__social-link img {
  width: 32px;
  height: 32px;
}
.footer__left {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.footer__left p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.footer__nav {
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}
.footer__nav .container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 64px;
  padding: 20px 24px 24px;
}
.footer__col-title {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #595959;
  margin-bottom: 24px;
}
.footer__col-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.footer__col-link {
  display: block;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #222;
  text-decoration: none;
  transition: color 0.2s;
}
.footer__col-link:hover {
  color: var(--color-primary);
}
.footer__bottom {
  border-top: 1px solid rgba(34, 34, 34, 0.15);
  background: #f3f3f3;
}
.footer__bottom .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px;
  gap: 32px;
  flex-wrap: wrap;
}
.footer__items {
  padding: 20px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  background: #f3f3f3;
}
.footer__items .container {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.footer__contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.footer__contact:last-of-type {
  margin-bottom: 0;
}
.footer__contact strong {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #222;
}
.footer__contact p {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: #595959;
}
.footer__contact a {
  display: block;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: #595959;
}
.footer__contact a:hover {
  color: var(--color-primary);
}
.footer__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.footer__item_title {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #595959;
}
.footer__item_links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.footer__item-link {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #222;
}
.footer__item-link:hover {
  color: var(--color-primary);
}
.footer__partners {
  padding: 42px 0;
}
.footer__partners .container {
  display: flex;
  gap: 46px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
.footer__partners img {
  width: 100%;
}
.footer__copy {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #595959;
}
.footer__bottom-nav {
  display: flex;
  gap: 32px;
  list-style: none;
  padding: 0;
  flex-wrap: wrap;
  margin: 0;
}
.footer__bottom-link {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #222;
  text-decoration: none;
  transition: color 0.2s;
}
.footer__bottom-link:hover {
  color: var(--color-primary);
}

.header {
  position: static;
  z-index: 200;
  background: #fff;
}
.header .search-container {
  position: relative;
  display: inline-block;
}
.header .search-button,
.header .search-container,
.header .mob-open-search {
  cursor: pointer;
}
.header .mobile-search {
  position: absolute;
  display: none;
  left: 50%;
  top: 13px;
  width: 100vw;
  transform: translateX(-50%);
  height: 60px;
  z-index: 10;
}
.header .mobile-search form {
  display: flex;
  align-items: center;
  height: 60px;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding-right: 20px;
  background: var(--Disabled-grey, #ededed);
}
.header .mobile-search form .search-submit {
  cursor: pointer;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
}
.header .search-input {
  width: 250px;
  padding: 5px;
  border: 1px solid #ccc;
  border-radius: 4px;
  margin-top: 10px;
}
.header .search-results {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 250px;
  border: 1px solid #ccc;
  background: white;
  border-radius: 4px;
  max-height: 200px;
  overflow-y: auto;
  z-index: 1000;
}
.header .search-results div {
  padding: 8px;
  cursor: pointer;
}
.header .search-results div:hover {
  background: #f0f0f0;
}
.header__promo {
  position: relative;
  padding: 16px 0;
  overflow: hidden;
}
.header__promo-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  z-index: -1;
}
.header__promo .container {
  display: flex;
  justify-content: center;
}
.header__promo-text {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: center;
}
.header__promo-link {
  color: #fff;
  text-decoration: underline;
  transition: opacity 0.2s;
}
.header__promo-link:hover {
  opacity: 0.8;
}
.header__main {
  background: #fff;
}
.header__main .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 82px;
  position: relative;
}
.header__email {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: var(--color-text);
  transition: color 0.2s;
  flex-shrink: 0;
}
.header__email:hover {
  color: var(--color-primary);
}
.header__email:hover svg path {
  stroke: var(--color-primary);
}
.header__logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.header__logo picture,
.header__logo img {
  display: block;
}
.header__logo img {
  height: 52px;
  width: 100%;
  max-width: 139px;
}
.header__actions {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-shrink: 0;
}
.header__btn-3d {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  display: inline-flex;
  align-items: center;
  padding: 20px 24px;
  border-radius: 6px;
  background: #222;
  color: #fff;
  transition: opacity 0.2s;
  white-space: nowrap;
  height: 52px;
}
.header__btn-3d:hover {
  opacity: 0.82;
}
.header__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s;
}
.header__icon:hover svg path {
  stroke: var(--color-primary);
}
.header__nav {
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  background: #f3f3f3;
  position: relative;
  height: auto !important;
}
.header__nav .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.header__nav-list {
  display: flex;
  align-items: center;
}
.header__nav-item {
  position: relative;
}
.header__nav-item--dropdown:hover > .header__nav-link, .header__nav-item--mega:hover > .header__nav-link {
  color: var(--color-primary);
}
.header__nav-item--dropdown:hover > .header__nav-link .header__nav-arrow, .header__nav-item--mega:hover > .header__nav-link .header__nav-arrow {
  transform: rotate(180deg);
}
.header__nav-item--dropdown:hover > .header__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.header__nav-link {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 15px 16px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text);
  font-family: "Inter", sans-serif;
  white-space: nowrap;
  transition: color 0.2s;
}
.header__nav-link:hover {
  color: var(--color-primary);
}
.header__nav-arrow {
  flex-shrink: 0;
  transition: transform 0.22s ease;
}
.header__dropdown {
  position: absolute;
  top: 110%;
  left: 0;
  border-radius: 8px;
  border: 1px solid var(--Stroke, rgba(34, 34, 34, 0.15));
  background: var(--White, #fff);
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.22s ease, visibility 0.22s ease, transform 0.22s ease;
  z-index: 100;
  min-width: 460px;
  padding: 8px;
}
.header__dropdown::before {
  content: "";
  position: absolute;
  top: -20px;
  left: 0;
  right: 0;
  height: 20px;
}
.header__dropdown--mega {
  left: 50%;
  right: auto;
  width: calc(100% - 30px);
  max-width: 1200px;
  min-width: 0;
  border-radius: 0 0 10px 10px;
  padding: 28px 0;
  transform: translateX(-50%) translateY(8px);
}
.header__dropdown--mega.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}
.header__dropdown-meta {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-size: 12px;
  color: #999;
  padding: 10px 20px 4px;
  letter-spacing: 0.02em;
}
.header__dropdown-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  color: var(--color-text);
  transition: background 0.15s;
  border-radius: 6px;
  border: 2px solid transparent;
}
.header__dropdown-link:hover {
  border: 2px solid #D7161E;
}
.header__dropdown-item {
  margin-bottom: 2px;
}
.header__dropdown-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: rgba(107, 107, 102, 0.25);
}
.header__dropdown-dot--red {
  background: var(--color-primary);
}
.header__dropdown-dot--green {
  background: var(--color-green);
}
.header__dropdown-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-width: 0;
}
.header__dropdown-title {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
}
.header__dropdown-desc {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.header__dropdown-badge {
  flex-shrink: 0;
  padding: 4px 12px;
  border-radius: 6px;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  white-space: nowrap;
}
.header__dropdown-badge--red {
  color: var(--color-primary);
  background: rgba(192, 57, 43, 0.15);
}
.header__dropdown-badge--green {
  background: rgba(20, 122, 85, 0.15);
  color: var(--color-green);
}
.header__dropdown-badge--grey {
  background: rgba(107, 107, 102, 0.15);
  color: var(--color-grey);
}
.header__mega-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  width: 100%;
}
.header__mega-title {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
  padding: 8px 0;
  margin-bottom: 8px;
  margin-top: 0;
}
.header__mega-col {
  border-right: 1px solid rgba(34, 34, 34, 0.15);
  padding-right: 8px;
}
.header__mega-col:last-of-type {
  padding-right: 0;
  border-right: 0;
}
.header__mega-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.header__mega-link {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 6px;
  color: var(--color-text);
  border: 2px solid transparent;
  transition: background 0.15s, color 0.15s;
}
.header__mega-link:hover, .header__mega-link--active {
  border: 2px solid #D7161E;
}
.header__hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  cursor: pointer;
  color: var(--color-text);
  flex-shrink: 0;
}
.header__hamburger-close {
  display: none;
}
.header__hamburger.is-open .header__hamburger-open {
  display: none;
}
.header__hamburger.is-open .header__hamburger-close {
  display: flex;
}
.header__overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 290;
}
.header__overlay.is-open {
  display: block;
}
.header__mobile-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  background: #fff;
  z-index: 300;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.header__mobile-menu.is-open {
  transform: translateX(0);
}
.header__mobile-search-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  flex-shrink: 0;
}
.header__mobile-search-input {
  flex: 1;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  border: none;
  outline: none;
  background: none;
  font-family: "Inter", sans-serif;
}
.header__mobile-search-input::-moz-placeholder {
  color: #999;
}
.header__mobile-search-input:-ms-input-placeholder {
  color: #999;
}
.header__mobile-search-input::placeholder {
  color: #999;
}
.header__mobile-nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 8px 0;
}
.header__mobile-item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}
.header__mobile-link {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 16px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text);
  font-family: "Inter", sans-serif;
  text-align: left;
}
.header__mobile-arrow {
  flex-shrink: 0;
  transition: transform 0.22s ease;
}
.header__mobile-submenu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.header__mobile-submenu .header__dropdown-title {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.header__mobile-submenu .header__dropdown-desc {
  font-size: 10px;
}
.header__mobile-submenu .header__dropdown-badge {
  font-size: 12px;
}
.header__mobile-submenu ul {
  padding: 0 0 8px;
}
.header__mobile-item--accordion.is-open .header__mobile-arrow {
  transform: rotate(180deg);
}
.header__mobile-item--accordion.is-open .header__mobile-submenu {
  max-height: 600px;
}
.header__mobile-subsection + .header__mobile-subsection {
  border-top: 1px solid rgba(0, 0, 0, 0.07);
}
.header__mobile-section-title {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
  padding: 8px 16px;
}
.header__mobile-sub-link {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 16px;
  color: var(--color-text);
  transition: color 0.15s;
}
.header__mobile-sub-link:hover {
  color: var(--color-primary);
}
.header__mobile-footer {
  padding: 16px 20px 24px;
  flex-shrink: 0;
}
.header__mobile-btn {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 20px;
  background: #222;
  color: #fff;
  border-radius: 8px;
  transition: opacity 0.2s;
}
.header__mobile-btn:hover {
  opacity: 0.82;
}
.header__b2b {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  display: flex;
  height: 36px;
  padding: 0 24px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  color: var(--color-text);
  border-radius: 6px;
  border: 1px solid var(--Stroke, rgba(34, 34, 34, 0.15));
  white-space: nowrap;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  flex-shrink: 0;
}
.header__b2b:hover {
  background: var(--color-text);
  color: #fff;
}

.hero {
  position: relative;
  padding: 0;
  min-height: 640px;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(270deg, rgba(34, 34, 34, 0) 0%, rgba(34, 34, 34, 0.7) 100%);
  z-index: 1;
}
.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.hero .container {
  position: relative;
  z-index: 2;
  width: 100%;
}
.hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  max-width: 800px;
}
.hero__title {
  font-size: 36px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: #fff;
}
@media (max-width: 768px) {
  .hero__title {
    font-size: 24px;
  }
}
.hero__text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #fff;
}
.hero__actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
}
.hero__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.hero__btn:hover {
  opacity: 0.85;
}
.hero__btn--transparent {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: transparent;
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  height: 56px;
  justify-content: center;
  border: 1px solid #fff;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.hero__btn--transparent:hover {
  opacity: 0.85;
}

.simple.grey {
  background: #f3f3f3;
}
.simple.simple--full {
  padding-bottom: 0;
}
.simple.simple--full .simple__content {
  padding-bottom: 64px;
  /* без фото колонка под него не рисуется — текст занимает всю ширину,
     иначе справа оставалась пустая половина секции */
  width: 100%;
}
/* Блок без картинки: колонки .simple__media в разметке нет вовсе, и текст
   оставался в левой половине (у .simple__content width:50%). Тянем на всю
   ширину по факту «колонка одна», не завися от модификатора в поле блока. */
.simple__inner > .simple__content:only-child {
  width: 100%;
}
.simple.reverse .simple__inner {
  flex-direction: row-reverse;
}
.simple__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 64px;
}
.simple__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  width: 50%;
  flex: 1;
}
.simple__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin-top: 16px;
}
.simple__btn:hover {
  opacity: 0.85;
}
.simple__media {
  flex: 1;
  width: 50%;
  display: flex;
}
.simple__image {
  width: 100%;
  border-radius: 6px;
  height: auto;
}
.simple ul {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 8px;
}
.simple ul li {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
  padding-left: 40px;
}
.simple ul li::before {
  position: absolute;
  content: "";
  width: 24px;
  height: 24px;
  left: 0;
  background: url("../img/check.svg") no-repeat;
}
.simple ul li strong {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .simple ul li strong {
    font-size: 16px;
  }
}
.simple ul li p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #4D4D4D;
}
.simple__gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  width: 100%;
}
.simple__gallery-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.simple__gallery-image {
  display: block;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 8px;
  background: lightgray;
}
.simple__gallery-image--big {
  height: 374px;
}
.simple__gallery-image--small {
  height: 182px;
}
.simple p {
  margin-bottom: 16px;
}
.simple p:last-of-type {
  margin-bottom: 0;
}

.categories__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.categories .container {
  max-width: 1440px;
  padding: 0 10px;
}
.categories__item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.categories__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(34, 34, 34, 0) 50%, #222 100%);
  z-index: 1;
}
.categories__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.categories__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 24px;
}
.categories__title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: #fff;
}
@media (max-width: 768px) {
  .categories__title {
    font-size: 16px;
  }
}
.categories__text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #fff;
}

.reasons.grey {
  background: #f3f3f3;
}
.reasons__list {
  display: flex;
  flex-direction: column;
  gap: 42px;
}
.reasons__items {
  border-top: 1px solid rgba(34, 34, 34, 0.15);
}
.reasons__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(34, 34, 34, 0.15);
}
.reasons__item-info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.reasons__item-title {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 500;
}
.reasons__item-desc {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.reasons__item-number {
  font-size: 40px;
  font-style: normal;
  font-weight: 300;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .reasons__item-number {
    font-size: 32px;
  }
}
.reasons__button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.reasons__button:hover {
  opacity: 0.85;
}

.video {
  padding: 0;
}
.video__player {
  position: relative;
  display: block;
  max-height: 720px;
  overflow: hidden;
  background: #000;
}
.video__media {
  display: block;
  width: 100%;
  height: auto;
  max-height: 720px;
  -o-object-fit: cover;
  object-fit: cover;
}
.video__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
  transition: opacity 0.2s;
}
.video__poster.is-hidden {
  display: none;
}
.video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  transition: opacity 0.2s;
}
.video__play:hover {
  opacity: 0.85;
}
.video__play.is-hidden {
  display: none;
}

.features.grey {
  background: #f3f3f3;
}
.features__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 64px;
}
.features__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin-top: 42px;
}
.features__btn:hover {
  opacity: 0.85;
}
.features__gallery {
  overflow: hidden;
}
.features__gallery-wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.features__gallery-slide {
  display: flex;
  flex-direction: column;
  gap: 24px;
  height: auto;
}
.features__image {
  width: 100%;
  height: 524.444px;
  align-self: stretch;
  aspect-ratio: 3/4;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 6px;
  background: lightgray;
}
.features__caption {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.features__caption-title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .features__caption-title {
    font-size: 16px;
  }
}
.features__caption-desc {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.features__nav {
  display: none;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}
.features__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid var(--Stroke, rgba(34, 34, 34, 0.15));
  background: var(--White, #fff);
  cursor: pointer;
  transition: background 0.2s;
}
.features__nav-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}

.products__head {
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 32px;
}
.products__head-left {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.products .shop__card-left {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  display: flex;
  flex-direction: column;
}
.products__more-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: transparent;
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  height: 56px;
  justify-content: center;
  border: 1px solid #fff;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  border: 1px solid var(--Stroke, rgba(34, 34, 34, 0.15));
  color: var(--color-text);
  height: 44px;
  padding: 10px 16px;
  margin-top: auto;
}
.products__more-link:hover {
  opacity: 0.85;
}
.products__gallery {
  min-width: 0;
  overflow: hidden;
  margin-bottom: 32px;
}
.products__gallery-wrapper {
  display: flex;
}
.products__card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100%;
}
.products__image-wrap {
  position: relative;
  display: flex;
}
.products__image {
  width: 100%;
  height: 297.931px;
  align-self: stretch;
  aspect-ratio: 29/30;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.products__badge {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  padding: 4px 12px;
  border-radius: 6px;
  color: #fff;
  background: #65b741;
}
.products__info {
  display: flex;
  flex-direction: column;
  gap: 4.5px;
  margin-top: 8px;
}
.products__title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .products__title {
    font-size: 16px;
  }
}
/* Ähnliche-Modelle-Slider: Titel auf 2 Zeilen reservieren, damit Preis + Buttons
   über alle Karten hinweg auf einer Höhe stehen (auch bei ein-/zweizeiligen Namen). */
.products--related .products__title {
  min-height: 2.4em;
}
.products__price {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.products__controls {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
}
/* Einzelstück (kein Mengenwähler): der Warenkorb-Button füllt die Reihe. */
.products__controls--single .products__cart-btn {
  flex: 1;
}
.products__qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  flex-shrink: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  transition: background 0.2s;
}
.products__qty-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}
.products__qty-input {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  width: 100%;
  height: 44px;
  min-width: 0;
  flex: 1;
  text-align: center;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
}
.products__cart-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 10px;
  flex-shrink: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  transition: border-color 0.2s;
}
.products__cart-btn svg path {
  transition: stroke 0.2s;
}
.products__cart-btn:hover {
  border-color: var(--color-primary);
}
.products__cart-btn:hover svg path {
  stroke: var(--color-primary);
}
.products__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.products__button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.products__button:hover {
  opacity: 0.85;
}
.products__button-transparent {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: transparent;
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  height: 56px;
  justify-content: center;
  border: 1px solid #fff;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  color: var(--color-text);
  border: 1px solid var(--Stroke, rgba(34, 34, 34, 0.15));
}
.products__button-transparent:hover {
  opacity: 0.85;
}
.products__button--mobile {
  display: none;
}
.products__nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}
.products__nav.is-hidden button {
  display: none;
}
.products__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid var(--Stroke, rgba(34, 34, 34, 0.15));
  background: var(--White, #fff);
  cursor: pointer;
  transition: background 0.2s;
}
.products__nav-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}

.philosophy {
  background: #f3f3f3;
}
.philosophy__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 32px;
}
.philosophy__head .title {
  flex-shrink: 0;
  max-width: 300px;
}
.philosophy__head .text {
  width: 49%;
  color: var(--color-text-grey);
}
.philosophy__gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 224px 406px;
  gap: 10px;
}
.philosophy__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 8px;
  background: lightgray;
}
.philosophy__image--main {
  grid-row: 1/3;
  height: 640px;
}
.philosophy__image--top {
  height: 224px;
}
.philosophy__image--bottom {
  height: 406px;
}

.breadcrumbs {
  padding: 20px 0;
  position: relative;
  z-index: 2;
}
.breadcrumbs.breadcrumbs--white .breadcrumbs__link, .breadcrumbs.breadcrumbs--white .breadcrumbs__sep {
  color: rgba(255, 255, 255, 0.5);
}
.breadcrumbs.breadcrumbs--white .breadcrumbs__current {
  color: #fff;
}
.breadcrumbs .container {
  padding-top: 0;
  padding-bottom: 0;
}
.breadcrumbs__list {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.breadcrumbs__link {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
  transition: color 0.2s;
}
.breadcrumbs__link:hover {
  color: var(--color-primary);
}
.breadcrumbs__sep {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: rgba(34, 34, 34, 0.3);
}
.breadcrumbs__current {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text);
}

.product {
  padding-top: 0;
}
.product.product--simple .product__info-top {
  display: flex;
  flex-direction: column;
}
.product.product--simple .product__title-row {
  flex-direction: row;
  align-items: center;
}
.product.product--simple .product__code {
  margin: 0;
  line-height: normal;
}
.product__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
}
.product__gallery {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  overflow-x: hidden;
}
.product__actions table.variations,
.product__actions .reset_variations,
.product__actions .woocommerce-variation {
  display: none !important;
}
.product__actions .variations_form table.variations {
  display: none !important;
}
.product__actions .variations_form .reset_variations {
  display: none !important;
}
.product__actions .variations_form .woocommerce-variation {
  display: none !important;
}
.product__actions .variations_form .woocommerce-variation-add-to-cart {
  display: contents;
}
.product__price--empty {
  color: var(--color-text-grey);
}
.product__gallery-main {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
}
.product__gallery-image {
  display: block;
  width: 100%;
  /* Рамка слайда задаётся ПРОПОРЦИЕЙ, а не фиксированной высотой. С высотой
     480 px (и 300 px на мобиле) форма кадра гуляла вместе с шириной колонки:
     замер живой страницы — 568×480 = 1.18 на десктопе, 418×480 = 0.87 на
     планшете 900 px, 668×300 = 2.23 на 700 px. При object-fit:cover это
     означало РАЗНЫЙ кроп одного и того же фото на каждом устройстве.
     19/16 = 1.1875 совпадает с прежними десктопом (568→478 вместо 480) и
     телефоном (358→301 вместо 300), поэтому на них вид не меняется. */
  aspect-ratio: 19/16;
  height: auto !important;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.product__gallery-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  transition: background 0.2s;
}
.product__gallery-prev {
  left: 10px;
}
.product__gallery-next {
  right: 10px;
}
.product__ar-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 20px;
  border-radius: 6px;
  background: #222;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #fff;
  transition: opacity 0.2s;
}
.product__ar-btn:hover {
  opacity: 0.85;
}
.product__thumbs {
  width: 100%;
  min-width: 0;
}
.product__thumb {
  border-radius: 6px;
  border: 2px solid transparent;
  overflow: hidden;
  cursor: pointer;
  background: none;
  transition: border-color 0.2s;
}
.product__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.product .shop__card-left {
  display: flex;
  flex-direction: column;
}
.product .shop__card-price--sale {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-primary);
}
@media (max-width: 768px) {
  .product .shop__card-price--sale {
    font-size: 20px;
  }
}
.product .shop__card-price-row .shop__card-badge {
  position: static;
  background: var(--color-primary);
  color: #fff;
  height: 36px;
  padding: 10px 16px;
}
.product .shop__card-price-meta {
  font-size: 10px;
}
.product .shop__card-price-row {
  gap: 16px;
}
.product .product__thumbs .swiper-slide {
  opacity: 0.4;
  transition: opacity 0.2s;
}
.product .product__thumbs .swiper-slide-thumb-active {
  opacity: 1;
  border-color: var(--color-primary);
}
.product__info {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.product__info-top {
  margin-bottom: 8px;
}
.product__title {
  font-size: 28px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.25;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .product__title {
    font-size: 20px;
  }
}
.product__code {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
  margin-bottom: 16px;
}
.product__rating {
  display: flex;
  align-items: center;
  gap: 8px;
}
.product__stars {
  display: flex;
  align-items: center;
  gap: 6px;
}
.product__rating-value {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 500;
}
.product__rating-count {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.product__dims {
  display: flex;
  align-items: center;
  gap: 24px;
  padding-top: 24px;
  border-top: 1px solid rgba(34, 34, 34, 0.1);
}
.product__dim-group {
  display: flex;
  align-items: stretch;
  width: 100%;
  gap: 10px;
}
.product__dim {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 50%;
}
.product__dim-pills {
  background: #f3f3f3;
  border-radius: 6px;
  border: 2px solid #D7161E;
  padding: 8px 24px;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.product__dim-label {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
}
.product__dim-control {
  position: relative;
  display: flex;
  align-items: center;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
}
.product__dim-control .select2-container {
  width: 100% !important;
}
.product__dim-control .select2-container--default {
  min-width: 185px;
}
.product__dim-control .select2-selection__arrow {
  display: none;
}
.product__dim-control .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 22px;
}
.product__dim-control .select2-container--default .select2-selection--single {
  height: 48px !important;
  padding: 12px 16px;
}
.product__dim-control .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple .select2-selection__rendered,
.product__dim-control .select2-container--default.select2-container--open.select2-container--above .select2-selection--single .select2-selection__rendered,
.product__dim-control .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple .select2-selection__rendered,
.product__dim-control .select2-container--default.select2-container--open.select2-container--below .select2-selection--single .select2-selection__rendered {
  font-weight: 400;
  height: 48px;
  padding: 0 !important;
}
.product__dim-select {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  color: var(--color-text);
  font-weight: 500;
  width: 100%;
  padding: 0;
  padding-right: 28px;
  border: none;
  background: none;
  cursor: pointer;
}
.product__dim-arrow {
  position: absolute;
  right: 16px;
  pointer-events: none;
  transition: transform 0.2s;
}
.product__btn-price-request {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.product__btn-price-request:hover {
  opacity: 0.85;
}
.product__dim-control.is-open .product__dim-arrow {
  transform: rotate(180deg);
}
.product__price-request {
  display: flex;
  align-items: center;
  gap: 16px;
}
.product__price-request-badge {
  display: flex;
  padding: 4px 8px;
  align-items: center;
  gap: 4px;
  border-radius: 4px;
  background: #f3f3f3;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: #595959;
}
.product__price-request-label {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}
@media (max-width: 768px) {
  .product__price-request-label {
    font-size: 20px;
  }
}
.product__size-table {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  margin-left: auto;
  color: var(--color-text);
  font-weight: 400;
  text-decoration: underline;
  transition: color 0.2s;
}
.product__size-table:hover {
  color: var(--color-primary);
}
.product__price-row {
  display: flex;
  align-items: baseline;
  flex-direction: column;
}
.product__price {
  font-size: 36px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-size: 32px;
  color: var(--color-text);
  margin-top: 8px;
}
@media (max-width: 768px) {
  .product__price {
    font-size: 24px;
  }
}
.product__price-note {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.product__price-note a {
  color: var(--color-text-grey);
  text-decoration: underline;
}
.product__price-compare {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  flex-wrap: wrap;
}
.product__price-compare-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.product__price-compare-value {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}
@media (max-width: 768px) {
  .product__price-compare-value {
    font-size: 20px;
  }
}
.product__price-compare-value--sale {
  color: var(--color-primary);
}
/* Omnibus-Pflichtangabe (niedrigster Preis der letzten 30 Tage) unter dem Preisblock. */
.product__price-omnibus {
  margin: 10px 0 0;
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--color-text-grey);
}
.product__price-omnibus-disc {
  color: var(--color-primary);
  font-weight: 600;
}
.product__price-omnibus-legal {
  color: #9a9a9a;
}
.product__price-discount {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-primary);
}
.product__delivery {
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #c87228;
  cursor: pointer;
}
.product__delivery.green {
  color: #468432;
}
.product__delivery-icon {
  width: 18px;
  height: 18px;
}
.product .ar-popup {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
}
.product .ar-popup ul {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 16px 0;
}
.product .ar-popup ul li {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
  padding-left: 40px;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
}
.product .ar-popup ul li::before {
  position: absolute;
  content: "";
  width: 24px;
  height: 24px;
  left: 0;
  background: url("../img/check.svg") no-repeat;
}
.product .ar-popup ul li strong {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .product .ar-popup ul li strong {
    font-size: 16px;
  }
}
.product .ar-popup p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
  margin-bottom: 16px;
}
.product .ar-popup p:last-child {
  margin-bottom: 0;
}
.product .ar-popup h2,
.product .ar-popup h3,
.product .ar-popup h4 {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .product .ar-popup h2,
.product .ar-popup h3,
.product .ar-popup h4 {
    font-size: 16px;
  }
}
.product .ar-popup.is-open {
  display: flex;
}
.product .ar-popup__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
}
.product .ar-popup__dialog {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: 12px;
  max-width: 720px;
  width: calc(100% - 32px);
  max-height: 90vh;
  overflow-y: auto;
  padding: 32px;
}
.product .ar-popup__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--color-text);
}
.product body.ar-popup-open {
  overflow: hidden;
}
.product__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 16px;
}
.product__actions .variations_form .quantity,
.product__actions .ic-item-quantity-btn,
.product__actions .quantity {
  display: none !important;
}
.product__btn-cart, .product__btn-price-request {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  justify-content: center;
  width: 100%;
}
.product__btn-cart:hover, .product__btn-price-request:hover {
  opacity: 0.85;
}
.product__price-request {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.product__price-request-label {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .product__price-request-label {
    font-size: 20px;
  }
}
.product__price-request-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 20px;
  background: #f3f3f3;
  color: var(--color-text-grey);
  font-size: 13px;
  white-space: nowrap;
}
.product__price-request-badge svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.product__btn-config {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 20px 40px;
  border-radius: 6px;
  background: #f3f3f3;
  color: var(--color-text);
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  line-height: normal;
  height: 56px;
  transition: background 0.2s;
}
.product__btn-config:hover {
  background: rgba(34, 34, 34, 0.08);
}
.product__badges {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 8px;
}
.product__badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  text-align: center;
}
.product__badge span {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.product__badge-icon {
  width: 32px;
  height: 32px;
}
.product__details {
  display: flex;
  gap: 64px;
  padding-top: 64px;
}
.product__details p {
  color: var(--color-text);
}
.product__details .text {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.product__details h2,
.product__details h3 {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .product__details h2,
.product__details h3 {
    font-size: 16px;
  }
}
.product__details ul {
  list-style: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.product__details ul li {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
}
.product__tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  border-radius: 6px;
  background: #f3f3f3;
  padding: 4px;
  margin-bottom: 30px;
}
.product__tab {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
  padding: 16px 40px;
  background: none;
  border: none;
  color: var(--color-text-grey);
  cursor: pointer;
  background: #f3f3f3;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 500;
  transition: color 0.2s;
}
.product__tab svg path {
  transition: stroke 0.2s;
}
.product__tab:hover, .product__tab.is-active {
  color: var(--color-primary);
  background: #fff;
  border-radius: 4px;
}
.product__tab:hover svg path, .product__tab.is-active svg path {
  stroke: var(--color-primary);
}
.product__panel {
  display: none;
}
.product__panel.is-active {
  display: block;
}
.product__panel ul {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 16px 0;
}
.product__panel ul li {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
  padding-left: 40px;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
}
.product__panel ul li::before {
  position: absolute;
  content: "";
  width: 24px;
  height: 24px;
  left: 0;
  background: url("../img/check.svg") no-repeat;
}
.product__panel ul li strong {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .product__panel ul li strong {
    font-size: 16px;
  }
}
.product__panel p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
}
.product__accordion-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 0;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 500;
  color: var(--color-text);
  font-family: Inter;
}
.product__accordion-arrow {
  flex-shrink: 0;
  transition: transform 0.2s;
}
.product__accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.product__accordion-body p {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  font-family: Inter;
  color: var(--color-text-grey);
  padding-bottom: 16px;
}
.product__accordion-item.is-open .product__accordion-arrow {
  transform: rotate(180deg);
}
.product__accordion-item.is-open .product__accordion-body {
  max-height: 200px;
}
.product__testimonial {
  min-height: 280px;
  border-radius: 8px;
  width: 30%;
  height: -webkit-max-content;
  height: -moz-max-content;
  height: max-content;
  border: 1px solid rgba(34, 34, 34, 0.1);
}
.product__details-main {
  width: 70%;
}
/* Simple-Produktseite: rechte Spalte (Preis-Block) ist per Grid (1fr 1fr) schon auf Galeriehöhe
   gestreckt. Inhalt (Titel/Preis/CTA/Badges) vertikal ZENTRIEREN → Freiraum gleichmäßig oben+unten,
   statt einer großen Lücke unter dem CTA. Preis bleibt so nah bei den Vorteilen. */
.product--simple .product__info {
  height: 100%;
  justify-content: center;
  gap: 28px;
}
.product__details-title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  margin-bottom: 12px;
}
@media (max-width: 768px) {
  .product__details-title {
    font-size: 16px;
  }
}
.product__title-row {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.product__buy-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.product__qty {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.product__qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  padding: 0;
  flex-shrink: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  transition: background 0.2s;
}
.product__qty-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}
.product__qty-input {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  width: 80px;
  height: 56px;
  text-align: center;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
}
.product--simple .product__buy-row .product__btn-cart {
  width: auto;
  flex: 1;
}

.product.product-type-simple .product__dim {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}

.statement {
  background: #F3F3F3;
}
.statement__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 32px;
}
.statement__gallery {
  overflow: hidden;
  margin-bottom: 24px;
}
.statement__gallery-wrapper {
  display: flex;
}
.statement__card {
  display: flex;
  flex-direction: column;
  gap: 24px;
  flex-shrink: 0;
  width: 270px;
}
.statement__media {
  position: relative;
  height: 512px;
  border-radius: 8px;
  overflow: hidden;
  background: #000;
}
.statement__video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.statement__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
  transition: opacity 0.2s;
}
.statement__poster.is-hidden {
  display: none;
}
.statement__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  transition: opacity 0.2s;
}
.statement__play:hover {
  opacity: 0.85;
}
.statement__play.is-hidden {
  display: none;
}
.statement__info {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.statement__card-title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
}
@media (max-width: 768px) {
  .statement__card-title {
    font-size: 16px;
  }
}
.statement__card-desc {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
  line-height: normal;
}
.statement__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.statement__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  transition: background 0.2s;
}
.statement__nav-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}
.statement__gallery.swiper-locked ~ .statement__nav {
  display: none;
}
.statement__nav.is-hidden {
  display: none;
}

.gallery__slider {
  overflow: hidden;
}
.gallery__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 42px;
}
.gallery__wrapper {
  display: flex;
}
.gallery__slide {
  flex: 0 0 auto;
  width: calc((100% - 40px) / 5);
}
.gallery__image {
  display: block;
  width: 100%;
  height: 339.2px;
  aspect-ratio: 3/4;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 6px;
  background: lightgray;
}

.info {
  background: #f3f3f3;
}
.info.info-col-4 .info__grid {
  grid-template-columns: repeat(4, 1fr);
}
.info.info-col-4 .info__text {
  display: flex;
  flex-direction: column;
}
.info.info-col-4 .info__text a {
  display: inline;
}
.info__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.info__item {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.info__icon {
  width: 24px;
  height: 24px;
}
.info__title {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 500;
  margin-top: 8px;
  line-height: normal;
}
.info__text p, .info__text a {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}

.shipping-popup {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.shipping-popup[hidden] {
  display: none;
}
.shipping-popup__overlay {
  position: absolute;
  inset: 0;
  background: var(--Stroke, rgba(34, 34, 34, 0.15));
}
.shipping-popup__card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 700px;
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 16px;
  padding: 24px;
}
.shipping-popup__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.shipping-popup__title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .shipping-popup__title {
    font-size: 16px;
  }
}
.shipping-popup__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: none;
  border: none;
  color: var(--color-text);
  cursor: pointer;
  flex-shrink: 0;
}
.shipping-popup__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.shipping-popup__body p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.shipping-popup__body strong {
  color: var(--color-text);
  font-weight: 500;
}
.shipping-popup__body a {
  color: var(--color-primary);
  text-decoration: underline;
}

.form-success-popup {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.form-success-popup[hidden] {
  display: none;
}
.form-success-popup__overlay {
  position: absolute;
  inset: 0;
  background: rgba(34, 34, 34, 0.4);
}
.form-success-popup__card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 700px;
  background: #fff;
  border-radius: 6px;
  padding: 64px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}
.form-success-popup__close {
  position: absolute;
  top: 24px;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: none;
  border: none;
  color: var(--color-text);
  cursor: pointer;
}
.form-success-popup__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(70, 132, 50, 0.12);
}
.form-success-popup__title {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
}
@media (max-width: 768px) {
  .form-success-popup__title {
    font-size: 20px;
  }
}
.form-success-popup__text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}

.price-request-popup {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.price-request-popup.is-open {
  display: flex;
}
.price-request-popup__overlay {
  position: absolute;
  inset: 0;
  background: var(--Stroke, rgba(34, 34, 34, 0.15));
}
.price-request-popup__card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 700px;
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 16px;
  padding: 24px;
}
.price-request-popup__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.price-request-popup__title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .price-request-popup__title {
    font-size: 16px;
  }
}
.price-request-popup__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: none;
  border: none;
  color: var(--color-text);
  cursor: pointer;
  flex-shrink: 0;
}
.price-request-popup__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.price-request-popup__subtitle {
  font-size: 15px;
  color: var(--color-text-grey);
}
.price-request-popup__subtitle:empty {
  display: none;
}
.price-request-popup__form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.price-request-popup__row {
  display: flex;
  gap: 12px;
}
.price-request-popup__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.price-request-popup__label {
  font-size: 14px;
  color: var(--color-text-grey);
}
.price-request-popup__input {
  padding: 12px 16px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  border-radius: 6px;
  font-size: 15px;
  font-family: "Inter", sans-serif;
}
.price-request-popup__agreement {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
}
.price-request-popup__agreement span:last-child {
  font-size: 13px;
  color: var(--color-text-grey);
}
.price-request-popup__agreement-input {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}
.price-request-popup__agreement-box {
  position: relative;
  width: 14px;
  height: 14px;
  margin-top: 1px;
  border-radius: 4px;
  border: 1px solid #cbd5e1;
  background: #fff;
  flex-shrink: 0;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
.price-request-popup__agreement-input:checked ~ .price-request-popup__agreement-box {
  border: 2px solid var(--color-primary);
}
.price-request-popup__agreement-input:checked ~ .price-request-popup__agreement-box::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 1px;
  width: 4px;
  height: 6px;
  border: solid var(--color-primary);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.price-request-popup__error {
  display: none;
  font-size: 13px;
  color: var(--color-primary);
}
.price-request-popup.has-error .price-request-popup__error {
  display: block;
}
.price-request-popup__success {
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}
.price-request-popup__success-icon {
  display: inline-flex;
}
.price-request-popup__success-title {
  font-size: 20px;
  font-weight: 500;
  color: var(--color-text);
}
.price-request-popup.is-success .price-request-popup__form-wrap {
  display: none;
}
.price-request-popup.is-success .price-request-popup__success {
  display: flex;
}

.size-table-popup {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.size-table-popup[hidden] {
  display: none;
}
.size-table-popup__overlay {
  position: absolute;
  inset: 0;
  background: var(--Stroke, rgba(34, 34, 34, 0.15));
}
.size-table-popup__card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 700px;
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 16px;
  padding: 24px;
}
.size-table-popup__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.size-table-popup__title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .size-table-popup__title {
    font-size: 16px;
  }
}
.size-table-popup__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: none;
  border: none;
  color: var(--color-text);
  cursor: pointer;
  flex-shrink: 0;
}
.size-table-popup__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.size-table-popup__body p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.size-table-popup__body strong {
  color: var(--color-text);
  font-weight: 500;
}
.size-table-popup__body a {
  color: var(--color-primary);
  text-decoration: underline;
}
.size-table-popup__body table {
  width: 100%;
  border-collapse: collapse;
}
.size-table-popup__body th,
.size-table-popup__body td {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  padding: 10px 12px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  text-align: left;
}
.size-table-popup__body th {
  font-weight: 500;
  color: var(--color-text);
  background: #f3f3f3;
}
.size-table-popup__body td {
  color: var(--color-text-grey);
}

.category-product__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 42px;
}
.category-product__blocks {
  display: flex;
  flex-direction: column;
  gap: 42px;
}
.category-product__blocks h2 {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.category-product__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 24px;
  gap: 10px;
}
.category-product__items.category-product__items-col--3 {
  grid-template-columns: repeat(3, 1fr);
}
.category-product__item {
  display: flex;
  padding: 8px 32px 8px 8px;
  justify-content: space-between;
  align-items: center;
  border-radius: 8px;
  border: 2px solid var(--Stroke, rgba(34, 34, 34, 0.05));
}
.category-product__item:hover {
  border: 2px solid var(--color-primary);
}
.category-product__item_image {
  position: relative;
}
.category-product__item_image .sale {
  flex-shrink: 0;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  font-size: 10px;
  color: #fff;
  white-space: nowrap;
  background: var(--color-primary);
  position: absolute;
  top: 10px;
  right: 10px;
}
.category-product__item_content {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.category-product__item_content h3 {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
  font-weight: 500;
}
@media (max-width: 768px) {
  .category-product__item_content h3 {
    font-size: 16px;
  }
}
.category-product__item_content p {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.category-product__item_left {
  align-items: center;
  gap: 16px;
  display: flex;
}
.category-product__item_left img {
  width: 100%;
  flex-shrink: 0;
  max-width: 120px;
  align-self: stretch;
  aspect-ratio: 1/1;
  object-fit: contain;
  border-radius: 6px;
}
@media (max-width: 768px) {
  .category-product__item_left img {
    max-width: 88px;
  }
}
.category-product .badge {
  flex-shrink: 0;
  padding: 4px 12px;
  border-radius: 6px;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  white-space: nowrap;
}
.category-product .badge.red {
  color: var(--color-primary);
  background: rgba(192, 57, 43, 0.15);
}
.category-product .badge.green {
  background: rgba(20, 122, 85, 0.15);
  color: var(--color-green);
}
.category-product .badge.grey {
  background: rgba(107, 107, 102, 0.15);
  color: var(--color-grey);
}

.shop__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 42px;
}
.shop__title {
  font-size: 36px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .shop__title {
    font-size: 24px;
  }
}
.shop__controls {
  display: flex;
  align-items: flex-end;
  gap: 16px;
}
.shop__filter-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  width: 114px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-family: "Inter", sans-serif;
  color: var(--color-text);
  transition: background 0.2s;
}
.shop__filter-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}
.shop__sort {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex-direction: column;
}
.shop__sort .woocommerce .select2-container {
  height: 48px;
}
.shop__sort .select2-container .select2-selection--single {
  height: 48px;
}
.shop__sort .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #444;
  line-height: 47px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  padding: 0px 16px !important;
}
.shop__sort .select2-container .select2-selection--single {
  margin: 0;
}
.shop__sort-control {
  position: relative;
  display: flex;
  align-items: center;
}
.shop__sort-control .select2-container {
  width: 100% !important;
}
.shop__sort-control .select2-selection__arrow {
  display: none;
}
.shop__sort-arrow {
  position: absolute;
  right: 16px;
  pointer-events: none;
  transition: transform 0.2s;
}
.shop__sort-control.is-open .shop__sort-arrow {
  transform: rotate(180deg);
}
.shop__sort-label {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
  white-space: nowrap;
}
.shop__sort-btn {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-family: "Inter", sans-serif;
  color: var(--color-text);
  transition: background 0.2s;
}
.shop__sort-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}
.shop__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.shop__card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100%;
}
.shop__card-link {
  display: contents;
}
.shop__card-image-wrap {
  position: relative;
  display: flex;
  /* Feste Bildfläche für ALLE Kacheln. Der Shop mischt drei Fotoformate:
     Saunen 1600×1600 (1:1) und 1000×1100 (hochkant), EOS-Technik und Zubehör 5:4.
     Ohne feste Ratio richtet sich jede Kachel nach ihrer eigenen Datei — dann
     stehen die Titel einer Reihe versetzt (genau der gemeldete Fehler). */
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.shop__card-image {
  display: block;
  width: 100%;
  height: 100%;
  /* cover: die Kachel wird randlos gefüllt (Wunsch des Kunden). Bei contain
     entstanden je nach Seitenverhältnis weiße Ränder — mal sah ein Foto gut aus,
     das nächste nicht. Der Beschnitt ist der Preis für den einheitlichen Raster. */
  object-fit: cover;
  align-self: stretch;
  background: #fff;
}
.shop__card-ribbon {
  position: absolute;
  top: 12px;
  left: 12px;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  padding: 4px 10px;
  border-radius: 6px;
  color: #fff;
  background: var(--color-primary);
}
.shop__card-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  padding: 4px 10px;
  border-radius: 6px;
  color: #fff;
  background: var(--color-primary);
}
.shop__card-badge--stock {
  background: #65b741;
}
.shop__card-info {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.shop__card-info > .shop__card-price,
.shop__card-info > .shop__card-price--request,
.shop__card-info > .shop__card-price-block {
  margin-top: auto;
}
.shop__card-title {
  display: block;
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
  margin-top: 8px;
}
@media (max-width: 768px) {
  .shop__card-title {
    font-size: 16px;
  }
}
.shop__card-title:hover {
  color: var(--color-primary);
}
.shop__card-price {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.shop__card-price--sale {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 400;
  color: var(--color-primary);
}
.shop__card-price--request {
  color: var(--color-text);
}
.shop__card-price-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.shop__card-price-row .shop__card-badge {
  position: static;
  background: var(--color-primary);
  color: #fff;
  height: 24px;
  padding: 4px 12px;
}
.shop__card-price-meta {
  font-size: 8px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.shop__card-price-meta strong {
  color: var(--color-primary);
}
.shop__card-info-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}
.shop__card-info-btn:hover .shop__card-tooltip, .shop__card-info-btn.is-open .shop__card-tooltip {
  opacity: 1;
  visibility: visible;
}
.shop__card-tooltip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  width: 310px;
  padding: 8px 10px;
  border-radius: 6px;
  background: #0f1624;
  color: #fff;
  font-size: 12px;
  font-style: normal;
  font-weight: 600;
  line-height: 18px;
  /* 150% */
  text-align: left;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s;
  z-index: 5;
  font-family: "Inter", sans-serif;
  pointer-events: none;
}
.shop__card-tooltip::before {
  position: absolute;
  content: "";
  width: 34px;
  height: 7px;
  background: url("../img/arrow.svg") no-repeat;
  left: 0;
  bottom: -6px;
}
.shop__card_wrap {
  display: flex;
  gap: 8px;
  align-items: center;
}
.shop__card-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
.shop__qty {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.shop__qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  flex-shrink: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  transition: background 0.2s;
}
.shop__qty-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}
.shop__qty-input {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  width: 100%;
  height: 44px;
  min-width: 0;
  flex: 1;
  width: 80px;
  text-align: center;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
}
.shop__cart-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  flex-shrink: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  transition: border-color 0.2s;
}
.shop__cart-btn svg path {
  transition: stroke 0.2s;
}
.shop__cart-btn:hover {
  border-color: var(--color-primary);
}
.shop__cart-btn:hover svg path {
  stroke: var(--color-primary);
}
.shop__more-btn, .shop__card--request .shop__more-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: transparent;
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  height: 56px;
  justify-content: center;
  border: 1px solid #fff;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  justify-content: center;
  width: max-content;
  color: var(--color-text);
  height: 44px;
  padding: 10px 16px;
  border-color: rgba(34, 34, 34, 0.15);
}
.shop__more-btn:hover, .shop__card--request .shop__more-btn:hover {
  opacity: 0.85;
}
.shop__more-btn:hover, .shop__card--request .shop__more-btn:hover {
  opacity: 1;
  background: rgba(34, 34, 34, 0.04);
}
.shop__load-more {
  display: flex;
  justify-content: center;
  margin-top: 42px;
}
.shop__load-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: transparent;
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  height: 56px;
  justify-content: center;
  border: 1px solid #fff;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  color: var(--color-text);
  border-color: rgba(34, 34, 34, 0.15);
}
.shop__load-more-btn:hover {
  opacity: 0.85;
}
.shop__load-more-btn:hover {
  opacity: 1;
  background: rgba(34, 34, 34, 0.04);
}
.shop__seo {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 64px;
}
.shop__seo p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.shop__seo-title {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .shop__seo-title {
    font-size: 20px;
  }
}

.filters {
  position: fixed;
  inset: 0;
  z-index: 500;
}
.filters[hidden] {
  display: none;
}
.filters__form {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
.filters__form::-webkit-scrollbar {
  display: none;
}
.filters__form::-webkit-scrollbar-track {
  background: transparent;
}
.filters__form::-webkit-scrollbar-thumb {
  background: transparent;
}
.filters__overlay {
  position: absolute;
  inset: 0;
  background: rgba(34, 34, 34, 0.4);
}
.filters__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 420px;
  display: flex;
  flex-direction: column;
  background: #fff;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}
.filters.is-open .filters__panel {
  transform: translateX(0);
}
.filters__top {
  display: flex;
  justify-content: flex-end;
  padding: 24px 24px 0;
}
.filters__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 42px;
  padding: 0 24px 20px;
}
.filters__title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .filters__title {
    font-size: 16px;
  }
}
.filters__reset {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
  background: none;
  border: none;
  cursor: pointer;
}
.filters__reset:hover {
  color: var(--color-primary);
}
.filters__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: none;
  border: none;
  color: var(--color-text);
  cursor: pointer;
  flex-shrink: 0;
}
.filters__body {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.filters__group {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.filters__group:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.filters__group-title {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.filters__checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
  cursor: pointer;
}
.filters__checkbox input {
  position: relative;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 4px;
  border: 1px solid #cbd5e1;
  background: #fff;
  cursor: pointer;
}
.filters__checkbox input:checked {
  border-radius: 4px;
  border: 1px solid #D7161E;
  background: #D7161E;
}
.filters__checkbox input:checked::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.filters__checkbox input[type=radio] {
  border-radius: 50%;
}
.filters__checkbox input[type=radio]:checked {
  border-radius: 50%;
  background: #fff;
  border: 5px solid #D7161E;
}
.filters__checkbox input[type=radio]:checked::after {
  display: none;
}
.filters__price-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.filters__price-input {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  padding: 12px 16px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
}
.filters__price-input input {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  width: 100%;
  font-family: "Inter", sans-serif;
  min-width: 0;
  border: none;
  background: none;
  padding: 0;
}
.filters__price-input span {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
  flex-shrink: 0;
}
.filters__footer {
  padding: 20px 24px;
}
.filters__submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  justify-content: center;
  width: 100%;
}
.filters__submit:hover {
  opacity: 0.85;
}

.select2-container--default {
  width: -webkit-max-content !important;
  width: -moz-max-content !important;
  width: max-content !important;
  min-width: 228px;
}
.select2-container--default .select2-selection--single {
  height: 48px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
  padding: 0;
  line-height: normal;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  top: 0;
  right: 10px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 24px;
  margin: -12px 0 0 -12px;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%23222222' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.2s;
}
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--color-primary);
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  transform: rotate(180deg);
}
.select2-container--default .select2-results__option {
  padding: 11px 16px;
  font-size: 16px;
  color: var(--color-text);
  transition: background-color 0.12s ease, color 0.12s ease;
}
/* Angesteuerte Option (Hover/Tastatur): dezent grau statt hartem Rot */
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #f3f3f3;
  color: var(--color-primary);
}
/* Aktuell gewählte Option: weicher roter Ton + rote, halbfette Schrift */
.select2-container--default .select2-results__option[aria-selected=true] {
  background-color: rgba(152, 38, 28, 0.08);
  color: var(--color-primary);
  font-weight: 500;
}
.select2-container--default .select2-dropdown {
  border-radius: 6px;
  border-color: rgba(34, 34, 34, 0.15);
  box-shadow: 0 8px 24px rgba(34, 34, 34, 0.1);
  overflow: hidden;
}

.contact {
  padding-top: 0;
}
.contact__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 42px;
}
.contact__locations {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(34, 34, 34, 0.15);
}
.contact__location {
  display: grid;
  grid-template-columns: 300px 1fr 1fr 1fr;
  align-items: start;
  gap: 64px;
  padding: 42px 0;
  border-bottom: 1px solid rgba(34, 34, 34, 0.15);
}
.contact__location-image {
  border-radius: 8px;
  overflow: hidden;
}
.contact__location-img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.contact__location-name {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.contact__location-title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .contact__location-title {
    font-size: 16px;
  }
}
.contact__location-route {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 400;
  color: var(--color-text-grey);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.contact__location-route:hover {
  color: var(--color-primary);
}
.contact__location-details {
  display: flex;
  gap: 32px;
  flex-direction: column;
}
.contact__location-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.contact__location-label {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 400;
  color: var(--color-text-grey);
}
.contact__location-text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
.contact__location-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}
.contact__location-phone {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px;
  height: 54px;
  margin-bottom: 8px;
  border-radius: 6px;
  background: var(--color-primary);
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #fff;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.contact__location-phone:hover {
  opacity: 0.85;
}
.contact__location-email {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text-grey);
}
.contact__location-email:hover {
  color: var(--color-primary);
}
.contact__location-email:hover svg path {
  stroke: var(--color-primary);
}
.contact__map {
  position: relative;
  height: 420px;
  margin-top: 24px;
  border-radius: 8px;
  overflow: hidden;
  background: lightgray;
}
.contact__map .leaflet-popup-content {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text);
}

.cabin-request {
  padding-top: 0;
}
.cabin-request__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 42px;
}
.cabin-request__head .text {
  color: var(--color-text-grey);
}
.cabin-request__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 42px;
  align-items: start;
}
.cabin-request__form,
.cabin-request form {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.cabin-request__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.cabin-request__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cabin-request__label {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
}
.cabin-request__radios {
  display: block;
}
.cabin-request__radio-input {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.cabin-request__radio-input .wpcf7-list-item {
  margin: 0;
}
.cabin-request__radio-input .wpcf7-list-item > label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text);
}
.cabin-request__radio-input input[type=radio] {
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 18px;
  height: 18px;
  margin: 0;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid rgba(34, 34, 34, 0.3);
  box-sizing: border-box;
  cursor: pointer;
}
.cabin-request__radio-input input[type=radio]:checked {
  border: 5px solid var(--color-primary);
}
.cabin-request__input, .cabin-request__textarea {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  width: 100%;
  padding: 12px 16px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  font-family: "Inter", sans-serif;
  resize: none;
}
.cabin-request__input::-moz-placeholder, .cabin-request__textarea::-moz-placeholder {
  color: var(--color-text-grey);
}
.cabin-request__input:-ms-input-placeholder, .cabin-request__textarea:-ms-input-placeholder {
  color: var(--color-text-grey);
}
.cabin-request__input::placeholder, .cabin-request__textarea::placeholder {
  color: var(--color-text-grey);
}
.cabin-request__input:focus, .cabin-request__textarea:focus {
  outline: none;
  border-color: var(--color-primary);
}
.cabin-request__textarea {
  min-height: 207px;
  padding: 20px 16px;
  max-height: 207px;
}
.cabin-request__upload {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 32px 24px;
  border-radius: 6px;
  border: 1px dashed rgba(34, 34, 34, 0.15);
  cursor: pointer;
  text-align: center;
}
.cabin-request__upload-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.cabin-request__upload-text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.cabin-request__upload-link {
  text-underline-offset: 2px;
  text-decoration: underline;
}
.cabin-request__agreement {
  display: block;
  cursor: pointer;
}
.cabin-request__agreement .wpcf7-list-item {
  margin: 0;
}
.cabin-request__agreement .wpcf7-list-item > label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.cabin-request__agreement .wpcf7-list-item-label {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text);
}
.cabin-request__agreement-input {
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 14px;
  height: 14px;
  margin-top: 1px;
  border-radius: 4px;
  border: 1px solid #cbd5e1;
  background: #fff;
  flex-shrink: 0;
  box-sizing: border-box;
  cursor: pointer;
  transition: border-color 0.2s;
}
.cabin-request__agreement-input:checked {
  border: 2px solid var(--color-primary);
}
.cabin-request__agreement-input:checked::after {
  content: "";
  position: absolute;
  left: 3.2px;
  top: 1px;
  width: 4px;
  height: 6px;
  border: solid var(--color-primary);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.cabin-request__submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  justify-content: center;
  width: 100%;
}
.cabin-request__submit:hover {
  opacity: 0.85;
}
.cabin-request__sidebar {
  display: flex;
  flex-direction: column;
  gap: 42px;
}
.cabin-request__contact {
  display: flex;
  flex-direction: column;
  gap: 42px;
}
.cabin-request__contact-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.cabin-request__contact-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}
.cabin-request__contact-label {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 400;
  color: var(--color-text-grey);
}
.cabin-request__contact-value {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 500;
  color: var(--color-text);
}
.cabin-request__contact-locations {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.cabin-request__contact-location {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cabin-request__contact-phone {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 500;
  color: var(--color-text);
}
.cabin-request__contact-phone:hover {
  color: var(--color-primary);
}
.cabin-request__partners {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 52px;
  padding-top: 42px;
  border-top: 1px solid rgba(34, 34, 34, 0.15);
}
.cabin-request__partners img {
  width: auto;
  -o-object-fit: contain;
  object-fit: contain;
}
.cabin-request__success {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.cabin-request__success[hidden] {
  display: none;
}
.cabin-request__success-overlay {
  position: absolute;
  inset: 0;
  background: rgba(34, 34, 34, 0.15);
}
.cabin-request__success-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 700px;
  background: #fff;
  border-radius: 6px;
  padding: 64px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}
.cabin-request__success-close {
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: none;
  border: none;
  color: var(--color-text);
  cursor: pointer;
}
.cabin-request__success-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(70, 132, 50, 0.12);
}
.cabin-request__success-title {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
}
@media (max-width: 768px) {
  .cabin-request__success-title {
    font-size: 20px;
  }
}
.cabin-request__success-text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}

.news {
  padding-top: 0;
}
.news__list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(34, 34, 34, 0.15);
}
.news__item {
  display: flex;
  gap: 64px;
  align-items: center;
  padding: 42px 0;
  border-bottom: 1px solid rgba(34, 34, 34, 0.15);
}
.news__item:hover .news__title,
.news__item:hover .news__link {
  color: var(--color-primary);
}
.news__image-wrap {
  flex-shrink: 0;
  width: 50%;
  border-radius: 6px;
  overflow: hidden;
}
.news__image {
  display: block;
  width: 100%;
  height: 320px;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 6px;
  background: lightgray;
}
.news__content {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 50%;
}
.news__date {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  font-weight: 400;
  color: var(--color-text-grey);
}
.news__title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .news__title {
    font-size: 16px;
  }
}
.news__desc {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 400;
  color: var(--color-text-grey);
}
.news__link {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 2px;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin-top: 10px;
}
.news__link:hover {
  color: var(--color-primary);
}
.news__pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 42px;
}
.news__page-btn, .news__page-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text);
  cursor: pointer;
  transition: border-color 0.2s;
}
.news__page-btn:hover, .news__page-dots:hover {
  border-color: rgba(34, 34, 34, 0.35);
}
.news__page-btn.is-active, .news__page-dots.is-active {
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.news__page-nav:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.single-news {
  padding-top: 0;
}
.single-news__layout {
  display: flex;
  gap: 42px;
  align-items: start;
}
.single-news__main {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  max-width: 700px;
}
.single-news__image-wrap {
  border-radius: 8px;
  overflow: hidden;
}
.single-news__image {
  display: block;
  width: 100%;
  height: 525px;
  align-self: stretch;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.single-news__date {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 400;
  margin-top: 18px;
  color: var(--color-text-grey);
}
.single-news__title {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
}
@media (max-width: 768px) {
  .single-news__title {
    font-size: 20px;
  }
}
.single-news__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.single-news__body p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.single-news__sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  max-width: 458px;
}
.single-news__related {
  display: flex;
  flex-direction: column;
}
.single-news__related-item {
  display: flex;
  gap: 24px;
  padding: 32px 0;
  border-bottom: 1px solid rgba(34, 34, 34, 0.15);
}
.single-news__related-item:hover .single-news__related-title {
  color: var(--color-primary);
}
.single-news__related-item:first-of-type {
  padding-top: 0;
}
.single-news__related-image-wrap {
  width: 50%;
  border-radius: 6px;
  overflow: hidden;
}
.single-news__related-image {
  display: block;
  width: 100%;
  height: 162px;
  border-radius: 6px;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.single-news__related-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 50%;
}
.single-news__related-title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.2s;
}
@media (max-width: 768px) {
  .single-news__related-title {
    font-size: 16px;
  }
}
.single-news__related-date {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  font-weight: 400;
  color: var(--color-text-grey);
}
.single-news__nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.single-news__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  transition: border-color 0.2s;
}
.single-news__nav-btn:hover {
  border-color: rgba(34, 34, 34, 0.35);
}

.banner {
  position: relative;
  padding: 0;
  min-height: 640px;
  display: flex;
  align-items: center;
  overflow: hidden;
  margin-top: -57px;
  z-index: 1;
}
.banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(270deg, rgba(34, 34, 34, 0) 0%, rgba(34, 34, 34, 0.7) 100%);
  z-index: 1;
}
.banner__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.banner .container {
  position: relative;
  z-index: 2;
  width: 100%;
}
.banner__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  max-width: 800px;
}
.banner__title {
  font-size: 36px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: #fff;
}
@media (max-width: 768px) {
  .banner__title {
    font-size: 24px;
  }
}
.banner__text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #fff;
  margin-top: 4px;
}
.banner__price {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: #fff;
}
@media (max-width: 768px) {
  .banner__price {
    font-size: 16px;
  }
}
.banner__actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
}
.banner__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.banner__btn:hover {
  opacity: 0.85;
}
.banner__btn--transparent {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: transparent;
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  height: 56px;
  justify-content: center;
  border: 1px solid #fff;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  border: 1px solid var(--White, #fff);
  background: rgba(34, 34, 34, 0.5);
}
.banner__btn--transparent:hover {
  opacity: 0.85;
}
.banner__block {
  display: flex;
  padding: 16px;
  align-items: center;
  gap: 16px;
  border-radius: 6px;
  background: var(--White, #fff);
  width: 100%;
  max-width: 640px;
  margin-left: auto;
  margin-top: 74px;
}
.banner__block_left {
  display: flex;
  gap: 16px;
}
.banner__block_icon {
  border-radius: 1000px;
  background: var(--color-primary);
  display: flex;
  padding: 10px;
  align-items: center;
  gap: 10px;
  width: 44px;
  height: 44px;
}
.banner__block_btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: transparent;
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  height: 56px;
  justify-content: center;
  border: 1px solid #fff;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  padding: 20px;
  width: 196px;
  color: var(--color-text);
  font-weight: 500;
  border: 1px solid var(--Stroke, rgba(34, 34, 34, 0.15));
}
.banner__block_btn:hover {
  opacity: 0.85;
}
.banner__block_title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .banner__block_title {
    font-size: 16px;
  }
}
.banner__block_text {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  margin-top: 4px;
  color: var(--color-text-grey);
}

.projects__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 32px;
}
.projects__gallery {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
}
.projects__gallery:last-of-type {
  margin-bottom: 0;
}
.projects__gallery-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.projects__gallery-image {
  display: block;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 8px;
  background: lightgray;
}
.projects__gallery-image--1 {
  height: 346px;
}
.projects__gallery-image--2 {
  height: 346px;
}
.projects__gallery-image--3 {
  height: 224px;
}
.projects__gallery-image--4 {
  height: 468px;
}
.projects__gallery-image--5 {
  height: 468px;
}
.projects__gallery-image--6 {
  height: 224px;
}
.projects__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin-top: 24px;
}
.projects__btn:hover {
  opacity: 0.85;
}
.projects--single .projects__head {
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
}
.projects--single .projects__head .title {
  flex-shrink: 0;
  max-width: 300px;
}
.projects--single .projects__head .text {
  width: 49%;
}
.projects--single .projects__gallery-image--1 {
  height: 640px;
}
.projects--single .projects__gallery-image--3 {
  height: 224px;
}
.projects--single .projects__gallery-image--4 {
  height: 406px;
}
.projects--single .projects__gallery-image--5 {
  height: 406px;
}
.projects--single .projects__gallery-image--6 {
  height: 224px;
}

.timeline {
  overflow-x: hidden;
}
.timeline__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 32px;
}
.timeline__slider {
  overflow: visible;
  margin-bottom: 24px;
}

/* до трёх шагов слайдера нет: карточки тянутся на равные доли ряда */
.timeline__row {
  margin-bottom: 0;
}
.timeline__row-inner {
  display: flex;
  align-items: stretch;
}
.timeline__item {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
}
.timeline__item .timeline__card {
  width: auto;
  flex: 1 1 auto;
}
@media (max-width: 768px) {
  .timeline__row-inner {
    flex-direction: column;
    gap: 12px;
  }
  .timeline__item .timeline__connector {
    display: none;
  }
}
.timeline__wrapper {
  display: flex;
}
.timeline__slide {
  display: flex;
  flex-shrink: 0;
  width: auto;
}
.timeline__card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 360px;
  flex-shrink: 0;
  padding: 24px;
  border-radius: 8px;
  border: 1px solid rgba(34, 34, 34, 0.15);
}
.timeline__year {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .timeline__year {
    font-size: 16px;
  }
}
.timeline__desc {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.timeline__desc p {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.timeline__connector {
  width: 64px;
  height: 16px;
  flex-shrink: 0;
  display: block;
  margin-top: 31px;
}
.timeline__slide:last-child .timeline__connector {
  display: none;
}
.timeline__nav {
  display: flex;
  align-items: center;
  gap: 12px;
}
.timeline__nav.is-hidden {
  display: none;
}
.timeline__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  background: #fff;
  cursor: pointer;
  transition: background 0.2s;
}
.timeline__nav-btn:hover {
  background: rgba(34, 34, 34, 0.04);
}

.team.grey {
  background: #F3F3F3;
}
.team__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 42px;
}
.team__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 42px 10px;
}
.team__member {
  display: flex;
  flex-direction: column;
  gap: 4.5px;
}
.team__photo-wrap {
  border-radius: 6px;
  overflow: hidden;
}
.team__photo {
  display: block;
  width: 100%;
  height: 390px;
  align-self: stretch;
  aspect-ratio: 3/4;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.team__name {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  margin-top: 20px;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .team__name {
    font-size: 16px;
  }
}
.team__role, .team__contact, .team__contact a {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
.team__contact {
  margin-top: 16px;
}

.landing {
  position: relative;
  overflow: hidden;
  z-index: 1;
  margin-top: -57px;
  padding-top: 160px;
}
.landing::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.75) 9.06%, #fff 100%);
  z-index: 1;
}
.landing__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  background: lightgray;
}
.landing .container {
  position: relative;
  z-index: 2;
}
.landing__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 64px;
}
.landing__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  width: 50%;
  flex-shrink: 0;
}
.landing__title {
  font-size: 36px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .landing__title {
    font-size: 24px;
  }
}
.landing__price {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  font-weight: 500;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .landing__price {
    font-size: 16px;
  }
}
.landing__text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
  margin-top: 4px;
}
.landing__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin-top: 8px;
}
.landing__btn:hover {
  opacity: 0.85;
}
/* Ряд кнопок внутри текста блока: на перенесённых лендингах подписи
   «jetzt anfragen / Termin buchen» стояли в абзаце обычными ссылками.
   Абзац помечен .btn-row, ссылки получают .landing__btn. */
.text .btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.text .btn-row > .landing__btn {
  margin-top: 0;
}
.landing__media {
  position: relative;
  flex: 1;
  width: 50%;
  aspect-ratio: 16/10;
  border-radius: 6px;
  overflow: hidden;
  background: lightgray;
}
.landing__video, .landing__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.landing__poster.is-hidden {
  display: none;
}
.landing__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  transition: opacity 0.2s;
}
.landing__play:hover {
  opacity: 0.85;
}
.landing__play.is-hidden {
  display: none;
}
.landing__partners {
  display: flex;
  align-items: center;
  gap: 46px;
  width: 100%;
  max-width: 480px;
  margin-top: 40px;
}
.landing__partners img {
  height: 64px;
  width: auto;
  -o-object-fit: contain;
  object-fit: contain;
}

.service.grey {
  background: #f3f3f3;
}
.service__wrapper {
  display: flex;
  gap: 64px;
}
.service__content {
  width: 50%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.service__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin-top: 24px;
}
.service__btn:hover {
  opacity: 0.85;
}
.service__items {
  width: 50%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
/* У секции нет ни заголовка, ни текста — левой колонки не рисуем (шаблон),
   плитки занимают всю ширину. Иначе половина секции стояла пустой. */
.service__wrapper > .service__items:only-child {
  width: 100%;
  grid-template-columns: repeat(3, 1fr);
}
.service__item {
  display: flex;
  padding: 24px;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
}
.service__item img {
  width: 32px;
  height: 32px;
}
.service__item_title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
  margin-top: 8px;
}
@media (max-width: 768px) {
  .service__item_title {
    font-size: 16px;
  }
}
.service__item_text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: var(--color-text-grey);
}

.cta__card {
  display: flex;
  align-items: stretch;
  gap: 12px;
  padding: 6px;
  border-radius: 6px;
  background: var(--color-primary);
}
.cta__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  width: 50%;
  flex: 1;
  padding: 58px;
}
.cta__title {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: #fff;
}
@media (max-width: 768px) {
  .cta__title {
    font-size: 20px;
  }
}
.cta__text {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: rgba(255, 255, 255, 0.8);
}
.cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  background: #fff;
  border-color: #fff;
  color: var(--color-text);
  margin-top: 26px;
}
.cta__btn:hover {
  opacity: 0.85;
}
.cta__phone {
  display: flex;
  flex-direction: column;
  margin-top: 26px;
}
.cta__phone-label {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  color: #fff;
}
.cta__phone-value {
  color: var(--Black, #222);
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: #fff;
  text-decoration: none;
}
@media (max-width: 768px) {
  .cta__phone-value {
    font-size: 20px;
  }
}
.cta__media {
  width: 50%;
  flex: 1;
  display: flex;
}
.cta__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 6px;
}

.withdrawal-page .wpcf7 {
  max-width: 600px;
  margin: 0 auto;
  padding: 40px 0;
}
.withdrawal-page .wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.withdrawal-page .wpcf7-form br {
  display: none;
}
.withdrawal-page .hidden-fields-container {
  display: none;
}
.withdrawal-page .form-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.withdrawal-page .form-row > *:only-child {
  grid-column: 1/-1;
}
.withdrawal-page .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.withdrawal-page input.wpcf7-form-control,
.withdrawal-page textarea.wpcf7-form-control {
  color: var(--color-text);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 169.5%;
  width: 100%;
  padding: 12px 16px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  font-family: "Inter", sans-serif;
  resize: none;
}
.withdrawal-page input.wpcf7-form-control::-moz-placeholder, .withdrawal-page textarea.wpcf7-form-control::-moz-placeholder {
  color: var(--color-text-grey);
}
.withdrawal-page input.wpcf7-form-control:-ms-input-placeholder, .withdrawal-page textarea.wpcf7-form-control:-ms-input-placeholder {
  color: var(--color-text-grey);
}
.withdrawal-page input.wpcf7-form-control::placeholder,
.withdrawal-page textarea.wpcf7-form-control::placeholder {
  color: var(--color-text-grey);
}
.withdrawal-page input.wpcf7-form-control:focus,
.withdrawal-page textarea.wpcf7-form-control:focus {
  outline: none;
  border-color: var(--color-primary);
}
.withdrawal-page input.wpcf7-form-control {
  height: 48px;
}
.withdrawal-page textarea.wpcf7-form-control {
  min-height: 140px;
  padding: 20px 16px;
}
.withdrawal-page .wpcf7-not-valid-tip {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: #c0392b;
  margin-top: 4px;
}
.withdrawal-page .checkbox-label {
  display: block;
  cursor: pointer;
}
.withdrawal-page .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}
.withdrawal-page .wpcf7-acceptance .wpcf7-list-item > label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.withdrawal-page .wpcf7-acceptance .wpcf7-list-item-label {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  color: var(--color-text);
}
.withdrawal-page .wpcf7-acceptance .wpcf7-list-item-label a {
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.withdrawal-page .wpcf7-acceptance .wpcf7-list-item-label a:hover {
  color: var(--color-primary);
}
.withdrawal-page .wpcf7-acceptance input[type=checkbox] {
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 14px;
  height: 14px;
  margin-top: 1px;
  border-radius: 4px;
  border: 1px solid #cbd5e1;
  background: #fff;
  flex-shrink: 0;
  box-sizing: border-box;
  cursor: pointer;
  transition: border-color 0.2s;
}
.withdrawal-page .wpcf7-acceptance input[type=checkbox]:checked {
  border: 2px solid var(--color-primary);
}
.withdrawal-page .wpcf7-acceptance input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  left: 3.2px;
  top: 1px;
  width: 4px;
  height: 6px;
  border: solid var(--color-primary);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.withdrawal-page .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  justify-content: center;
  width: 100%;
  color: #fff;
}
.withdrawal-page .wpcf7-submit:hover {
  opacity: 0.85;
}
.withdrawal-page .wpcf7-submit:disabled {
  opacity: 0.4;
  pointer-events: none;
}
.withdrawal-page input[type=submit] {
  color: #fff;
}
.withdrawal-page .wpcf7-spinner {
  margin: 0 0 0 8px;
}
.withdrawal-page .wpcf7-response-output {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  margin: 0;
  padding: 12px 16px;
  border-radius: 6px;
  border: 1px solid rgba(34, 34, 34, 0.15);
}
.withdrawal-page form.sent .wpcf7-response-output {
  border-color: var(--color-green);
  color: var(--color-green);
}
.withdrawal-page form.failed .wpcf7-response-output,
.withdrawal-page form.aborted .wpcf7-response-output,
.withdrawal-page form.invalid .wpcf7-response-output {
  border-color: #c0392b;
  color: #c0392b;
}
@media (max-width: 768px) {
  .withdrawal-page .form-row {
    grid-template-columns: 1fr;
  }
}

.picture {
  padding: 0;
}
.picture .container {
  max-width: 100%;
  padding: 0;
}
.picture .container img {
  width: 100%;
  max-height: 640px;
}

.title-block .title {
  margin-bottom: 16px;
}
.title-block .text p {
  margin-bottom: 24px;
}
.title-block .text p:last-of-type {
  margin-bottom: 0;
}
/* SEO-Text der Kategorien (native Term-Beschreibung): Zwischenüberschriften und Listen
   brauchen eigene Regeln, weil der globale Reset h2-h4 die Abstände und ul/ol die
   Aufzählungszeichen nimmt. Schriftgrössen folgen der Skala der Seite (.title 32/500,
   .text 16/169.5 %), damit der Text nicht wie ein Fremdkörper wirkt.
   Gilt genauso für den Gutenberg-Block "title-block". */
.title-block .text {
  max-width: 980px;
}
.title-block .text h2,
.title-block .text h3,
.title-block .text h4 {
  font-family: "Inter", sans-serif;
  font-weight: 500;
  color: var(--color-text, #222);
}
.title-block .text h2 {
  margin: 32px 0 12px;
  font-size: 22px;
  line-height: 1.35;
}
.title-block .text h3 {
  margin: 24px 0 8px;
  font-size: 18px;
  line-height: 1.4;
}
.title-block .text h4 {
  margin: 20px 0 8px;
  font-size: 16px;
  font-weight: 600;
}
.title-block .text > :first-child {
  margin-top: 0;
}
.title-block .text ul,
.title-block .text ol {
  display: block;
  margin: 0 0 24px;
  padding-left: 22px;
  font-size: 16px;
  line-height: 169.5%;
  color: var(--color-text-grey);
}
/* Aufzählungszeichen müssen am <li> selbst gesetzt werden: bundle.css enthält
   "ol, ul, li { list-style: none }" — die Regel steht direkt auf dem li und schlägt
   damit jede Vererbung vom ul. Nur list-style am ul reicht also nicht. */
.title-block .text ul,
.title-block .text ul > li {
  list-style: disc outside;
}
.title-block .text ol,
.title-block .text ol > li {
  list-style: decimal outside;
}
.title-block .text li {
  display: list-item;
  margin-bottom: 8px;
}
.title-block .text strong {
  font-weight: 600;
  color: var(--color-text, #222);
}
.title-block .text a {
  color: var(--color-primary, #D7161E);
  text-decoration: underline;
}
.title-block .text a:hover {
  text-decoration: none;
}
/* Rechtstexte (Impressum, AGB, Datenschutz, Widerruf, Barrierefreiheit).
   Nutzen bewusst die Typografie von .title-block, damit sie im Seitenbild bleiben —
   hier nur Lesebreite und Abstände, die für lange Fliesstexte anders sind. */
.legal-page {
  padding-top: 8px;
}
.legal-page .title {
  margin-bottom: 28px;
}
.legal-page .text {
  max-width: 880px;
}
.legal-page .text p {
  margin-bottom: 16px;
}
.legal-page .text a {
  overflow-wrap: anywhere;
}

/* Ein-/Ausklappen des SEO-Textes.
   Der Text wird NUR optisch beschnitten (max-height + overflow), nicht ausgeblendet —
   er bleibt vollständig im DOM und damit für Suchmaschinen sichtbar. */
.title-block__collapse.is-collapsed .text {
  position: relative;
  max-height: 320px;
  overflow: hidden;
}
.title-block__collapse.is-collapsed .text::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 120px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 85%);
  pointer-events: none;
}
.title-block__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  padding: 0;
  color: var(--color-primary, #D7161E);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
}
.title-block__toggle[hidden] {
  display: none;
}
.title-block__toggle:hover {
  text-decoration: underline;
}
.title-block__toggle-icon {
  transition: transform 0.2s ease;
}
.title-block__collapse.is-open .title-block__toggle-icon {
  transform: rotate(180deg);
}

@media (max-width: 768px) {
  .title-block .text h2 {
    margin-top: 24px;
    font-size: 19px;
  }
  .title-block .text h3 {
    font-size: 17px;
  }
  .title-block__collapse.is-collapsed .text {
    max-height: 260px;
  }
}

.error-page {
  background: #f3f3f3;
}
.error-page .container {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-align: center;
  gap: 24px;
}
.error-page .container a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 40px;
  background: var(--color-primary);
  color: var(--White, #fff);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  height: 56px;
  line-height: 100%;
  justify-content: center;
  text-decoration: none;
  border-radius: 6px;
  transition: opacity 0.2s;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.error-page .container a:hover {
  opacity: 0.85;
}

@media (max-width: 1200px) {
  .product__dims {
    flex-wrap: wrap;
  }
}
@media (max-width: 1024px) {
  .header {
    z-index: 400;
  }
  .header__promo {
    display: none;
  }
  .header__main .container {
    min-height: 64px;
  }
  .header__hamburger {
    display: flex;
  }
  .header__mobile-search-wrap {
    justify-content: flex-end;
  }
  .header .mobile-search {
    top: -3px;
  }
  .header__actions {
    gap: 16px;
  }
  .header__actions > a.header__icon {
    display: none;
  }
  .header__actions .mob-open-search,
.header__actions .mobile-search {
    display: none !important;
  }
  .header__email {
    display: none;
  }
  .header__logo img {
    height: 40px;
  }
  .header__btn-3d {
    display: none;
  }
  .header__icon--user {
    display: none;
  }
  .header__nav {
    display: none;
  }
  .header__mobile-menu {
    top: 64px;
    height: calc(100dvh - 64px);
  }
  .header__overlay {
    top: 64px;
  }

  .hero {
    min-height: 460px;
    border-radius: 0;
  }
  .hero__content {
    max-width: 100%;
    padding: 40px 0;
  }

  .banner {
    min-height: 572px;
    border-radius: 0;
  }
  .banner__content {
    max-width: 100%;
    padding-top: 64px;
  }

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

  .product__details {
    gap: 32px;
  }
  .product__layout {
    gap: 32px;
  }
  .product__tab {
    padding: 16px 10px;
  }

  .statement__media {
    height: 320px;
  }

  .shop__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .shop__card-tooltip {
    left: auto;
    right: -50%;
    transform: translateX(50%);
  }
  .shop__card-tooltip::before {
    display: none;
  }

  .contact__location {
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "image name" "image details" "image actions";
    row-gap: 12px;
  }
  .contact__location-image {
    grid-area: image;
  }
  .contact__location-name {
    grid-area: name;
  }
  .contact__location-details {
    grid-area: details;
  }
  .contact__location-actions {
    grid-area: actions;
  }

  .cabin-request__layout {
    grid-template-columns: 1fr;
  }
  .cabin-request__contact-locations {
    grid-template-columns: 1fr;
  }
  .cabin-request__partners {
    display: none;
  }
  .cabin-request__success-card {
    padding: 32px 16px;
  }
  .cabin-request__success br {
    display: none;
  }

  .news__item {
    gap: 24px;
  }

  .team__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .service__items {
    grid-template-columns: 1fr;
  }
  .service__wrapper {
    gap: 24px;
  }

  .cta__content {
    padding: 32px;
  }
}
@media (max-width: 768px) {
  .service__wrapper {
    flex-direction: column;
  }
  .service__content {
    width: 100%;
  }
  .service__btn {
    width: 100%;
    margin-top: 8px;
  }
  .service__items {
    width: 100%;
  }

  .banner {
    margin-top: 0;
  }
  .banner__block {
    max-width: -webkit-max-content;
    max-width: -moz-max-content;
    max-width: max-content;
    margin: 32px auto 0;
    flex-wrap: wrap;
  }
  .banner__block_btn {
    width: 100%;
  }

  .breadcrumbs {
    padding: 6px 0;
  }

  .breadcrumbs.breadcrumbs--white .breadcrumbs__link,
.breadcrumbs.breadcrumbs--white .breadcrumbs__sep {
    color: var(--color-text-grey);
  }
  .breadcrumbs.breadcrumbs--white .breadcrumbs__current {
    color: var(--color-text);
  }

  .select2-container--default {
    min-width: 140px;
  }

  .shop__controls {
    width: 100%;
  }
  .shop__card-image {
    /* war height:auto — würde den einheitlichen Zuschnitt auf dem Handy wieder aufheben */
    height: 100% !important;
  }
  .shop__grid {
    grid-template-columns: repeat(1, 1fr);
  }
  .shop__filter-btn, .shop__sort-btn {
    width: 50%;
  }
  .shop__head {
    align-items: flex-start;
    margin-bottom: 24px;
    flex-direction: column;
  }
  .shop__sort {
    display: none;
  }
  .shop__sort-btn {
    display: flex;
  }
  .shop__seo {
    margin-top: 32px;
  }
  .shop__load-more-btn {
    width: 100%;
  }
  .shop__card_wrap {
    align-items: flex-start;
    flex-direction: column;
  }

  .contact {
    padding-top: 32px;
  }
  .contact__head {
    margin-bottom: 24px;
  }
  .contact__location {
    grid-template-columns: 1fr;
    grid-template-areas: "image" "name" "details" "actions";
    row-gap: 24px;
    padding: 24px 0;
  }
  .contact__location-img {
    min-height: 180px;
  }
  .contact__location-title {
    font-size: 20px;
  }
  .contact__location-phone {
    width: 100%;
    justify-content: center;
  }

  .cabin-request__grid {
    grid-template-columns: 1fr;
  }
  .cabin-request__radios {
    grid-template-columns: 1fr;
  }

  .news__item {
    flex-direction: column;
    gap: 16px;
  }
  .news__image {
    height: auto;
  }
  .news__page-btn, .news__page-dots {
    width: 32px;
    height: 32px;
  }
  .news__image-wrap {
    width: 100%;
  }
  .news__pagination {
    flex-wrap: wrap;
    margin-top: 24px;
  }
  .news__content {
    width: 100%;
  }

  .single-news__layout {
    flex-direction: column;
    gap: 32px;
  }
  .single-news__main {
    max-width: 100%;
  }
  .single-news__sidebar {
    max-width: 100%;
  }
  .single-news__image {
    height: auto;
  }

  .product__details {
    padding-top: 32px;
    flex-direction: column;
  }
  .product__details-main {
    width: 100%;
  }
  .product__layout {
    grid-template-columns: 1fr;
    margin-bottom: 32px;
  }
  .product__tabs {
    margin-bottom: 16px;
  }
  .product__tab {
    padding: 16px 10px;
  }
  .product__tab p {
    display: none;
  }
  .product__size-table {
    margin-left: 0;
  }
  .product__dims {
    flex-direction: column;
    align-items: flex-start;
  }
  .product__badges {
    grid-template-columns: 1fr;
  }
  .product__qty-input {
    width: 56px;
  }
  .product__badge {
    flex-direction: row;
  }
  .product__testimonial {
    width: 100%;
  }

  .product--simple .product__buy-row .product__btn-cart {
    padding: 10px;
  }

  .timeline__card {
    width: 288px;
  }

  section {
    padding: 32px 0;
  }

  .footer {
    padding-top: 24px;
  }
  .footer__items {
    display: none;
  }
  .footer__nav .container {
    grid-template-columns: repeat(1, 1fr);
    gap: 42px;
    padding: 24px;
  }
  .footer__top .container {
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
    padding-bottom: 24px;
  }
  .footer__bottom .container {
    background: #fff;
    padding: 24px;
  }
  .footer__bottom-nav {
    gap: 16px;
    flex-direction: column;
  }
  .footer__partners {
    padding: 24px 0;
  }
  .footer__partners .container {
    gap: 28px;
  }
  .footer__partners img {
    height: 40px;
    -o-object-fit: contain;
    object-fit: contain;
  }

  .hero {
    min-height: 460px;
  }
  .hero__content {
    gap: 16px;
    padding: 24px 0;
  }
  .hero__text {
    line-height: 169.5%;
  }
  .hero__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    margin-top: 8px;
  }
  .hero__btn {
    justify-content: center;
    width: 100%;
  }

  .simple.simple--full.reverse .simple__inner {
    flex-direction: column;
  }
  .simple.simple--full.reverse .simple__content {
    padding-bottom: 0;
  }
  .simple.reverse .simple__inner {
    flex-direction: column-reverse;
  }
  .simple__inner {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 24px;
  }
  .simple ul li {
    padding-left: 32px;
  }
  .simple ul li strong {
    font-size: 20px;
  }
  .simple__content {
    width: 100%;
  }
  .simple__media {
    width: 100%;
  }
  .simple__gallery-image--big {
    height: 280px;
  }
  .simple__gallery-image--small {
    height: 160px;
  }

  .projects__gallery-col--hide-mobile {
    display: none;
  }
  .projects__gallery-image--1 {
    height: 126px;
  }
  .projects__gallery-image--2 {
    height: 224px;
  }
  .projects__gallery-image--3 {
    height: 224px;
  }
  .projects__gallery-image--4 {
    height: 126px;
  }
  .projects--single .projects__head {
    flex-direction: column;
  }
  .projects--single .projects__head .title,
.projects--single .projects__head .text {
    width: 100%;
    max-width: 100%;
  }
  .projects--single .projects__gallery-image--3 {
    height: 224px;
  }
  .projects--single .projects__gallery-image--4 {
    height: 126px;
  }
  .projects--single .projects__gallery-image--5 {
    height: 126px;
  }
  .projects--single .projects__gallery-image--6 {
    height: 224px;
  }

  .team.column--one .team__grid {
    grid-template-columns: 1fr;
  }
  .team__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px 10px;
  }
  .team__head {
    margin-bottom: 24px;
  }
  .team__photo {
    height: auto;
  }
  .team__role {
    font-size: 14px;
    line-height: normal;
  }

  .landing {
    margin-top: 0;
    padding-top: 96px;
  }
  .landing__inner {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
  }
  .landing__text {
    margin-top: 0;
  }
  .landing__content {
    width: 100%;
  }
  .landing__media {
    width: 100%;
  }
  .landing__btn {
    width: 100%;
  }
  .landing__partners {
    max-width: 100%;
    gap: inherit;
    margin-top: 24px;
    justify-content: space-between;
  }
  .landing__partners img {
    height: 36px;
  }

  .categories__grid {
    grid-template-columns: 1fr;
  }
  .categories__item {
    min-height: 175px;
    aspect-ratio: unset;
  }
  .categories__title {
    font-size: 20px;
  }

  .reasons__list {
    max-width: 100%;
    gap: 24px;
  }
  .reasons__item {
    padding: 16px 0;
    align-items: flex-start;
    flex-direction: column-reverse;
  }
  .reasons__item-number {
    font-size: 28px;
  }
  .reasons__button {
    width: 100%;
  }

  .features .container {
    padding-right: 0;
  }
  .features__btn {
    width: 100%;
  }
  .features__head {
    margin-bottom: 24px;
    padding-right: 16px;
  }
  .features__gallery-wrapper {
    display: flex;
    gap: 0;
    grid-template-columns: none;
  }
  .features__gallery-slide {
    width: 270px;
    flex-shrink: 0;
  }
  .features__image {
    width: 270px;
    height: 360px;
    aspect-ratio: 3/4;
  }
  .features__nav {
    display: flex;
    padding-right: 16px;
  }

  .video {
    padding: 0;
  }
  .video__player {
    min-height: 360px;
  }
  .video__media {
    min-height: 360px;
    -o-object-fit: cover;
    object-fit: cover;
  }
  .video__play {
    width: 42px;
    height: 42px;
  }
  .video__play-icon {
    width: 42px;
    height: 42px;
  }

  .products__button--mobile {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-bottom: 24px;
  }
  .products__image {
    height: auto;
  }
  .products__head {
    flex-direction: column;
    margin-bottom: 24px;
  }
  .products__button-transparent {
    width: 100%;
  }
  .products__footer .products__button {
    display: none;
  }
  .products__nav {
    justify-content: flex-end;
    width: 100%;
  }

  .philosophy__head {
    flex-direction: column;
    gap: 16px;
    margin-bottom: 0;
  }
  .philosophy .container {
    display: flex;
    gap: 32px;
    flex-direction: column-reverse;
  }
  .philosophy__head .title {
    max-width: 100%;
  }
  .philosophy__head .text {
    width: 100%;
  }
  .philosophy__gallery {
    grid-template-rows: 200px 280px;
  }
  .philosophy__image--main {
    height: 100%;
  }
  .philosophy__image--top {
    height: 200px;
  }
  .philosophy__image--bottom {
    height: 280px;
  }

  .statement__card {
    width: 203px;
  }
  .statement__play {
    width: 42px;
    height: 42px;
  }
  .statement__media {
    height: 360px;
  }
  .statement .container {
    padding-right: 0;
  }
  .statement__head {
    padding-right: 16px;
  }
  .statement__nav {
    justify-content: flex-end;
    padding-right: 16px;
  }

  .gallery__slide {
    flex: 0 0 auto;
    width: 123px;
  }
  .gallery__image {
    width: 123px;
    height: 164px;
  }
  .gallery .container {
    padding: 0;
  }
  .gallery__head {
    padding: 0 16px;
    margin-bottom: 24px;
  }

  .info__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .info.info-col-4 .info__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .cta__card {
    flex-direction: column;
    gap: 0;
  }
  .cta__content {
    width: 100%;
    padding: 22px 10px;
  }
  .cta__media {
    width: 100%;
    min-height: 220px;
  }
  .cta__btn {
    width: 100%;
    justify-content: center;
    margin-top: 8px;
  }
  .cta__phone {
    margin-top: 8px;
  }
}
@media (max-width: 568px) {
  .banner {
    padding: 64px 0;
  }
  .banner__actions {
    flex-direction: column;
    width: 100%;
    margin-top: 8px;
  }
  .banner__btn {
    width: 100%;
  }
  .banner__block_title {
    font-size: 20px;
  }

  .single-news__related-item {
    flex-direction: column;
    padding: 16px 0;
  }
  .single-news__related-image-wrap {
    width: 100%;
  }
  .single-news__related-content {
    width: 100%;
  }
  .single-news__sidebar {
    gap: 16px;
  }

  .info.info-col-4 .info__grid {
    grid-template-columns: repeat(1, 1fr);
  }

  .philosophy__gallery {
    grid-template-rows: 86px 144px;
  }
  .philosophy__image--main {
    height: 100%;
  }
  .philosophy__image--top {
    height: 86px;
  }
  .philosophy__image--bottom {
    height: 144px;
  }
}
@media (max-width: 450px) {
  .simple__gallery-image--big {
    height: 199px;
  }
  .simple__gallery-image--small {
    height: 151px;
  }
}
/* ============================================================================
   Polarholz — WooCommerce-Meldungen im Seitendesign
   WooCommerce gibt Hinweise als <ul class="woocommerce-error|message|info"> aus.
   Ohne Styles erschienen sie als roher Text mit Aufzählungspunkten (z. B.
   „Bitte geben Sie ein Maß zwischen 30 und 250 cm an.") — jetzt als Karte mit
   farbiger Akzentkante: Fehler = Primärrot, Erfolg = Grün, Info = Grau.
   ========================================================================= */
.woocommerce-notices-wrapper:empty {
  display: none;
}
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  list-style: none !important;
  margin: 0 0 16px !important;
  padding: 14px 18px !important;
  border: 1px solid #e6e2d9 !important;
  border-left: 4px solid var(--color-grey) !important;
  border-radius: 8px !important;
  background: #faf8f5 !important;
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.5;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.woocommerce-error > li,
.woocommerce-message > li,
.woocommerce-info > li {
  list-style: none !important;
  margin: 0;
  padding: 0;
}
.woocommerce-error {
  border-left-color: var(--color-primary) !important;
  background: #fdf5f4 !important;
}
.woocommerce-message {
  border-left-color: var(--color-green) !important;
  background: #f2f9f6 !important;
}
.woocommerce-error .button,
.woocommerce-message .button,
.woocommerce-info .button {
  align-self: flex-start;
}

/* ============================================================================
   Polarholz — Produktbeschreibung: Überschriften, Listen, Technische Daten
   Der Beschreibungstext (ACF text_details) kommt als HTML mit <h3>, <ul> und
   einer Tabelle. Vorher: h3 optisch wie Fließtext (keine Hierarchie), <ul> ohne
   Punkte (display:flex + list-style:auto killt die Marker), Tabelle ungestylt.
   ========================================================================= */
.product__details .text h3 {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  margin: 16px 0 0;
  color: var(--color-text);
}
.product__details .text h4 {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
  margin: 12px 0 0;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .product__details .text h3 {
    font-size: 19px;
  }
  .product__details .text h4 {
    font-size: 16px;
  }
}
.product__details .text ul {
  display: block;
  padding-left: 22px;
  margin: 0;
}
/* siehe Hinweis bei .title-block: list-style gehört auch ans li, sonst gewinnt
   der Reset "ol, ul, li { list-style: none }" aus bundle.css. */
.product__details .text ul,
.product__details .text ul > li {
  list-style: disc outside;
}
.product__details .text ol,
.product__details .text ol > li {
  list-style: decimal outside;
}
.product__details .text ul li,
.product__details .text ol li {
  display: list-item;
  margin-bottom: 8px;
}
.product__details .text ol {
  display: block;
  padding-left: 22px;
  margin: 0;
}
.product__details .text table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  margin: 4px 0 0;
}
.product__details .text table td,
.product__details .text table th {
  padding: 10px 12px;
  border: 1px solid #e6e2d9;
  vertical-align: top;
  text-align: left;
}
.product__details .text table th,
.product__details .text table tr > td:first-child {
  width: 38%;
  font-weight: 500;
  background: #faf8f5;
  color: var(--color-text);
}
.product__details .text table tr > td:last-child {
  color: var(--color-text-grey);
}
@media (max-width: 600px) {
  .product__details .text table {
    display: block;
    overflow-x: auto;
  }
}

/* Produktbeschreibung: Abschnittsüberschriften (Details / Highlights / Technische Daten)
   mit rotem Akzent — gleiche Optik wie der Download-Titel, statt nacktem Fettdruck. */
.product__details .text h2,
.product__details .text h3,
.product__details-title {
  font-weight: 600;
  color: var(--color-text);
  position: relative;
  padding-bottom: 10px;
  margin-top: 8px;
  letter-spacing: -0.01em;
}
.product__details .text h2:first-child,
.product__details .text h3:first-child {
  margin-top: 0;
}
.product__details .text h2::after,
.product__details .text h3::after,
.product__details-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 2px;
  background: var(--color-primary);
}

/* Produkt-Detailseite mobil: Titel/Preis/CTA über die Galerie ziehen, Abstände straffen */
@media (max-width: 768px) {
  .product__layout {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 0;
  }
  .product__info { display: contents; }
  .product__info > * { order: 3; }
  .product__info-top { order: 1; margin-bottom: 0; }
  .product__gallery { order: 2; gap: 10px; }
  /* высота идёт из aspect-ratio базового правила: на 358 px это те же ~300 px,
     но на 700 px кадр перестаёт быть полосой 2.2:1 */
  .product__gallery-image { height: auto !important; }
  .product__details { padding-top: 24px; }

  /* Desktop-Navigation ganz aus dem Layout nehmen: bundle.css lässt sie sonst als
     unsichtbare (opacity:0) 460px-Dropdown-Box stehen und schiebt die Seite seitlich raus. */
  .header__nav { display: none !important; }
}

/* ---------- Шапка в одну строку (ориентир — klafs.com) ----------
   Было три яруса: почта+логотип+кнопки, под ними серая полоса меню. Стало:
   тонкая служебная строка (почта / B2B), под ней одна строка «логотип — меню —
   утилиты». Мега-панель осталась в <nav> и раскрывается под шапкой. */
.header__utility {
  background: #fff;
  border-bottom: 1px solid rgba(34, 34, 34, 0.1);
}
.header__utility .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 38px;
}
.header__utility .header__email {
  font-size: 13px;
  color: #6b6b6b;
  gap: 8px;
}
.header__utility .header__email svg {
  width: 16px;
  height: 16px;
}
.header__utility .header__b2b {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 12px;
}
.header__nav {
  background: transparent;
  border: 0;
  min-height: 0;
}
.header__main .container {
  gap: 40px;
  min-height: 76px;
}
.header__logo {
  position: static;
  left: auto;
  transform: none;
  flex: 0 0 auto;
}
.header__logo img {
  height: 44px;
  width: auto;
  max-width: none;
}
.header__nav-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  flex: 1 1 auto;
  margin: 0;
  padding: 0;
  list-style: none;
}
.header__nav-link {
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text);
  padding: 8px 0;
  position: relative;
}
.header__nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--color-primary);
  transform: scaleX(0);
  transition: transform 0.18s ease;
}
.header__nav-item:hover > .header__nav-link::after {
  transform: scaleX(1);
}
.header__nav-arrow {
  width: 14px;
  height: 14px;
  opacity: 0.55;
}
.header__actions {
  flex: 0 0 auto;
  gap: 18px;
}
.header__btn-3d {
  padding: 11px 20px;
  font-size: 13px;
  letter-spacing: 0.04em;
}

@media (max-width: 1024px) {
  /* на мобильном меню живёт в бургере: раньше его прятало правило для
     .header__nav, но список переехал в основную строку */
  .header__utility,
  .header__nav-list {
    display: none !important;
  }
  .header__logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
  .header__main .container {
    gap: 12px;
    min-height: 64px;
  }
}

/* ---------- Кнопка закрытия мобильного меню ---------- */
.header__mobile-close {
  position: absolute;
  top: 10px;
  right: 16px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid rgba(34, 34, 34, 0.15);
  border-radius: 8px;
  background: #fff;
  color: var(--color-text);
  cursor: pointer;
}
.header__mobile-menu {
  position: fixed;
}
.header__mobile-search-wrap {
  padding-right: 64px;
}

/* ---------- Телефоны и почта в тексте — фирменной ссылкой ----------
   В перенесённых блоках номера стояли простым текстом: на телефоне по ним
   нельзя было позвонить, и они терялись среди абзацев. */
.simple .text a[href^="tel:"],
.simple .text a[href^="mailto:"],
.cabin-request a[href^="tel:"],
.cabin-request a[href^="mailto:"] {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.cta__text a[href^="tel:"],
.cta__text a[href^="mailto:"] {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}

/* ============================================================
   Mein Konto (WooCommerce) — Inhaltsblöcke sauber gestaltet.
   Scope: .woocommerce-account (Body-Klasse aller Konto-Seiten).
   main.css lädt VOR bundle.css → hier bewusst höhere Spezifität,
   damit die Regeln greifen. Nur Konto-Seiten betroffen.
   ============================================================ */

/* Inhalt nicht über die volle Spaltenbreite ziehen (wirkte gestreckt). */
.woocommerce-account .woocommerce-MyAccount-content > form,
.woocommerce-account .woocommerce-MyAccount-content > p {
  max-width: 680px;
}

/* Formularzeilen + Labels */
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-form-row,
.woocommerce-account .woocommerce-MyAccount-content form p.form-row {
  margin: 0 0 20px;
}
.woocommerce-account .woocommerce-MyAccount-content form label {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text);
}

/* Eingabefelder: einheitlicher, wertiger Look + Fokus */
.woocommerce-account .woocommerce-MyAccount-content form input.input-text,
.woocommerce-account .woocommerce-MyAccount-content form input[type="text"],
.woocommerce-account .woocommerce-MyAccount-content form input[type="email"],
.woocommerce-account .woocommerce-MyAccount-content form input[type="tel"],
.woocommerce-account .woocommerce-MyAccount-content form input[type="password"],
.woocommerce-account .woocommerce-MyAccount-content form select,
.woocommerce-account .woocommerce-MyAccount-content form textarea {
  width: 100%;
  padding: 13px 16px;
  border: 1px solid rgba(34, 34, 34, 0.15);
  border-radius: 8px;
  background: #fff;
  font-size: 15px;
  font-family: inherit;
  color: var(--color-text);
  transition: border-color 0.18s, box-shadow 0.18s;
}
.woocommerce-account .woocommerce-MyAccount-content form input.input-text:focus,
.woocommerce-account .woocommerce-MyAccount-content form input[type="text"]:focus,
.woocommerce-account .woocommerce-MyAccount-content form input[type="email"]:focus,
.woocommerce-account .woocommerce-MyAccount-content form input[type="tel"]:focus,
.woocommerce-account .woocommerce-MyAccount-content form input[type="password"]:focus,
.woocommerce-account .woocommerce-MyAccount-content form select:focus,
.woocommerce-account .woocommerce-MyAccount-content form textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(152, 38, 28, 0.1);
}
/* Passwort-Feld mit Auge-Icon: Icon nicht überdecken */
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-password-hint,
.woocommerce-account .woocommerce-MyAccount-content form span.password-input {
  display: block;
  width: 100%;
  position: relative;
}
.woocommerce-account .woocommerce-MyAccount-content form span.password-input input {
  padding-right: 44px;
}

/* „Passwort ändern" als ruhige Sub-Karte */
.woocommerce-account .woocommerce-MyAccount-content form fieldset {
  margin: 28px 0 0;
  padding: 24px;
  border: 1px solid rgba(34, 34, 34, 0.08);
  border-radius: 12px;
  background: #fafaf8;
}
.woocommerce-account .woocommerce-MyAccount-content form fieldset legend {
  padding: 0;
  margin-bottom: 6px;
  font-size: 18px;
  font-weight: 600;
  color: var(--color-text);
}

/* Buttons einheitlich */
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"],
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  border-radius: 8px;
  border: 1px solid var(--color-primary);
  background: var(--color-primary);
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background 0.18s, color 0.18s, border-color 0.18s;
}
.woocommerce-account .woocommerce-MyAccount-content .button:hover,
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:hover,
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"]:hover {
  background: #7f1f17;
  border-color: #7f1f17;
  color: #fff;
}

/* Adressen als Karten. WICHTIG: WooCommerce setzt auf .col2-set .col-1/.col-2
   float:left/right + width:48% — das lässt die Karten „schwimmen"/versetzt
   stehen. Daher Float/Breite hart zurücksetzen und sauberes Grid erzwingen. */
.woocommerce-account .section.my_account .woocommerce-Addresses.col2-set,
.woocommerce-account .section.my_account .woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 24px;
  float: none;
}
.woocommerce-account .section.my_account .woocommerce-Addresses .u-column1,
.woocommerce-account .section.my_account .woocommerce-Addresses .u-column2,
.woocommerce-account .section.my_account .woocommerce-Address {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 28px !important;
  border: 1px solid rgba(34, 34, 34, 0.1);
  border-radius: 14px;
  background: #fff;
}
.woocommerce-account .section.my_account .woocommerce-Addresses h2,
.woocommerce-account .section.my_account .woocommerce-Address-title,
.woocommerce-account .section.my_account .woocommerce-Address-title h3 {
  text-align: left !important;
  margin: 0 0 14px !important;
  font-size: 18px;
  font-weight: 600;
}
.woocommerce-account .section.my_account .woocommerce-Address address {
  font-style: normal;
  color: var(--color-text-grey);
  line-height: 1.6;
}
@media (max-width: 768px) {
  .woocommerce-account .section.my_account .woocommerce-Addresses {
    grid-template-columns: 1fr;
  }
}

/* Bestellungen: kompakte Inline-Aktionen statt großer roter Stapel */
.woocommerce-account .woocommerce-orders-table__cell-order-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
  padding: 8px 16px;
  font-size: 13px;
  background: #fff;
  color: var(--color-primary);
  border: 1px solid rgba(152, 38, 28, 0.35);
}
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button:hover {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button.pay,
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button.view {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-orders-table th {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 12px !important;
  color: var(--color-text-grey) !important;
  padding: 0 12px 14px !important;
  border-bottom: 1px solid rgba(34, 34, 34, 0.1) !important;
}
.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-orders-table td {
  padding: 16px 12px !important;
  vertical-align: middle;
}
