* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    overflow-y: scroll;
}

body {
    min-height: 100%;
    margin: 0;
    color: #ffffff;
    background-color: #000000;
    background-image: url("../bilder/guit.jpg");
    background-position: top center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    font-family: Verdana, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.4;
}

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

a {
    color: #aaaaaa;
}

a:hover,
a:focus {
    color: #ffb53d;
    text-decoration: none;
}

/* Gesamte Website */

.site-wrapper {
    width: min(960px, calc(100% - 30px));
    min-height: 100vh;
    margin: 0 auto;
    background: rgba(0, 0, 0, 0.58);
}

/* Kopfbereich */

.site-header {
    min-height: 165px;
    padding: 10px 18px 15px;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 19px;
}

.site-title {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    white-space: nowrap;
    font-size: 53px;
    line-height: 1;
    font-weight: normal;
    letter-spacing: -2px;
}

.title-first {
    color: #ffffff;
}

.title-last {
    color: #bbbbbb;
}


.header-image {
    height: 140px;
    width: auto;
    max-height: none;
    margin-top: -2px;
    border: 0;
}


/* Navigation */

.main-navigation {
    padding: 0 10px;
}

.main-navigation ul {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.main-navigation li {
    margin: 0;
}

.main-navigation a {
    display: block;
    padding: 8px 7px 10px;
    font-size: 19px;          /* ca. 10 % grösser */
    text-transform: uppercase;
    font-weight: normal;
    color: #bbbbbb;           /* gleich wie "pfister" */
    text-decoration: none;
    background: transparent;
}

.main-navigation a:hover,
.main-navigation .active > a {
    color: #ffb53d;           /* dein Gold */
    background: transparent;
}

.menu-button {
    display: none;
    width: 100%;
    padding: 12px;
    color: #ffb53d;
    background: #111111;
    border: 1px solid #333333;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

/* Hauptinhalt */

.page-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 680px);
    align-items: start;
}


.sidebar {
    padding: 18px 10px 30px;
    text-align: center;
}



.sidebar img {
    display: block;
    margin: 0 auto 18px;
    border: 0;
}

.page-content {
    min-width: 0;
    padding: 14px 20px 50px 10px;
}

.page-content h1,
.page-content h2,
.page-content h3 {
    color: #ffb53d;
    font-weight: normal;
    line-height: 1.25;
}

.page-content h1 {
    margin: 0 0 18px;
    font-size: 26px;
}

.page-content h2 {
    margin: 32px 0 10px;
    font-size: 23px;
}

.page-content h3 {
    margin: 26px 0 8px;
    font-size: 19px;
}

.page-content p {
    margin: 0 0 16px;
}

.page-content-full {
    width: 100%;
    padding: 20px 30px 50px;
}

.editable-content p {
    margin: 0 0 12px;
}

.editable-content h2 {
    margin: 24px 0 8px;
    font-family: Verdana, Arial, sans-serif;
    font-size: 24px;
    line-height: 1.25;
    font-weight: normal;
    color: #ffb53d;
}

.editable-content img {
    display: block;
    width: 100%;
    max-width: 660px;
    height: auto;
    margin: 0 0 8px 0;
    border: 0;
}

.editable-content figure {
    margin: 16px 0 24px;
}

.editable-content figcaption {
    margin-top: 6px;
    color: #bbbbbb;
    font-size: 13px;
}

.editable-content video {
    display: block;
    width: 100%;
    max-width: 660px;
    height: auto;
    margin: 0 0 8px 0;
}

/* Footer */

.site-footer {
    padding: 20px;
    border-top: 1px solid #222222;
    color: #999999;
    text-align: center;
    font-size: 12px;
}

.site-footer p {
    margin: 0;
}

/* Smartphone und Tablet */

@media (max-width: 800px) {
.page-content-full {
    padding: 20px 16px 50px;
}
    body {
        background-attachment: scroll;
    }

    .site-wrapper {
        width: 100%;
    }

    .site-header {
        min-height: 85px;
        justify-content: center;
        align-items: center;
    }

    .site-title {
        font-size: clamp(30px, 9vw, 46px);
    }

    .menu-button {
        display: block;
    }

    .main-navigation ul {
        display: none;
        flex-direction: column;
    }

    .main-navigation ul.menu-open {
        display: flex;
    }

    .main-navigation a {
        padding: 11px 12px;
        border-bottom: 1px solid #222222;
    }

    .page-layout {
        display: block;
    }

    .sidebar {
        display: none;
    }

    .page-content {
        padding: 24px 20px 50px;
    }
}

/* Kompakte Darstellung der Live-Seite auf Desktop */

@media (min-width: 801px) {
    body.live-page .editable-content {
        font-size: 14px;
        line-height: 1.22;
    }

    body.live-page .editable-content h2 {
        margin: 22px 0 8px;
        font-size: 18px;
        line-height: 1.25;
    }

    body.live-page .editable-content p {
        margin: 0 0 3px;
    }

    body.live-page .editable-content hr {
        margin: 20px 0;
    }
}


/* Live-Seite: Locations Schweiz / Europa */

body.live-page .locations {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-top: 20px;
}

body.live-page .location-column {
    min-width: 0;
}

body.live-page .location-column h2 {
    margin: 0 0 10px;
    font-size: 18px;
}

body.live-page .location-column ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

body.live-page .location-column li {
    margin: 0 0 2px;
    padding: 0;
}

body.live-page .location-column img {
    display: block;
    width: 100%;
    max-width: 265px;
    height: auto;
    margin: 10px 0 16px;
}

@media (max-width: 800px) {
    body.live-page .locations {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    body.live-page .location-column img {
        max-width: 100%;
    }
}

/* Studio-/Alben-Seite */

body.studio-page .studio-content {
    padding-top: 20px;
}

body.studio-page .studio-content > h1 {
    margin: 0 0 14px;
    color: #ffb53d;
    font-family: Verdana, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.25;
    font-weight: normal;
}

body.studio-page .studio-intro {
    margin-bottom: 24px;
    font-size: 14px;
    line-height: 1.3;
}

body.studio-page .studio-intro p {
    margin: 0 0 4px;
}

body.studio-page .album-list {
    width: 100%;
}

body.studio-page .album-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 20px;
    margin-bottom: 18px;
}

body.studio-page .album-description {
    padding: 6px 10px;
    font-size: 14px;
    line-height: 1.35;
    text-align: right;
}

body.studio-page .album-cover {
    padding: 0 10px;
    text-align: left;
}

body.studio-page .album-cover img {
    display: inline-block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 0;
}

body.studio-page .album-item-reverse .album-description {
    order: 2;
    text-align: left;
}

body.studio-page .album-item-reverse .album-cover {
    order: 1;
    text-align: right;
}

body.studio-page .album-image-missing {
    color: #ffb53d;
    font-size: 12px;
}


/* Studio-Seite auf Smartphone und Tablet */

@media (max-width: 800px) {

    body.studio-page .album-item {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        min-height: 0;
        margin-bottom: 30px;
    }

    body.studio-page .album-description,
    body.studio-page .album-item-reverse .album-description {
        order: 1;
        width: 100%;
        padding: 8px 0;
        text-align: left;
    }

    body.studio-page .album-cover,
    body.studio-page .album-item-reverse .album-cover {
        order: 2;
        width: 100%;
        padding: 0;
        text-align: left;
    }

    body.studio-page .album-cover img {
        max-width: 100%;
    }
}

body.bands-page .bands-list {
    width: 100%;
}

body.bands-page .band-item {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr);
    align-items: start;
    gap: 20px;
    margin-bottom: 30px;
}

body.bands-page .band-image {
    text-align: center;
}

body.bands-page .band-image img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 570px;
    margin: 0 auto;
    border: 0;
}

body.bands-page .band-description {
    padding: 10px 10px 0;
    text-align: left;
}

body.bands-page .band-description h2 {
    margin: 0 0 22px;
    color: #ffb53d;
    font-family: Verdana, Arial, sans-serif;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.4;
}

body.bands-page .band-text {
    color: #ffffff;
    font-family: Verdana, Arial, sans-serif;
    font-size: 12px;
    font-weight: normal;
    line-height: 1.55;
}

body.bands-page .band-text p {
    margin: 0 0 22px;
}

body.bands-page .band-text a {
    color: #bbbbbb;
    text-decoration: underline;
}

body.bands-page .band-text a:hover,
body.bands-page .band-text a:focus,
body.bands-page .band-text a:active {
    color: #ffb53d;
    text-decoration: underline;
}

body.bands-page .band-image-missing {
    padding: 20px;
    border: 1px solid currentColor;
}

@media (max-width: 760px) {
    body.bands-page .band-item {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-bottom: 36px;
    }

    body.bands-page .band-description {
        padding: 0 10px;
    }

    body.bands-page .band-description h2 {
        margin-bottom: 14px;
    }
}

body.unterricht-page .unterricht-layout {
    display: grid;
    grid-template-columns: minmax(260px, 400px) minmax(0, 560px);
    align-items: start;
    gap: 0;
    width: 100%;
}

body.unterricht-page .unterricht-image {
    padding-top: 180px;
    text-align: center;
}

body.unterricht-page .unterricht-image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border: 0;
}

body.unterricht-page .unterricht-text {
    padding: 10px;
    color: #ffffff;
    font-family: Verdana, Arial, sans-serif;
    font-size: 15px;
    font-weight: normal;
    line-height: 1.55;
}

body.unterricht-page .unterricht-text {
    padding: 10px;
    color: #ffffff;
    font-family: Verdana, Arial, sans-serif;
    font-size: 15px;
    font-weight: normal;
    line-height: 1.25;
}

body.unterricht-page .unterricht-text h2 {
    margin: 0 0 10px;
    color: #ffb53d;
    font-family: Verdana, Arial, sans-serif;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.25;
}

body.unterricht-page .unterricht-text h2:not(:first-child) {
    margin-top: 16px;
}

body.unterricht-page .unterricht-text p {
    margin: 0 0 10px;
}

body.unterricht-page .unterricht-text ul {
    margin: 0 0 14px;
    padding-left: 14px;
}

body.unterricht-page .unterricht-text li {
    margin-bottom: 1px;
    line-height: 1.2;
}

body.unterricht-page .unterricht-text a {
    color: #bbbbbb;
    text-decoration: underline;
}

body.unterricht-page .unterricht-text a:hover,
body.unterricht-page .unterricht-text a:focus,
body.unterricht-page .unterricht-text a:active {
    color: #ffb53d;
}

@media (max-width: 760px) {
    body.unterricht-page .unterricht-layout {
        grid-template-columns: 1fr;
    }

    body.unterricht-page .unterricht-image {
        padding: 20px 10px;
    }

    body.unterricht-page .unterricht-text {
        padding: 10px;
    }
}

.news-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 680px);
    width: 960px;
    margin: 0 auto;
}

.news-sidebar {
    box-sizing: border-box;
    width: 280px;
    padding-top: 10px;
    text-align: center;
}

.news-sidebar-image {
    margin-bottom: 14px;
}

.news-sidebar-photo {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border: 0;
}

.news-content {
    box-sizing: border-box;
    width: 680px;
    padding: 8px 18px 40px 0;
    font-family: Verdana, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.35;
    color: #ffffff;
}

/* Captcha immer in gleicher Grösse darstellen */
.form-field.basic-captcha img,
.basic-captcha img {
    width: 200px;
    height: 70px;
    min-width: 200px;
    min-height: 70px;
    object-fit: contain;
    display: block;
}

.news-content h1,
.news-content h2 {
    margin: 18px 0 12px;
    font-family: Verdana, Arial, sans-serif;
    font-size: 24px;
    line-height: 1.2;
    font-weight: normal;
    color: #ffb53d;
}

.news-content h1:first-child {
    margin-top: 8px;
}

.news-content h3 {
    margin: 18px 0 8px;
    font-family: Verdana, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.25;
    font-weight: normal;
    color: #ffb53d;
}

.news-content p {
    margin: 0 0 12px;
}

.news-content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 14px 0 22px;
    border: 0;
}

.news-content a {
    color: #bbbbbb;
    text-decoration: underline;
}

.news-content a:hover {
    color: #ffb53d;
    text-decoration: underline;
}

@media (max-width: 980px) {
    .news-layout {
        grid-template-columns: 30% 70%;
        width: 100%;
    }

    .news-sidebar,
    .news-content {
        width: auto;
    }

    .news-sidebar {
        padding: 10px;
    }

    .news-content {
        padding: 8px 18px 40px 10px;
    }
}

@media (max-width: 700px) {
    .news-layout {
        display: block;
    }

    .news-sidebar {
        display: none;
    }

    .news-content {
        width: 100%;
        padding: 12px 18px 40px;
    }
}

.biografie {
    box-sizing: border-box;
    width: 960px;
    margin: 0 auto;
    padding: 10px 10px 40px;
}

.biografie h1 {
    margin: 0 0 18px;
    color: #ffb53d;
    font-family: Verdana, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.3;
    font-weight: normal;
}

.bio-row {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    column-gap: 20px;
    margin-bottom: 16px;
}

.bio-date,
.bio-text {
    font-family: Verdana, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.35;
    color: #ffffff;
}

.bio-text p {
    margin: 0 0 8px;
}

.bio-text p:last-child {
    margin-bottom: 0;
}

.bio-text ul {
    margin: 0 0 8px;
    padding-left: 18px;
}

.bio-text li {
    margin-bottom: 3px;
}

.bio-text a {
    color: #bbbbbb;
    text-decoration: underline;
}

.bio-text a:hover {
    color: #ffb53d;
}

@media (max-width: 700px) {
    .biografie {
        width: 100%;
        padding: 12px 18px 40px;
    }

    .bio-row {
        display: block;
        margin-bottom: 24px;
    }

    .bio-date {
        margin-bottom: 6px;
        color: #ffb53d;
    }
}

.contact-page-content {
    box-sizing: border-box;
    width: 960px;
    margin: 0 auto;
    padding: 10px 250px 50px;
    color: #ffffff;
    font-family: Verdana, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.4;
}

.contact-page-content h1 {
    margin: 0 0 18px;
    color: #ffb53d;
    font-size: 18px;
    font-weight: normal;
}

.contact-details {
    margin-bottom: 45px;
}

.contact-details p {
    margin: 0 0 14px;
}

.contact-details a {
    color: #bbbbbb;
    text-decoration: underline;
}

.contact-details a:hover {
    color: #ffb53d;
}

.contact-form-intro {
    margin-bottom: 20px;
}

@media (max-width: 700px) {
    .contact-page-content {
        width: 100%;
        padding: 15px 20px 40px;
    }
}

@media (max-width: 768px) {

    body.home-page .news-sidebar,
    body.archiv-page .news-sidebar {
        display: none;
    }

    body.home-page .news-layout,
    body.archiv-page .news-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    body.home-page .news-content,
    body.archiv-page .news-content {
        width: 100%;
        min-width: 0;
    }
}

/* =========================================================
   Mobile Navigation – abschliessende Korrektur
   Diese Regeln stehen bewusst ganz am Dateiende, damit sie
   frühere allgemeine Navigationsregeln sicher überschreiben.
   ========================================================= */

.mobile-navigation {
    display: none;
}

@media (max-width: 800px) {

    .site-header {
        min-height: 72px !important;
        padding: 6px 10px 8px !important;
        gap: 10px !important;
    }

    .header-image {
        height: 70px !important;
        width: auto !important;
        max-height: 70px !important;
    }

    .main-navigation {
        position: relative !important;
        padding: 0 !important;
        z-index: 20;
    }

    .main-navigation > .desktop-menu,
    .main-navigation > .menu-button {
        display: none !important;
    }

    .main-navigation > .mobile-navigation {
        display: block !important;
        position: relative !important;
        width: 100% !important;
    }

    .main-navigation .mobile-navigation-bar {
        display: grid !important;
        grid-template-columns: auto auto minmax(0, 1fr) auto !important;
        flex-direction: row !important;
        align-items: stretch !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: rgba(0, 0, 0, 0.50) !important;
        border-top: 1px solid rgba(255, 255, 255, 0.10);
        border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    }

    .main-navigation .mobile-navigation-bar > a,
    .main-navigation .mobile-navigation-bar > .mobile-more-button {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 0 !important;
        width: auto !important;
        margin: 0 !important;
        padding: 10px 5px !important;
        border: 0 !important;
        border-right: 1px solid rgba(255, 255, 255, 0.13) !important;
        color: #bbbbbb;
        background: transparent !important;
        font-family: Verdana, Arial, sans-serif;
        font-size: clamp(10px, 2.85vw, 14px) !important;
        line-height: 1 !important;
        font-weight: normal;
        text-align: center !important;
        text-decoration: none;
        text-transform: uppercase;
        white-space: nowrap !important;
        cursor: pointer;
    }

    .main-navigation .mobile-navigation-bar > :last-child {
        border-right: 0 !important;
    }

    .main-navigation .mobile-navigation-bar > a:hover,
    .main-navigation .mobile-navigation-bar > a:focus,
    .main-navigation .mobile-navigation-bar > a.active,
    .main-navigation .mobile-more-button:hover,
    .main-navigation .mobile-more-button:focus,
    .main-navigation .mobile-more-button[aria-expanded="true"] {
        color: #ffb53d;
        background: rgba(0, 0, 0, 0.18) !important;
    }

    .main-navigation ul.mobile-more-menu {
        display: none !important;
        position: absolute !important;
        top: 100% !important;
        right: 0 !important;
        z-index: 30 !important;
        flex-direction: column !important;
        width: min(250px, 72vw) !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
        background: rgba(0, 0, 0, 0.86) !important;
        border-left: 1px solid rgba(255, 255, 255, 0.15);
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
        box-shadow: 0 8px 18px rgba(0, 0, 0, 0.45);
    }

    .main-navigation ul.mobile-more-menu.menu-open {
        display: flex !important;
    }

    .main-navigation ul.mobile-more-menu li {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
    }

    .main-navigation ul.mobile-more-menu a {
        display: block !important;
        width: 100% !important;
        padding: 12px 15px !important;
        border: 0 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
        color: #bbbbbb;
        background: transparent !important;
        font-size: 14px !important;
        line-height: 1.2 !important;
        text-align: left !important;
        text-decoration: none;
        text-transform: uppercase;
    }

    .main-navigation ul.mobile-more-menu li:last-child a {
        border-bottom: 0 !important;
    }

    .main-navigation ul.mobile-more-menu .active > a,
    .main-navigation ul.mobile-more-menu a:hover,
    .main-navigation ul.mobile-more-menu a:focus {
        color: #ffb53d;
        background: rgba(255, 255, 255, 0.06) !important;
    }

    body.home-page .news-content {
        padding-top: 8px !important;
    }
}

/* =========================================================
   Mobile Navigation – Feinkorrektur:
   vier gleich breite Felder, einheitliche Schriftgrösse,
   kleineres Porträt
   ========================================================= */

@media (max-width: 800px) {

    .header-image {
        height: 60px !important;
        max-height: 60px !important;
    }

    .main-navigation .mobile-navigation-bar {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .main-navigation .mobile-navigation-bar > a,
    .main-navigation .mobile-navigation-bar > .mobile-more-button {
        width: 100% !important;
        padding: 11px 2px !important;
        font-size: clamp(12px, 3.25vw, 14px) !important;
        letter-spacing: -0.15px;
    }

    .main-navigation ul.mobile-more-menu a {
        font-size: clamp(12px, 3.25vw, 14px) !important;
    }
}

/* =========================================================
   Mobile Feinkorrektur:
   - keine Trennlinien zwischen den vier Hauptmenüpunkten
   - Porträt 94 px hoch
   - kleinere Überschriften auf Home, Live und Archiv
   ========================================================= */

@media (max-width: 800px) {

    .header-image {
        height: 94px !important;
        max-height: 94px !important;
    }

    .main-navigation .mobile-navigation-bar > a,
    .main-navigation .mobile-navigation-bar > .mobile-more-button {
        border-right: 0 !important;
    }

    body.home-page .news-content h1,
    body.home-page .news-content h2,
    body.archiv-page .news-content h1,
    body.archiv-page .news-content h2,
    body.live-page .editable-content h1,
    body.live-page .editable-content h2 {
        margin-top: 22px !important;
        margin-bottom: 8px !important;
        font-size: 18px !important;
        line-height: 1.3 !important;
    }

    body.home-page .news-content h1:first-child,
    body.home-page .news-content h2:first-child,
    body.archiv-page .news-content h1:first-child,
    body.archiv-page .news-content h2:first-child,
    body.live-page .editable-content h1:first-child,
    body.live-page .editable-content h2:first-child {
        margin-top: 8px !important;
    }
}

/* =========================================================
   Mobiler Header – Schriftzug und Porträt wie auf Desktop
   rechtsbündig, geringer Abstand, unten bündig
   ========================================================= */

@media (max-width: 800px) {

    .site-header {
        display: flex !important;
        justify-content: flex-end !important;
        align-items: flex-end !important;
        min-height: 112px !important;
        padding: 8px 14px 8px !important;
        gap: 8px !important;
    }

    .site-title {
        display: inline-flex !important;
        align-items: flex-end !important;
        margin: 0 !important;
        padding: 0 0 2px !important;
        font-size: clamp(29px, 8.2vw, 42px) !important;
        line-height: 0.88 !important;
        white-space: nowrap !important;
    }

    .header-image {
        display: block !important;
        flex: 0 0 auto !important;
        height: 94px !important;
        width: auto !important;
        max-height: 94px !important;
        margin: 0 !important;
    }
}

/* Auf sehr schmalen Displays Schriftzug etwas kompakter halten */
@media (max-width: 380px) {

    .site-header {
        padding-left: 8px !important;
        padding-right: 8px !important;
        gap: 6px !important;
    }

    .site-title {
        font-size: clamp(26px, 7.8vw, 34px) !important;
    }
}
