/* Stadtmusik 1.0 — local assets, no external font or framework requests. */
:root{--green:#103e2b;--gold:#e8c66f;--ink:#152b22;--muted:#58605c;--cream:#f7f6f1;--line:#e3e6df;--white:#fff;--radius:14px;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);line-height:1.65;background:white;font-size:17px}img{max-width:100%;height:auto}a{color:var(--green);text-underline-offset:.22em}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #aa780b;outline-offset:5px}h1,h2,h3{line-height:1.13;letter-spacing:-.035em;margin:0 0 22px}h1{font-size:clamp(42px,4.7vw,72px)}h2{font-size:clamp(30px,3.1vw,46px)}h3{font-size:24px;letter-spacing:-.02em}p{margin:0 0 20px}.container{width:min(var(--max),calc(100% - 80px));margin-inline:auto}.section{padding-block:78px}.section-cream{background:var(--cream)}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:12px 20px}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;background:#fffffff5;backdrop-filter:blur(12px);z-index:20;border-bottom:1px solid var(--line)}.header-row{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0}.brand strong{display:block;text-transform:uppercase;font-size:24px;letter-spacing:.09em;line-height:1.2}.brand small{display:block;text-transform:uppercase;font-size:11px;letter-spacing:.35em;margin-top:6px}.brand-logo{width:52px;height:62px;object-fit:contain}.brand-symbol{display:grid;place-items:center;width:52px;height:58px;border:1px solid #c3cdbf;border-radius:8px 8px 23px 23px;background:var(--cream)}.brand-symbol .icon{width:29px;height:29px}.main-nav{display:flex;gap:28px;align-items:center;font-size:15px;font-weight:600}.main-nav ul{list-style:none;padding:0;margin:0;display:flex;gap:26px;align-items:center}.main-nav a{text-decoration:none}.main-nav a:hover,.main-nav .current>a{color:#87600a}.main-nav li{position:relative}.main-nav li ul{display:none;position:absolute;top:100%;left:0;min-width:210px;padding:16px;background:white;box-shadow:0 8px 25px #0002;border-radius:8px;align-items:stretch;flex-direction:column;gap:12px}.main-nav li:hover>ul,.main-nav li:focus-within>ul{display:flex}.main-nav li ul ul{left:100%;top:0}.menu-toggle{display:none;border:1px solid var(--line);border-radius:8px;background:white;padding:9px 13px;color:var(--green)}.button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid transparent;border-radius:6px;background:var(--green);color:white;padding:14px 24px;text-decoration:none;font-weight:600;font-size:15px;line-height:1.4;min-height:48px;cursor:pointer}.button:hover,.btn:hover{filter:brightness(1.12);color:white}.button-small{padding:11px 20px}.button-gold{background:var(--gold);color:#132b20}.button-gold:hover{color:#132b20}.button-outline{background:transparent;border-color:#ffffffa0;color:white}.button-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:700;color:#946c1c;display:flex;align-items:center;gap:14px;margin-bottom:20px}.eyebrow:before{content:'';height:2px;width:32px;display:block;background:currentColor;flex-shrink:0}.hero{display:grid;grid-template-columns:1fr 1fr;background:var(--green);color:white;min-height:550px}.hero-copy{padding:68px 44px 68px max(40px,calc((100vw - var(--max))/2))}.hero .eyebrow{color:var(--gold)}.hero-intro{font-size:20px;max-width:440px;color:#f3f5ee}.hero-visual{position:relative;min-height:480px;overflow:hidden}.hero-visual img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:52% center;filter:grayscale(1)}.hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#103e2b18,transparent)}.highlights{background:var(--cream);border-bottom:1px solid var(--line);padding:30px 0}.highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.highlight-grid>div{display:flex;gap:20px;align-items:center;padding-inline-end:20px;border-right:1px solid #d8d4c4}.highlight-grid>div:last-child{border:0}.highlight-grid p{margin:0;font-size:14px}.highlight-grid strong,.highlight-grid span{display:block}.highlight-grid strong{font-size:17px;color:var(--green)}.highlight-grid span{color:var(--muted)}.icon{flex-shrink:0;color:#a97c26}.section-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;align-items:center;margin-bottom:35px}.section-heading h2{margin-bottom:0}.section-heading>p{color:var(--muted);font-size:16px;margin:0}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.info-card{padding:36px 27px 30px;background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 5px 25px #17362505;text-align:center}.info-card .icon{width:47px;height:47px;margin-bottom:22px}.info-card h3{font-size:22px;margin-bottom:14px;color:var(--green)}.info-card p{color:var(--muted);margin:0}.events-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.section-text{color:var(--muted);max-width:520px;margin:0}.events-panel{padding:36px;background:#edf1e9;border-radius:var(--radius);display:flex;gap:26px;align-items:flex-start}.events-panel .icon{color:var(--green);margin-top:4px}.events-panel h3{font-size:23px;margin-bottom:12px}.events-panel p{margin:0;color:var(--muted)}.events-panel>div,.events-panel>section{min-width:0}.join-section{display:grid;grid-template-columns:1fr 1fr;background:var(--cream)}.join-visual{min-height:360px;position:relative;overflow:hidden}.join-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 65%}.join-copy{padding:62px max(40px,calc((100vw - var(--max))/2)) 62px 56px}.join-copy p:not(.eyebrow){color:var(--muted)}.contact-module{margin-top:24px}.site-footer{background:var(--green);color:white;padding:38px 0}.footer-row{display:flex;align-items:center;justify-content:space-between;gap:34px;font-size:14px}.site-footer strong{font-size:16px}.site-footer p{font-size:13px;opacity:.75;margin:6px 0 0}.site-footer a{color:white;text-decoration:none}.footer-links,.site-footer ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;flex-wrap:wrap}.back-top{white-space:nowrap}.component-layout{padding-block:48px}.component-layout:has(.component-content:empty):not(.has-sidebar){display:none}.component-layout.has-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px}.component-content{min-width:0;overflow-wrap:anywhere}.is-home .component-content>.com-content-featured:empty{display:none}.sidebar{padding:25px;background:var(--cream);border-radius:var(--radius)}.sidebar>*+*{margin-top:30px}.breadcrumbs{padding-top:25px}.breadcrumb{display:flex;flex-wrap:wrap;gap:12px;padding:0;list-style:none;font-size:14px}.breadcrumb-item+.breadcrumb-item:before{content:'/';padding-right:12px;color:var(--muted)}.messages:empty{display:none}.alert,joomla-alert{display:block;padding:18px 22px;margin:20px 0;border:1px solid #bdcbbf;background:var(--cream);border-radius:8px}.alert-danger,joomla-alert[type=danger]{background:#fff2f2;border-color:#bc5a5a}.page-header h1{font-size:42px}.item-page img,.com-content-article img{border-radius:8px}.article-info{font-size:14px;color:var(--muted)}.blog-items{display:grid;gap:28px}.blog-item{padding-bottom:28px;border-bottom:1px solid var(--line)}.item-image{margin:0 0 24px}.float-start{float:left;margin-right:24px}.float-end{float:right;margin-left:24px}.pagination,.pagination ul{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0}.pagination a,.pagination span{display:inline-block;padding:5px 10px}.form-control,input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],textarea,select{width:100%;max-width:100%;padding:11px 14px;border:1px solid #b8c5bc;border-radius:6px;background:white;color:var(--ink)}input[type=checkbox],input[type=radio]{width:auto}label{display:inline-block;margin-bottom:6px}.control-group,.mb-3,.form-group{margin-bottom:20px}fieldset{border:1px solid var(--line);padding:24px;margin:0 0 24px}legend{padding:0 8px;font-weight:700}.list-unstyled{list-style:none;padding:0}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}table{width:100%;border-collapse:collapse}td,th{padding:12px;border-bottom:1px solid var(--line);text-align:start}.table-responsive{overflow-x:auto}.moduletable h3{margin-bottom:16px}.mod-menu a{overflow-wrap:anywhere}
@media(min-width:1600px){.hero{min-height:590px}}
@media(max-width:1100px){.main-nav{gap:18px}.main-nav ul{gap:17px}.brand strong{font-size:20px}.brand small{font-size:10px}.hero-copy{padding-block:54px}.events-grid{gap:35px}.highlight-grid{gap:20px}.highlight-grid strong{font-size:15px}}
@media(max-width:960px){.container{width:calc(100% - 48px)}.header-row{min-height:86px;flex-wrap:wrap;gap:0;padding-block:12px}.menu-ready .menu-toggle{display:block}.main-nav{width:100%;padding:22px 0 10px;flex-wrap:wrap}.menu-ready .main-nav{display:none}.menu-ready .main-nav.is-open{display:flex}.main-nav ul{flex-wrap:wrap}.main-nav li ul{position:static;box-shadow:none;display:flex;font-size:14px;padding:8px 0 0 15px;gap:8px;min-width:0}.hero-copy{padding:46px 26px}.hero{min-height:470px}.hero h1{font-size:46px}.hero-visual{min-height:470px}.hero-intro{font-size:18px}.button-row{gap:10px}.button{padding:12px 18px}.highlight-grid>div{gap:12px;padding-right:12px}.highlight-grid .icon{width:30px}.section-heading{gap:35px}.card-grid{gap:15px}.info-card{padding:28px 20px}.info-card h3{font-size:20px}.join-copy{padding:44px 28px}.footer-row{flex-wrap:wrap}.component-layout.has-sidebar{grid-template-columns:minmax(0,1fr) 240px}}
@media(max-width:680px){body{font-size:16px}.container{width:calc(100% - 40px)}.header-row{min-height:78px}.brand strong{font-size:18px}.brand small{font-size:9px;letter-spacing:.27em}.brand-symbol{width:42px;height:48px}.brand{gap:10px}.brand-logo{width:42px;height:48px}.menu-toggle{font-size:14px}.main-nav{align-items:flex-start;gap:18px}.main-nav>ul,.main-nav>div,.main-nav .mod-menu{width:100%;align-items:flex-start;flex-direction:column;gap:14px}.main-nav li ul{padding-left:18px}.hero{grid-template-columns:1fr}.hero-copy{padding:46px 24px}.hero h1{font-size:clamp(40px,10.8vw,60px)}.hero-visual{min-height:290px}.hero-visual img{object-position:center 40%}.hero .eyebrow{font-size:10px;letter-spacing:.16em}.hero .button-row{margin-top:26px}.highlights{padding:22px 0}.highlight-grid{grid-template-columns:1fr;gap:17px}.highlight-grid>div{border:0;padding:0;gap:18px}.highlight-grid .icon{width:32px;height:32px}.highlight-grid strong{font-size:16px}.section{padding-block:48px}.section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:28px}.card-grid{grid-template-columns:1fr;gap:16px}.info-card{text-align:left;padding:26px}.info-card .icon{width:38px;height:38px;margin-bottom:14px}.info-card h3{font-size:23px}.events-grid{grid-template-columns:1fr;gap:28px}.events-panel{padding:27px 24px;gap:18px}.events-panel .icon{width:30px;height:30px}.join-section{grid-template-columns:1fr}.join-visual{min-height:260px}.join-copy{padding:42px 24px}.footer-row{align-items:flex-start;flex-direction:column;gap:24px}.site-footer{padding:32px 0}.footer-links,.site-footer ul{gap:18px}.component-layout{padding-block:30px}.component-layout.has-sidebar{grid-template-columns:1fr;gap:24px}.page-header h1{font-size:34px}fieldset{padding:16px}.eyebrow{font-size:11px}.float-start,.float-end{float:none;margin:0 0 22px}h2{font-size:33px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.site-header,.site-footer,.button,.menu-toggle,.skip-link{display:none}.hero,.join-section{display:block;background:white;color:black}.hero-visual,.join-visual{display:none}.hero-copy,.join-copy{padding:20px 0}.container{width:100%}.section{padding:20px 0}.card-grid{display:block}.info-card{break-inside:avoid}.hero .eyebrow,.hero-intro{color:black}}
