/* Design System Application (generated) */

*,
*::before,
*::after{box-sizing:border-box;}

img{max-width:100%;height:auto;display:block;}
video,
iframe{max-width:100%;}

body{
  font-family:var(--type-body-family);
  font-size:var(--type-body-size);
  font-weight:var(--type-body-weight);
  font-style:var(--type-body-style);
  text-transform:var(--type-body-transform);
  text-decoration:var(--type-body-decoration);
  line-height:var(--type-body-line-height);
  letter-spacing:var(--type-body-letter-spacing);
  word-spacing:var(--type-body-word-spacing);
  color:var(--color_text);
  background:var(--color_background);
  margin:0;
}

h1,h2,h3,h4,h5,h6{
  margin-top:var(--space-lg);
  margin-bottom:var(--space-sm);
  color:var(--color_heading);
}

h1{
  font-family:var(--type-h1-family);
  font-size:var(--type-h1-size);
  font-weight:var(--type-h1-weight);
  font-style:var(--type-h1-style);
  text-transform:var(--type-h1-transform);
  text-decoration:var(--type-h1-decoration);
  line-height:var(--type-h1-line-height);
  letter-spacing:var(--type-h1-letter-spacing);
  word-spacing:var(--type-h1-word-spacing);
}
h1.elementor-heading-title,
.elementor h1.elementor-heading-title{
  font-size:var(--type-h1-size) !important;
  font-weight:var(--type-h1-weight) !important;
  line-height:var(--type-h1-line-height) !important;
  letter-spacing:var(--type-h1-letter-spacing) !important;
}

h2{
  font-family:var(--type-h2-family);
  font-size:var(--type-h2-size);
  font-weight:var(--type-h2-weight);
  font-style:var(--type-h2-style);
  text-transform:var(--type-h2-transform);
  text-decoration:var(--type-h2-decoration);
  line-height:var(--type-h2-line-height);
  letter-spacing:var(--type-h2-letter-spacing);
  word-spacing:var(--type-h2-word-spacing);
}

h3{
  font-family:var(--type-h3-family);
  font-size:var(--type-h3-size);
  font-weight:var(--type-h3-weight);
  font-style:var(--type-h3-style);
  text-transform:var(--type-h3-transform);
  text-decoration:var(--type-h3-decoration);
  line-height:var(--type-h3-line-height);
  letter-spacing:var(--type-h3-letter-spacing);
  word-spacing:var(--type-h3-word-spacing);
}

h4{
  font-family:var(--type-h4-family);
  font-size:var(--type-h4-size);
  font-weight:var(--type-h4-weight);
  font-style:var(--type-h4-style);
  text-transform:var(--type-h4-transform);
  text-decoration:var(--type-h4-decoration);
  line-height:var(--type-h4-line-height);
  letter-spacing:var(--type-h4-letter-spacing);
  word-spacing:var(--type-h4-word-spacing);
}

h5{
  font-family:var(--type-h5-family);
  font-size:var(--type-h5-size);
  font-weight:var(--type-h5-weight);
  font-style:var(--type-h5-style);
  text-transform:var(--type-h5-transform);
  text-decoration:var(--type-h5-decoration);
  line-height:var(--type-h5-line-height);
  letter-spacing:var(--type-h5-letter-spacing);
  word-spacing:var(--type-h5-word-spacing);
}

h6{
  font-family:var(--type-h6-family);
  font-size:var(--type-h6-size);
  font-weight:var(--type-h6-weight);
  font-style:var(--type-h6-style);
  text-transform:var(--type-h6-transform);
  text-decoration:var(--type-h6-decoration);
  line-height:var(--type-h6-line-height);
  letter-spacing:var(--type-h6-letter-spacing);
  word-spacing:var(--type-h6-word-spacing);
}

/* Override Elementor .elementor-heading-title specificity for all headings */
h2.elementor-heading-title,
.elementor h2.elementor-heading-title{
  font-size:var(--type-h2-size) !important;
  font-weight:var(--type-h2-weight) !important;
  line-height:var(--type-h2-line-height) !important;
  letter-spacing:var(--type-h2-letter-spacing) !important;
}
h3.elementor-heading-title,
.elementor h3.elementor-heading-title{
  font-size:var(--type-h3-size) !important;
  font-weight:var(--type-h3-weight) !important;
  line-height:var(--type-h3-line-height) !important;
  letter-spacing:var(--type-h3-letter-spacing) !important;
}
h4.elementor-heading-title,
.elementor h4.elementor-heading-title{
  font-size:var(--type-h4-size) !important;
  font-weight:var(--type-h4-weight) !important;
  line-height:var(--type-h4-line-height) !important;
  letter-spacing:var(--type-h4-letter-spacing) !important;
}
h5.elementor-heading-title,
.elementor h5.elementor-heading-title{
  font-size:var(--type-h5-size) !important;
  font-weight:var(--type-h5-weight) !important;
  line-height:var(--type-h5-line-height) !important;
  letter-spacing:var(--type-h5-letter-spacing) !important;
}
h6.elementor-heading-title,
.elementor h6.elementor-heading-title{
  font-size:var(--type-h6-size) !important;
  font-weight:var(--type-h6-weight) !important;
  line-height:var(--type-h6-line-height) !important;
  letter-spacing:var(--type-h6-letter-spacing) !important;
}

.display{
  font-family:var(--type-display-family);
  font-size:var(--type-display-size);
  font-weight:var(--type-display-weight);
  font-style:var(--type-display-style);
  text-transform:var(--type-display-transform);
  text-decoration:var(--type-display-decoration);
  line-height:var(--type-display-line-height);
  letter-spacing:var(--type-display-letter-spacing);
  word-spacing:var(--type-display-word-spacing);
  color:var(--color_heading);
}

a{color:var(--color_primary);text-decoration:none;}
a:hover{text-decoration:underline;text-decoration-thickness:0.05em;text-underline-offset:0.2em;}

u{text-decoration-thickness:0.05em;text-underline-offset:0.2em;}

/* Semantic Typography */
strong,
b{
  font-weight:700 !important;
}

body em,
body i,
h1 em,
h1 i,
h2 em,
h2 i,
h3 em,
h3 i,
h4 em,
h4 i,
h5 em,
h5 i,
h6 em,
h6 i,
.display em,
.display i,
cite,
dfn{
  font-style:italic !important;
}

mark{
  background:none;
  color:inherit;
  padding:0 .08em;
  border-radius:0;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
  background-image:linear-gradient(transparent 62%, var(--primary-50) 62%);
}

del{text-decoration:line-through;text-decoration-thickness:0.05em;}

ins{text-decoration:underline;text-decoration-thickness:0.05em;text-underline-offset:0.5em;}

abbr[title]{text-decoration:underline dotted;cursor:help;}

code{
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size:0.92em;
  background:var(--color_background_muted);
  color:inherit;
  padding:0.12em 0.35em;
  border-radius:var(--radius-sm);
}

small{font-size:0.85em;}

sub,
sup{
  font-size:0.75em;
  line-height:0;
  position:relative;
  vertical-align:baseline;
}

sub{bottom:-0.25em;}
sup{top:-0.5em;}

q{quotes:"“" "”" "‘" "’";}

blockquote{
  margin:var(--space-md) 0;
  padding-left:var(--space-md);
  border-left:3px solid var(--color_border);
  color:var(--color_muted_text);
}

blockquote p:last-child{margin-bottom:0;}

ul,ol{padding-left:var(--space-md);margin-bottom:var(--space-md);}
li{margin-bottom:var(--space-xs);}

.layout-stack > * + *{margin-top:var(--space-lg);}
.layout-stack h1 + *,
.layout-stack h2 + *,
.layout-stack h3 + *,
.layout-stack h4 + *,
.layout-stack h5 + *,
.layout-stack h6 + *{margin-top:var(--space-sm);}
/* Hide default WordPress/Elementor page title + site name output */
.site-title,
.site-name,
.entry-title,
h1.entry-title,
.elementor-page-title,
.page-header{
  display:none !important;
}

/* Width */
.width-narrow{max-width:65ch;margin-left:auto;margin-right:auto;}
.width-default{max-width:var(--container-width);margin-left:auto;margin-right:auto;}
.width-wide{max-width:calc(var(--container-width) * 1.17);margin-left:auto;margin-right:auto;}
.dt-padding{padding-left:clamp(60px, 10vw, 160px) !important;padding-right:clamp(60px, 10vw, 160px) !important;}
.width-full{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}
.e-con.width-full{
  padding-left:0 !important;
  padding-right:0 !important;
}
.e-con.width-full.e-parent{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* Height */
.height-auto{min-height:auto;}
.height-tall{min-height:80dvh;}
.height-full{min-height:100dvh;}
.height-hero{min-height:100dvh;}
.height-hero-below{min-height:calc(100dvh - var(--dt-header-h));padding-top:var(--dt-header-h);}

@media (max-width: 767px){
  .height-tall{min-height:60dvh;}
  .height-full{min-height:85dvh;}
  .height-hero{min-height:85dvh;}
  .height-hero-below{min-height:calc(85dvh - var(--dt-header-h));padding-top:var(--dt-header-h);}
}

/* Columns */
.cols-2,.cols-3,.cols-4{display:grid;gap:var(--space-md);}
.cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));}
.cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));}
.cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));}
[class*=”cols-”] > *{min-width:0;}

@media (max-width: 1024px){
  .cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));}
}

@media (max-width: 767px){
  .cols-2,.cols-3,.cols-4{grid-template-columns:1fr;}
}

/* cols-2 Elementor: make child containers work as grid children */
.cols-2.e-con > .e-con-inner{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:var(--space-md);
}
@media (max-width: 767px){
  .cols-2.e-con > .e-con-inner{grid-template-columns:1fr;}
}

/* Element spacing inside cols child containers */
.cols-2 .e-con.e-child .elementor-widget + .elementor-widget{
  margin-top:clamp(12px, 1.2vw, 24px) !important;
}

/* Image inside cols-2: rounded, zoom on hover */
/* Both children: stretch to same row height, center content inside */
.cols-2 > .e-con.e-child{
  align-self:stretch !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
.cols-2 .elementor-widget-image{
  overflow:hidden;
  border-radius:clamp(20px, 3.2vw, 50px);
}
.cols-2 .elementor-widget-image img{
  width:100%;
  display:block;
  object-fit:cover;
  transition:transform .6s ease !important;
}
.cols-2 .elementor-widget-image:hover img{
  transform:scale(1.05);
}

/* Only prevent wrap on small uppercase headings (H6) in cols */
.cols-2 h6.elementor-heading-title{
  white-space:nowrap;
}

/* Remove gap between adjacent dt-scroll-scale and cols sections */
.dt-scroll-scale + .cols-2,
.dt-scroll-scale + .e-con:has(.cols-2){
  margin-top:0 !important;
}

@media (max-width: 1024px){
  .cols-2 h6.elementor-heading-title{
    font-size:80% !important;
  }
}
/* cols-2 mobile: stacked layout spacing */
@media (max-width: 767px){
  .cols-2 .elementor-widget-image img{
    max-height:50vw;
  }
  .cols-2 .e-con.e-child + .e-con.e-child{
    margin-top:clamp(20px, 3vw, 40px) !important;
  }
}

.layout-center{text-align:center;justify-items:center;}

/* Icons */
.dt-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--icon-color);
  background:var(--icon-background-color);
  border-radius:var(--icon-radius);
  padding:var(--icon-padding);
  transition:color 300ms ease, background-color 300ms ease;
}
.dt-icon svg{
  width:var(--icon-size);
  height:var(--icon-size);
  stroke:currentColor;
  fill:none;
  stroke-width:1;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.dt-icon:hover{
  color:var(--icon-color-hover);
  background:var(--icon-background-color-hover);
}

/* Components */
.card{background:var(--color_surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);}
.card-hover{transition:transform 450ms cubic-bezier(.25,.1,.25,1), box-shadow 450ms cubic-bezier(.25,.1,.25,1);}
.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}

.media{aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius-md);}
.media iframe,
.media video,
.media img{width:100%;height:100%;object-fit:cover;}

hr{border:none;height:1px;background:var(--color_divider);margin:var(--space-lg) 0;}

:where(a,button,input,textarea,select):focus-visible{
  outline:2px solid var(--color_focus, var(--primary));
  outline-offset:3px;
  border-radius:10px;
}

/* Spacing utilities */
.space-none{padding:0;gap:0;}
.space-sm{padding:var(--space-sm);gap:var(--space-sm);}
.space-md{padding:var(--space-md);gap:var(--space-md);}
.space-lg{padding:var(--space-lg);gap:var(--space-lg);}
.radius-sm{border-radius:var(--radius-sm);}
.radius-md{border-radius:var(--radius-md);}
.radius-lg{border-radius:var(--radius-lg);}
.align-center{text-align:center;justify-items:center;}
.align-left{text-align:left;}
.align-right{text-align:right;}
.bg-muted{background:var(--color_background_muted);}
.bg-surface{background:var(--color_surface);}
.text-muted{color:var(--color_muted_text);}
.border{border:1px solid var(--color_border);}

/* ── Elementor overrides ── */

.elementor-widget{margin:0 !important;}
.elementor-widget-button .elementor-widget-container{background:none;box-shadow:none;}
.elementor-widget-button:hover .elementor-widget-container{box-shadow:none;}


.elementor-container{
  width:var(--container-width);
  max-width:var(--container-width);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--space-md);
  padding-right:var(--space-md);
  gap:var(--space-md);
}

.elementor-section{
  padding-top:var(--space-section);
  padding-bottom:var(--space-section);
}

.elementor-section.elementor-section-stretched{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}

.elementor-section + .elementor-section{margin-top:var(--space-section);}

.e-con{
  padding-left:var(--space-md);
  padding-right:var(--space-md);
  gap:var(--space-md);
}

.e-con > .e-con-inner{
  width:var(--container-width);
  max-width:var(--container-width);
  margin-left:auto;
  margin-right:auto;
}

.e-con.e-parent{
  padding-top:var(--space-section);
  padding-bottom:var(--space-section);
}

.e-con.e-parent + .e-con.e-parent{margin-top:var(--space-section);}

/* Elementor global color mapping */
body{
  --e-global-color-primary:var(--color_primary) !important;
  --e-global-color-secondary:var(--color_secondary) !important;
  --e-global-color-accent:var(--color_accent) !important;
  --e-global-color-text:var(--color_text) !important;
}

.display .elementor-heading-title{
  font-family:var(--type-display-family);
  font-size:var(--type-display-size);
  font-weight:var(--type-display-weight);
  font-style:var(--type-display-style);
  text-transform:var(--type-display-transform);
  text-decoration:var(--type-display-decoration);
  line-height:var(--type-display-line-height);
  letter-spacing:var(--type-display-letter-spacing);
  word-spacing:var(--type-display-word-spacing);
  color:var(--color_heading);
}

.elementor strong,
.elementor b,
.elementor-widget-heading .elementor-heading-title strong,
.elementor-widget-heading .elementor-heading-title b{
  font-weight:700 !important;
}

.elementor-widget-text-editor em,
.elementor-widget-text-editor i,
.elementor-widget-heading .elementor-heading-title em,
.elementor-widget-heading .elementor-heading-title i{
  font-style:italic !important;
}

.elementor-widget-text-editor p,
.elementor-widget-text-editor li{max-width:65ch;}

.layout-stack p + .elementor-button,
.layout-stack .elementor-widget-text-editor + .elementor-widget-button{margin-top:var(--space-md);}

/* Buttons */
.elementor-widget-button .elementor-widget-container{
  background:none !important;
  box-shadow:none !important;
}

.elementor-widget-button .elementor-button-wrapper{
  display:block;
  width:auto;
}

/* Primary button: white text, white outline, gradient bg */
.elementor .elementor-button,
.elementor a.elementor-button,
.elementor .elementor-widget-button .elementor-button{
  background:var(--button-primary-background-color) !important;
  color:var(--button-primary-text-color, #fff) !important;
  fill:var(--button-primary-text-color, #fff) !important;
  border:var(--button-primary-border-width, 1px) solid var(--button-primary-border-color, rgba(255,255,255,0.5)) !important;
  border-radius:var(--button-primary-radius, 9999px) !important;
  padding:var(--button-primary-padding-y) var(--button-primary-padding-x) !important;
  font-weight:var(--type-body-weight) !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:0.5em;
  width:auto !important;
  box-shadow:var(--button-primary-hover-shadow, none) !important;
  text-decoration:none !important;
  transition:background .45s cubic-bezier(.25,.1,.25,1), color .45s cubic-bezier(.25,.1,.25,1), border-color .45s cubic-bezier(.25,.1,.25,1), transform .45s cubic-bezier(.25,.1,.25,1), box-shadow .45s cubic-bezier(.25,.1,.25,1) !important;
}
.elementor .elementor-button:hover,
.elementor a.elementor-button:hover,
.elementor .elementor-widget-button .elementor-button:hover{
  background:var(--button-primary-hover-color) !important;
  color:var(--button-primary-text-color, #fff) !important;
  fill:var(--button-primary-text-color, #fff) !important;
  border-color:var(--button-primary-border-color-hover, #fff) !important;
  box-shadow:var(--button-primary-hover-shadow, none) !important;
  transform:var(--button-primary-hover-transform, none) !important;
  text-decoration:none !important;
}
.elementor .elementor-button:focus,
.elementor a.elementor-button:focus,
.elementor .elementor-widget-button .elementor-button:focus{
  background:var(--button-primary-hover-color) !important;
  color:var(--button-primary-text-color, #fff) !important;
  fill:var(--button-primary-text-color, #fff) !important;
  border-color:var(--button-primary-border-color-hover, #fff) !important;
}
.elementor .elementor-button:active,
.elementor a.elementor-button:active,
.elementor .elementor-widget-button .elementor-button:active{transform:none !important;}

/* Secondary button (CSS class “secondary” on widget) */
.elementor .secondary .elementor-button,
.elementor .secondary a.elementor-button,
.elementor .secondary .elementor-button-link.elementor-button{
  background-color:var(--button-secondary-background-color) !important;
  color:var(--color_primary) !important;
  fill:var(--color_primary) !important;
  border:var(--button-secondary-border-width) solid var(--color_primary) !important;
  border-radius:var(--button-secondary-radius) !important;
  box-shadow:none !important;
}

.elementor .secondary .elementor-button:hover,
.elementor .secondary a.elementor-button:hover,
.elementor .secondary .elementor-button-link.elementor-button:hover{
  background-color:var(--button-secondary-hover-color) !important;
  color:var(--button-primary-text-color) !important;
  fill:var(--button-primary-text-color) !important;
  border-color:var(--button-secondary-hover-color) !important;
  box-shadow:var(--button-secondary-hover-shadow) !important;
  transform:var(--button-secondary-hover-transform) !important;
}

.elementor .secondary .elementor-button:focus,
.elementor .secondary a.elementor-button:focus,
.elementor .secondary .elementor-button-link.elementor-button:focus{
  background-color:var(--button-secondary-hover-color) !important;
  color:var(--button-primary-text-color) !important;
  fill:var(--button-primary-text-color) !important;
  border-color:var(--button-secondary-hover-color) !important;
}

/* Button sizing + icon (all buttons use secondary icon) */
.elementor .elementor-button,
.elementor .elementor-widget-button .elementor-button{
  font-size:clamp(14px, 1vw + 6px, 19px) !important;
}
.elementor .elementor-button::after,
.elementor .elementor-widget-button .elementor-button::after{
  content:'';
  display:inline-block;
  width:1.2em;
  height:1.2em;
  flex-shrink:0;
  background-color:currentColor;
  -webkit-mask-image:var(--button-primary-icon);
  mask-image:var(--button-primary-icon);
  -webkit-mask-size:contain;
  mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  transition:transform 300ms ease;
}
.elementor .elementor-button:hover::after{
  transform:translateX(4px);
}

/* Hide theme default header + footer (replaced by Elementor templates) */
#site-header,#site-footer{display:none !important;}

/* ── Social links ── */
.dt-social-links{
  display:flex;
  align-items:center;
  gap:clamp(2px, 0.3vw, 4px);
  flex-wrap:nowrap;
}
.dt-social-links .dt-icon{
  width:clamp(32px, 2.5vw, 40px);
  height:clamp(32px, 2.5vw, 40px);
  padding:0;
  text-decoration:none !important;
  transition:transform .22s ease, color .3s ease, background-color .3s ease !important;
}
.dt-social-links a:hover{
  transform:translateY(-2px);
}
.dt-social-links .dt-icon svg{
  width:clamp(16px, 1.25vw, 20px) !important;
  height:clamp(16px, 1.25vw, 20px) !important;
}

/* ── Hero text box ── */
.dt-hero-textbox{
  background:linear-gradient(40deg, var(--color_primary) 0%, var(--color_secondary) 73%);
  padding:clamp(30px, 3.5vw, 50px);
  max-width:clamp(360px, 35vw, 500px);
  color:#fff;
  align-self:flex-end;
  margin-bottom:3.5vw;
  font-family:var(--font-body);
}
.dt-hero-textbox__text{
  font-size:clamp(18px, 1.5vw + 8px, 28px);
  line-height:1.4;
  font-weight:400;
  font-style:italic;
}
.dt-hero-textbox__btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:clamp(20px, 2vw, 30px);
  padding:clamp(12px, 1vw, 16px) clamp(24px, 2vw, 36px);
  border:1.5px solid rgba(255,255,255,0.6);
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-size:clamp(14px, 0.9vw + 6px, 18px);
  font-weight:500;
  transition:background .3s ease, border-color .3s ease;
}
.dt-hero-textbox__btn:hover{
  background:rgba(255,255,255,0.12);
  border-color:#fff;
}
.dt-hero-textbox__btn svg{
  width:18px;
  height:18px;
  flex-shrink:0;
}

/* ── Hero title (large animated heading) ── */
.dt-hero-title{
  text-align:center;
  overflow-x:hidden;
  overflow-y:visible;
  width:100%;
  max-width:100vw;
  position:relative;
  z-index:1;
}
.elementor-widget-shortcode:has(.dt-hero-title),
.elementor-widget-shortcode:has(.dt-hero-title) .elementor-shortcode{
  overflow:visible !important;
  max-width:100vw !important;
}
/* Push the shortcode widget containing the hero title to the bottom of its flex parent */
.elementor-widget-shortcode:has(.dt-hero-title){
  margin-top:auto !important;
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
.dt-hero-title__heading{
  font-family:var(--font-display);
  font-size:14vw;
  line-height:1;
  letter-spacing:-0.02em;
  color:#fff;
  font-weight:500;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  margin:0;
  padding:0;
  white-space:nowrap;
  display:block;
}
.dt-hero-title__char{
  display:inline-block;
  opacity:0;
  transform:translateY(40px);
  animation:dt-char-in .5s ease forwards;
}
@keyframes dt-char-in{
  to{ opacity:1; transform:translateY(0); }
}

/* ── Ticker / marquee ── */
.dt-ticker{
  overflow:hidden;
  white-space:nowrap;
  width:100%;
  line-height:1;
  margin:0;
  padding:0;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
/* Prevent ticker from causing horizontal overflow */
.elementor-widget-shortcode:has(.dt-ticker),
.elementor-widget-shortcode:has(.dt-ticker) .elementor-shortcode{
  overflow:hidden !important;
  max-width:100vw !important;
}
/* Override Elementor vertical flow spacing on ticker */
.e-con:has(.dt-ticker){
  padding-top:35px !important;
  padding-bottom:35px !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  gap:0 !important;
}
.e-con:has(.dt-ticker) > .e-con-inner{
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  gap:0 !important;
}
.elementor-widget-shortcode:has(.dt-ticker){
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
/* Remove top spacing on the section immediately after the ticker */
.e-con:has(.dt-ticker) + .e-con{
  margin-top:0 !important;
  padding-top:0 !important;
}
/* Vertically center the ticker text */
.e-con:has(.dt-ticker){
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.dt-ticker__track{
  display:inline-flex;
  animation:dt-ticker-scroll var(--dt-ticker-duration, 20s) linear infinite;
  will-change:transform;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
}
.dt-ticker__segment{
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
}
.dt-ticker__item{
  font-family:var(--font-display);
  font-size:clamp(28px, 3vw + 4px, 47px);
  font-weight:300;
  color:var(--color_secondary);
  letter-spacing:-0.01em;
  padding:0 clamp(16px, 1.5vw, 28px);
}
.dt-ticker__sep{
  padding:0 clamp(8px, 0.8vw, 14px);
  user-select:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:0;
  color:transparent;
  position:relative;
  width:clamp(18px, 2vw, 28px);
  height:clamp(18px, 2vw, 28px);
  animation:dt-ticker-rotate 6s linear infinite;
}
.dt-ticker__sep::before,
.dt-ticker__sep::after{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  background:var(--color_secondary);
  border-radius:1px;
}
.dt-ticker__sep::before{
  width:100%;
  height:1.5px;
  transform:translate(-50%,-50%);
}
.dt-ticker__sep::after{
  width:1.5px;
  height:100%;
  transform:translate(-50%,-50%);
}
@keyframes dt-ticker-rotate{
  0%{ transform:rotate(0deg); }
  100%{ transform:rotate(-360deg); }
}
@keyframes dt-ticker-scroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}

/* ── Gradient box (add CSS class "dt-gradient-box" in Elementor Advanced) ── */
/* Gradient box – absolutely positioned center-right in hero */
/* Make the hero inner container the positioning context for the gradient box */
.e-con:has(.dt-gradient-box) > .e-con-inner{
  position:relative;
}
.dt-gradient-box{
  background:linear-gradient(40deg, var(--color_primary) 0%, var(--color_secondary) 70%) !important;
  color:#fff !important;
  padding:clamp(28px, 3.2vw, 50px) !important;
  border-radius:0;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  position:absolute !important;
  --position:absolute !important;
  width:clamp(280px, 33vw, 500px) !important;
  right:0;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  box-sizing:border-box;
}
.dt-gradient-box,
.dt-gradient-box p,
.dt-gradient-box .elementor-text-editor{
  font-size:clamp(18px, 1.1vw + 11px, 28px) !important;
  line-height:clamp(24px, 1.3vw + 14px, 34px) !important;
  color:#fff !important;
}
.dt-gradient-box .elementor-heading-title{
  color:#fff !important;
}
/* Button widget wrapper inside gradient box – remove extra spacing */
.dt-gradient-box .elementor-widget-button{
  margin:0 !important;
  padding:0 !important;
}
.dt-gradient-box .elementor-button-wrapper{
  margin:0 !important;
  padding:0 !important;
}
/* Secondary button inside gradient box – uses actual Design Token vars, white override */
.dt-gradient-box .wp-block-button.is-style-outline .wp-block-button__link,
.dt-gradient-box .elementor-button-wrapper .elementor-button,
.dt-gradient-box .elementor-button{
  color:#fff !important;
  fill:#fff !important;
  border-color:rgba(255,255,255,0.5) !important;
  background:var(--button-secondary-background-color) !important;
  border-width:var(--button-secondary-border-width, 1px) !important;
  border-style:solid !important;
  border-radius:var(--button-secondary-radius, 9999px) !important;
  padding:calc(var(--button-primary-padding-y) * 1.2) calc(var(--button-primary-padding-x) * 1.4);
  font-size:clamp(14px, 1vw + 6px, 19px) !important;
  margin-top:clamp(16px, 1.5vw, 28px);
  transition:background .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.dt-gradient-box .wp-block-button.is-style-outline .wp-block-button__link:hover,
.dt-gradient-box .elementor-button-wrapper .elementor-button:hover,
.dt-gradient-box .elementor-button:hover{
  background:var(--button-secondary-hover-color) !important;
  border-color:var(--button-secondary-border-color, #fff) !important;
  box-shadow:var(--button-secondary-hover-shadow);
  transform:var(--button-secondary-hover-transform);
}
/* Icon inside gradient box button – from Design Token SVG */
.dt-gradient-box .wp-block-button.is-style-outline .wp-block-button__link::after,
.dt-gradient-box .elementor-button-wrapper .elementor-button::after,
.dt-gradient-box .elementor-button::after{
  content:'';
  display:inline-block;
  width:1.2em;
  height:1.2em;
  flex-shrink:0;
  background-color:#fff;
  -webkit-mask-image:var(--button-secondary-icon);
  mask-image:var(--button-secondary-icon);
  -webkit-mask-size:contain;
  mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  transition:transform 300ms ease;
}
.dt-gradient-box .wp-block-button.is-style-outline .wp-block-button__link:hover::after,
.dt-gradient-box .elementor-button-wrapper .elementor-button:hover::after,
.dt-gradient-box .elementor-button:hover::after{
  transform:translateX(4px);
}
/* dt-btn-secondary – apply Design Token secondary button to ANY Elementor button */
.elementor .dt-btn-secondary .elementor-button,
.elementor .dt-btn-secondary.elementor-button{
  background:var(--button-secondary-background-color, transparent) !important;
  color:var(--button-secondary-text-color, var(--color_primary)) !important;
  fill:var(--button-secondary-text-color, var(--color_primary)) !important;
  border:var(--button-secondary-border-width, 1px) solid var(--button-secondary-text-color, var(--color_primary)) !important;
  border-radius:var(--button-secondary-radius, 9999px) !important;
  padding:var(--button-primary-padding-y) var(--button-primary-padding-x) !important;
  display:inline-flex !important;
  align-items:center;
  gap:0.5em;
  text-decoration:none !important;
  transition:background .45s cubic-bezier(.25,.1,.25,1), color .45s cubic-bezier(.25,.1,.25,1), border-color .45s cubic-bezier(.25,.1,.25,1), transform .45s cubic-bezier(.25,.1,.25,1), box-shadow .45s cubic-bezier(.25,.1,.25,1) !important;
}
.elementor .dt-btn-secondary .elementor-button:hover,
.elementor .dt-btn-secondary.elementor-button:hover{
  background:var(--button-secondary-hover-color) !important;
  color:var(--button-primary-text-color, #fff) !important;
  fill:var(--button-primary-text-color, #fff) !important;
  border-color:var(--button-secondary-hover-color) !important;
  box-shadow:var(--button-secondary-hover-shadow) !important;
  transform:var(--button-secondary-hover-transform) !important;
}
/* Icon from Design Tokens */
.elementor .dt-btn-secondary .elementor-button::after,
.elementor .dt-btn-secondary.elementor-button::after{
  content:'';
  display:inline-block;
  width:1.2em;
  height:1.2em;
  flex-shrink:0;
  background-color:currentColor;
  -webkit-mask-image:var(--button-secondary-icon);
  mask-image:var(--button-secondary-icon);
  -webkit-mask-size:contain;
  mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  transition:transform 300ms ease;
}
.elementor .dt-btn-secondary .elementor-button:hover::after,
.elementor .dt-btn-secondary.elementor-button:hover::after{
  transform:translateX(4px);
}
/* White override when inside gradient box */
.elementor .dt-gradient-box .dt-btn-secondary .elementor-button,
.elementor .dt-gradient-box .dt-btn-secondary.elementor-button{
  color:#fff !important;
  fill:#fff !important;
  border-color:rgba(255,255,255,0.5) !important;
}
.elementor .dt-gradient-box .dt-btn-secondary .elementor-button:hover,
.elementor .dt-gradient-box .dt-btn-secondary.elementor-button:hover{
  background:var(--button-secondary-hover-color) !important;
  border-color:var(--button-secondary-border-color, #fff) !important;
  color:#fff !important;
}
.elementor .dt-gradient-box .dt-btn-secondary .elementor-button::after{
  background-color:#fff;
}

@media (max-width:880px){
  /* Stack: gradient box on top, Lebens(t)raum below */
  .e-con:has(.dt-gradient-box) > .e-con-inner{
    display:flex !important;
    flex-direction:column !important;
  }
  .dt-gradient-box{
    position:relative !important;
    --position:relative !important;
    width:100% !important;
    right:auto;
    top:auto;
    transform:none;
    order:-1 !important;
  }
  .elementor-widget-shortcode:has(.dt-hero-title){
    margin-top:auto !important;
    order:1 !important;
  }
}

/* ── Immobilien listing cards ── */
.dt-immo-listing{
  width:100%;
  margin-top:clamp(32px, 3vw, 56px);
}
/* Filter buttons */
.dt-immo-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:clamp(24px, 2vw, 40px);
}
.dt-immo-filter{
  padding:8px 20px;
  border:1px solid var(--color_primary);
  border-radius:9999px;
  background:transparent;
  color:var(--color_text);
  font-family:var(--font-body);
  font-size:clamp(13px, 0.8vw + 6px, 16px);
  font-weight:var(--type-body-weight, 300);
  cursor:pointer;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
  -webkit-font-smoothing:antialiased;
}
.dt-immo-filter:hover{
  background:var(--color_primary);
  color:#fff;
}
.dt-immo-filter.is-active{
  background:var(--color_primary);
  color:#fff;
  border-color:var(--color_primary);
}
/* Card grid */
.dt-immo-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(24px, 2vw, 40px);
}
@media (max-width:1024px){
  .dt-immo-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:767px){
  .dt-immo-grid{ grid-template-columns:1fr; }
}
/* Card */
.dt-immo-card{
  background:#fff;
  border-radius:0;
  overflow:hidden;
  transition:transform .3s ease;
  display:flex;
  flex-direction:column;
}
.dt-immo-card:hover{
  transform:scale(1.02);
}
.dt-immo-card__img{
  transition:transform .4s ease;
}
.dt-immo-card:hover .dt-immo-card__img{
  transform:scale(1.05);
}
/* Card image */
.dt-immo-card__img{
  width:100%;
  aspect-ratio:16/10;
  background-size:cover;
  background-position:center;
  background-color:#f0f0f0;
}
.dt-immo-card__img--empty{
  background-color:#e5e5e5;
}
/* Card body */
.dt-immo-card__body{
  padding:clamp(16px, 1.2vw, 24px);
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
}
/* Status badge */
.dt-immo-card__status{
  display:inline-block;
  font-size:clamp(11px, 0.6vw + 5px, 13px);
  font-weight:500;
  padding:3px 10px;
  border-radius:9999px;
  width:fit-content;
  color:#fff;
  -webkit-font-smoothing:antialiased;
}
.dt-status--available{ background:#22c55e; }
.dt-status--reserved{ background:#3b82f6; }
.dt-status--sold{ background:#6b7280; }
/* Title – 10% bigger */
.dt-immo-card__title{
  font-family:var(--font-display, var(--font-body));
  font-size:clamp(18px, 1.1vw + 9px, 24px);
  font-weight:600;
  line-height:1.3;
  margin:4px 0;
  color:var(--color_text);
}
/* Meta line (zimmer, etage, fläche) – 10% bigger */
.dt-immo-card__meta{
  font-size:clamp(16px, 0.9vw + 8px, 20px);
  color:#777;
  font-weight:var(--type-body-weight, 300);
  margin:0;
}
/* Meta separator dot */
.dt-immo-card__sep{
  font-weight:800;
  font-size:1.1em;
  color:var(--color_primary);
  padding:0 3px;
  position:relative;
  top:-1px;
}
/* Highlights tags – 20% bigger */
.dt-immo-card__highlights{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin:6px 0;
}
.dt-immo-card__tag{
  font-size:clamp(14px, 0.7vw + 7px, 17px);
  padding:4px 12px;
  border-radius:9999px;
  background:transparent;
  border:1px solid var(--color_primary);
  color:var(--color_text);
  font-weight:var(--type-body-weight, 300);
}
/* Card buttons row */
.dt-immo-card__buttons{
  display:flex;
  gap:8px;
  margin-top:10px;
  flex-wrap:wrap;
}
/* Grundriss + Anfrage buttons */
.dt-immo-card__grundriss{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:clamp(14px, 0.7vw + 7px, 17px);
  padding:4px 20px;
  border-radius:9999px;
  background:var(--color_primary);
  border:1px solid var(--color_primary);
  color:#fff;
  font-weight:var(--type-body-weight, 300);
  text-decoration:none !important;
  width:fit-content;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
  -webkit-font-smoothing:antialiased;
}
.dt-immo-card__grundriss:hover{
  background:transparent;
  color:var(--color_text);
  text-decoration:none !important;
}
.dt-immo-card__arrow{
  width:16px;
  height:16px;
  flex-shrink:0;
  transition:transform .3s ease;
}
.dt-immo-card__grundriss:hover .dt-immo-card__arrow{
  transform:translateX(3px);
}
/* Price – 10% bigger */
.dt-immo-card__price{
  font-family:var(--font-display, var(--font-body));
  font-size:clamp(18px, 1.1vw + 9px, 24px);
  font-weight:600;
  color:var(--color_primary);
  margin:8px 0 0;
}

/* ── Scroll-scale section (add CSS class "dt-scroll-scale" in Elementor Advanced) ── */
.dt-scroll-scale{
  height:clamp(350px, 43.75vw, 700px) !important;
  min-height:clamp(350px, 43.75vw, 700px) !important;
  overflow:hidden !important;
  will-change:transform;
  transform:scale(0.85);
  transform-origin:center center;
  transition:none !important;
}
/* Top padding for scroll-scale sections */
.dt-scroll-scale > .e-con-inner{
  padding-top:clamp(30px, 4vw, 60px) !important;
}
/* Vertical spacing between child widgets */
.dt-scroll-scale .elementor-widget + .elementor-widget{
  margin-top:clamp(12px, 1.2vw, 24px) !important;
}

/* ── Generic header (Elementor location-based) ── */
header.elementor-location-header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:99999;
  background:transparent !important;
  transition:transform 350ms cubic-bezier(.25,.1,.25,1);
  will-change:transform;
}
header.elementor-location-header .e-con.e-parent{
  height:var(--dt-header-h);
  min-height:var(--dt-header-h);
  max-height:var(--dt-header-h);
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
}
header.elementor-location-header .e-con,
header.elementor-location-header .e-con-inner{
  background:transparent !important;
  background-color:transparent !important;
  --background-overlay:none !important;
  --overlay-opacity:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
}
header.elementor-location-header .e-con > .e-con-inner{
  height:100%;
  display:flex;
  align-items:center;
}
header.elementor-location-header .elementor-widget{
  margin-top:0 !important;
  margin-bottom:0 !important;
}
header.elementor-location-header .elementor-widget-shortcode{
  margin-left:auto !important;
  display:flex;
  align-items:center;
  height:100%;
  flex:0 0 auto !important;
  width:auto !important;
  max-width:fit-content !important;
}

/* Logo – fill header height */
header.elementor-location-header .elementor-widget-image,
header.elementor-location-header .elementor-widget-theme-site-logo{
  height:100%;
  min-width:fit-content;
  display:flex;
  align-items:center;
}
header.elementor-location-header .elementor-widget-image a,
header.elementor-location-header .elementor-widget-theme-site-logo a{
  height:100%;
  display:flex;
  align-items:center;
}
header.elementor-location-header .elementor-widget-image img,
header.elementor-location-header .elementor-widget-theme-site-logo img{
  height:100% !important;
  width:auto !important;
  max-height:100% !important;
  max-width:none !important;
  object-fit:contain;
}

/* Nav menu – right-align, shrink to fit, no line break */
header.elementor-location-header .elementor-widget-nav-menu{
  flex:0 1 auto !important;
  width:auto !important;
  max-width:fit-content !important;
  margin-left:auto !important;
}
header.elementor-location-header .elementor-nav-menu{
  white-space:nowrap;
  flex-wrap:nowrap !important;
}
/* Nav item + chevron hover (set Elementor global vars + direct override) */
header.elementor-location-header{
  --e-global-color-secondary:var(--color_secondary);
  --e-global-color-accent:var(--color_secondary);
}
header.elementor-location-header .elementor-nav-menu--main .elementor-item{
  -webkit-text-fill-color:unset !important;
  transition:color .3s ease !important;
}
header.elementor-location-header .elementor-nav-menu--main .elementor-item .sub-arrow svg{
  fill:currentColor !important;
  transition:fill .3s ease, transform .3s ease !important;
}

/* Nav dropdown */
header.elementor-location-header .elementor-nav-menu--dropdown,
header.elementor-location-header .sub-menu.elementor-nav-menu--dropdown{
  margin-left:clamp(-12px, -1vw, -20px) !important;
  padding-top:clamp(8px, 0.6vw, 14px) !important;
  padding-bottom:clamp(8px, 0.6vw, 14px) !important;
  opacity:0;
  visibility:hidden;
  transform:translateY(-12px);
  transition:opacity .6s ease, transform .6s ease, visibility 0s linear .6s !important;
}
header.elementor-location-header .menu-item-has-children:hover > .elementor-nav-menu--dropdown,
header.elementor-location-header .menu-item-has-children:focus-within > .elementor-nav-menu--dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition:opacity .6s ease, transform .6s ease, visibility 0s !important;
}
header.elementor-location-header .elementor-nav-menu--dropdown .elementor-item,
header.elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item{
  font-size:clamp(14px, 0.7vw + 11px, 19px) !important;
  line-height:1.15 !important;
  padding-top:clamp(3px, 0.3vw, 6px) !important;
  padding-bottom:clamp(3px, 0.3vw, 6px) !important;
  padding-left:clamp(12px, 1vw, 20px) !important;
  padding-right:clamp(24px, 2vw, 40px) !important;
  background:transparent !important;
  transform:translateX(0);
  transition:color .6s ease, transform .6s ease !important;
}
header.elementor-location-header .elementor-nav-menu--dropdown .elementor-item:hover,
header.elementor-location-header .elementor-nav-menu--dropdown .elementor-item:focus,
header.elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item:hover,
header.elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item:focus,
header.elementor-location-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{
  color:var(--color_primary) !important;
  background:transparent !important;
  transform:translateX(3px) !important;
}

/* Override ALL Elementor responsive breakpoints – we control visibility */
header.elementor-location-header .elementor-menu-toggle{
  display:none !important;
}
header.elementor-location-header .elementor-widget-nav-menu{
  display:flex !important;
}
header.elementor-location-header .elementor-nav-menu{
  display:flex !important;
}
header.elementor-location-header .elementor-nav-menu--main{
  display:flex !important;
}

/* ── Custom hamburger (injected by JS inside logo) ── */
.dt-hamburger{
  display:none;
  align-items:center;
  justify-content:center;
  width:20px;
  height:16px;
  margin-left:-40px;
  flex-shrink:0;
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  position:relative;
}
.dt-hamburger span{
  display:block;
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  background:#fff;
  border-radius:1px;
  transition:top .6s ease, bottom .6s ease, transform .6s ease;
}
.dt-hamburger span:nth-child(1){ top:2px; }
.dt-hamburger span:nth-child(2){ bottom:2px; }
/* Hover – lines move closer */
.dt-hamburger:hover span:nth-child(1){ top:4px; }
.dt-hamburger:hover span:nth-child(2){ bottom:4px; }
/* Open state → X */
.dt-hamburger.is-open span:nth-child(1){
  top:50%;
  transform:translateY(-50%) rotate(45deg);
}
.dt-hamburger.is-open span:nth-child(2){
  bottom:auto;
  top:50%;
  transform:translateY(-50%) rotate(-45deg);
}
.dt-hamburger.is-open:hover span:nth-child(1){ top:50%; }
.dt-hamburger.is-open:hover span:nth-child(2){ bottom:auto; top:50%; }

/* ── Mobile menu overlay ── */
.dt-menu-overlay{
  position:fixed;
  inset:0;
  z-index:99998;
  background:color-mix(in srgb, var(--color_primary) 90%, transparent);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(12px, 2.5vw, 24px);
  opacity:0;
  visibility:hidden;
  transition:opacity .4s ease, visibility 0s .4s;
}
.dt-menu-overlay.is-open{
  opacity:1;
  visibility:visible;
  transition:opacity .4s ease, visibility 0s;
}
.dt-menu-overlay__item{
  display:block;
  color:#fff;
  text-decoration:none;
  font-family:var(--font-display, var(--font-body));
  font-size:clamp(28px, 5vw + 8px, 52px);
  font-weight:500;
  letter-spacing:-0.02em;
  line-height:1.2;
  text-align:center;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  opacity:0;
  transform:translateY(-30px);
  transition:opacity .35s ease, transform .35s ease, color .3s ease;
}
.dt-menu-overlay.is-open .dt-menu-overlay__item{
  opacity:1;
  transform:translateY(0);
}
/* Staggered delays for fade-in-down (items are inside wrapper divs) */
.dt-menu-overlay.is-open > div:nth-child(1) .dt-menu-overlay__item{ transition-delay:.05s; }
.dt-menu-overlay.is-open > div:nth-child(2) .dt-menu-overlay__item{ transition-delay:.1s; }
.dt-menu-overlay.is-open > div:nth-child(3) .dt-menu-overlay__item{ transition-delay:.15s; }
.dt-menu-overlay.is-open > div:nth-child(4) .dt-menu-overlay__item{ transition-delay:.2s; }
.dt-menu-overlay.is-open > div:nth-child(5) .dt-menu-overlay__item{ transition-delay:.25s; }
.dt-menu-overlay.is-open > div:nth-child(6) .dt-menu-overlay__item{ transition-delay:.3s; }
.dt-menu-overlay.is-open > div:nth-child(7) .dt-menu-overlay__item{ transition-delay:.35s; }
.dt-menu-overlay.is-open > div:nth-child(8) .dt-menu-overlay__item{ transition-delay:.4s; }
/* Fade-out-up on close (reverse stagger) */
.dt-menu-overlay:not(.is-open) .dt-menu-overlay__item{
  transform:translateY(-30px);
  opacity:0;
}
.dt-menu-overlay:not(.is-open) > div:nth-child(1) .dt-menu-overlay__item{ transition-delay:.2s; }
.dt-menu-overlay:not(.is-open) > div:nth-child(2) .dt-menu-overlay__item{ transition-delay:.17s; }
.dt-menu-overlay:not(.is-open) > div:nth-child(3) .dt-menu-overlay__item{ transition-delay:.14s; }
.dt-menu-overlay:not(.is-open) > div:nth-child(4) .dt-menu-overlay__item{ transition-delay:.11s; }
.dt-menu-overlay:not(.is-open) > div:nth-child(5) .dt-menu-overlay__item{ transition-delay:.08s; }
.dt-menu-overlay:not(.is-open) > div:nth-child(6) .dt-menu-overlay__item{ transition-delay:.05s; }
.dt-menu-overlay:not(.is-open) > div:nth-child(7) .dt-menu-overlay__item{ transition-delay:.02s; }
.dt-menu-overlay:not(.is-open) > div:nth-child(8) .dt-menu-overlay__item{ transition-delay:0s; }
/* Hover – no underline */
.dt-menu-overlay__item{
  text-decoration:none !important;
}
.dt-menu-overlay__item:hover{
  color:rgba(255,255,255,0.6);
  text-decoration:none !important;
}
/* Dropdown parent – chevron */
.dt-menu-overlay__item.has-children{
  cursor:pointer;
}
.dt-menu-overlay__chevron{
  display:inline-block;
  width:0.5em;
  height:0.5em;
  margin-left:0.3em;
  fill:currentColor;
  transition:transform .3s ease;
  vertical-align:middle;
}
.dt-menu-overlay__item.is-expanded .dt-menu-overlay__chevron{
  transform:rotate(180deg);
}
/* Sub-menu container */
.dt-menu-overlay__sub{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(6px, 1.2vw, 12px);
  max-height:0;
  overflow:hidden;
  transition:max-height .4s ease, opacity .3s ease, margin .3s ease;
  opacity:0;
  margin-top:0;
}
.dt-menu-overlay__sub.is-open{
  max-height:500px;
  opacity:1;
  margin-top:clamp(6px, 1.2vw, 12px);
}
.dt-menu-overlay__sub a{
  display:block;
  color:rgba(255,255,255,0.7);
  text-decoration:none !important;
  font-family:var(--font-display, var(--font-body));
  font-size:clamp(18px, 3vw + 4px, 32px);
  font-weight:400;
  letter-spacing:-0.01em;
  line-height:1.3;
  text-align:center;
  -webkit-font-smoothing:antialiased;
  transition:color .3s ease;
}
.dt-menu-overlay__sub a:hover{
  color:#fff;
  text-decoration:none !important;
}

/* ── Responsive breakpoints ── */

/* Cloned dropdown items hidden by default */
header.elementor-location-header .dt-show-1360,
header.elementor-location-header .dt-show-1100{ display:none !important; }

/* ≤ 1360: show hamburger, hide Immobiliensuche, show its clone in Dienstleistungen */
@media (max-width:1360px){
  .dt-hamburger{ display:inline-flex; }
  header.elementor-location-header .dt-hide-1360{ display:none !important; }
  header.elementor-location-header .dt-show-1360{ display:list-item !important; }
}

/* ≤ 1100: hide Marktwertanalyse, show its clone in Dienstleistungen */
@media (max-width:1100px){
  header.elementor-location-header .dt-hide-1100{ display:none !important; }
  header.elementor-location-header .dt-show-1100{ display:list-item !important; }
}

/* ≤ 880: hide Immobilien & Dienstleistungen → Logo+☰, Kontakt (right-aligned), Social */
@media (max-width:900px){
  header.elementor-location-header .dt-hide-900{ display:none !important; }
  header.elementor-location-header .elementor-widget-nav-menu{
    flex:1 1 auto !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:0 !important;
  }
  header.elementor-location-header .elementor-nav-menu{
    justify-content:flex-end !important;
    width:100% !important;
  }
  header.elementor-location-header .elementor-nav-menu--layout-horizontal .elementor-nav-menu{
    justify-content:flex-end !important;
  }
  header.elementor-location-header .elementor-widget-nav-menu{
    margin-right:clamp(16px, 2vw, 32px) !important;
  }
}

/* ≤ 600: hide Kontakt → Logo+☰, Social only */
@media (max-width:600px){
  header.elementor-location-header .dt-hide-600{ display:none !important; }
}
@media (max-width:470px){
  /* Hide all social icons except email */
  header.elementor-location-header .dt-social-links .dt-icon:not(:first-child){ display:none !important; }
}
@media (max-width:370px){
  /* Hide email icon too */
  header.elementor-location-header .dt-social-links .dt-icon:first-child{ display:none !important; }
}

/* Scroll states */
header.elementor-location-header.dt-header-hidden{
  transform:translateY(calc(-100% - 8px));
  pointer-events:none;
}
header.elementor-location-header.dt-header-visible{
  transform:translateY(0);
  pointer-events:auto;
}

/* ── Global Footer (uses freitagimmo brand colors, not project overrides) ── */
footer.elementor-location-footer{
  --footer-bg:#3f3f3f;
  --footer-primary:#552583;
  --footer-secondary:#474898;
  --footer-accent:#a51673;
  /* Reset project overrides so footer always uses freitagimmo colors */
  --color_primary:#552583 !important;
  --color_secondary:#474898 !important;
  --color_text:#3f3f3f !important;
  --color_accent:#a51673 !important;
  --e-global-color-secondary:#474898 !important;
  --e-global-color-accent:#a51673 !important;
  --e-global-color-primary:#552583 !important;
}
footer.elementor-location-footer .e-con.e-parent{
  background-color:var(--footer-bg) !important;
}
footer.elementor-location-footer,
footer.elementor-location-footer *{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
footer.elementor-location-footer a{
  color:#fff !important;
  text-decoration:none !important;
}
footer.elementor-location-footer a:hover,
footer.elementor-location-footer a:focus,
footer.elementor-location-footer a:active{
  color:rgba(255,255,255,0.6) !important;
  -webkit-text-fill-color:rgba(255,255,255,0.6) !important;
  text-decoration:none !important;
  border-bottom:none !important;
  box-shadow:none !important;
  background-image:none !important;
}
footer.elementor-location-footer .elementor-item::before,
footer.elementor-location-footer .elementor-item::after,
footer.elementor-location-footer .elementor-item-active::before,
footer.elementor-location-footer .elementor-item-active::after{
  display:none !important;
  height:0 !important;
  opacity:0 !important;
}
footer.elementor-location-footer .elementor-heading-title{
  font-size:var(--type-body-size, 16px) !important;
  font-weight:var(--type-body-weight, 300) !important;
  line-height:var(--type-body-line-height, 1.6) !important;
  font-family:var(--font-body) !important;
  margin-bottom:8px !important;
}
footer.elementor-location-footer .elementor-nav-menu--main{
  display:flex !important;
  flex-direction:column !important;
}
footer.elementor-location-footer .elementor-nav-menu{
  padding:0 !important;
  margin:0 !important;
  flex-direction:column !important;
  display:flex !important;
  gap:4px !important;
}
footer.elementor-location-footer .elementor-nav-menu > .menu-item{
  display:block !important;
}
footer.elementor-location-footer .elementor-nav-menu .elementor-item{
  padding:0 !important;
  color:#fff !important;
  font-size:var(--type-body-size, 16px) !important;
  font-weight:var(--type-body-weight, 300) !important;
  line-height:var(--type-body-line-height, 1.6) !important;
  font-family:var(--font-body) !important;
  text-decoration:none !important;
  -webkit-text-fill-color:unset !important;
  display:inline-flex !important;
  align-items:center !important;
}
footer.elementor-location-footer .elementor-nav-menu .elementor-item{
  transform:translateX(0);
  transition:color .25s ease, transform .25s ease !important;
}
footer.elementor-location-footer .elementor-nav-menu .elementor-item:hover{
  color:rgba(255,255,255,0.6) !important;
  text-decoration:none !important;
  transform:translateX(3px);
}
/* Footer – hide chevrons */
footer.elementor-location-footer .sub-arrow{
  display:none !important;
}
/* Footer dropdown – hidden by default, click to toggle, no box */
footer.elementor-location-footer .elementor-nav-menu--dropdown{
  position:static !important;
  background:transparent !important;
  box-shadow:none !important;
  border:none !important;
  padding:0 !important;
  margin:0 !important;
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  width:auto !important;
  max-height:0 !important;
  overflow:hidden !important;
  transition:max-height .4s ease, margin .3s ease !important;
  display:flex !important;
  flex-direction:column !important;
}
footer.elementor-location-footer .menu-item-has-children.dt-footer-open > .elementor-nav-menu--dropdown{
  max-height:500px !important;
  margin:4px 0 0 0 !important;
}
footer.elementor-location-footer .elementor-nav-menu--dropdown .elementor-item,
footer.elementor-location-footer .elementor-nav-menu--dropdown .elementor-sub-item{
  color:rgba(255,255,255,0.7) !important;
  padding:2px 0 !important;
  font-size:var(--type-body-size, 16px) !important;
  font-weight:var(--type-body-weight, 300) !important;
  line-height:var(--type-body-line-height, 1.6) !important;
  font-family:var(--font-body) !important;
  background:transparent !important;
}
footer.elementor-location-footer .elementor-nav-menu--dropdown .elementor-item:hover,
footer.elementor-location-footer .elementor-nav-menu--dropdown .elementor-sub-item:hover{
  color:#fff !important;
  background:transparent !important;
}
/* Footer – hide hamburger */
footer.elementor-location-footer .dt-hamburger,
footer.elementor-location-footer .elementor-menu-toggle{
  display:none !important;
}
/* Footer – column padding reset */
footer.elementor-location-footer .e-con.e-child{
  padding:0 !important;
}
/* Footer – space between col 1 and col 2 */
footer.elementor-location-footer .elementor-element-c7f950a{
  margin-right:clamp(40px, 5vw, 80px) !important;
}
/* Footer – push cols 2-4 down to align with col1 company name */
footer.elementor-location-footer .elementor-element-06df3aa,
footer.elementor-location-footer .elementor-element-aa54d39,
footer.elementor-location-footer .elementor-element-7255875{
  padding-top:15px !important;
}
/* Footer – logo scales like header */
footer.elementor-location-footer .elementor-widget-theme-site-logo img{
  height:var(--dt-header-h, 60px) !important;
  width:auto !important;
  max-height:100% !important;
}
/* Footer – top section equal top/bottom padding */
footer.elementor-location-footer .elementor-element-49406db{
  padding-bottom:var(--padding-block, 40px) !important;
}
/* Footer – no forced max-width, inherits from Elementor container settings */
/* Footer – col1 align top not center */
footer.elementor-location-footer .elementor-element-c7f950a{
  justify-content:flex-start !important;
}
/* Footer – bottom section: full-width bg, content aligned with top footer */
footer.elementor-location-footer .elementor-element-a872d58{
  margin-top:0 !important;
  min-height:80px !important;
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  max-width:100% !important;
  padding-left:max(2.5vw, calc((100vw - min(1500px, 95vw)) / 2)) !important;
  padding-right:max(2.5vw, calc((100vw - min(1500px, 95vw)) / 2)) !important;
  box-sizing:border-box !important;
}
footer.elementor-location-footer .e-con.e-parent:last-child .elementor-heading-title,
footer.elementor-location-footer .e-con.e-parent:last-child .elementor-widget-html{
  font-size:clamp(11px, 0.28vw + 10px, 14px) !important;
  font-weight:var(--type-body-weight, 300) !important;
  line-height:1.4 !important;
}
footer.elementor-location-footer .e-con.e-parent:first-child{
  margin-bottom:0 !important;
}
/* Footer social icons – layout only, inherits styling from .dt-social-links */
.dt-footer-social{
  margin-top:20px;
}
/* Footer responsive */
@media (max-width:1024px){
  /* Hide col4 (Social Media) by ID */
  footer.elementor-location-footer .elementor-element-7255875{
    display:none !important;
  }
  /* Col1 40%, cols 2-3 30% each */
  footer.elementor-location-footer .elementor-element-c7f950a{
    width:40% !important;
    flex:0 0 40% !important;
    margin-right:0 !important;
  }
  footer.elementor-location-footer .elementor-element-06df3aa,
  footer.elementor-location-footer .elementor-element-aa54d39{
    width:30% !important;
    flex:0 0 30% !important;
  }
}
@media (max-width:767px){
  /* Hide cols 2, 3, 4 by ID */
  footer.elementor-location-footer .elementor-element-06df3aa,
  footer.elementor-location-footer .elementor-element-aa54d39,
  footer.elementor-location-footer .elementor-element-7255875{
    display:none !important;
  }
  /* Col1 full width, centered */
  footer.elementor-location-footer .elementor-element-c7f950a{
    text-align:center !important;
    align-items:center !important;
    margin-right:0 !important;
    width:100% !important;
    flex:0 0 100% !important;
  }
  /* Wrapper column direction */
  footer.elementor-location-footer .elementor-element-42152bf{
    flex-direction:column !important;
    align-items:center !important;
    text-align:center !important;
  }
  .dt-footer-social{
    justify-content:center;
  }
  /* Bottom footer: stack and center */
  footer.elementor-location-footer .elementor-element-a872d58{
    flex-direction:column !important;
    align-items:center !important;
    text-align:center !important;
    gap:8px !important;
    padding-top:20px !important;
    padding-bottom:20px !important;
  }
}

/* Body offset for fixed header – opt-in via class on first section */
body.dt-header-offset{
  padding-top:var(--dt-header-h);
}

/* Hero height – Elementor e-con overrides */
.e-con.height-hero{min-height:100dvh !important;padding-top:0 !important;padding-bottom:0 !important;}
.e-con.height-hero-below{min-height:calc(100dvh - var(--dt-header-h)) !important;padding-top:var(--dt-header-h) !important;padding-bottom:0 !important;}
@media (max-width: 767px){
  .e-con.height-hero{min-height:85dvh !important;}
  .e-con.height-hero-below{min-height:calc(85dvh - var(--dt-header-h)) !important;}
}
