/* All overrides are restricted to small screens. Desktop rules are untouched. */
@media screen and (max-width:960px) {
 html {height:auto; min-width:0;}
 body {min-width:0 !important; margin:0; overflow-wrap:anywhere;}
 #main, #container, #logo, #site_content, footer, .ccas-footer {
   box-sizing:border-box !important; width:100% !important; max-width:100% !important; min-width:0 !important;
 }
 #main {padding:0 12px 24px !important; margin:8px auto !important;}
 #main > header {height:auto !important; margin-bottom:16px; display:flow-root;}
 #logo {height:auto !important; float:none !important; padding:8px 0 !important;}
 #logo_text h1, #logo h1 {font-size:clamp(24px,5.5vw,38px) !important; line-height:1.2 !important;}
 #logo_text h2, #logo h2 {font-size:clamp(18px,4vw,27px) !important; line-height:1.3 !important; margin:10px 0 !important;}
 #site_content {display:flex; flex-direction:column; overflow:visible !important;}
 #site_content > .content {order:0;}
 #site_content > #sidebar_container {order:1;}
 .content, #sidebar_container, .sidebar, .content_item, .sidebar_item {
   box-sizing:border-box !important; width:100% !important; max-width:100% !important; min-width:0 !important; float:none !important;
 }
 .content {font-size:18px !important; margin:12px 0 !important; padding:16px !important;}
 .content h1 {font-size:30px !important; margin:0 !important; padding:0 0 16px !important;}
 .content h2 {font-size:26px !important;}
 .content h3 {font-size:22px !important;}
 .content p {line-height:1.55 !important;}
 #sidebar_container {display:flex; flex-wrap:wrap; gap:14px;}
 .sidebar {margin:0 !important; padding:14px !important;}
 img, video, canvas, svg, iframe, embed, object {max-width:100% !important;}
 img, video {height:auto;}
 .content img, .sidebar img {height:auto !important;}
 iframe {box-sizing:border-box; width:100% !important;}
 input, select, textarea {box-sizing:border-box; max-width:100%; font-size:16px;}
 .content a {overflow-wrap:anywhere;}
 .content table {display:block; max-width:100%; overflow-x:auto;}
 .ccas-footer {height:auto !important; padding:20px 14px !important; font-size:18px !important;}
 .ccas-footer-title {font-size:20px !important;}
 .ccas-footer a {display:inline-block; padding:8px 4px;}
 #ccas-carousel {width:100% !important; height:clamp(200px,48vw,380px) !important;}
 #ccas-carousel img {height:100% !important;}
 #images {width:100% !important; height:auto !important; display:flex; flex-wrap:wrap; gap:8px;}
 #images li {position:static !important; width:100% !important; height:auto !important;}
 #images img {display:block; width:100%; height:auto !important;}
 .home-intro, .home-highlight, .partner-card, .kontakt-formular {box-sizing:border-box; max-width:100% !important;}
 .partner-grid, .ccas-knusper-grid {grid-template-columns:1fr !important;}
 .ccas-knusper img {height:210px !important;}
 .sr-sharebar {position:static !important; width:auto !important; max-width:100%;}
 /* Original navigation remains a usable fallback if JavaScript is unavailable. */
 nav {float:none !important; height:auto !important; width:100% !important; box-sizing:border-box; clear:both;}
 ul.sf-menu, ul#nav, ul.sf-menu li, ul#nav li {float:none !important; width:100% !important;}
 html body ul.sf-menu ul, html body ul.sf-menu ul li, html body ul.sf-menu ul ul {
   position:static !important; display:block !important; width:100% !important; margin:0 !important; height:auto !important; opacity:1 !important;
 }
 ul#nav li a {white-space:normal !important; padding:12px 16px !important;}
 nav.ccas-desktop-nav {display:none !important;}
 .ccas-mobile-nav {background:#323232; border-radius:7px; padding:8px; margin:12px 0 0; color:#fff; font-family:Arial,sans-serif;}
 .ccas-mobile-nav * {box-sizing:border-box;}
 .ccas-mobile-nav button {font:700 17px Arial,sans-serif; color:#fff; background:#323232; border:1px solid #747474; border-radius:6px; cursor:pointer; min-height:46px; padding:10px 14px;}
 .ccas-mobile-nav > button {width:100%; text-align:left;}
 .ccas-mobile-nav ul {list-style:none; padding:0; margin:0; width:100%;}
 .ccas-mobile-nav li {position:relative; margin:0; padding:0; border-top:1px solid #555; list-style:none; background:none;}
 .ccas-mobile-nav a {display:block; min-height:48px; padding:14px 12px; color:#fff !important; text-decoration:none; font:18px/1.3 Arial,sans-serif; white-space:normal;}
 .ccas-mobile-nav li.ccas-has-sub > a {padding-right:64px;}
 .ccas-mobile-nav .ccas-sub-toggle {position:absolute; right:0; top:2px; width:48px; padding:10px;}
 .ccas-mobile-nav li > ul {padding-left:14px; background:#222;}
 .ccas-mobile-nav [hidden] {display:none !important;}
 .ccas-mobile-nav :focus-visible {outline:3px solid #ffd800; outline-offset:1px;}
 #wrapper_large, #wrapper_thumb, #stage2, #previewFull {box-sizing:border-box; width:100% !important; min-width:0 !important; max-width:100% !important;}
 #previewFull > a > div {margin-left:0 !important;}
 .previewFullImage {width:auto !important; height:auto !important; max-width:100% !important;}
 /* Photo pages and embedded contact form. */
 .inhalt, .kontakt-formular {width:100% !important; min-width:0 !important;}
 .inhalt {box-sizing:border-box; padding-left:12px; padding-right:12px;}
 .kopfbereich .inhalt {flex-wrap:wrap;}
 .galerie {grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr)) !important;}
}
