/*
Theme Name: Landeseiten
Theme URI:
Author: Dominique Rademacher
Author URI:  https://landeseiten.de
Version: 1.1.0

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

/*------------------------------------------------------------------
  1. Base Styles
-------------------------------------------------------------------*/
:root {
	  --cs-fancy-gold-1: #E9C56C;
  --cs-fancy-gold-2: #F2DC9A;
  --cs-fancy-gold-3: #D8C290;
  --cs-fancy-gold-4: #FBF2C7;
  --cs-fancy-gold-5: #FFF9DF;
  --cs-fancy-gold-6: #D3B46D;
  --cs-fancy-gold-7: #BC9544;
  --cs-fancy-gold-8: #C7A357;
  --cs-fancy-gold-9: #E3CB89;
  --cs-fancy-gold-10: #F6E7AC;
  --cs-fancy-gold-11: #FFF9D9;
	
  --golden-gradient-bg:linear-gradient(to right,
    var(--cs-fancy-gold-1) 0%,
    var(--cs-fancy-gold-2) 5%,
    var(--cs-fancy-gold-3) 10%,
    var(--cs-fancy-gold-4) 15%,
    var(--cs-fancy-gold-5) 23%,
    var(--cs-fancy-gold-6) 41%,
    var(--cs-fancy-gold-7) 60%,
    var(--cs-fancy-gold-7) 72%,
    var(--cs-fancy-gold-8) 76%,
    var(--cs-fancy-gold-6) 80%,
    var(--cs-fancy-gold-9) 84%,
    var(--cs-fancy-gold-10) 87%,
    var(--cs-fancy-gold-11) 88%,
    var(--cs-fancy-gold-9) 97%,
    var(--cs-fancy-gold-1) 100%);
}

[data-elementor-type="wp-page"] {
	overflow-x:hidden;
}

body p,
body h1, body h2, body h3,
body h4, body h5, body h6{
  margin: 0 !important;
  padding: 0;
  text-wrap: pretty;
}
body .elementor-widget-container{ text-wrap: pretty; }


/*------------------------------------------------------------------
  2. Component: Gradient Button (.cs-btn-gradient)
-------------------------------------------------------------------*/

.elementor-element.cs-btn-gradient {
  --cs-gold-1: #E9C56C;
  --cs-gold-2: #F2DC9A;
  --cs-gold-3: #D8C290;
  --cs-gold-4: #F8F2C7;
  --cs-gold-5: #FFF9DF;
  --cs-gold-6: #D3B46D;
  --cs-gold-7: #BC9544;
	
	will-change:transform;
}

.elementor-element.cs-btn-gradient .elementor-button {
  --pad-x: clamp(22px, 3vw, 36px);
  --pad-y: clamp(10px, 1.5vw, 14px);
  --radius: 999px;
  --shadow:
    inset 0 8px 14px rgba(0, 0, 0, .18),
    inset 0 -3px 8px rgba(255, 255, 255, .25),
    0 8px 16px rgba(0, 0, 0, .25);

  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--pad-y) var(--pad-x);
  border: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: linear-gradient(106deg, var(--cs-gold-1) 0%, var(--cs-gold-2) 6%, var(--cs-gold-3) 14%, var(--cs-gold-4) 22%, var(--cs-gold-5) 28%, var(--cs-gold-6) 45%, var(--cs-gold-6) 52%, var(--cs-gold-7) 66%, var(--cs-gold-7) 78%, var(--cs-gold-6) 100%);
  box-shadow: var(--shadow);
  color: #003434;
  font-weight: 500;
  text-decoration: none;
}
.elementor-element.cs-btn-gradient:hover {
	transform:scale(1.1);
}
/* Subtle inner outline to separate button from dark backgrounds */
.elementor-element.cs-btn-gradient .elementor-button::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .15);
  pointer-events: none;
}

/* Animated shine effect element */
.elementor-element.cs-btn-gradient .elementor-button::after {
  content: "";
  position: absolute;
  top: -60%;
  bottom: -60%;
  left: -40%;
  width: 45%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .10) 35%, rgba(255, 255, 255, .55) 50%, rgba(255, 255, 255, .10) 65%, rgba(255, 255, 255, 0) 100%);
  transform: translateX(-140%) rotate(16deg);
  filter: blur(1px);
  pointer-events: none;
}

/* Trigger shine animation on hover or focus */
.elementor-element.cs-btn-gradient .elementor-button:hover::after,
.elementor-element.cs-btn-gradient .elementor-button:focus-visible::after {
  animation: cs-shine 1.2s cubic-bezier(.22, .61, .36, 1);
}

/* Optional: continuous sweep animation */
.elementor-element.cs-btn-gradient.is-auto .elementor-button::after {
  animation: cs-shine 2.3s cubic-bezier(.22, .61, .36, 1) infinite;
  animation-delay: .4s;
}

@keyframes cs-shine {
  from {
    transform: translateX(-160%) rotate(16deg);
  }
  to {
    transform: translateX(260%) rotate(16deg);
  }
}


/*------------------------------------------------------------------
  3. Component: Stats Box (.cs-outbox)
-------------------------------------------------------------------*/

.cs-outbox {
  --cs-box-radius: 10px;
  --cs-sep: rgba(255, 255, 255, 0.22);
  --cs-text: #EAF3F6;
  --cs-grad-a: #0E2B33;
  --cs-grad-b: #0A1F26;

  color: var(--cs-text);
  font-family: 'Barlow', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-weight: 400;
  overflow: visible;
  box-shadow:
    0 4px 6px rgba(0, 0, 0, .18),
    0 12px 16px rgba(0, 0, 0, .16),
    0 22px 28px rgba(0, 0, 0, .14);
}

.cs-outbox .cs-stats {
  margin: 0;
}

.cs-outbox .cs-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--cs-sep);
}

.cs-outbox .cs-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.cs-outbox .cs-label {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
}

.cs-outbox .cs-value {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  text-align: right;
}

.cs-outbox .cs-value > small {
  display: block;
  margin-top: 4px;
  font-size: 16px;
  opacity: .85;
}

/* Responsive styles for Stats Box */
@media (max-width: 480px) {
  .cs-outbox .cs-label,
  .cs-outbox .cs-value {
    font-size: 16px;
  }
  .cs-outbox .cs-value > small {
    font-size: 15px;
  }
}


/*------------------------------------------------------------------
  4. Component: Investment Slider (.cs-slider-container)
-------------------------------------------------------------------*/

.cs-slider-container {
  --cs-text: #F5F7F8;
  --cs-sep: rgba(255, 255, 255, .35);
  --cs-gold-1: #BC9544;
  --cs-gold-2: #7C5C1D;
  --cs-track-bg: rgba(255, 255, 255, .35);
  --cs-thumb-height: 28px;
  --cs-track-height: 4px;
}

.cs-slider-container.dark {
  --cs-text: #F5F7F8;
  --cs-sep: rgba(255, 255, 255, .35);
  --cs-gold-1: #BC9544;
  --cs-gold-2: #7C5C1D;
  --cs-track-bg: rgba(255, 255, 255, .35);
  --cs-thumb-height: 28px;
  --cs-track-height: 4px;
}

.cs-slider-container .cs-invest-widget {
  position: relative;
  overflow: visible;
}

/* Top information box */
.cs-slider-container .cs-outbox--gold {
  position: relative;
  padding: 32px;
  color: var(--cs-text);
  overflow: visible;
  background-image: url('/wp-content/uploads/2025/09/calculator-bg.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
	  box-shadow:
    0 4px 6px rgba(0, 0, 0, .18),
    0 12px 16px rgba(0, 0, 0, .16),
    0 22px 28px rgba(0, 0, 0, .14);
}

/* Drop shadow effect for the top box */
.cs-slider-container .cs-outbox--gold::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  box-shadow: 0 12px 12px rgba(0, 0, 0, .22), 0 26px 22px rgba(0, 0, 0, .18), 0 42px 32px rgba(0, 0, 0, .16);
  transform: translateY(8px);
  pointer-events: none;
  -webkit-mask: linear-gradient(to top, #000 32%, transparent 70%);
  mask: linear-gradient(to top, #000 32%, transparent 70%);
}

/* Text rows within the slider widget */
.cs-slider-container .cs-stats {
  margin: 0;
}

.cs-slider-container .cs-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--cs-sep);
}

.cs-slider-container .cs-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.cs-slider-container .cs-label {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
}

.cs-slider-container .cs-value {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  text-align: right;
}

.cs-slider-container .cs-value small {
  display: block;
  margin-top: 6px;
  font-size: 16px;
  opacity: .85;
}

/* Slider wrapper and dynamic "JAHRE" label */
.cs-slider-container .cs-slider-wrap {
  box-sizing: content-box !important;
  position: relative;
  z-index: 100;
  margin-top: 1em;
  padding-top: 2em;
  padding-left: calc(var(--cs-thumb-height) / 2);
  padding-right: calc(var(--cs-thumb-height) / 2);
}

.cs-slider-container .cs-scale-head {
  position: absolute;
  top: 0;
  left: 0;
  color: #fff;
  font-size: 14px;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translateX(-50%);
  transition: left 0.05s linear;
}

/* Custom slider track and handle styles */
.cs-slider-container .custom-slider {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: var(--cs-thumb-height);
  margin: 0;
  cursor: pointer;
}

.cs-slider-container .slider-track {
  position: absolute;
  width: 100%;
  height: var(--cs-track-height);
  background-color: var(--cs-track-bg);
  border-radius: var(--cs-track-height);
}

.cs-slider-container .slider-progress {
  position: absolute;
  width: 0%;
  height: var(--cs-track-height);
  background-color: var(--cs-gold-1);
  border-radius: var(--cs-track-height);
}

.cs-slider-container .slider-handle {
  position: absolute;
  left: 0%;
  width: var(--cs-thumb-height);
  height: var(--cs-thumb-height);
  background: #D5B15F;
  border: 2px solid #82621F;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .35);
  transform: translateX(-50%);

}

.cs-slider-container .slider-handle::before {
	content:url('/wp-content/uploads/2025/10/house-icon-small.svg');
	width:100%;
	height:100%;
	top:50%;
	left:50%;
	transform:translate(-50%, -50%);
	position:absolute;
	z-index:4;
	display:flex; 
	justify-content:center;
	align-items:center;
}

.cs-slider-container .slider-handle.no-icon::before {
	display:none !important;
}




/* Number labels (stops) below the slider */
.cs-slider-container .cs-stops {
  position: relative;
  height: auto;
  padding-top: 6px;
  font-size: 18px;
}

.cs-slider-container .cs-stop {
  position: absolute;
  top: 0;
  padding: 6px 16px;
  background: none;
  border: 0;
  color: #C8D5D9;
  font-weight: 200;
  opacity: 0.8;
  cursor: pointer;
  transform: translateX(-50%);
  transition: opacity 0.2s, font-weight 0.2s;
}

.cs-slider-container .cs-stop[aria-current="true"] {
  color: #fff;
  font-weight: 700;
  opacity: 1;
}

/* Responsive styles for slider component */
@media (max-width: 767px) {
    .cs-row {
        display: flex !important;
        flex-direction: column !important;
        align-items: start !important;
    }
}

@media (max-width: 560px) {
  .cs-slider-container .cs-label,
  .cs-slider-container .cs-value {
    font-size: 18px;
	  text-align: left;
  }
  .cs-slider-container .cs-value small {
    font-size: 15px;
  }
}

/* Accessibility: Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  .elementor-element.cs-btn-gradient .elementor-button::after {
    animation: none !important;
  }
}

.cs-icon-button-container {
	display: flex;
	gap: 16px;
	font-family: sans-serif;
	margin-top:24px;

}

/* Base styles for icon buttons */
.cs-icon-button {
	position: relative; 
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	cursor: pointer;
	text-decoration: none;
	background-color: #ffffff;
	border: 1px solid #c8d5d9;
	transition: border-color 0.4s ease;
}


.cs-icon-button::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	opacity: 0;
	transition: opacity 0.4s ease;

	/* Use the gradient from the utility class variables */
	background: var(--golden-gradient-bg, linear-gradient(to right, #E9C56C, #BC9544));


	box-shadow: inset 0 3px 5px rgba(0,0,0,0.2);
}

/* SVG icon styles */
.cs-icon-button svg {
	position: relative; 
	z-index: 2;
	width: 24px;
	height: 24px;
	stroke: #0a1f26; 
	transition: stroke 0.4s ease;
}

/* --- Hover States --- */

.cs-icon-button:hover {
	border-color: transparent; 
}

.cs-icon-button:hover::before {
	opacity: 1; 
}

.cs-icon-button:hover svg {
	stroke: white; 
}

/*------------------------------------------------------------------
  5. Utility Classes
-------------------------------------------------------------------*/

.cs-golden-gradient-bg {

  background: var(  --golden-gradient-bg);
}

.cs-fancy-gradient-text {

  background: var(--cs-fancy-gradient, linear-gradient(to right, #E9C56C, #BC9544)); /* Fallback gradient */
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;

}

/*-----------------------------------------------------------------
	Testimonials Slider
 * --------------------------------------------------------------*/

.cs-testimonials-slider .swiper-button-next, selector .swiper-button-prev {
    opacity: 0;
    visibility: hidden;
}

.cs-testimonials-slider .swiper{
    padding-right: 150px
}

.cs-testimonials-slider .eael-testimonial-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}


.cs-testimonials-slider .middle-style-content {
    display: flex;
    flex-direction: column;
    width: max-content;
    margin-left: 0;
}
.cs-testimonials-slider .eael-testimonial-image {
    margin: 0 ;
    width: 64px;
}

.cs-testimonials-slider .middle-style-content  .testimonial-star-rating , selector .eael-testimonial-quote{
    display: none;
}

.cs-testimonials-slider .eael-testimonial-text::before {
    content:url('/wp-content/uploads/2025/09/five-stars.svg');
    display: flex;
    margin-bottom: 24px;
}

.cs-testimonials-slider .eael-testimonial-item-inner {
  height: 100%;
  display: flex;
}

.cs-testimonials-slider .eael-testimonial-content {

}

.cs-testimonials-slider .swiper-wrapper {
  align-items: stretch !important;
}

@media (max-width: 1024px) {
    .cs-testimonials-slider .swiper{
        padding-right: 450px
    }
}

@media (max-width: 767px) {
    .cs-testimonials-slider .swiper{
        padding-right: 400px
    }
}


.cs-testimonials-slider .eael-testimonial-image, .cs-testimonials-slider .eael-testimonial-user-company {
	display:none !important;
}