/* 
Theme Name: Othmar Schoeck Festival
Version: v.1.0
Description: Custom Theme für das Othmar Schoeck Festival
Author: Roman Hospenthal, RHOdesign
Author URI: http://www.rhodesign.ch/
*/


@import 'css/reset.css';
@import 'css/grid.css';
@import 'css/plugins.css';
@import 'css/helpers.css';

/*
* {
  outline: 1px solid red;
}
*/


/* ------------------------------------------------------------ *\
	Variables
\* ------------------------------------------------------------ */
:root {  
--fz-html: 62.5%;
--fw-base: 600;
--ff-base: 'Ufficio', Arial, sans-serif;
    
--c-weiss: #FFFFFF;
--c-schwarz: #1D000D;
--c-900: #53042E; /* Deep Plum */
--c-800: #770236; /* Wine */
--c-600: #C71774; /* Ruby Magenta */
--c-400: #FF5FBD; /* Bright Pink */
--c-100: #FFDEF2; /* Soft Blush */
    
    
/* Font sizes. */
--fontsize-header: 5.6rem;
--fontsize-header-titel: 2.6rem;
--fontsize-menu: clamp(2.7rem, 3.515vw + 0.679rem, 5.6rem);;
--fontsize-submenu: clamp(2.2rem, 1.597vw + 1.433rem, 4.5rem);
    
--font-size-21: clamp(1.8rem, 0.486vw + 1.567rem, 2.5rem);
--font-size-26: clamp(2.2rem, 0.556vw + 1.933rem, 3rem);
--font-size-40: clamp(2.8rem, 1.181vw + 2.233rem, 4.5rem);
--font-size-56: clamp(3.7rem, 1.806vw + 2.833rem, 6.3rem);
   
--font-size-15: 1.5rem;
--font-size-12: 1.2rem;
    
/* Line heights. */
--line-height-xs: 1;
--line-height-sm: 1.1;
--line-height-md: 1.3;
--line-height-lg: 1.5;
}


@media (max-width: 991px) {
:root {  
--fontsize-header: 4.5rem;
--fontsize-header-titel: 2.1rem;
}
}
@media (max-width: 767px) {
:root {  
--fontsize-header: 3.7rem;
--fontsize-header-titel: 1.7rem;
}
}


/* ------------------------------------------------------------ *\
	Fonts
\* ------------------------------------------------------------ */

/* Ufficio 600 */
@font-face {
  font-family: 'Ufficio';
  src: url('fonts/Ufficio-600.woff2') format('woff2'),
       url('fonts/Ufficio-600.woff') format('woff'),
       url('fonts/Ufficio-600.otf') format('opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* Ufficio 800 */
@font-face {
  font-family: 'Ufficio';
  src: url('fonts/Ufficio-800.woff2') format('woff2'),
       url('fonts/Ufficio-800.woff') format('woff'),
       url('fonts/Ufficio-800.otf') format('opentype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}






/* ------------------------------------------------------------ *\
	Base
\* ------------------------------------------------------------ */
html {font-size: var(--fz-html); }


body { 
min-width: 320px; 
background: var(--c-weiss); 
font-family: var(--ff-base); 
font-weight: var(--fw-base);
font-size: var(--font-size-21); 
line-height: var(--line-height-md); 
color: var(--c-schwarz); 
letter-spacing: 0.01em; 
padding: 30px;
position: relative;
z-index: 0;
hyphens: auto;
}

@media (max-width: 991px) {
body { padding: 25px;}
}
@media (max-width: 767px) {
body { padding: 20px;}
}

/* Optional: Scroll Lock 
body.body-fixed { overflow: hidden;}
*/

.no-hyphen { hyphens: none;}


.main,
.container,
.container--fluid {
  position: relative;
}

a { color: inherit; text-decoration: none; transition: color .3s; }
a:hover,
a[href^="tel"] { text-decoration: none; }
p,ul,ol,dl,hr,table,blockquote { margin-bottom: 1.5em; }

p:last-child,
ul:last-child { margin-bottom: 0; }








/* ------------------------------------------------------------ *\
	Wrapper
\* ------------------------------------------------------------ */
.wrapper {display: flex;flex-direction: column;min-height: 100vh; position:  relative}
.main { }

@media (max-width: 767px) {
.main {padding-top: 0px; }
}
@media (max-width: 575px) {
.main {padding-top: 0px; }
}





.container { max-width: 152rem; margin-inline: auto; width: 100%;}

.container--fluid { max-width: none; position: relative; overflow: hidden}
.container-padding {padding-inline: 6rem}
.container-padding-menu {padding-inline: 9rem}
@media (max-width: 991px) {
.container-padding {padding-inline: 3rem}
}
@media (max-width: 767px) {
.container-padding {padding-inline: 1.5rem}
.container-padding-menu {padding-inline: 1.5rem}
}


.container a {color: var(--c-purple); }
.container a:hover {color: var(--c-schwarz);}







/* ------------------------------------------------------------ *\
	Miscs
\* ------------------------------------------------------------ */
.text-center {text-align: center;}
.textright { text-align: right; }
.relative {position: relative; }

small {font-size: 0.8em; line-height: 0.7em;}
strong { font-weight:900;}

.section {display: block; clear: both; position: relative; width: 100%; }









/* ------------------------------------------------------------ *\
	Paddings
\* ------------------------------------------------------------ */

.ptop45 { padding-top: clamp(3rem, 1.818vw + 1.955rem, 4.5rem);}
.ptop60 { padding-top: clamp(4.5rem, 1.818vw + 3.455rem, 6rem);}
.ptop90 { padding-top: clamp(6rem, 3.636vw + 3.909rem, 9rem);}

.pbottom45 { padding-bottom: clamp(3rem, 1.818vw + 1.955rem, 4.5rem);}
.pbottom60 { padding-bottom: clamp(4.5rem, 1.818vw + 3.455rem, 6rem);}
.pbottom90 { padding-bottom: clamp(6rem, 3.636vw + 3.909rem, 9rem);}

.mbottom50 { margin-bottom: clamp(3.00rem, calc(1.786vw + 2.429rem), 9999px);}
.mbottom80 { margin-bottom: clamp(5.00rem, calc(2.679vw + 4.143rem), 9999px);}


/* ------------------------------------------------------------ *\
	Headings
\* ------------------------------------------------------------ */
h1, h2, h3, h4, h5, h6 {  -webkit-transition: all .2s; -moz-transition: all .2s; -o-transition: all .2s; -ms-transition: all .2s; transition: all .2s; hyphens: manual;}
h1 { font-weight:600; color: var(--c-schwarz); font-size: var(--font-size-56); line-height: var(--line-height-sm); margin-bottom: 1.5rem; text-transform: uppercase; letter-spacing: 0.02em}
h2 { font-weight:800; color: var(--c-schwarz); font-size: var(--font-size-40); line-height: var(--line-height-sm); margin-bottom: 1.5rem;  letter-spacing: 0.02em }
h3 { font-weight:800; color: var(--c-schwarz); font-size: var(--font-size-26); line-height: var(--line-height-sm); margin-bottom: 1.2rem;  letter-spacing: 0.02em }




/* ------------------------------------------------------------ *\
	Hintergrundfarben
\* ------------------------------------------------------------ */
.hintergrundfarbe1 {background-color: var(--c-900); color: var(--c-weiss) }
.hintergrundfarbe1 h1, .hintergrundfarbe1 h2, .hintergrundfarbe1 h3 {color:  var(--c-weiss)}

.hintergrundfarbe2 {background-color: var(--c-800); color: var(--c-weiss) }
.hintergrundfarbe2 h1, .hintergrundfarbe2 h2, .hintergrundfarbe2 h3 {color:  var(--c-weiss)}

.hintergrundfarbe3 {background-color: var(--c-600); }

.hintergrundfarbe4 {background-color: var(--c-400) }

.hintergrundfarbe5 {background-color: var(--c-100);  color: var(--c-900) }
.hintergrundfarbe5 h1, .hintergrundfarbe5 h2, .hintergrundfarbe5 h3 {color:  var(--c-900)}

.hintergrundfarbe6 {background-color: var(--c-weiss);  color: var(--c-900) }
.hintergrundfarbe6 h1, .hintergrundfarbe6 h2, .hintergrundfarbe6 h3 {color:  var(--c-900)}

.hintergrundfarbe7 {background-color: var(--c-schwarz); color: var(--c-weiss) }
.hintergrundfarbe7 h1, .hintergrundfarbe7 h2, .hintergrundfarbe7 h3 {color:  var(--c-weiss)}


/* Linie, wenn mehrere gleichfarbige Elemente nacheinander */
.hintergrundfarbe1:has(+ .hintergrundfarbe1) { border-bottom: 2px solid var(--c-schwarz);}
.hintergrundfarbe2:has(+ .hintergrundfarbe2) { border-bottom: 2px solid var(--c-schwarz);}
.hintergrundfarbe3:has(+ .hintergrundfarbe3) { border-bottom: 2px solid var(--c-schwarz);}
.hintergrundfarbe4:has(+ .hintergrundfarbe4) { border-bottom: 2px solid var(--c-schwarz);}
.hintergrundfarbe5:has(+ .hintergrundfarbe5) { border-bottom: 2px solid var(--c-schwarz);}
/* .hintergrundfarbe6:has(+ .hintergrundfarbe6) { border-bottom: 2px solid var(--c-schwarz);}*/
.hintergrundfarbe7:has(+ .hintergrundfarbe7) { border-bottom: 2px solid var(--c-weiss);}





/* ------------------------------------------------------------ *\
	Listen
\* ------------------------------------------------------------ */
ul{ list-style: none;   }

.section-text ul{ list-style: none; padding:0;  margin:0 0 25px 0;  }
.section-text ul li{ padding-left: 1.5em; text-indent: -1.7em; padding-bottom: 0.8em   }
.section-text ul li:before { content: "—"; padding-right:0.7em; }

.section-text ol { list-style: none; counter-reset: my-awesome-counter; margin:0 0 30px 0;}
.section-text ol li { counter-increment: my-awesome-counter; padding-bottom: 5px; }
.section-text ol li::before { content: counter(my-awesome-counter) ". ";  }








/* ------------------------------------------------------------ *\
	Header
\* ------------------------------------------------------------ */
.header { position: relative; width: 100%; box-sizing: border-box;}



/* ------------------------------------------------------------ *\
	Nav Wrapper / Triger
\* ------------------------------------------------------------ */
.nav-wrapper { position: absolute; top: -30px; right: 20px; z-index: 1000; display: flex; align-items: center;}
.nav-trigger { position: fixed; top: 0; right: 0; width: 62px; height: 62px; background: var(--c-schwarz); z-index: 1000; display: flex; justify-content: center; align-items: center;}

.nav-trigger span { position: absolute; width: 38px; height: 6px; background: var(--c-400); display: block; transform-origin: center; transition: all 0.3s ease;}
.nav-trigger.open span { width: 52px;}

.nav-trigger span:nth-child(1) {transform: translateY(-16px);}
.nav-trigger span:nth-child(2) { transform: translateY(0);}
.nav-trigger span:nth-child(3) { transform: translateY(16px);}

.nav-trigger.open span:nth-child(1) {transform: translateY(0) rotate(45deg);}
.nav-trigger.open span:nth-child(2) { opacity: 0;}
.nav-trigger.open span:nth-child(3) {transform: translateY(0) rotate(-45deg);}

@media (max-width: 991px) {
.nav-trigger { width: 50px; height: 50px; }
.nav-trigger span { width: 30px; height: 5px; }  
.nav-trigger.open span { width: 42px;}
.nav-trigger span:nth-child(1) {transform: translateY(-12px);}
.nav-trigger span:nth-child(2) { transform: translateY(0);}
.nav-trigger span:nth-child(3) { transform: translateY(12px);}
}
@media (max-width: 767px) {
.nav-wrapper { top: -20px; right: 10px;}
.nav-trigger { width: 40px; height: 40px;}
.nav-trigger span { width: 26px; height: 4px;}
.nav-trigger.open span {width: 37px;}
.nav-trigger span:nth-child(1) {transform: translateY(-10px);}
.nav-trigger span:nth-child(2) { transform: translateY(0);}
.nav-trigger span:nth-child(3) { transform: translateY(10px);}
}



/* ------------------------------------------------------------ *\
	Page Frame
\* ------------------------------------------------------------ */
.page-frame { position: fixed; inset: 0; pointer-events: none; z-index: 100; will-change: transform;}
.page-frame .frame { position: absolute; background: var(--c-schwarz);}
.page-frame .top { top: 0;left: 0; right: 0; height: 30px;}
.page-frame .bottom { bottom: 0;left: 0; right: 0; height: 30px;}
.page-frame .left { top: 0; bottom: 0;left: 0; width: 30px;}
.page-frame .right { top: 0; bottom: 0; right: 0; width: 30px;}
@media (max-width: 991px) {
.page-frame .top { height: 25px;}
.page-frame .bottom { height: 25px;}
.page-frame .left { width: 25px;}
.page-frame .right { width: 25px;}
}
@media (max-width: 767px) {
.page-frame .top { height: 20px;}
.page-frame .bottom { height: 20px;}
.page-frame .left { width: 20px;}
.page-frame .right { width: 20px;}
}


body { background: var(--c-schwarz); }

body:before,
body:after { background: var(--c-schwarz); content: ""; display: block; position: fixed; z-index: 100; pointer-events: none;}

body:before { top: 0; left: 0; width: 100%; height: 30px;}
body:after { bottom: 0; left: 0; width: 100%; height: 30px;}

@media (max-width: 991px) {
body:before {  height: 25px;}
body:after {  height: 25px;}
}
@media (max-width: 767px) {
body:before {  height: 20px;}
body:after {  height: 20px;}
}

.menu-overlay { border-right: 30px solid var(--c-schwarz); border-left: 30px solid var(--c-schwarz);}
@media (max-width: 991px) {
.menu-overlay { border-right: 25px solid var(--c-schwarz); border-left: 25px solid var(--c-schwarz);}
}
@media (max-width: 767px) {
.menu-overlay { border-right: 20px solid var(--c-schwarz); border-left: 20px solid var(--c-schwarz);}
}





/* ------------------------------------------------------------ *\
	Logos / Typography (UI Frame)
\* ------------------------------------------------------------ */

.ui-scroll-layer { position: absolute; inset: 0; z-index: 1000; pointer-events: none; height: 100vh; height: 100dvh;overflow: hidden;}

.nav-fixed { position: fixed; top: 0; right: 0; z-index: 2000;}
.nav-fixed a,.nav-fixed .nav-wrapper { pointer-events: auto;}

.logo { display: inline-block; width: auto;}

.ui-scroll-layer a,
.ui-scroll-layer .menu-label {
  pointer-events: auto;
}


/* MENU LABEL */
.menu-label { position: absolute; top: 0; right: 62px; z-index: 1000; cursor: pointer; display: inline-block; background: var(--c-schwarz); color: var(--c-400); padding: 5px 0 0 10px; height: 62px; line-height: 62px; text-transform: uppercase; font-size: var(--fontsize-header); letter-spacing: 0.02em; }

@media (max-width: 991px) {
.menu-label { right: 50px; height: 50px; line-height: 50px; }
}
@media (max-width: 767px) {
.menu-label { display: none; }
}


/* FESTIVAL */
.festival { position: absolute; top: 0; left: 0; z-index: 1000; display: inline-block; background: var(--c-schwarz); color: var(--c-400); padding: 5px 10px 0 7px; height: 62px; line-height: 62px; text-transform: uppercase; font-size: var(--fontsize-header); letter-spacing: 0.02em; }

@media (max-width: 991px) {
.festival { height: 50px; line-height: 50px; }
}
@media (max-width: 767px) {
.home .festival { font-size: var(--fontsize-header); height: 40px; padding: 0 5px; background: var(--c-schwarz); line-height: 45px; }
.home.menu-open .festival { font-size: var(--fontsize-header-titel); padding: 0 4px; height: 25px; background: transparent; line-height: 25px; }
.festival { font-size: var(--fontsize-header-titel); padding: 0 4px; height: 25px; background: transparent; line-height: 25px; }
}


/* OTHMAR SCHOECK */
.othmar-scheock { position: absolute; left: 0px; top: 52px; z-index: 1000; display: inline-block; background: var(--c-schwarz); color: var(--c-400); padding: 0 10px; height: 62px; white-space: nowrap; text-transform: uppercase; font-size: var(--fontsize-header); letter-spacing: 0.02em; transform: rotate(-90deg) translateX(-100%); transform-origin: left top; }

@media (max-width: 991px) {
.othmar-scheock { top: 42px; height: 50px; }
}
@media (max-width: 767px) {
.home .othmar-scheock { top: 40px; font-size: var(--fontsize-header); padding: 0 0 0 7px; height: 40px; background: var(--c-schwarz); }
.home.menu-open .othmar-scheock { top: 22px; font-size: var(--fontsize-header-titel); padding: 0; height: 25px; background: transparent; }
.othmar-scheock { top: 22px; font-size: var(--fontsize-header-titel); padding: 0; height: 25px; background: transparent; }
}


/* DATE LABEL */
.date-label-text { position: absolute; right: 0; bottom: 0; z-index: 1000; background: var(--c-schwarz); color: var(--c-weiss); padding: 10px 0 5px 0; writing-mode: vertical-lr; text-transform: uppercase; font-size: var(--fontsize-header); letter-spacing: 0.02em; color: var(--c-400); line-height: 1; }
@media (max-width: 767px) {
 .home .date-label-text { font-size: var(--fontsize-header); background: var(--c-schwarz); bottom: 15px; }
 .home.menu-open .date-label-text { font-size: var(--fontsize-header-titel); background: transparent; bottom: 15px; right: 2px; }
 .date-label-text { font-size: var(--fontsize-header-titel); background: transparent; bottom: 15px; right: 2px;}
}


.logo.festivaltitel { position: fixed; bottom: -5px; right: 62px; text-transform: uppercase; font-size: var(--fontsize-header-titel); letter-spacing: 0.02em; color: var(--c-400); z-index: 1000; opacity: 1; transition: opacity 0.5s ease; pointer-events: none; }
.logo.festivaltitel.hidden { opacity: 0; }

@media (max-width: 767px) {
.logo.festivaltitel { display: none; }
}





/* ------------------------------------------------------------ *\
	Menu Overlay
\* ------------------------------------------------------------ */
.menu-overlay { position: fixed; inset: 0; width: 100%; height: 100dvh; background: var(--c-900); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.25s ease, visibility 0.25s ease; z-index: 99;}
.menu-overlay.nav-open { opacity: 1; visibility: visible; pointer-events: auto; }

.menu-overlay__scroll { height: 100dvh; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch;}

.menu-overlay__grid { height: 100%; display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr auto; padding-top: 12rem;}

/* TOP RIGHT */
.menu-overlay__top { grid-row: 1; justify-self: end;}

/* BOTTOM AREA: FLEX statt GRID */
.menu-overlay__bottom-row { grid-row: 2; display: flex; justify-content: space-between;align-items: flex-end; flex-wrap: wrap; gap: 2rem; padding-bottom: 7rem;}

.menu-overlay__social,
.menu-overlay__bottom { flex: 0 1 auto;}

@media (max-width: 768px) {
.menu-overlay__grid {  padding-top: 8rem; display: flex; flex-direction: column; gap: 2em;}
.menu-overlay__top { order: 1;}
.menu-overlay__bottom-row { margin-top: auto;  order: 2; display: flex; flex-direction: column; align-items: flex-start; gap: .5em; padding-bottom: 4rem;}
.menu-overlay__social { order: 2;}
.menu-overlay__bottom { order: 1;}
}



/* ------------------------------------------------------------ *\
    Hauptnavigation
\* ------------------------------------------------------------ */
.menu-overlay__main { text-align: right; width: 100%; margin-bottom: 2rem !important; }
.menu-overlay__main, .menu-overlay__main li, .menu-overlay__main ul { margin: 0; padding: 0; list-style: none; }

/* Top-Level Items */
.menu-overlay__main li { display: block; margin-bottom: 4px; }
.menu-overlay__main > li > a { display: block; position: relative; padding: 0 1em 0 0; font-size: var(--fontsize-menu); line-height: 1.3; color: var(--c-weiss); text-decoration: none; text-align: right; text-transform: uppercase; transition: color 0.3s ease; }
.menu-overlay__main > li > a:hover { color: var(--c-400); }

/* Submenu */
.menu-overlay__main .sub-menu { display: none; padding: 0 0 0.6em 0; overflow: hidden; }
.menu-overlay__main .sub-menu li a { display: block; padding: 0; font-size: var(--fontsize-submenu); color: var(--c-weiss); text-align: right; transition: all 0.3s ease; }
.menu-overlay__main .sub-menu li a:hover { color: var(--c-400); }

/* Accordion Icon (+ / -) */
.menu-item-has-children > a { position: relative; }

/* plus/minus basis */
.menu-item-has-children > a::before, .menu-item-has-children > a::after { content: ""; position: absolute; right: 0.3em; top: 50%; transform: translate(50%, calc(-50% - 3px)); background: var(--c-weiss); transition: opacity 0.2s ease, background 0.2s ease; }

/* horizontal line */
.menu-item-has-children > a::before { width: 0.6em; height: 0.12em; }

/* vertical line */
.menu-item-has-children > a::after { width: 0.12em; height: 0.6em; }

/* ------------------------------------------------------------ *\
 OPEN STATE (JS d)
\* ------------------------------------------------------------ */
/* JS open state */
.menu-item-has-children.is-open > a { color: var(--c-400); }
.menu-item-has-children.is-open > a::after { opacity: 0; }

/* ------------------------------------------------------------ *\
 ICON COLOR STATES
\* ------------------------------------------------------------ */
.menu-item-has-children > a:hover::before, 
.menu-item-has-children > a:hover::after, 
.menu-item-has-children.is-open > a::before, 
.menu-item-has-children.is-open > a::after, 
.menu-item-has-children.current-menu-ancestor > a::before, 
.menu-item-has-children.current-menu-parent > a::before, 
.menu-item-has-children.current-menu-ancestor > a::after, 
.menu-item-has-children.current-menu-parent > a::after { background: var(--c-400); }




/* ------------------------------------------------------------ *\
    External Links
\* ------------------------------------------------------------ */

.menu-item.external-link > a {
    position: relative;
    padding-right: 1em;
}

.menu-item.external-link > a::after {
    content: "↗";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    line-height: 1;
    color: var(--c-weiss);
    transition: color 0.2s ease;
}

.menu-item.external-link > a:hover::after {
    color: var(--c-400);
}

/* ------------------------------------------------------------ *\
    Active States (WordPress)
\* ------------------------------------------------------------ */

/* parent / ancestor active */
.menu-item-has-children.current-menu-ancestor > a,
.menu-item-has-children.current-menu-parent > a,
.menu-item-has-children.current_page_item > a {
    color: var(--c-400);
}

/* active submenu item */
.sub-menu li.current-menu-item > a,
.sub-menu li.current_page_item > a {
    color: var(--c-400);
}

/* show submenu when active (no JS needed for initial state) */
.menu-item-has-children.current-menu-ancestor > .sub-menu,
.menu-item-has-children.current-menu-parent > .sub-menu,
.menu-item-has-children.current-menu-item > .sub-menu {
    display: block;
}

/* ------------------------------------------------------------ *\
    Mobile fix
\* ------------------------------------------------------------ */

@media (max-width: 768px) {
    .menu-overlay__main .sub-menu {
        display: none;
        padding: 0 0 0.5em 0;
        overflow: hidden;
    }
}



/* ------------------------------------------------------------ *\
	Menu Secondary
\* ------------------------------------------------------------ */
.menu-overlay__secondary { display: flex; gap: 2rem; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; justify-content: flex-end; }
.menu-overlay__secondary li { margin: 0; padding: 0; }
.menu-overlay__secondary a { position: relative; display: inline-block; padding: 8px 12px 5px; font-size: var(--font-size-21); font-weight: 800; line-height: var(--line-height-xs); color: var(--c-900); text-decoration: none; background: transparent; transition: color 0.3s ease; z-index: 1; }
.menu-overlay__secondary a::before { content: ""; position: absolute; inset: 0; background: var(--c-400); z-index: -1; transition: all 0.3s ease; }
.menu-overlay__secondary a:hover { color: var(--c-800); }
.menu-overlay__secondary a:hover::before { inset: -2px; background: var(--c-weiss); }








/* ------------------------------------------------------------ *\
	Section Text
\* ------------------------------------------------------------ */
.section-text { }
.section-text.section-gonner {}
.section-text.section-gonner h2 {margin-bottom: 1rem}

.section-text.section-gonner .byline {color: var(--c-400)}
.section-text.section-gonner.hintergrundfarbe4 .byline {color: var(--c-800)}
.section-text.section-gonner ul.quicklinks {margin-top: 4rem; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; justify-content: flex-start; gap: 3rem; margin-bottom: 0}

@media (max-width: 767px) {
.section-text.section-gonner .byline {margin-bottom: 25px}
.section-text.section-gonner ul.quicklinks {justify-content: center; text-align: center; gap: 1.5rem; flex-direction: column}
}


/* ------------------------------------------------------------ *\
	Section Hero Home
\* ------------------------------------------------------------ */
.hero-home { height: 100dvh; position: relative; overflow: hidden;}
.hero-home  .container--fluid  { height: 100%;}
.hero-media { width: 100%; height: 100%;}

.hero-media picture,
.hero-media img { width: 100%; height: 100%; display: block;}

.hero-media img { object-fit: cover;  }




/* ------------------------------------------------------------ *\
	Section Titel mit Lead
\* ------------------------------------------------------------ */
.section-titel-mit-lead { font-size: var(--font-size-26); min-height: 66vh; display: flex; }

.section-titel-mit-lead.single-event-header { font-size: var(--font-size-21);  }
.section-titel-mit-lead.single-event-lead { min-height: unset; display: block; }

.section-titel-mit-lead p:last-of-type {margin-bottom: 0;}

.section-titel-mit-lead .lead-container { display: flex; width: 100%;}
.section-titel-mit-lead .row { display: flex; width: 100%;}
.section-titel-mit-lead .lead-col { display: flex;}

.lead-content { margin-top: auto; padding-bottom: 50px; }

@media (max-width: 767px) {
.section-titel-mit-lead {  min-height: calc(100dvh - 25px); }
}




/* ------------------------------------------------------------ *\
	Section Übertitel
\* ------------------------------------------------------------ */
.section-ubertitel h1 {margin-bottom: 0}




/* ------------------------------------------------------------ *\
	Section Quicklinks
\* ------------------------------------------------------------ */
.section-quicklinks {}
ul.quicklinks { list-style-type: none; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap;-webkit-box-pack: center;-ms-flex-pack: center;justify-content: center; gap: 3rem; margin-bottom: 0}
ul.quicklinks li { padding-left:0; text-indent: unset; padding-bottom: 0 }
ul.quicklinks li:before { content: none; padding-right: 0; }
ul.quicklinks li a {}

@media (max-width: 767px) {
ul.quicklinks {justify-content: center; text-align: center; gap: 1.5rem; flex-direction: column}
}





.has-border { border-bottom: 2px solid var(--c-schwarz);}

/* ------------------------------------------------------------ *\
	Section Events
\* ------------------------------------------------------------ */
.section-veranstaltungen_alle {}

.no-event h2 {margin-bottom: 0;}

.event-item {}
.event-item .eventdate {font-weight:800; font-size: var(--font-size-40); line-height: var(--line-height-sm); margin-bottom: 0; letter-spacing: 0.02em  }
.event-item.has-border { border-bottom: 2px solid var(--c-schwarz);}

@media (max-width: 767px) {
.event-item .eventdate {margin-bottom: 1.5rem;  }
}

.events-bg-1 {background-color: var(--c-400); color:  var(--c-schwarz); }
.events-bg-1 h2 {color:  var(--c-schwarz); }
.events-bg-1 .eventdate {color: var(--c-schwarz); }

.events-bg-2 {background-color: var(--c-800); color:  var(--c-weiss); }
.events-bg-2 h2 {color:  var(--c-weiss); }

.events-bg-3 {background-color: var(--c-900); color:  var(--c-weiss); }
.events-bg-3 h2 {color:  var(--c-weiss); }

.events-bg-1 .btn { color: var(--c-400);}
.events-bg-1 .btn:before { background: var(--c-schwarz);}
.events-bg-1 .btn:hover {color: var(--c-schwarz);}
.events-bg-1 .btn:hover::before { background: var(--c-weiss);}

.events-bg-2 .btn,
.events-bg-3 .btn { color: var(--c-schwarz);}
.events-bg-2 .btn:before,
.events-bg-3 .btn:before { background: var(--c-400);}
.events-bg-2 .btn:hover,
.events-bg-3 .btn:hover {color: var(--c-schwarz);}
.events-bg-2 .btn:hover::before,
.events-bg-3 .btn:hover::before { background: var(--c-weiss);}


.eventbeschrieb {margin-bottom: clamp(2rem, 1.212vw + 1.303rem, 3rem);}
.eventbeschrieb p:past-of-type {margin-bottom: 0}

/* Eventangaben mit Icons */
.eventangaben { display: flex; flex-direction: column; gap: 2px;}
.eventangabe { display: flex; align-items: center;}
.eventangabe .ico { margin-right: 20px; flex-shrink: 0; margin-top: -4px}

/* Buttons */
.button-col { display: flex;}
.button-col .buttons { margin-top: auto; /* schiebt Block nach unten */ display: flex; flex-direction: column; gap: 15px; align-items: flex-end; }
.button-col .buttons .btn { margin-top: 0; display: inline-flex;  align-items: center; width: auto; }

@media (max-width: 991px) {
.button-col .buttons { margin-top: 2rem; flex-direction: row; gap: 1.5rem; align-items: flex-start; }
}




/* =========================================================
   PROGRAMM LAYOUT
========================================================= */
.section-programm {}

.programm-row {padding: 15px 0; position: relative;}

/* Trenner zwischen Zeilen */
.programm-row::after {content: ""; display: block; margin: 15px 15px 0; border-bottom: 1px solid var(--c-400); width: 100%;}
.programm-row:last-of-type::after { display: none;}

.programm-row .zeit { font-weight: 800;}

/* Container für Inhalte */
.programm-row .programme { display: flex; flex-direction: column; gap: 15px;}

/* NORMALE PROGRAMMPUNKTE (MIT LINIE) */
.program-item { padding-bottom: 15px; border-bottom: 1px solid var(--c-400);}
.program-item:last-child { border-bottom: none; padding-bottom: 0;}


/* =========================================================
   ACCORDION PROGRAMM
========================================================= */
.program-accordion-item { border-bottom: 1px solid var(--c-400);}

.program-accordion-trigger { padding: 0; cursor: pointer; display: flex;justify-content: space-between;align-items: center;color: var(--c-800);}

.program-accordion-content { display: none; padding: 15px 0 25px 0;animation:fadeOut .8s ease-out; color: var(--c-800);}
.program-accordion-item.open .program-accordion-content {animation:fadeIn .8s ease-out}

/* PROGRAMM ACCORDION ICON */
.program-accordion-icon { position: relative; width: 22px; height: 22px; flex: 0 0 22px; margin-left: 30px}

.program-accordion-icon:before,
.program-accordion-icon:after { content: "";position: absolute; top: 50%; left: 0; width: 22px; height: 0; border-top: 4px solid var(--c-800); transform-origin: center; transition: all .5s ease;}

.program-accordion-icon:before {transform: rotate(0deg);}
.program-accordion-icon:after { transform: rotate(90deg);}

/* HOVER */
.program-accordion-trigger:hover .program-accordion-icon:before,
.program-accordion-trigger:hover .program-accordion-icon:after { border-top-color: var(--c-400);}

/* OPEN STATE */
.program-accordion-item.open .program-accordion-icon:before {transform: rotate(45deg);}
.program-accordion-item.open .program-accordion-icon:after { transform: rotate(-45deg);}


@media (max-width: 767px) {
.programm-row { margin-bottom: 20px;}
.programm-row .programme { gap: 0;}
.programm-row::after { margin: 10px 10px 0; }
.programm-row .zeit { text-align: right; padding-bottom: 10px; position: relative;}

.programm-row .zeit::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 0; border-bottom: 1px solid var(--c-400);}
.program-item { padding-top: 13px; padding-bottom: 13px;}
.program-item:last-child { padding-bottom: 0;}
}





.section-veranstaltungsort {}
.section-veranstaltungsort .google-maps-button  {}
@media (max-width: 767px) {
.section-veranstaltungsort .google-maps-button  {margin-top: 25px}
}


/* ------------------------------------------------------------ *\
	Section Bildergalerie
\* ------------------------------------------------------------ */
.section-bildergalerie {}

.gallery {list-style-type:none;}
.gallery li {  position: relative;}
.gallery li a{ display: block; position: relative;  }
.gallery li img { width: 100%; }

.gallery li a:before { content: ''; display: inline-block; background: rgba(255, 95, 189, .8); position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 10; visibility: hidden; opacity: 0; 
-webkit-transition: visibility .4s, opacity .4s;  transition: visibility .4s, opacity .4s; }
.gallery li a:hover:before { visibility: visible; opacity: 1; }
.gallery li a:hover .gallery-icon { visibility: visible; opacity: 1; }

.gallery-icon { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); 
width: 20px; height: 20px; /*border-radius: 50%; border: 2px solid var(--c-weiss);*/
display: inline-block; z-index: 20; visibility: hidden; opacity: 0; 
-webkit-transition: visibility .4s, opacity .4s;  transition: visibility .4s, opacity .4s; }
.gallery-icon:before { content: ''; display: inline-block; width: 20px; height: 4px; background: var(--c-weiss); position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }
.gallery-icon:after { content: ''; display: inline-block; width: 4px; height: 20px; background: var(--c-weiss); position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }

@media (max-width: 767px) {
.gallery-icon { width: 24px; height: 24px;}
.gallery-icon:before { width: 24px; height: 1px; }
.gallery-icon:after { width: 1px; height: 24px; }
}









/* ------------------------------------------------------------ *\
	Section Foto
\* ------------------------------------------------------------ */
.section-foto picture,
.section-foto img { width: 100%; height: 100%; display: block;}

.section-foto img {width: 100%; height: 100%; position: relative; /* wichtig */}
.section-foto .img { height: 100%; }
.section-foto .img img { width: 100%; height: 100%; object-fit: cover; }

.section-foto .img .caption { position: absolute;bottom: 0px;left: 0px;color: var(--c-weiss);font-size: var(--font-size-15); background: var(--c-800); max-width: 80%;padding: 5px 10px; }

@media (max-width: 575px) {
.section-foto .img { aspect-ratio: 1.5/1; }
}






/* ------------------------------------------------------------ *\
	Section Video
\* ------------------------------------------------------------ */
.video-module { cursor: pointer;}

/* steuert das Seitenverhältnis */
.video-inner { position: relative; aspect-ratio: 16 / 9; width: 100%;}

/* Preview + iframe verhalten sich identisch */
.video-inner iframe,
.video-inner img,
.video-preview { position: absolute; inset: 0; width: 100%; height: 100%;}

.video-inner img { object-fit: cover;}

/* Overlay */
.video-preview { z-index: 2;
}

/* Play Button */

.video-play { position: absolute; top: 50%; left: 50%; width: 100px; height: 100px; transform: translate(-50%, -50%); border-radius: 50%;background: var(--c-schwarz); border: none; display: flex; align-items: center; justify-content: center; cursor: pointer;transition: all 0.3s ease;}
.video-play:hover {background: var(--c-800);}
.video-play svg { width: 28px; height: auto; margin-left: 3px; }

@media (max-width: 767px) {
.video-play { width: 65px; height: 65px;}
.video-play svg { width: 20px;  }
}




/* ------------------------------------------------------------ *\
	SectionPartner-Logos
\* ------------------------------------------------------------ */
.section-partner-logos {}
.section-partner-logos .logo-item {display: flex; justify-content: center; align-items: center;}
.section-partner-logos .logo-item img {max-width: 180px; width: 100%; height: auto;}
.row.logo-row {--bs-gutter-y: 3rem;}

@media (max-width: 767px) {
}




/*
Icons Verwendung im Template
<svg class="ico ico-<?php echo esc_attr($ext ?: 'other'); ?>"><use href="#ico-file-<?php echo esc_attr($ext ?: 'other'); ?>"></use></svg>

<svg class="ico ico-download"><use href="#ico-download"></use></svg>
<svg class="ico ico-web"><use href="#ico-web"></use></svg>
*/

/* ------------------------------------------------------------ *\
   Dokumenten-Icons (linkes Icon)
\* ------------------------------------------------------------ */

.ico-clock { width: 18px;height: 18px;display: inline-block;vertical-align: middle;}
.ico-location { width: 16px;height: 22px;display: inline-block;vertical-align: middle;}
.ico-ticket { width: 18px;height: 12px;display: inline-block;vertical-align: middle;}

.ico-instagram { width: 38px;height: 38px;display: inline-block;vertical-align: middle;}
.ico-facebook { width: 20px;height: 38px;display: inline-block;vertical-align: middle; transform: translateX(-1px);}
.ico-tiktok { width: 32px;height: 38px;display: inline-block;vertical-align: middle;}
.ico-youtube { width: 25px;height: 28px;display: inline-block;vertical-align: middle; transform: translateX(3px);}
.ico-cd { width: 40px;height: 40px;display: inline-block;vertical-align: middle;}

/* alle Icons mit currentColor färben */
.ico svg { stroke: currentColor; fill: none;}

@media (max-width: 767px) {
.ico-instagram { width: 28px;height: 28px;}
.ico-facebook { width: 15px;height: 28px;}
.ico-tiktok { width: 26px;height: 28px;}
.ico-youtube { width: 19px;height: 21px; transform: translateX(2px);}
.ico-cd { width: 30px;height: 30px;}
}
@media (max-width: 480px) {
.ico-instagram { width: 22px;height: 22px;}
.ico-facebook { width: 11px;height: 20px;}
.ico-tiktok { width: 18px;height: 20px;}
.ico-youtube { width: 14px;height: 15px; transform: translateX(1px);}
.ico-cd { width: 24px;height: 24px;}
}




.section-anreisser-3-spaltig {}

/* ------------------------------------------------------------ *\
    Card
\* ------------------------------------------------------------ */
.card { 
padding-top: clamp(3rem, 1.818vw + 1.955rem, 4.5rem);
padding-bottom: clamp(3rem, 1.818vw + 1.955rem, 4.5rem);
padding-left: 6rem;
padding-right: 6rem;
text-decoration: none; display: flex; flex-direction: column; width: 100%; height: 100%; transition: all .3s ease}

.card-img-wrapper {  overflow: hidden; margin-bottom: clamp(2.5rem, 1.212vw + 1.803rem, 3.5rem);}
.card-img-wrapper img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.card:hover .card-img-wrapper img { transform: scale(1.04); }

.card-content {  flex: 1; display: flex; flex-direction: column;}
.card .card-content-inner { }
.card .card-text { margin-bottom: 2.5rem; }

.card .btn { margin-top: auto; align-self: flex-start;}

.card.card-archiv .card-content h2 {margin-bottom: 0}
.card.card-archiv .card-text { margin-bottom: 0;}

@media (max-width: 1399px) {
.card { 
padding-left: 3rem;
padding-right: 3rem;
}
}
@media (max-width: 1199px) {
.card { 
padding-left: 2rem;
padding-right: 2rem;
}
}
@media (max-width: 991px) {
.card { 
padding-left: 3rem;
padding-right: 3rem;
}
}
@media (max-width: 767px) {
.card { 
padding-left: 1.5rem;
padding-right: 1.5rem;
}
}












/* ------------------------------------------------------------ *\
	Section Accordion
\* ------------------------------------------------------------ */
.accordion { border-bottom: 1px solid var(--c-400); }

.accordion-trigger {
color: var(--c-weiss);  padding: 20px 0; border-top: 1px solid var(--c-400);
display: table !important; table-layout: fixed !important; cursor: pointer; display: block; width: 100%; clear: both; position: relative; 
transition: all .3s;}

.accordion-static {
color: var(--c-weiss);  padding: 20px 0; border-top: 1px solid var(--c-400);
display: table !important; table-layout: fixed !important; display: block; width: 100%; clear: both; }

.accordion-trigger:hover { color: var(--c-400);}
.accordion-trigger-active { border-bottom: none;}

.accordion-trigger-open:before, .accordion-trigger-open:after {border-top: 4px solid var(--c-weiss)}
.accordion-trigger-open:before {content: "";position: absolute;display: block;right: 0px; top: 50%; width: 22px; height: 0;
transform: rotate(0deg);transform-origin: center;transition: all .5s ease;}
.accordion-trigger-open:after {content: "";position: absolute;display: block;margin: auto; right: 0px; top: 4px; bottom: 0;width: 22px; height: 0; transform: rotate(90deg);transform-origin: center;transition: all .5s ease;}

.accordion-trigger:hover .accordion-trigger-open:before {border-top: 4px solid  var(--c-400); }
.accordion-trigger:hover .accordion-trigger-open:after {border-top: 4px solid  var(--c-400); }

.accordion-trigger-active .accordion-trigger-open:before {border-top: 4px solid var(--c-weiss);transform: rotate(45deg);}
.accordion-trigger-active .accordion-trigger-open:after {border-top: 4px solid var(--c-weiss);transform: rotate(-45deg); }

.accordion-content {padding: 0 0 40px 0; -webkit-animation:fadeOut .8s ease-out;animation:fadeOut .8s ease-out;  }
.accordion-content.open {-webkit-animation:fadeIn .8s ease-out;animation:fadeIn .8s ease-out}

.accordion-trigger .name {font-weight: 800}


.hintergrundfarbe6 .accordion-trigger {color: var(--c-800) }
.hintergrundfarbe6 .accordion-trigger-open:before, .hintergrundfarbe6 .accordion-trigger-open:after {border-top: 4px solid var(--c-800)}
.hintergrundfarbe6 .accordion-static {color: var(--c-800);   }

.accordion-content-flexed { display: flex; gap: 30px;}
.accordion-content .text { flex: 1;}
.accordion-content.has-image .image { flex: 0 0 185px; /* Breite anpassen */}


@media (max-width: 575px) {
.accordion-content { flex-direction: column;}
.accordion-content.has-image .image {order: -1; /* Bild oben statt rechts */flex: 0 0 100%;  width: 100%;}
.accordion-content .image img { width: 100%; height: auto; display: block;}
}






/* ------------------------------------------------------------ *\
	Section Werkliste
\* ------------------------------------------------------------ */

.section-werkliste {}
.section-werkliste .accordion { border-bottom: 3px solid var(--c-400); }
.section-werkliste .accordion-trigger {border-top: 3px solid var(--c-400);}
.section-werkliste .accordion-content {padding: 0 0 0 0;  }

.accordion-trigger .titel {font-size: var(--font-size-40); line-height: var(--line-height-sm); font-weight: 800; letter-spacing: 0.02em; padding-right: 30px}

.werk {display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--c-400); padding: 10px 0; }
.werk:last-of-type { border-bottom: none;}
.werk:first-of-type { border-top: 1px solid var(--c-400);}
.werktitel {}
.werkjahr {}












/* ------------------------------------------------------------ *\
	Buttons
\* ------------------------------------------------------------ */

.btn { position: relative; display: inline-block; vertical-align: middle; text-align: center; cursor: pointer; text-decoration: none;
 padding: 10px 14px 6px; font-size: var(--font-size-21); color: var(--c-800); font-weight: 800; line-height: var(--line-height-xs); background: transparent; border: none;  z-index: 1; transition: color .3s ease; hyphens: manual;}

.btn::before { content: ""; position: absolute; inset: 0; background: var(--c-400); z-index: -1; transition: all 0.3s ease;}

.btn:hover {color: var(--c-800);}
.btn:hover::before { inset: -2px;background: var(--c-weiss);}


.btn.btn-big { margin-top: 0; padding: 10px 20px 6px;font-size: var(--font-size-40);  line-height: var(--line-height-sm)  }


.hintergrundfarbe1 .btn,
.hintergrundfarbe2 .btn,
.hintergrundfarbe3 .btn,
.hintergrundfarbe7 .btn { color: var(--c-schwarz);}
.hintergrundfarbe1 .btn:before,
.hintergrundfarbe2 .btn:before,
.hintergrundfarbe3 .btn:before,
.hintergrundfarbe7 .btn:before { background: var(--c-400);}
.hintergrundfarbe1 .btn:hover,
.hintergrundfarbe2 .btn:hover,
.hintergrundfarbe3 .btn:hover,
.hintergrundfarbe7 .btn:hover {color: var(--c-schwarz);}
.hintergrundfarbe1 .btn:hover::before,
.hintergrundfarbe2 .btn:hover::before,
.hintergrundfarbe3 .btn:hover::before,
.hintergrundfarbe7 .btn:hover::before { background: var(--c-weiss);}

.hintergrundfarbe4 .btn { color: var(--c-400);}
.hintergrundfarbe4 .btn:before { background: var(--c-schwarz);}
.hintergrundfarbe4 .btn:hover {color: var(--c-schwarz);}
.hintergrundfarbe4 .btn:hover::before { background: var(--c-weiss);}

.hintergrundfarbe5 .btn,
.hintergrundfarbe6 .btn { color: var(--c-schwarz);}
.hintergrundfarbe5 .btn:before,
.hintergrundfarbe6 .btn:before { background: var(--c-400);}
.hintergrundfarbe5 .btn:hover,
.hintergrundfarbe6 .btn:hover {color: var(--c-400);}
.hintergrundfarbe5 .btn:hover::before,
.hintergrundfarbe6 .btn:hover::before { background: var(--c-schwarz);}



.btn.hintergrundfarbe2  { color: var(--c-400);}
.btn.hintergrundfarbe2:before { background: var(--c-800);}
.btn.hintergrundfarbe2:hover {color: var(--c-schwarz);}
.btn.hintergrundfarbe2:hover::before { background: var(--c-400);}
.hintergrundfarbe2 .btn.hintergrundfarbe2:hover {color: var(--c-schwarz);}
.hintergrundfarbe2 .btn.hintergrundfarbe2:hover::before { background: var(--c-weiss);}
.hintergrundfarbe4 .btn.hintergrundfarbe2:hover {color: var(--c-schwarz);}
.hintergrundfarbe4 .btn.hintergrundfarbe2:hover::before { background: var(--c-weiss);}

.btn.hintergrundfarbe4  { color: var(--c-schwarz);}
.btn.hintergrundfarbe4:before { background: var(--c-400);}
.btn.hintergrundfarbe4:hover {color: var(--c-400);}
.btn.hintergrundfarbe4:hover::before { background: var(--c-schwarz);}
.hintergrundfarbe1 .btn.hintergrundfarbe4:hover {color: var(--c-schwarz);}
.hintergrundfarbe1 .btn.hintergrundfarbe4:hover::before { background: var(--c-weiss);}
.hintergrundfarbe2 .btn.hintergrundfarbe4:hover {color: var(--c-schwarz);}
.hintergrundfarbe2 .btn.hintergrundfarbe4:hover::before { background: var(--c-weiss);}
.hintergrundfarbe4 .btn.hintergrundfarbe4 {color: var(--c-schwarz);}
.hintergrundfarbe4 .btn.hintergrundfarbe4::before { background: var(--c-weiss);}
.hintergrundfarbe4 .btn.hintergrundfarbe4:hover {color: var(--c-400);}
.hintergrundfarbe4 .btn.hintergrundfarbe4:hover::before { background: var(--c-schwarz);}

.btn.hintergrundfarbe7  { color: var(--c-400);}
.btn.hintergrundfarbe7:before { background: var(--c-schwarz);}
.btn.hintergrundfarbe7:hover {color: var(--c-schwarz);}
.btn.hintergrundfarbe7:hover::before { background: var(--c-400);}
.hintergrundfarbe4 .btn.hintergrundfarbe7:hover {color: var(--c-schwarz);}
.hintergrundfarbe4 .btn.hintergrundfarbe7:hover::before { background: var(--c-weiss);}




/* ------------------------------------------------------------ *\
	Footer
\* ------------------------------------------------------------ */
.footer { position: relative; width: 100%;margin: auto auto 0 auto;  }

.footer-support {}
.support-link { display: inline-flex; flex-direction: column; align-items: center;text-align: center;text-decoration: none;color: var(--c-weiss); font-size: var(--font-size-40); font-weight: 800;  line-height: var(--line-height-sm); transition: color 0.3s ease;}
.support-icon { margin-bottom: 25px; transition: transform 0.3s ease, fill 0.3s ease;}
.support-icon path { transition: fill 0.3s ease;}
.support-link:hover { color: var(--c-400);}
.support-link:hover .support-icon { transform: scale(1.1);}
.support-link:hover .support-icon path { fill:  var(--c-weiss); }

@media (max-width: 767px) {
    .footer-support span br {display: none}
}



.footer-adresse {color: var(--c-400);}
ul.contact {display: flex; flex-direction: column; gap: 1.5rem}


.social-media-icons { display: flex; flex-wrap: wrap; gap: 1.5rem;}
.social-media-icons a { display: flex; align-items: center; justify-content: center; width: 65px; height: 65px; background: var(--c-400); color: var(--c-900); border-radius: 50%; text-decoration: none; transition: background-color 0.25s ease;}
.social-media-icons a:hover { background: var(--c-weiss);}
@media (max-width: 767px) {
.social-media-icons {  gap: 10px; margin-top: 3rem }
.social-media-icons a { width: 48px; height: 48px; }
}
@media (max-width: 480px) {
.social-media-icons a { width: 35px; height: 35px; }
}


.footer-logos {}
.footer-logos .logo-row {--bs-gutter-y: 4rem;}
.footer-logos .logo-item {padding-inline: 1.5rem;  display: flex; justify-content: center; align-items: center;}
.footer-logos .logo-item img {max-width: 180px; width: 100%; height: auto;}

.footer-copyright {color: var(--c-weiss);}

.footer-nav ul {display: flex;align-items: flex-start; justify-content: flex-start;  gap: 2rem 3rem;  overflow: visible; flex-wrap: wrap}
.footer-nav li { list-style: none; /* entfernt die Standard-Bullets */}
.footer-nav a { position: relative; display: inline-block; font-size: var(--font-size-21);color: var(--c-schwarz);line-height: var(--line-height-xs); font-weight: 800;padding: 8px 12px 5px; background: transparent; text-decoration: none; z-index: 1;transition: color .3s ease;}
.footer-nav a::before { content: ""; position: absolute; inset: 0; background: var(--c-400); z-index: -1; transition: all 0.3s ease;}

.footer-nav a:hover::before {background: var(--c-weiss); inset: -2px; }
.footer-nav a:hover { color: var(--c-schwarz); }
.footer-nav li.current_page_item a {background: var(--c-weiss) !important; }

@media (max-width: 767px) {
.footer-copyright-angabe { order: 2; margin-top: 3rem}
.footer-nav { order: 1;}
.footer-nav ul {  gap: 1.5rem;}
}




/* ------------------------------------------------------------ *\
	Form Kontaktformualr
\* ------------------------------------------------------------ */
.wpcf7 .form-control{border:0;border-radius:0;position:relative;padding:0; border-bottom: 3px solid var(--c-400)}

.wpcf7 .form-control label{position:absolute;font-size: var(--font-size-21); color: var(--c-600); left:0px;top:18px;transition:all .2s;}
.wpcf7 .form-control label.has-value {font-size: var(--font-size-12);top:7px;color: var(--c-600);}

.wpcf7 .form-control .field {width:100%;height:60px;border:none;outline:0;border-radius:0;padding-left:0px;padding-top:18px;font-size: var(--font-size-21); color: var(--c-schwarz);}
.wpcf7 .form-control  textarea.field {width:100%;height:200px; padding-top:30px;  resize:vertical;}

.wpcf7 .form-control .field:focus{border-bottom: none;}


/* SUBMIT */
.wpcf7 .wpcf7-submit {
font-size: var(--font-size-40); line-height: var(--line-height-sm); color: var(--c-schwarz); background: var(--c-400); font-weight: 800;
position: relative; display: inline-block; vertical-align: middle; text-align: center; cursor: pointer; text-decoration: none;margin: 0 auto;display: block; padding: 10px 20px 6px;  border: none; transition: all .3s ease;}
.wpcf7 .wpcf7-submit:hover {color: var(--c-400);background: var(--c-schwarz);}



/* WPCF7 */
div.wpcf7-mail-sent-ok,
div.wpcf7-mail-sent-ng,
div.wpcf7-spam-blocked,
div.wpcf7-validation-errors,
div.screen-reader-response {border: 0px !important; padding: 0px !important; margin: 0 0 25px 0 !important; font-size: 20px; line-height: 30px; color: var(--c-900);}

div.wpcf7-mail-sent-ok ul,
div.wpcf7-mail-sent-ng ul,
div.wpcf7-spam-blocked ul,
div.wpcf7-validation-errors ul,
div.screen-reader-response ul{}
div.wpcf7-response-output {}

div.wpcf7-response-output {border: 0px !important; padding: 0px !important; margin: 0 0 25px 0 !important; 
font-size: var(--fontsize-lg); line-height: var(--line-height-lg);color: var(--c-900); letter-spacing: 0.01em}



span.wpcf7-not-valid-tip {  color: var(--c-400);font-size: var(--font-size-12) !important;display: block; margin: 0 !important; padding: 5px 0}
input.wpcf7-not-valid {border-bottom: none; }

.form-control br {display: none;}


.wpcf7-list-item {display: inline; margin: 0 !important;}
.wpcf7-list-item input{ width: auto !important; margin: 0px 10px 0 0 !important; }
.wpcf7-list-item-label {color: var(--c-900);}


/* RADIO BUTTONS */
.wpcf7-form .wpcf7-radio { display: block; overflow: hidden; margin: 5px 0 20px;}

.wpcf7-radio .wpcf7-list-item { display: block; border-bottom: 3px solid var(--c-400); padding: 15px 0;}
.wpcf7-form .wpcf7-radio label { display: flex; align-items: center; cursor: pointer; position: relative;}
.wpcf7-form .wpcf7-radio .wpcf7-list-item-label { display: inline-flex; align-items: center;}

/* Input verstecken (sauber) */
.wpcf7-form .wpcf7-radio input[type=radio] { position: absolute; opacity: 0;}

/* Kreis */
.wpcf7-form .wpcf7-radio input[type=radio] + span:before {
content: ''; height: 20px; width: 20px; border-radius: 50%; border: 2px solid var(--c-400); margin-right: 20px; display: inline-block; transition: all 0.2s ease;}

/* CHECKED = einfach füllen */
.wpcf7-form .wpcf7-radio input[type=radio]:checked + span:before { background: var(--c-schwarz); border-color: var(--c-schwarz);}



/* CHECKBOXES */
.wpcf7-checkbox {	display: block; overflow: hidden;	margin: 5px 0 25px;}

.wpcf7-checkbox .wpcf7-list-item {	display: block; border-bottom: 3px solid var(--c-400); padding: 15px 0;}
.wpcf7-checkbox .wpcf7-list-item + .wpcf7-list-item {}
.wpcf7-form .wpcf7-checkbox label {	display: flex	align-items: center; cursor: pointer; position: relative;}

.wpcf7-form .wpcf7-checkbox .wpcf7-list-item-label { display: inline-flex; align-items: center;}

/* Input verstecken */
.wpcf7-form .wpcf7-checkbox input[type=checkbox] { position: absolute; opacity: 0;}

/* Quadrat */
.wpcf7-form .wpcf7-checkbox input[type=checkbox] + span:before { content: ''; height: 20px;	width: 20px; border: 2px solid var(--c-400); margin-right: 20px; display: inline-block;	transition: all 0.2s ease;}

/* CHECKED = komplett gefüllt */
.wpcf7-form .wpcf7-checkbox input[type=checkbox]:checked + span:before { background: var(--c-schwarz); border-color: var(--c-schwarz);}



/* ACCEPTANCE */
.wpcf7-acceptance .wpcf7-list-item { position: relative; margin: 0 !important; }
.wpcf7-acceptance .wpcf7-list-item-label { display: inline-flex; align-items: flex-start; text-indent: 0; margin-left: 0; }
.wpcf7-acceptance label { display: flex; align-items: flex-start; cursor: pointer; position: relative; }

/* Input verstecken */
.wpcf7-acceptance input[type=checkbox] { position: absolute; opacity: 0; }

/* Quadrat */
.wpcf7-acceptance input[type=checkbox] + span:before { content: ''; height: 24px; width: 24px; min-width: 24px; display: inline-block; margin-right: 20px; border: 2px solid var(--c-400); background: var(--c-weiss); transition: all 0.2s ease; position: relative; top: 2px; }

/* CHECKED */
.wpcf7-acceptance input[type=checkbox]:checked + span:before { background: var(--c-schwarz); border-color: var(--c-schwarz); }
@media (max-width: 767px) {
 .wpcf7-acceptance .wpcf7-list-item-label { display: flex; }
}



/* SELECT */
.form-control.form-control-select {border-bottom: none;}

.form-control select {
	width: 100%;
	height: 68px;

	padding: 0 60px 0 20px;

	border: 3px solid var(--c-400);
	background-color: var(--c-weiss);

	color: var(--c-900);
	font-family: inherit;

	cursor: pointer;

	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;

	transition: all 0.2s ease;

	/* Custom Arrow */
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-width='2' d='M5 7l5 5 5-5'/%3E%3C/svg%3E");

	background-repeat: no-repeat;
	background-position: right 20px center;
	background-size: 20px;
}

/* Hover */
.form-control select:hover {border-color: var(--c-800);}

/* Focus */
.form-control select:focus {outline: none;border-color: var(--c-800);}

/* IE entfernen */
.form-control select::-ms-expand {display: none;}