/* H34 Designsteuerung 3.1 – nur Optik, vollständig auf "Modernes Funkmagazin"
   beschränkt. "Original" besitzt keine dieser CSS-Klassen. Kein Ausblenden,
   keine Änderungen an Position, Reihenfolge, Elementen oder Textinhalten. */
body.h34fx-magazin {
  --h34fx-deep:#10395e;
  --h34fx-blue:#197ca7;
  --h34fx-mint:#26a69d;
  --h34fx-border:rgba(32,112,151,.20);
  --h34fx-shadow:0 11px 30px rgba(16,61,90,.10);
  text-rendering:optimizeLegibility;
}
/* Einheitliche Gestaltung auf jeder öffentlichen Seite. */
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) :is(h1,h2,h3) {
  text-wrap:balance;
  overflow-wrap:break-word;
}
/* Schriftbasis für alle Seiten, aber Banner NUR noch auf der Startseite. */
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) h1 {
  letter-spacing:-.028em;
  line-height:1.14;
  overflow-wrap:break-word;
}
/* Unterseiten: ruhiger Magazintitel statt tiefer dunkelblauer Kasten. */
body.h34fx-magazin:not(.h34fx-is-home) :is(main,.site-main,#primary,.entry-content) h1 {
  background:transparent !important;
  color:#113e5d !important;
  padding:0 0 clamp(9px,1.4vw,16px) !important;
  border:0 !important;
  border-bottom:2px solid rgba(33,125,155,.19) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-shadow:none !important;
  margin:-9px 0 clamp(13px,2vw,24px) !important;
  font-size:clamp(1.85rem,3.6vw,2.9rem);
  max-width:100%;
}
body.h34fx-magazin:not(.h34fx-is-home) :is(main,.site-main,#primary,.entry-content) h1::after {
  content:"";
  display:block;
  width:clamp(45px,7vw,73px);
  height:3px;
  border-radius:4px;
  background:#209d9f;
  position:relative;
  top:clamp(12px,1.4vw,18px);
}
/* Das markante Titelbanner der bisherigen Startseite bleibt erhalten. */
body.h34fx-magazin.h34fx-is-home :is(main,.site-main,#primary,.entry-content) h1 {
  background:linear-gradient(115deg,#103c63 0%,#206b91 65%,#238498 100%);
  color:#fff;
  padding:clamp(18px,2.7vw,34px);
  border-radius:clamp(16px,2.3vw,26px);
  border:1px solid rgba(47,152,175,.38);
  box-shadow:0 13px 33px rgba(9,54,86,.16);
  line-height:1.1;
  margin-block:0 clamp(17px,2.6vw,31px);
}
body.h34fx-magazin.h34fx-is-home :is(main,.site-main,#primary,.entry-content) h1 :is(a,span,strong,em) {color:inherit;}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) h2 {
  color:#135477;
  line-height:1.2;
  letter-spacing:-.023em;
  scroll-margin-top:95px;
}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) h2::after {
  content:"";display:block;width:57px;height:3px;margin-top:11px;
  border-radius:8px;background:linear-gradient(90deg,#187bb0,#28b0a2);
}
/* Das dunkle QRM-Spiel nutzt seine eigene bewusst gewählte Schriftfarbwelt. */
body.h34fx-magazin.h34fx-page-qrm :is(main,.site-main,#primary,.entry-content) h2 {color:inherit;}
body.h34fx-magazin.h34fx-page-qrm :is(main,.site-main,#primary,.entry-content) h2::after {display:none;}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) h3 {
  letter-spacing:-.01em;line-height:1.3;
}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) p {line-height:1.68;}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) :is(a,button,input,select,textarea):focus-visible,
body.h34fx-magazin :is(.site-header,#masthead,.main-navigation) a:focus-visible {
  outline:3px solid var(--h34fx-mint);outline-offset:3px;
}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) :is(img,iframe,video) {max-width:100%;}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) :is(figure img,.wp-block-image img) {
  border-radius:clamp(9px,1.4vw,17px);
}
/* Bestehendes Navigationslayout unberührt lassen; nur den Rahmen veredeln. */
body.h34fx-magazin :is(.site-header,#masthead) {
  border-bottom:3px solid #249eaa;
  box-shadow:0 7px 23px rgba(17,64,97,.08);
}
body.h34fx-magazin :is(.main-navigation,.primary-navigation,.wp-block-navigation) a {
  transition:color .18s ease,background-color .18s ease;
  border-radius:6px;
}
body.h34fx-magazin :is(.main-navigation,.primary-navigation,.wp-block-navigation) a:hover {
  text-decoration-color:#28b0a2;
}
body.h34fx-magazin :is(.site-footer,#colophon) {
  border-top:3px solid #2aa4a3;
}
/* Auffindbare vorhandene Kacheln auf beliebigen Unterseiten. */
body.h34fx-magazin .h34fx-surface,
body.h34fx-magazin .h34fx-card {
  min-width:0;
  border:1px solid var(--h34fx-border);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--h34fx-shadow);
  transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease;
}
body.h34fx-magazin .h34fx-surface {border-top:3px solid #2ba89e;}
body.h34fx-magazin .h34fx-surface:focus-within,
body.h34fx-magazin .h34fx-card:focus-within {border-color:var(--h34fx-mint);}
body.h34fx-magazin :is(.h34fx-card-interesse,.h34fx-card-besuch,.h34fx-card-termin,.h34fx-card-station) {
  padding:clamp(15px,1.8vw,24px);
}
body.h34fx-magazin .h34fx-card h3 {margin-top:0;}
body.h34fx-magazin .h34fx-card-interesse {border-top:4px solid #24a79d;}
body.h34fx-magazin .h34fx-card-besuch {border-left:4px solid #2484b5;}
body.h34fx-magazin .h34fx-card-termin {border-left:5px solid #288eab;}
body.h34fx-magazin .h34fx-card-station {border-top:5px solid #24a79d;}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  body.h34fx-magazin .h34fx-card:hover,
  body.h34fx-magazin .h34fx-surface:hover {
    transform:translateY(-2px);box-shadow:0 15px 35px rgba(14,56,87,.13);
  }
}
/* Startseite: bekannte Abschnitte werden nur mit Klassen versehen. */
body.h34fx-magazin .h34fx-section {scroll-margin-top:90px;}
body.h34fx-magazin .h34fx-section-hero {
  position:relative;
  padding:clamp(21px,3.1vw,43px);
  background:linear-gradient(120deg,#10395f,#1f6588 62%,#207e96);
  border-radius:clamp(18px,3vw,34px);
  box-shadow:0 19px 43px rgba(13,53,91,.16);
}
body.h34fx-magazin .h34fx-section-hero :is(h1,h2,h3,p,small,strong,span,li) {color:#fff;}
body.h34fx-magazin .h34fx-section-hero h1 {
  background:transparent;
  border:0;box-shadow:none;
  padding:0;margin-block:0 clamp(12px,1.7vw,21px);
}
body.h34fx-magazin .h34fx-section-hero a:not([class*="button"]):not([class*="btn"]) {color:#d0fbfa;}
body.h34fx-magazin .h34fx-section-hero::before {
  content:"";pointer-events:none;position:absolute;right:0;top:0;
  width:36%;height:4px;background:linear-gradient(90deg,transparent,#46cbba);
}
body.h34fx-magazin .h34fx-section-termine,
body.h34fx-magazin .h34fx-section-willkommen {
  padding:clamp(18px,2.7vw,38px);
  border-radius:26px;
  border:1px solid #cde5ec;
  background:linear-gradient(140deg,#eaf5fa,#f1fbf7);
}
body.h34fx-magazin .h34fx-section-termine {box-shadow:0 15px 35px rgba(16,58,89,.06);}
body.h34fx-magazin .h34fx-live-link {border-radius:15px;}
/* Auf Unterseiten auch vorhandene Tabellen und Zitate lesefreundlicher. */
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) :is(blockquote,.wp-block-quote) {
  border-left:4px solid #249da9;padding-inline-start:clamp(12px,2vw,24px);
}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) :is(table,.wp-block-table table) {
  border-radius:10px;
}
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) :is(hr,.wp-block-separator) {
  border-color:#b8d9e8;
}
@media(max-width:760px){
  body.h34fx-magazin.h34fx-is-home :is(main,.site-main,#primary,.entry-content) h1 {
    padding:18px;border-radius:17px;line-height:1.14;overflow-wrap:anywhere;
  }
  body.h34fx-magazin :is(.h34fx-section-hero,.h34fx-section-termine,.h34fx-section-willkommen) {
    padding:16px;border-radius:19px;
  }
  body.h34fx-magazin .h34fx-section-hero h1 {padding:0;}
  body.h34fx-magazin :is(.h34fx-card-interesse,.h34fx-card-besuch,.h34fx-card-termin,.h34fx-card-station) {padding:15px;}
}
@media(prefers-reduced-motion:reduce){
  body.h34fx-magazin .h34fx-card,
  body.h34fx-magazin .h34fx-surface,
  body.h34fx-magazin :is(.main-navigation,.primary-navigation,.wp-block-navigation) a {transition:none;}
}

/* ===== H34 3.1: gezielte Verbesserungen ===== */
/* Im Kalenderbereich keine Titel-Linien oder Magazin-Farben einsetzen:
   ein Kalender-Widget kann eigene h2/h3-Monatsüberschriften besitzen. */
body.h34fx-magazin.h34fx-page-termine :is(.wp-block-calendar,.h34-calendar,.event-calendar,.calendar-wrapper,.calendar-wrap,.calendar,.fc,.tribe-events) :is(h2,h3) {
  color:inherit;
  letter-spacing:inherit;
  text-wrap:initial;
}
body.h34fx-magazin.h34fx-page-termine :is(.wp-block-calendar,.h34-calendar,.event-calendar,.calendar-wrapper,.calendar-wrap,.calendar,.fc,.tribe-events) h2::after {
  display:none;
}
/* Kalender / Termine: Es werden KEINE zusätzlichen Karten/Container erzeugt.
   Kalender und Kalender-Widgets behalten ihre eigenen Größen und Layoutregeln. */
body.h34fx-magazin.h34fx-page-termine :is(.wp-block-calendar,.h34-calendar,.event-calendar,.calendar-wrapper,.calendar-wrap) {
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
body.h34fx-magazin.h34fx-page-termine :is(.wp-block-calendar,.h34-calendar,.event-calendar,.calendar-wrapper,.calendar-wrap) {
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
/* Beschriftungen im QRM-Jäger können über dunklen/sich bewegenden Hintergründen
   zu wenig Kontrast haben. JS markiert ausschließlich konkrete Hinweiszeilen. */
body.h34fx-magazin.h34fx-page-qrm .h34fx-qrm-hint {
  color:#103d56 !important;
  -webkit-text-fill-color:#103d56;
  background:#eef9fc !important;
  text-shadow:none !important;
  font-weight:600;
  line-height:1.55;
  border:1px solid #b4d6e2;
  border-left:4px solid #268da6;
  border-radius:10px;
  padding:clamp(9px,1.4vw,14px) clamp(12px,1.8vw,19px);
  box-shadow:0 2px 9px rgba(15,66,91,.08);
  box-sizing:border-box;
  max-width:100%;
}
body.h34fx-magazin.h34fx-page-qrm .h34fx-qrm-hint :is(span,strong,b,em,small) {
  color:#103d56 !important;
  -webkit-text-fill-color:#103d56;
  text-shadow:none !important;
}
/* Keine erzwungenen Mindestbreiten oder Weißraumregeln bei Terminkarten. */
body.h34fx-magazin :is(main,.site-main,#primary,.entry-content) :is(iframe,video,table) {
  max-width:100%;
}
@media (max-width:760px) {
  body.h34fx-magazin:not(.h34fx-is-home) :is(main,.site-main,#primary,.entry-content) h1 {
    font-size:clamp(1.65rem,7vw,2.15rem);
    line-height:1.18;
    margin-top:-5px !important;
    padding:0 0 10px !important;
  }
  body.h34fx-magazin.h34fx-page-qrm .h34fx-qrm-hint {
    font-size:max(14px,.93rem);
    padding:11px 13px;
  }
}
