:root {
  --site-wood: #8a6249;
  --site-wood-dark: #6d4d39;
  --site-marine: #17324a;
  --site-marine-deep: #0f2233;
  --site-ochre: #d8ab34;
  --site-ochre-dark: #b8881f;
  --site-surface: #fffdfa;
  --site-surface-soft: #f7f2ea;
  --site-surface-muted: #efe7db;
  --site-border: #dfd2c0;
  --site-text: #23313c;
  --site-text-soft: #65707a;
  --site-text-inverse: #f8f4ed;
  --site-radius-sm: 0.95rem;
  --site-radius-md: 1.2rem;
  --site-radius-lg: 1.6rem;
  --site-radius-xl: 2rem;
  --site-shadow-sm: 0 10px 24px rgba(21, 38, 52, 0.08);
  --site-shadow-md: 0 18px 40px rgba(21, 38, 52, 0.12);
  --site-shadow-lg: 0 28px 60px rgba(21, 38, 52, 0.16);
  --site-transition: 180ms ease;
}

html {
  scroll-padding-top: 110px;
}

body.site-modern {
  background:
    radial-gradient(circle at top left, rgba(186, 139, 45, 0.08), transparent 30%),
    linear-gradient(180deg, #fffdfa 0%, #f8f4ed 100%);
  color: var(--site-text);
  font-size: 16px;
  line-height: 1.7;
  letter-spacing: -0.01em;
}

body.site-modern ::selection {
  background: rgba(186, 139, 45, 0.24);
  color: var(--site-marine-deep);
}

body.site-modern h1,
body.site-modern h2,
body.site-modern h3,
body.site-modern h4 {
  color: var(--site-marine);
  letter-spacing: -0.04em;
}

body.site-modern h1 {
  font-size: clamp(2.9rem, 6vw, 5.4rem) !important;
  line-height: 0.98;
}

body.site-modern h2 {
  line-height: 1.05;
}

body.site-modern h3 {
  line-height: 1.16;
}

body.site-modern p,
body.site-modern li,
body.site-modern input,
body.site-modern textarea,
body.site-modern button,
body.site-modern a {
  letter-spacing: -0.01em;
}

body.site-modern p {
  line-height: 1.75;
}

body.site-modern .max-w-7xl,
body.site-modern .max-w-4xl {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

body.site-modern .py-20 {
  padding-top: clamp(5rem, 8vw, 6.5rem) !important;
  padding-bottom: clamp(5rem, 8vw, 6.5rem) !important;
}

body.site-modern .py-24 {
  padding-top: clamp(5.5rem, 9vw, 7rem) !important;
  padding-bottom: clamp(5.5rem, 9vw, 7rem) !important;
}

body.site-modern .bg-white {
  background-color: rgba(255, 253, 250, 0.94) !important;
}

body.site-modern .bg-gray-50,
body.site-modern .bg-slate-50 {
  background-color: var(--site-surface-soft) !important;
}

body.site-modern .bg-primary {
  background-color: var(--site-marine) !important;
}

body.site-modern .bg-primaryDark {
  background:
    linear-gradient(180deg, rgba(15, 34, 51, 0.98) 0%, rgba(23, 50, 74, 0.98) 100%) !important;
}

body.site-modern .bg-primary\/5 {
  background-color: rgba(23, 50, 74, 0.05) !important;
}

body.site-modern .bg-secondary {
  background-color: var(--site-wood) !important;
}

body.site-modern .bg-btnBlue {
  background-color: var(--site-ochre) !important;
}

body.site-modern .hover\:bg-btnBlueHover:hover,
body.site-modern .bg-btnBlueHover {
  background-color: var(--site-ochre-dark) !important;
}

body.site-modern .text-primary {
  color: var(--site-marine) !important;
}

body.site-modern .text-secondary {
  color: var(--site-wood) !important;
}

body.site-modern .text-btnBlue {
  color: var(--site-ochre) !important;
}

body.site-modern .text-slate-600,
body.site-modern .text-slate-500,
body.site-modern .text-gray-500 {
  color: var(--site-text-soft) !important;
}

body.site-modern .text-gray-300,
body.site-modern .text-slate-400 {
  color: rgba(248, 244, 237, 0.78) !important;
}

body.site-modern .border,
body.site-modern .border-gray-100,
body.site-modern .border-gray-200,
body.site-modern .border-slate-200,
body.site-modern .border-slate-800,
body.site-modern .border-primary\/10,
body.site-modern .border-primary\/5 {
  border-color: var(--site-border) !important;
}

body.site-modern .rounded-md {
  border-radius: var(--site-radius-sm) !important;
}

body.site-modern .rounded-lg {
  border-radius: var(--site-radius-md) !important;
}

body.site-modern .rounded-xl {
  border-radius: var(--site-radius-lg) !important;
}

body.site-modern .rounded-2xl {
  border-radius: var(--site-radius-xl) !important;
}

body.site-modern .shadow-sm {
  box-shadow: var(--site-shadow-sm) !important;
}

body.site-modern .shadow-lg,
body.site-modern .shadow-xl {
  box-shadow: var(--site-shadow-md) !important;
}

body.site-modern .shadow-2xl {
  box-shadow: var(--site-shadow-lg) !important;
}

body.site-modern .site-header {
  background: rgba(255, 251, 245, 0.96) !important;
  border-bottom: 1px solid rgba(223, 210, 192, 0.9) !important;
  box-shadow: 0 8px 24px rgba(15, 34, 51, 0.06);
  padding: 0;
}

body.site-modern .site-header::after {
  display: none;
}

body.site-modern .site-header-inner {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding-top: 0;
  padding-bottom: 0;
}

body.site-modern .site-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  min-height: 6.5rem;
  border-bottom: 1px solid rgba(223, 210, 192, 0.9);
}

body.site-modern .site-header-main {
  min-height: 3.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

body.site-modern .site-brand {
  gap: 0.9rem !important;
  min-height: auto;
  padding: 0 !important;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.site-modern .site-brand img {
  height: 5rem !important;
  width: auto;
}

body.site-modern .site-brand span {
  font-size: 2.5rem !important;
  letter-spacing: -0.05em !important;
}

body.site-modern .site-topbar-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.8rem;
  padding: 0.7rem 1.2rem;
  border-radius: 0 !important;
  box-shadow: none !important;
  line-height: 1;
}

body.site-modern .site-nav-links {
  width: 100%;
  gap: 1.75rem !important;
  justify-content: center !important;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

body.site-modern .site-nav-link,
body.site-modern .site-nav-links > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0 !important;
  font-size: 0.92rem;
  line-height: 1;
  padding: 0.95rem 0 !important;
  transition: color var(--site-transition), opacity var(--site-transition);
}

body.site-modern .site-nav-link:not(.site-nav-cta),
body.site-modern .site-nav-links > a:not(.site-nav-cta) {
  color: var(--site-text-soft) !important;
}

body.site-modern .site-nav-link:not(.site-nav-cta):hover,
body.site-modern .site-nav-links > a:not(.site-nav-cta):hover {
  color: var(--site-marine) !important;
  background: transparent;
  box-shadow: none;
}

body.site-modern .site-nav-group {
  position: relative;
  display: flex;
  align-items: center;
}

body.site-modern .site-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.3rem;
  height: 2px;
  background: var(--site-wood);
  opacity: 0;
  transform: scaleX(0.4);
  transform-origin: center;
  transition: opacity var(--site-transition), transform var(--site-transition);
}

body.site-modern .site-nav-link:hover::after,
body.site-modern .site-nav-group:hover > .site-nav-link::after,
body.site-modern .site-nav-group:focus-within > .site-nav-link::after,
body.site-modern .site-nav-link:focus-visible::after,
body.site-modern .site-nav-link-active::after {
  opacity: 1;
  transform: scaleX(1);
}

body.site-modern .site-nav-link-active,
body.site-modern .site-nav-group:hover > .site-nav-link,
body.site-modern .site-nav-group:focus-within > .site-nav-link,
body.site-modern .site-nav-link:focus-visible {
  color: var(--site-marine) !important;
}

body.site-modern .site-nav-link:focus-visible,
body.site-modern .site-nav-submenu-link:focus-visible,
body.site-modern .site-mobile-link:focus-visible,
body.site-modern .site-mobile-summary:focus-visible,
body.site-modern .site-mobile-sublink:focus-visible {
  outline: 2px solid rgba(138, 98, 73, 0.45);
  outline-offset: 3px;
}

body.site-modern .site-nav-link .fa-chevron-down {
  font-size: 0.72rem;
  transition: transform var(--site-transition);
}

body.site-modern .site-nav-group:hover .fa-chevron-down,
body.site-modern .site-nav-group:focus-within .fa-chevron-down {
  transform: rotate(180deg);
}

body.site-modern .site-nav-submenu {
  display: none;
  position: absolute;
  left: 50%;
  top: calc(100% + 0.35rem);
  z-index: 70;
  min-width: 22rem;
  padding: 0.7rem 0.55rem 0.55rem;
  background: rgba(255, 253, 250, 0.98);
  border: 1px solid rgba(223, 210, 192, 0.9);
  box-shadow: var(--site-shadow-md);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 0.75rem);
  transition: opacity var(--site-transition), transform var(--site-transition), visibility var(--site-transition);
}

body.site-modern .site-nav-submenu::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--site-wood) 0%, rgba(216, 171, 52, 0.9) 100%);
}

body.site-modern .site-nav-group:hover .site-nav-submenu,
body.site-modern .site-nav-group:focus-within .site-nav-submenu {
  display: block;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

body.site-modern .site-nav-submenu-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.site-modern .site-nav-submenu-link {
  display: block;
  padding: 0.78rem 0.95rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--site-text-soft) !important;
  border-radius: 0.7rem;
  border-left: 3px solid transparent;
  transition: background-color var(--site-transition), color var(--site-transition), border-color var(--site-transition);
}

body.site-modern .site-nav-submenu-link:hover,
body.site-modern .site-nav-submenu-link:focus-visible {
  color: var(--site-marine) !important;
  background: rgba(247, 242, 234, 0.9);
  border-left-color: rgba(138, 98, 73, 0.75);
  outline: none;
}

body.site-modern .site-nav-submenu-link-active {
  color: var(--site-marine) !important;
  background: rgba(239, 231, 219, 0.9);
  border-left-color: var(--site-wood);
}

body.site-modern .site-nav-submenu-link-overview {
  border-bottom: 1px solid rgba(223, 210, 192, 0.7);
  margin-bottom: 0.3rem;
  padding-bottom: 0.9rem;
}

body.site-modern .site-mobile-bar {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  min-height: 3.5rem;
}

body.site-modern .site-nav-toggle {
  width: 3rem;
  height: 3rem;
  border-radius: 0 !important;
  background: transparent;
  border: 1px solid rgba(223, 210, 192, 0.95);
  box-shadow: none;
}

body.site-modern .site-nav-toggle:hover {
  background: rgba(247, 242, 234, 0.75);
}

body.site-modern .site-mobile-panel {
  background: rgba(255, 253, 250, 0.98) !important;
  backdrop-filter: blur(10px);
  border-top-color: rgba(223, 210, 192, 0.9) !important;
  box-shadow: 0 18px 40px rgba(15, 34, 51, 0.08);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

body.site-modern .hidden,
body.site-modern [hidden] {
  display: none !important;
}

body.site-modern .site-mobile-links {
  padding: 0.85rem 0 !important;
}

body.site-modern .site-mobile-links a {
  border-radius: 0 !important;
  min-height: 3rem;
  display: flex;
  align-items: center;
  border-top: 1px solid rgba(223, 210, 192, 0.55);
}

body.site-modern .site-mobile-links a:first-child {
  border-top: 0;
}

body.site-modern .site-mobile-link,
body.site-modern .site-mobile-summary,
body.site-modern .site-mobile-sublink {
  color: var(--site-text-soft) !important;
  font-weight: 700;
}

body.site-modern .site-mobile-link-active,
body.site-modern .site-mobile-summary-active,
body.site-modern .site-mobile-sublink-active {
  color: var(--site-marine) !important;
}

body.site-modern .site-mobile-group {
  border-top: 1px solid rgba(223, 210, 192, 0.55);
}

body.site-modern .site-mobile-group[open] {
  background: rgba(247, 242, 234, 0.55);
}

body.site-modern .site-mobile-group summary {
  list-style: none;
}

body.site-modern .site-mobile-group summary::-webkit-details-marker {
  display: none;
}

body.site-modern .site-mobile-summary {
  min-height: 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0.75rem;
  cursor: pointer;
  position: relative;
}

body.site-modern .site-mobile-summary-link {
  flex: 1;
  min-height: 3rem;
  display: flex;
  align-items: center;
  color: inherit !important;
  text-decoration: none;
  border-top: 0 !important;
}

body.site-modern .site-mobile-summary .fa-chevron-down {
  font-size: 0.72rem;
  transition: transform var(--site-transition);
  pointer-events: none;
}

body.site-modern .site-mobile-summary::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65rem;
  bottom: 0.65rem;
  width: 3px;
  background: transparent;
  transition: background-color var(--site-transition);
}

body.site-modern .site-mobile-group[open] .site-mobile-summary .fa-chevron-down {
  transform: rotate(180deg);
}

body.site-modern .site-mobile-group[open] .site-mobile-summary::before,
body.site-modern .site-mobile-summary-active::before {
  background: var(--site-wood);
}

body.site-modern .site-mobile-submenu {
  padding: 0.15rem 0 0.65rem;
}

body.site-modern .site-mobile-submenu a {
  min-height: 2.8rem;
  padding-left: 1.75rem !important;
  border-top: 0;
  border-left: 3px solid transparent;
}

body.site-modern .site-mobile-submenu a:hover,
body.site-modern .site-mobile-submenu a:focus-visible {
  border-left-color: rgba(138, 98, 73, 0.75);
}

body.site-modern .site-mobile-sublink-active {
  border-left-color: var(--site-wood) !important;
  background: rgba(239, 231, 219, 0.9) !important;
}

body.site-modern .site-mobile-links a:not(.site-mobile-cta):hover {
  background: rgba(247, 242, 234, 0.75) !important;
}

@media (min-width: 1024px) {
  body.site-modern .site-mobile-bar {
    display: none !important;
  }

  body.site-modern .site-mobile-panel {
    display: none !important;
  }

  body.site-modern .site-nav-links {
    display: flex !important;
  }
}

@media (max-width: 1023px) {
  body.site-modern .site-nav-links {
    display: none !important;
  }
}

body.site-modern header {
  position: relative;
}

body.site-modern header::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 160px;
  background: linear-gradient(180deg, transparent 0%, rgba(15, 34, 51, 0.14) 100%);
  pointer-events: none;
}

body.site-modern header .bg-secondary,
body.site-modern .text-secondary.font-bold.uppercase {
  letter-spacing: 0.12em !important;
}

body.site-modern .group.relative.bg-gray-50,
body.site-modern .group.border.border-gray-200,
body.site-modern .bg-primary\/5,
body.site-modern .bg-slate-50.border,
body.site-modern .bg-white.border,
body.site-modern .bg-white.rounded-lg,
body.site-modern .bg-gray-50.rounded-lg,
body.site-modern .bg-gray-50.rounded-xl,
body.site-modern .bg-primaryDark.rounded-2xl {
  overflow: hidden;
}

body.site-modern .group.relative.bg-gray-50,
body.site-modern .group.border.border-gray-200,
body.site-modern .bg-primary\/5,
body.site-modern .bg-slate-50.border,
body.site-modern .bg-white.border,
body.site-modern .bg-white.rounded-lg,
body.site-modern .bg-gray-50.rounded-lg,
body.site-modern .bg-gray-50.rounded-xl,
body.site-modern .bg-primaryDark.rounded-2xl {
  box-shadow: var(--site-shadow-sm);
  transition: transform var(--site-transition), box-shadow var(--site-transition), border-color var(--site-transition);
}

body.site-modern .group.relative.bg-gray-50:hover,
body.site-modern .group.border.border-gray-200:hover,
body.site-modern .bg-primary\/5:hover,
body.site-modern .bg-white.border:hover,
body.site-modern .bg-gray-50.rounded-xl:hover {
  transform: translateY(-4px);
  box-shadow: var(--site-shadow-md);
}

body.site-modern img.rounded-lg,
body.site-modern img.rounded-xl,
body.site-modern .rounded-lg img,
body.site-modern .rounded-xl img {
  border-radius: inherit;
}

body.site-modern input[type="text"],
body.site-modern input[type="email"],
body.site-modern input[type="tel"],
body.site-modern input[type="number"],
body.site-modern textarea {
  background: rgba(247, 242, 234, 0.9) !important;
  border-color: rgba(223, 210, 192, 0.95) !important;
  border-radius: 1.15rem !important;
  min-height: 3.35rem;
  color: var(--site-text) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  transition: border-color var(--site-transition), box-shadow var(--site-transition), background-color var(--site-transition);
}

body.site-modern textarea {
  min-height: 8rem;
}

body.site-modern input:focus,
body.site-modern textarea:focus {
  border-color: rgba(186, 139, 45, 0.95) !important;
  box-shadow: 0 0 0 4px rgba(186, 139, 45, 0.14) !important;
  background: rgba(255, 253, 250, 0.98) !important;
}

body.site-modern button,
body.site-modern a.bg-btnBlue,
body.site-modern a.bg-secondary,
body.site-modern a.border-2,
body.site-modern .tc-btn-primary,
body.site-modern .tc-btn-ghost {
  border-radius: 999px !important;
}

body.site-modern button[type="submit"] {
  letter-spacing: 0.08em;
}

body.site-modern .w-12.h-12.rounded-lg,
body.site-modern .w-24.h-1,
body.site-modern .inline-block.bg-secondary {
  border-radius: 999px !important;
}

body.site-modern footer {
  backdrop-filter: blur(6px);
}

body.site-modern footer a,
body.site-modern footer button {
  font-weight: 700;
}

body.site-modern .prose p {
  color: var(--site-text-soft);
}

body.site-modern .cf-turnstile {
  min-height: 66px;
}

body.site-modern #treppen-configurator-app {
  --brand-500: var(--site-ochre);
  --text-main: var(--site-marine);
  --text-muted: var(--site-text-soft);
  --border-color: var(--site-border);
  --bg-panel: var(--site-surface-soft);
}

body.site-modern .tc-btn-primary {
  background: var(--site-ochre);
}

body.site-modern .tc-btn-primary:hover {
  background: var(--site-ochre-dark);
}

body.site-modern .tc-btn-ghost {
  background: rgba(255, 253, 250, 0.9);
}

body.site-modern .tc-card-select,
body.site-modern .tc-preview-box,
body.site-modern .tc-price-box,
body.site-modern .tc-shape-btn {
  border-radius: 1.3rem !important;
}

@media (max-width: 1023px) {
  body.site-modern .site-header-top {
    min-height: 5.25rem;
    gap: 0.85rem;
  }

  body.site-modern .site-brand img {
    height: 4rem !important;
  }

  body.site-modern .site-brand span {
    font-size: 2.1rem !important;
  }

  body.site-modern .site-topbar-cta {
    margin-right: 0.35rem;
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 0.95rem;
    white-space: nowrap;
  }
}
