/*
Theme Name: GeneratePress Child
Template: generatepress
Version: 1.1
Description: Child-Theme fuer baufachinformationen.de. Design-Direktion "Fachportal-Register".
*/

/* ---------- Tokens ---------- */
:root{
  --bfi-bg:#F2EFE9;
  --bfi-surface:#FFFFFF;
  --bfi-ink:#1A1F26;
  --bfi-accent:#2C5F7C;
  --bfi-muted:#6B7280;
  --bfi-rule:#D9D3C7;
  --bfi-register:#2C5F7C;      /* wird je Silo ueberschrieben */
  --bfi-xs:6px; --bfi-sm:12px; --bfi-md:24px; --bfi-lg:48px; --bfi-xl:88px;
  --bfi-radius:2px;
  --bfi-read:1020px;  /* Lesespalte, gleiche Breite wie die Hub-Archive */
  --bfi-wide:1020px;  /* Hub-Archive: die Unterrubrik-Liste braucht mehr Breite */
}

/* ---------- Grundtypografie ---------- */
body{
  background:var(--bfi-bg);
  color:var(--bfi-ink);
  font-family:"IBM Plex Sans",system-ui,sans-serif;
  font-weight:400;
  font-size:20px;      /* groesser, damit die Zeile bei 1140px Spalte lesbar bleibt */
  line-height:1.65;
}
h1,h2,h3,h4,.entry-title,.page-header h1{
  font-family:"IBM Plex Serif",Georgia,serif;
  font-weight:600;
  line-height:1.12;
  color:var(--bfi-ink);
}
h1{letter-spacing:-.01em;}

/* ---------- Lesebreite ----------
   Die Spalte selbst ist schmal, nicht der Text darin. Ein 68ch-Deckel auf
   Absaetzen innerhalb eines breiten Containers laesst rechts eine leere
   Flaeche stehen, die wie eine Sidebar aussieht. */
.single .inside-article,
.page .inside-article{max-width:var(--bfi-read);margin-inline:auto;}
.single .entry-header,
.single .featured-image,
.single .post-image{max-width:var(--bfi-read);margin-inline:auto;}
.category .site-main,
.archive .site-main{max-width:var(--bfi-wide);margin-inline:auto;}

/* Tabellen und Abbildungen duerfen die Lesespalte ueberragen */
.entry-content .wp-block-table{max-width:none;}
@media (min-width:1000px){
  /* Tabellen buendig zur Textspalte, nicht ueber den Kartenrand hinaus */
.entry-content .wp-block-table{width:100%;margin-left:0;}
}
.entry-content .wp-block-table table{width:100%;}
.entry-content h2{margin-top:2.2em;}
.entry-content h3{margin-top:1.8em;}
a{color:var(--bfi-accent);text-underline-offset:2px;}
a:hover,a:focus{text-decoration:underline;}
:focus-visible{outline:2px solid var(--bfi-accent);outline-offset:2px;}

/* Tabellen im Ratgeber-Stil: Haarlinien statt Rahmenkasten */
.entry-content table{border-collapse:collapse;width:100%;font-size:.95em;}
.entry-content th,.entry-content td{
  border:0;border-bottom:1px solid var(--bfi-rule);
  padding:.6em .8em;text-align:left;vertical-align:top;
}
.entry-content thead th{
  border-bottom:2px solid var(--bfi-ink);
  font-family:"IBM Plex Sans",sans-serif;font-weight:600;
  font-size:.82em;letter-spacing:.04em;text-transform:uppercase;
}
.entry-content figcaption{color:var(--bfi-muted);font-size:.85em;margin-top:.5em;}
.entry-content hr{border:0;border-top:1px solid var(--bfi-rule);margin:var(--bfi-lg) 0;}

/* ---------- Hub-Kopf der Silos ---------- */
.category .page-header{display:none;}          /* GP-Standardkopf ersetzt */

.bfi-hub{
  border-top:3px solid var(--bfi-register);
  padding-top:var(--bfi-md);
  margin-bottom:var(--bfi-lg);
}
.bfi-hub__eyebrow{
  font-size:.75rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--bfi-register);margin:0 0 var(--bfi-sm);
}
.bfi-hub__title{font-size:clamp(2rem,4vw,2.9rem);margin:0 0 var(--bfi-md);}
.bfi-hub__intro{font-size:20px;max-width:var(--bfi-read);}
.bfi-hub__intro p{margin-bottom:.9em;}
.bfi-hub__intro p:last-child{margin-bottom:0;}

/* Unterrubriken: Liste mit Haarlinien, keine Kacheln */
.bfi-subnav{margin:var(--bfi-lg) 0 0;padding:0;list-style:none;border-top:1px solid var(--bfi-rule);}
.bfi-subnav li{border-bottom:1px solid var(--bfi-rule);margin:0;}
.bfi-subnav a{
  display:flex;gap:var(--bfi-md);align-items:baseline;
  padding:var(--bfi-sm) 0;text-decoration:none;color:var(--bfi-ink);
}
.bfi-subnav a:hover .bfi-subnav__name{color:var(--bfi-accent);text-decoration:underline;}
.bfi-subnav__name{font-family:"IBM Plex Serif",Georgia,serif;font-weight:600;flex:0 0 34%;}
.bfi-subnav__desc{color:var(--bfi-muted);font-size:.92rem;flex:1;}
.bfi-subnav__count{color:var(--bfi-muted);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap;}

.bfi-hub__lead{
  margin-top:var(--bfi-lg);font-size:.78rem;font-weight:600;
  letter-spacing:.11em;text-transform:uppercase;color:var(--bfi-muted);
  border-bottom:1px solid var(--bfi-rule);padding-bottom:var(--bfi-xs);
}
.bfi-hub__empty{color:var(--bfi-muted);font-style:italic;margin-top:var(--bfi-md);}

/* Registerbalken auf Beitragsebene */
.single .entry-header{border-top:3px solid var(--bfi-register);padding-top:var(--bfi-md);}

@media (max-width:768px){
  .bfi-subnav a{flex-direction:column;gap:2px;}
  .bfi-subnav__name{flex:none;}
}

/* Tabellenrahmen von GeneratePress zuruecknehmen: die Direktion verlangt
   Haarlinien und Weissraum, keine Gitterlinien. */
.entry-content table,
.entry-content table th,
.entry-content table td{border-left:0;border-right:0;border-top:0;}
.entry-content table{border-collapse:collapse;}
.entry-content tbody tr:last-child td{border-bottom:0;}
.entry-content table td+td,
.entry-content table th+th{padding-left:1.1em;}

/* GeneratePress setzt body{background-color:var(--base-2)} nach dem Child-Theme.
   Diese Regel holt den Papierton der Palette zurueck. */
html body{background-color:var(--bfi-bg);}

/* KI-Transparenzhinweis an die Palette angleichen.
   Das Plugin liefert ein leeres div mit dem Text als SVG-Hintergrundbild.
   bfi-ki-hinweis.php ersetzt das durch echten Text; hier nur die Optik. */
.kikz-notice{
background:none !important;
width:auto !important;
height:auto !important;
margin:var(--bfi-lg) 0 0 !important;
padding:.55em 0 .55em .9em;
border-left:3px solid var(--bfi-register,var(--bfi-accent));
font-family:"IBM Plex Sans",system-ui,sans-serif;
font-size:.82em;
line-height:1.5;
color:var(--bfi-muted);
}
/* Rueckfall: falls das leere Plugin-div doch einmal durchkommt, bleibt der
   Hinweis wenigstens sichtbar. Der echte Text steckt im <p>-Ersatzmarkup. */
div.kikz-notice::before{content:"Enth\00e4lt KI-generierte Inhalte";}
p.kikz-notice{max-width:none;}
.kikz-notice--oben{margin:0 0 var(--bfi-md) !important;}
@media print{.kikz-notice{border-left-color:#000;color:#000;}}
