/* bm CORE 1.2.0 – updatefähiges Basis-CSS */
:root {
    --yellow: #fdcd33;
    --yellow2: #ffe16d;
    --ink: #101113;
    --paper: #f5f3ee;
    --muted: #747474;
    --line: rgba(16, 17, 19, .12);
    --bs-body-font-family: Arial, Helvetica, sans-serif
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--bs-body-font-family);
    font-size: 16px;
    line-height: 1.6
}

a {
    text-decoration: none;
    color: inherit
}

.container {
    width: min(1180px, calc(100% - 48px));
    margin: auto
}

.site-header {
    position: absolute;
    z-index: 20;
    left: 0;
    right: 0;
    top: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    color: #fff
}

.nav-shell {
    height: 92px;
    display: flex;
    align-items: center;
    gap: 45px
}

.brand img {
    width: 185px;
    display: block
}

.navbar-collapse {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    flex: 1
}

.navlinks {
    display: flex;
    align-items: center;
    gap: 32px
}

.navlinks>a,
.dropdown-toggle {
    font-size: .91rem;
    font-weight: 700;
    color: #fff
}

.nav-cta {
    padding: 11px 0 8px;
    border-bottom: 2px solid var(--yellow);
    font-weight: 800
}

.nav-cta span {
    color: var(--yellow);
    margin-left: 8px
}

.dropdown-menu {
    background: #fff;
    border: 0;
    border-radius: 0;
    padding: 10px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, .18)
}

.dropdown-menu a {
    display: block;
    padding: 9px 16px;
    font-weight: 700;
    color: #111
}

.navbar-toggler {
    display: none;
    background: none;
    border: 0;
    padding: 5px
}

.navbar-toggler span {
    display: block;
    width: 28px;
    height: 2px;
    background: #fff;
    margin: 7px
}

.hero {
    height: min(760px, 85vh);
    min-height: 620px;
    position: relative;
    background: #111;
    color: #fff;
    overflow: hidden
}

.hero-slide>img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center
}

.hero-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .84) 0%, rgba(0, 0, 0, .58) 38%, rgba(0, 0, 0, .12) 72%), linear-gradient(0deg, rgba(0, 0, 0, .35), transparent 45%)
}

.hero-content {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    padding-top: 80px
}

.hero-copy {
    max-width: 680px
}

.eyebrow,
.kicker {
    display: block;
    text-transform: uppercase;
    font-size: .74rem;
    letter-spacing: .18em;
    font-weight: 900;
    margin-bottom: 18px
}

.eyebrow {
    color: var(--yellow)
}

.hero h1 {
    font-size: clamp(4rem, 7.3vw, 7.2rem);
    line-height: .84;
    letter-spacing: -.055em;
    margin: 0 0 28px;
    font-weight: 900
}

.hero h1 span {
    color: var(--yellow)
}

.hero p {
    max-width: 580px;
    font-size: 1.22rem;
    color: rgba(255, 255, 255, .84);
    margin: 0 0 34px
}

.hero-actions {
    display: flex;
    gap: 12px
}

.btn {
    border-radius: 0;
    padding: 15px 23px;
    font-weight: 800;
    border: 1px solid transparent
}

.btn-brand {
    background: var(--yellow);
    color: var(--primary-text,#111)
}

.btn-brand:hover {
    background: var(--yellow2);
    color: var(--primary-text,#111)
}

.btn-ghost {
    border-color: rgba(255, 255, 255, .6);
    color: #fff
}

.btn-ghost:hover {
    background: #fff;
    color: #111
}

.quickbar {
    background: var(--yellow)
}

.quickgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr)
}

.quickgrid>a {
    min-height: 112px;
    padding: 27px 30px;
    display: flex;
    align-items: center;
    gap: 18px;
    border-right: 1px solid rgba(0, 0, 0, .16)
}

.quickgrid>a:first-child {
    border-left: 1px solid rgba(0, 0, 0, .16)
}

.quick-icon {
    font-size: 1.45rem
}

.quickgrid small,
.quickgrid strong {
    display: block
}

.quickgrid small {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom: 2px
}

.quickgrid strong {
    font-size: .96rem
}

.section {
    padding: 110px 0
}

.section-heading h2,
.b197-copy h2,
.theory h2,
.location h2,
.cta h2 {
    font-size: clamp(2.8rem, 5vw, 5.3rem);
    line-height: .95;
    letter-spacing: -.045em;
    font-weight: 900;
    margin: 0
}

.split-heading {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 80px;
    align-items: end
}

.split-heading>p {
    font-size: 1.13rem;
    color: #5c5c5c;
    max-width: 490px;
    margin: 0 0 8px
}

.kicker {
    color: #8a6b00
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 75px;
    border-top: 1px solid var(--line)
}

.feature-grid article {
    padding: 34px 35px 0 0;
    border-right: 1px solid var(--line);
    min-height: 230px
}

.feature-grid article+article {
    padding-left: 35px
}

.feature-grid article:last-child {
    border-right: 0
}

.feature-grid article>span {
    font-size: .72rem;
    font-weight: 900;
    color: #a18a39
}

.feature-grid h3 {
    font-size: 1.45rem;
    margin: 35px 0 9px
}

.feature-grid p {
    color: #686868;
    margin: 0
}

.classes {
    background: #111;
    color: #fff
}

.light-heading {
    max-width: 760px;
    margin-bottom: 55px
}

.light-heading .kicker {
    color: var(--yellow)
}

.light-heading p {
    color: #aaa;
    font-size: 1.08rem
}

.class-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid #333;
    border-left: 1px solid #333
}

.class-card {
    height: 195px;
    border-right: 1px solid #333;
    border-bottom: 1px solid #333;
    padding: 26px;
    position: relative;
    overflow: hidden;
    transition: .25s
}

.class-card:hover {
    background: var(--yellow);
    color: #111
}

.class-card small {
    display: block;
    color: #999;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em
}

.class-card:hover small {
    color: #574b20
}

.class-card strong {
    font-size: 2.55rem;
    line-height: 1
}

.class-card img {
    position: absolute;
    right: 20px;
    bottom: 23px;
    max-width: 105px;
    max-height: 62px;
    filter: grayscale(1) brightness(1.7);
    opacity: .8
}

.class-card:hover img {
    filter: none;
    opacity: 1
}

.class-card .arrow {
    position: absolute;
    right: 18px;
    top: 16px;
    color: #777
}

.class-card:hover .arrow {
    color: #111
}

.b197-section {
    background: var(--yellow)
}

.b197-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 110px;
    align-items: center
}

.b197-copy p {
    font-size: 1.08rem;
    max-width: 560px
}

.text-link {
    font-weight: 900;
    display: inline-block;
    border-bottom: 2px solid currentColor;
    padding-bottom: 5px;
    margin-top: 12px
}

.text-link span {
    margin-left: 18px
}

.b197-card {
    background: #111;
    color: #fff;
    padding: 42px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px
}

.b197-card .big-number {
    grid-column: 1/-1;
    color: var(--yellow);
    font-weight: 900;
    font-size: 5rem;
    line-height: 1;
    border-bottom: 1px solid #383838;
    padding-bottom: 30px
}

.b197-card strong {
    font-size: 3rem
}

.b197-card p {
    color: #aaa;
    margin: 0
}

.theory-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 110px;
    align-items: center
}

.theory p {
    color: #656565;
    max-width: 530px;
    margin: 25px 0
}

.btn-dark {
    background: #111;
    color: #fff
}

.schedule {
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .06)
}

.schedule-head,
.schedule-row {
    display: grid;
    align-items: center
}

.schedule-head {
    grid-template-columns: 1fr 1fr;
    padding: 20px 28px;
    background: #111;
    color: #fff;
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .08em
}

.schedule-head span:last-child {
    text-align: right;
    color: var(--yellow)
}

.schedule-row {
    grid-template-columns: 70px 1fr 30px;
    padding: 23px 28px;
    border-bottom: 1px solid var(--line)
}

.schedule-row b {
    font-size: 1.3rem
}

.schedule-row i {
    font-style: normal
}

.schedule>small {
    display: block;
    padding: 18px 28px;
    color: #777
}

.location {
    background: #e9e6df
}

.location-grid {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 100px;
    align-items: center
}

.map-wrap {
    position: relative;
    height: 570px;
    overflow: hidden
}

.map-wrap>img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1);
    transform: scale(1.02)
}

.map-pin {
    position: absolute;
    left: 51%;
    top: 48%;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--yellow);
    display: grid;
    place-items: center;
    border: 8px solid rgba(255, 255, 255, .8)
}

.address {
    font-size: 1.2rem;
    margin: 28px 0
}

.hours {
    border-top: 1px solid #bbb;
    margin: 30px 0
}

.hours>div {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    padding: 14px 0;
    border-bottom: 1px solid #bbb
}

.hours span {
    color: #777
}

.cta {
    background: #111;
    color: #fff;
    padding: 70px 0
}

.cta-inner {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 40px
}

.cta .kicker {
    color: var(--yellow)
}

.cta h2 {
    font-size: clamp(2.6rem, 4vw, 4.5rem)
}

.site-footer {
    background: #090909;
    color: #fff;
    padding: 65px 0 30px
}

.footer-main {
    display: grid;
    grid-template-columns: 250px 1fr auto;
    align-items: center;
    gap: 50px;
    padding-bottom: 55px
}

.footer-main img {
    width: 190px
}

.footer-main p {
    color: #888;
    margin: 0
}

.footer-links {
    display: flex;
    gap: 24px;
    font-weight: 700
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 25px;
    color: #777;
    font-size: .78rem
}

.footer-bottom a {
    color: #aaa
}

@media(max-width:900px) {
    .container {
        width: min(100% - 32px, 1180px)
    }

    .site-header {
        position: absolute
    }

    .nav-shell {
        height: 78px
    }

    .brand img {
        width: 155px
    }

    .navbar-toggler {
        display: block;
        margin-left: auto
    }

    .navbar-collapse {
        display: none !important;
        position: absolute;
        top: 78px;
        left: 0;
        right: 0;
        background: #111;
        padding: 25px 24px
    }

    .navbar-collapse.show {
        display: block !important
    }

    .navlinks {
        display: block
    }

    .navlinks>a,
    .dropdown {
        display: block;
        padding: 10px 0
    }

    .nav-cta {
        display: block;
        margin-top: 15px
    }

    .hero {
        min-height: 650px;
        height: 82vh
    }

    .hero h1 {
        font-size: 3.8rem
    }

    .hero-slide>img {
        object-position: 58% center
    }

    .hero-shade {
        background: linear-gradient(90deg, rgba(0, 0, 0, .86), rgba(0, 0, 0, .48))
    }

    .quickgrid {
        grid-template-columns: 1fr
    }

    .quickgrid>a {
        border: 0;
        border-bottom: 1px solid rgba(0, 0, 0, .15);
        min-height: 85px
    }

    .section {
        padding: 75px 0
    }

    .split-heading,
    .b197-grid,
    .theory-grid,
    .location-grid {
        grid-template-columns: 1fr;
        gap: 45px
    }

    .feature-grid {
        grid-template-columns: 1fr
    }

    .feature-grid article,
    .feature-grid article+article {
        padding: 28px 0;
        border-right: 0;
        border-bottom: 1px solid var(--line);
        min-height: 0
    }

    .feature-grid h3 {
        margin: 15px 0 5px
    }

    .class-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .class-card {
        height: 165px
    }

    .b197-card {
        padding: 28px
    }

    .map-wrap {
        height: 390px
    }

    .cta-inner {
        align-items: flex-start;
        flex-direction: column
    }

    .footer-main {
        grid-template-columns: 1fr;
        gap: 25px
    }

    .footer-links {
        flex-wrap: wrap
    }

   .footer-bottom {
        flex-direction: column;
        gap: 8px
    }

    .hero-actions {
        flex-wrap: wrap
    }
}

@media(max-width:520px) {
    .hero h1 {
        font-size: 3.15rem
    }

    .hero p {
        font-size: 1rem
    }

    .class-grid {
        grid-template-columns: 1fr 1fr
    }

    .class-card {
        padding: 20px;
        height: 145px
    }

    .class-card strong {
        font-size: 2rem
    }

    .class-card img {
        max-width: 75px;
        max-height: 48px
    }

    .b197-card {
        grid-template-columns: 1fr
    }

    .b197-card .big-number {
        grid-column: auto
    }

    .section-heading h2,
    .b197-copy h2,
    .theory h2,
    .location h2 {
        font-size: 2.8rem
    }
}

/* ── Interior pages ───────────────────────────────────── */
.inner-page {
    background: var(--paper)
}

.inner-page .site-header {
    position: relative;
    background: #101113;
    border-bottom: 1px solid #2b2b2b
}

.inner-page .page-shell {
    width: 100%;
    margin: 0;
    padding: 0
}

.page-intro {
    background: #101113;
    color: #fff;
    padding: 76px 0 82px;
    position: relative;
    overflow: hidden
}

.page-intro:after {
    content: "";
    position: absolute;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: var(--yellow);
    right: -150px;
    bottom: -235px
}

.page-intro .kicker {
    color: var(--yellow);
    margin-bottom: 13px
}

.page-intro h1 {
    font-size: clamp(3.1rem, 6vw, 6.2rem);
    line-height: .92;
    letter-spacing: -.05em;
    font-weight: 900;
    margin: 0;
    max-width: 950px
}

.page-intro p {
    font-size: 1.15rem;
    color: #aaa;
    margin: 22px 0 0;
    max-width: 620px
}

.page-content {
    padding-top: 78px;
    padding-bottom: 105px
}

.page-content h1 {
    font-size: clamp(2.2rem, 4vw, 3.8rem);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1;
    margin-bottom: 20px
}

.page-content h2 {
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -.02em;
    margin: 28px 0 14px
}

.page-content h3 {
    font-size: 1.22rem;
    font-weight: 900;
    margin-top: 30px
}

.page-content h4 {
    font-size: 1rem;
    font-weight: 800;
    color: #686868
}

.page-content p,
.page-content li {
    color: #565656
}

.page-content a {
    font-weight: 700;
    border-bottom: 1px solid #b89928
}

.page-content img {
    border-radius: 0
}

.page-content .row {
    --bs-gutter-x: 2.5rem
}

/* .page-about .page-content>.row:first-child,.page-gallery .page-content>.row:first-child,.page-calendar .page-content>.row:first-child,.page-seminars .page-content>.row:first-child{display:none} */
.page-about .page-content>.row {
    padding: 32px 0;
    margin-top: 0 !important;
    border-bottom: 1px solid var(--line);
    align-items: center
}

.page-about .page-content>.row img {
    /* background: #e8e5dd; */
    max-height: 270px;
    object-fit: contain;
    width: 100%
}

.page-about .page-content>.row h3 {
    font-size: 2rem;
    margin: 0 0 5px
}

.page-about .page-content>.row h4 {
    color: #9a7a08;
    margin-bottom: 15px
}

.page-contact .page-content>.row:first-child img {
    height: 330px;
    object-fit: cover;
    margin-bottom: 48px
}

.page-contact .page-content>.row:nth-child(2)>div {
    background: #fff;
    padding: 42px;
    border: 1px solid var(--line)
}

.page-contact .page-content>.row:nth-child(2)>div+div {
    padding: 0;
    background: transparent
}

.page-contact .page-content .text-center img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
    filter: grayscale(1)
}

.seminarbox {
    height: 100%;
    background: #fff;
    border: 1px solid var(--line);
    padding: 34px !important;
    box-shadow: 0 14px 45px rgba(0, 0, 0, .035)
}

.seminarbox h2 {
    margin-top: 0;
    font-size: 1.55rem
}

.seminarbox:before {
    content: "";
    display: block;
    width: 44px;
    height: 5px;
    background: var(--yellow);
    margin-bottom: 26px
}

.page-gallery .carousel {
    background: #111;
    padding: 14px
}

.page-gallery .carousel-item img {
    height: min(68vh, 720px);
    object-fit: contain;
    background: #111
}

.page-gallery .carousel-control-prev,
.page-gallery .carousel-control-next {
    background: rgba(0, 0, 0, .35);
    width: 70px
}

.page-calendar .page-content h3 {
    display: inline-block;
    background: #111;
    color: #fff;
    padding: 9px 14px;
    margin-right: 8px
}

.page-calendar .page-content h2 {
    display: inline-block;
    margin-right: 24px
}

.page-calendar .table {
    background: #fff;
    border: 1px solid var(--line)
}

.page-calendar .table thead {
    background: #111;
    color: #fff
}

.page-calendar .table th,
.page-calendar .table td {
    padding: 17px 20px;
    border-color: #e4e1da;
    vertical-align: middle
}

.page-calendar .table tbody+tbody {
    border-top: 7px solid var(--paper)
}

.page-class .page-content {
    max-width: 980px
}

.page-class .page-content>.row {
    background: #fff;
    border: 1px solid var(--line);
    padding: 42px;
    margin: 0
}

.page-class .page-content h1 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 28px
}

.page-class .page-content h1 img {
    max-width: 145px;
    max-height: 85px;
    margin: 0 !important
}

.page-class .page-content h2 {
    font-size: 1.8rem
}

.page-class .page-content ul {
    padding-left: 22px
}

.page-class .page-content li {
    padding: 5px 0
}

.page-legal .page-content {
    max-width: 980px
}

.page-legal .page-content>.row {
    background: #fff;
    border: 1px solid var(--line);
    padding: 42px;
    margin: 0
}

.page-legal .page-content h1 {
    font-size: 2.2rem
}

.page-legal .page-content h4 {
    color: #111;
    border-top: 1px solid var(--line);
    padding-top: 25px
}

.page-legal .footerlogo_bm {
    max-width: 240px;
    background: #111;
    padding: 12px
}

@media(max-width:900px) {
    .page-intro {
        padding: 55px 0 60px
    }

    .page-content {
        padding-top: 48px;
        padding-bottom: 70px
    }

    .page-contact .page-content>.row:nth-child(2)>div {
        padding: 28px
    }

    .page-contact .page-content .text-center img {
        min-height: 340px
    }

    .page-class .page-content>.row,
    .page-legal .page-content>.row {
        padding: 26px
    }

    .page-class .page-content h1 {
        align-items: flex-start;
        flex-direction: column
    }

    .page-calendar .table {
        font-size: .88rem
    }

    .page-calendar .table th,
    .page-calendar .table td {
        padding: 12px
    }

    .page-about .page-content>.row {
        padding: 25px 0
    }
}
.bm-credit{padding:16px 0 4px;border-top:1px solid rgba(255,255,255,.12);font-size:.72rem;color:rgba(255,255,255,.45)}.bm-credit a{color:rgba(255,255,255,.7);font-weight:700}
.live-map{position:relative;min-height:420px;overflow:hidden}.live-map iframe{width:100%;height:100%;min-height:420px;border:0;display:block}.map-open{position:absolute;right:16px;bottom:16px;background:#fff;color:var(--ink);padding:10px 14px;text-decoration:none;font-weight:700;box-shadow:0 4px 18px rgba(0,0,0,.15)}
.price-group{background:#fff;border:1px solid var(--line);padding:28px;margin-bottom:24px}.price-row{display:grid;grid-template-columns:1fr minmax(140px,220px);gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.price-row:last-child{border-bottom:0}.price-row strong{text-align:right}.price-note{display:block;color:var(--muted);font-size:.9rem;margin-top:4px}.content-section{margin-bottom:32px}.content-section textarea{min-height:120px}
@media(max-width:600px){.price-row{grid-template-columns:1fr}.price-row strong{text-align:left}}
/* bm development CMS: Klassenbilder mit feiner schwarzer Kontur */
.class-card img,
.page-class .class-hero-image {
    filter: drop-shadow(0.5px 0 0 #000000) drop-shadow(0 0.5px 0 #000000) drop-shadow(-0.5px 0 0 #000000) drop-shadow(0 -0.5px 0 #000000);
}
.class-card:hover img { filter: drop-shadow(0.5px 0 0 #000000) drop-shadow(0 0.5px 0 #000000) drop-shadow(-0.5px 0 0 #000000) drop-shadow(0 -0.5px 0 #000000); opacity:1; }
/* Google Maps wird aus Datenschutzgründen erst nach aktivem Opt-in geladen. */
.consent-map{min-height:420px;background:linear-gradient(135deg,var(--paper,#f5f3ee),#e8e5de);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.consent-map iframe{width:100%;height:100%;min-height:420px;border:0;display:block}
.map-consent{width:100%;min-height:420px;display:flex;align-items:center;justify-content:center;padding:32px;text-align:center}
.map-consent-inner{max-width:520px}.map-consent-inner h3{margin:.4rem 0 .8rem}.map-consent-inner p{margin-bottom:1.2rem}.map-consent-inner .text-link{display:block;margin-top:1rem}
.contact-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:start;padding:30px 0 70px}.contact-details h2,.contact-map h2{margin:.35rem 0 1.5rem}.contact-block{padding:20px 0;border-top:1px solid rgba(0,0,0,.12)}.contact-block>strong{display:block;margin-bottom:8px}.contact-block p{margin:0}.contact-hours>div{display:flex;justify-content:space-between;gap:24px;padding:5px 0}.contact-map .consent-map{margin-top:18px}
@media(max-width:767px){.contact-layout{grid-template-columns:1fr;gap:30px}.contact-hours>div{align-items:flex-start}.consent-map,.map-consent,.consent-map iframe{min-height:360px}}

/* Anreise / ÖPNV */
.arrival-copy{max-width:640px;margin:-.6rem 0 1rem}
.arrival-actions{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px}
.arrival-actions .btn{display:inline-flex;align-items:center;gap:8px}

/* Theoriekalender-Abonnement */
.calendar-subscribe-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;cursor:pointer;list-style:none;}
.calendar-subscribe-summary::-webkit-details-marker{display:none;}
.calendar-subscribe-summary:hover{background:rgba(0,0,0,.025);}
.calendar-subscribe-arrow{font-size:1.35rem;transition:transform .2s ease;}
.calendar-subscribe[open] .calendar-subscribe-arrow{transform:rotate(180deg);}
.calendar-subscribe-content{border-top:1px solid rgba(0,0,0,.1);}



/* Startseiten-News */
.home-news-feature{background:var(--ink);color:#fff;padding:28px 0}
.home-news-feature .container{display:grid;grid-template-columns:130px 1fr;gap:24px}
.home-news-label{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:900;color:var(--yellow);padding-top:10px}
.home-news-items{display:grid;gap:14px}
.home-news-items article{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:14px}
.home-news-items article:last-child{border-bottom:0;padding-bottom:0}
.home-news-items img{width:120px;height:85px;object-fit:cover}
.home-news-items h2{font-size:1.5rem;margin:2px 0 4px}
.home-news-items p{margin:0;color:rgba(255,255,255,.75)}
.home-news-items small{color:var(--yellow)}
.home-news-items .text-link{display:inline-block;margin-top:5px;color:#fff}
@media(max-width:800px){
    .home-news-feature .container{grid-template-columns:1fr}
    .home-news-items article{grid-template-columns:1fr}
    .home-news-items img{width:100%;height:180px}
}

/* v16 gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:150px;gap:16px;margin-bottom:60px}.gallery-tile{position:relative;grid-column:span 4;grid-row:span 2;padding:0;border:0;background:#111;overflow:hidden;cursor:zoom-in}.gallery-tile:nth-child(5n+2),.gallery-tile:nth-child(5n+4){grid-column:span 5}.gallery-tile:nth-child(5n+3){grid-column:span 3}.gallery-tile-featured{grid-column:span 8;grid-row:span 3}.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease,filter .45s ease}.gallery-tile:hover img{transform:scale(1.035);filter:brightness(.82)}.gallery-tile span{position:absolute;left:18px;right:18px;bottom:16px;color:#fff;text-align:left;font-weight:700;opacity:0;transform:translateY(8px);transition:.25s}.gallery-tile:hover span{opacity:1;transform:none}.gallery-lightbox[hidden]{display:none}.gallery-lightbox{position:fixed;z-index:9999;inset:0;background:rgba(0,0,0,.94);display:grid;place-items:center;padding:40px 90px}.gallery-lightbox figure{margin:0;max-width:min(1200px,90vw);max-height:88vh;text-align:center}.gallery-lightbox img{max-width:100%;max-height:82vh;object-fit:contain}.gallery-lightbox figcaption{color:#fff;margin-top:12px}.gallery-close,.gallery-prev,.gallery-next{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:52px;height:52px;font-size:2rem;line-height:1;cursor:pointer}.gallery-close{right:24px;top:24px}.gallery-prev{left:24px;top:50%}.gallery-next{right:24px;top:50%}.gallery-open{overflow:hidden}.schedule-row span{display:flex;flex-direction:column}.schedule-row span small{font-size:.72rem;opacity:.65;margin-bottom:2px}.schedule-row.is-cancelled{opacity:.58}.schedule-row.is-cancelled span{text-decoration:line-through}.schedule-empty{padding:22px 0;color:var(--muted)}
@media(max-width:800px){.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:190px;gap:10px}.gallery-tile,.gallery-tile:nth-child(n),.gallery-tile-featured{grid-column:span 1;grid-row:span 1}.gallery-tile-featured{grid-column:span 2;grid-row:span 2}.gallery-lightbox{padding:70px 16px}.gallery-prev{left:10px}.gallery-next{right:10px}}

/* Rechtliches / Realisierung */
.legal-content .content-section h3 {
    margin-top: 2rem;
}

.realization-block {
    text-align: left;
}

.realization-logo-link {
    display: inline-block;
    margin: 0.5rem 0 1.25rem;
}

.realization-logo {
    display: block;
    width: min(100%, 320px);
    height: auto;
}

/* bm CORE social media */
.social-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.social-link,.footer-social-link{display:inline-flex;align-items:center;gap:7px}.social-link svg,.footer-social-link svg{width:20px;height:20px;flex:0 0 20px;fill:currentColor;stroke:currentColor;stroke-width:1.7}.social-link svg rect,.social-link svg circle,.footer-social-link svg rect,.footer-social-link svg circle{fill:none}

/* bm CORE: News-Karten */
.page-content .news-card{height:100%;overflow:hidden;background:#fff;border:1px solid rgba(18,24,32,.14);border-radius:14px;box-shadow:0 8px 24px rgba(18,24,32,.06)}
.page-content .news-card-image{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;margin:0}
.page-content .news-card-content{padding:24px}
.page-content .news-card-content small{display:block;margin-bottom:14px;opacity:.72}
.page-content .news-card-content h2{margin-top:0}
.page-content .news-card-content p:last-child{margin-bottom:0}
@media(max-width:767.98px){.page-content .news-card-content{padding:20px}}


/* bm CORE 2.0.13: mobile calendar */
@media(max-width:900px){
    .page-calendar .calendar-table .calendar-course{display:none!important}
    .page-calendar .page-intro .container{position:relative;z-index:2}
    .page-calendar .page-intro:after{z-index:1;pointer-events:none}
}

.bm-whatsapp-float{position:fixed;right:24px;bottom:24px;z-index:1000;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff!important;box-shadow:0 8px 28px rgba(0,0,0,.24);transition:transform .2s,box-shadow .2s}
.bm-whatsapp-float svg{width:34px;height:34px;display:block}
.bm-whatsapp-float:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(0,0,0,.3)}
@media(max-width:900px){.bm-whatsapp-float{right:16px;bottom:16px;width:54px;height:54px}.bm-whatsapp-float svg{width:32px;height:32px}}

/* 3.1.3: Hero-USPs */
.hero-usps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:860px;margin-top:30px}
.hero-usp-box{min-height:112px;padding:18px 20px;display:flex;flex-direction:column;justify-content:center;border-radius:16px;background:var(--yellow);color:var(--ink);box-shadow:0 12px 30px rgba(0,0,0,.20)}
.hero-usp-box strong{display:block;font-size:clamp(1.9rem,3vw,2.8rem);line-height:1;font-weight:900;letter-spacing:-.03em}
.hero-usp-box span{display:block;margin-top:8px;font-size:1rem;line-height:1.25;font-weight:700}
@media(max-width:760px){.hero-usps{grid-template-columns:1fr;gap:10px}.hero-usp-box{min-height:88px}}

.image-text-blocks{display:grid;gap:clamp(54px,8vw,110px);margin:clamp(48px,7vw,90px) 0}.image-text-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,72px)}.image-text-block.is-reverse .image-text-media{order:2}.image-text-block.is-reverse .image-text-copy{order:1}.image-text-media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px}.image-text-copy h2{margin-top:0}.image-text-copy .richtext{font-size:1.02rem}@media(max-width:767px){.image-text-block{grid-template-columns:1fr}.image-text-block.is-reverse .image-text-media,.image-text-block.is-reverse .image-text-copy{order:initial}}
.core-block{padding:clamp(42px,6vw,88px) 0}.core-block+.core-block{margin-top:0}.core-container-narrow{max-width:900px}.core-bg-soft{background:#f6f7f8}.core-bg-primary{background:var(--primary);color:#111}.core-bg-dark{background:#151515;color:#fff}.core-bg-dark a{color:inherit}.core-bg-dark .card{color:#212529}.core-bg-default{background:transparent}
/* 4.1.3: image/text sections use Bootstrap's row/columns; legacy grid rule is neutralized. */
.core-content-blocks .image-text-block.row{display:flex;grid-template-columns:none;gap:0}
.core-content-blocks .image-text-block.row.is-reverse .image-text-media,.core-content-blocks .image-text-block.row.is-reverse .image-text-copy{order:initial}

/* 4.2.1 – CI-kontrastierte Standardbuttons */
.btn-primary{--bs-btn-bg:var(--yellow);--bs-btn-border-color:var(--yellow);--bs-btn-color:var(--primary-text,#111);--bs-btn-hover-color:var(--primary-text,#111);--bs-btn-active-color:var(--primary-text,#111);--bs-btn-hover-bg:color-mix(in srgb,var(--yellow) 82%,black);--bs-btn-hover-border-color:color-mix(in srgb,var(--yellow) 82%,black);--bs-btn-active-bg:color-mix(in srgb,var(--yellow) 76%,black);--bs-btn-active-border-color:color-mix(in srgb,var(--yellow) 76%,black)}

/* bm CORE 4.3.0 Hero-Slider */
.hero-slider,.hero-slide{position:absolute;inset:0}.hero-slide{opacity:0;pointer-events:none;transition:opacity .65s ease}.hero-slide.is-active{opacity:1;pointer-events:auto}.hero-slide>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.hero-slider-prev,.hero-slider-next{position:absolute;z-index:5;top:50%;transform:translateY(-50%);border:0;background:rgba(0,0,0,.38);color:#fff;width:46px;height:56px;font-size:2rem}.hero-slider-prev{left:18px}.hero-slider-next{right:18px}.hero-slider-dots{position:absolute;z-index:5;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:8px}.hero-slider-dots button{width:9px;height:9px;border:1px solid #fff;border-radius:50%;padding:0;background:transparent}.hero-slider-dots button.is-active{background:#fff}@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}}

/* bm CORE 4.3.9: empty legacy main shells must not create vertical whitespace before modular content. */
.page-content:empty{display:none}

/* bm CORE 4.3.63: Footer-Abstand in der tatsaechlich geladenen core.css */
.footer-logo-strip { margin-bottom: 3rem; }

/* 4.3.63: kompakte Unterseiten auf Übersichtsseiten */
.bm-subpages{margin:2rem 0 3rem}
.bm-subpages>h2{margin:0 0 1rem;font-size:clamp(1.3rem,2vw,1.7rem)}
.bm-subpages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:12px}
.bm-subpage-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:17px 20px;border:1px solid var(--line,#ddd);background:#fff;color:var(--ink,#111);text-decoration:none;transition:border-color .2s,transform .2s}
.bm-subpage-link:hover{border-color:var(--primary,#2daefb);transform:translateY(-2px);color:var(--ink,#111)}
.bm-subpage-info{display:grid;gap:4px;min-width:0}.bm-subpage-info strong{font-size:1.05rem;line-height:1.3}.bm-subpage-info small{font-size:.87rem;line-height:1.4;color:#626c71;font-weight:400}
.bm-subpage-arrow{font-size:1.35rem;flex-shrink:0;color:var(--primary,#2daefb)}
