.elementor-kit-535{--e-global-color-primary:#97221D;--e-global-color-secondary:#171714;--e-global-color-text:#5F5C55;--e-global-color-accent:#97221D;--e-global-color-f898f31:#FFFFFF;--e-global-color-7ad78f4:#FFFFFFE6;--e-global-color-8630d9f:#7E222200;--e-global-color-e8b992ec:#EEE5D4;--e-global-color-8e1ec540:#F7F7F6;--e-global-color-fd3c3af2:#D9D5CC;--e-global-color-fe2ff3ec:#71190F;--e-global-color-ce069230:#F2EEE8;--e-global-color-2ae1d810:#E5E1D9;--e-global-color-2c3f7843:#A9A49A;--e-global-color-955fbfea:#171714;--e-global-typography-primary-font-family:"Figtree";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.1em;--e-global-typography-text-font-family:"Figtree";--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.45em;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.3em;--e-global-typography-2c11d45-font-family:"Figtree";--e-global-typography-2c11d45-font-size:clamp(2.1rem, 5.2vw, 5.25rem);--e-global-typography-2c11d45-font-weight:700;--e-global-typography-2c11d45-text-transform:uppercase;--e-global-typography-2c11d45-line-height:0.94em;--e-global-typography-2c11d45-letter-spacing:-.055em;--e-global-typography-f8a9e51-font-family:"Figtree";--e-global-typography-f8a9e51-font-size:clamp(2rem, 4vw, 3.8rem);--e-global-typography-f8a9e51-font-weight:700;--e-global-typography-f8a9e51-text-transform:uppercase;--e-global-typography-f8a9e51-line-height:1em;--e-global-typography-f8a9e51-letter-spacing:-.045em;--e-global-typography-0009af8-font-size:1.25rem;--e-global-typography-0009af8-font-weight:500;--e-global-typography-0009af8-text-transform:uppercase;--e-global-typography-0009af8-font-style:normal;--e-global-typography-0009af8-line-height:1.3em;--e-global-typography-cdaaf6a-font-size:1.1rem;--e-global-typography-cdaaf6a-font-weight:500;--e-global-typography-cdaaf6a-line-height:1.25em;--e-global-typography-ef2c50b-font-size:0.8rem;--e-global-typography-ef2c50b-font-weight:700;--e-global-typography-ef2c50b-text-transform:uppercase;--e-global-typography-ef2c50b-line-height:1em;--e-global-typography-a119c88-font-weight:400;--e-global-typography-a119c88-text-transform:uppercase;--e-global-typography-a119c88-line-height:1.4em;--e-global-typography-6e7f7dc-font-size:1.1rem;--e-global-typography-6e7f7dc-font-weight:600;--e-global-typography-6e7f7dc-line-height:1.3em;--e-global-typography-22fb25e-font-size:0.8rem;--e-global-typography-22fb25e-text-transform:uppercase;--e-global-typography-22fb25e-line-height:1.5em;--e-global-typography-07776000-font-family:"Figtree";--e-global-typography-07776000-font-size:1rem;--e-global-typography-07776000-font-weight:400;--e-global-typography-07776000-text-transform:none;--e-global-typography-07776000-line-height:1.45em;--e-global-typography-a21701f9-font-family:"Figtree";--e-global-typography-a21701f9-font-size:clamp(1rem, 1.4vw, 1.25rem);--e-global-typography-a21701f9-font-weight:400;--e-global-typography-a21701f9-text-transform:none;--e-global-typography-a21701f9-line-height:1.5em;--e-global-typography-e358ee82-font-family:"Figtree";--e-global-typography-e358ee82-font-size:.76rem;--e-global-typography-e358ee82-font-weight:800;--e-global-typography-e358ee82-text-transform:uppercase;--e-global-typography-e358ee82-line-height:1.4em;--e-global-typography-e358ee82-letter-spacing:.07em;--e-global-typography-6d0ecd74-font-family:"Figtree";--e-global-typography-6d0ecd74-font-size:clamp(1.15rem, 1.7vw, 1.5rem);--e-global-typography-6d0ecd74-font-weight:700;--e-global-typography-6d0ecd74-text-transform:uppercase;--e-global-typography-6d0ecd74-line-height:1.1em;--e-global-typography-8ae857df-font-family:"Figtree";--e-global-typography-8ae857df-font-size:.86rem;--e-global-typography-8ae857df-font-weight:700;--e-global-typography-8ae857df-text-transform:none;--e-global-typography-8ae857df-line-height:1.2em;--e-global-typography-60487763-font-family:"Figtree";--e-global-typography-60487763-font-size:.72rem;--e-global-typography-60487763-font-weight:800;--e-global-typography-60487763-text-transform:uppercase;--e-global-typography-60487763-line-height:1.4em;--e-global-typography-60487763-letter-spacing:.09em;--e-global-typography-bc862700-font-family:"Figtree";--e-global-typography-bc862700-font-size:1.05rem;--e-global-typography-bc862700-font-weight:700;--e-global-typography-bc862700-text-transform:uppercase;--e-global-typography-bc862700-line-height:1.2em;--e-global-typography-1b2a32c9-font-family:"Figtree";--e-global-typography-1b2a32c9-font-size:1.35rem;--e-global-typography-1b2a32c9-font-weight:700;--e-global-typography-1b2a32c9-line-height:1.15em;--e-global-typography-5aecfa65-font-family:"Figtree";--e-global-typography-5aecfa65-font-size:1.25rem;--e-global-typography-5aecfa65-font-weight:700;--e-global-typography-5aecfa65-text-transform:uppercase;--e-global-typography-5aecfa65-line-height:1.15em;--e-global-typography-5aecfa65-letter-spacing:-.02em;--e-global-typography-ff4533b7-font-family:"Figtree";--e-global-typography-ff4533b7-font-size:1.08rem;--e-global-typography-ff4533b7-font-weight:700;--e-global-typography-ff4533b7-line-height:1.25em;--e-global-typography-948a5385-font-family:"Figtree";--e-global-typography-948a5385-font-size:.76rem;--e-global-typography-948a5385-font-weight:800;--e-global-typography-948a5385-text-transform:uppercase;--e-global-typography-948a5385-line-height:1.2em;--e-global-typography-948a5385-letter-spacing:.04em;--e-global-typography-854eaffa-font-family:"Figtree";--e-global-typography-854eaffa-font-size:clamp(1.7rem, 3vw, 3.2rem);--e-global-typography-854eaffa-font-weight:700;--e-global-typography-854eaffa-line-height:0.98em;--e-global-typography-854eaffa-letter-spacing:-.04em;--e-global-typography-3f5d3270-font-family:"Figtree";--e-global-typography-3f5d3270-font-size:.9rem;--e-global-typography-3f5d3270-font-weight:700;--e-global-typography-3f5d3270-line-height:1.4em;--e-global-typography-696decb4-font-family:"Figtree";--e-global-typography-696decb4-font-size:.72rem;--e-global-typography-696decb4-font-weight:800;--e-global-typography-696decb4-text-transform:uppercase;--e-global-typography-696decb4-line-height:1.3em;--e-global-typography-696decb4-letter-spacing:.12em;--e-global-typography-00074d3c-font-family:"Figtree";--e-global-typography-00074d3c-font-size:.86rem;--e-global-typography-00074d3c-font-weight:400;--e-global-typography-00074d3c-line-height:1.5em;--e-global-typography-3d20539c-font-family:"Figtree";--e-global-typography-3d20539c-font-size:clamp(1.6rem, 2.4vw, 2.5rem);--e-global-typography-3d20539c-font-weight:700;--e-global-typography-3d20539c-text-transform:uppercase;--e-global-typography-3d20539c-line-height:1em;--e-global-typography-3d20539c-letter-spacing:-.045em;--e-global-typography-5b462103-font-family:"Figtree";--e-global-typography-5b462103-font-size:clamp(1.7rem, 3vw, 3.2rem);--e-global-typography-5b462103-font-weight:700;--e-global-typography-5b462103-text-transform:uppercase;--e-global-typography-5b462103-line-height:1em;--e-global-typography-5b462103-letter-spacing:-.045em;--e-global-typography-smkzeile-font-family:"Figtree";--e-global-typography-smkzeile-font-size:1rem;--e-global-typography-smkzeile-font-weight:700;--e-global-typography-smkzeile-text-transform:none;--e-global-typography-smkzeile-line-height:1.6em;--e-global-typography-smfzeile-font-family:"Figtree";--e-global-typography-smfzeile-font-size:.78rem;--e-global-typography-smfzeile-font-weight:400;--e-global-typography-smfzeile-text-transform:none;--e-global-typography-smfzeile-line-height:1.5em;color:#595959;font-family:"Figtree", Sans-serif;font-size:1rem;font-weight:400;}.elementor-kit-535 button,.elementor-kit-535 input[type="button"],.elementor-kit-535 input[type="submit"],.elementor-kit-535 .elementor-button{background-color:var( --e-global-color-primary );font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var( --e-global-color-f898f31 );padding:17px 28px 17px 28px;}.elementor-kit-535 e-page-transition{background-color:#FFBC7D;}.elementor-kit-535 p{margin-block-end:1.7em;}.elementor-kit-535 a{color:var( --e-global-color-primary );}.elementor-kit-535 a:hover{color:#C85F12;}.elementor-kit-535 h1{color:var( --e-global-color-secondary );font-size:4.6rem;font-weight:700;line-height:1.15em;}.elementor-kit-535 h2{color:var( --e-global-color-secondary );font-size:2.6rem;font-weight:600;line-height:1.2em;}.elementor-kit-535 h3{color:var( --e-global-color-secondary );font-size:1.5rem;font-weight:600;line-height:1.25em;}.elementor-kit-535 h4{color:var( --e-global-color-secondary );font-size:1.3rem;font-weight:500;line-height:1.3em;}.elementor-kit-535 h5{color:var( --e-global-color-secondary );font-size:1.2rem;font-weight:600;line-height:1.4em;}.elementor-kit-535 h6{color:var( --e-global-color-secondary );font-size:1rem;font-weight:600;line-height:1.4em;}.elementor-kit-535 button:hover,.elementor-kit-535 button:focus,.elementor-kit-535 input[type="button"]:hover,.elementor-kit-535 input[type="button"]:focus,.elementor-kit-535 input[type="submit"]:hover,.elementor-kit-535 input[type="submit"]:focus,.elementor-kit-535 .elementor-button:hover,.elementor-kit-535 .elementor-button:focus{color:var( --e-global-color-f898f31 );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1366px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:90%;}.e-con{--container-max-width:90%;}}@media(max-width:1200px){.elementor-kit-535{--e-global-typography-f8a9e51-font-size:2.7em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:95%;}.e-con{--container-max-width:95%;}}@media(max-width:767px){.elementor-kit-535{--e-global-typography-primary-font-size:1.2em;--e-global-typography-secondary-font-size:1.2em;--e-global-typography-text-font-size:1.1em;--e-global-typography-accent-font-size:1.1em;--e-global-typography-2c11d45-font-size:2.25rem;--e-global-typography-f8a9e51-font-size:2rem;--e-global-typography-cdaaf6a-font-size:1.25rem;--e-global-typography-ef2c50b-font-size:15px;--e-global-typography-a119c88-font-size:1em;--e-global-typography-6e7f7dc-font-size:1.1em;}.elementor-kit-535 h1{font-size:2rem;}.elementor-kit-535 h2{font-size:1.7rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:90%;}.e-con{--container-max-width:90%;}}/* Start custom CSS *//* =========================================================================
   BASIS · Bestand aus der Basisbox (nicht ändern/löschen)
   ========================================================================= */

/* --- Links: einheitliche Übergangszeit -------------------- */
.elementor a { transition: .4s; }

/* --- Fluide Sektions-Abstände (Utility-Klassen) ----------- */
/* Klasse an den Hauptcontainer: -sm kompakt, ohne Zusatz Standard, -lg großzügig */
.section-pad    { padding-block: clamp(2.5rem, 5vw, 5rem); }   /* 40 → 80px */
.section-pad-sm { padding-block: clamp(1.5rem, 3vw, 3rem); }   /* 24 → 48px */
.section-pad-lg { padding-block: clamp(3.5rem, 7vw, 7rem); }   /* 56 → 112px */

/* --- Anker-Offset ----------------------------------------- */
/* Kein CSS nötig. Header-Anker regelt das Snippet „Header-Anker · Offset & fluessiges
   Scrollen“ (liest die Header-Höhe beim Klick live). „Page scroll to id“: Offset 0. */

/* --- Sticky-Header: Shrink, Schatten, Logo ----------------- */

/* 1. Grund-Zustand VOR dem Scrollen (Startgröße & flüssige Animation) */
.dgs-header .sticky-logo img { 
  width: 250px !important; 
  max-width: none !important;
  height: auto !important;
  transition: all 0.3s ease-in-out !important; /* Verhindert das Ruckeln/Springen */
}

/* 2. Sticky-Zustand BEIM Scrollen (Zielgröße: 220px) */
.dgs-header.elementor-sticky--effects .sticky-logo img {
  width: clamp(140px, 15vw, 220px) !important; /* Passt sich auf Mobilgeräten an, max. 220px */
  max-width: none !important;
}

.dgs-header.elementor-sticky--effects {
  box-shadow: 0 0 40px 0 #00000033;
  clip-path: inset(0 0 -100vh 0);   /* Schatten nur nach unten austreten lassen */
}

/* 3. Menüabstände im gescrollten Zustand (extrem flach) */
.dgs-header.elementor-sticky--effects .elementor-nav-menu--main .elementor-item {
  padding-block: clamp(0.1rem, 0.4vw, 0.35rem) !important; /* Sehr flacher Innenabstand */
  line-height: 1 !important; /* Verhindert zusätzliche Höhe durch die Schriftart */
}

/* 1. Sanfter Übergang für die Höhe des gesamten Headers */
.dgs-header {
  transition: min-height 0.3s ease-in-out, padding 0.3s ease-in-out !important;
}

/* 2. Gesamthöhe und Abstände des Haupt-Containers beim Scrollen reduzieren */
.dgs-header.elementor-sticky--effects {
  min-height: 75px !important; /* Stell hier deine Wunsch-Gesamthöhe ein */
  height: auto !important;
  padding-top: 10px !important;   /* Oberer Abstand des gesamten Headers */
  padding-bottom: 10px !important;/* Unterer Abstand des gesamten Headers */
}

/* 3. Elementor-Innencontainer (.e-con-inner) zurücksetzen */
.dgs-header.elementor-sticky--effects > .e-con-inner {
  min-height: unset !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* --- Mobiles Klappmenü: Abstand zum Header ---------------- */
.dgs-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container { margin-top: 30px; }
.dgs-header.elementor-sticky--effects nav.elementor-nav-menu--dropdown.elementor-nav-menu__container { margin-top: 20px; }

/* --- Aktiver Menüpunkt in der Markenfarbe ----------------- */
.dgs-header .current-page-ancestor > a,
.dgs-header .current-menu-ancestor > a { color: var(--e-global-color-primary) !important; }


/* --- JetTabs-Akkordeon: fluessiges Schliessen -------- */
/* JetTabs setzt beim Wechsel style.height hart von auto auf 0 - von auto aus
   ist height nicht animierbar, es klappt ruckartig zu. Das Snippet
   "JetTabs-Akkordeon fluessig schliessen" friert vorher die Pixelhoehe ein.
   Transition unter 500 ms halten - danach setzt JetTabs height:auto. */
.jet-toggle__content { transition: height .42s cubic-bezier(.22,.61,.36,1); }
.jet-toggle.is-closing > .jet-toggle__content { visibility: visible !important; overflow: hidden; }
.jet-toggle.is-closing > .jet-toggle__content > .jet-toggle__content-inner { opacity: 0; transition: opacity .3s ease; }
@media (prefers-reduced-motion: reduce) { .jet-toggle__content { transition: none; } }

/* =========================================================================
   SCHMÖLZER · Bausteine zur HTML-Vorlage (Tischlerei Schmoelzer Website komplett.html)
   ========================================================================= */

/* --- Sektions-Rhythmus der Vorlage ----- */
/* Vorlage: padding-block clamp(72px,10vw,140px) - groesser als section-pad-lg */
.sm-section { padding-block: clamp(72px, 10vw, 140px); }

/* --- Eyebrow, Textlink, Grundfarben ----- */
.sm-eyebrow { color: var(--e-global-color-primary); }
/* --- Textlink: Pfeil und wachsender Unterstrich ----- */
.elementor .sm-textlink .elementor-heading-title, .elementor .sm-textlink a { color: var(--e-global-color-primary); font-weight: 700; text-decoration: none; }
/* :not(:has(a)) noetig: mit Link rendert Elementor ein <a> im Titel, sonst gaebe es zwei Pfeile */
.sm-textlink a, .sm-textlink .elementor-heading-title:not(:has(a)) { position: relative; display: inline-block; transition: color .25s; }
.sm-textlink a::after, .sm-textlink .elementor-heading-title:not(:has(a))::after { content: ' →'; }
.sm-textlink a::before, .sm-textlink .elementor-heading-title:not(:has(a))::before { content: ''; position: absolute; left: 0; right: 1.1em; bottom: -2px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: 0 50%; transition: transform .38s cubic-bezier(.2,.7,.2,1); }
.sm-textlink:hover a::before, .sm-textlink:hover .elementor-heading-title:not(:has(a))::before, .sm-news-card:hover .sm-textlink a::before, .sm-job:hover .sm-textlink a::before, .sm-feature:hover .sm-textlink a::before { transform: scaleX(1); }
.sm-muted { color: var(--e-global-color-text); }

/* --- Button: Fuellung faehrt von unten hoch ----- */
/* ::before statt Hintergrundwechsel, damit der Verlauf animierbar bleibt */
.sm-btn .elementor-button { position: relative; isolation: isolate; overflow: hidden; border-radius: 0; min-height: 46px; transition: color .3s, border-color .3s, transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.sm-btn .elementor-button::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--e-global-color-fe2ff3ec); transform: scaleY(0); transform-origin: 50% 100%; transition: transform .42s cubic-bezier(.2,.7,.2,1); }
.sm-btn--hell .elementor-button::before { background: var(--e-global-color-ce069230); }
@media (hover: hover) {
  .sm-btn .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(15,12,9,.16); }
  .sm-btn .elementor-button:hover::before { transform: scaleY(1); }
}
.sm-btn .elementor-button:focus-visible::before { transform: scaleY(1); }
.sm-btn .elementor-button:active { transform: translateY(0); box-shadow: none; }

/* --- HERO: Slideshow, Verlauf, Pagination ----- */
.sm-hero { min-height: min(820px, 84vh); overflow: hidden; }
.sm-hero > .e-con-inner { position: static; }
.sm-hero > .elementor-background-overlay { background-image: linear-gradient(90deg, rgba(15,12,9,.78) 0%, rgba(15,12,9,.5) 48%, rgba(15,12,9,.14) 82%); }
.sm-hero .sm-hero-dots { position: absolute; left: 0; right: 0; bottom: clamp(28px, 5vh, 56px); z-index: 3; display: flex; gap: .6rem; justify-content: center; }
.sm-hero .sm-hero-dot { width: 38px; height: 4px; border: 0; padding: 0; background: rgba(255,255,255,.45); cursor: pointer; transition: background .3s; position: relative; }
.sm-hero-dot::before { content: ""; position: absolute; inset: -22px 0; }
.sm-hero-dot:hover { background: rgba(255,255,255,.8); }
.sm-hero-dot.is-active { background: #fff; }

/* --- WOHNWELTEN: Kachelband, das beim Hover aufzieht ----- */
/* flex-grow statt Breitenwechsel: nur so bleibt die Reihe luecklos */
.sm-world { min-width: 0; overflow: hidden; transition: flex-grow .5s cubic-bezier(.2,.7,.2,1); }
/* Verlauf per ::after statt Elementor-Overlay: das Overlay-DIV entfaellt bei transparenter Farbe */
.sm-world { position: relative; }
.sm-world::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent, rgba(0,0,0,.68)); pointer-events: none; z-index: 0; }
.sm-world > * { position: relative; z-index: 1; }
.sm-world-label, .sm-world-intro { text-shadow: 0 1px 12px rgba(0,0,0,.5); }
.sm-world-intro, .sm-world .sm-chip { max-height: 0; opacity: 0; overflow: hidden; margin-top: 0; transition: .4s; }
.sm-chip .elementor-heading-title { display: inline-block; background: var(--e-global-color-primary); color: #fff; padding: .5rem .85rem; }
@media (hover: hover) {
  .sm-world-grid:hover .sm-world { flex-grow: .78; }
  .sm-world-grid .sm-world:hover { flex-grow: 1.88; }
  .sm-world:hover .sm-world-intro { max-height: 9rem; opacity: 1; margin-top: .55rem; }
  .sm-world:hover .sm-chip { max-height: 4rem; opacity: 1; margin-top: .9rem; }
}
.sm-world:focus-within .sm-world-intro { max-height: 9rem; opacity: 1; margin-top: .55rem; }
.sm-world:focus-within .sm-chip { max-height: 4rem; opacity: 1; margin-top: .9rem; }
@media (max-width: 1100px) { .sm-world { flex: 0 0 calc(33.3333% - 6.667px); } .sm-world-grid:hover .sm-world, .sm-world-grid .sm-world:hover { flex-grow: 1; } }
@media (max-width: 780px)  { .sm-world { flex: 0 0 calc(50% - 5px); } }

/* --- KONZEPT: 4-Spalten-Raster mit hohem Bild links ----- */
.sm-konzept-tall  { grid-area: 1 / 1 / 3 / 2; min-height: 520px; }
.sm-konzept-copy  { grid-area: 1 / 2 / 2 / 5; }
.sm-konzept-wide  { grid-area: 2 / 2 / 3 / 4; min-height: 260px; }
.sm-konzept-small { grid-area: 2 / 4 / 3 / 5; min-height: 260px; }
.sm-ablauf { margin-top: 3.6rem; border-top: 1px solid var(--e-global-color-fd3c3af2); }
.sm-step { padding: 2rem 1rem 0 0; }
@media (max-width: 900px) {
  .sm-konzept-copy  { grid-area: 1 / 1 / 2 / 3; }
  .sm-konzept-tall  { grid-area: 2 / 1 / 3 / 3; min-height: 380px; }
  .sm-konzept-wide  { grid-area: 3 / 1 / 4 / 2; }
  .sm-konzept-small { grid-area: 3 / 2 / 4 / 3; }
}

/* --- TISCHLEREI & SCHAURAUM: zwei weisse Karten im roten Band ----- */
.sm-feature { overflow: hidden; transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s; }
.sm-feature-img { height: clamp(240px, 26vw, 340px); transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.sm-feature .sm-textlink { margin-top: auto; padding-top: 1.4rem; }
@media (hover: hover) {
  .sm-feature:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(15,12,9,.10); }
  .sm-feature:hover .sm-feature-img { transform: scale(1.04); }
}

/* --- REFERENZEN: waagrechte Schiene, Karte zieht beim Hover auf ----- */
.sm-rail-nav { display: flex; gap: .5rem; flex: 0 0 auto; }
.sm-rail-btn { width: 46px; height: 46px; box-sizing: border-box; padding: 0; display: grid; place-items: center; background: transparent; border: 1px solid var(--e-global-color-primary); color: var(--e-global-color-primary); cursor: pointer; font-size: 1.1rem; transition: background .28s, color .28s, transform .32s cubic-bezier(.2,.7,.2,1); }
.sm-rail-btn:hover { background: var(--e-global-color-primary); color: #fff; transform: translateY(-2px); }
.sm-rail-btn:active { transform: translateY(0); }
/* Theme faerbt geklickte Buttons orange - Fokus/Aktiv daher hier festgelegt */
.elementor .sm-rail-btn:focus, .elementor .sm-rail-btn:focus-visible, .elementor .sm-rail-btn:active { background-color: var(--e-global-color-primary); border-color: var(--e-global-color-primary); color: #fff; outline: 0; box-shadow: none; }
.sm-ref-rail .jet-listing-grid__items { display: flex; gap: 12px; overflow-x: auto; scrollbar-width: none; }
.sm-ref-rail .jet-listing-grid__items::-webkit-scrollbar { display: none; }
.sm-ref { flex: 0 0 calc(33.3333% - 8px); min-height: 400px; overflow: hidden; transition: flex-basis .5s cubic-bezier(.2,.7,.2,1); }
.sm-ref { position: relative; }
.sm-ref::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent, rgba(0,0,0,.78)); pointer-events: none; z-index: 0; }
.sm-ref > * { position: relative; z-index: 1; }
.sm-ref-cat, .sm-ref-title, .sm-ref-intro { text-shadow: 0 1px 12px rgba(0,0,0,.5); }
.sm-ref-intro, .sm-ref .sm-chip { max-height: 0; opacity: 0; overflow: hidden; margin-top: 0; transition: .4s; }
@media (hover: hover) {
  .sm-ref-rail .jet-listing-grid__item:hover ~ .jet-listing-grid__item .sm-ref, .sm-ref-rail .jet-listing-grid__items:hover .sm-ref { flex-basis: auto; }
  .sm-ref-rail .jet-listing-grid__item:hover { flex-basis: calc(62.6667% - 15.04px); }
  .sm-ref:hover .sm-ref-intro { max-height: 9rem; opacity: 1; margin-top: .6rem; }
  .sm-ref:hover .sm-chip { max-height: 4rem; opacity: 1; margin-top: .9rem; }
}
@media (max-width: 1050px) {
  .sm-ref { flex: 0 0 calc(50% - 6px); }
  .sm-ref-rail .jet-listing-grid__item, .sm-ref-rail .jet-listing-grid__item:hover { flex-basis: calc(50% - 6px); }
}
@media (max-width: 620px) { .sm-ref { flex: 0 0 calc(85% - 6px); } }

/* --- KARRIERE: rotes Textfeld faehrt ueber das Bild ----- */
.sm-job { overflow: hidden; transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s; }
.sm-job-media { position: relative; overflow: hidden; }
.sm-job-img { height: 200px; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.sm-job-more { position: absolute; inset: 0; background: var(--e-global-color-primary); color: #fff; display: flex; flex-direction: column; justify-content: center; padding: clamp(18px, 2vw, 26px); transform: translateY(100%); transition: transform .4s; }
.sm-job:hover .sm-job-more, .sm-job:focus-within .sm-job-more { transform: none; }
.sm-job-facts { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .7rem; }
.sm-job-fact .elementor-heading-title::before { content: "· "; color: var(--e-global-color-primary); font-weight: 800; }
.sm-job .sm-textlink { margin-top: auto; padding-top: 1.4rem; }
@media (hover: hover) { .sm-job:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(15,12,9,.10); } }

/* --- NEWS ----- */
.sm-news-head { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.sm-news-card { overflow: hidden; transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s; }
.sm-news-img { height: clamp(200px, 20vw, 250px); transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.sm-news-card .sm-textlink { margin-top: auto; padding-top: 1.2rem; }
@media (hover: hover) {
  .sm-news-card:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(15,12,9,.10); }
  .sm-news-card:hover .sm-news-img { transform: scale(1.04); }
}

/* --- PARTNER: Graustufen-Band, Farbe erst beim Hover ----- */
/* Die zweite Logoreihe erzeugt das Snippet zur Laufzeit, damit der Lauf nahtlos ist */
.sm-brand-head { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.sm-marquee { position: relative; overflow: hidden; padding: 2.2rem 0; margin-top: 2.5rem; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.sm-marquee-track { display: flex !important; width: max-content !important; align-items: center; gap: clamp(3rem, 6vw, 6rem); animation: smBrandScroll 55s linear infinite; }
.sm-marquee:hover .sm-marquee-track { animation-play-state: paused; }
.sm-marquee-track .sm-brand { flex: 0 0 auto; width: 180px; }
.sm-marquee-track .sm-brand img { width: 100%; height: 76px; object-fit: contain; filter: grayscale(1); opacity: .72; transition: filter .4s, opacity .4s, transform .4s cubic-bezier(.2,.7,.2,1); }
.sm-marquee-track .sm-brand img:hover { filter: none; opacity: 1; transform: scale(1.06); }
@keyframes smBrandScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* --- UNTERNEHMEN: zweispaltig mit Logo-Wasserzeichen ----- */
.sm-intro-grid { display: grid; grid-template-columns: .9fr 1.2fr; gap: clamp(50px, 8vw, 120px); align-items: stretch; }
.sm-intro-grid > .e-con:first-child { align-self: start; }
.sm-intro-grid > .e-con:last-child { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; }
.sm-unternehmen { position: relative; overflow: hidden; padding-bottom: clamp(150px, 18vw, 240px); }
.sm-unternehmen > .e-con-inner { position: relative; z-index: 1; }
@media (max-width: 900px) { .sm-intro-grid { grid-template-columns: 1fr; } }

/* --- KONTAKT: weisse Karte zieht in die Sektion darueber ----- */
.sm-kontakt { padding-top: 0; padding-bottom: 90px; }
.sm-kontakt-card { position: relative; z-index: 1; margin-top: calc(-1 * clamp(90px, 11vw, 150px)); display: grid; grid-template-columns: 1fr .72fr; }
.sm-kontakt-copy { padding: clamp(34px, 6vw, 80px); }
.sm-kontakt-accent { position: relative; overflow: hidden; padding: clamp(30px, 4vw, 48px); }
.sm-kontakt-accent > * { position: relative; z-index: 1; }
.sm-kontakt-list a { text-decoration: none; font-weight: 700; transition: color .25s, transform .25s cubic-bezier(.2,.7,.2,1); display: inline-block; }
.sm-kontakt-list a:hover { transform: translateX(3px); color: var(--e-global-color-primary); }
.sm-kontakt-accent .elementor-field-group > label { font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,.82); }
.sm-kontakt-accent .elementor-field-textual { color: #fff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.35); border-radius: 0; padding: .68rem .8rem; transition: border-color .25s, background .25s; }
.sm-kontakt-accent .elementor-field-textual::placeholder { color: rgba(255,255,255,.55); }
.sm-kontakt-accent .elementor-mark-required { color: rgba(255,255,255,.7); }
/* !important noetig: Browser und Theme setzen einen eigenen dunklen Fokusring */
.sm-kontakt-accent .elementor-field-textual:focus, .sm-kontakt-accent .elementor-field-textual:focus-visible { border-color: #fff !important; background: rgba(255,255,255,.18); outline: 0 !important; box-shadow: none !important; }
.sm-kontakt-accent select.elementor-field-textual option { color: var(--e-global-color-955fbfea); }
.sm-kontakt-accent .elementor-field-type-acceptance, .sm-kontakt-accent .elementor-message { color: var(--e-global-color-ce069230); }
.sm-kontakt-accent .elementor-button[type="submit"] { background: #fff; color: var(--e-global-color-primary); border: 1px solid #fff; border-radius: 0; font-size: .8rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: .85rem 1.6rem; }
@media (max-width: 900px) { .sm-kontakt-card { grid-template-columns: 1fr; } }

/* --- Wasserzeichen (Logo-Signet) ----- */

/* --- Scroll-Reveal ----- */
.sm-reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.sm-reveal.is-visible { opacity: 1; transform: none; }

/* --- Lesefortschritt am oberen Rand ----- */
.sm-progress { position: fixed; left: 0; top: 0; height: 2px; width: 100%; transform: scaleX(0); transform-origin: 0 50%; background: var(--e-global-color-primary); z-index: 60; pointer-events: none; transition: transform .12s linear; }

/* --- Randbutton Eröffnungswoche ----- */
.sm-opening-edge { display: none; position: fixed; right: 0; top: 50%; z-index: 900; width: auto; max-width: 300px; }
.sm-opening-edge.sm-opening-enabled { display: block; }
.sm-opening-edge .elementor-button { box-shadow: 0 4px 16px rgba(23,23,20,.19); }
@media (max-width: 767px) {
  .elementor .sm-opening-edge { top: auto; bottom: max(12px, env(safe-area-inset-bottom)); right: 10px; left: auto; width: max-content; max-width: calc(100vw - 20px); }
  .sm-opening-edge .elementor-button { display: inline-block; font-size: 11px; letter-spacing: .04em; padding: 10px 14px; }
  body:has(.sm-opening-enabled) { padding-bottom: 64px; }
  body:has(.sm-opening-enabled) .elementor-element-e30625a { bottom: 78px; }
  body:has(#kontakt :focus) .sm-opening-edge { visibility: hidden; }
}

/* --- Info-Popup Eröffnungswoche ----- */
#elementor-popup-modal-992 .dialog-widget-content { max-height: 92dvh; overflow: auto; }
#elementor-popup-modal-992 .dialog-close-button { padding: 12px; top: 4px; right: 4px; }
#elementor-popup-modal-992 a:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }

/* --- Ueberschriften-Widget: Absatzabstand des Themes raus ----- */
/* Elementor rendert Ueberschriften als <p>; das Theme haengt 1.7em Abstand an */
.elementor .elementor-heading-title { margin-block: 0; }

/* --- FOOTER nach Vorlage ----- */
.sm-footer a { text-decoration: none; transition: color .25s; }
.sm-footer a:hover { color: #fff; }
.sm-footer-bottom { border-top: 1px solid rgba(255,255,255,.14); margin-top: clamp(40px,5vw,64px); padding-top: 1.4rem; }
/* Elementor gibt Kind-Containern width:100%; sonst bricht die Fusszeile um */
.elementor .sm-footer-bottom > .e-con { width: auto; flex: 0 0 auto; }
.elementor .sm-footer-note .elementor-heading-title { max-width: 330px; }


/* --- Zugänglichkeit und reduzierte Bewegung ----- */
.elementor a:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  .sm-reveal { opacity: 1; transform: none; }
  .sm-marquee-track { animation: none; }
  .sm-progress { display: none; }
  .sm-world-intro, .sm-world .sm-chip, .sm-ref-intro, .sm-ref .sm-chip { max-height: none; opacity: 1; }
  .sm-hero .elementor-background-slideshow__slide__image { animation: none !important; }
}
/* --- Textbreiten nach Vorlage ----- */
/* !important noetig: Elementor setzt max-width:100% am Widget-Wrapper */
.elementor .sm-hero-title .elementor-heading-title { max-width: 860px !important; }
.elementor .sm-hero-lead, .elementor .sm-lead, .elementor .sm-konzept-text { max-width: 720px !important; }
.elementor .sm-feature-text { max-width: 460px !important; }
.sm-hero .elementor-widget-html { width: 100%; }

/* --- Flex-Kinder in Reihen ----- */
/* Elementor gibt jedem Container width:100%; in einer Reihe muss das weg, sonst bricht sie um */
.elementor .e-con.sm-world, .elementor .e-con.sm-feature { flex-basis: 0; width: auto; }
.sm-world-head > .e-con, .sm-ref-head > .e-con, .sm-news-head > .e-con, .sm-brand-head > .e-con, .sm-karriere-head > .e-con { width: auto; }
.sm-world-head > .e-con:first-child, .sm-news-head > .e-con:first-child, .sm-brand-head > .e-con:first-child { flex: 1 1 auto; }
.sm-ref-head > .e-con:first-child { flex: 1 1 auto; }

/* --- JetEngine-Listen: Raster und Schiene ----- */
/* JetEngine legt ein eigenes Item-DIV um jede Kachel; Groesse und Hover muessen dorthin */
.sm-ref-rail .jet-listing-grid__item { flex: 0 0 calc(33.3333% - 8px); transition: flex-basis .5s cubic-bezier(.2,.7,.2,1); }
.sm-ref-rail .jet-listing-grid__item > .sm-ref { height: 100%; }
.sm-jobs .jet-listing-grid__items, .sm-news-grid .jet-listing-grid__items { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 26px); }
.sm-jobs .jet-listing-grid__item, .sm-news-grid .jet-listing-grid__item { display: flex; }
.sm-jobs .jet-listing-grid__item > .sm-job, .sm-news-grid .jet-listing-grid__item > .sm-news-card { width: 100%; }
@media (max-width: 1050px) { .sm-jobs .jet-listing-grid__items, .sm-news-grid .jet-listing-grid__items { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px)  { .sm-jobs .jet-listing-grid__items, .sm-news-grid .jet-listing-grid__items { grid-template-columns: 1fr; } }

/* --- Footer-Spalten ----- */
.elementor .e-con.sm-footer-grid > .e-con { width: auto; flex-basis: 0; }
.sm-footer-logo img { width: 230px; max-width: 100%; height: auto; }
@media (max-width: 1050px) { .elementor .e-con.sm-footer-grid > .e-con { flex-basis: calc(50% - 30px); } }
@media (max-width: 767px)  { .elementor .e-con.sm-footer-grid > .e-con { flex-basis: 100%; } }

/* --- Vorrang vor Elementor- und JetEngine-CSS ----- */
/* Elementor setzt die Schriftgroesse ueber die globale Rolle mit hoeherer Spezifitaet */
.elementor .sm-feature-title .elementor-heading-title { font-size: clamp(1.6rem, 2.4vw, 2.5rem); }
.elementor .sm-kontakt-copy .sm-feature-title .elementor-heading-title { font-size: clamp(1.7rem, 3vw, 3.2rem); }

/* !important noetig: JetEngine setzt am Item eine eigene Breite, die Karte muss die Spalte fuellen */
.sm-news-grid .jet-listing-grid__items > .jet-listing-grid__item,
.sm-jobs .jet-listing-grid__items > .jet-listing-grid__item { width: 100% !important; max-width: none !important; display: flex; }
/* JetEngine legt zusaetzlich einen .elementor-Wrapper um die Kachel */
.sm-news-grid .jet-listing-grid__item > .elementor,
.sm-jobs .jet-listing-grid__item > .elementor,
.sm-ref-rail .jet-listing-grid__item > .elementor { width: 100%; display: flex; }
.sm-news-grid .jet-listing-grid__item .e-con,
.sm-jobs .jet-listing-grid__item .e-con { width: 100% !important; }

/* --- Referenz-Schiene: eine Reihe statt Umbruch ----- */
.sm-ref-rail .jet-listing-grid__items { flex-wrap: nowrap !important; }
.sm-ref-rail .jet-listing-grid__items > .jet-listing-grid__item { flex: 0 0 calc(33.3333% - 8px); width: auto !important; max-width: none !important; display: flex; transition: flex-basis .5s cubic-bezier(.2,.7,.2,1); }
.sm-ref-rail .jet-listing-grid__item .e-con.sm-ref { width: 100% !important; }
.elementor .e-con.sm-ref { flex: 1 1 auto; width: 100%; }
@media (hover: hover) {
  .sm-ref-rail .jet-listing-grid__items:hover > .jet-listing-grid__item { flex-basis: calc(26% - 6.24px); }
  .sm-ref-rail .jet-listing-grid__items > .jet-listing-grid__item:hover { flex-basis: calc(62.6667% - 15.04px); }
}
@media (max-width: 1050px) { .sm-ref-rail .jet-listing-grid__items > .jet-listing-grid__item, .sm-ref-rail .jet-listing-grid__items:hover > .jet-listing-grid__item, .sm-ref-rail .jet-listing-grid__items > .jet-listing-grid__item:hover { flex-basis: calc(50% - 6px); } }
@media (max-width: 620px)  { .sm-ref-rail .jet-listing-grid__items > .jet-listing-grid__item, .sm-ref-rail .jet-listing-grid__items:hover > .jet-listing-grid__item, .sm-ref-rail .jet-listing-grid__items > .jet-listing-grid__item:hover { flex-basis: calc(85% - 6px); } }

/* --- Schienen-Pfeile: Umriss statt Fuellung ----- */
.elementor .sm-rail-btn { background-color: transparent; color: var(--e-global-color-primary); border: 1px solid var(--e-global-color-primary); }
.elementor .sm-rail-btn:hover { background-color: var(--e-global-color-primary); color: #fff; }
/* --- HERO-Pagination: Bezugsrahmen ist die Sektion, nicht das Widget ----- */
.sm-hero .elementor-widget-html, .sm-hero > .e-con-inner { position: static; }
.sm-hero .sm-hero-dots { position: absolute; left: 0; right: 0; bottom: clamp(28px, 5vh, 56px); z-index: 5; display: flex; gap: .6rem; justify-content: center; }
.sm-hero .sm-hero-dot { display: block; width: 38px; height: 4px; min-height: 4px; padding: 0; border: 0; border-radius: 0; background: rgba(255,255,255,.45); cursor: pointer; position: relative; transition: background .3s; }
.sm-hero .sm-hero-dot::before { content: ''; position: absolute; inset: -22px 0; }
.sm-hero .sm-hero-dot:hover { background: rgba(255,255,255,.8); }
.sm-hero .sm-hero-dot.is-active { background: #fff; }

/* --- Kopfbereiche: zwei Spalten statt Umbruch ----- */
.elementor .e-con.sm-world-head > .e-con, .elementor .e-con.sm-ref-head > .e-con, .elementor .e-con.sm-news-head > .e-con, .elementor .e-con.sm-brand-head > .e-con, .elementor .e-con.sm-karriere-head > .e-con { width: auto; flex: 1 1 0; }
@media (max-width: 900px) { .elementor .e-con.sm-world-head > .e-con, .elementor .e-con.sm-ref-head > .e-con, .elementor .e-con.sm-news-head > .e-con, .elementor .e-con.sm-brand-head > .e-con, .elementor .e-con.sm-karriere-head > .e-con { flex: 1 1 100%; } }

.elementor .sm-rail-btn { width: 46px; height: 46px; box-sizing: border-box; padding: 0; font-size: 1.1rem; }

/* --- ANMELDESEITE Eröffnungswoche ----- */
.sm-anmeldung-hero { padding-bottom: clamp(40px,6vw,70px); position: relative; overflow: hidden; }
.sm-anmeldung { padding-top: 0; }
.sm-kontakt-card.sm-card-flat { margin-top: 0; background: var(--e-global-color-accent, #fff); background-color: #fff; }
.sm-frist { color: var(--e-global-color-ce069230); }
.sm-frist-titel { font-size: 1.25rem; font-weight: 800; margin: 0 0 .5rem; }
.sm-frist a { color: #fff; text-decoration: underline; }
.sm-opening > * { position: relative; z-index: 1; }
/* --- Einladung: Programmliste ----- */
.sm-programm-item .elementor-heading-title { position: relative; padding-left: 1.4rem; }
.sm-programm-item .elementor-heading-title::before { content: ''; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; background: var(--e-global-color-primary); }
.sm-programm-grid > .e-con { width: auto; }
@media (max-width: 900px) { .sm-programm-grid { flex-direction: column; } .sm-programm-grid > .e-con { width: 100%; } }
/* --- Fusszeile darf mobil umbrechen ----- */
.elementor .sm-footer-bottom > .e-con { max-width: 100%; }
.sm-footer-bottom .e-con { flex-wrap: wrap; }
@media (max-width: 767px) { .elementor .sm-footer-bottom > .e-con { flex: 1 1 100%; width: 100%; } }
/* --- Sprungziele unter dem Sticky-Header ----- */
#konzept, #kontakt, [id^="sm-"] { scroll-margin-top: 140px; }

/* --- Responsiv nach Vorlage ----- */
@media (max-width: 1100px) { .elementor .e-con.sm-world { flex: 0 0 calc(33.3333% - 6.7px); } }
@media (max-width: 1050px) { .sm-ref-rail .jet-listing-grid__items > .jet-listing-grid__item { flex: 0 0 calc(50% - 6px); } }
@media (max-width: 900px) {
  .elementor .e-con.smduo, .sm-duo { flex-direction: column; }
  .elementor .e-con.sm-feature { flex-basis: auto; width: 100%; }
  .sm-programm-grid { flex-direction: column; }
}
@media (max-width: 780px) { .elementor .e-con.sm-world { flex: 0 0 calc(50% - 5px); } }
@media (max-width: 620px) {
  .sm-world-grid { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1rem; scrollbar-width: none; }
  .sm-world-grid::-webkit-scrollbar { display: none; }
  .elementor .e-con.sm-world { flex: 0 0 78vw; min-width: 78vw; scroll-snap-align: start; }
  .sm-ref-rail .jet-listing-grid__items > .jet-listing-grid__item { flex: 0 0 84%; }
  .elementor .sm-kontakt-accent .elementor-field-group { width: 100%; }
}
/* --- Kopfleiste mobil: Oeffnungszeiten ausblenden, sonst vierzeiliger Umbruch ----- */
@media (max-width: 1024px) { .elementor-element-09a5a07 { display: none; } }

/* --- Job-Detailseite ----- */
.sm-job-hero { padding-top: clamp(56px,7vw,110px); padding-bottom: clamp(40px,5vw,70px); }
.sm-job-facts .elementor-heading-title { font-weight: 700; }
.sm-job-fact .elementor-heading-title::before { content: '· '; color: var(--e-global-color-primary); font-weight: 800; }
.sm-job-grid > .e-con { width: auto; }
.sm-prose { max-width: 760px; }
.sm-prose h2 { font-size: clamp(1.25rem,1.8vw,1.6rem); line-height: 1.15; letter-spacing: -.02em; margin: 2.2rem 0 .7rem; }
.sm-prose h2:first-child { margin-top: 0; }
.sm-prose p { margin: 0 0 1rem; }
.sm-prose ul { margin: 0 0 1.2rem; padding-left: 1.2rem; }
.sm-prose li { margin-bottom: .35rem; }
.sm-prose li::marker { color: var(--e-global-color-primary); }
@media (max-width: 900px) { .sm-job-grid { flex-direction: column; } .sm-job-grid > .e-con { width: 100%; } }
/* --- Job-Detail: Bewerbungsbox haftet, mobil nicht ----- */
@media (min-width: 768px) { .elementor .e-con.sm-job-side { position: sticky; top: 130px; align-self: flex-start; } }
/* --- Adminleiste ueber dem Header, sonst verdeckt er ihre Untermenues ----- */
#wpadminbar, #wpadminbar .ab-sub-wrapper { z-index: 999999; }
/* --- Rechtsseiten ----- */
.sm-legal-hero { padding-bottom: clamp(30px,4vw,50px); }
.sm-legal-body { padding-top: clamp(40px,5vw,70px); }
.sm-prose a { color: var(--e-global-color-primary); text-decoration: underline; text-underline-offset: 3px; }
.sm-prose h3 { font-size: 1.1rem; margin: 1.6rem 0 .5rem; }
/* --- Konzeptraster einspaltig auf dem Handy ----- */
@media (max-width: 767px) {
  .sm-konzept-grid > .e-con { grid-area: auto; }
  .sm-konzept-copy { order: -1; }
  .sm-konzept-tall { min-height: 320px; }
  .sm-konzept-wide, .sm-konzept-small { min-height: 220px; }
  .sm-step { padding: 1.4rem 0 0 0; }
}
/* --- Footer: Tage links, Zeiten rechts ----- */
.sm-oeffnung { color: var(--e-global-color-2ae1d810); font-size: .86rem; line-height: 1.7; max-width: 240px; }
.sm-oeffnung > div { display: flex; justify-content: space-between; gap: 1.2rem; }/* End custom CSS */