
.swr-schwimmhalle-page{
    --pool-blue:#1689c9;
    --pool-dark:#002349;
    --pool-soft:#f3f8fb;
    --pool-border:#d6e2e9;
    width:100%;
    max-width:1200px;
    margin:0 auto;
    color:#274554;
}
.swr-schwimmhalle-page *{box-sizing:border-box}
.swr-pool-section{
    margin:0;
    padding:42px 34px 48px;
    scroll-margin-top:110px
}
.swr-pool-section:nth-child(odd){background:#fff}
.swr-pool-section:nth-child(even){background:#f4f8fb}
.swr-pool-section+.swr-pool-section{border-top:1px solid #e8eef2}
.swr-pool-section-title{
    margin:0 0 24px!important;
    color:#002349!important;
    font-size:clamp(30px,3vw,42px)!important;
    line-height:1.15!important;
    font-weight:700!important;
}
.headings-centered .swr-pool-section-title{text-align:center!important}
.swr-pool-subtitle{
    margin:26px 0 14px!important;
    color:#002349!important;
    font-size:23px!important;
}
.swr-pool-lead{font-size:17px;line-height:1.7;max-width:900px}
.swr-pool-copy{font-size:15px;line-height:1.72;min-width:0}
.swr-pool-copy p:first-child{margin-top:0}
.swr-pool-split{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:start}
.swr-pool-media img{display:block;width:100%;height:auto;max-height:460px;object-fit:cover}
.swr-pool-gallery{display:grid;gap:14px;margin:18px 0 24px}
.swr-pool-gallery.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.swr-pool-gallery.two,.swr-pool-gallery.kids{grid-template-columns:repeat(2,minmax(0,1fr))}
.swr-pool-gallery img{display:block;width:100%;height:220px;object-fit:cover}
.swr-pool-price-wrap{overflow-x:auto;border:1px solid var(--pool-border)}
.swr-pool-price{width:100%!important;border-collapse:collapse!important;background:#fff!important}
.swr-pool-price thead th{background:#002349!important;color:#fff!important;padding:14px 16px!important;text-align:left!important}
.swr-pool-price tbody th,.swr-pool-price tbody td{padding:14px 16px!important;border-bottom:1px solid var(--pool-border)!important;text-align:left!important}
.swr-pool-price tbody tr:nth-child(even){background:var(--pool-soft)!important}
.swr-pool-note{margin-top:10px;white-space:normal;font-size:13px;color:#617683}
.swr-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 20px;padding:0;list-style:none}
.swr-benefits li{position:relative;padding:10px 12px 10px 32px;background:var(--pool-soft)}
.swr-benefits li:before{content:"✓";position:absolute;left:12px;color:var(--pool-blue);font-weight:800}
.swr-pool-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.swr-pool-feature-card{padding:24px;background:#fff;border-left:5px solid var(--pool-blue);box-shadow:0 8px 26px rgba(20,65,90,.07);line-height:1.7}
.swr-pool-badge{display:inline-block;background:#002349;color:#fff;padding:7px 10px;font-size:12px;font-weight:700;margin-bottom:18px}
.swr-pool-highlight{display:block;margin-top:20px;padding:13px 15px;background:var(--pool-soft);color:#002349}
.swr-pool-course-box{margin-top:12px;padding:18px;background:#002349;color:#fff}
.swr-pool-course-box span,.swr-pool-course-box strong,.swr-pool-course-box b{display:block}
.swr-pool-course-box strong{font-size:18px;margin-top:8px}.swr-pool-course-box b{font-size:24px;margin-top:5px}
.swr-pool-narrow{max-width:900px}
.swr-pool-embedded{margin-top:24px}
.swr-pool-hours-embedded .swr-hours{margin:0!important}
.swr-pool-hours-embedded .swr-hours-inner{max-width:none!important;padding-left:0!important;padding-right:0!important}
.swr-pool-hours-embedded .swr-title{color:#002349!important}
@media(max-width:767px){
    .swr-schwimmhalle-page.two-mobile .swr-pool-gallery.four,
    .swr-schwimmhalle-page.two-mobile .swr-pool-gallery.two,
    .swr-schwimmhalle-page.two-mobile .swr-pool-gallery.kids,
    .swr-schwimmhalle-page.two-mobile .swr-pool-feature-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:10px!important;
    }
    .swr-schwimmhalle-page.one-mobile .swr-pool-gallery,
    .swr-schwimmhalle-page.one-mobile .swr-pool-feature-grid{
        grid-template-columns:1fr!important;
    }
    .swr-pool-split{grid-template-columns:1fr;gap:18px}
    .swr-pool-gallery img{height:140px}
    .two-mobile .swr-pool-gallery img{height:125px}
    .swr-pool-feature-card{padding:14px;font-size:12px}
    .swr-benefits{grid-template-columns:1fr}
    .swr-pool-section{margin:0;padding:30px 16px 34px}
    .swr-pool-price thead th,.swr-pool-price tbody th,.swr-pool-price tbody td{padding:10px 8px!important;font-size:12px!important}
}


/* SWR Fluid Typography 2026
   Einheitliche fluide Typografie fuer Smartphone, Tablet und Desktop. */
h1{
    font-size:clamp(28px,4vw,46px)!important;
    line-height:1.1!important;
}
h2{
    font-size:clamp(23px,3vw,38px)!important;
    line-height:1.14!important;
}
h3{
    font-size:clamp(17px,1.8vw,24px)!important;
    line-height:1.2!important;
}
h4{
    font-size:clamp(15px,1.45vw,20px)!important;
    line-height:1.25!important;
}
p,
li,
td,
th,
label{
    font-size:clamp(13px,1.05vw,16px)!important;
    line-height:1.58!important;
}
button,
.button,
a[class*="button"],
input[type="submit"]{
    font-size:clamp(11.5px,.95vw,14px)!important;
    line-height:1.2!important;
}

@media(max-width:767px){
    h1{
        font-size:clamp(24px,7vw,32px)!important;
    }
    h2{
        font-size:clamp(20px,6vw,28px)!important;
    }
    h3{
        font-size:clamp(15px,4.6vw,20px)!important;
    }
    h4{
        font-size:clamp(14px,4vw,18px)!important;
    }
    p,
    li,
    td,
    th,
    label{
        font-size:clamp(12px,3.55vw,14.5px)!important;
        line-height:1.5!important;
    }
    button,
    .button,
    a[class*="button"],
    input[type="submit"]{
        font-size:clamp(10.5px,3.15vw,12.5px)!important;
    }
}

@media(max-width:380px){
    h1{font-size:clamp(22px,6.6vw,27px)!important;}
    h2{font-size:clamp(19px,5.7vw,24px)!important;}
    h3{font-size:clamp(14px,4.2vw,17px)!important;}
    p,
    li,
    td,
    th,
    label{font-size:clamp(11.5px,3.35vw,13.5px)!important;}
}


/* 2.0.5 Wissenswertes: begrenzter Text mit Mehr lesen */
.swr-pool-about-copy-wrap{
    min-width:0;
}
.swr-pool-about-copy{
    position:relative;
    max-height:220px;
    overflow:hidden;
    transition:max-height .45s ease;
}
.swr-pool-about-copy-wrap:not(.is-expanded) .swr-pool-about-copy:after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:62px;
    pointer-events:none;
    background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 82%);
}
.swr-pool-about:nth-child(even) .swr-pool-about-copy-wrap:not(.is-expanded) .swr-pool-about-copy:after{
    background:linear-gradient(to bottom,rgba(244,248,251,0),#f4f8fb 82%);
}
.swr-pool-about-copy-wrap.is-expanded .swr-pool-about-copy{
    max-height:none;
}
.swr-pool-readmore{
    appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:14px;
    padding:10px 16px;
    border:0;
    background:#002349;
    color:#fff!important;
    font-family:inherit;
    font-weight:700;
    cursor:pointer;
    box-shadow:none;
    transition:background .2s ease,transform .2s ease;
}
.swr-pool-readmore:hover{
    background:#1689c9;
    transform:translateY(-1px);
}
.swr-pool-readmore[hidden]{
    display:none!important;
}

/* 2.0.5 dezenter Scroll Effekt fuer Bereichsueberschriften */
.swr-pool-section-title{
    opacity:0;
    transform:translateY(16px);
    transition:opacity .5s ease,transform .5s ease;
    will-change:opacity,transform;
}
.swr-pool-section-title.is-scroll-visible{
    opacity:1;
    transform:translateY(0);
}

@media(max-width:767px){
    .swr-pool-about-copy{
        max-height:150px;
    }
    .swr-pool-about-copy-wrap:not(.is-expanded) .swr-pool-about-copy:after{
        height:48px;
    }
    .swr-pool-readmore{
        margin-top:10px;
        padding:9px 13px;
    }
    .swr-pool-section-title{
        transform:translateY(12px);
    }
}

@media(prefers-reduced-motion:reduce){
    .swr-pool-about-copy,
    .swr-pool-readmore,
    .swr-pool-section-title{
        transition:none!important;
    }
}


/* 2.0.6 Premium Scroll Effects */

/* Ganze Inhaltsbereiche dezent einblenden */
.swr-pool-section{
    position:relative;
}
.swr-pool-section > *:not(.swr-pool-section-title){
    opacity:0;
    transform:translateY(20px) scale(.992);
    transition:
        opacity .65s ease,
        transform .65s cubic-bezier(.22,.61,.36,1);
    will-change:opacity,transform;
}
.swr-pool-section.is-section-visible > *:not(.swr-pool-section-title){
    opacity:1;
    transform:translateY(0) scale(1);
}

/* Bilder erhalten Tiefe, Slow Zoom und Parallax Raum */
.swr-pool-media,
.swr-pool-gallery > div{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    background:#eef5f8;
}
.swr-pool-media img,
.swr-pool-gallery img{
    transform:
        translate3d(0,var(--swr-parallax-y,0px),0)
        scale(var(--swr-image-scale,1.035));
    transform-origin:center center;
    transition:
        transform .32s ease-out,
        filter .35s ease;
    will-change:transform;
    backface-visibility:hidden;
}
.swr-pool-media.is-image-active img,
.swr-pool-gallery > div.is-image-active img{
    --swr-image-scale:1.01;
}

/* Dezenter Lichtreflex */
.swr-pool-media::after,
.swr-pool-gallery > div::after{
    content:"";
    position:absolute;
    z-index:2;
    top:-35%;
    left:-60%;
    width:42%;
    height:170%;
    pointer-events:none;
    background:linear-gradient(
        105deg,
        rgba(255,255,255,0) 0%,
        rgba(255,255,255,.04) 25%,
        rgba(255,255,255,.32) 48%,
        rgba(255,255,255,.08) 68%,
        rgba(255,255,255,0) 100%
    );
    transform:skewX(-14deg) translateX(-120%);
    opacity:0;
}
.swr-pool-media.is-image-active::after,
.swr-pool-gallery > div.is-image-active::after{
    animation:swr-pool-light-sweep 1.25s cubic-bezier(.22,.61,.36,1) .12s both;
}
@keyframes swr-pool-light-sweep{
    0%{
        transform:skewX(-14deg) translateX(-120%);
        opacity:0;
    }
    18%{opacity:.55}
    72%{opacity:.28}
    100%{
        transform:skewX(-14deg) translateX(430%);
        opacity:0;
    }
}

/* Galerieelemente leicht versetzt einblenden */
.swr-pool-gallery > div{
    opacity:0;
    transform:translateY(16px);
    transition:
        opacity .55s ease,
        transform .55s cubic-bezier(.22,.61,.36,1);
}
.swr-pool-gallery.is-gallery-visible > div{
    opacity:1;
    transform:translateY(0);
}
.swr-pool-gallery.is-gallery-visible > div:nth-child(2){transition-delay:.07s}
.swr-pool-gallery.is-gallery-visible > div:nth-child(3){transition-delay:.14s}
.swr-pool-gallery.is-gallery-visible > div:nth-child(4){transition-delay:.21s}

/* Karten mit ganz leichter Tiefenreaktion */
.swr-pool-feature-card,
.swr-pool-course-box,
.swr-pool-price-wrap{
    transition:
        transform .28s ease,
        box-shadow .28s ease;
}
.swr-pool-feature-card:hover,
.swr-pool-price-wrap:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 32px rgba(0,35,73,.09);
}

@media(max-width:767px){
    .swr-pool-section > *:not(.swr-pool-section-title){
        transform:translateY(14px) scale(.995);
    }
    .swr-pool-media img,
    .swr-pool-gallery img{
        --swr-image-scale:1.025;
    }
    .swr-pool-media.is-image-active img,
    .swr-pool-gallery > div.is-image-active img{
        --swr-image-scale:1.005;
    }
}

/* Animationen sauber abschalten, wenn gewuenscht */
@media(prefers-reduced-motion:reduce){
    .swr-pool-section > *:not(.swr-pool-section-title),
    .swr-pool-gallery > div,
    .swr-pool-media img,
    .swr-pool-gallery img,
    .swr-pool-feature-card,
    .swr-pool-course-box,
    .swr-pool-price-wrap{
        opacity:1!important;
        transform:none!important;
        transition:none!important;
        animation:none!important;
    }
    .swr-pool-media::after,
    .swr-pool-gallery > div::after{
        display:none!important;
        animation:none!important;
    }
}


/* 2.0.7 Stronger Premium Section Effects */

/* Bereich bekommt beim Eintritt eine leichte Lichtstimmung */
.swr-pool-section{
    overflow:hidden;
}
.swr-pool-section::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:0;
    opacity:0;
    background:
        radial-gradient(circle at 18% 20%, rgba(22,137,201,.10), transparent 34%),
        linear-gradient(110deg, rgba(22,137,201,.035), transparent 42%);
    transform:scale(1.04);
    transition:
        opacity .8s ease,
        transform 1s cubic-bezier(.22,.61,.36,1);
}
.swr-pool-section.is-section-visible::before{
    opacity:1;
    transform:scale(1);
}
.swr-pool-section > *{
    position:relative;
    z-index:1;
}

/* Deutlichere Titelanimation */
.swr-pool-section-title{
    position:relative;
    display:inline-block;
    padding-bottom:14px!important;
    opacity:0;
    transform:translateY(24px) scale(.985);
    transition:
        opacity .62s ease,
        transform .7s cubic-bezier(.16,1,.3,1);
}
.headings-centered .swr-pool-section-title{
    display:block;
    width:max-content;
    max-width:100%;
    margin-left:auto!important;
    margin-right:auto!important;
}
.swr-pool-section-title::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:72px;
    height:4px;
    background:linear-gradient(90deg,#1689c9,#002349);
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .68s cubic-bezier(.16,1,.3,1) .16s;
}
.headings-centered .swr-pool-section-title::after{
    left:50%;
    transform:translateX(-50%) scaleX(0);
    transform-origin:center center;
}
.swr-pool-section-title.is-scroll-visible{
    opacity:1;
    transform:translateY(0) scale(1);
}
.swr-pool-section-title.is-scroll-visible::after{
    transform:scaleX(1);
}
.headings-centered .swr-pool-section-title.is-scroll-visible::after{
    transform:translateX(-50%) scaleX(1);
}

/* Inhalte alternierend von links/rechts */
.swr-pool-section > *:not(.swr-pool-section-title){
    opacity:0;
    transform:translateX(-32px) translateY(12px) scale(.985);
    transition:
        opacity .72s ease .08s,
        transform .78s cubic-bezier(.16,1,.3,1) .08s;
}
.swr-pool-section:nth-child(even) > *:not(.swr-pool-section-title){
    transform:translateX(32px) translateY(12px) scale(.985);
}
.swr-pool-section.is-section-visible > *:not(.swr-pool-section-title){
    opacity:1;
    transform:translateX(0) translateY(0) scale(1);
}

/* Unterueberschriften ebenfalls sichtbar animieren */
.swr-pool-subtitle,
.swr-pool-copy h3{
    position:relative;
    opacity:.2;
    transform:translateY(14px);
    transition:
        opacity .5s ease .18s,
        transform .55s cubic-bezier(.22,.61,.36,1) .18s;
}
.swr-pool-section.is-section-visible .swr-pool-subtitle,
.swr-pool-section.is-section-visible .swr-pool-copy h3{
    opacity:1;
    transform:translateY(0);
}

/* Karten und Preisbereiche deutlich hochwertiger im Reveal */
.swr-pool-feature-card,
.swr-pool-course-box,
.swr-pool-price-wrap{
    opacity:0;
    transform:translateY(24px) scale(.975);
    box-shadow:0 4px 12px rgba(0,35,73,.03);
    transition:
        opacity .6s ease .18s,
        transform .7s cubic-bezier(.16,1,.3,1) .18s,
        box-shadow .45s ease;
}
.swr-pool-section.is-section-visible .swr-pool-feature-card,
.swr-pool-section.is-section-visible .swr-pool-course-box,
.swr-pool-section.is-section-visible .swr-pool-price-wrap{
    opacity:1;
    transform:translateY(0) scale(1);
    box-shadow:0 12px 32px rgba(0,35,73,.08);
}

/* Benefit Punkte kommen sichtbar nacheinander */
.swr-benefits li{
    opacity:0;
    transform:translateX(-14px);
    transition:
        opacity .42s ease,
        transform .45s cubic-bezier(.22,.61,.36,1);
}
.swr-pool-section.is-section-visible .swr-benefits li{
    opacity:1;
    transform:translateX(0);
}
.swr-pool-section.is-section-visible .swr-benefits li:nth-child(1){transition-delay:.18s}
.swr-pool-section.is-section-visible .swr-benefits li:nth-child(2){transition-delay:.23s}
.swr-pool-section.is-section-visible .swr-benefits li:nth-child(3){transition-delay:.28s}
.swr-pool-section.is-section-visible .swr-benefits li:nth-child(4){transition-delay:.33s}
.swr-pool-section.is-section-visible .swr-benefits li:nth-child(5){transition-delay:.38s}
.swr-pool-section.is-section-visible .swr-benefits li:nth-child(6){transition-delay:.43s}

/* Kurs Highlight bekommt beim Eintritt einen kleinen Akzent */
.swr-pool-highlight{
    position:relative;
    overflow:hidden;
}
.swr-pool-highlight::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:0;
    height:3px;
    background:#1689c9;
    transition:width .7s cubic-bezier(.16,1,.3,1) .35s;
}
.swr-pool-section.is-section-visible .swr-pool-highlight::after{
    width:100%;
}

@media(max-width:767px){
    .swr-pool-section > *:not(.swr-pool-section-title),
    .swr-pool-section:nth-child(even) > *:not(.swr-pool-section-title){
        transform:translateY(18px) scale(.99);
    }
    .swr-pool-section.is-section-visible > *:not(.swr-pool-section-title){
        transform:translateY(0) scale(1);
    }

    .swr-pool-section-title{
        transform:translateY(18px) scale(.99);
        padding-bottom:11px!important;
    }

    .swr-pool-section-title::after{
        width:54px;
        height:3px;
    }
}

@media(prefers-reduced-motion:reduce){
    .swr-pool-section::before{
        opacity:0!important;
        transform:none!important;
        transition:none!important;
    }
    .swr-pool-section-title,
    .swr-pool-section-title::after,
    .swr-pool-subtitle,
    .swr-pool-copy h3,
    .swr-pool-feature-card,
    .swr-pool-course-box,
    .swr-pool-price-wrap,
    .swr-benefits li,
    .swr-pool-highlight::after{
        opacity:1!important;
        transform:none!important;
        transition:none!important;
    }
    .swr-pool-section-title::after{
        transform:scaleX(1)!important;
    }
    .headings-centered .swr-pool-section-title::after{
        transform:translateX(-50%) scaleX(1)!important;
    }
}


/* 2.0.8 Ruhiger Vigitals / SWR Flaechenstil */
.swr-schwimmhalle-page .swr-pool-section:nth-child(odd),
.swr-pool-page .swr-pool-section:nth-child(odd),
.swr-pool-section:nth-child(odd){
    background:#ffffff!important;
}
.swr-schwimmhalle-page .swr-pool-section:nth-child(even),
.swr-pool-page .swr-pool-section:nth-child(even),
.swr-pool-section:nth-child(even){
    background:#f4f8fb!important;
}

/* Glow auf grossen Flaechen entfernen */
.swr-schwimmhalle-page .swr-pool-section::before,
.swr-pool-page .swr-pool-section::before,
.swr-pool-section::before{
    display:none!important;
}

/* Karten auf weiss vereinheitlichen */
.swr-schwimmhalle-page .swr-pool-feature-card,
.swr-schwimmhalle-page .swr-pool-course-box,
.swr-schwimmhalle-page .swr-pool-price-wrap,
.swr-pool-page .swr-pool-feature-card,
.swr-pool-page .swr-pool-course-box,
.swr-pool-page .swr-pool-price-wrap,
.swr-pool-feature-card,
.swr-pool-course-box,
.swr-pool-price-wrap{
    background:#ffffff!important;
    color:#274554!important;
    box-shadow:0 8px 24px rgba(0,35,73,.06)!important;
}

/* Dunkle Vollflaechen neutralisieren, Akzente behalten */
.swr-schwimmhalle-page .swr-pool-feature-card h3,
.swr-schwimmhalle-page .swr-pool-course-box h3,
.swr-schwimmhalle-page .swr-pool-price-wrap h3,
.swr-pool-page .swr-pool-feature-card h3,
.swr-pool-page .swr-pool-course-box h3,
.swr-pool-page .swr-pool-price-wrap h3{
    color:#002349!important;
}

/* 2.1.0 Hero / Anfahrt nach Vizy Weg zu uns */
.swr-pool-hero{
    --hero-primary:#002349;
    --hero-accent:#1689c9;
    --hero-text:#274554;
    --hero-surface:#f4f8fb;
    --hero-card:#fff;
    position:relative;
    overflow:hidden;
    background:var(--hero-surface);
    color:var(--hero-text);
    padding:46px 34px 28px;
}
.swr-pool-hero *,.swr-pool-hero *::before,.swr-pool-hero *::after{box-sizing:border-box}
.swr-pool-hero-rail{position:absolute;inset:0 0 auto;height:7px;background:var(--hero-primary)}
.swr-pool-hero-rail span{display:block;position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 18px,var(--hero-accent) 18px 24px);opacity:.85}
.swr-pool-hero-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:26px}
.swr-pool-hero-eyebrow,.swr-pool-hero-kicker{margin-bottom:9px;font-size:11px!important;font-weight:800;line-height:1!important;text-transform:uppercase;letter-spacing:.14em;color:var(--hero-accent)}
.swr-pool-hero h1{margin:0!important;color:var(--hero-primary)!important;font-size:clamp(38px,5vw,68px)!important;line-height:.98!important;letter-spacing:-.035em!important}
.swr-pool-hero-intro{max-width:720px;margin-top:18px;font-size:16px;line-height:1.65}
.swr-pool-hero-main{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(420px,1.22fr);min-height:430px;background:var(--hero-card);border-top:1px solid rgba(0,35,73,.15);border-bottom:1px solid rgba(0,35,73,.15)}
.swr-pool-hero-contact{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,4vw,54px);border-right:1px solid rgba(0,35,73,.15);overflow:hidden}
.swr-pool-hero-contact::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--hero-accent)}
.swr-pool-hero-contact h2{margin:0 0 16px!important;color:var(--hero-primary)!important;font-size:clamp(25px,2.6vw,40px)!important;line-height:1.08!important;letter-spacing:-.025em!important}
.swr-pool-hero-address{font-size:17px;line-height:1.55}
.swr-pool-hero-contactlines{display:flex;flex-direction:column;gap:6px;margin-top:18px}
.swr-pool-hero-contactlines a{color:var(--hero-primary)!important;text-decoration:none!important;font-weight:650}
.swr-pool-hero-contactlines a:hover{text-decoration:underline!important}
.swr-pool-hero-route{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-height:46px;margin-top:26px;padding:11px 18px;border:1px solid var(--hero-primary)!important;border-radius:0!important;background:var(--hero-primary)!important;color:#fff!important;font-family:inherit!important;font-size:14px!important;font-weight:700!important;line-height:1.1!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;cursor:pointer;transition:transform .2s ease,background-color .2s ease}
.swr-pool-hero-route:hover,.swr-pool-hero-route:focus{transform:translateY(-2px);background:var(--hero-accent)!important;color:#fff!important}
.swr-pool-hero-track{display:flex;align-items:center;margin-top:38px;color:var(--hero-primary)}
.swr-pool-hero-track span{width:10px;height:10px;border:2px solid currentColor;border-radius:50%}
.swr-pool-hero-track i{height:2px;flex:1;margin-left:6px;background:repeating-linear-gradient(90deg,currentColor 0 10px,transparent 10px 15px);opacity:.3}
.swr-pool-hero-track b{font-size:24px;font-weight:400;line-height:1;margin-left:3px}
.swr-pool-hero-map{position:relative;min-height:430px;background:#eef5f8;overflow:hidden}
.swr-pool-hero-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.swr-pool-map-placeholder{position:absolute;inset:0;display:grid;place-items:center;isolation:isolate;background:linear-gradient(115deg,rgba(0,35,73,.12),transparent 56%),#f7fafc}
.swr-pool-map-grid{position:absolute;inset:0;z-index:-2;opacity:.45;background-image:linear-gradient(rgba(0,35,73,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(0,35,73,.13) 1px,transparent 1px);background-size:42px 42px;transform:rotate(-7deg) scale(1.12)}
.swr-pool-map-placeholder::after{content:"";position:absolute;left:-10%;right:-10%;top:47%;height:13px;z-index:-1;transform:rotate(-10deg);background:linear-gradient(to bottom,var(--hero-primary) 0 2px,transparent 2px 11px,var(--hero-primary) 11px 13px),repeating-linear-gradient(90deg,transparent 0 18px,var(--hero-primary) 18px 22px);opacity:.14}
.swr-pool-map-pin{position:absolute;top:27%;right:20%;width:52px;height:52px;display:grid;place-items:center;background:var(--hero-accent);border:7px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 14px 35px rgba(0,0,0,.13)}
.swr-pool-map-pin span{width:12px;height:12px;border-radius:50%;background:#fff}
.swr-pool-map-copy{width:min(380px,calc(100% - 48px));padding:28px;background:rgba(255,255,255,.93);border-left:4px solid var(--hero-accent);box-shadow:0 20px 60px rgba(0,0,0,.09);backdrop-filter:blur(6px)}
.swr-pool-map-copy strong{display:block;margin-bottom:18px;color:var(--hero-primary);font-size:22px;line-height:1.2}
.swr-pool-map-address{color:var(--hero-text);font-size:15px;line-height:1.55}
.swr-pool-map-copy .swr-pool-map-load{margin-top:0}
.swr-pool-hero-travel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px;border-top:1px solid rgba(0,35,73,.14);border-left:1px solid rgba(0,35,73,.14)}
.swr-pool-hero-travel article{display:grid;grid-template-columns:42px minmax(0,1fr);gap:16px;min-height:130px;padding:24px;background:#fff;border-right:1px solid rgba(0,35,73,.14);border-bottom:1px solid rgba(0,35,73,.14);transition:transform .2s ease,box-shadow .2s ease}
.swr-pool-hero-travel article:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,35,73,.06);z-index:1}
.swr-pool-hero-icon{width:42px;height:42px;display:grid;place-items:center;color:var(--hero-primary);background:rgba(22,137,201,.12)}
.swr-pool-hero-icon svg{width:20px;height:20px;fill:currentColor}
.swr-pool-hero-travel h3{margin:2px 0 8px!important;color:var(--hero-primary)!important;font-size:18px!important}
.swr-pool-hero-travel p{margin:0;font-size:14px!important;line-height:1.55!important}

/* 2.1.0 Neuigkeiten, gemeinsame Preisliste und Impressionen */
.swr-pool-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.swr-pool-news-card{padding:22px;background:#fff;border:1px solid var(--pool-border);border-top:4px solid var(--pool-blue);box-shadow:0 8px 24px rgba(0,35,73,.05)}
.swr-pool-news-card time{display:block;margin-bottom:8px;color:#6b7f8b;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.swr-pool-news-card h3{margin:0 0 10px!important;color:var(--pool-dark)!important}
.swr-pool-news-card p{margin:0 0 10px}
.swr-pool-news-card a{color:var(--pool-blue)!important;font-weight:700;text-decoration:none!important}
.swr-pool-empty-state{padding:22px;border-left:4px solid var(--pool-blue);background:#fff;color:#617683}
.swr-pool-price-groups{display:grid;grid-template-columns:1fr;gap:32px;align-items:start}
.swr-pool-price-groups .swr-pool-subtitle{margin-top:0!important}
.swr-pool-gallery.impressions{grid-template-columns:repeat(3,minmax(0,1fr))}
.swr-pool-gallery.impressions img{height:260px}

/* Wissenswertes: Active/Focus darf nie auf Theme Rot wechseln */
.swr-schwimmhalle-page .swr-pool-readmore:active,
.swr-schwimmhalle-page .swr-pool-readmore:focus,
.swr-schwimmhalle-page .swr-pool-readmore:focus-visible{
    background:#1689c9!important;
    color:#fff!important;
    border-color:#1689c9!important;
    outline:2px solid rgba(22,137,201,.22)!important;
    outline-offset:2px;
}

@media(max-width:900px){
    .swr-pool-hero-main{grid-template-columns:1fr 1fr}
    .swr-pool-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .swr-pool-gallery.impressions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
    .swr-pool-hero{padding:24px 10px 16px}
    .swr-pool-hero-rail{height:5px}
    .swr-pool-hero-head{margin-bottom:15px}
    .swr-pool-hero-eyebrow{font-size:9px!important;margin-bottom:6px}
    .swr-pool-hero h1{font-size:30px!important;line-height:1.02!important}
    .swr-pool-hero-intro{margin-top:10px;font-size:13px}
    .swr-pool-hero-main{grid-template-columns:1fr;min-height:0}
    .swr-pool-hero-contact{padding:20px 16px 18px 20px;border-right:0;border-bottom:1px solid rgba(0,35,73,.14)}
    .swr-pool-hero-contact::before{width:3px}
    .swr-pool-hero-kicker{display:none}
    .swr-pool-hero-contact h2{font-size:21px!important;margin-bottom:8px!important}
    .swr-pool-hero-address{font-size:13px;line-height:1.45}
    .swr-pool-hero-contactlines{margin-top:12px;font-size:12px}
    .swr-pool-hero-route{min-height:39px;margin-top:15px;padding:8px 10px;font-size:11px!important}
    .swr-pool-hero-track{display:none}
    .swr-pool-hero-map{min-height:230px}
    .swr-pool-map-copy{width:calc(100% - 24px);padding:16px;border-left-width:3px}
    .swr-pool-map-copy strong{margin-bottom:10px;font-size:16px}
    .swr-pool-map-pin{width:34px;height:34px;right:11%;border-width:5px}
    .swr-pool-map-pin span{width:8px;height:8px}
    .swr-pool-hero-travel{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}
    .swr-pool-hero-travel article{grid-template-columns:30px minmax(0,1fr);gap:8px;min-height:0;padding:11px 10px}
    .swr-pool-hero-icon{width:30px;height:30px}
    .swr-pool-hero-icon svg{width:14px;height:14px}
    .swr-pool-hero-travel h3{margin:1px 0 4px!important;font-size:12px!important}
    .swr-pool-hero-travel p{font-size:10px!important;line-height:1.35!important}
    .swr-pool-news-grid{grid-template-columns:1fr}
    .swr-pool-gallery.impressions{grid-template-columns:repeat(2,minmax(0,1fr))}
    .swr-pool-gallery.impressions img{height:150px}
}

/* 2.1.3 Identische Spaltenbreiten in allen Preisgruppen */
.swr-pool-price{table-layout:fixed!important}
.swr-pool-price col.swr-pool-price-label-col{width:50%!important}
.swr-pool-price col.swr-pool-price-value-col{width:25%!important}
.swr-pool-price thead th:nth-child(1),
.swr-pool-price tbody th:nth-child(1){width:50%!important}
.swr-pool-price thead th:nth-child(2),
.swr-pool-price thead th:nth-child(3),
.swr-pool-price tbody td:nth-child(2),
.swr-pool-price tbody td:nth-child(3){width:25%!important}
