/*
Theme Name: N7 Golf Club Child Theme
Theme URI: https://golfclub.themerex.net/
Description: N7 Golf Club is a Premium WordPress theme that has built-in support for popular Page Builders, slider with swipe gestures, and is SEO- and Retina-ready. The unique system of inheritance and override options allows setting up individual parameters for different sections of your site and supported plugins.
Author: ThemeREX
Author URI: http://themerex.net/
Version: 2.25.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, e-commerce, portfolio, grid-layout, one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-image-header, featured-images, flexible-header, footer-widgets, full-width-template, microformats, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks
Text Domain: n7-golf-club
Template: n7-golf-club
*/


/* =Child-Theme customization starts here
------------------------------------------------------------ */

/* Prevent FOUC for Elementor "Stretch Section" sections.
   Without this, the section is laid out at width:100% of its constrained
   parent (.content_wrap, max ~1290px) until elementor-frontend.js runs and
   sets inline width/left to span the viewport — causing a visible width-jump
   on first paint. Pre-stretch via pure CSS so the section is full-width from
   the first render; Elementor's later inline styles override harmlessly. */
html { overflow-x: hidden; }
.elementor-section.elementor-section-stretched {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* Socials im Mobile-Burger-Menü ausblenden (nicht relevant für diese Seite) */
.socials_mobile { display: none !important; }

/* Hauptmenü: Einträge im "..."-Overflow-Dropdown weiß für bessere Lesbarkeit */
.sc_layouts_menu li.menu-collapse > ul a,
.sc_layouts_menu li.trx-addons-nav-menu-collapse > ul a,
.sc_layouts_menu .sc_layouts_menu_collapsed_item > a {
    color: #fff !important;
}
.sc_layouts_menu li.menu-collapse > ul a:hover,
.sc_layouts_menu li.trx-addons-nav-menu-collapse > ul a:hover,
.sc_layouts_menu .sc_layouts_menu_collapsed_item > a:hover {
    /* WCAG: #E06018 on #2F2A26 = 3.96:1 fails AA. #FFC49A = 9.20:1 (AAA). */
    color: #FFC49A !important;
}

/* ──────────────────────────────────────────────────────────────────────────
   Förderpreis-Seite: Oranger Bewerbungs-Block (Section 98b8b12)
   Sicherstellen, dass Titel und Kontaktformular auf #E06018 lesbar sind.
   ────────────────────────────────────────────────────────────────────────── */
#kontaktformular .sc_item_title,
#kontaktformular .sc_title { color: #fff !important; }

/* Contact-Form-7 auf Orange */
#kontaktformular .wpcf7 label { color: #fff; font-weight: 600; }
#kontaktformular .wpcf7-form-control:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
    background: #fff;
    border: 1px solid #fff;
    color: #2F2A26;
    border-radius: 8px;
    padding: 12px 16px;
}
#kontaktformular textarea.wpcf7-form-control {
    border-radius: 10px;
    padding: 14px 16px;
}
#kontaktformular .wpcf7-form-control:not([type="submit"]):focus {
    outline: 2px solid rgba(255,255,255,0.45);
    outline-offset: 2px;
}

/* Submit-Button — symmetrisches Padding, Text mittig zentriert. */
#kontaktformular .wpcf7-submit,
#kontaktformular input[type="submit"] {
    background: #fff !important;
    color: #B24C13 !important;       /* WCAG: was #E06018 (3.44:1) → 5.34:1 on white */
    border: 2px solid #fff !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    padding: 14px 36px !important;   /* Symmetrisch — Theme setzt asymmetrisches 17px 35px 17px 64px */
    text-align: center !important;
    text-indent: 0 !important;
    transition: background .15s, color .15s;
}
#kontaktformular .wpcf7-submit:hover,
#kontaktformular input[type="submit"]:hover {
    background: #2F2A26 !important;
    color: #fff !important;          /* 14.19:1 on #2F2A26 */
    border-color: #2F2A26 !important;
}
#kontaktformular .wpcf7-not-valid-tip { color: #2F2A26; }
#kontaktformular .wpcf7-response-output {
    color: #fff;
    border-color: rgba(255,255,255,0.45) !important;
}

/* ──────────────────────────────────────────────────────────────────────────
   Standard: abgerundete Ecken für Inhalts-Bilder (Elementor + Editor).
   Ausgenommen: Logos, Social-Icons, Menü-Icons und alles, was in einem
   Wrapper liegt, dessen Author die Rundung bewusst nicht möchte.
   ────────────────────────────────────────────────────────────────────────── */
.elementor-widget-image img,
.entry-content img:not(.no-radius):not([class*="logo"]),
.post_content img:not(.no-radius):not([class*="logo"]) {
    border-radius: 8px;
}

/* Ausnahmen — bereits eigens gestaltet oder runde/quadratische Bilder gewünscht */
.sc_layouts_logo img,
.elementor-widget-trx_sc_layouts_logo img,
.elementor-widget-icon img,
.bhp-item__cover img, /* hat eigenen radius (4px) */
.archiv-img img      /* hat eigenen radius (8px) */
{ /* keine Override hier — Spezifität reicht aus */ }

/* ── Download-Bereich: Anchor-Highlighting via :target ────────────────────────
   Wenn man auf einen Deep-Link klickt (z.B. /downloads/#beitrittserklaerung),
   scrollt der Browser zur Zeile und diese CSS-Regel hebt sie hervor. */
.dl-item:target {
    background: #fff5ee !important;
    border-color: #E06018 !important;
    box-shadow: 0 0 0 3px rgba(224, 96, 24, 0.25);
    animation: dl-highlight-pulse 1.8s ease forwards;
}

@keyframes dl-highlight-pulse {
    0%   { background: #fde0c8; box-shadow: 0 0 0 4px rgba(224,96,24,0.45); }
    60%  { background: #fff5ee; box-shadow: 0 0 0 3px rgba(224,96,24,0.20); }
    100% { background: #fff5ee; box-shadow: 0 0 0 3px rgba(224,96,24,0.20); }
}
/* ── Archiv-Bibliothek: Eingebettete Bilder ───────────────────────────────── */
.archiv-img img {
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    width: 100%;
    height: auto;
    display: block;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BHP Fachzeitschriften-Archiv  (/bhp-fachzeitschrift/)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hero ── */
.bhp-hero {
    background: #2F2A26;
    color: #fff;
    padding: 140px 20px 70px;
    text-align: center;
    /* Stretch to full viewport width even inside constrained content_wrap */
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.bhp-hero__inner { max-width: 820px; margin: 0 auto; }
.bhp-hero__label {
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #FFC49A; /* #E06018 fails AA on #2F2A26 (3.96:1) → #FFC49A = 9.2:1 */
    margin: 0 0 12px;
}
.bhp-hero__title {
    font-size: clamp(26px, 4.5vw, 42px);
    font-weight: 700;
    margin: 0 0 14px;
    line-height: 1.15;
    color: #fff;
}
.bhp-hero__sub {
    font-size: 16px;
    color: rgba(255,255,255,0.78);
    line-height: 1.65;
    margin: 0;
}

/* ── Wrapper ── */
.bhp-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 36px 24px 56px;
}

/* Hide the ThemeREX auto-generated white page title area on the BHP template.
   The layout template (ID 16730) renders an h1/title above our custom hero —
   we suppress it via the body class that WordPress adds for custom page templates. */
.page-template-page-bhp .trx-addons-layout { display: none !important; }

/* Hintergrund für die page_content_wrap nur auf der BHP-Seite. */
body.page-template-page-bhp .page_content_wrap {
    background-color: #F8F6F4;
}

/* ── Issue grid (auto-fit: 1–3 Spalten je nach Breite) ── */
.bhp-list {
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 24px;
}

/* ── Issue card ── */
.bhp-item {
    position: relative;
    display: flex;
    gap: 22px;
    background: #fff;
    border: 1px solid #E8E4DF;
    border-radius: 12px;
    padding: 24px 24px 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    transition: box-shadow .2s, transform .2s, border-color .2s;
}
.bhp-item:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.10);
    border-color: #d8cfc6;
    transform: translateY(-2px);
}

/* When the TOC inside an item is open, let it span all grid columns */
.bhp-item:has(.bhp-item__toc[open]) {
    grid-column: 1 / -1;
}

/* Cover — größer, damit Titel auf dem Cover lesbar bleibt */
.bhp-item__cover {
    flex: 0 0 140px;
    width: 140px;
}
.bhp-item__cover img {
    width: 140px;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 3px 12px rgba(0,0,0,0.20);
    display: block;
}

/* Body */
.bhp-item__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding-bottom: 20px; /* Platz für Nummern-Badge unten rechts */
}

/* Issue number badge — dezent unten rechts in der Card */
.bhp-item__num {
    position: absolute;
    bottom: 12px;
    right: 16px;
    font-size: 11px;
    font-weight: 600;
    color: #6F665E;  /* WCAG: was #C2B5AC (2.0:1) → 5.62:1 on white */
    letter-spacing: 1px;
    text-transform: uppercase;
    pointer-events: none;
}

.bhp-item__title {
    font-size: 19px;
    font-weight: 700;
    color: #2F2A26;
    margin: 0 0 14px;
    line-height: 1.3;
}

/* TOC: Vorschau (immer sichtbar) */
.bhp-item__toc-preview {
    font-size: 13.5px;
    line-height: 1.6;
    color: #6F665E;
    margin: 0 0 14px;
    /* Ersten 2 Beiträge als Vorschau */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    /* Subtile Andeutung, dass mehr folgt */
    -webkit-mask-image: linear-gradient(to bottom, #000 60%, rgba(0,0,0,0.35) 100%);
            mask-image: linear-gradient(to bottom, #000 60%, rgba(0,0,0,0.35) 100%);
}

/* TOC accordion */
.bhp-item__toc { margin-top: auto; }

.bhp-item__toc summary {
    cursor: pointer;
    font-size: 14px;
    color: #B24C13;  /* WCAG: was #E06018 (3.44:1) → 5.34:1 on white */
    font-weight: 700;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    user-select: none;
    padding: 10px 18px;
    border: 2px solid #B24C13;  /* WCAG: matching darker orange */
    border-radius: 6px;
    background: #fff;
    transition: background .15s, color .15s, border-color .15s;
    align-self: flex-start;
}
.bhp-item__toc summary:hover {
    background: #B24C13;  /* WCAG: white-on-#B24C13 = 5.34:1 (was #E06018 = 3.59:1) */
    color: #fff;
}
.bhp-item__toc summary::-webkit-details-marker { display: none; }
.bhp-item__toc summary::before {
    content: '▸';
    transition: transform .2s;
    font-size: 12px;
}
.bhp-item__toc[open] summary {
    background: #B24C13;  /* WCAG: matching darker orange (5.34:1 on white) */
    color: #fff;
    border-color: #B24C13;
}
.bhp-item__toc[open] summary::before { transform: rotate(90deg); }

/* Vorschau ausblenden, wenn voll geöffnet */
.bhp-item:has(.bhp-item__toc[open]) .bhp-item__toc-preview { display: none; }

.bhp-item__toc-inner {
    margin-top: 16px;
    padding: 22px 26px;
    background: #FBFAF8;
    border: 1px solid #EDE7E1;
    border-left: 4px solid #E06018;
    border-radius: 0 8px 8px 0;
    font-size: 14.5px;
    line-height: 1.7;
    color: #3F3833;
    /* Multi-column layout for long TOCs when card spans full width */
    column-width: 320px;
    column-gap: 36px;
    column-rule: 1px solid #EDE7E1;
}
.bhp-item__toc-inner p {
    margin: 0;
    padding: 8px 0;
    break-inside: avoid;
    border-bottom: 1px dashed #E6DFD8;
}
.bhp-item__toc-inner p:last-child {
    border-bottom: none;
}
.bhp-item__toc-inner p strong {
    color: #2F2A26;
}
.bhp-item__toc-inner p em {
    color: #6F665E;  /* WCAG: was #8A7F76 (3.9:1) → 5.62:1 on white/light bg */
    font-style: normal;
    font-size: 0.92em;
}

/* ── Paginierung ── */
.bhp-pager {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    padding: 10px 0;
    margin-bottom: 32px;
}
.bhp-pager--bottom { margin-top: 16px; margin-bottom: 0; }

.bhp-pager__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 2px solid #E8E4DF;
    border-radius: 6px;
    background: #fff;
    color: #585048;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color .15s, color .15s, background .15s;
}
.bhp-pager__btn:hover {
    border-color: #B24C13;  /* WCAG: was #E06018 */
    color: #B24C13;          /* WCAG: 5.34:1 on white (was 3.44:1) */
    background: #fff8f4;
}
.bhp-pager__btn--active {
    border-color: #B24C13;
    background: #B24C13;     /* WCAG: white text on #B24C13 = 5.34:1 (was 3.59:1) */
    color: #fff;
    cursor: default;
}
.bhp-pager__ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 0 4px;
    color: #6F665E;  /* WCAG: was #9D9089 (3.1:1) → 5.62:1 */
    font-size: 15px;
}

/* ── Responsive ── */
@media (max-width: 480px) {
    .bhp-item { gap: 14px; padding: 16px; }
    .bhp-item__cover { flex: 0 0 92px; width: 92px; }
    .bhp-item__cover img { width: 92px; }
    .bhp-item__title { font-size: 16px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Wissenschaftliche Reihe   (/wissenschaftliche-reihe/)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hide auto-generated white page title (gleicher Trick wie BHP) */
.page-template-page-wiss-reihe .trx-addons-layout { display: none !important; }
body.page-template-page-wiss-reihe .page_content_wrap {
    background-color: #F8F6F4;
}

/* ── Hero ── */
.wr-hero {
    background: #2F2A26;
    color: #fff;
    padding: 140px 20px 70px;
    text-align: center;
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.wr-hero__inner { max-width: 760px; margin: 0 auto; }
.wr-hero__label {
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #FFC49A; /* #E06018 fails AA on #2F2A26 (3.96:1) → #FFC49A = 9.2:1 */
    margin: 0 0 12px;
}
.wr-hero__title {
    font-size: clamp(26px, 4.5vw, 42px);
    font-weight: 700;
    margin: 0 0 14px;
    line-height: 1.15;
    color: #fff;
}
.wr-hero__sub {
    font-size: 16px;
    color: rgba(255,255,255,0.78);
    line-height: 1.65;
    margin: 0;
}

/* ── Bestell-Hinweis-Leiste ── */
.wr-orderbar {
    background: #fff;
    border-top: 4px solid #E06018;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.wr-orderbar__inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 22px 24px;
    display: flex;
    align-items: center;
    gap: 22px;
}
.wr-orderbar__icon {
    font-size: 32px;
    flex-shrink: 0;
}
.wr-orderbar__text {
    flex: 1;
    font-size: 14.5px;
    line-height: 1.55;
    color: #585048;
}
.wr-orderbar__text strong {
    display: block;
    font-size: 15px;
    color: #2F2A26;
    margin-bottom: 2px;
}
.wr-orderbar__btn {
    flex-shrink: 0;
    display: inline-block;
    padding: 11px 22px;
    background: #B24C13;  /* WCAG: was #E06018 (3.59:1) → 5.34:1 white-on-#B24C13 */
    color: #fff !important;
    font-size: 14px;
    font-weight: 700;
    border-radius: 6px;
    text-decoration: none;
    transition: background .15s;
}
.wr-orderbar__btn:hover { background: #8F3C0E; } /* WCAG: 7.04:1 on white */

/* ── Wrapper ── */
.wr-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 50px 24px 60px;
}

.wr-section-title {
    font-size: 22px;
    font-weight: 700;
    color: #2F2A26;
    margin: 0 0 24px;
    padding-bottom: 14px;
    border-bottom: 2px solid #E06018;
    display: inline-block;
    line-height: 1.3;
}
.wr-section-title--secondary {
    margin-top: 64px;
}
.wr-section-intro {
    font-size: 15px;
    line-height: 1.6;
    color: #6F665E;
    margin: -10px 0 28px;
    max-width: 720px;
}

/* ── Bände-Grid ── */
.wr-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
    gap: 20px;
    margin-bottom: 16px;
}

.wr-item {
    display: flex;
    background: #fff;
    border: 1px solid #E8E4DF;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    transition: box-shadow .2s, transform .2s, border-color .2s;
}
.wr-item:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.10);
    border-color: #d8cfc6;
    transform: translateY(-2px);
}

/* "Buchrücken" links: orange, mit Band-Nummer */
.wr-item__spine {
    flex: 0 0 80px;
    background: linear-gradient(180deg, #E06018 0%, #b94d10 100%);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 22px 8px;
    position: relative;
}
.wr-item__spine::after {
    /* dezente Linie, die einen Buchrücken andeutet */
    content: '';
    position: absolute;
    top: 14px; bottom: 14px;
    right: 0;
    width: 2px;
    background: rgba(0,0,0,0.12);
}
.wr-item__spine-label {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.85;
    font-weight: 600;
    margin-bottom: 4px;
}
.wr-item__spine-num {
    font-size: 38px;
    font-weight: 800;
    line-height: 1;
}

.wr-item__body {
    flex: 1;
    padding: 20px 22px;
    min-width: 0;
}

.wr-item__tag {
    display: inline-block;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 9px;
    border-radius: 3px;
    margin-bottom: 10px;
    background: #FFE6D8;
    color: #b94d10;
}
.wr-item__tag--dissertation {
    background: #E6EEF7;
    color: #1f5a8a;
}
.wr-item__tag--symposiumsbericht {
    background: #EFE7DC;
    color: #6F4F1F;
}

.wr-item__title {
    font-size: 17px;
    font-weight: 700;
    color: #2F2A26;
    margin: 0 0 8px;
    line-height: 1.35;
}
.wr-item__meta {
    font-size: 13px;
    color: #6F665E;  /* WCAG: was #8A7F76 (3.9:1) → 5.62:1 */
    margin: 0 0 10px;
    line-height: 1.4;
}
.wr-item__author { font-weight: 600; color: #585048; }
.wr-item__sep { margin: 0 6px; opacity: 0.6; }
.wr-item__year { font-variant-numeric: tabular-nums; }

.wr-item__desc {
    font-size: 14px;
    color: #585048;
    line-height: 1.6;
    margin: 0;
}

/* ── Symposien (einfacher gestaltet, Subsektion) ── */
.wr-symposien {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 16px;
}
.wr-symp {
    display: flex;
    gap: 14px;
    background: #fff;
    border: 1px solid #E8E4DF;
    border-radius: 8px;
    padding: 18px 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.wr-symp__num {
    flex-shrink: 0;
    font-size: 28px;
    font-weight: 800;
    color: #B24C13;  /* WCAG: was #E06018; large text 28px/800 → 3:1 needed; #B24C13=5.34:1 (AA normal) */
    line-height: 1;
    width: 36px;
}
.wr-symp__body { flex: 1; min-width: 0; }
.wr-symp__title {
    font-size: 15px;
    font-weight: 700;
    color: #2F2A26;
    margin: 0 0 4px;
    line-height: 1.35;
}
.wr-symp__date {
    font-size: 12.5px;
    color: #6F665E;  /* WCAG: was #8A7F76 (3.9:1) → 5.62:1 */
    margin: 0 0 6px;
    font-variant-numeric: tabular-nums;
}
.wr-symp__desc {
    font-size: 13.5px;
    color: #585048;
    line-height: 1.55;
    margin: 0;
}

/* ── Responsive ── */
@media (max-width: 600px) {
    .wr-orderbar__inner { flex-direction: column; align-items: flex-start; gap: 14px; text-align: left; }
    .wr-orderbar__btn { align-self: stretch; text-align: center; }
    .wr-item__spine { flex: 0 0 64px; padding: 16px 6px; }
    .wr-item__spine-num { font-size: 30px; }
    .wr-item__body { padding: 16px 18px; }
    .wr-item__title { font-size: 15.5px; }
}

/* ─── WCAG 2.2 AA Patches ──────────────────────────────────────────────────────
 * All ratios computed via sRGB-linear luminance (WCAG 2.x formula).
 * Background reference: page bg #FBFAF9 / theme white #FFFFFF.
 *
 * Color tokens used as replacements:
 *   #B24C13 — Brand-orange dark      | 5.34:1 on white  (replaces #E06018=3.44:1)
 *   #8F3C0E — Brand-orange darker    | 7.04:1 on white  (button hover)
 *   #6F665E — Neutral secondary text | 5.62:1 on white  (replaces #8A7F76, #C2B5AC, #9D9089)
 *   #FFC49A — Warm light orange      | 9.20:1 on #2F2A26 (labels on dark)
 * ──────────────────────────────────────────────────────────────────────────── */

/* (1) Empty headings produced by spacer widgets — hide rather than announce nothing */
h1:empty, h2:empty, h3:empty, h4:empty, h5:empty, h6:empty {
    display: none;
}

/* (2) Skip-Link for keyboard users (WCAG 2.4.1 Bypass Blocks) — injected via JS.
 *     Hidden until focused. */
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 10000;
    padding: 12px 18px;
    background: #2F2A26;
    color: #FFFFFF !important;            /* 13.61:1 on #2F2A26 */
    text-decoration: underline;
    font-weight: 700;
    border-radius: 0 0 6px 0;
}
.skip-link:focus,
.skip-link:focus-visible {
    left: 0;
    outline: 3px solid #FFC49A;
    outline-offset: 2px;
}

/* (3) Universal focus-visible ring (WCAG 2.4.7 Focus Visible / 2.4.11 Focus Not Obscured)
 *     The base theme has very subtle/missing focus styles; we override globally for
 *     keyboard users only (`:focus-visible`, not `:focus`, so mouse clicks stay clean). */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #B24C13;
    outline-offset: 2px;
    border-radius: 2px;
}
.search_close:focus-visible,
.search_close:focus {
    outline: 3px solid #B24C13;            /* 5.34:1 on white (was #E06018=3.44) */
    outline-offset: 2px;
    border-radius: 2px;
}

/* (4) Body link colour — base theme/Elementor uses light-orange #E06018 (3.44:1)
 *     which fails AA for normal text. Force a darker variant on light surfaces.
 *     Excludes child-theme components that already define their own link colours. */
.entry-content a:not(.btn):not(.button):not(.sc_button):not(.elementor-button):not(.wr-orderbar__btn):not(.bhp-pager__btn),
.post_content a:not(.btn):not(.button):not(.sc_button):not(.elementor-button),
.elementor-widget-text-editor a,
.elementor-widget-heading a {
    color: #B24C13;                        /* 5.34:1 on white */
    text-decoration: underline;            /* WCAG 1.4.1 Use of Color: not relying on hue alone */
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}
.entry-content a:hover, .entry-content a:focus,
.post_content a:hover, .post_content a:focus,
.elementor-widget-text-editor a:hover,
.elementor-widget-heading a:hover {
    color: #8F3C0E;                        /* 7.04:1 on white — even stronger on hover */
    text-decoration-thickness: 2px;
}

/* (5) Force-override theme link variables on light scheme to passing values.
 *     The base theme defines --theme-color-text_link: #2CC374 (2.29:1 — fails badly)
 *     but the brand re-skin uses orange. We harden both to passing variants. */
:root,
.scheme_default,
[class*="scheme_"] {
    --theme-color-text_link: #B24C13;       /* was #2CC374 / #E06018 — 5.34:1 */
    --theme-color-text_hover: #8F3C0E;      /* was #1BA25B / lighter — 7.04:1 */
    --theme-color-alter_link: #FFC49A;      /* on dark: 9.20:1 (was orange-on-dark fails) */
    --theme-color-alter_hover: #FFFFFF;     /* on dark: 13.61:1 */
    --e-global-color-text: #585048;         /* body text; was #7A7A7A=4.29:1 → 7.58:1 */
}

/* (6) Theme button: white on #E06018 (3.59:1) — bump to #B24C13. Apply broadly. */
.sc_button.color_style_dark,
.sc_button[class*="bg_color"],
.sc_button_default,
.elementor-button-primary,
.wp-block-button__link,
.wpcf7-submit:not([type="reset"]),
input[type="submit"]:not([type="reset"]) {
    background-color: #B24C13 !important;   /* WCAG: 5.34:1 on text white */
    color: #FFFFFF !important;
    border-color: #B24C13 !important;
}
.sc_button.color_style_dark:hover,
.sc_button[class*="bg_color"]:hover,
.sc_button_default:hover,
.elementor-button-primary:hover,
.wp-block-button__link:hover,
.wpcf7-submit:not([type="reset"]):hover,
input[type="submit"]:not([type="reset"]):hover {
    background-color: #8F3C0E !important;   /* hover: 7.04:1 */
    border-color: #8F3C0E !important;
}

/* (7) Form fields — visible borders for distinguishability (WCAG 1.4.11 Non-Text Contrast).
 *     Default theme often uses very faint borders that are <3:1 on the page bg. */
input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
textarea, select {
    border: 1px solid #757067 !important;   /* 4.51:1 on white — visible UI component (>=3:1) */
}
input:focus,
textarea:focus,
select:focus {
    border-color: #B24C13 !important;
    outline: 2px solid rgba(178, 76, 19, 0.4);
    outline-offset: 1px;
}
/* Don't apply the hard border to the dark hero/orange-section forms */
#kontaktformular input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
#kontaktformular textarea {
    border: 1px solid #FFFFFF !important;   /* original design intent on orange BG */
}
.search_form .search_field {
    border: 1px solid #FFFFFF !important;   /* fullscreen overlay, dark BG */
}

/* (8) Placeholder text: must be ≥4.5:1 on field background to be considered "label-like".
 *     Some plugins (MailPoet, theme defaults) ship 1.7:1 placeholders. */
::placeholder {
    color: #6F665E !important;              /* 5.62:1 on white */
    opacity: 1;
}

/* (9) Heading-skip annotation — ensure visual size matches the announced level.
 *     Theme renders sc_title titles as <h6>/<h5> after <h2>; JS adds aria-level=3. */
.sc_title .sc_item_title.sc_title_title[aria-level="3"] {
    /* visual already correct; ARIA level 3 patched via JS */
}

/* (10) Footer/sidebar muted text on white BG — ensure ≥4.5:1 */
.widget_text, .widget_recent_entries, .widget_archive {
    color: #585048;                         /* 7.58:1 on white */
}

/* (11) Tag/category labels — small text needs full AA */
.wr-item__tag,
.wr-item__tag--dissertation,
.wr-item__tag--symposiumsbericht {
    /* Existing colors verified: #b94d10=5.08, #1f5a8a=7.27, #6F4F1F=7.46 — all PASS */
}

/* (12) Decorative-only elements (icons next to labelled text) inherit colour;
 *      ensure their @aria-hidden="true" is set in markup (not CSS — handled in PHP). */

