/* 
Theme Name: Schwarz+Matt Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Schwarz+Matt Child is a child theme of Hello Elementor, created by the Elementor team and modified by Schwart+Matt.
Author: Schwarz+Matt Team
Author URI: https://www.schwarz-matt.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: schwarz+matt-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

html, body {
  max-width: 100% !important;
  overflow-x: hidden !important;
  scroll-behavior: smooth;
}

.elementor-icon-wrapper {
  line-height: 0;
}

.slider-visible .slick-list {
  overflow: visible;
}

.aspect-1-1 img {
  aspect-ratio: 1/1 !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.aspect-16-9 img {
  aspect-ratio: 16/9 !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.full-height.elementor-widget-image {
  height: auto;
}

.full-img-height .elementor-widget.elementor-widget-image {
  height: 100%;
}

/* Elementor Texteditor – letzten Absatz unten bündig machen */
.elementor-widget-text-editor .elementor-widget-container > *:last-child{
  margin-bottom: 0 !important;
}

/* Sicherheit: falls nur p verwendet wird */
.elementor-widget-text-editor .elementor-widget-container p:last-child{
  margin-bottom: 0 !important;
}

.uppercase {
    text-transform: uppercase;
}

/* typography
----------------------------------------*/
:root{
  --font-primary: "Fraunces", sans-serif;
  --font-secondary: "Inter", sans-serif;
}

/* wrapper
----------------------------------------*/

:root{
  --space-wrapper: clamp(1.5rem, 0.3rem + 6vw, 7.5rem);
}

.wrapper{
  padding-inline: var(--space-wrapper);
}


/* font-sizes
----------------------------------------*/
:root {
  --text-12: clamp(0.625rem, 0.6rem + 0.125vw, 0.75rem);
  --text-14: clamp(0.75rem, 0.725rem + 0.125vw, 0.875rem);
  --text-16: clamp(0.875rem, 0.85rem + 0.125vw, 1rem);
  --text-18: clamp(1rem, 0.975rem + 0.125vw, 1.125rem);
  --text-24: clamp(1.125rem, 1.05rem + 0.375vw, 1.5rem);
  --text-32: clamp(1.25rem, 1.1rem + 0.75vw, 2rem);
  --text-40: clamp(1.375rem, 1.15rem + 1.125vw, 2.5rem);
  --text-48: clamp(1.5rem, 1.2rem + 1.5vw, 3rem);
  --text-56: clamp(1.75rem, 1.4rem + 1.75vw, 3.5rem);
  --text-64: clamp(2rem, 1.6rem + 2vw, 4rem);
  --text-72: clamp(2.25rem, 1.8rem + 2.25vw, 4.5rem);
  --text-88: clamp(2.5rem, 1.9rem + 3vw, 5.5rem);
  --text-96: clamp(2.75rem, 2.05rem + 4vw, 6rem);
}

/* line-height
----------------------------------------*/
:root{
  --lh-100: 1.0;
  --lh-110: 1.1;
  --lh-120: 1.2;
  --lh-130: 1.3;
  --lh-140: 1.4;
  --lh-150: 1.5;
  --lh-160: 1.6;
}

/* spacing
----------------------------------------*/
:root {
--space-8: clamp(0.25rem, 0.1875rem + 0.3125vw, 0.5rem);
--space-16: clamp(0.5rem, 0.375rem + 0.625vw, 1rem);
--space-24: clamp(1rem, 0.875rem + 0.625vw, 1.5rem);
--space-32: clamp(1.5rem, 1.375rem + 0.625vw, 2rem);
--space-48: clamp(1.75rem, 1.4375rem + 1.5625vw, 3rem);
--space-64: clamp(2rem, 1.5rem + 2.5vw, 4rem);
--space-80: clamp(2.5rem, 1.875rem + 3.125vw, 5rem);
--space-96: clamp(2.75rem, 1.9375rem + 4.0625vw, 6rem);
--space-112: clamp(4.5rem, 3.25rem + 6.25vw, 7rem);
--space-128: clamp(5rem, 3.5rem + 7.5vw, 8rem);
--space-144: clamp(5.5rem, 3.75rem + 8.75vw, 9rem);
--space-160: clamp(6rem, 4rem + 10vw, 10rem);
--space-180: clamp(6.75rem, 4.5rem + 11.25vw, 11.25rem);
--space-192: clamp(4rem, 2rem + 10vw, 12rem);
--space-240: clamp(5rem, 2.5rem + 12.5vw, 15rem);
--space-272: clamp(6rem, 3.25rem + 13.75vw, 17rem);
}

/* colors
----------------------------------------*/
:root{

  /* ===== Brand Colors ===== */
  --color-green:#3A5F4E;
  --color-green-100: #71B125;
  --color-green-200: #8EBA1B;
  --color-green-300: #A1C629;
  --color-green-400: #BAD14F;
  --color-heaven-dark: #455985;
  --color-heaven: #8C9EC6;
  --color-dawn: #C6B7CE;

  /* ===== Base ===== */
  --color-white: #FFFFFF;
  --color-black: #000000;

/* =========================================================
   BUTTON SYSTEM (Elementor) – one arrow principle for ALL variants
   ========================================================= */

/* Base */
.elementor-button{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-family: var(--font-secondary);
  font-size: var(--text-16);
  font-weight: 600;
  line-height: var(--lh-100);
  text-align: center;

  border-radius: var(--space-16);
  padding: 12px 32px 12px 32px;
  border: solid 1px;
}

/* Variants */
.btn-primary .elementor-button{
  background-color: transparent;
  border-color: var(--color-green);
  color: var(--color-green);
}

.btn-primary .elementor-button:hover,
.btn-primary .elementor-button:focus{
  background-color: var(--color-green);
  border-color: var(--color-green);
  color: var(--color-white);
}

.btn-primary svg path {
    fill: var(--color-green);
    transition: .2s all ease-in;
}

.btn-primary:hover svg path {
    fill: var(--color-white);
    transition: .2s all ease-in;
}

.btn-secondary .elementor-button{
  background-color: var(--color-green);
  border-color: var(--color-green);
  color: var(--color-white);
}

.btn-secondary .elementor-button:hover,
.btn-secondary .elementor-button:focus{
  background-color: var(--color-green-100);
  border-color: var(--color-green-100);
  color: var(--color-white);
}

.btn-secondary svg path {
    fill: var(--color-white);
    transition: .2s all ease-in;
}

.btn-secondary:hover svg path {
    fill: var(--color-white);
    transition: .2s all ease-in;
}

/* support color elementor-icon-widget
----------------------------------------*/

.elementor-widget-icon svg path{
    fill: currentColor;
}

/* Elementor Form Start
 -------------------------------- */

/*-- select field custom icon --*/

.elementor-field.elementor-select-wrapper .select-caret-down-wrapper svg {
  display: none;
}

.elementor-form input[type=date],
.elementor-form input[type=email],
.elementor-form input[type=number],
.elementor-form input[type=password],
.elementor-form input[type=search],
.elementor-form input[type=tel],
.elementor-form input[type=text],
.elementor-form input[type=url],
.elementor-form select,
.elementor-form textarea {
  padding: 13px 20px;
}

.elementor-field.elementor-select-wrapper .select-caret-down-wrapper:before {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='enable-background:new 0 0 511.9 272' viewBox='0 0 511.9 272'%3E%3Cpath d='M256 272c-4.2 0-8.2-1.6-11.4-4.6l-240-240c-6.2-6.2-6.2-16.3 0-22.6s16.3-6.2 22.6 0L256 233.5 484.7 4.7c6.2-6.2 16.3-6.2 22.6 0 6.2 6.2 6.2 16.3 0 22.6l-240 240c-3.1 3.1-7.1 4.7-11.3 4.7z' style='fill:%23111'/%3E%3C/svg%3E");
  width: 15px;
  height: 8px;
  display: block;
  background-size: contain;
  position: absolute;
  right: 12px;
  top: 4px;
}

.eicon-caret-down:before {
  content: "" !important;
}

/*-- dse checkbox --*/

.elementor-form .elementor-field-type-acceptance .elementor-field-option {
  display: flex;
  gap: .5rem;
  cursor: pointer;
}

/* reset checkbox */
.elementor-form .elementor-field-type-acceptance input {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  position: relative;
  width: 20px;
  height: 20px;
  cursor: pointer;
  background-color: transparent !important;
}

.elementor-element.elementor-widget-form .elementor-form .elementor-field-type-acceptance label {
  font-size: var(--text-14);
  line-height: var(--lh-150);
  cursor: pointer;
}

.elementor-form .elementor-field-type-acceptance label a {
  color: var(--color-slate-600);
  text-decoration: underline;
}

.elementor-field-subgroup.elementor-subgroup-inline {
  gap: 32px;
}

body .elementor-19 .elementor-element.elementor-element-e1087f3 .elementor-labels-above .elementor-field-group > label {
  padding-top: 24px;
}

.elementor-field-type-acceptance.elementor-field-group.elementor-column.elementor-field-group-field_d22b590.elementor-col-100 {
  margin-top: 12px;
}

.elementor-field-type-acceptance.elementor-field-group.elementor-column.elementor-field-group-field_80c99cf.elementor-col-100 {
  margin-bottom: 48px;
}

/* check box */
.elementor-form .elementor-field-type-acceptance input:before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 0;
  border: 1px solid var(--color-slate-600);
  background-color: transparent;
}

/* checked icon */
.elementor-form .elementor-field-type-acceptance input:after {
  content: "";
  border-bottom-style: solid;
  border-bottom-width: 1px;
  border-right-style: solid;
  border-right-width: 1px;
  border-color: var(--color-slate-600);
  display: inline-block;
  position: absolute;
  height: 10px;
  width: 5px;
  left: 6px;
  top: 4px;
  transform: rotate(45deg);
  opacity: 0;
  transition: .125s;
}

.elementor-form .elementor-field-type-acceptance input:checked:after {
  opacity: 1;
}

/* =========================================================
   ELEMENTOR CHECKBOX – CUSTOM (Haken pro Box korrekt)
   ========================================================= */

/* Wrapper optional */
.elementor-field-type-checkbox > div{
  display: grid;
  gap: 12px; /* Abstand zwischen den Optionen */
}

/* Native Checkbox "unsichtbar", aber klickbar/accessible */
.elementor-field-type-checkbox > div input[type="checkbox"]{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Label als Positionierungs-Container */
.elementor-field-type-checkbox > div label{
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  margin: 0;            /* deine 1em macht oft komische Abstände */
  user-select: none;
}

/* Checkbox-Kästchen */
.elementor-field-type-checkbox > div label:before{
  content: "";
  width: 15px;
  height: 15px;
  margin-right: 16px;
  border: 1px solid var(--color-slate-600);
  background: transparent;
  border-radius: 0;
  box-sizing: border-box;
  display: inline-block;
  flex: 0 0 15px;
  transition: border-color .2s ease, background-color .2s ease;
}

/* Hover auf dem jeweiligen Feld */
.elementor-field-type-checkbox > div label:hover:before{
  border-color: var(--color-slate-600);
}

/* Haken (an das jeweilige Label gebunden) */
.elementor-field-type-checkbox > div input[type="checkbox"]:checked + label:after{
  content: "";
  position: absolute;
  /* Position innerhalb des 15x15 Kästchens */
  left: 5px;
  top: 50%;
  width: 5px;
  height: 10px;
  transform: translateY(-90%) rotate(45deg);

  border-right: 1px solid var(--color-slate-600);
  border-bottom: 1px solid var(--color-slate-600);

  opacity: 1;
  transition: opacity .125s ease;
}

input#form-field-akzeptanz {
  padding: 0 16px 8px 0;
}

/* Elementor Form End
 -------------------------------- */

   */
   /* Language Switcher
   -------------------------------- */
   
   .trp-shortcode-switcher {
     padding: 0 !important;
   }
   
   .trp-language-item-name {
       color: var(--color-white);
       font-size: var(--text-16);
       line-height: 1.2;
       font-family: var(--font-secondary);
       font-weight: 400;
   }
   
   .trp-language-item {
     padding: 8px 8px !important;
   }
   
   svg.trp-shortcode-arrow {
       margin-top: -4px !important;
   }
   
   .trp-shortcode-overlay {
     z-index: 10 !important;
   }