/*
Theme Name: ak_karate
Author: Wolfgang Schellnast
Author URI: https://www.wolfgangschellnast.com
Description: Responsive Theme for ASKÖ Karate
Version: 1.0
*/

:root {
  --inner-width: 1140px;
}

* {
  box-sizing: border-box;
}

body {
  color: #000;
  font-family: "Roboto";
  font-size: 17px;

  min-height: 101vh; /* Fix: anti-flash */
}

a {
  color: inherit;
  text-decoration: none;
}

a.link {
  text-transform: uppercase;
  font-size: 14px;
  line-height: 23px;
  letter-spacing: 0.05em;
  display: inline-block;

  padding-right: 30px; /* placeholder for absolute arrow */
}

a.link:after {
  position: absolute;
  width: 19px;
  height: auto;
  margin-left: 5px;
  /* content: url("images/icon-arrow_right.svg"); */
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.19 9.68'%3E%3Cpolyline points='14.15 9.18 18.49 4.84 14.15 0.5' fill='none' stroke='%23392f3e' stroke-linecap='round'/%3E%3Cline x1='0.5' y1='4.84' x2='17.42' y2='4.84' fill='none' stroke='%23392f3e' stroke-linecap='round'/%3E%3C/svg%3E");
}

a.link.white:after,
.single-trainerinnen section.main a.link:after,
body.mobile-left-col-active #left-col-mobile-overlay a.link:after {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.19 9.68'%3E%3Cpolyline points='14.15 9.18 18.49 4.84 14.15 0.5' fill='none' stroke='%23fff' stroke-linecap='round'/%3E%3Cline x1='0.5' y1='4.84' x2='17.42' y2='4.84' fill='none' stroke='%23fff' stroke-linecap='round'/%3E%3C/svg%3E");
}

h1 {
  font-size: 63px;
  line-height: 72px;
  letter-spacing: 0.1em;

  color: #fff;
  text-transform: uppercase;
  margin: 0;

  line-height: 1;
}

h2.h1 {
  font-size: 63px;
  line-height: 72px;
  letter-spacing: 0.1em;

  color: #000;
  text-transform: uppercase;
  margin: 0;

  line-height: 1;
}

.h1-sub {
  font-size: 15px;
  line-height: 23px;
}

h2 {
  font-size: 34px;
  line-height: 42px;
  letter-spacing: 0.1em;

  text-transform: uppercase;
  margin-bottom: 32px;
}

h3 {
  /*
  text-transform: uppercase;
  line-height: 1.2;
  */

  font-size: 28px;
  line-height: 1.1;
  letter-spacing: 0.1em;

  text-transform: uppercase;
  margin-bottom: 32px;
}

h4 {
  text-transform: uppercase;
  font-weight: bold;
  line-height: 1.2;
  font-size: 1.2em;
  margin-bottom: 4em;
}

p {
  font-size: 17px;
  line-height: 27px;

  margin: 30px 0;
}

.grey {
  color: #75797b;
}

.orange {
  color: #d04119;
}

.bold {
  font-weight: bold;
}

/* HELPER */
.img-fluid {
  width: 100%;
  height: auto;
}

.hidden {
  display: none !important;
}

.text-right {
  text-align: right;
}

.pt-0 {
  padding-top: 0;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-1 {
  margin-top: 30px;
}

.mt-2 {
  margin-top: 60px;
}

.mt-3 {
  margin-top: 120px;
}

.mb-1 {
  margin-bottom: 30px;
}

.mb-2 {
  margin-bottom: 60px;
}

.mb-3 {
  margin-bottom: 120px;
}

.center-vertical {
  display: flex;
  flex-flow: column;
  justify-content: center;
}

.bottom-start {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}

/* MENU */
ul#primary-menu {
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  justify-content: space-between;
  grid-gap: 30px;

  font-size: 15px;
}

ul#primary-menu li a {
  text-transform: uppercase;
}

ul#child-page-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;

  padding: 40px 0;
  grid-gap: 30px;
  grid-column: 2/-1;

  font-size: 15px;
  text-transform: uppercase;
}

li.current-menu-parent > a,
li.current-menu-item > a,
li.current-page-ancestor > a,
li.current-menu-ancestor > a,
/* .single-trainerinnen li.menu-item-object-trainerinnen a, */
.post-type-archive-trainerinnen li.current-post-archive-child a {
  font-weight: 700;
}

ul#primary-menu ul.sub-menu {
  display: none; /* Hide for desktop */
}

/* SWIPER */
.swiper {
  width: 100%;
  height: auto;
  padding-bottom: 2rem;
}

.swiper-pagination {
  text-align: left;
}

.swiper-pagination-bullet {
  width: auto;
  height: auto;
  background: none;
  font-size: 14px;
  color: #333;
  opacity: 1;
  margin-right: 15px !important;
  cursor: pointer;
  transition: all 300ms ease-in-out;
}

.swiper-pagination-bullet:after {
  position: absolute;
  border-top: 1px solid black;
  width: 0;
  content: "";
  transition: all 300ms ease-in-out;
  margin-top: 0.5em;
  margin-left: 10px;
}

.swiper-pagination-bullet-active:after {
  position: absolute;
  border-top: 1px solid black;
  width: 35px;
  content: "";
  margin-top: 0.5em;
  transition: all 300ms ease-in-out;
  margin-left: 10px;
}

.swiper-pagination-bullet-active {
  padding-right: 35px;
}

/* HEADER */
header {
  position: sticky;
  top: 0;
  z-index: 10;
}

.inner {
  max-width: var(--inner-width);
  margin: 0 auto;
}

.top-row {
  padding: 40px 0;
  height: 120px;
  background-color: #e5e5e5;
}

.top-row > .inner {
  max-width: var(--inner-width);
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  padding: 0;

  height: 100%;
}

.top-row > .inner .logo img {
  height: 100%;
  width: auto;
}

.bottom-row {
  /* height: 85px; */
  background-color: #fff;
}

header a.menu-toggle {
  display: none;
}

/* HEADER - Pages */
.header {
  position: relative;
  width: 100%;
  height: 475px;

  background-position: center;
  background-size: cover;
}

.header .bg_img {
  top: 0;
  position: absolute;
  width: 100%;
  z-index: -1;
}

.jp {
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.2em;
  color: #d04119;
}

.header .jp {
  grid-column: 2/-1;
  margin: 80px 0 0;
}

.header h1 {
  grid-column: 2/12;
  margin: 35px 0;
}

.header p.h2 {
  grid-column: 2/-1;
  font-size: 15px;
  letter-spacing: 0.1em;
  font-weight: bold;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
}

.header .sm {
  grid-column: 12 / 13;

  display: flex;
  flex-flow: column;
  align-items: flex-end;
  grid-gap: 0.5em;
}

.header .sm img {
  height: 25px;
  width: auto;

  opacity: 0.5;
}

/* BASE GRID */

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-column-gap: 30px;
  /* grid-row-gap: 15px; */
  padding: 0;

  position: relative;
}

.left-col {
  grid-column: 2/6;

  /* experimental */
  display: flex;
  flex-flow: column;
}

.main-col {
  grid-column: 6/12;
}

.main-col-big {
  grid-column: 6 / 13;
}

.left-col h2 {
  margin-top: 85px;
  margin-bottom: 20px;
  text-transform: uppercase;
}

.trainer-single p {
  text-transform: uppercase;
}
.left-col p,
.trainer p,
.trainer-single p {
  font-size: 14px;
  line-height: 23px;
  letter-spacing: 0.05em;

  margin: 20px 0;
}

.left-col b,
.left-col strong,
.trainer b,
.trainer-single b {
  font-size: 15px;
  font-weight: bold;
}

.main-col-8 {
  grid-column: 1/8;
}

.main-col-9 {
  grid-column: 1/9;
}

.right-col-3 {
  grid-column: 9/12;
}

.right-col-4 {
  grid-column: 8/12;
}

.left-col-6 {
  grid-column: 2/8;
}

.left-col-6-full {
  grid-column: 1/8;
}

.single-image {
  grid-column: 4 / span 8;

  margin: 20px 0;
}

/* Make images added with wysiwyg fluid */
.main-col-9 img,
.left-col img {
  width: 100%;
  height: auto;
}

/* PAGES */
section.main {
  padding-top: 160px;
  padding-bottom: 5em;
}

section.main .left-col.base h2:first-of-type,
section.main .main-col.base h2:first-of-type {
  margin-top: 0;
}

.left-col > p:first-child {
  margin-top: 30px;
}

.button-probetraining {
  display: none; /* todo ? */
  position: absolute;
  right: 0;
  line-height: 2;
}

.button-orange a {
  padding: 0.5em 3em 0.5em 1.3em;
  border: 1px solid #d04119;
  color: #d04119;
  text-transform: uppercase;
  font-size: 15px;

  /* -100% Width right */
  right: -100%;
  position: relative;
}

.button-orange a:after {
  position: absolute;
  width: 19px;
  height: auto;
  margin-left: 7px;
  margin-top: 3px;
  /* content: url("images/icon-arrow_right.svg"); */
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.19 9.68'%3E%3Cpolyline points='14.15 9.18 18.49 4.84 14.15 0.5' fill='none' stroke='%23d04119' stroke-linecap='round'/%3E%3Cline x1='0.5' y1='4.84' x2='17.42' y2='4.84' fill='none' stroke='%23d04119' stroke-linecap='round'/%3E%3C/svg%3E");
}

.button-orange.in-block {
  position: relative;
}

.button-orange.in-block a {
  right: unset;
}

/* HOME */
.page-template-page-home .header {
  height: 650px;
  background-position: top center;
}

.page-template-page-home .header .inner {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.page-template-page-home .header img.logo-big {
  width: 300px;
  height: auto;
}

.page-template-page-home .trainer .item:first-child {
  grid-column: span 4;
  margin-bottom: 60px;
}

.page-template-page-home .trainer .item:first-child p {
  font-size: 17px;
  line-height: 27px;
  margin: 30px 0;
}

.preise {
  grid-column: 2/12;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-column-gap: 30px;
  /* grid-row-gap: 15px; */
  padding: 0;
  position: relative;
}

.preise .item {
  grid-column: span 3;
}

.preise .item-full {
  grid-column: span 12;
}

/* Home - Kurse */
.home-kurse-head {
  grid-column: 1 / -1;
}

.home-kurse-head > div:nth-child(1) {
  grid-column: span 5;
}

.home-kurse-head > div:nth-child(2) {
  grid-column: span 4;
}

.home-kurse {
  grid-column: 1/-1;
  grid-row-gap: 30px;
}

.home-kurse .item {
  padding: 2rem 2rem 0;
  grid-column: span 4;
  min-height: 420px;
}

.home-kurse .item h3 {
  margin-top: 0;
}

.home-kurse .item .grid-inner {
  grid-template-columns: 1fr 1fr;
  display: grid;

  border-top: 3px solid black;
  margin-top: 2rem;
}

.item.cat-kinder {
  background-color: #fbedc1;
}

.item.cat-white {
  padding: 0.5rem 2rem;
}

.item.cat-modern {
  background-color: #8e9293;
}

.item.cat-oberstufe {
  background-color: #c6b6a9;
}

/* DOJO - 1969 gegründet */
.gallery {
  width: 100%;

  grid-column: 1/-1;

  /* margin: 60px 0; */
  margin: 100px 0;
  padding: 0;
}

.h2-flex-down {
  display: flex;
  flex-flow: column;
  justify-content: flex-end;
  align-items: flex-end;
  text-align: right;
}

/* Cards - Dojo Übersicht, Preise Übersicht */
.cards {
  grid-column: 4 / 12;

  display: grid;
  grid-template-columns: subgrid;

  grid-row-gap: 60px;
  margin-top: 60px;
}

.cards > div {
  grid-column: span 4;
}

.cards .sub {
  background-color: #e5e5e5;
  padding: 1em;
  /*
  font-size: 20px;
  line-height: 1.4;
  */
}

.cards .sub p
/* .cards */ {
  font-size: 20px;
  line-height: 1.4;
  margin: 0;
}

.cards .sub a {
  float: right;
}

.cards .title {
  margin: 2em 0;
  line-height: 1.5;
  font-weight: bold;

  min-height: 2em;
}

.cards.full {
  grid-column: 1 / -1;
}

.cards.full .no-row-gap {
  grid-row: 1;
  grid-column: 1 / -1;
  margin-bottom: -3rem; /* negative row gap for first column */
}

.cards.full .sub,
.cards.full .sub p {
  font-size: 17px;
  line-height: 1.5;
}

.cards h2 {
  margin-top: 32px;
}

/* DOJO - 05 - Shotokan Karate */
ol {
  padding-left: 1em;
}

ol li {
  padding-left: 1em;
  padding-bottom: 2em;
}

/* KURSE - 01 - Übersicht */
.kurse-header {
  padding: 50px 0;
  background-color: #e5e5e5;
}

.kurse-header .inner .subgrid {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: 3/-1;
}

.kurse-header .subgrid > div {
  grid-column: span 2;
  line-height: 1.3;
}

.kurse-header .subgrid div.datum {
  text-align: right;
  font-size: 30px;
  font-weight: bold;
  line-height: 1;
}

.kurse-header .kalender-item .titel {
  font-weight: bold;
}
.kurse-header .kalender-item span {
  display: block;
  text-transform: uppercase;
}

.kurse {
  position: relative;
  grid-column: 1/-1;
}

.kurse.grid {
  position: relative;
}

.kurse > .row:first-of-type {
  margin-top: 0 !important;
}

.kurse .subtitle {
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 3rem;
  text-transform: uppercase;
}

.kurse h2 {
  margin-bottom: 10px;
}

.kurse a.link {
  position: absolute;
  bottom: 0;
}

.kurse-01 {
  grid-column: 2/7;
  position: relative;
}

.kurse-02 {
  grid-column: 9/13;
  position: relative;
}

.kurse-03 {
  grid-column: 2/7;
  position: relative;
}

.kurse-04 {
  grid-column: 7/12;
  position: relative;
}

.dots-container {
  display: flex;
  align-items: center;

  margin: 10px 0;
}

.dots-container div {
  font-size: 14px;
  text-transform: uppercase;
}

ul.dots {
  display: inline-flex;
  margin: 0;
  padding: 0;
  list-style: none;
  margin-right: 15px;
}

ul.dots li {
  height: 20px;
  width: 20px;
  border-radius: 50%;
  margin-right: 5px;
}

li.black-outer {
  border: 3px solid black;
}

li.yellow-outer {
  border: 3px solid #f6cb0c;
}

li.white-outer {
	border: 3px solid white;
}

li.yellow-inner {
  background-color: #f6cb0c;
  border: 3px solid #f6cb0c;
}

li.orange-inner {
  background-color: #f39256;
  border: 3px solid #f39256;
}

li.green-inner {
  background-color: #87bb6d;
  border: 3px solid #87bb6d;
}

li.blue-inner {
  background-color: #4c9ec9;
  border: 3px solid #4c9ec9;
}

li.purple-inner {
  background-color: #8980aa;
  border: 3px solid #8980aa;
}

li.brown-inner {
  background-color: #9e8068;
  border: 3px solid #9e8068;
}

li.black-inner {
  background-color: #000;
  border: 3px solid #000;
}

/* Kurse - Kindertraining */
.trainer {
  grid-column: 2/ -1;
  grid-row-gap: 3rem;
  grid-template-columns: subgrid;
}

.trainer .item {
  margin-top: auto;
  grid-column: span 2;
}

.trainer h2 {
  grid-column: 1/-1;
}

h2.heading-trainer {
  grid-column: 2/-1;
}

/* Kurse - Leistungsgruppe */
.trainer.trainer-small {
  grid-column: 2 / 6;
}

/* Team - Übersicht */
.page-template-page-team_ubersicht section.header,
.page-template-page-team_single section.header,
.post-type-archive-trainerinnen section.header {
  background: linear-gradient(
    180deg,
    rgba(20, 24, 27, 1) 0%,
    rgba(43, 46, 49, 1) 100%
  );
}

.single-trainerinnen section.header {
  background-position: center;
  background-repeat: no-repeat;
}

.page-template-page-team_ubersicht .main,
.page-template-page-team_single .main,
.post-type-archive-trainerinnen .main,
.single-trainerinnen .main {
  background-color: #2b2e31;
  color: #fff;
}

.tu-japanese {
  grid-column: 3/5;
  color: #d04119;
  font-size: 127px;
  font-weight: bold;
}

.tu-main {
  grid-column: 5/-1;
}

/* Team - Single */
.profil-actionpose {
  position: absolute;
  height: 100%;
  width: auto;
  top: 45px;
  right: 26%;
  z-index: 0;
}

.single-trainerinnen section.header .inner {
  z-index: 1;
}
.page-template-page-team_single .left-col h2,
.single-trainerinnen .left-col h2 {
  color: #d04119;
}

.team-pers-left {
  grid-column: 2/8;
}

.team-pers-right {
  grid-column: 9/13;
}

/* Events - Übersicht */
.events {
  grid-column: 2/12;
}

.events-grid {
  grid-row-gap: 30px;
}

.events-grid .item {
  grid-column: span 4;
  padding: 20px;

  display: flex;
  flex-flow: column;
  justify-content: space-between;

  min-height: 420px;
}

.events-grid .item h3 {
  font-size: 28px;
  line-height: 1.1;
  letter-spacing: 0.1em;

  text-transform: uppercase;
  margin-bottom: 32px;
}

.events-grid .item .date {
  font-size: 50px;
  line-height: 1.1;
  /* min-height: 110px; */
}

.item.event-hidden {
  display: none;
}

ul.events-legende {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  border-top: 2px solid #000;

  list-style: none;
  padding: 2rem 0 1rem 0;
}

ul.events-legende li {
  position: relative;
  display: flex;
  align-items: center;

  font-size: 14px;
  line-height: 23px;
  letter-spacing: 0.05em;

  padding-left: 25px;
}

.events-legende li::before {
  content: "";
  position: absolute;
  left: 0px;
  width: 20px;
  height: 20px;
  background-color: black; /* Default color */
  border-radius: 50%;
}

/* Events - Grid - Item - Kategorien */
.item.cat-verein,
li.cat-verein::before {
  background-color: #312b3d;
  color: #fff;
}

.item.cat-extern,
li.cat-extern::before {
  background-color: #dddfdf;
  color: #312b3d;
}

.item.cat-partner,
li.cat-partner::before {
  background-color: #75797b;
  color: #fff;
}

.item.cat-special,
li.cat-special::before {
  background-color: #f1615e;
  color: #fff;
}

.item.show-more {
  background-color: #dddfdf;
  color: #312b3d;
  align-items: center;
  justify-content: center;
}

.item.show-more a {
  background-color: #fff;

  width: 11rem;
  height: 11rem;
  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 28px;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
}

.item.cat-verein a.link:after,
.item.cat-partner a.link:after,
.item.cat-special a.link:after {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.19 9.68'%3E%3Cpolyline points='14.15 9.18 18.49 4.84 14.15 0.5' fill='none' stroke='%23fff' stroke-linecap='round'/%3E%3Cline x1='0.5' y1='4.84' x2='17.42' y2='4.84' fill='none' stroke='%23fff' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Kontakt */
.wpcf7-form-control-wrap {
  width: 100%;
}

.wpcf7-form-control-wrap input {
  border: 0;
  width: 100%;
}

.wpcf7-form-control-wrap input:focus {
  border: 0;
  outline: 0;
}

.wpcf7 label {
  display: flex;
}

.wpcf7-form-control-wrap input {
  border-bottom: 1px solid black !important;
}

.wpcf7-form-control-wrap textarea {
  width: 100% !important;
  border: 1px solid black;
}

input.wpcf7-submit {
  padding: 0.5em 3em 0.5em 1.3em;
  border: 1px solid #d04119;
  color: #d04119;
  background-color: #fff;
  text-transform: uppercase;
  font-size: 15px;
  position: relative;
}

input.wpcf7-submit:after {
  position: absolute;
  width: 19px;
  height: auto;
  margin-left: 7px;
  margin-top: 3px;
  content: url("images/icon-arrow_right.svg");
  /* content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.19 9.68'%3E%3Cpolyline points='14.15 9.18 18.49 4.84 14.15 0.5' fill='none' stroke='%23f1615e' stroke-linecap='round'/%3E%3Cline x1='0.5' y1='4.84' x2='17.42' y2='4.84' fill='none' stroke='%23f1615e' stroke-linecap='round'/%3E%3C/svg%3E"); */
}

input.wpcf7-submit:hover {
  cursor: pointer;
}

.wpcf7 form .wpcf7-response-output {
  margin: 0;
  padding: 1rem;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #d04119;
  background-color: #d04119;
  color: #fff;
}

/* PAGE DEFAULT (IMPRESSUM ETC) */

.main-col.default {
  grid-column: 2/ 11;
}

/* FOOTER */
footer {
  padding: 150px 0 63px;
  background-color: #e5e5e5;
}

footer .top {
  display: flex;
  justify-content: space-around;
  align-items: center;
  grid-gap: 2em;
  line-height: 1.5;
  padding: 0 0 63px 75px;
}

footer .top .dojo-logo {
  max-width: 100px;
}

footer .top .sm {
  display: flex;
  flex-flow: column;
}

footer .top .sm img {
  max-width: 30px;
}

footer .bottom {
  /* display: grid;
  grid-template-columns: 1fr 1fr 1fr 2fr; */
  align-items: center;
  padding-top: 60px;

  font-size: 13px;
  line-height: 24px;
  text-transform: uppercase;
}

footer .bottom .menu-01 {
  grid-column: 2/4;
}

footer .bottom .menu-02 {
  grid-column: 4/6;
}

footer .bottom .logo {
  grid-column: 6/8;
}

footer .bottom .sponsors {
  grid-column: 8/12;

  padding-left: 30px;
}

footer .bottom ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

footer .bottom ul li {
  text-transform: uppercase;
}

footer .bottom .sponsors div {
  display: flex;
  height: 80px;
  justify-content: space-between;
  align-items: center;
  grid-gap: 2em;
}

footer .bottom .sponsors div img {
  height: 60px;
}

.push-down {
  margin-top: 2em;
}

/* ACCORDION UI */
.accordion {
  margin: 20px auto;
  overflow: hidden;
}

.accordion-header {
  all: unset;
  display: flex;
  align-items: flex-start;
  padding: 15px 0;

  cursor: pointer;
  font-weight: bold;
}

.accordion-header::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='8.59 6 7.41 12'%3E%3Cpath d='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z'/%3E%3C/svg%3E");
  /* content: ">"; /* Downward caret */
  font-weight: bold;
  display: inline-block;
  transition: transform 0.2s ease;

  width: 8px;
  height: auto;
  margin-right: 1rem;
  margin-left: 2px;
  margin-top: 1px;
  transform: rotate(0deg); /* Default caret direction */
  transform-origin: center center;
}

.accordion-item.open .accordion-header::before {
  transform: rotate(90deg); /* Rotate caret when active */
}

.accordion-content {
  display: none;
  margin: 0.5rem 0px 2rem 1.65rem;
}

/*
.accordion-item.open .accordion-content {
  display: block;
} */

.button-show-left-col-mobile {
  display: none;
}

/* SWIPER */
.swiper-slide img:hover {
  cursor: pointer;
}

/* SWIPER - LIGHTBOX */
.lightbox {
  display: none;
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  justify-content: center;
  align-items: center;
}

.lightbox img {
  max-width: 90%;
  max-height: 90%;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}

.lightbox .close {
  position: absolute;
  top: 20px;
  right: 30px;
  color: white;
  font-size: 3rem;
  cursor: pointer;
}

/* MEDIA QUERIES */

/* Breakpoint: 1200px */
@media (max-width: 1200px) {
  /* HEADER */
  header .top-row {
    padding-left: 30px;
    padding-right: 30px;
  }
  /* GRID */
  section.main > .grid,
  .bottom-row .inner {
    padding: 0 20px;
  }

  /* Team - Einzelansicht */
  .team-pers-right {
    grid-column: 8/-1;
  }
  .profil-actionpose {
    right: 14%;
  }
}

/* Breakpoint: 1080px */
@media (max-width: 1080px) {
  /* Disable line breaks in p tags */
  .main-col p br {
    display: none;
  }
  .events-grid .item {
    grid-column: span 6;
  }
}

/* Breakpoint Tablet: 980px */
@media (max-width: 980px) {
  .button-probetraining {
    display: none;
  }

  /* FOOTER */
  footer {
    padding: 40px 20px;
  }

  footer .top {
    flex-flow: column;
    text-align: center;
    grid-gap: 1em;
    padding: 0 0 35px;
  }

  footer .top .sm {
    flex-flow: row;
    grid-gap: 1em;
  }

  footer .bottom .logo {
    order: 1;
    grid-column: 4/10;
    margin-bottom: 40px;
  }

  footer .bottom .menu-01 {
    order: 2;
    grid-column: span 6;
  }

  footer .bottom .menu-02 {
    order: 3;
    grid-column: span 6;
  }

  footer .bottom .sponsors {
    order: 4;
    grid-column: 1/-1;

    padding-left: 0;
    margin-top: 40px;
  }
  footer .bottom .sponsors div {
    grid-gap: 1rem;
  }
}

/* Breakpoint Tablet: 768px */
@media (max-width: 768px) {
  header .top-row {
    height: 100px;
    padding: 30px 20px;
  }

  header .top-row nav {
    display: none;
  }

  header a.menu-toggle {
    display: block;
  }

  header a.menu-toggle img {
    height: 40px;
    width: 40px;
  }

  header a.menu-toggle img.menu-closed {
    display: block;
  }

  header a.menu-toggle img.menu-opened {
    display: none;
  }

  .menu-active a.menu-toggle img.menu-closed {
    display: none;
  }

  .menu-active a.menu-toggle img.menu-opened {
    display: block;
  }

  header .bottom-row {
    display: none;
  }

  /* MOBILE MENU */
  .menu-active header .top-row nav {
    display: block;
    position: fixed;
    top: 100px;
    background-color: white;
    width: 100%;
    padding: 20px;
    left: 0;
  }

  .menu-active #primary-menu {
    flex-flow: column;
  }

  ul#primary-menu li.active ul.sub-menu,
  ul#primary-menu li.current-menu-parent ul.sub-menu {
    display: flex;
    flex-flow: column;
    gap: 1rem;
    margin-top: 1rem;
  }

  ul#primary-menu ul.sub-menu li::marker {
    /* content: "> "; */
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='9' viewBox='8.59 6 7.41 12'%3E%3Cpath d='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z'/%3E%3C/svg%3E");
  }

  ul#primary-menu ul.sub-menu li {
    padding-left: 0.3rem;
  }

  /* GENERAL */
  section.main {
    padding-top: 60px;
    padding-bottom: 60px; /* ? maybe 30px */
  }

  h1 {
    font-size: 50px;
    line-height: 1.2;
  }

  h2 {
    font-size: 30px;
    line-height: 1.2;
    hyphens: auto;
  }

  h4 {
    margin-bottom: 3rem;
  }

  .left-col h2 {
    margin-top: 55px;
  }

  .mt-2 {
    margin-top: 20px;
  }

  .mt-3 {
    margin-top: 60px;
  }

  .mb-1 {
    margin-bottom: 10px;
  }

  .mb-2 {
    margin-bottom: 20px;
  }

  .mb-3 {
    margin-bottom: 60px;
  }

  .header > .inner {
    padding: 0 20px;
  }

  .header .jp,
  .header h1,
  .header p.h2 {
    grid-column: 1/-1;
  }

  .header .sm {
    display: none;
  }

  .button-show-left-col-mobile {
    width: 40px;
    height: 40px;
    display: flex;
    position: absolute;
    z-index: 2;
    color: white;
    font-size: 3rem;
    top: -40px;
    right: 20px;
  }

  .button-show-left-col-mobile a {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #2b2e31;
    border-radius: 50%;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    transition: transform 300ms ease-in-out;
  }

  body.mobile-left-col-active .button-show-left-col-mobile a {
    transform: rotate(45deg);
  }

  #left-col-mobile-overlay {
    position: absolute;
    z-index: 1;
    visibility: hidden;
    width: calc(100% + 40px);
    top: -60px;
    left: -20px;
    padding: 60px 20px;
    background-color: rgba(0, 0, 0, 0.95);
    color: #fff;
  }

  body.mobile-left-col-active #left-col-mobile-overlay {
    visibility: visible;
  }

  .left-col {
    grid-column: 1/-1;
  }

  .main-col {
    grid-column: 1/-1;
  }

  .main-col-9 {
    grid-column: 1/-1;
  }

  .right-col-3 {
    grid-column: 1/-1;
  }

  .left-col-6 {
    grid-column: 1/-1;
  }

  .right-col-4 {
    grid-column: 1/-1;
  }

  .single-image {
    grid-column: span 12;
  }

  /* HOME */
  .page-template-page-home .header img.logo-big {
    width: 45%;
  }
  .page-template-page-home .header {
    height: 365px;
  }

  .kurse-header .inner .subgrid {
    grid-column: 1 / -1;
    grid-row-gap: 1rem;
  }

  .kurse-header .subgrid > div:not(.datum) {
    grid-column: 4 / 12;
  }

  .kurse-header .subgrid .datum {
    grid-column-start: 2;
  }

  .kurse-01,
  .kurse-02,
  .kurse-03,
  .kurse-04 {
    grid-column: span 12;
  }
  .kurse-01 {
    order: 1;
  }

  .kurse-02 {
    order: 2;
  }
  .kurse-03 {
    order: 4;
  }
  .kurse-04 {
    order: 3;
  }

  .preise {
    grid-column: 1/-1;
  }

  .preise .item {
    grid-column: span 12;
  }

  .preise .item:not(:nth-child(1)) {
    text-align: center;
    margin-bottom: 1rem;
  }

  /*
  .preise .item:nth-child(4) {
    order: -1;
  }
    */

  .trainer {
    grid-column: 1/-1;
    grid-gap: 20px;
  }

  .trainer .item {
    grid-column: span 6;
  }

  h2.heading-trainer {
    grid-column: 1/-1;
  }

  .page-template-page-home .trainer .item:first-child {
    grid-column: span 12;
  }

  .home-kurse-head > div:nth-child(1),
  .home-kurse-head > div:nth-child(2) {
    grid-column: span 12;
  }

  .home-kurse .item {
    grid-column: span 12;
  }

  .gallery {
    margin: 60px 0;
  }

  /* Über uns - Dojo 02 */
  .cards,
  .cards > div {
    grid-column: span 12;
  }

  /* DOJO - 05 - Shotokan Karate */
  ol {
    padding-left: 1.8em;
  }

  /* Kurse - Leistungsgruppe */
  .trainer.trainer-small {
    grid-column: 1/-1;
  }
  .main-col-big {
    grid-column: 1/-1;
  }

  /* Team - Übersicht */
  .tu-japanese {
    grid-column: 1/-1;
  }
  .tu-main {
    grid-column: 1/-1;
  }
  .left-col-6-full {
    grid-column: 1/-1;
  }

  /* Team - Einzel */
  .team-pers-left {
    grid-column: 1/-1;
  }
  .team-pers-right {
    grid-column: 1/-1;
  }
  .profil-actionpose {
    position: absolute;
    height: 100%;
    width: auto;
    top: 45px;
    right: 20px;
    z-index: 0;
  }

  /* Events - Übersicht */
  .events {
    grid-column: 1/-1;
  }
  .events-grid .item {
    grid-column: span 12;
  }
}

/* FONTS */
/* roboto-regular - latin */
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/roboto-v32-latin-regular.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("fonts/roboto-v32-latin-regular.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  font-display: auto;
}

@font-face {
  font-family: "Roboto";
  font-style: bold;
  font-weight: 700;
  src: url("fonts/roboto-v32-latin-700.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("fonts/roboto-v32-latin-700.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  font-display: auto;
}
