/*
Theme Name: Gridiculous Pro - Child theme
Theme URI: http://www.aikido-plombières.net/
Author: Daniel Hugé
Author URI: http://www.huge-gmbh.de/
Description: Child Theme for Gridiculous Pro by c.bavota
Version: 1.1.1
Template: gridiculous-pro
version: 1.1
Gridiculous Pro WordPress Theme, Copyright 2012 c.bavota
Gridiculous Pro is distributed under the terms of the GNU GPL
*/

/* @import url("../gridiculous-pro/style.css");*/

/* =General
-------------------------------------------------------------- */
body {
	text-shadow:none;
   	-moz-hyphens: auto;
   	-o-hyphens: auto;
   	-webkit-hyphens: auto;
   	-ms-hyphens: auto;
   	hyphens: auto; 
	hyphenate-limit-chars: auto 3;
	hyphenate-limit-lines: 2;
}
.nocomments { display:none; }

blockquote {
  background:#f9f9f9;
  border-left:10px solid #ccc;
  margin:1.5em 10px;
  padding:.5em 10px;
  quotes:"\201C""\201D""\2018""\2019";
}

#commentform{font-size:0.9em;}
#comments-title,#reply-title {font-size:1.3em;color:#ee6600;}
#Artikel-Vorschlag{font-size:0.9em;color:#ee6600;}

/* =Pagination, Buttons and more
-------------------------------------------------------------- */
#pagination .total-pages,
#pagination .page-numbers,
#post-pagination a,
#pagination .page-numbers.current,
#pagination .page-numbers:hover,
#post-pagination a:hover,
#post-pagination .current-post-page, 
.more-link,
.button,
#posts-pagination a,
input[type="submit"],
.comment-reply-link {
	font-size:75%;
	padding:6px 10px;
}

/* =Navigation
-------------------------------------------------------------- */
#site-navigation{
	background-image:-webkit-gradient(linear,0% 0%,0% 100%,from(rgb(51,51,51)),to(rgb(34,34,34)));
	background-image:-moz-linear-gradient(bottom,rgb(34,34,34) 100%,rgb(51,51,51) 0%);
	background-image:-ms-linear-gradient(bottom,rgb(51,51,51) 5%,rgb(42,42,42) 20%,rgb(34,34,34) 100%);
	background-image:-o-linear-gradient(bottom,rgb(34,34,34) 100%,rgb(51,51,51) 0%);
	background-image:linear-gradient(bottom,rgb(34,34,34) 100%,rgb(51,51,51) 0%);
	color:#ccc;
}
#site-navigation li ul a { border-bottom:1px dotted #555; }
#site-navigation ul li:hover > ul { background:#333; }

/* =Article
-------------------------------------------------------------- */
article { border-bottom:none; }
.current-page-item,.current-menu-item,.current-page-ancestor,.current-post-ancestor,.current-post-parent{background:black;color:#6db;}

/* =Posts
-------------------------------------------------------------- */
.post-title,.entry-title{letter-spacing:-0.01ex;border-bottom:none !important;text-rendering:geometricPrecision;}
.post-title a,.entry-title a{font-size:100%;text-decoration:none !important;letter-spacing:-0.01ex;text-rendering:geometricPrecision;}
.post-meta,.entry-meta{ text-decoration:none !important;font-size:90%;color:#333; }
.post-meta a,.entry-meta a{ text-decoration:none !important;border-bottom:none !important;font-size:90%;color:#333; }
.post-meta a:hover,.entry-meta a:hover{ margin-left:1px; }
.post-content,.entry-content{ font-size:1.3em; line-height:1.3em; text-rendering:geometricPrecision; }
.post-content a,.entry-content a{ text-decoration:none; }
.post-category{ display:none; }
#Vorschlag-Titel a{ color:#6699CC !important; margin:10px; border-bottom:none; }

/* =Kategorie-überschriften ausblenden */
.page-title{ display:none; }

/* =Footer
-------------------------------------------------------------- */
.footer-widget .widget-title{ color:#6699CC; padding:10px 0; border-bottom:none; box-shadow:none; }
#footer{
	color:#ccc;
	background-image:-webkit-gradient(linear,0% 0%,0% 100%,from(rgb(51,51,51)),to(rgb(34,34,34)));
	background-image:-moz-linear-gradient(bottom,rgb(34,34,34) 100%,rgb(51,51,51) 0%);
	background-image:-ms-linear-gradient(bottom,rgb(51,51,51) 5%,rgb(42,42,42) 20%,rgb(34,34,34) 100%);
	background-image:-o-linear-gradient(bottom,rgb(34,34,34) 100%,rgb(51,51,51) 0%);
	background-image:linear-gradient(bottom,rgb(34,34,34) 100%,rgb(51,51,51) 0%);
	font-size:80%;
}
#footer a{ color:#ccc; border-bottom:none; text-decoration:none; font-size:1.25em; }
.footer-widget ul li a{
	text-decoration:none;
	-o-transition:margin .15s ease-in-out;
	-ms-transition:margin .15s ease-in-out;
	-moz-transition:margin .15s ease-in-out;
	-webkit-transition:margin .15s ease-in-out;
	transition:margin .15s ease-in-out;
}
.footer-widget ul li a:hover{ margin-left:5px; }
#RichSnippets{ display:none; }

/* =404
-------------------------------------------------------------- */
article.error404 .entry-title{ font-size:300%; text-align:center; text-shadow:5px 5px 0 #eee; }
article.error404 img{ background:none; border:0; padding:0; margin:0 auto 10px; display:block; }
article.error404 .entry-content{ text-align:center; font-size:100%; line-height:1.4; text-transform:none; }

/* =Widgets
-------------------------------------------------------------- */
.widget{ margin-bottom:20px; width:100%; text-decoration:none; }
.widget p{ padding:0 20px; }
.widget p a,.widget a,.home-widget a{ text-decoration:none; border-bottom:none; }
.widget ul li a{ text-decoration:none; font-size:1.3em; line-height:1.3em; Padding:5px 0 0 0; }
.home-widget-title{ margin:5px 5px 0 0; padding-bottom:10px; }
#widget_tag_cloud{ text-decoration:none; }
.entry-content a{ border-bottom:none; text-decoration:none; }
#site-title a,#site-description{ color:#444; }
#site-description{ color:#444; font-size:120%; }

/* Images */
article img,.home-widget img,.post-content wp-post-image,.entry-content wp-post-image{
    margin:0; padding:1px; border:0; background:none; border-radius:6px;
}
#bavotasan_custom_text_widget-2{ border-left:1px dotted #ddd; border-right:1px dotted #ddd; }
#text-6,#text-10,#bavotasan_custom_text_widget-6{ margin:0; line-height:1.4; width:100%; }
#text-8{ border:none; }
#post-169{ border-bottom:none; hentry:none; }

/* heartbeat demo */
@keyframes heartbeat{
  0%{transform:scale(.75)} 20%{transform:scale(1)} 40%{transform:scale(.75)}
  60%{transform:scale(1)} 80%{transform:scale(.75)} 100%{transform:scale(.75)}
}
.entry-content mtest{ animation:heartbeat 1s infinite; }

/* =All in one Calendar / ICS / Spider / Misc
-------------------------------------------------------------- */
.ai1ec-actions{display:none;}
.ai1ec-col-sm-push-7{left:none;}
.ai1ec-col-sm-pull-5{right:none;}
.ai1ec-pull-left{display:none;}
.ai1ec-agenda-widget-view .ai1ec-date{background:none;border:none;}
.ai1ec-col-md-5{width:25%;}
.ai1ec-col-md-7{width:70%;}
.ics-calendar-label{display:none !important;}
.ics-calendar-select{margin-bottom:.8em !important;}
.calendar_navigation input,.calendar_navigation select{display:none !important;}
#icallookmore a#icalalookprev,.calendar_navigation .prevweek,.calendar_navigation .prevmonth{display:none !important;}
#icallookmore a#icalalookmore,.calendar_navigation .nextweek,.calendar_navigation .nextmonth{display:none !important;}
.icalprop,#events_wrap .icalprop,#multismallcalendar .icalprop{background:none !important;}
th{font-size:.7em !important;}
#events_wrap table td.pad{background:#f1f1f1;}
caption{margin-bottom:20px !important;}
.menu-search{float:right !important; padding:10px;}
#afterbig1 span,#bigcalendar1 span{font-family:PT Sans,sans-serif !important; font-weight:light !important; text-shadow:none !important;}
#afterbig1 .week_days,#bigcalendar1 .week_days{font-family:PT Sans,sans-serif !important;}
#afterbig1 .cala_day a:link,#afterbig1 .cala_day a:visited,#bigcalendar1 .cala_day a:link,#bigcalendar1 .cala_day a:visited{font-weight:100 !important; font-family:Nobile !important; font-size:10px !important;}
#dayevent h2{font-family:Nobile !important;}
.agm_mh_marker_list{width:-100%;}
#acx-social-icons-widget-5{border:none;padding-top:0;padding-bottom:0;margin-top:-1em;margin-bottom:0;}
#acx-social-icons-widget-5 widget acx-social-icons-desc{margin-bottom:0 !important;}
#acx_social_widget img,#acurax_si_widget_simple img,#short_code_si_icon img{margin-top:0px;margin-bottom:4px;}
#acx_social_widget img:hover,#short_code_si_icon img:hover,#acurax_si_widget_simple img:hover{opacity:.9;margin-bottom:2px;transition:margin .15s ease-in-out;}
#fancybox-close{right:-35px !important;}
.ngg-gallery-thumbnail br{display:none}
#menu-hauptmenu li.lang-item{float:right;}
.related-posts{list-style-type:none !important;margin:30px !important;background-color:#f4f4f4 !important;}
#yarpp-related,#Artikel-Vorschlag,#yarpp-thumbnails-horizontal{background-color:#f4f4f4 !important;margin-top:30px !important;padding:10px 30px !important;}

/*------------------------------------------------*/
/*-----------[Fast Secure Contact Form]-----------*/
.fscf-div-form{width:99%;max-width:550px;}
.fscf-div-left-box{float:left;width:55%;max-width:270px;}
.fscf-div-right-box{float:left;width:235px;}
.fscf-div-clear{clear:both;}
.fscf-div-field-left{clear:left;float:left;width:99%;max-width:550px;margin-right:10px;}
.fscf-div-field-prefollow{clear:left;float:left;width:99%;max-width:250px;margin-right:10px;}
.fscf-div-field-follow{float:left;padding-left:10px;width:99%;max-width:300px;}
.fscf-div-label{text-align:left;padding-top:5px;}
.fscf-div-field{text-align:left;}
.fscf-div-captcha-sm{width:175px;height:40px;padding-top:2px;}
.fscf-div-captcha-m{width:250px;height:40px;padding-top:2px;}
.fscf-image-captcha{border-style:none;margin:0 5px 0 0;padding:0px;padding-right:5px;float:left;}
.fscf-image-captcha-refresh{border-style:none;margin:0;padding:0px;vertical-align:top;}
.fscf-div-submit{text-align:left;clear:both;padding-top:15px;width:150px;height:40px;color:green;font-size:1em;}
.fscf-fieldset{border:1px solid #E5E5E5;width:99%;max-width:550px;padding:10px;}
.fscf-required-indicator{text-align:left;}
.fscf-required-text{text-align:left;}
.fscf-hint-text{font-size:x-small;font-weight:normal;}
.fscf-div-error{text-align:left;color:red;}
.fscf-div-redirecting{text-align:left;}
.fscf-fieldset-field{border:1px solid #E5E5E5;width:99%;max-width:550px;padding:10px;}
.fscf-label{display:none;}
.fscf-option-label{display:inline;}
.fscf-input-text{ text-align:left;margin:0;width:99% !important;max-width:550px;height:35px;font-size:.9em;border:1px solid #ddd;border-radius:6px;padding:1% 1%;margin:5px 0 20px 0 !important;}
.fscf-input-captcha{ text-align:left;clear:both;margin:0;width:11.8em !important;max-width:550px;height:35px;font-size:.9em;border:1px solid #ddd;border-radius:6px;padding:1% 0 5px 1%;margin:10px 0;float:left;}
.fscf-input-textarea{ text-align:left;margin:0;width:99%;max-width:550px;height:100px;font-size:.9em;border:1px solid #ddd;border-radius:6px;padding:1% 1%;margin:5px 0 20px 0 !important;}
.fscf-input-select{ text-align:left; }
.fscf-input-checkbox{ width:13px; }
.fscf-input-radio{ width:13px; }
.fscf-button-submit{ cursor:pointer;display:inherit;background-color:#4ca6cf;color:#fff;opacity:.9;padding:10px 35px;width:100px;font-size:1.0em !important;border-radius:6px;border:none; }
.fscf-button-submit:hover{ opacity:1; }
.fscf-button-reset{ cursor:pointer;margin:0;display:none;}
.fscf-button-vcita{ text-decoration:none;display:block;text-align:center;background:linear-gradient(to bottom,#ed6a31 0%,#e55627 100%);color:#fff !important;padding:10px; }
.fscf-button-div-vcita{ border-left:1px dashed #ccc;margin-top:25px;height:50px;padding:8px 20px; }
.fscf-powered-by{ font-size:x-small;font-weight:normal;padding-top:5px;text-align:center; }

/* Placeholder */
::-webkit-input-placeholder{opacity:.5;color:#333;}
:-moz-placeholder{opacity:.5;color:#333;}
::-moz-placeholder{opacity:.5;color:#333;}
:-ms-input-placeholder{opacity:.5;color:#333;}


/* =========================================================
   MOBILE OFFCANVAS – FINAL BLOCK
   ========================================================= */

:root { --mmh: 48px; }

/* Offcanvas-Container */
#left-nav {
  display: none;
  position: fixed;
  left: 0;
  width: 260px;
  background: #111;
  overflow-y: auto;
  z-index: 10000;
}

/* Liste + Grundstyles */
#left-nav #site-navigation-offcanvas ul { list-style:none; margin:0; padding:0; }
#left-nav #site-navigation-offcanvas li { border-bottom:1px solid #222; position:relative; }
#left-nav #site-navigation-offcanvas a {
  display:block;
  padding:12px 16px;          /* Basis-Einrückung Ebene 1 */
  color:#fff;
  text-decoration:none;
}

/* Submenüs standardmäßig zu */
#left-nav #site-navigation-offcanvas ul ul { display:none; }

/* Sichtbar, wenn LI geöffnet */
#left-nav #site-navigation-offcanvas li.open > ul { display:block; }

/* Pfeile für Items mit Untermenü */
#left-nav #site-navigation-offcanvas li.menu-item-has-children > a:after {
  content: "▸";
  float: right;
  opacity: .7;
}
#left-nav #site-navigation-offcanvas li.open > a:after {
  content: "▾";
  opacity: 1;
}

/* -------- Einrückungen der Ebenen -------- */
/* Ebene 2 */
#left-nav #site-navigation-offcanvas ul ul > li > a {
  padding-left: 32px;          /* +16px zur Basis */
  font-size: 0.97em;
}
/* Ebene 3 */
#left-nav #site-navigation-offcanvas ul ul ul > li > a {
  padding-left: 48px;          /* +32px zur Basis */
  font-size: 0.95em;
}
/* Ebene 4+ optional */
#left-nav #site-navigation-offcanvas ul ul ul ul > li > a {
  padding-left: 64px;
  font-size: 0.93em;
}

/* Hover/Active Lesbarkeit */
#left-nav #site-navigation-offcanvas a:hover { background:#1a1a1a; }
#left-nav #site-navigation-offcanvas li.open > a { background:#161616; }

/* Mobile Breakpoint */
@media (max-width: 768px){
  #site-navigation { display:none !important; }

  #mobile-menu {
    display:block !important;
    position:sticky;
    top:0;
    z-index:10001;
  }

  body.offcanvas #left-nav { display:block; }

  /* Abstand Titel nur mobil */
  #header-group { margin-top:12px; }

  /* Offcanvas bündig unter Topbar */
  #left-nav {
    top: var(--mmh);
    max-height: calc(100vh - var(--mmh));
  }

  /* Verbesserte Lesbarkeit für entry-content */
  .entry-content {
    font-size: 1.4em;
    line-height: 1.5em;
    padding: 0 1em;
    text-align: justify;
    hyphens: auto;
    word-break: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }
}

/* Verhindert, dass NextGEN das Logo oder Headerbild als Lightbox behandelt */
.no-lightbox,
.no-lightbox img,
img.no-lightbox {
  pointer-events: auto !important;
}

a.no-lightbox,
a.no-lightbox img {
  cursor: pointer !important;
}

/* Wichtig: NextGEN globaler Click-Handler umgehen */
a.no-lightbox[data-ngg-no-lightbox],
img.no-lightbox[data-ngg-no-lightbox] {
  pointer-events: auto !important;
}

#header { position: relative !important; }

/* Basis: Logo absolut rechts, über Menü und Headerbild */
#header{ position: relative !important; }
/* Das Logo stand hier ein zweites Mal - mit `right: 16px` und `width: auto`,
   also im Widerspruch zu den elf Stufen weiter unten. Seit dem 2026-09-13
   steht es an genau einer Stelle, im Abschnitt "Responsive Header und Logo".
   Hier bleibt nur, was die Navigation betrifft. */
#site-navigation{ z-index: 1000 !important; }



/* Home-Widget-Titel dynamisch & ohne Zeilenumbruch */
.home-widget-title {
  white-space: nowrap;
  line-height: 1.15;
  display: block;
}

.home-widget-title i {
  font-size: 1em;
  margin-right: 6px;
}

.home-widget-title {
  font-size: clamp(1.1rem, 2vw, 1.9rem); /* min | fluid | max */
}

/* Home-Widget Texte: Blocksatz + Silbentrennung + stabile Wortabstände */
.home-widget .textwidget p,
.home-widget .entry-content {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  overflow-wrap: anywhere;
  word-break: normal;
  letter-spacing: normal;
  word-spacing: normal;
  text-align-last: auto;
}

/* Bild rechts im Text: saubere Abstände */
.home-widget .textwidget img.alignright,
.home-widget .entry-content img.alignright {
  float: right;
  margin: 0 0 .4em .8em;
}

/* Optional: Mikrotypografie */
.home-widget .textwidget p {
  text-rendering: optimizeLegibility;
  font-kerning: normal;
}

.cta-fadein {
  opacity: 0;
  transform: translateY(30px);
  animation: fadeInUp 0.8s ease-out 0.3s forwards;
}

@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 768px) {
  .entry-content p {
    max-width: 36em;
    margin-left: auto;
    margin-right: auto;
  }
}

.home-widget img[src*="Event_Header"] {
  transition: transform 0.4s ease, filter 0.3s ease;
  display: block;
  width: 100%;
  height: auto;
}

.home-widget img[src*="Event_Header"]:hover {
  transform: scale(1.05);
  filter: brightness(0.95);
}

.cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 0 24px;
  font-size: 1rem;
  font-weight: 600;
  font-family: inherit;
  color: #fff;
  background: #2e77bb;
  text-decoration: none;
  border-radius: 6px;
  box-shadow: 0 1.5px 3px rgba(0,0,0,0.25);
  text-shadow: 0 1px 1px rgba(0,0,0,0.2);
  transition: all 0.25s ease-in-out;
}
.cta-button:hover {
  background: #005b9a;
  transform: scale(1.02);
}

body.postid-8499 #posts-pagination {
  display: none !important;
}

/* --- Schnupperkurs: Grundlayout --- */

.aikido-schnupperkurs { position: relative; }
.aikido-schnupperkurs::after { content:""; display:block; clear:both; } /* räumt Floats im Artikel */

/* Hero + Sticker */
.aikido-schnupperkurs .hero { position: relative; }
.aikido-schnupperkurs .hero img { display:block; width:100%; height:auto; border-radius:4px; }

/* Sticker (Badge) */
.aikido-schnupperkurs .sticker {
  position:absolute; bottom:56px; left:76px;
  transform:rotate(-10deg);
  display:flex; align-items:center; justify-content:center;
  font-family:inherit; font-weight:600; line-height:1.0; white-space:nowrap;
  color:#000; text-decoration:none;
  padding:14px 30px; border-radius:4px;
  background:
    linear-gradient(to bottom, rgba(255,255,255,.10) 0%, rgba(0,0,0,.08) 100%),
    #f5a638;
  box-shadow:0 2px 3px rgba(0,0,0,.25);
  z-index:50;
}
.aikido-schnupperkurs .sticker > span { display:block; transform:rotate(2deg); }

/* Info-Tabelle */
.aikido-schnupperkurs .snupper-table-wrap { overflow-x:auto; }
.aikido-schnupperkurs .snupper-table { border-collapse:separate; border-spacing:0; width:100%; }
.aikido-schnupperkurs .snupper-table td { border:2px solid #fff; padding:0.9rem 1rem; vertical-align:top; }
.aikido-schnupperkurs .snupper-table td.col-1 { background:#d9d9d9; width:28%; }
.aikido-schnupperkurs .snupper-table td.col-2 { background:#f2f2f2; font-size:1.15rem; }
.aikido-schnupperkurs .snupper-table td.col-3 { background:#f2f2f2; width:56px; text-align:center; }
.aikido-schnupperkurs .snupper-table h4 { margin:0; color:var(--h3-color, #1d4f8b); font-weight:600; }
.aikido-schnupperkurs .icon { display:inline-flex; width:28px; height:28px; align-items:center; justify-content:center; text-decoration:none; }
.aikido-schnupperkurs .icon svg { width:24px; height:24px; }
.aikido-schnupperkurs .icon svg * { stroke:#333; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* Floatende Bilder im Text (nutzt i. d. R. Theme-Klassen) */
.aikido-schnupperkurs img.alignright { float:right; margin:0 0 0.6rem 1rem; border-radius:4px; }

/* Mobile-Feinschliff */
@media (max-width:680px){
  .aikido-schnupperkurs .sticker{
    bottom:4.5vw; left:5.5vw;
    padding:10px 22px; border-radius:6px;
    font-size:1.05rem;
  }
  .aikido-schnupperkurs .snupper-table td { padding:0.7rem 0.8rem; }
  .aikido-schnupperkurs .snupper-table td.col-1 { width:36%; }
  .aikido-schnupperkurs .snupper-table td.col-3 { width:44px; }
}

/* Fix: Unsichtbare schema.org <time>-Tags innerhalb Event-Artikel */
article[itemtype="https://schema.org/Event"] time {
  display: none !important;
  visibility: hidden;
  height: 0;
  margin: 0;
  padding: 0;
}

/* Leere Absätze einklappen */
.aikido-schnupperkurs > p:empty,
.aikido-schnupperkurs > p:has(br:only-child) { display:none; margin:0; padding:0; }
/* Post-ID anpassen: 8652 = dein Testbeitrag */
body.postid-8499 .aikido-schnupperkurs{ margin-bottom:0 !important; }
body.postid-8499 .aikido-schnupperkurs + p{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
  height:0 !important;
  line-height:0 !important;
}
/* optional für alle Fälle: erstes H3 ohne Top-Margin */
body.postid-8499 .entry-content h3:first-of-type{ margin-top:0 !important; }

/* Schnupperkurs – Tabelle "Wann und wo?" (aus HTML-Inline-Style übernommen) */
.snupper-table-wrapper table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

.snupper-table-wrapper td {
  border: 2px solid #ffffff;
  padding: 0.9rem 1rem;
  vertical-align: top;
  font-size: 1rem;
}

.snupper-table-wrapper td.col-1 {
  background: #d9d9d9;
  width: 28%;
}

.snupper-table-wrapper h4 {
  margin: 0;
  color: var(--h3-color, #1d4f8b);
  font-weight: 600;
}

.snupper-table-wrapper td.col-2 {
  background: #f2f2f2;
  font-size: 1.15rem;
}

.snupper-table-wrapper td.col-3 {
  background: #f2f2f2;
  width: 56px;
  text-align: center;
}

.snupper-table-wrapper a.icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
}

.snupper-table-wrapper svg {
  width: 24px;
  height: 24px;
}

.snupper-table-wrapper .icon svg * {
  stroke: #333;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* Basis: Zelle selbst bekommt den Hover, NICHT das Icon */
.snupper-table-wrapper td.col-3 {
  transition: background 0.25s ease;
}

/* Nur Zellen mit echtem Link sollen reagieren */
.snupper-table-wrapper td.col-3:has(a[href^="http"]) {
  cursor: pointer;
}

.snupper-table-wrapper td.col-3:has(a[href^="http"]):hover {
  background: #1d4f8b; /* blau */
}

/* Icons invertieren nur bei Hover der Zelle */
.snupper-table-wrapper td.col-3:has(a[href^="http"]):hover svg * {
  stroke: #ffffff;
}

.snupper-table-wrapper td.col-3:has(a[href^="http"]):hover svg circle {
  fill: #ffffff;
}

/* Rahmen nur bei den unteren beiden Widgets entfernen */
#simple-social-icons-3.widget,
#custom_html-2.widget {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

//* Socialmedia Buttons einrücken */
#simple-social-icons-3.widget{padding-left:0!important;}

/* Basis: Radius + Transition */
#simple-social-icons-3 ul li a{border-radius:4px!important;transition:background-color .15s ease-out,opacity .15s ease-out;}

/* Icons global weiß */
#simple-social-icons-3 ul li a svg{fill:#ffffff!important;}

/* Socialmedia Buttons einrücken */
#simple-social-icons-3.widget {
    padding-left: 0 !important;
}

/* Basis: Radius + Transition */
#simple-social-icons-3 ul li a {
    border-radius: 4px !important;
    transition: background-color .15s ease-out, opacity .15s ease-out;
}

/* Icons global weiß */
#simple-social-icons-3 ul li a svg {
    fill: #ffffff !important;
}

/* FACEBOOK: Grundfarbe + Focus */
#simple-social-icons-3 ul li.ssi-facebook a,
#simple-social-icons-3 ul li.ssi-facebook a:focus {
    background: #1877F2 !important;
    border-color: #1877F2 !important;
}

/* FACEBOOK: Hover etwas dunkler */
#simple-social-icons-3 ul li.ssi-facebook a:hover {
    background-color: #0F5FD9 !important;
    border-color: #0F5FD9 !important;
}

/* INSTAGRAM: Grundfarbe + Focus */
#simple-social-icons-3 ul li.ssi-instagram a,
#simple-social-icons-3 ul li.ssi-instagram a:focus {
    background: #E1306C !important;
    border-color: #E1306C !important;
}

/* INSTAGRAM: Hover etwas dunkler */
#simple-social-icons-3 ul li.ssi-instagram a:hover {
    background-color: #C02058 !important;
    border-color: #C02058 !important;
}

/* YOUTUBE: Grundfarbe + Focus */
#simple-social-icons-3 ul li.ssi-youtube a,
#simple-social-icons-3 ul li.ssi-youtube a:focus {
    background: #FF0000 !important;
    border-color: #FF0000 !important;
}

/* YOUTUBE: Hover etwas dunkler */
#simple-social-icons-3 ul li.ssi-youtube a:hover {
    background-color: #CC0000 !important;
    border-color: #CC0000 !important;
}

/* EMAIL – weißer Umschlag, dunkles Icon, überschreibt Plugin-CSS */
#simple-social-icons-3.widget ul.alignleft li.ssi-email a,
#simple-social-icons-3.widget ul.alignleft li.ssi-email a:hover,
#simple-social-icons-3.widget ul.alignleft li.ssi-email a:focus {
    background: #ffffff !important;
    border: 1px solid #888888 !important;
    color: #333333 !important;
}

/* EMAIL Icon dunkel */
#simple-social-icons-3.widget ul.alignleft li.ssi-email a svg {
    fill: #333333 !important;
}

#aikido-aachen p {
    text-align: justify;
    text-justify: inter-word;
}

/* -----------------------------------------------------------------------------
   Responsive Seitentitel (Aikido Plombières) – einzeilig + Auto-Skalierung
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  /* je nach Theme-Bezeichnung mehrere Selektoren absichern */
  h1.site-title,
  h1.site-title a,
  #site-title,
  #site-title a,
  #branding h1,
  #branding h1 a {
    font-size: clamp(1.8rem, 6vw, 3rem);  /* passt sich an Viewport-Breite an */
    line-height: 1.05;
    white-space: nowrap;                  /* kein Zeilenumbruch */
    overflow-wrap: normal;
    word-wrap: normal;
    -webkit-hyphens: manual;
    -ms-hyphens: manual;
    hyphens: manual;                      /* keine Silbentrennung wie „Plombiè-res“ */
  }
}
/* -----------------------------------------------------------------------------
   Responsive Untertitel (site-description)

   GEAENDERT am 2026-09-13. Vorher stand hier
   `font-size: clamp(0.9rem, 3.2vw, 1.3rem)` zusammen mit `white-space: nowrap`.
   Die untere Grenze `0.9rem` hat die Schrift auf schmalen Geraeten groesser
   gehalten, als der Platz zuliess - der Satz blieb einzeilig und lief nach
   rechts heraus. Gemessen am 2026-09-13:

     Fenster   Schrift    Text braucht   verfuegbar   Ueberlauf der Seite
      390 px   12,96 px      395 px        350 px         25 px
      480 px   12,96 px      440 px        440 px          0
      605 px   19,20 px      585 px        560 px          5 px
      700 px   20,80 px      660 px        660 px          0

   Der Satz misst das 30,5fache seiner Schriftgroesse (292 px bei 9,56 px,
   gemessen in Copse am 2026-09-13). Verfuegbar sind `100vw` minus 40 px Rand.
   Damit er einzeilig passt, darf die Schrift hoechstens
   `(100vw - 40px) / 30,5` gross sein - bei 375 px Fenster also 11,0 px, was
   2,93vw entspricht.

   `2.8vw` laesst Luft: bei 320 px Fenster bleiben 7 px uebrig, bei 375 px
   15 px, bei 415 px 21 px.

   ZWISCHENSCHRITT, der hierher gehoert: Ein Anlauf mit `2.55vw` rechnete mit
   dem Faktor 33,5 - hergeleitet aus einer Messung, bei der der Satz 395 px
   brauchte. Diese 395 px stammten aber gar nicht von dieser Regel, sondern
   von `#site-description { font-size: 0.9em }` weiter unten im Blatt, die sie
   ueberstimmte. Erst nachdem die entfernt war, war die Rechnung hier
   ueberhaupt messbar.

   Die untere Grenze faellt ersatzlos: eine Mindestgroesse und `nowrap`
   widersprechen einander, sobald das Fenster schmal genug ist.
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .site-description,
  #site-description {
    font-size: min(2.8vw, 1.3rem);
    line-height: 1.2;
    hyphens: manual;
    -webkit-hyphens: manual;
    -ms-hyphens: manual;
    white-space: nowrap;
    overflow-wrap: normal;
    word-wrap: normal;
  }
}

/* -----------------------------------------------------------------------------
   Ausgerichtete Bilder im Artikeltext: Breite nach Platz statt nach Attribut

   ANLASS: Der Anwender am 2026-09-13 zu den Trainerbildern auf einem iPhone
   Pro Max (440 px): "die Trainerbilder sind zu gross und der Platz fuer den
   Fliesstext wird dadurch zu gering. Kannst du die Bildgroesse dynamisieren?"

   Die Bilder tragen feste Breiten im HTML - 260, 245 und 240 px, gesetzt beim
   Einfuegen in den Beitrag. Bei 440 px Fensterbreite bleiben neben einem
   260-px-Bild rund 140 px fuer den Text; der Blocksatz bricht dann in
   Einzelsilben um.

   ZWEI STUFEN, weil ein Prozentsatz allein nicht reicht:

   bis 768 px  Das Bild nimmt hoechstens 38 Prozent der Textspalte. Der Text
               behaelt 62 Prozent - bei 768 px sind das rund 450 px.
   bis 520 px  Das Bild nimmt hoechstens 30 Prozent. Der Umfluss bleibt.

   ZWEITER ANLAUF, 2026-09-13. Der erste hob den Umfluss unter 520 px auf: Bild
   allein, Text darunter. Der Anwender dazu: "Darstellung nicht untereinander
   sondern wie im gezeigten Landscape Modus, Bilder ggfs soweit verkleinern,
   dass der Block auf dem Telefon passt." Also bleibt der Umfluss, und das Bild
   wird klein genug.

   GERECHNET fuer 440 px Fensterbreite: die Textspalte misst 360 px, das Bild
   nimmt 108 px, dem Text bleiben 240 px. Bei der Schriftgroesse des
   Artikeltexts sind das rund 16 Zeichen je Zeile - wenig, aber im Flattersatz
   lesbar.

   DESHALB FLATTERSATZ. Der Artikeltext steht im Blocksatz. Neben einem Bild
   auf 240 px reisst er Loecher zwischen die Woerter; darunter leidet die
   Lesbarkeit mehr als unter der fehlenden rechten Kante.

   `height: auto` ist noetig, weil die Bilder teils auch ein `height`-Attribut
   tragen - ohne das wuerden sie verzerrt.
   -------------------------------------------------------------------------- */
@media (max-width: 768px){
  .entry-content img.alignleft,
  .entry-content img.alignright,
  .post-content img.alignleft,
  .post-content img.alignright{
    max-width: 38%;
    height: auto;
  }
}

@media (max-width: 520px){
  .entry-content img.alignleft,
  .entry-content img.alignright,
  .post-content img.alignleft,
  .post-content img.alignright{
    max-width: 30%;
    height: auto;
  }

  /* `!important` ist hier kein Holzhammer, sondern noetig: drei Absaetze der
     Trainerseite tragen `style="text-align: justify"` direkt im HTML, und ein
     Inline-Stil schlaegt jede Regel aus dem Stilblatt. Gemessen 2026-09-13.
     Der Blocksatz auf breiten Ansichten bleibt unberuehrt - die Regel steht in
     der Medienabfrage bis 520 px. */
  .entry-content,
  .entry-content p,
  .post-content,
  .post-content p{
    text-align: left !important;
    text-align-last: left !important;
  }
}


/* -----------------------------------------------------------------------------
   Kopftext haelt rechts Platz fuer das Logo

   ANLASS: Auf einem iPad Pro 13 im Hochformat lief der Untertitel unter das
   Logo (Screenshot des Anwenders, 2026-09-13). Im Pruefbrowser war das bei
   1024 px nicht nachzustellen - dort endet der Text bei 605 px, das Logo
   beginnt bei 683 px. Die Schriftgroesse faellt auf echten Geraeten also
   anders aus als in der Nachstellung.

   Deshalb haengt die Loesung nicht an einer Schriftgroesse, sondern am Platz:
   der Kopftext bekommt rechts einen Freiraum in Logobreite. Laeuft der Text
   dagegen, bricht er um, statt verdeckt zu werden.

   Nur oberhalb von 768 px. Darunter haelt die Regel oben den Satz einzeilig,
   und ein Freiraum wuerde ihm genau den Platz nehmen, den er dort braucht.
   -------------------------------------------------------------------------- */
@media (min-width: 769px) {
  #header-group {
    box-sizing: border-box;
    padding-right: 34%;
  }
}


/* -----------------------------------------------------------------------------
   Responsive Header und Logo
   --------------------------------------------------------------------------

   VEREINHEITLICHT am 2026-09-13. Freigabe des Anwenders: "2. bitte
   sicherheitshalber backup bzw. weg zurueck." Klasse A.

   Vorher steuerten vier Stellen Groesse und Lage des Logos:
     - `gridiculous-pro/style.css` Zeile 275: `margin` und `display`
     - Zusatz-CSS im Customizer, Beitrag 7966, 398 Zeichen
     - elf Medienabfragen an dieser Stelle, je `top` und `img width` in Pixeln
     - `js/ap-logo-position.js`, Inline-Style zur Laufzeit

   Von den vieren wirkten die elf Stufen. Das Zusatz-CSS war bei allen sieben
   Eigenschaften ueberschrieben, die es setzte - aber NICHT bei denen, die hier
   fehlten: am 2026-09-10 kam `transform: translateY(-50%)` von dort durch und
   das Logo ragte aus dem Kopf. Das Skript verlaesst `positionLogo()` an seinem
   dritten Riegel, weil es auf `#header-image` wartet; das Eltern-Theme
   schreibt `#header-img` (gemessen ueber 61 Adressen: 0 gegen 61).

   WORAN SICH DAS LOGO JETZT AUSRICHTET. Nicht an Fensterbreiten, sondern am
   Banner. `#header-visual` traegt in jeder gemessenen Breite exakt dessen
   Masse:

     Fenster   Banner       Logo   Verhaeltnis   ueber den rechten Rand
     1280 px   1160 x 222   360    0,3103        4 px
     1000 px    960 x 184   330    0,3438        4 px
      740 px    700 x 134   230    0,3286        4 px
      420 px    380 x  73   130    0,3421        4 px

   Der Ueberstand nach rechts ist in allen vier Messungen 4 px. Das Verhaeltnis
   schwankt um 33 Prozent - dieser Wert steht unten, gedeckelt bei 360 px, dem
   Mass der Bilddatei. Senkrecht sitzt das Logo auf der Bannermitte; die
   gemessenen Versaetze waren +9, +8, -16 und -2 px, also um Null.

   `aspect-ratio` am Bild ist kein Beiwerk: `translateY(-50%)` rechnet mit der
   Hoehe, und ohne Seitenverhaeltnis ist die vor dem Laden Null - das Logo
   spraenge beim Eintreffen der Datei.
   -------------------------------------------------------------------------- */

/* Der Banner wird zum Bezugspunkt. Ohne `relative` bezieht sich das Logo auf
   den naechsten positionierten Vorfahren - das ist zwei Ebenen hoeher und hat
   mit dem Banner nichts zu tun. */
#header-visual{ position: relative !important; }

#site-logo{
  position: absolute !important;
  right: -4px !important;
  left: auto !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  /* 31 statt 33 Prozent, 340 statt 360 px: Wunsch des Anwenders vom
     2026-09-13 ("Logo minimal kleiner"), nachdem es auf einem iPhone 15 Pro
     Max im Querformat zu hoch stand. Das Mass wirkt in beide Richtungen: das
     Logo ist 1,617 statt 1,724 mal so hoch wie der Banner, ragt also je Seite
     31 statt 36 Prozent der Bannerhoehe darueber hinaus - bei 932 px Fenster
     53 statt 62 px. */
  width: min(31%, 340px) !important;
  height: auto !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  z-index: 2000 !important;
}

#site-logo img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 1 / 1;
}

/* Wo die Menueleiste ausgeblendet ist, wird das Logo kleiner
   ------------------------------------------------------------------------
   Anweisung des Anwenders 2026-09-13: "da, wo die Navbar ausgeblendet wird,
   kann das Logo deutlich kleiner werden. Immer noch hoeher als der
   Himmel-Header."

   Die Grenze ist dieselbe, an der Harvey die Navigation in `#left-nav`
   umhaengt: 768 px (`theme.js` des Eltern-Themes).

   WARUM ES DORT KLEINER MUSS. In diesem Bereich steht der Untertitel
   einzeilig und wird mit der Fensterbreite groesser. Bei 768 px braucht er
   das 30,5fache seiner Schriftgroesse, also rund 634 px - und ragt damit
   unter das Logo. Gemessen am 2026-09-13 auf einem iPad des Anwenders sowie
   bei 605 und 700 px im Pruefbrowser (132 und 149 px verdeckt).

   WARUM 25 PROZENT. Der Banner ist 0,1917 mal so hoch wie breit. Ein Logo von
   25 Prozent der Bannerbreite ist damit das 1,30fache der Bannerhoehe - es
   ragt je Seite um 15 Prozent der Bannerhoehe heraus statt um 31 Prozent wie
   oberhalb von 768 px.

   Erster Anlauf waren 22 Prozent. Der Anwender am 2026-09-13 dazu: "Einen
   Tick groesser und die rechte Kante des Himmels ist sichtbar, muss etwas
   breiter werden." Je kleiner das Logo, desto mehr der senkrechten rechten
   Bannerkante bleibt daneben sichtbar.

   Unter 22 Prozent waere das Logo niedriger als der Banner; das widerspraeche
   der Vorgabe "immer noch hoeher als der Himmel-Header". Nach oben begrenzt
   der Untertitel: bei 768 px bleiben zwischen seiner Unterkante und dem Logo
   noch 9 px (gemessen 2026-09-13), das ist der engste Fall. */
@media (max-width: 768px){
  #site-logo{ width: 25% !important; }
}

/* Mit Menueleiste sitzt das Logo etwas tiefer
   ------------------------------------------------------------------------
   Anwender 2026-09-13: "Logo sitzt bei den kleinen groessen mit navbar zu
   hoch, die rechte kante der Navbar wird sichtbar."

   GEMESSEN. Das Logo ist ein Kreis. Sein Mittelpunkt liegt waagerecht fast
   genau auf der senkrechten rechten Kante der Menueleiste, und der Abstand
   von dort zu deren unterer Ecke entspricht beinahe dem Radius - der Rand des
   Kreises verlaeuft also durch die Ecke:

     Fenster   Radius   Abstand zur Ecke   Reserve
      800 px     118          121            -3   Ecke sichtbar
      900 px     133          130             3
     1000 px     149          140             9
     1100 px     164          157             8
     1280 px     170          166             4

   Sechs Prozent der Logohoehe nach unten verschieben das Logo so weit, dass
   die Reserve ueberall zweistellig wird: bei 800 px 11 px, bei 1280 px 24 px.
   Ein fester Pixelwert taugte nicht - die Menueleiste ist 48 px hoch, wo das
   Logo 236 px misst, und 55 px, wo es 340 px misst.

   Nur oberhalb von 768 px. Darunter gibt es keine Menueleiste, und dort gilt
   die andere Vorgabe: der Untertitel soll frei stehen. */
@media (min-width: 769px){
  #site-logo{ transform: translateY(-44%) !important; }
}


/* ==========================================================================
   TAP: Trainerkarten (2026-09-13)

   Zwei Textebenen auf einem Bild, Wechsel beim Ueberfahren und per Knopf.
   Vorbild ist clearcover.com/agents - dort gemessen am 2026-09-13: die Ebene
   `.front` geht beim Ueberfahren auf `opacity: 0`, `.back` auf `1`, und ein
   Knopf mittig unten schaltet dasselbe auf Geraeten ohne Maus.

   Die Karten kommen aus HTML-Widgets im Bereich "Trainerkarten" und werden
   ueber `[trainerkarten]` in die Seite gezogen. Diese Regeln greifen nur auf
   die Klassen; was im Widget steht, bestimmt der Anwender.
   ========================================================================== */

.tap-team{
  display: grid;
  /* 340 statt 250 px: Anwender am 2026-09-13 - "stelle den Umsprung auf eine
     Spalte bitte etwas frueher ein, aktuell laeuft die beschriftung der
     zweiten seite bei daniel ueber". Bei 250 px blieb die Seite zweispaltig,
     bis die Kachel zu schmal fuer den Text der zweiten Ebene war. Mit 340 px
     bricht sie bei rund 700 px Spaltenbreite um - und es bleibt Luft, wenn
     spaeter mehr Text dazukommt. */
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 1.4rem;
  margin: 1.6em 0;
}

.tap-karte{
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: 10px;
  overflow: hidden;
  background: #e4e4e4;
}

.tap-karte > img{
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
  margin: 0 !important;
  max-width: none !important;
  border-radius: 0 !important;
  float: none !important;
}

/* Die zwei Ebenen liegen uebereinander. Unten bleibt Platz fuer den Knopf. */
.tap-ebene{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  padding: 1.6rem 1.05rem 4.4rem;   /* unten Platz fuer den Knopf */
  color: #fff;
  transition: opacity .35s ease;
}

.tap-vorne{
  justify-content: flex-end;
  opacity: 1;
  /* Transparenter auf Wunsch des Anwenders (2026-09-13). Gerechnet fuer
     weissen Text: bei 0,68 am unteren Rand liegt der Kontrast ueber einem
     hellen Foto (Grauwert 230) bei 8,9:1, ueber einem mittleren bei 12,6:1.
     WCAG AA verlangt 4,5:1. */
  background: linear-gradient(to top,
              rgba(0,0,0,.68) 0%, rgba(0,0,0,.42) 42%, rgba(0,0,0,0) 78%);
}

.tap-hinten{
  justify-content: flex-start;
  opacity: 0;
  pointer-events: none;
  overflow: auto;
  /* Ebenfalls transparenter. Gerechnet: bei 0,78 ueber einem hellen Foto
     7,9:1, ueber einem mittleren 10,0:1. Weiter herunter wollte ich nicht -
     bei 0,65 sind es noch 5,4:1, und dann traegt das Foto sichtbar in den
     Text hinein. */
  background: rgba(20,42,64,.78);
}

/* Der Knopf liegt UEBER beiden Ebenen, nicht in einer - sonst verschwindet er
   mit der Ebene, zu der er gehoert.

   Der Kreis wird fuer sich zentriert, das Wort steht absolut rechts daneben.
   Wuerde der ganze Knopf mittig gesetzt, wanderte der Kreis, sobald das Wort
   laenger wird ("mehr" vier Zeichen, "weniger" sieben). Bei clearcover sitzt
   er fest. */
.tap-knopf{
  position: absolute;
  left: 0; right: 0; bottom: 1rem;
  z-index: 3;
  height: 1.75rem;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font: inherit;
  font-size: .86rem;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,.6);
}

.tap-zeichen{
  position: absolute;
  left: 50%; top: 0;
  transform: translateX(-50%);
  width: 1.75rem; height: 1.75rem;
  border-radius: 50%;
  background: #306491;
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 1.1rem;
  line-height: 1;
  font-weight: 700;
  text-shadow: none;
  transition: background .25s ease;
}

.tap-wort{
  position: absolute;
  left: calc(50% + 1.35rem); top: 0;
  height: 1.75rem;
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.tap-knopf:hover .tap-zeichen{ background: #3d7ab3; }
.tap-knopf:focus-visible .tap-zeichen{ outline: 2px solid #fff; outline-offset: 3px; }

/* Zeichen und Wort stehen doppelt im HTML; umgeschaltet wird ueber CSS. So
   wechseln beide auch beim Ueberfahren mit - ein Skript laeuft dabei nicht. */
.tap-zu{ display: none; }
.tap-karte.offen .tap-auf{ display: none; }
.tap-karte.offen .tap-zu{ display: inline; }

.tap-karte.offen .tap-vorne{ opacity: 0; pointer-events: none; }
.tap-karte.offen .tap-hinten{ opacity: 1; pointer-events: auto; }

/* Nur wo ein Zeiger schweben kann. Auf Touchgeraeten loest Ueberfahren sonst
   beim Tippen mit aus und bleibt haengen.

   `:not(.zugeklappt)` ergaenzt am 2026-09-13. FEHLER, den der Anwender gemeldet
   hat: "wenn ich mit der Maus auf 'weniger' klicke, passiert nix". Der Grund
   war, dass Ueberfahren und Klasse `offen` DASSELBE taten - am Rechner zeigte
   das Ueberfahren die zweite Ebene ohnehin, und die Klasse konnte nichts
   zurueckdrehen. Der Knopf war damit am Rechner wirkungslos.

   Jetzt gibt es eine Gegenklasse: `zugeklappt` nimmt die Wirkung des
   Ueberfahrens zurueck, solange der Zeiger auf der Karte bleibt. Verlaesst er
   sie, raeumt das Skript beide Klassen weg und der Grundzustand gilt wieder. */
@media (hover: hover) and (pointer: fine){
  .tap-karte.hat-mehr:hover:not(.zugeklappt) .tap-vorne{ opacity: 0; pointer-events: none; }
  .tap-karte.hat-mehr:hover:not(.zugeklappt) .tap-hinten{ opacity: 1; pointer-events: auto; }
  .tap-karte.hat-mehr:hover:not(.zugeklappt) .tap-auf{ display: none; }
  .tap-karte.hat-mehr:hover:not(.zugeklappt) .tap-zu{ display: inline; }
}

/* Schriften. Die zweite Ebene hat die ganze Kachel und darf groesser setzen;
   auf der ersten steht der Text neben dem Gesicht. */
.tap-karte h3{
  font-family: Copse, Georgia, serif;
  font-weight: 400;
  color: #fff;
  margin: 0 0 .1em;
  font-size: 1.3rem;
  line-height: 1.15;
  clear: none;
}
.tap-grad{ margin: 0 0 .55em; font-size: .93rem; color: #e9e9e9; }
.tap-karte p{ margin: .3em 0; font-size: .92rem; line-height: 1.4; color: #f0f0f0; }
.tap-karte a{
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.55);
  word-break: break-word;
}

.tap-hinten h3{ font-size: 1.5rem; margin-bottom: .15em; }
.tap-hinten .tap-grad{ font-size: 1.05rem; margin-bottom: .7em; }
.tap-hinten p{ font-size: 1.02rem; line-height: 1.45; margin: .45em 0; }

.tap-beleg{ display: flex; align-items: center; gap: .55rem; margin-top: .7em; }
.tap-beleg img{
  position: static;
  width: 62px !important;
  height: auto !important;
  object-fit: contain;
  border-radius: 3px;
  inset: auto;
  margin: 0 !important;
  max-width: 62px !important;
  float: none !important;
}
.tap-beleg span{ font-size: .95rem; color: #eee; line-height: 1.3; }
/* TAP: Trainerkarten Ende */


/* HIER STANDEN ZWEI REGELN, DIE ICH ZURUECKGENOMMEN HABE (2026-09-13)

   Sie stammten vom selben Tag: `clear: both` plus `margin-top: 2.2em` auf
   `.entry-content h2, h3` und `clear: both` auf einem Absatz mit
   mailto-Verweis. Beide waren dafuer gedacht, die Trainerbloecke zu trennen,
   nachdem die Fuellelemente aus dem Seitentext entfernt worden waren.

   ZWEI GRUENDE, WARUM SIE WEG SIND.

   Erstens braucht die Trainerseite sie nicht mehr. Ihr Inhalt ist seit dem
   Umbau auf Widgets eine einzige Zeile - `[trainerkarten]`, null
   Ueberschriften. Die Karten bringen ihre Trennung selbst mit.

   Zweitens trafen sie nicht nur die Trainerseite. Gemessen am 2026-09-13:
   20 von 62 veroeffentlichten Seiten und Beitraegen verbinden ein umflossenes
   Bild mit einer Ueberschrift. Dort schob `clear: both` jede Ueberschrift
   unter das Bild und setzte 53 px Abstand davor - auf der Aikido-Seite klaffte
   dadurch eine Luecke zwischen Bild und "Herkunft". Gemeldet hat es der
   Anwender: "hier scheint auch etwas verrutscht zu sein."

   Die Lehre steht schon einmal im Journal, vom 2026-09-10: vor einem Eingriff
   in fremde Gestaltung wird gesucht, was sonst noch daran haengt. Ich habe
   eine Regel fuer eine Seite geschrieben und sie auf alle gelegt. */

/* Ueberschriften trennen keine Woerter
   ------------------------------------------------------------------------
   Anwender 2026-09-13: "Umbruch H1 auf der Startseite nur beim telefon."
   Gemeint ist die Silbentrennung - auf dem Telefon stand dort
   "Tendoryu Aikido in der Eure-gio".

   Die Ursache steht ganz oben in diesem Blatt: `body { hyphens: auto }` mit
   `hyphenate-limit-lines: 2`. Fuer Fliesstext im Blocksatz ist das richtig,
   fuer Ueberschriften nicht - dort faellt jede Trennung auf. Ueberschriften
   brechen weiterhin um, nur eben zwischen Woertern. */
h1, h2, h3, h4, h5, h6,
.entry-title, .post-title, .home-widget-title, .widget-title{
  hyphens: manual;
  -webkit-hyphens: manual;
  -ms-hyphens: manual;
}

.entry-content .aikido-two-img {
    display: flex !important;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin: 1.5rem 0;
}

.entry-content .aikido-two-img img {
    width: calc(50% - 0.75rem) !important;
    height: auto;
    display: block;
}

/* Auf schmalen Bildschirmen untereinander */
@media (max-width: 700px) {
    .entry-content .aikido-two-img {
        flex-direction: column;
    }

    .entry-content .aikido-two-img img {
        width: 100% !important;
    }
}

/* ==========================================================================
   Aus dem Zusatz-CSS hierher verschoben, 2026-09-10.
   Grund: Gestaltung des Themes gehoert ins Theme, nicht in den Customizer.
   Bewusst ans Ende: Weiter oben stehen Regeln fuer dieselben Selektoren
   (#site-navigation Zeile 62, #site-description 133, #site-title 722).
   Bei gleicher Spezifitaet gewinnt die spaetere - so bleibt die Wirkung.
   Der Logo-Block ist absichtlich NICHT mitgekommen; er haengt mit der
   !important-Treppe und ap-logo-position.js zusammen.
   ========================================================================== */

#site-title { display: contents; }
#credit-link { display: none; }
#site-navigation { font-size: 100%; display: inline-block; clear: both; float: left; width: 85%; }
#site-navigation li a { padding: 10px 15px; display: inline-block; text-shadow: 1px 1px 0 #000; text-decoration: none; width: 100%; font-size: 1.3em; }

@media handheld, only screen and (max-width: 1023px), only screen and (max-device-width: 1023px) and (orientation:portrait) {
	#site-navigation { font-size: 80%; }
}

@media handheld, only screen and (max-width: 480px), only screen and (max-device-width: 480px) and (orientation:portrait) {
	#site-title { font-size: 1.6em; }
	/* `#site-description` stand hier mit `0.9em`. Diese Regel steht spaeter im
	   Blatt als die Groessenrechnung im Abschnitt "Responsive Untertitel" und
	   hat sie ueberstimmt - gemessen am 2026-09-13 bei 415 px Fenster:
	   12,96 px statt der gerechneten 10,6 px, der Satz lief weiter ueber den
	   Rand. Die Rechnung dort gilt jetzt allein. */
}


/* ==========================================================================
   TAP: Ueberschrift der Beitragsliste (2026-09-11)
   Das Eltern-Theme setzt `.entry-title { margin: 0 }`. Die neue H1 auf
   /aktuelles/ klebte damit am ersten Beitrag. 30px ist kein geraten Wert,
   sondern der Abstand, den das Theme zwischen zwei Beitraegen haelt
   (`article { margin-bottom: 30px }` in der Eltern-style.css).
   ========================================================================== */

.tap-archivtitel { margin: 0 0 30px; }


/* ==========================================================================
   TAP: Verweise im Fliesstext schwarz, ohne Unterstreichung (2026-09-12)

   Entscheidung des Anwenders, nach zwei Anlaeufen mit Unterstreichung:
   "Schwarz, keine Linie".

   WARUM SCHWARZ UND NICHT BLAU. Die Regel `link-in-text-block` verlangt 3:1
   Kontrast zwischen Verweis und UMGEBENDEM TEXT - nicht gegen den Hintergrund.
   Der Fliesstext steht in #666666, und der liegt in der Mitte der Helligkeits-
   skala. Gerechnet am 2026-09-12:

     #333333 wie vorher      12,63 gegen Weiss   2,20 gegen den Text
     #0b6bbf Vereinsblau      5,43               1,06
     #306491 Ueberschriften   6,25               1,09
     #0057b8 kraeftiges Blau  6,87               1,20
     #000000 schwarz         21,00               3,66

   Jedes angenehme Blau hat etwa dieselbe Helligkeit wie #666 - kraeftiger
   macht es bunter, nicht heller oder dunkler. Fuer 3:1 gegen #666 darf die
   Leuchtdichte hoechstens 0,011 betragen; selbst reines Schwarz kommt nur auf
   3,66. Schwarz ist also nicht eine von mehreren Farben, die gehen, sondern
   praktisch die einzige.

   Beim Ueberfahren faerbt das Eltern-Theme den Verweis auf #247fa8 um; die
   Erkennbarkeit im Ruhezustand haengt hier an der Helligkeit, nicht am Ton.
   ========================================================================== */

/* `:not(.tap-ebene *)` ergaenzt am 2026-09-13. Die Trainerkarten haben weissen
   Text auf dunklem Grund; dort waeren schwarze Verweise kaum zu lesen. Die
   Regel hier hat mit `.entry-content p > a:not():not()` mehr Gewicht als
   `.tap-karte a` und hat sie ueberstimmt - gemessen: wirksam war `rgb(0,0,0)`.
   Der Ausschluss steht deshalb hier, wo die Regel steht, und nicht als
   `!important` an der Karte. */
.entry-content p > a:not(.more-link):not(.image-anchor):not(.tap-ebene *),
.entry-content li > a:not(.more-link):not(.image-anchor):not(.tap-ebene *) {
	color: #000;
	text-decoration: none;
}

/* ==========================================================================
   TAP: Pfeil hinter Menueeintraegen mit Untermenue (2026-09-12)

   FEHLER VON MIR, und so ist er entstanden: Das Eltern-Theme setzt den Pfeil
   mit einem Zeichen aus der Symbolschrift -

     #site-navigation li a:not(:last-child):after {
         content: "\f0d7"; font-family: FontAwesome; float: right;
         margin: 2px 0 0 10px; }

   `\f0d7` ist `fa-caret-down`. Nachdem Font Awesome heute abgemeldet wurde,
   fand der Browser das Zeichen nicht mehr und zeigte das Ersatzkaestchen -
   aus Dreiecken wurden Quadrate.

   Der Pfeil kommt jetzt ohne Schrift zustande: ein Dreieck aus Rahmenlinien.
   `currentColor` nimmt die Schriftfarbe des Eintrags, damit er sich beim
   Ueberfahren mitfaerbt wie vorher.

   Der Selektor ist der des Eltern-Themes, damit dieselben Eintraege getroffen
   werden: ein `a`, das nicht letztes Kind seines `li` ist, hat ein `ul`
   hinter sich - also ein Untermenue.
   ========================================================================== */

/* Alle vier Selektoren des Eltern-Themes, sonst gewinnt dort das Zeichen:
   `.offcanvas #site-navigation …` ist spezifischer als `#site-navigation …`
   und haette im Menue am Handy wieder das Ersatzkaestchen gezeigt - zusaetzlich
   zum Dreieck, weil meine Rahmenlinien trotzdem gegolten haetten. */
#site-navigation li a:not(:last-child):after,
#site-navigation-offcanvas li a:not(:last-child):after,
.offcanvas #site-navigation li a:not(:last-child):after,
.offcanvas #site-navigation-offcanvas li a:not(:last-child):after,
.offcanvas #site-sub-navigation li a:not(:last-child):after {
	content: "";
	font-family: inherit;
	float: right;
	width: 0;
	height: 0;
	/* 0.72em ist gerechnet, nicht geschaetzt: der Verweis hat 10px Innenabstand
	   oben, das Dreieck 0.3em Hoehe. Damit seine Mitte auf der Textmitte liegt
	   (gemessen bei 20,8px Schrift: 28px unter der Oberkante), muss der Abstand
	   28 - 10 - 3 = 15px betragen, also 0.72em. */
	margin: 0.72em 0 0 10px;
	border-left: 0.26em solid transparent;
	border-right: 0.26em solid transparent;
	border-top: 0.3em solid currentColor;
}


/* Dritte Menueebene: Das Eltern-Theme setzt dort `\f0da`, einen Pfeil nach
   RECHTS (`#site-navigation ul ul li a:not(:last-child):after`). Im heutigen
   Menue gibt es keine dritte Ebene - gemessen 2026-09-12: Training, Media und
   Kontakt haben Kinder, aber keine Enkel. Die Regel steht hier trotzdem, damit
   nicht wieder ein Kaestchen erscheint, sobald jemand eine Ebene einhaengt. */
#site-navigation ul ul li a:not(:last-child):after,
#site-navigation-offcanvas ul ul li a:not(:last-child):after {
	content: "";
	font-family: inherit;
	float: right;
	width: 0;
	height: 0;
	margin: 0.62em 0 0 10px;
	border-top: 0.26em solid transparent;
	border-bottom: 0.26em solid transparent;
	border-left: 0.3em solid currentColor;
	border-right: 0;
}

/* Im Menue am Handy bleibt der Pfeil, der dort schon vorher stand.

   Zeile 265 dieses Stilblatts setzt fuer das ausgeklappte Menue
   `content: "▸"` - ein gewoehnliches Schriftzeichen, kein Symbol aus einer
   Icon-Schrift. Diese Regel ist spezifischer als die vier Selektoren oben und
   hat auch vor dem 2026-09-12 schon gegen das Eltern-Theme gewonnen; im
   ausgeklappten Menue war also nie ein Kaestchen zu sehen.

   Meine Rahmenlinien galten dort aber trotzdem - und damit standen zwei
   Pfeile nebeneinander (gemessen 2026-09-12 bei 412 Pixeln). Hier werden sie
   fuer diese Eintraege zurueckgenommen. */
#left-nav #site-navigation-offcanvas li.menu-item-has-children > a:after {
	border: 0;
	width: auto;
	height: auto;
	margin: 0 0 0 10px;
}
