/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-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
*/

/* Text grid */
.elementor-widget-html .text-2col {
  display: grid !important;
  gap: 20px;
}
/* Varianten */
.elementor-widget-html .text-2col.variant-left {
  grid-template-columns: 1.4fr 1fr !important;
}
.elementor-widget-html .text-2col.variant-right {
  grid-template-columns: 1fr 1.4fr !important;
}
.elementor-widget-html .text-2col p {
  margin: 0 0 18px;
  font-size: 17px;
  line-height: 1.75;
  font-weight: 400;
  color: var(--e-global-color-secondary);
}
/* Tablet */
@media (max-width: 1024px) {
  .elementor-widget-html .text-2col {
    grid-template-columns: 1fr 1fr !important;
    gap: 18px;
  }
}
/* Mobile */
@media (max-width: 767px) {
  .elementor-widget-html .text-2col {
    grid-template-columns: 1fr !important;
    gap: 18px;
  }
}

/* helpers */
.margin-bottom-20 h2.elementor-heading-title,
.margin-bottom-20 h3.elementor-heading-title {
  margin-bottom: clamp(12px, 1.4vw + 6px, 20px) !important;
}

/* Hover animation subtle */
.elementor-button {
  position: relative;
  overflow: hidden;
  transition: all .35s cubic-bezier(.22,.61,.36,1);
}
.elementor-button:hover,
.elementor-icon-box-icon .elementor-icon:hover {
  transform: translateY(-2px);
}
.elementor-icon-box-icon .elementor-icon {
  transition: all .3s cubic-bezier(.22,.61,.36,1);
}
.elementor-icon-box-icon .elementor-icon svg {
  transition: all .3s ease;
}

/* no top space */
.no-space-top h2 {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Google Map */
.elementor-widget-google_maps .elementor-custom-embed iframe {
  filter: saturate(.45) sepia(.35) hue-rotate(-10deg) brightness(1.05) contrast(.95) !important;
}
.elementor-custom-embed {
  position: relative;
  overflow: hidden;
}
.elementor-custom-embed::after {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(200,164,93,0.18);
  mix-blend-mode: multiply;
  pointer-events:none;
}

/* Headlines smaller */
/* slightly smaller */
.smaller :is(h1,h2,h3,h4).elementor-heading-title{
  font-size: clamp(22px, 2.5vw, 34px);
}
/* small */
.smaller-xs :is(h1,h2,h3,h4).elementor-heading-title{
  font-size: clamp(20px, 2.2vw, 28px);
}
/* tiny / body-like headline */
.smaller-xxs :is(h1,h2,h3,h4).elementor-heading-title{
  font-size: clamp(18px, 2vw, 24px);
}

/* Diamond icon */
.diamond {
  display:inline-block;
  margin:0 6px;
  color:var(--gold);
  font-size:1.2em;
  transform:translateY(-1px);
}
/* Mobile */
@media (max-width: 767px) {
  .diamond {
    display: none;
  }
}

.black .diamond {
  color:var(--e-global-color-primary) !important;
}
.white .diamond {
  color: #fff !important;
}
.muted {
  opacity:.6;
  letter-spacing:.05em;
}


/* Mega menu */
.e-n-menu-content .e-con-inner {
  max-width: fit-content !important;
  margin-left: auto !important;
  margin-right: 0 !important;
}
.e-n-menu-item .elementor-element .elementor-heading-title > a:hover,
.e-n-menu-item .elementor-element .elementor-heading-title > a:focus,
.e-n-menu-item .elementor-element .elementor-heading-title > a:active {
  color: var(--e-global-color-accent) !important;
}
.e-n-menu-item .elementor-heading-title a {
  transition:color .25s ease;
}

/* Kontakt / Uber */
.small.bodytext h2 {
  font-size: clamp(18px, 1.2vw, 20px);
  font-weight: 400 !important;
  line-height: 1.5;
  margin: 0 0 10px;
  font-family: var(--font-body);
  color: #fff !important;
}

/* Preise */
/* GRID 
.price-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:40px;
}
.price-grid ul {
  list-style:none;
  margin:0;
  padding:0;
}
.price-grid li {
  padding:14px 0;
}
.price-grid .elementor-price-list-header {
  display:flex;
  align-items: center;
  gap:10px;
}
.price-title-wrap {
  display:flex;
  flex-direction:column;
}
.price-grid .elementor-price-list-title {
  font-size:17px;
  color: #2a2a2a;
  font-weight:400;
  letter-spacing:0.01em;
}
.price-grid a.elementor-price-list-title:hover {
  color: var(--e-global-color-accent);
}
.price-duration {
  font-size:12px;
  color: #8a817a;
  margin-top:4px;
}
.price-grid .elementor-price-list-separator {
  flex:1;
  border-bottom:1px solid rgba(199,168,120,0.5);
  align-self:center;
  height:0;
}
.price-grid .elementor-price-list-price {
  color:#C7A878 !important;
  font-weight:500;
  font-size:16px;
  letter-spacing:0.03em;
}
@media (max-width:1024px){
  .price-grid {
    grid-template-columns:repeat(3,1fr);
	gap: 30px;
  }
}
@media (max-width:767px){
  .price-grid {
    grid-template-columns:1fr;
	gap: 15px;
  }
  .price-grid li {
    padding: 4px 0;
  }
}*/

/* Preise */
/* GRID via columns */
.price-grid{
  column-count:4;
  column-gap:40px; /* mehr Luft zwischen Spalten */
}

/* einzelne Blöcke */
.price-group{
  display:inline-block;
  width:100%;
  margin:0 0 34px; /* mehr Abstand zwischen Gruppen */
  break-inside:avoid;
}
/* Listen */
.price-grid ul{
  list-style:none;
  margin:0;
  padding:0;
}
.price-grid li {
  padding:5px 0; /* mehr Luft zwischen Einträgen */
}
/* Header */
.price-grid .elementor-price-list-header{
  display:flex;
  align-items:flex-start;
  gap:10px;
}

/* Titel */
.price-grid .elementor-price-list-title{
  font-size:15px; /* etwas kleiner */
  line-height:1.45; /* luftiger */
  color:#2a2a2a;
  font-weight:400;
  letter-spacing:.01em;
}
/* Separator */
.price-grid .elementor-price-list-separator {
  flex:1;
  border-bottom:1px solid rgba(199,168,120,.35); /* feiner */
  align-self:center;
  height:0;
  min-width:12px;
}
/* Preis */
.price-grid .elementor-price-list-price{
  color:#C7A878 !important;
  font-weight:500;
  font-size:14px; /* minimal kleiner */
  white-space:nowrap;
  letter-spacing:.03em;
}
/* Überschriften */
.price-group-title {
  font-size:18px;
  margin-bottom:14px; /* mehr Abstand nach oben */
  line-height:1.3;
}

/* ---------- BREAKPOINTS ---------- */

@media (max-width:1366px){
  .price-grid {
    column-count:3;
    column-gap:32px;
  }
  .price-group {
    margin-bottom:25px;
  }
}

@media (max-width:1024px){
  .price-grid{
    column-count:2;
    column-gap:24px;
  }
  .price-group{
    margin-bottom:20px;
  }
  .price-grid li {
    padding:3px 0;
  }
}
@media (max-width:767px){
  .price-grid{
    column-count:1;
  }
  .price-group {
    margin-bottom:20px;
  }
  .price-grid li {
    padding:0;
  }
  .price-grid .elementor-price-list-title{
    font-size:14px;
  }
  .price-grid .elementor-price-list-price{
    font-size:13px;
  }
}



/* =========================================
   Luxury gold frame for archive cards
   Target: loop card with background image
   ========================================= */

/* card */
.elementor-loop-container .loop-slide {
  position:relative;
  overflow:hidden;
  border-radius:10px;
  box-shadow:0 8px 28px rgba(0,0,0,0.12);
}
.e-loop-item:hover .loop-slide {
	transform:translateY(-6px);
	transition:.35s ease;
}

/* gold frame */
.elementor-loop-container .loop-slide::after {
  content:"";
  position:absolute;
  inset:20px;
  border:1.5px solid var(--gold);
  border-radius:10px;
  pointer-events:none;
  z-index:2;
  transition: inset .25s ease;
}

/* keep content above overlay/frame */
.elementor-loop-container .e-loop-item .loop-slide > .e-con-inner{
  position: relative;
  z-index: 3;
}

/* optional: slightly refine dark overlay */
.elementor-loop-container .e-loop-item .loop-slide::before,
.elementor-loop-container .e-loop-item .loop-slide > .elementor-background-video-container::before,
.elementor-loop-container .e-loop-item .loop-slide > .e-con-inner > .elementor-background-video-container::before,
.elementor-loop-container .e-loop-item .loop-slide > .elementor-background-slideshow::before,
.elementor-loop-container .e-loop-item .loop-slide > .e-con-inner > .elementor-background-slideshow::before,
.elementor-loop-container .e-loop-item .loop-slide > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{
  z-index: 1;
}

/* hover */
.elementor-loop-container .e-loop-item:hover .loop-slide::after {
  inset: 16px;
  opacity: 1;
  transition: .25s ease;
}

/* optional: subtle image zoom on hover */
.elementor-loop-container .e-loop-item .loop-slide:not(.elementor-motion-effects-element-type-background),
.elementor-loop-container .e-loop-item .loop-slide > .elementor-motion-effects-container > .elementor-motion-effects-layer{
  transition: transform .55s ease;
}

.elementor-loop-container .e-loop-item:hover .loop-slide:not(.elementor-motion-effects-element-type-background),
.elementor-loop-container .e-loop-item:hover .loop-slide > .elementor-motion-effects-container > .elementor-motion-effects-layer{
  transform: scale(1.02);
}

/* tablet */
@media (max-width: 1024px){
  .elementor-loop-container .e-loop-item .loop-slide::after{
    inset: 14px;
  }
}

/* mobile */
@media (max-width: 767px){
  .elementor-loop-container .e-loop-item .loop-slide::after{
    inset: 10px;
  }
}


/* Impressum / Datenschutz */

.legal {
  margin: 0 auto;
  line-height: 1.75;
  font-size: 17px;
  color: #1f1f1f;
}

.legal h1 {
  font-size: clamp(32px, 4vw, 44px);
  line-height: 1.15;
  margin: 0 0 24px;
}

.legal h2 {
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.25;
  margin: 34px 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.legal h3 {
  font-size: clamp(18px, 1.8vw, 22px);
  line-height: 1.3;
  margin: 26px 0 10px;
}

.legal p,
.legal ul,
.legal ol {
  margin: 0 0 16px;
}

.legal ul,
.legal ol{
  padding-left: 22px;
}

.legal li {
  margin: 0 0 8px;
}

.legal a {
  color: var(--gold);
  text-decoration: none;
  overflow-wrap: anywhere;
}

.legal a:hover {
  text-decoration: underline;
}

.legal strong {
  font-weight: 600;
}

.legal table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 20px;
}

.legal th,
.legal td {
  text-align: left;
  vertical-align: top;
  padding: 10px 12px;
  border-bottom: 1px solid var(--gold);
}

.legal hr {
  border: 0;
  border-top: 1px solid var(--gold);
  margin: 28px 0;
}

@media (max-width: 767px) {
  .legal{
    font-size: 16px;
    line-height: 1.7;
  }
  .legal h2 {
    margin-top: 28px;
  }
  .legal h3 {
    margin-top: 22px;
  }
  .legal th,
  .legal td{
    padding: 8px 10px;
  }
}

/* Footer */
.footer-flex {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* rechter Block bleibt zusammen */
.footer-seo {
  white-space: nowrap;
}
/* Mobile */
@media (max-width: 767px) {
  .footer-flex {
    justify-content: center;
    gap: 4px 8px;
  }
  .footer-seo {
    display: block;
    white-space: normal;
  }
	.legal a { word-break: break-all; }
	
}