/* Public website only: loaded by index.php, not by the administration. */
html { height: auto; }
#head, #main, #footer { box-sizing: border-box; width: calc(100% - 32px); max-width: 940px; background: #fff; }
#head { height: auto; min-height: 87px; margin-top: 30px; padding: 16px 24px 12px 124px; border-radius: 10px 10px 0 0; box-shadow: 0 -4px 15px #0004; }
#head h1.branding a { position: static; display: block; font-size: 14px; line-height: 1.4; max-width: 610px; }
#head .bds_logo { left: 26px; top: 8px; width: 64px; height: 71px; }
#head .datum { position: static; width: auto; text-align: right; margin-top: 5px; font-size: 12px; }
#main { min-height: 0; box-shadow: 0 5px 15px #0004; padding-bottom: 24px; }
#main #kopfbereich { width: 100%; left: 0; top: 0; height: 213px; background-size: cover; background-position: center; margin-bottom: 6px; }
#main .fahne_rot, #main .fahne_gelb { width: 100%; top: -6px; }
#main #kopfbereich ul { display: flex; gap: 22px; align-items: center; width: auto; height: auto; padding: 0 20px; }
#main #kopfbereich ul li { position: static; }
#main #kopfbereich ul li a, #main #kopfbereich ul li span { float: none; display: block; font-size: 18px; line-height: 44px; }
#main #lauftextseite { display: grid; grid-template-columns: 238px minmax(0,1fr); gap: 32px; padding: 30px 30px 16px; }
#main #trailerboxen_side, #main #lauftext { float: none; width: auto; min-width: 0; margin: 0; top: 0; }
#main #lauftext { overflow-wrap: anywhere; font-size: 16px; line-height: 1.55; }
#main #lauftext img { max-width: 100%; height: auto; box-sizing: border-box; }
#main #lauftext p, #main #lauftext #artikelliste li ul li, #main #terminliste p, #main #terminliste li ul li { font-size: 16px; line-height: 1.55; }
#main #lauftext h2, #main #terminliste h2 { font-size: 20px; line-height: 1.35; }
#main #terminliste h3 { font-size: 16px; }
#main #lauftext a.pfeillink { font-size: 14px; background-position: 0 7px; }
#main #lauftext div, #main #lauftext p { max-width: 100%; box-sizing: border-box; }
#sidenavi { width: 100%; }
#sidenavi li.sidemenue a, #sidenavi li.sidemenue .aktiv { box-sizing: border-box; width: 100%; height: auto; min-height: 38px; padding: 8px 12px; line-height: 1.4; }
#main #trailerboxen_side ul.tb li { box-sizing: border-box; width: 100%; margin-right: 0; }
#main #trailerboxen_side ul.tb li img, #main #trailerboxen_side ul.tb li p { width: 100%; height: auto; }
#main #trailerboxen_side ul.tb li p { font-size: 14px; line-height: 1.5; }
#main #trailerboxen_side ul.tb li h2, #main #trailerboxen_bottom ul li h2 { height: auto; padding: 8px 10px; font-size: 14px; line-height: 1.4; }
#main #trailerboxen_bottom { width: auto; height: auto; margin: 16px 30px 0; padding: 0; }
#main #trailerboxen_bottom > ul { display: flex; flex-wrap: wrap; gap: 16px; }
#main #trailerboxen_bottom ul li.breit, #main #trailerboxen_bottom ul li.schmal { float: none; width: auto; height: auto; min-width: 0; margin: 0; flex: 1 1 210px; }
#main #trailerboxen_bottom ul li.breit { flex: 1.6 1 310px; }
#main #trailerboxen_bottom ul li img { position: static; width: 100%; height: auto; display: block; }
#main #trailerboxen_bottom ul li.schmal p { position: static; font-size: 14px; margin: 8px 0; }
#main #trailerboxen_bottom ul li.schmal a { position: static; display: inline-block; font-size: 14px; margin: 8px 0; background-position: 0 5px; }
#main #trailerboxen_bottom ul li.breit h3 { top: 44px; max-width: 100%; box-sizing: border-box; font-size: 20px; }
#main #trailerboxen_bottom ul li.breit a { left: 12px !important; right: 12px; font-size: 14px; background-position: 0 5px; }
/* Use the full specificity of the old rules: their absolute image/text
   positions must not win over the flexible card layout. */
#main #trailerboxen_bottom > ul { flex-wrap: nowrap; align-items: flex-start; }
#main #trailerboxen_bottom ul li.schmal { display: flex; flex-direction: column; flex: 1 1 0; }
#main #trailerboxen_bottom ul li.breit { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto; flex: 1.6 1 0; align-self: flex-start; }
#main #trailerboxen_bottom ul li.schmal img, #main #trailerboxen_bottom ul li.breit img { position: static; display: block; width: 100%; height: auto; min-width: 0; }
#main #trailerboxen_bottom ul li.schmal p { position: static; width: auto; margin: 8px 0; line-height: 1.45; }
#main #trailerboxen_bottom ul li.schmal a { position: static; margin-top: 8px; line-height: 1.45; }
#main #trailerboxen_bottom ul li.breit h2 { grid-area: 1 / 1; }
#main #trailerboxen_bottom ul li.breit img { grid-area: 2 / 1; }
#main #trailerboxen_bottom ul li.breit h3 { grid-area: 2 / 1; position: relative; align-self: start; justify-self: start; top: auto; left: auto; height: auto; margin-top: 12px; padding: 8px 14px; font-size: 20px; line-height: 1.3; }
#main #trailerboxen_bottom ul li.breit a { grid-area: 2 / 1; position: relative !important; align-self: end; justify-self: start; left: auto !important; right: auto; bottom: auto; margin: 8px 10px 8px var(--trailer-link-inset, 5%); max-width: calc(100% - var(--trailer-link-inset, 5%) - 10px); line-height: 1.4; box-sizing: border-box; overflow-wrap: anywhere; }
#main #trailerboxen_side ul.tb > li { overflow-wrap: anywhere; }
#main #footerlinie { display: none; }
#footer { height: auto; min-height: 60px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; padding: 18px 30px; margin-bottom: 32px; border-top: 1px solid #ddd; border-radius: 0 0 10px 10px; box-shadow: 0 8px 15px #0003; }
#footer .copyright, #footer ul { position: static; height: auto; font-size: 13px; }
#footer ul { display: flex; flex-wrap: wrap; }
#footer ul li a { font-size: 13px; }
#main form input.textfeld, #main form textarea, #main form select { box-sizing: border-box; max-width: 100%; font-size: 16px; }
#main form label, #main form li .button { font-size: 15px; }
#lauftext a.pdfbutton, #lauftext a.pdf_button, #lauftext a.doc_button, #lauftext a.xls_button, #lauftext a.zip_button { width: auto; height: auto; min-height: 38px; }
#lauftext a.pdfbutton span, #lauftext a.pdf_button span, #lauftext a.doc_button span, #lauftext a.xls_button span, #lauftext a.zip_button span { position: static; display: block; padding: 10px 0 8px 47px; white-space: normal; font-size: 13px; line-height: 1.4; }
#lauftext a.pdfbutton, #lauftext a.pdf_button, #lauftext a.doc_button, #lauftext a.xls_button, #lauftext a.zip_button { background: none; }
#lauftext a.pdfbutton::before, #lauftext a.pdf_button::before, #lauftext a.doc_button::before, #lauftext a.xls_button::before, #lauftext a.zip_button::before { content: ''; position: absolute; left: 0; top: 0; width: 38px; height: 38px; background-repeat: no-repeat; }
#lauftext a.pdfbutton::before, #lauftext a.pdf_button::before { background-image: url(cms/pdf_button.png); }
#lauftext a.doc_button::before { background-image: url(cms/doc_button.png); }
#lauftext a.xls_button::before { background-image: url(cms/xls_button.png); }
#lauftext a.zip_button::before { background-image: url(cms/zip_button.png); background-position: 0 -38px; }
#lauftext a.pdfbutton:hover::before, #lauftext a.pdf_button:hover::before, #lauftext a.doc_button:hover::before, #lauftext a.xls_button:hover::before { background-position: 0 -38px; }
#lauftext a.zip_button:hover::before { background-position: 0 0; }
.table-scroll { overflow-x: auto; max-width: 100%; }
.table-scroll:focus-visible { outline: 2px solid #d8261a; }
#main #lauftext .map-responsive { position: relative; }
#main #lauftext .map-responsive > img { display: block; width: 100%; margin: 0; border: 0; left: 0; top: 0; float: none; }
.map-responsive #schiessstaende .schiessstand { transform: translate(-50%,-50%); }
#main #lauftext .map-responsive #schiessstaende, #main #lauftext .map-responsive #schiessstaende li { margin: 0; padding: 0; }
.galerie { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.galerie .galeriebild { width: auto; height: auto; aspect-ratio: 3 / 2; margin: 0; float: none; overflow: hidden; }
#main #lauftext .galeriebild img { position: static; width: 100%; height: 100%; object-fit: contain; }
.nav-toggle, .section-toggle { display: none; }
@media (max-width: 760px) {
  #head, #main, #footer { width: calc(100% - 20px); }
  #head { margin-top: 24px; padding: 12px 14px 12px 90px; min-height: 92px; }
  #head .bds_logo { left: 12px; top: 8px; width: 64px; height: 71px; background-size: contain; }
  #head h1.branding a { font-size: 13px; }
  #head .datum { text-align: left; font-size: 11px; }
  #main #kopfbereich { height: auto; padding-top: 160px; background-size: auto 160px; background-position: center top; background-repeat: no-repeat; }
  #main #kopfbereich ul { position: static; display: flex; flex-wrap: wrap; gap: 0; padding: 0; background: #292929; }
  #main #kopfbereich ul li { flex: 1 1 50%; }
  #main #kopfbereich ul li a, #main #kopfbereich ul li span { padding: 0 16px; font-size: 16px; }
  .nav-toggle, .section-toggle { display: block; width: 100%; padding: 12px 16px; text-align: left; font: bold 16px Arial,sans-serif; background: #292929; color: white; cursor: pointer; box-sizing: border-box; }
  .section-toggle { background: #d8261a; }
  .navigation-ready #main #kopfbereich ul, .navigation-ready #sidenavi { display: none; }
  .navigation-ready #main #kopfbereich ul.is-open { display: flex; }
  .navigation-ready #sidenavi.is-open { display: block; }
  #main #lauftextseite { grid-template-columns: minmax(0,1fr); grid-template-areas: 'section' 'submenu' 'article' 'promos'; gap: 0; padding: 20px 18px; }
  #main #trailerboxen_side { display: contents; }
  .section-toggle { grid-area: section; margin-bottom: 18px; }
  #sidenavi { grid-area: submenu; margin-bottom: 24px; }
  #main #lauftext { grid-area: article; }
  #main #trailerboxen_side > ul.tb { grid-area: promos; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 24px; }
  #main #trailerboxen_bottom { margin: 8px 18px 0; }
  #main #trailerboxen_bottom > ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  #main #trailerboxen_bottom ul li.breit { grid-column: 1 / -1; }
  #footer { padding: 18px; }
}
@media (max-width: 480px) {
  #main #trailerboxen_side > ul.tb { grid-template-columns: 1fr; }
  #main #lauftext img.links, #main #lauftext img.rechts { max-width: 45%; }
  #main #trailerboxen_bottom ul li.breit, #main #trailerboxen_bottom ul li.schmal { flex-basis: 100%; }
  #main #trailerboxen_bottom > ul { grid-template-columns: minmax(0,1fr); }
}
/* Full desktop width: preserve the original 384 / 238 / 238 card artwork
   and the common 188px baseline. Mobile cards retain their natural flow. */
@media (min-width: 980px) {
  #main #trailerboxen_bottom > ul { gap: 10px; align-items: stretch; }
  #main #trailerboxen_bottom ul li.breit { display: block; flex: 384 1 0; height: 188px; }
  #main #trailerboxen_bottom ul li.schmal { display: block; flex: 238 1 0; height: 188px; box-sizing: border-box; }
  #main #trailerboxen_bottom ul li h2 { height: 30px; line-height: 30px; padding: 0 10px; font-size: 13px; }
  #main #trailerboxen_bottom ul li.breit img, #main #trailerboxen_bottom ul li.schmal img { position: absolute; left: 0; top: 30px; width: 100%; height: auto; }
  #main #trailerboxen_bottom ul li.schmal p { position: absolute; left: 0; top: 128px; margin: 0; font-size: 12px; line-height: 1.4; }
  #main #trailerboxen_bottom ul li.schmal a { position: absolute; left: 0; bottom: 6px; margin: 0; font-size: 12px; line-height: 1.4; background-position: 0 3px; }
  #main #trailerboxen_bottom ul li.breit a { position: absolute !important; left: var(--trailer-link-inset, 18px) !important; bottom: 7px; margin: 0; font-size: 12px; line-height: 1.4; background-position: 0 3px; }
  #main #trailerboxen_bottom ul li.breit h3 { position: absolute; left: 0; top: 43px; height: 62px; margin: 0; padding: 0 18px; font-size: 23px; line-height: 39px; }
}

/* Locally hosted Open Sans, including italic and extended Latin glyphs. */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300 800;
  src: url(fonts/open-sans/open-sans-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300 800;
  src: url(fonts/open-sans/open-sans-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 300 800;
  src: url(fonts/open-sans/open-sans-latin-ext-wght-italic.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 300 800;
  src: url(fonts/open-sans/open-sans-latin-wght-italic.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
body, #head *, #main *, #footer * { font-family: "Open Sans", Arial, sans-serif !important; }
#main #trailerboxen_side ul.tb li a,
#main #trailerboxen_bottom ul li.breit a.schwarz { background-position: 0 4px; }
#main #trailerboxen_bottom ul li.schmal a,
#main #trailerboxen_bottom ul li.breit a { background-position: 0 6px; }
@media (min-width: 980px) {
  #main #trailerboxen_bottom ul li.schmal a,
  #main #trailerboxen_bottom ul li.breit a { background-position: 0 4px; }
}

/* Aktuelles BDS-Logo wie im Meisterschaftssystem V2. */
#head .bds_logo { background-image: url(img/bds-logo.png), linear-gradient(#fff, #fff); background-size: contain, 90% 26%; background-position: center, center 2%; background-repeat: no-repeat; }

/* White surroundings on smaller screens and directional disclosure arrows. */
@media (max-width: 980px) {
  body { background: #fff; }
  #head, #main, #footer { box-shadow: none; }
}
@media (max-width: 760px) {
  .nav-toggle::before, .section-toggle::before {
    content: ''; display: inline-block; width: 0; height: 0;
    border-top: 5px solid transparent; border-bottom: 5px solid transparent;
    border-left: 7px solid currentColor; margin-right: 10px;
    vertical-align: 0; transform-origin: 3px 5px;
  }
  .nav-toggle[aria-expanded="true"]::before,
  .section-toggle[aria-expanded="true"]::before { transform: rotate(90deg); }
}