﻿/**
 * LFV Schutterwald e.V.
 *
 * Default stylesheet for the website of LFV Schutterwald e.V.
  *
 * @project LFV Schutterwald e.V.
 * @version 2.0
 * @author Nico Wiedemann
 * @copyright 2010
 *
 * @colordef #f4e631 rgb(244, 230, 49) yellow
 * @colordef #005193 rgb(0, 81, 147) darkblue
 * @colordef #cdcdcd rgb(205, 205, 205) light gray
 */

/* @section Imports */
@import url(gallery.css);

:root {
  /* design colors */
  --color-yellow: #f4e631;
  --color-yellow-transparent-barely: rgb(244, 230, 49, 0.9);
  --color-yellow-transparent: rgb(244, 230, 49, 0.6);
  --color-yellow-transparent-light: rgb(244, 230, 49, 0.2);
  --color-yellow-toned: #beb400;
  --color-darkblue: #005193;
  --color-darkblue-transparent-barely: rgb(0, 81, 147, 0.9);
  --color-darkblue-transparent: rgb(0, 81, 147, 0.6);
  --color-darkblue-transparent-light: rgb(0, 81, 147, 0.2);
  --color-darkblue-toned: #3d71b7;
  --color-lightgray: #cdcdcd;
  --color-lightgray-transparent-barely: rgb(205, 205, 205, 0.9);
  --color-lightgray-transparent: rgb(205, 205, 205, 0.6);
  --color-lightgray-transparent-light: rgb(205, 205, 205, 0.2);

  /* base colors */
  --color-shadow: rgba(0, 0, 0, 0.25);
  --color-black: #000000;
  --color-gray: #808080;
  --color-ultralightgray: #f0f0f0;
  --color-white: #ffffff;
  --color-disabled: #808080;
  --color-error: #990000;

  /* category colors */
  --color-category-yellow: var(--color-yellow);
  --color-category-yellow-text: var(--color-black);
  --color-category-darkblue: var(--color-darkblue);
  --color-category-darkblue-text: var(--color-white);
  --color-category-pink: #ff599e;
  --color-category-pink-text: var(--color-black);
  --color-category-cyan: #00e8ff;
  --color-category-cyan-text: var(--color-black);
  --color-category-green: #7dcd00;
  --color-category-green-text: var(--color-white);
  --color-category-orange: #ff8c00;
  --color-category-orange-text: var(--color-black);
  --color-category-purple: #a200ff;
  --color-category-purple-text: var(--color-white);
  --color-category-teal: #006c7d;
  --color-category-teal-text: var(--color-white);
  --color-category-brown: #b6ac75;
  --color-category-brown-text: var(--color-black);

  /* other styles */
  --shadow: 3px 3px 5px var(--color-shadow);
  --shadow-inset: inset 0 0 10em var(--color-shadow);
  --shadow-inset-light: inset 1px 1px 3px var(--color-shadow);

  --transition-fast: all 0.15s ease-in;
  --transition-fast-delay: all 0.15s 0.1s ease-in;
  --transition-default: all 0.3s ease-in;
  --transition-default-delay: all 0.3s 0.2s ease-in;
  --transition-slow: all 0.6s ease-in;
  --transition-slow-delay: all 0.6s 0.3s ease-in;

  --border-radius: 0.5rem;
  --border-radius-large: 1rem;
}

/**
 * @section Imports
 */
/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.2.2
*/
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
fieldset,
img {
  border: 0;
}
address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
  font-weight: normal;
}
ol,
ul {
  list-style: none;
}
caption,
th {
  text-align: left;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal;
}
q:before,
q:after {
  content: "";
}
abbr,
acronym {
  border: 0;
}

/**
 * @section Basics
 */
.hidden {
  display: none;
}
/* smooth anchor scrolling with a short highlight of the target (was MooTools SmoothScroll) */
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
  :target {
    animation: target-highlight 1.5s ease-out;
  }
}
@keyframes target-highlight {
  from {
    background-color: #f4e631;
  }
}
/* elements like form set their own display, so make the attribute win */
[hidden] {
  display: none !important;
}

strong,
b {
  font-weight: bold;
}
em,
i {
  font-style: italic;
}
strong em,
em strong,
b em,
em b,
strong i,
i strong,
b i,
i b {
  font-style: italic;
  font-weight: bold;
}

a {
  text-decoration: none;
  color: var(--color-darkblue);
}
a:focus,
a:hover,
a:active {
  text-decoration: underline;
}
a:focus {
  outline: solid 1px var(--color-darkblue-transparent-light);
}
a.none {
  color: inherit;
}
a[href^="mailto:"],
a.email,
a.document {
  background-position: left center;
  background-repeat: no-repeat;
}
a[href^="mailto:"],
a.email {
  background-image: url(data:data:image/webp;base64,UklGRtAAAABXRUJQVlA4TMQAAAAvFcACEBq3sW2rSo2r/3K+QQcXd6uA6OLyZ17EkEQn4QgAQCDKtXNqss0vaGqyJntudM3War7BNfWCNtt1NNq2TY26De2MGI65/1bWsAFEzUILXDI1SBuEMnECzuRqBl9S0F0CMCoMPnzZR01J4r+DMkhE8K9Gp+yRFRT3UpAl/4HmrAcRov7IohFpqCoC3hb6Ki6W78mptXD5ooSW08ZaWI9AqxPjqyl8yfOPKmrQ7WSzj8LI+gQpmZL4DSy+sx/4e4MJ);
  padding-left: 25px;
}
a.document {
  background-image: url(data:image/webp;base64,UklGRpwAAABXRUJQVlA4TI8AAAAvC8ADEGegoJGk5vvTO8bw7wUbagMASWhQJxzb/59UQQAQiG7v/aUashXq/l2QuKMIIooAUngHAOD//4eHnP4lvc5eilGs0YKMWntYaOoAkPctwCayrVZvqBi6WMXH0YEaJKDlO44WIvqvsG0bpO0YDpEHFbYT9f5cN8Ky6j0Y9d77NyZ8uvLdzn+PAIzcFAA=);
  padding-left: 15px;
}

.note {
  background: transparent url(/img/error.png) left 15px no-repeat;
  padding: 1em 1em 0.5em 80px;
  min-height: 45px;
}
.note + .note {
  background: none;
  margin-top: -1.2em;
  min-height: 0;
}
.error {
  background: transparent url(/img/error.png) left 15px no-repeat;
  color: var(--color-error);
  font-family: Consolas, Courier New, monospace;
  min-height: 80px;
  overflow: visible;
  padding: 1em 1em 0.5em 80px;
}
.error + .error {
  margin-top: -1em;
}

br.clear {
  clear: both;
  line-height: 0;
  height: 0px;
}
div.spacer {
  clear: both;
  margin-bottom: 6em;
}
div.spacer.half {
  font-size: 50%;
}

/**
 * Micro Clearfix Hack
 * @see http://nicolasgallagher.com/micro-clearfix-hack/
 */
.cf:before,
.cf:after {
  content: " ";
  display: table;
}
.cf:after {
  clear: both;
}

form:before,
form:after {
  content: " ";
  display: table;
}
form:after {
  clear: both;
}

span.date {
  float: right;
}

a.nextPage,
a.prevPage {
  color: var(--color-darkblue);
  font-size: 0.8em;
  font-weight: bold;
  padding: 0.2em 0.6em;
}
a.nextPage:hover,
a.nextPage:focus,
a.prevPage:hover,
a.prevPage:focus {
  background-color: var(--color-lightgray-transparent);
}
a.disabled {
  color: var(--color-disabled);
}
img {
  max-width: 100%;
}
img.left {
  float: left;
  margin-right: 1.3em;
}
img.right {
  float: right;
  margin-left: 1.3em;
}
img.center {
  display: block;
  margin: 1em auto 1.3em auto;
}
img.shadow {
  box-shadow: var(--shadow);
}
div.subtitleContainer {
  position: relative;
  text-align: center;
}
div.subtitle {
  background-color: var(--color-lightgray-transparent-barely);
  border-radius: 5px;
  box-shadow: 0px 0px 5px var(--color-shadow);
  color: var(--color-darkblue);
  font-size: 0.9em;
  padding: 0.6em 0.8em 0.8em 0.8em;
  position: absolute;
  bottom: 50px;
  left: 40px;
  right: 40px;
  text-align: left;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s, visibility 0.5s;
}
div.subtitleContainer:hover div.subtitle,
div.subtitleContainer:focus-within div.subtitle {
  opacity: 1;
  visibility: visible;
}
main.page ul,
main.page ol {
  margin-left: 1.3em;
}
main.page ul {
  list-style: disc;
}
ol {
  list-style: decimal;
}
main.page li {
  margin-bottom: 0.3em;
}
.legal {
  font-size: 0.9em;
}
/* Lucide icons (img/icons/<name>.svg): the SVG is used as a mask, so the icon takes the text
   colour (currentColor) and scales with the font size. Markup via icon() in PHP / LFVIcon.icon() in JS:
   <span class="icon" style="--icon: url('/img/icons/eye.svg')" aria-hidden="true"></span>
   Only span.icon: older templates use class "icon" for other things (tags on the achievement
   cards, event attachments), which this rule must not resize. */
span.icon {
  display: inline-block;
  flex: none;
  width: 1.15em;
  height: 1.15em;
  vertical-align: -0.2em;
  background-color: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

/**
 * @section Layout
 */
/* Delicious (css/fonts.css) as in the printed matter of the club; Calibri etc. while it loads or if it fails */
body {
  background-color: var(--color-yellow);
  font-family: Delicious, Calibri, Arial, Helvetica, Sans, sans-serif;
}

#wrapper {
  background-color: #ffffff;
  box-shadow: 0 0 30px var(--color-shadow);
  display: flex;
  flex-wrap: nowrap;
  margin: 0px auto;
  max-width: 1290px;
}

main {
  box-sizing: border-box;
  background: transparent url(/img/contentBg2.png) right top no-repeat;
  flex-grow: 1;
  hyphens: auto;
  line-height: 1.35;
  min-height: 350px;
  min-height: 100vh;
  position: relative;
  width: calc(100% - 300px); /* IE11-Fix */
  order: 2;
  padding: 16px 40px 40px 0px;
}
main > * {
  box-sizing: initial;
}

div.subHeader {
  font-size: 0.9em;
  line-height: 1.8;
  margin-bottom: 1.5em;
  padding-left: 2.5em;
  text-indent: -2.5em;
}

div.subHeader a {
  background-color: var(--color-lightgray-transparent-light);
  color: var(--color-darkblue);
  display: inline-block;
  font-weight: bold;
  margin: 0px 0.25em 0.25em;
  padding: 3px 6px;
  text-indent: 0;
  white-space: nowrap;
}

div.subHeader a:hover,
div.subHeader a:focus,
div.subHeader a:active,
div.subHeader a.active {
  background-color: var(--color-yellow-transparent);
}

div.subHeader a.active {
  color: var(--color-black);
  text-decoration: underline;
}

aside {
  display: block;
  order: 1;
  width: 300px;
}

aside > * {
  padding: 12px 20px 16px 20px;
}

aside #logo {
  margin-top: -12px;
  margin-left: -15px;
  outline: none;
}

.oversize {
  box-shadow: 0px 2px 6px var(--color-shadow);
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
  margin-left: -40px;
  margin-right: -40px;
  margin-bottom: 1.5em;
}

/**
 * @section Navigation & Sidebar
 */
aside nav {
  display: block;
  font-size: 1.1em;
  --nav-indent: 20px;
  --nav-subindent: 0.4em;
  --nav-current-bar-width: 4px;
  --nav-current-bar-padding: 4px;
}

aside nav ul ul {
  margin-left: var(--nav-subindent);
}

#mainNavigation > li > a {
  font-weight: bold;
}

aside nav li {
  padding: 1px 1em 3px var(--nav-indent);
  text-indent: -1em;
}

aside nav ul ul li {
  font-size: 0.9em;
  padding-top: 1px;
  padding-bottom: 1px;
}

aside nav a,
aside nav a:link,
aside nav a:visited {
  color: var(--color-black);
  text-decoration: none;
}

aside nav a:hover,
aside nav a:focus,
aside nav a:active {
  color: var(--color-darkblue);
}

aside nav li.current {
  position: relative;
  z-index: 0;
  margin-left: calc(-1 * (var(--nav-current-bar-width) + var(--nav-current-bar-padding)));
  padding-left: calc(var(--nav-indent) + var(--nav-current-bar-width) + var(--nav-current-bar-padding));
}

aside nav li.current::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: var(--color-darkblue-transparent-light);
  border-left: var(--nav-current-bar-width) solid var(--color-darkblue);
  border-radius: 4px;
  z-index: -1;
}

aside nav ul ul li.current::before {
  left: calc(-1 * var(--nav-indent) - var(--nav-subindent));
}

aside .teaser {
  position: relative;
  padding-left: 65px;
  padding-right: 60px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.25em;
}
aside .teaser h3 {
  font-size: 19px;
  font-weight: bold;
  letter-spacing: -0.03em;
  position: absolute;
  top: 33%;
  left: 33px;
  transform: translate(-50%, 0) rotate(-90deg);
}

aside .teaser a {
  display: flex;
  flex-direction: column;
  gap: 0.25em;
  transition: var(--transition-default-delay);
  border-radius: var(--border-radius);
  color: var(--color-black);
  padding: 0.5em 0.75em;
}
aside .teaser a:hover,
aside .teaser a:focus,
aside .teaser a:focus-within,
aside .teaser a:active {
  background-color: var(--color-yellow-transparent);
  transition: var(--transition-default);
  text-decoration: none;
}
aside .teaser span {
  display: block;
  max-width: 175px;
  text-overflow: ellipsis;
  overflow: hidden;
}
@media (max-width: 990px) {
  aside .teaser span {
      max-width: 280px;
  }
}
aside .teaser .title {
  font-weight: bold;
}
aside .teaser a:hover .title,
aside .teaser a:focus .title,
aside .teaser a:active .title {
  text-decoration: underline;
}
aside .teaser .details {
  font-size: 0.8em;
}
aside .teaser .intro {
  text-align: left;
  font-size: 0.8em;
}

/* TODO: mobile teaser */

aside .social {
  display: flex;
  font-size: 1.5rem;
  justify-content: space-evenly;
  padding-right: 30%;
}
.social a,
.social a:link,
.social a:visited {
  color: var(--color-black);
  text-decoration: none;
}

.social a:hover,
.social a:focus,
.social a:active {
  color: var(--color-darkblue);
}
.social span {
  display: none;
}

@media (max-width: 990px) {
  aside .social {
    padding-right: 20px;
  }
}

/**
 * @section Text Content
 */
p {
  margin-top: 0.3em;
  margin-bottom: 0.7em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  clear: both;
  margin-top: 1em;
  margin-bottom: 0.5em;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: bold;
}

h1 {
  font-size: 2em;
  margin-top: 1.5em;
}

h2 {
  font-size: 1.6em;
}

h3 {
  font-size: 1.4em;
}

h4 {
  font-size: 1.2em;
}

h5 {
  clear: none;
  font-size: 1.1em;
  font-weight: bold;
}

h6 {
  clear: none;
  font-weight: bold;
}

/**
 * @section Highlights
 */

#highlights {
  box-shadow: var(--shadow);
  border-radius: 8px;
  display: block;
  list-style: none;
  height: 400px;
  margin: 0;
  position: relative;
  overflow: hidden;
  padding: 0;
  width: 100%;
}
.highlight {
  background-position: center;
  background-size: cover;
  border-radius: 8px;
  box-shadow: var(--shadow-inset);
  height: 100%;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
}
.highlight.ex-current {
  z-index: 90;
}
.highlight.current {
  z-index: 100;
}
.highlight h2,
.highlight section {
  background-color: var(--color-lightgray-transparent-barely);
  box-shadow: 2px 2px 6px var(--color-shadow);
  border-top-right-radius: 8px;
  border-bottom-right-radius: 8px;
  display: inline-block;
  max-width: 80%;
  padding: 8px 15px 8px 30px;
  left: -100%;
  transition: left 0.3s 0.1s ease-out;
}
.hover .highlight h2,
.hover .highlight section,
.highlight:hover h2,
.highlight:hover section,
.highlight:focus h2,
.highlight:focus section {
  left: 0;
  transition-delay: 0.3s;
}
.highlight h2 {
  margin: 0 !important;
  padding-bottom: 4px;
  position: absolute;
  top: 20px;
}
.highlight section {
  position: absolute;
  bottom: 15px;
}
.highlight section a.more {
  float: right;
  margin-left: 1em;
}
#highlights .indicators {
  position: absolute;
  top: 10px;
  right: 20px;
  z-index: 200;
  opacity: 0;
  transition: opacity 0.5s;
}
#highlights.hover .indicators,
#highlights:focus-within .indicators {
  opacity: 1;
}
#highlights .indicator {
  display: inline-block;
  border: none;
  padding: 0;
  margin: 0 2px;
  font-size: 1px;
  border-radius: 50% 50%;
  width: 9px;
  height: 9px;
  background-color: var(--color-darkblue-toned);
  cursor: pointer;
}
#highlights .indicator.current {
  background-color: var(--color-darkblue);
}

/**
  * @section Vereinsmitteilungen
  */

section.news h3 {
  clear: left;
}
section.news ul.categories {
  display: flex;
  float: right;
}
ul.categories li {
  --slant: 10px;
  --border-radius: 6px;
  --padding: 8px;
  --spacing: -3px;
  background-color: var(--color-darkblue-transparent-light);
  box-shadow: var(--shadow-inset-light);
  cursor: default;
  font-size: 0.9em;
  list-style: none;
  margin: 0.2em var(--spacing);
  padding: 0.25em calc(var(--slant) + var(--padding) / 2);
  clip-path: polygon(
    var(--slant) 0,
    100% 0,
    calc(100% - var(--slant)) 100%,
    0 100%
  );
}
ul.categories li:first-child {
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--slant)) 100%, 0 100%);
  padding-left: var(--slant);
  border-top-left-radius: var(--border-radius);
  border-bottom-left-radius: var(--border-radius);
}
ul.categories li:last-child {
  clip-path: polygon(var(--slant) 0, 100% 0, 100% 100%, 0 100%);
  padding-right: var(--slant);
  border-top-right-radius: var(--border-radius);
  border-bottom-right-radius: var(--border-radius);
}
/* single category */
ul.categories li:first-child:last-child {
  clip-path: none;
  padding-left: var(--slant);
  padding-right: var(--slant);
  border-radius: var(--border-radius);
}
ul.categories li.verein,
.admin-row-badge.verein {
  background-color: var(--color-category-yellow);
  color: var(--color-category-yellow-text);
}
ul.categories li.wettkampf,
.admin-row-badge.wettkampf {
  background-color: var(--color-category-darkblue);
  color: var(--color-category-darkblue-text);
}
ul.categories li.training,
.admin-row-badge.training {
  background-color: var(--color-category-purple);
  color: var(--color-category-purple-text);
}
ul.categories li.erfolg,
.admin-row-badge.erfolg {
  background-color: var(--color-category-cyan);
  color: var(--color-category-cyan-text);
}
ul.categories li.jugend,
.admin-row-badge.jugend {
  background-color: var(--color-category-pink);
  color: var(--color-category-pink-text);
}
ul.categories li.galerie,
.admin-row-badge.galerie {
  background-color: var(--color-category-teal);
  color: var(--color-category-teal-text);
}

/**
 * @section Partners
 */

div.partner {
  font-size: 0.9em;
  margin: 2em auto 1em;
  min-height: 65px;
  position: relative;
  text-align: center;
}
div.partner:before {
  color: rgb(77, 77, 77);
  content: "Anzeige";
  font-size: 0.8em;
  position: absolute;
  top: -5px;
  right: -8px;
  transform: rotate(6deg);
}
div.partner a {
  font-style: italic;
}
div.partner img {
  max-width: 100%;
}

/**
 * @section Forms
 */
form {
  display: block;
  padding: 5px;
}

label {
  clear: both;
  color: var(--color-gray);
  display: block;
  float: left;
  font-size: 0.8em;
  font-weight: bold;
  margin-top: 0.3em;
  margin-right: 10px;
  padding-right: 16px;
  text-align: right;
  width: 174px;
}

label.surround {
  clear: none;
  color: var(--color-gray);
  margin-right: 0;
  text-align: left;
  width: auto;
}
label.surround input {
  position: relative;
  top: -3px;
}


/* Info icon for labels with an explanation in the title: Lucide "info" in the label colour */
label[title]::after {
  content: "";
  display: inline-block;
  width: 0.95em;
  height: 0.95em;
  margin-left: 0.3em;
  vertical-align: -0.12em;
  background-color: currentColor;
  -webkit-mask: url(/img/icons/info.svg) center / contain no-repeat;
  mask: url(/img/icons/info.svg) center / contain no-repeat;
}
label.required::after {
  content: " *";
  font-size: 0.8em;
  vertical-align: super;
  position: relative;
}
label.required:focus::after,
label.required:hover::after {
  content: " Pflichtfeld";
  font-variant: small-caps;
}

.errors {
  background: transparent url(/img/error.png) 115px 5px no-repeat;
  margin-bottom: 1em;
  min-height: 80px;
}
.errors > * {
  margin-left: 206px;
  width: auto;
}
.errors label {
  color: var(--color-error);
  text-align: left;
}

input,
textarea,
select,
fieldset,
output,
progress,
form button,
.fakeFormField {
  float: left;
  margin-top: 0.3em;
  width: 230px;
}

input.wide,
textarea.wide,
select.wide,
fieldset.wide,
output.wide,
progress.wide,
form button.wide,
.fakeFormField.wide {
  width: 430px;
}

input.narrow,
textarea.narrow,
select.narrow,
fieldset.narrow,
output.narrow,
progress.narrow,
form button.narrow,
.fakeFormField.narrow {
  width: 130px;
}

input.tight,
textarea.tight,
select.tight,
fieldset.tight,
output.tight,
progress.tight,
form button.tight,
.fakeFormField.tight {
  width: 50px;
}

input.date {
  border: none;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23005193' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v3'/%3E%3Cpath d='M16 2v3'/%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18'/%3E%3C/svg%3E") right 2px center / 1rem no-repeat;
  cursor: pointer;
  width: 88px;
}
input.datetime {
  border: none;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23005193' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v3'/%3E%3Cpath d='M16 2v3'/%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18'/%3E%3C/svg%3E") right 2px center / 1rem no-repeat;
  cursor: pointer;
  width: 108px;
}
input[type="date"] {
  border: none;
  background: transparent;
  cursor: pointer;
  width: 128px;
}
input[type="datetime"] {
  border: none;
  background: transparent;
  cursor: pointer;
  width: 158px;
}
input + output {
  font-size: 0.8em;
  margin-left: 0.5em;
}

input.delete {
  color: var(--color-error);
}

input[type="checkbox"],
input[type="radio"] {
  margin-top: 0.4em;
  width: 20px;
}

input[disabled] {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=25)";
  filter: alpha(opacity=25);
  opacity: 0.25;
}

input[readonly] {
  background: none;
  border: none;
}

input:invalid,
textarea:invalid {
  color: var(--color-error);
}

textarea {
  height: 6em;
}

textarea.richtext {
  height: 6em;
  width: 430px;
}

textarea.richtext.wide {
  height: 9em;
}
/* hack to allow niceedit panels to be able to hide */
textarea.richtext.hidable {
  display: none !important;
}

label.indented {
  color: inherit;
  font-weight: normal;
  padding-left: 200px;
  text-align: left;
}
label.indented input[type="checkbox"],
label.indented input[type="radio"] {
  margin-top: 0.2em;
}

label.richtext {
  min-height: 60px;
}

fieldset {
  border: solid thin var(--color-lightgray);
  margin-bottom: 0.3em;
  padding-bottom: 0.6em;
}
legend {
  color: var(--color-darkblue);
  font-size: 0.8em;
  font-weight: bold;
  margin-left: 1em;
  padding: 2px 0.5em;
}

.choices {
  margin-bottom: 0;
}
.choices input {
  float: none;
}
.choices__inner {
  min-height: auto;
  padding: 0;
}
.choices__item {
  padding: 7.5px 7.5px 3.75px;
}

/**
 * @section Tables
 */

table {
  background-color: var(--color-ultralightgray);
  box-shadow: var(--shadow);
  margin: 0.5em 2% 1em 2%;
  width: 96%;
}
table td {
  vertical-align: text-top;
}
table thead,
table tfoot {
  background-color: var(--color-darkblue);
  box-shadow: var(--shadow);
  color: var(--color-lightgray);
}
table thead {
  border-radius: 3px 3px 0px 0px;
  font-size: 0.9em;
  font-weight: bold;
}
table thead.sticky {
  position: sticky;
  top: 0;
}
table tfoot {
  border-radius: 0px 0px 3px 3px;
  font-size: 0.7em;
}
table tfoot.sticky {
  position: sticky;
  bottom: 0;
}
table tbody tr:first-child td {
  padding-top: 6px;
}
table tbody tr:last-child td {
  padding-bottom: 9px;
}
table td {
  padding: 2px 4px;
}
table td:first-child {
  padding-left: 8px;
}
table td:last-child {
  padding-right: 8px;
}
table thead td,
table tfoot td {
  padding-top: 4px;
  padding-bottom: 4px;
}
table tbody > tr:nth-child(2n) {
  background-color: var(--color-lightgray-transparent-barely);
}
table tbody > tr:hover {
  background-color: var(--color-yellow-transparent);
  color: var(--color-darkblue);
}
table tbody > tr:hover:nth-child(2n) {
  background-color: var(--color-yellow-transparent);
}
table thead h2 {
  font-size: 1.2em;
  font-weight: bold;
  margin-top: 0;
  margin-bottom: 0;
}
table thead a small {
  opacity: 0;
  transition: opacity 0.1s linear;
}
table thead a:hover small,
table thead a:focus small {
  opacity: 1;
}
@media (hover: none) {
  table thead a small {
    opacity: 1;
  }
}

/**
 * @section Admin
 */
/* Header and action buttons: .admin-button in css/admin.css */

details.help {
  float: right;
}
details.help[open] {
}
details.help:not([open]) {
}
/* Help toggle: shaped like .admin-button (css/admin.css), but yellow so it stands out;
   on phones only the icon (css/admin.css) */
details.help summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  box-sizing: border-box;
  min-width: var(--admin-target-size, 32px);
  min-height: var(--admin-target-size, 32px);
  padding: 0 0.7rem;
  border: 1px solid var(--color-yellow-toned);
  border-radius: var(--border-radius);
  background-color: var(--color-yellow);
  color: var(--color-darkblue);
  font-size: 0.85rem;
  line-height: 1;
  list-style-type: none;
  position: absolute;
  top: 60px;
  right: 40px;
  cursor: pointer;
  user-select: none;
}
details.help summary:hover,
details.help summary:focus-visible,
details.help[open] summary {
  border-color: var(--color-darkblue);
}
details.help summary::-webkit-details-marker {
  display: none;
}
details.help summary::marker {
  display: none;
}
/* Lucide circle-question-mark / x as mask, like .icon */
details.help summary:before {
  display: block;
  flex: none;
  width: 1.1rem;
  height: 1.1rem;
  content: "";
  background-color: currentColor;
  -webkit-mask: url(/img/icons/circle-question-mark.svg) center / contain no-repeat;
  mask: url(/img/icons/circle-question-mark.svg) center / contain no-repeat;
}
details.help[open] summary:before {
  -webkit-mask-image: url(/img/icons/x.svg);
  mask-image: url(/img/icons/x.svg);
}
/* Help panel: below the help button, right-aligned with it (on phones: css/admin.css).
   The notch is drawn by the button itself (summary::after), so it is always centred under it,
   whatever the button width; it overlaps the panel's top border. */
details.help {
  --help-gap: 14px;
}
details.help[open] summary::after {
  content: "";
  position: absolute;
  /* 100% is the padding box; + 1px bottom border puts the centre on the panel's top edge */
  top: calc(100% + 1px + var(--help-gap) - 6px);
  left: 50%;
  width: 12px;
  height: 12px;
  margin-left: -6px;
  box-sizing: border-box;
  background: var(--color-white);
  border-top: 1px solid var(--color-lightgray);
  border-left: 1px solid var(--color-lightgray);
  transform: rotate(45deg);
  z-index: 1001;
}
details.help > div {
  box-sizing: border-box;
  background: var(--color-white);
  border: 1px solid var(--color-lightgray);
  border-radius: var(--border-radius);
  box-shadow: 3px 6px 12px var(--color-shadow);
  width: 30em;
  max-width: calc(100% - 80px);
  padding: 0.5em 1em;
  position: absolute;
  top: calc(60px + var(--admin-target-size, 32px) + var(--help-gap));
  right: 40px;
  z-index: 1000;
  /* long help: never taller than the screen below the button; it scrolls inside instead
     (the page behind does not scroll along) */
  max-height: calc(100vh - 60px - var(--admin-target-size, 32px) - var(--help-gap) - 24px);
  max-height: calc(100dvh - 60px - var(--admin-target-size, 32px) - var(--help-gap) - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Overview of the admin area: tiles in the style of the admin buttons (white, thin border,
   dark blue text), with the large module picture on the left */
ul#adminPanel {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
ul#adminPanel li {
  margin: 0;
}
ul#adminPanel li a.admin-tile {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 100%;
  min-height: 96px;
  padding: 0.5rem 0.75rem 0.5rem 134px;
  border: 1px solid var(--color-lightgray);
  border-radius: var(--border-radius);
  background-color: var(--color-white);
  background-repeat: no-repeat;
  background-position: 14px center;
  /* the pictures are 140 x 110 */
  background-size: 106px 83px;
  color: var(--color-darkblue);
  font-size: 1.1em;
  font-weight: bold;
  text-decoration: none;
}
ul#adminPanel li a.admin-tile:hover,
ul#adminPanel li a.admin-tile:focus-visible {
  border-color: var(--color-darkblue);
  background-color: var(--color-yellow-transparent-light);
  color: var(--color-darkblue);
}
ul#adminPanel li a.admin-tile-danger {
  color: var(--color-error);
}
ul#adminPanel li a.admin-tile-danger:hover,
ul#adminPanel li a.admin-tile-danger:focus-visible {
  border-color: var(--color-error);
  background-color: var(--color-white);
  color: var(--color-error);
}

ul#editGalleries,
ul#editPages,
ul#editNavigation {
}
ul.tree {
  float: left;
  font-size: 0.9em;
  font-weight: bold;
  list-style: none !important;
  margin-top: 0.3em;
  margin-left: 1em;
  width: 400px;
}
ul.tree li {
  line-height: 1.75;
  margin-top: 1px;
  margin-bottom: 2px;
}
ul.tree a {
  color: var(--color-darkblue);
  position: relative;
  top: 1px;
}
ul.tree a.control {
  padding: 0 2px;
  text-decoration: none;
}
ul.tree a.control,
ul.tree a.status {
  margin-left: 2px;
}
ul.tree a.control:hover,
ul.tree a.control:focus,
ul.tree a.control:active {
  text-decoration: none;
  background-color: var(--color-darkblue);
  border-radius: 2px;
  color: var(--color-yellow);
}
ul.tree a.status {
  cursor: default;
  text-decoration: none;
}
ul.tree span.subline {
  font-weight: normal;
  font-size: 0.8em;
  margin-left: 4px;
  display: block;
}
ul.tree li.visibility-invisible a {
  color: var(--color-disabled);
  font-weight: normal;
}
ul.tree li.visibility-visible a {
  font-weight: normal;
}
ul.tree > :first-child {
  padding-top: 5px;
}
ul.tree ul.tree > :first-child {
  padding-top: 0px;
}
ul.tree span.info {
  float: right;
  font-size: 0.9em;
  font-weight: normal;
  margin-right: 3px;
}

form#editGallery,
form#removeImage {
  position: relative;
}

form#editGallery .preview,
form#removeImage .preview {
  position: absolute;
  top: 13px;
  right: 13px;
}

li.logEntry {
  background-color: var(--color-lightgray-transparent-light);
  border-color: var(--color-lightgray);
  border-style: dotted;
  border-width: thin;
  border-radius: 3px;
  color: var(--color-black);
  margin: 0.5em 7px 0.75em;
  padding: 2em 1em 0.5em;
  position: relative;

  transition-delay: 0.2s;
  transition-duration: 0.2s;
  transition-property: background-color, border-color, color;
}
li.logEntry:hover {
  background-color: var(--color-yellow-transparent-light);
  border-color: var(--color-darkblue);
  color: var(--color-black);

  transition-delay: 0s;
  transition-duration: 0.4s;
}

li.logEntry span {
  color: var(--color-darkblue);
  font-size: 0.9em;
  position: absolute;
  top: 0.8em;
}
li.logEntry .module {
  font-weight: bold;
  left: 1.11em;
}
li.logEntry .action {
  left: 11.11em;
}
li.logEntry .time {
  right: 1.11em;
}
li.logEntry .ip {
  opacity: 0;
  top: auto;
  bottom: 1.45em;
  right: 1.11em;

  transition-delay: 0s;
  transition-duration: 0.2s;
  transition-property: opacity;
}
li.logEntry:hover .ip {
  opacity: 1;
  transition-delay: 0.2s;
  transition-duration: 0.4s;
}
li.logEntry .module,
li.logEntry .action {
  text-transform: capitalize;
}
li.logEntry .log {
  white-space: pre-line;
}

li.reservation {
  list-style: square;
  margin-left: 1.2em;
}
li.reservation.rejected {
  color: var(--color-disabled);
  text-decoration: line-through;
}
li.reservation .user:after {
  content: ":";
}
li.reservation .user,
li.reservation .purpose,
li.reservation .period {
  margin-right: 0.3em;
}
li.reservation button.reject {
  background: none;
  border: none;
  color: var(--color-error);
  text-decoration: underline;
  cursor: pointer;
}

ul.threads {
  margin: 0;
}
ul.threads > li {
  border: solid 1px var(--color-lightgray);
  background-color: var(--color-lightgray-transparent-light);
  margin-bottom: 1em;
  padding: 10px 20px;
}
ul.threads > li > h3 {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI5RDUyNkM5M0E5NjExRTM4RkI2REU0NjU0MUJEOEE5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI5RDUyNkNBM0E5NjExRTM4RkI2REU0NjU0MUJEOEE5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjlENTI2QzczQTk2MTFFMzhGQjZERTQ2NTQxQkQ4QTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjlENTI2QzgzQTk2MTFFMzhGQjZERTQ2NTQxQkQ4QTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6fwZTjAAAA5UlEQVR42mJcsGABAxSIAXEWA3lgWnx8/CsQgxFqINgwMTExNXJMe/Xq1S2YoSzIhhkZGW0TFxf/SIphL1++5D937pwX0NCshQsXTmOixDAQAOkB6YX6LosJWYLM8EPRy0JIMdA7ukBv6YDYnp6eywmpZyEijHSA4RMJ5RI0kImByoDqBmL1MjD6NxESB8bqcmxhSh8XgmyHsT9//qzz/ft3XXRxYFK5QrSByF7Zvn17JMxAYpLNEI1lLN5fTrILQaUGua5C1gsycBqoPAMVQeQYilR8gctEmhSwYDGoSymuAgACDAAR8Xf0MFgKYQAAAABJRU5ErkJggg==);
  background-position: right center;
  background-repeat: no-repeat;
  cursor: pointer;
  margin: 0;
}
ul.threads > li.open > h3 {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJFRUVENEZEM0E5NjExRTM4NERDQ0RBMEQzMkQ3RDc5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJFRUVENEZFM0E5NjExRTM4NERDQ0RBMEQzMkQ3RDc5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkVFRUQ0RkIzQTk2MTFFMzg0RENDREEwRDMyRDdENzkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkVFRUQ0RkMzQTk2MTFFMzg0RENDREEwRDMyRDdENzkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7xbeISAAAAtklEQVR42mJcsGABAxSIAXEWA3lgWnx8/CsQgxFqINgwMTExNXJMe/Xq1S2YoSzIhhkZGW0TFxf/SIphL1++5D937pwX0NCshQsXTmOixDAQAOkB6YX6LosJWYLM8EPRy8RAZTACDWTBJgiM/k2ENAJjdbmnp+fygXEhJyfnZUIaubi4XhFtYFhYWPVosiHdQFCpQa4hyHpBBk4DlWegIogcQ5GKL3CZSJMCFiwGdSnFVQBAgAEAzEZXaBejjtwAAAAASUVORK5CYII=);
}
ul.threads > li ul.posts {
  padding-top: 1em;
}
ul.threads > li ul.posts li {
  margin-bottom: 1.5em;
  padding-top: 1.2em;
  position: relative;
}
ul.threads > li ul.posts li.reply {
  font-size: 0.9em;
  margin-left: 20px;
  margin-right: 20px;
}
ul.threads > li ul.posts li .user,
ul.threads > li ul.posts li .time {
  font-size: 0.8em;
  position: absolute;
  top: 0;
}
ul.threads > li ul.posts li .user {
  left: 0;
}
ul.threads > li ul.posts li .time {
  right: 0;
}
ul.threads > li ul.posts li.reply label {
  width: 100px;
}
ul.threads > li ul.files {
}
ul.threads > li ul.files li {
  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE1LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI0cHgiDQoJIGhlaWdodD0iMzJweCIgdmlld0JveD0iMCAwIDI0IDMyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNCAzMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGcgaWQ9IkxheWVyXzEiPg0KPC9nPg0KPGcgaWQ9ImRvd25sb2FkIj4NCgk8Zz4NCgkJPHJlY3QgeT0iMjcuNDMiIHN0eWxlPSJmaWxsOiM0RTRFNTA7IiB3aWR0aD0iMjQiIGhlaWdodD0iNC41NyIvPg0KCQk8cG9seWdvbiBzdHlsZT0iZmlsbDojNEU0RTUwOyIgcG9pbnRzPSIxNiwxOC4yODUgMTYsMCA4LDAgOCwxOC4yODUgNCwxOC4yODUgMTIuMDEyLDI3LjQzIDIwLDE4LjI4NSAJCSIvPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg0K);
  background-size: contain;
  background-position: left center;
  background-repeat: no-repeat;
  display: inline-block;
  padding-top: 0;
  padding-left: 1.2em;
  margin-right: 0.5em;
}

ul.pager {
  text-align: center;
  margin-bottom: 1em;
}
ul.pager li {
  display: inline-block;
  color: var(--color-darkblue);
  margin: 0 0.1em;
  padding: 0.1em 0.3em;
}
ul.pager li a {
  color: inherit;
}
ul.pager li.current {
  background-color: var(--color-darkblue);
  color: var(--color-yellow);
  font-weight: bold;
}
ul.pager li.disabled {
  color: var(--color-disabled);
}
ul.pager li.disabled a {
  cursor: default;
}

/**
 * @section Calendar
 */

.calendar {
  width: 100%;
}
.calendar > header {
  align-items: center;
  display: flex;
  flex-wrap: nowrap;
  font-size: 1.5em;
  justify-content: space-between;
}
.calendar > header div {
  text-align: center;
  min-width: 22%;
}
.calendar > header div:first-child {
  text-align: left;
}
.calendar > header div:last-child {
  text-align: right;
}
.calendar > header h2 {
  margin: 0;
}
.calendar > div {
  align-items: flex-start;
  background-color: transparent !important;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  margin-bottom: 1.5em;
  width: 100%;
}
.calendar .month {
  display: table;
  flex-grow: 0.0833;
  line-height: 1.5;
  margin: 0.5em;
  min-width: 290px;
  width: auto;
  /* rounded like the cards and buttons (bus calendar, events and competitions) */
  border-collapse: separate;
  border-radius: var(--border-radius);
  overflow: hidden;
}
.calendar .month thead {
  color: var(--color-white);
  text-align: center;
}
.calendar .month thead td {
  padding-top: 6px;
}
.calendar .day {
  text-align: center;
}
.calendar .day a {
  color: var(--color-black);
}
.calendar .day.past a,
.calendar .day.oldMonth a,
.calendar .day.newMonth a {
  color: var(--color-lightgray);
  cursor: default;
}
.calendar .day.reserved:not(.oldMonth):not(.newMonth):not(.past) {
  background-color: var(--color-yellow);
}
.calendar .day.reserved:not(.oldMonth):not(.newMonth):not(.past) a {
  color: var(--color-darkblue);
  font-weight: bold;
}
.calendar .day.reserved:not(.oldMonth):not(.newMonth).past a {
  color: var(--color-darkblue-toned);
  font-weight: bold;
}

/**
 * @section Press
 */
ul#articles {
  list-style: none;
}
ul#articles li {
  background: transparent url(/img/press.png) left 0.5em no-repeat;
  display: block;
  margin: 0.5em 0;
  min-height: 130px;
  padding-left: 140px;
  padding-top: 0.5em;
}
ul#articles li h2 {
  font-style: italic;
  font-weight: bold;
  margin: 0 !important;
}
ul#articles li span {
  display: block;
  width: 15.5em;
}
ul#articles li a {
  display: inline-block;
  margin-top: 0.5em;
}

/**
 * @section Training
 */
ul.training li {
  list-style: none;
  border-left: solid transparent 0px;
  padding: 0 0 4px 9px;
}
ul.training.unter5 li {
  border-color: var(--color-category-orange);
}
ul.training.leichtathletik li {
  border-color: var(--color-category-teal);
}
ul.training.jugend li {
  border-color: var(--color-category-pink);
}
ul.training.fitness li {
  border-color: var(--color-category-green);
}
ul.training li dt {
  display: inline-block;
  font-size: 0.9em;
  font-style: italic;
}
ul.training li dt:after {
  content: ":";
}
ul.training li dd {
  display: inline-block;
  margin-right: 6px;
}

/**
 * @section Trainerteam
 */
ul#trainerteam {
  list-style: none;
  margin-bottom: 0.5em;
  margin-left: 0;
}
ul#trainerteam li {
  background-size: 80%;
  background-position: center;
  background-repeat: no-repeat;
  border: solid 2px transparent;
  display: inline-block;
  height: 176px;
  margin-bottom: -0.3em;
  position: relative;
  width: 126px;
  transition: all 0.666s 0.25s;
}
ul#trainerteam li:hover,
ul#trainerteam li:active {
  background-size: 100%;
  transition-delay: 0s;
}
ul#trainerteam li span {
  background-color: var(--color-lightgray-transparent-barely);
  border-radius: 5px;
  box-shadow: 0px 0px 5px var(--color-shadow);
  color: var(--color-darkblue);
  font-size: 0.9em;
  line-height: 1;
  opacity: 0;
  padding: 0.6em 0.8em 0.8em 0.8em;
  position: absolute;
  top: 85%;
  left: 50%;
  text-align: center;
  transform: translate(-50%, 0);
  transition: opacity 0.2s 0.1s;
  width: 90px;
  z-index: 100;
}
ul#trainerteam li:hover span,
ul#trainerteam li:active span {
  opacity: 1;
  transition: opacity 0.3s;
}

/**
 * @section Records
 */
table.records tbody sup {
  font-size: 0.6em;
}
table.records tbody sup[title] {
  cursor: help;
}
table.records tfoot sup {
  padding-left: 1.5em;
  padding-right: 0.2em;
}
table.records tfoot sup:first-child {
  padding-left: 0.2em;
}

/**
 * @section Route
 */
div.map {
  height: 350px;
}
#route-directions {
  margin-top: 2em;
}

/**
 * @section Calendar
 */
.events,
main.page .events {
  margin: 0;
  list-style: none;
}
.event,
main.page .event {
  clear: both;
  margin-bottom: 2em;
}
.event h3 {
  clear: none;
}
.event .place {
  font-variant: small-caps;
  margin-top: -0.2em;
}
.events.front .event {
  margin-bottom: 0.5em;
}
.events.front .event .date {
  float: left;
  width: 220px;
}
.events.front .event .title {
  float: left;
  font-size: 1em;
}
.events.front .event .place {
  clear: left;
  float: left;
}
.event > .description {
  min-height: 20px;
}
.event.canceled .title {
  text-decoration: line-through;
  text-decoration-color: var(--color-darkblue);
  text-decoration-style: double;
}
.events.front .event.canceled .title {
  text-decoration-style: solid;
}

.attachments,
main.page .attachments,
.helpsList,
main.page .helpsList {
  margin-left: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
}

.helpOverview li {
  display: inline;
}
.helpOverview li:not(:last-child)::after {
  content: ",";
}

li.attachment {
  box-sizing: border-box;
  margin-bottom: 0.25em;
  border-radius: 5px;
  min-height: 47px;
  overflow: hidden;
  position: relative;
  margin-right: 1%;
  width: 49%;
}
/* Lucide icon per attachment type (--icon below), drawn in the theme colour */
li.attachment figure {
  background-color: var(--color-darkblue);
  -webkit-mask: var(--icon, url(/img/icons/file.svg)) center / contain no-repeat;
  mask: var(--icon, url(/img/icons/file.svg)) center / contain no-repeat;
  margin: 0;
  pointer-events: none;
  position: absolute;
  top: 5px;
  left: 5px;
  height: 37px;
  width: 64px;
}
li.attachment > a {
  color: inherit;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 10px 0 80px;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  text-decoration: none;
  transition: background-color 0.25s linear;
}
li.attachment > a:hover,
li.attachment > a:focus,
li.attachment > a:active {
  background-color: var(--color-yellow-transparent-light);
}
li.attachment span.title {
  font-weight: bold;
}
li.attachment > a:hover span.title,
li.attachment > a:focus span.title,
li.attachment > a:active span.title {
  text-decoration: underline;
}
li.attachment span.subline {
  font-size: 0.8em;
  text-decoration: none !important;
}
li.attachment > .tools {
  position: absolute;
  top: auto;
  right: 0;
  bottom: -2em;
  left: auto;
  transition: bottom 0.25s linear;
}
li.attachment:hover > .tools,
li.attachment:focus > .tools {
  position: absolute;
  bottom: 0;
}
li.attachment > .tools > form {
  display: none;
}
li.attachment > .tools > a {
  display: inline-block;
  padding: 5px 10px;
  height: auto;
}
li.attachment > .tools > a:hover,
li.attachment > .tools > a:focus {
  background-color: var(--color-shadow);
}
li.attachment > .tools > a.delete {
  color: var(--color-error);
}
li.attachment.link figure {
  --icon: url(/img/icons/link.svg);
}
.admin li.attachment > a:hover::before,
.admin li.attachment > a:focus::before {
  position: absolute;
  top: 2px;
  right: 4px;
  font-size: 0.75em;
  max-width: 80%;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
.admin li.attachment.link > a:hover::before,
.admin li.attachment.link > a:focus::before {
  content: attr(href);
}
li.attachment.document figure {
  --icon: url(/img/icons/file.svg);
}
li.attachment.document.pdf figure {
  --icon: url(/img/icons/file-text.svg);
}
li.attachment.document.music figure {
  --icon: url(/img/icons/file-music.svg);
}
li.attachment.document.image figure {
  --icon: url(/img/icons/file-image.svg);
}
li.attachment.document.movie figure {
  --icon: url(/img/icons/file-video-camera.svg);
}
li.attachment.document.archive figure {
  --icon: url(/img/icons/file-archive.svg);
}
li.attachment.document.documentpage figure {
  --icon: url(/img/icons/file-text.svg);
}
li.attachment.document.spreadsheet figure {
  --icon: url(/img/icons/file-spreadsheet.svg);
}
li.attachment.document.presentation figure {
  --icon: url(/img/icons/presentation.svg);
}
li.attachment.document.calendar figure {
  --icon: url(/img/icons/calendar.svg);
}

.admin li.attachment.document > a:hover::before,
.admin li.attachment.document > a:focus::before {
  content: attr(data-filename);
}

li.attachment.gallery figure {
  --icon: url(/img/icons/image.svg);
}

li.attachment.achievements figure {
  --icon: url(/img/icons/trophy.svg);
}

li.attachment.press figure {
  /* press.png stays a picture: no mask, normal background */
  -webkit-mask: none;
  mask: none;
  background: transparent url(/img/press.png) center / contain no-repeat;
}

li.helps {
  box-sizing: border-box;
  font-size: 0.9em;
  padding: 0 1em 0 0.5em;
  width: 49%;
  margin-right: 1%;
}
li.helps .title {
  width: 100%;
  display: block;
  font-size: 1.2em;
  font-weight: bold;
}
li.helps .progress {
  display: block;
  height: 23px;
  border-radius: 5px;
  margin-left: -0.5em;
  margin-right: -1em;
}
li.helps .amount {
  text-shadow: var(--color-white) 0px 0px 5px;
  font-size: 13px;
  margin: 3px 0.5em;
  float: right;
}
li.helps .description {
  padding: 1em 0;
  width: 100%;
}
li.helps .description :first-child {
  margin-top: 0;
}
li.helps .description :last-child {
  margin-bottom: 0;
}
li.helps .contact a {
  float: right;
}
li.helps .contact button {
  background: transparent;
  border: none;
  color: var(--color-darkblue);
  cursor: pointer;
  float: right;
}
li.helps .contact button:hover span,
li.helps .contact button:focus span,
li.helps .contact button:active span {
  text-decoration: underline;
}

/**
 * @section Unsere Erfolge
 */
main.athlete #achievement-search {
  position: relative;
}
main.athlete #achievement-search * {
  box-sizing: border-box;
}
main.athlete #achievement-search input[type="search"] {
  background-color: var(--color-lightgray-transparent);
  border-radius: 20px;
  border: none;
  box-shadow: var(--color-shadow) 2px 2px 6px;
  font-size: 1.2em;
  outline: none;
  padding: 0.2em 0.25em;
  position: absolute;
  top: 150px;
  left: 50%;
  text-align: center;
  transform: translate(-50%, 0);
  transition: all 0.25s linear;
  min-width: 200px;
  max-width: 95%;
  width: 45%;
}
main.athlete #achievement-search:hover input[type="search"],
main.athlete #achievement-search:focus input[type="search"],
main.athlete #achievement-search input[type="search"]:hover,
main.athlete #achievement-search input[type="search"]:focus {
  background-color: var(--color-white);
  box-shadow: var(--color-shadow) 2px 2px 6px;
}
main.athlete #achievement-search #autoComplete_list {
  position: static;
  margin: 0;
  width: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
}
main.athlete #achievement-search .autoComplete_result {
  border-radius: 0 !important;
  border: none;
  clear: none;
  color: inherit;
  cursor: pointer;
  font-size: 1em;
  margin: 0 0.25em 0.25em 0;
  padding: 2px 5px;
  max-width: none;
  width: 49%;
}
main.athlete #achievement-search .autoComplete_result:hover,
main.athlete #achievement-search .autoComplete_result:focus,
main.athlete #achievement-search .autoComplete_result:focus-within {
  background-color: var(--color-yellow);
}
main.athlete #achievement-search .autoComplete_result.no_result {
  width: auto;
}
main.athlete #achievement-search .autoComplete_highlighted {
  color: inherit;
  font-weight: bold;
}

section.athlete > .athlete {
  box-sizing: border-box;
  margin-top: 2em;
  padding: 1em 1em;
  padding-left: 125px;
  position: relative;
  min-height: 120px;
}
section.athlete > .athlete h2 {
  margin-top: 0.25em;
}
section.athlete > .athlete .image {
  background-color: var(--color-lightgray);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 45px;
  box-shadow: var(--shadow-inset-light);
  height: 130px;
  position: absolute;
  left: 15px;
  top: 15px;
  width: 90px;
}
section.athlete > .athlete > span {
  display: block;
}
section.athlete > .athlete .image:after {
  content: "";
  display: block;
  padding-right: 100%;
}
section.athlete > .athlete .home:before {
  content: "Wohnort: ";
}
section.athlete > .athlete .ageClass:before {
  content: "Altersklasse: ";
}
section.athlete > .athlete .year:before {
  content: "Jahrgang: ";
}
section.event > span {
  display: block;
}
section.event > .date {
  float: none;
}
section.event > .date:before {
  content: "Datum: ";
}
section.event > .place:before {
  content: "Ort: ";
  font-variant: normal;
}

.achievements {
  display: flex;
  flex-wrap: wrap;
}
.events > .event,
.achievements > .achievement {
  display: inline-block;
  margin: 0;
  margin-bottom: 0.5em;
  margin-right: 1%;
  width: 49%;
}
main.page > .events > .event {
  width: 99%;
}
.achievements > .event {
  margin-bottom: 0;
  width: 100%;
}
.achievements > .event h3 {
  margin-bottom: 0;
}
.achievements > .event div {
  margin-bottom: 1em;
  position: relative;
  padding-left: 1em;
}
.card .date {
  float: none;
}
.achievements > .event .date {
  float: none;
}
.achievements > .event .date:before {
  content: "am ";
  font-variant: normal;
}
.achievements > .event .place:before {
  content: "in ";
  font-variant: normal;
}
.card {
  background-color: var(--color-white);
  border-radius: 2px;
  box-sizing: border-box;
  padding: 0.5em 2em;
  position: relative;
  box-shadow: 1px 1px 4px var(--color-shadow),
    0 0 15px rgba(0, 0, 0, 0.025) inset;
}
.event.card .event,
.achievement.card .athlete {
  box-sizing: border-box;
  background-color: var(--color-yellow);
  margin: -0.5em -2em 1em -2em;
  padding: 0.6em 1em;
  padding-left: 75px;
  position: relative;
}
.event.card .event:only-child,
.achievement.card .athlete:only-child {
  margin-bottom: -0.5em;
}
section.athlete .achievement.card .athlete {
  padding-top: 0;
  padding-bottom: 0;
  height: 5px;
}
section.athlete .achievement.card .athlete > * {
  display: none;
}
.event.card .event a,
.achievement.card .athlete a {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.event.card .event .title,
.achievement.card .athlete .name {
  display: block;
  font-weight: bold;
  font-size: 1.25em;
  margin-bottom: -0.2em;
}
.event.card .event .image,
.achievement.card .athlete .image {
  background-color: var(--color-darkblue);
  background-position: center 15%;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 50%;
  box-shadow: var(--shadow-inset-light);
  height: 42px;
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translate(0, -50%);
  width: 42px;
}
.event.card .event .image:after,
.achievement.card .athlete .image:after {
  content: "";
  display: block;
  padding-right: 100%;
}
.achievement.card .athlete .home:after {
  content: ",";
}
.achievement.card .athlete .ageClass:before {
  content: "Altersklasse ";
}
.achievement.card .athlete .year:before {
  content: " (";
}
.achievement.card .athlete .year:after {
  content: ")";
}
.event.card .event .date,
.achievement.card .athlete .image,
.achievement.card .athlete .home,
.achievement.card .athlete .year,
.achievement.card .athlete .ageClass {
  cursor: default;
  font-size: 0.9em;
  user-select: none;
}
.card > div {
  margin: 0;
  margin-bottom: 0.5em;
}
.card > div:last-child {
  margin-bottom: 1em;
}
.event.card > .achievement,
.achievement.card > .achievement,
.achievement.card > .event {
  padding-left: 44px;
  padding-top: 4px;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
}
.event.card > .achievement:before,
.achievement.card > .achievement:before,
.achievement.card > .event:before {
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  height: 30px;
  position: absolute;
  top: 0;
  left: 0;
  width: 30px;
}

/* Card icons: Lucide (ISC, see img/icons/LICENSE) clipboard-list, map-pin and below timer,
   trophy, podium – embedded with stroke-width 1.25 instead of 2, as thin as the former icons */
.event.card > .achievement:before,
.achievement.card > .achievement:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' %3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M12 11h4'/%3E%3Cpath d='M12 16h4'/%3E%3Cpath d='M8 11h.01'/%3E%3Cpath d='M8 16h.01'/%3E%3C/svg%3E");
}
.achievement.card > .achievement > .discipline:after {
  content: ": ";
}
.achievement.card > .achievement > .rank:before {
  content: " (";
}
.achievement.card > .achievement > .rank:after {
  content: ")";
}
.achievement.card > .achievement > .comment {
  flex-basis: 100%;
}

.achievement.card > .event:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}
.achievement.card > .event > .title a {
  color: inherit;
}
.achievement.card > .event > .title {
  order: 1;
  display: block;
  width: 100%;
}
.achievement.card > .event > .date {
  float: none;
  order: 2;
}
.achievement.card > .event > .date:after {
  content: " in ";
}
.achievement.card > .event > .place {
  order: 3;
}

.event.card > .event > .place:before {
  content: " / ";
  font-variant: normal;
}
.event.card > .event > .title {
  overflow-x: hidden;
  text-overflow: ellipsis;
}

/* Tags: always visible, shaped like the category tags of the news (slanted segments that
   join, rounded ends, see ul.categories), in the colours of this card: light blue with dark
   blue icon and text */
.achievement.card .tags {
  display: flex;
  flex-wrap: wrap;
  row-gap: 0.3em;
  /* aligned with the text of the lines above (they leave 44px for their icon) */
  margin: 0.8em 0 0.5em 44px;
  padding: 0;
}
.achievement.card .tags li {
  --slant: 10px;
  --border-radius: 6px;
  --padding: 6px;
  --spacing: -3px;
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  float: none;
  position: relative;
  margin: 0 var(--spacing);
  padding: 0.25em calc(var(--slant) + var(--padding) / 2);
  background-color: var(--color-darkblue-transparent-light);
  box-shadow: var(--shadow-inset-light);
  color: var(--color-darkblue);
  font-size: 0.8em;
  list-style: none;
  white-space: nowrap;
  clip-path: polygon(var(--slant) 0, 100% 0, calc(100% - var(--slant)) 100%, 0 100%);
}
.achievement.card .tags li:first-child {
  margin-left: 0;
  padding-left: var(--padding);
  border-top-left-radius: var(--border-radius);
  border-bottom-left-radius: var(--border-radius);
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--slant)) 100%, 0 100%);
}
.achievement.card .tags li:last-child {
  padding-right: var(--padding);
  border-top-right-radius: var(--border-radius);
  border-bottom-right-radius: var(--border-radius);
  clip-path: polygon(var(--slant) 0, 100% 0, 100% 100%, 0 100%);
}
.achievement.card .tags li:first-child:last-child {
  clip-path: none;
  border-radius: var(--border-radius);
}
.achievement.card .tags li span {
  display: inline;
}
.achievement.card .tags li .icon {
  /* Lucide icons, see the mask images below */
  flex: none;
  width: 1.25em;
  height: 1.25em;
  background-color: currentColor;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.achievement.card .tags li.personalbest .icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' %3E%3Cline x1='10' x2='14' y1='2' y2='2'/%3E%3Cline x1='12' x2='15' y1='14' y2='11'/%3E%3Ccircle cx='12' cy='14' r='8'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' %3E%3Cline x1='10' x2='14' y1='2' y2='2'/%3E%3Cline x1='12' x2='15' y1='14' y2='11'/%3E%3Ccircle cx='12' cy='14' r='8'/%3E%3C/svg%3E");
}
.achievement.card .tags li.champion .icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M10 14.66V17a1 1 0 0 1-1 1 2 2 0 0 0-2 2v2'/%3E%3Cpath d='M14 14.66V17a1 1 0 0 0 1 1 2 2 0 0 1 2 2v2'/%3E%3Cpath d='M17.916 10H19.5A2.5 2.5 0 0 0 22 7.5V5a1 1 0 0 0-1-1h-3'/%3E%3Cpath d='M4 22h16'/%3E%3Cpath d='M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z'/%3E%3Cpath d='M6.084 10H4.5A2.5 2.5 0 0 1 2 7.5V5a1 1 0 0 1 1-1h3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M10 14.66V17a1 1 0 0 1-1 1 2 2 0 0 0-2 2v2'/%3E%3Cpath d='M14 14.66V17a1 1 0 0 0 1 1 2 2 0 0 1 2 2v2'/%3E%3Cpath d='M17.916 10H19.5A2.5 2.5 0 0 0 22 7.5V5a1 1 0 0 0-1-1h-3'/%3E%3Cpath d='M4 22h16'/%3E%3Cpath d='M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z'/%3E%3Cpath d='M6.084 10H4.5A2.5 2.5 0 0 1 2 7.5V5a1 1 0 0 1 1-1h3'/%3E%3C/svg%3E");
}
.achievement.card .tags li.first .icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 6V2h-1'/%3E%3Cpath d='M9 15a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1'/%3E%3Cpath d='M9 21V11a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v10'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 6V2h-1'/%3E%3Cpath d='M9 15a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1'/%3E%3Cpath d='M9 21V11a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v10'/%3E%3C/svg%3E");
}
.achievement.card .tags li .title {
  display: none;
}

/**
 * Discipline Icons
 * @see https://thenounproject.com/prosymbols/collection/olympic-glyph-icons/
 */

/**
 * @section Satzung
 */

#satzung,
#satzung ol {
  list-style-type: none;
  margin-left: 0 !important;
}
#satzung {
  counter-reset: abschnitt paragraph;
  margin-bottom: 3em;
}
#satzung li {
  text-indent: -2em;
  padding-left: 2em;
}
#satzung li::before {
  display: inline-block;
  text-align: right;
  padding-right: 0.3em;
  width: calc(2em - 0.3em);
}
#satzung > p,
#satzung ol > p {
  margin-left: 2em;
  margin-bottom: 0.3em;
}
#satzung > h2:not(:first-child) {
  margin-top: 2em;
}
#satzung > h2::before {
  content: counter(abschnitt, upper-latin) ". ";
  counter-increment: abschnitt;
}
#satzung > li {
  margin-bottom: 2em;
  font-weight: bold;
}
#satzung > li::before {
  content: "§ " counter(paragraph) " ";
  counter-increment: paragraph;
}
#satzung > li > ol {
  font-weight: normal;
  counter-reset: absatz;
}
#satzung > li > ol > li::before {
  content: counter(absatz) ". ";
  counter-increment: absatz;
}
#satzung > li > ol > li > ol {
  counter-reset: absatzliste;
}
#satzung > li > ol > li > ol > li {
  margin-bottom: 0;
}
#satzung > li > ol > li > ol > li::before {
  content: counter(absatzliste, lower-latin) ") ";
  counter-increment: absatzliste;
}

/**
 * @section Vereins-App
 */

.app-stores {
  background-image: url(/img/upload/_3d842cd0-61ff-43cb-af43-de4115ad410f.webp);
  background-size: cover;
  background-position: center 20%;
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  justify-content: center;
  min-height: 340px;
  padding: 1em 40px;
}
.app-stores a {
  width: 160px;
}
.app-stores a.qrcode {
  aspect-ratio: 1;
  background: var(--color-white);
  border-radius: 10px;
  line-height: 0;
  margin-bottom: 1em;
}
.app-stores a.qrcode img {
  border-radius: inherit;
}
.app-stores a.store {
  min-height: 40px;
}
.app-stores a > img {
  width: 100%;
}
@media (max-width: 990px) {
  .app-stores {
    align-items: center;
  }
}

/**
 * @section Mobile View
 */

@media (max-width: 990px) {
  body {
    background-color: var(--color-white);
  }
  #wrapper {
    flex-wrap: wrap;
    box-shadow: none;
  }
  main {
    flex-basis: 100%;
    width: auto;
    order: 1;
    padding-left: 40px;
  }
  aside {
    flex-basis: 100%;
    order: 2;
    width: auto;
  }
  aside #logo {
    display: block;
    margin: 0 auto;
    text-align: center;
  }
  aside nav,
  aside .teaser {
    margin-left: auto;
    margin-right: auto;
    max-width: 300px;
    width: auto;
  }
  aside nav {
    --nav-indent: 10px;
  }
  ul#trainerteam li {
    height: 140px;
    width: 100px;
  }
  li.article {
    background-size: 60px;
    padding-left: 60px;
  }
  li.article h2 {
    font-size: 1em;
    padding-left: 0;
    text-indent: 0;
  }
  li.attachment,
  li.helps,
  .achievements > .achievement,
  .events > .event {
    margin-right: 0;
    width: 100%;
  }
  .card {
    padding-left: 1em;
    padding-right: 1em;
  }
  .event.card .event,
  .achievement.card .athlete {
    margin-left: -1em;
    margin-right: -1em;
  }
  .achievement.card .athlete .ageClass:before {
    content: "";
  }
  table.records {
    font-size: 0.8em;
    margin-right: -20px;
    margin-left: -20px;
    width: calc(100% + 40px);
  }
  .calendar .day {
    padding: 1px 2px;
    font-size: 0.9em;
  }
  label {
    float: none;
    text-align: left;
  }
  label.richtext {
    min-height: auto;
  }
  input.wide,
  textarea.wide,
  textarea.richtext,
  select.wide,
  fieldset.wide,
  progress.wide,
  form button.wide,
  .fakeFormField.wide {
    width: 98%;
  }
  ul.tree {
    box-sizing: border-box;
    width: 98%;
  }
  li.attachment {
    min-height: 94px;
  }
  li.attachment > .tools {
    position: absolute;
    bottom: 0;
  }
  main.athlete #achievement-search input[type="search"] {
    background-color: var(--color-white);
    box-shadow: var(--color-shadow) 2px 2px 6px;
    margin: -0.5em 10% 1em;
    position: static;
    transform: none;
    width: 80%;
  }
  main.athlete #achievement-search #autoComplete_list {
  }
  main.athlete #achievement-search .autoComplete_result {
    float: none;
    width: 100%;
  }
  .oversize {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
}
