/* Text Slider 2.0 – Typen: hero | split | cards */
.ts-slider{
  --ts-bg:#fff;--ts-fg:#1a1a1a;--ts-media-bg:#cfcfcf;--ts-h:0px;--ts-dur:6s;--ts-ov:.3;
  --ts-pv-d:3;--ts-pv:var(--ts-pv-d);--ts-gap:6px;--ts-ar:4/5;
  position:relative;display:block;width:100%;background:var(--ts-bg);color:var(--ts-fg);overflow:hidden;outline:none;
  transition:background-color .7s;
}
.ts-slider *{box-sizing:border-box}
.ts-type-hero{--ts-bg:#000;--ts-fg:#fff;--ts-h:720px}
.ts-type-split{--ts-h:700px}
.ts-type-split.ts-inset{--ts-h:0px;--ts-media-bg:transparent}
.ts-type-cards{--ts-bg:transparent}
.ts-font-didot{
  --ts-font-head:"Didot","2E75FA 1 0","2E75FA 1 unhinted 0","Bodoni 72",serif;
  --ts-font-text:"Inter",sans-serif;
}

.ts-slider .ts-viewport{overflow:hidden}
.ts-slider .ts-track{position:relative;display:grid;grid-template-columns:minmax(0,1fr)}
.ts-slider .ts-slide,.ts-slider .ts-text{min-width:0}
.ts-slider .ts-text .ts-title{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
.ts-slider .ts-slide{grid-area:1/1;background:var(--ts-bg);color:var(--ts-fg);opacity:0;visibility:hidden;transition:opacity .7s,visibility 0s .7s}
.ts-slider:not(.ts-ready) .ts-slide:first-child,
.ts-slider .ts-slide.is-active{opacity:1;visibility:visible;transition:opacity .7s}

/* ---------- Texte ---------- */
.ts-slider .ts-text .ts-kicker{margin:0 0 14px!important;padding:0!important;font-family:var(--ts-font-text,inherit)!important;font-weight:300!important;font-style:normal!important;line-height:1.3!important;text-transform:none!important;color:inherit!important}
.ts-slider .ts-text .ts-title{margin:0 0 28px!important;padding:0!important;font-family:var(--ts-font-head,inherit)!important;font-weight:300!important;font-style:normal!important;line-height:1.1!important;text-transform:none!important;color:inherit!important}
.ts-slider .ts-text .ts-body{margin:0 0 32px!important;padding:0!important;max-width:34em;font-family:var(--ts-font-text,inherit)!important;font-size:15px!important;font-weight:300!important;line-height:1.55!important;letter-spacing:.01em!important;color:inherit!important}
.ts-slider .ts-text .ts-body p{margin:0 0 1em!important;padding:0!important;font:inherit!important;color:inherit!important}
.ts-slider .ts-text .ts-body p:last-child{margin-bottom:0!important}

.ts-slider.ts-font-theme .ts-text .ts-kicker{font-size:11px!important;letter-spacing:.18em!important;text-transform:uppercase!important}
.ts-slider.ts-font-theme .ts-text .ts-title{font-size:clamp(28px,3.4vw,48px)!important;letter-spacing:.02em!important}
.ts-slider.ts-font-theme.ts-type-hero .ts-text .ts-title{font-size:clamp(30px,4.6vw,68px)!important;letter-spacing:.06em!important;text-transform:uppercase!important}

.ts-slider.ts-font-didot .ts-text .ts-kicker{font-size:22px!important;letter-spacing:.01em!important}
.ts-slider.ts-font-didot .ts-text .ts-title{font-size:clamp(56px,7vw,104px)!important;font-weight:400!important;font-style:italic!important;line-height:1!important;letter-spacing:0!important}

/* ---------- Button ---------- */
.ts-slider .ts-text .ts-btn{display:inline-block;padding:12px 30px!important;border-radius:999px;text-decoration:none!important;font-family:var(--ts-font-text,inherit)!important;font-size:12px!important;font-weight:400!important;letter-spacing:.14em!important;text-transform:uppercase!important;line-height:1.2!important;transition:opacity .2s,background-color .2s,color .2s}
.ts-slider .ts-text .ts-btn::after{content:" \2192"}
.ts-slider.ts-btn-outline .ts-text .ts-btn{background:transparent!important;color:inherit!important;border:1px solid currentColor!important}
.ts-slider.ts-btn-outline .ts-text .ts-btn:hover{background:var(--ts-fg)!important;color:var(--ts-bg)!important}
.ts-slider.ts-btn-filled .ts-text .ts-btn{background:var(--ts-fg)!important;color:var(--ts-bg)!important;border:0!important}
.ts-slider.ts-btn-filled .ts-text .ts-btn:hover{opacity:.8}
.ts-slider.ts-font-didot .ts-text .ts-btn{font-size:16px!important;letter-spacing:0!important;text-transform:none!important}
.ts-slider.ts-font-didot .ts-text .ts-btn::after{content:none}

/* ---------- Bilder ---------- */
.ts-slider .ts-media,.ts-slider .ts-bgimg{position:relative;background:var(--ts-media-bg)}
.ts-slider .ts-media img,.ts-slider .ts-bgimg img{position:absolute;top:0;left:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;display:block}

/* ---------- Navigation ---------- */
.ts-slider .ts-nav{position:absolute;left:0;bottom:32px;width:100%;display:flex;align-items:center;justify-content:center;gap:14px;z-index:3}
.ts-slider .ts-arrow{width:40px;height:40px;display:grid;place-items:center;background:none;border:1px solid var(--ts-fg);border-radius:50%;color:var(--ts-fg);cursor:pointer;padding:0;opacity:.7;transition:opacity .2s}
.ts-slider .ts-arrow:hover,.ts-slider .ts-arrow:focus-visible{opacity:1}
.ts-slider .ts-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.ts-slider .ts-pause{border-color:transparent;background:color-mix(in srgb,var(--ts-fg) 14%,transparent)}
.ts-slider .ts-pause .ts-i-play{display:none;fill:currentColor;stroke:none}
.ts-slider .ts-pause.is-off .ts-i-pause{display:none}
.ts-slider .ts-pause.is-off .ts-i-play{display:block}
.ts-slider:not(.ts-has-auto) .ts-pause{display:none}

.ts-slider .ts-dots{display:flex;align-items:center;gap:9px;height:40px;padding:0 16px;border-radius:999px;background:color-mix(in srgb,var(--ts-fg) 14%,transparent)}
.ts-slider .ts-dot{position:relative;width:8px;height:8px;padding:0;border:0;border-radius:999px;background:color-mix(in srgb,var(--ts-fg) 40%,transparent);overflow:hidden;cursor:pointer;transition:width .4s,background-color .4s}
.ts-slider .ts-dot.on{background:var(--ts-fg)}
.ts-slider.ts-has-auto .ts-dot.on{width:44px;background:color-mix(in srgb,var(--ts-fg) 40%,transparent)}
.ts-slider .ts-fill{position:absolute;inset:0;background:var(--ts-fg);transform-origin:left center;transform:scaleX(0)}
.ts-slider.ts-has-auto .ts-dot.on .ts-fill{animation:ts-fill var(--ts-dur) linear forwards}
.ts-slider.is-paused .ts-fill{animation-play-state:paused}
@keyframes ts-fill{to{transform:scaleX(1)}}

/* ======================================================================
   TYP: HERO (Vollbild, Text über dem Bild)
   ==================================================================== */
.ts-type-hero .ts-slide{position:relative;display:flex;align-items:center;justify-content:center;min-height:min(var(--ts-h),var(--ts-hmax,90vh))}
.ts-type-hero .ts-bgimg{position:absolute;inset:0}
.ts-type-hero .ts-bgimg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,var(--ts-ov));pointer-events:none}
.ts-type-hero .ts-text{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;max-width:900px;padding:80px 8% 120px}
.ts-type-hero.ts-pos-bottom-left .ts-slide{align-items:flex-end;justify-content:flex-start}
.ts-type-hero.ts-pos-bottom-left .ts-text{align-items:flex-start;text-align:left;max-width:780px;padding:80px 6% 130px}

/* ======================================================================
   TYP: SPLIT (Text + Bild)
   ==================================================================== */
.ts-type-split .ts-slide{display:grid;grid-template-columns:1fr 1fr;min-height:var(--ts-h)}
.ts-type-split .ts-text{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 8%}
.ts-type-split .ts-media{min-height:400px}
.ts-type-split.ts-layout-left .ts-media{order:-1}
.ts-type-split .ts-nav{width:50%}
.ts-type-split.ts-layout-left .ts-nav{left:auto;right:0}

/* Split, eingerückt: Bild mit Rand, Text linksbündig */
.ts-type-split.ts-inset .ts-slide{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:6%;padding:72px 8% 120px}
.ts-type-split.ts-inset.ts-layout-left .ts-slide{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
.ts-type-split.ts-inset .ts-text{align-items:flex-start;text-align:left;padding:0}
.ts-type-split.ts-inset .ts-media{min-height:0;aspect-ratio:3/4;width:100%;max-width:420px;justify-self:center}
.ts-type-split.ts-inset .ts-nav,.ts-type-split.ts-inset.ts-layout-left .ts-nav{left:0;right:auto;width:100%}

/* ======================================================================
   TYP: CARDS (mehrere Bildkarten nebeneinander)
   ==================================================================== */
.ts-type-cards .ts-head{margin:0 0 36px;text-align:left}
.ts-type-cards .ts-head .ts-body{max-width:46em}
.ts-type-cards .ts-track{display:flex;gap:var(--ts-gap);transition:transform .6s cubic-bezier(.4,0,.2,1);touch-action:pan-y;user-select:none}
.ts-slider.ts-type-cards .ts-slide{position:relative;display:block;flex:0 0 calc((100% - (var(--ts-pv) - 1) * var(--ts-gap)) / var(--ts-pv));aspect-ratio:var(--ts-ar);overflow:hidden;background:#8a8a8a;color:#fff;text-decoration:none;opacity:1;visibility:visible;transition:none}
.ts-type-cards .ts-card .ts-media{position:absolute;inset:0}
.ts-type-cards .ts-card .ts-media img{transition:transform .8s cubic-bezier(.2,.6,.2,1)}
.ts-type-cards a.ts-card:hover .ts-media img{transform:scale(1.04)}
.ts-type-cards .ts-card .ts-media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.28);pointer-events:none}
.ts-type-cards .ts-card .ts-text{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}
.ts-slider.ts-type-cards .ts-card .ts-text .ts-title{margin:0!important;font-size:clamp(15px,1.5vw,21px)!important;letter-spacing:.04em!important;text-transform:none!important}
.ts-slider.ts-type-cards .ts-card .ts-text .ts-kicker{margin:0 0 8px!important;font-size:10px!important}
.ts-slider.ts-type-cards .ts-card .ts-text .ts-body{margin:8px 0 0!important;font-size:13px!important;max-width:22em}
.ts-type-cards .ts-nav{position:static;width:auto;margin:28px 0 0;color:var(--ts-fg)}
.ts-type-cards .ts-foot{margin:20px 0 0;text-align:center}
.ts-type-cards .ts-foot a{font-size:12px;letter-spacing:.08em;color:inherit;text-decoration:underline}
.ts-type-cards .ts-card:focus-visible{outline:2px solid var(--ts-fg);outline-offset:-4px}

/* Grid aufgeklappt (Fuß-Link) */
.ts-type-cards.ts-open .ts-viewport{overflow:visible}
.ts-type-cards.ts-open .ts-track{display:grid!important;grid-template-columns:repeat(var(--ts-pv),minmax(0,1fr));gap:var(--ts-gap);transform:none!important;transition:none!important}
.ts-type-cards.ts-open .ts-slide{flex:none!important;width:auto!important;grid-area:auto!important}
.ts-type-cards.ts-open .ts-clone,.ts-type-cards.ts-open .ts-nav{display:none!important}

@media(max-width:1100px){
  .ts-type-cards{--ts-pv:min(var(--ts-pv-d),2)}
}

/* ---------- Mobil ---------- */
@media(max-width:900px){
  .ts-type-hero .ts-text,.ts-type-hero.ts-pos-bottom-left .ts-text{padding:72px 24px 110px}
  .ts-type-split .ts-slide{grid-template-columns:1fr;min-height:0}
  .ts-type-split .ts-media,.ts-type-split.ts-layout-left .ts-media{order:-1;min-height:0;aspect-ratio:4/5}
  .ts-type-split .ts-text{padding:48px 24px 110px}
  .ts-type-split .ts-nav,.ts-type-split.ts-layout-left .ts-nav{left:0;right:0;width:100%}
  .ts-type-split.ts-inset .ts-slide,.ts-type-split.ts-inset.ts-layout-left .ts-slide{grid-template-columns:1fr;gap:28px;padding:32px 24px 110px}
  .ts-type-split.ts-inset .ts-media{aspect-ratio:4/3;max-width:none}
}
@media(max-width:700px){
  .ts-type-cards{--ts-pv:1}
}
@media(prefers-reduced-motion:reduce){
  .ts-slider,.ts-slider .ts-slide,.ts-type-cards .ts-track{transition:none!important}
}
