/**
 * OMP (Open Monograph Press) – Benutzerdefiniertes Layout
 * =========================================================
 * Kompatibel mit OMP 3.x (PKP-Framework)
 *
 * Einbinden über:
 *   Admin → Einstellungen → Website → Erscheinungsbild → Zusätzliches CSS
 * oder als Datei im Theme-Verzeichnis referenzieren.
 *
 * Inhaltsverzeichnis:
 *   1. CSS-Variablen (Design-Tokens)
 *   2. Typografie
 *   3. Header & Navigation
 *   4. Startseite / Featured Books
 *   5. Katalog / Buchlistings
 *   6. Buchdetailseite
 *   7. Sidebar & Widgets
 *   8. Footer
 *   9. Buttons & Formulare
 *  10. Responsive / Mobile
 */

/* =============================================================================
   1. CSS-VARIABLEN (Design-Tokens)
   Hier zentral Farben, Abstände und Schriften anpassen.
   ============================================================================= */

:root {
  /* Primärfarben */
  --omp-primary:          #1a3a5c;   /* Dunkelblau – Hauptfarbe */
  --omp-primary-light:    #2a5f8f;   /* Helleres Blau für Hover */
  --omp-accent:           #c0392b;   /* Akzentfarbe (z. B. Buttons, Links) */
  --omp-accent-hover:     #a93226;

  /* Neutrale Farben */
  --omp-bg:               #f7f5f0;   /* Seitenhintergrund */
  --omp-surface:          #ffffff;   /* Karten, Panels */
  --omp-border:           #ddd8cf;   /* Trennlinien */
  --omp-text:             #2c2c2c;   /* Haupttext */
  --omp-text-muted:       #6b6560;   /* Sekundärtext, Metadaten */

  /* Typografie */
  --omp-font-serif:       'Georgia', 'Times New Roman', serif;
  --omp-font-sans:        'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --omp-font-size-base:   16px;
  --omp-line-height:      1.7;

  /* Abstände */
  --omp-space-xs:         0.4rem;
  --omp-space-sm:         0.75rem;
  --omp-space-md:         1.25rem;
  --omp-space-lg:         2rem;
  --omp-space-xl:         3.5rem;

  /* Layout */
  --omp-max-width:        1200px;
  --omp-sidebar-width:    280px;
  --omp-radius:           4px;

  /* Schatten */
  --omp-shadow-sm:        0 1px 3px rgba(0,0,0,0.10);
  --omp-shadow-md:        0 4px 12px rgba(0,0,0,0.12);
  --omp-shadow-hover:     0 8px 24px rgba(0,0,0,0.16);
}


/* =============================================================================
   2. TYPOGRAFIE
   ============================================================================= */

body {
  font-family:   var(--omp-font-sans);
  font-size:     var(--omp-font-size-base);
  line-height:   var(--omp-line-height);
  color:         var(--omp-text);
  background:    var(--omp-bg);
}

h1, h2, h3, h4, h5, h6 {
  font-family:  var(--omp-font-serif);
  color:        var(--omp-primary);
  line-height:  1.25;
  margin-top:   0;
  margin-bottom: var(--omp-space-sm);
}

h1 { font-size: 2.1rem; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.25rem; }

a {
  color:           var(--omp-accent);
  text-decoration: none;
  transition:      color 0.2s ease;
}
a:hover {
  color:           var(--omp-accent-hover);
  text-decoration: underline;
}

p { margin: 0 0 var(--omp-space-md); }

/* Zitate / Abstracts */
blockquote,
.abstract {
  border-left: 4px solid var(--omp-primary-light);
  padding:     var(--omp-space-sm) var(--omp-space-md);
  margin:      var(--omp-space-md) 0;
  color:       var(--omp-text-muted);
  background:  var(--omp-surface);
  border-radius: 0 var(--omp-radius) var(--omp-radius) 0;
}


/* =============================================================================
   3. HEADER & NAVIGATION
   ============================================================================= */

/* Gesamter Seitenkopf */
#pkp_site_header,
.pkp_structure_head {
  background:    var(--omp-primary);
  border-bottom: 3px solid var(--omp-accent);
  box-shadow:    var(--omp-shadow-md);
}

/* Pressname / Logo-Bereich */
.pkp_site_name,
.site-name {
  font-family:  var(--omp-font-serif);
  font-size:    1.7rem;
  color:        #ffffff !important;
  letter-spacing: 0.02em;
}

.pkp_site_name a,
.site-name a {
  color: #ffffff !important;
  text-decoration: none;
}

/* Hauptnavigation */
.pkp_navigation_primary,
nav.pkp_nav_list {
  background: var(--omp-primary);
}

.pkp_navigation_primary li a,
nav.pkp_nav_list li > a {
  color:      rgba(255,255,255,0.88);
  font-size:  0.92rem;
  padding:    0.6rem 1rem;
  transition: background 0.2s, color 0.2s;
}

.pkp_navigation_primary li a:hover,
nav.pkp_nav_list li > a:hover,
.pkp_navigation_primary li.current > a,
nav.pkp_nav_list li.current > a {
  background: var(--omp-accent);
  color:      #ffffff;
  text-decoration: none;
}

/* Dropdown-Menüs */
.pkp_navigation_primary .dropdown-menu,
nav.pkp_nav_list .sub_nav {
  background:    var(--omp-primary-light);
  border:        1px solid var(--omp-accent);
  border-radius: var(--omp-radius);
  box-shadow:    var(--omp-shadow-md);
}

/* Suchleiste im Header */
.pkp_search input[type="text"] {
  border:        1px solid rgba(255,255,255,0.4);
  border-radius: var(--omp-radius);
  background:    rgba(255,255,255,0.12);
  color:         #fff;
  padding:       0.35rem 0.75rem;
}
.pkp_search input[type="text"]::placeholder { color: rgba(255,255,255,0.55); }


/* =============================================================================
   4. STARTSEITE / FEATURED BOOKS (Homepage)
   ============================================================================= */

/* Hero-Bereich (Spotlight / Featured) */
.homepage_image,
.pkp_block_spotlight {
  background:    var(--omp-primary);
  padding:       var(--omp-space-xl) var(--omp-space-lg);
  text-align:    center;
  border-bottom: 4px solid var(--omp-accent);
}

.homepage_image h2,
.pkp_block_spotlight h2 {
  color:         #ffffff;
  font-size:     2rem;
  margin-bottom: var(--omp-space-sm);
}

/* Neuzugänge / New Releases */
.pkp_block_new_releases .book_listing,
.new_releases .book {
  background:    var(--omp-surface);
  border:        1px solid var(--omp-border);
  border-radius: var(--omp-radius);
  padding:       var(--omp-space-md);
  margin-bottom: var(--omp-space-md);
  box-shadow:    var(--omp-shadow-sm);
  transition:    box-shadow 0.25s, transform 0.25s;
}

.pkp_block_new_releases .book_listing:hover,
.new_releases .book:hover {
  box-shadow: var(--omp-shadow-hover);
  transform:  translateY(-2px);
}


/* =============================================================================
   5. KATALOG / BUCHLISTINGS
   ============================================================================= */

/* Katalogseite – Rasteransicht */
.catalog_page .books_grid,
.pkp_catalog .catalog_results {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap:                   var(--omp-space-lg);
  padding:               var(--omp-space-lg) 0;
}

/* Einzelne Buchkarte */
.catalog_page .book,
.pkp_catalog .book {
  background:    var(--omp-surface);
  border:        1px solid var(--omp-border);
  border-radius: var(--omp-radius);
  overflow:      hidden;
  box-shadow:    var(--omp-shadow-sm);
  transition:    box-shadow 0.25s, transform 0.25s;
  display:       flex;
  flex-direction: column;
}

.catalog_page .book:hover,
.pkp_catalog .book:hover {
  box-shadow: var(--omp-shadow-hover);
  transform:  translateY(-3px);
}

/* Buchcover */
.catalog_page .book .cover img,
.pkp_catalog .book img.cover {
  width:      100%;
  height:     260px;
  object-fit: cover;
  display:    block;
  border-bottom: 1px solid var(--omp-border);
}

/* Buchinfo unterhalb des Covers */
.catalog_page .book .details,
.pkp_catalog .book .details {
  padding: var(--omp-space-sm) var(--omp-space-md);
  flex:    1;
}

.catalog_page .book .title,
.pkp_catalog .book .title {
  font-family: var(--omp-font-serif);
  font-size:   1rem;
  font-weight: bold;
  color:       var(--omp-primary);
  margin-bottom: var(--omp-space-xs);
}

.catalog_page .book .author,
.pkp_catalog .book .author {
  font-size: 0.85rem;
  color:     var(--omp-text-muted);
}

/* Kategorie-Tags */
.catalog_page .category,
.pkp_catalog .category {
  display:       inline-block;
  font-size:     0.72rem;
  font-weight:   600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  background:    var(--omp-primary);
  color:         #fff;
  border-radius: 2px;
  padding:       2px 7px;
  margin-right:  4px;
  margin-bottom: 4px;
}


/* =============================================================================
   6. BUCHDETAILSEITE
   ============================================================================= */

/* Layout: Cover links, Details rechts */
.book_details_wrapper,
.pkp_structure_main .monograph_details {
  display:   flex;
  gap:       var(--omp-space-lg);
  flex-wrap: wrap;
  padding:   var(--omp-space-lg) 0;
}

/* Cover */
.book_details_wrapper .cover,
.monograph_details .cover {
  flex:      0 0 240px;
  max-width: 240px;
}

.book_details_wrapper .cover img,
.monograph_details .cover img {
  width:         100%;
  border-radius: var(--omp-radius);
  box-shadow:    var(--omp-shadow-md);
}

/* Textinhalt */
.book_details_wrapper .details,
.monograph_details .details {
  flex: 1;
  min-width: 260px;
}

/* Titel */
.book_details_wrapper h1.title,
.monograph_details h1 {
  font-size:    2rem;
  color:        var(--omp-primary);
  margin-bottom: var(--omp-space-xs);
}

/* Autoren */
.book_details_wrapper .authors,
.monograph_details .authors {
  color:     var(--omp-text-muted);
  font-size: 0.95rem;
  margin-bottom: var(--omp-space-md);
}

/* Abstract */
.book_details_wrapper .abstract,
.monograph_details .abstract {
  font-size:  0.97rem;
  line-height: var(--omp-line-height);
}

/* Metadaten-Tabelle (DOI, ISBN, Sprache …) */
.monograph_details .meta_data table,
.book_meta table {
  width:           100%;
  border-collapse: collapse;
  font-size:       0.88rem;
  margin-top:      var(--omp-space-md);
}

.monograph_details .meta_data td,
.book_meta td {
  padding:       6px 10px;
  border-bottom: 1px solid var(--omp-border);
  vertical-align: top;
}

.monograph_details .meta_data td:first-child,
.book_meta td:first-child {
  font-weight: 600;
  color:       var(--omp-primary);
  width:       40%;
}

/* Download-/Lesebuttons */
.monograph_details .download_links a,
.book_actions a {
  display:       inline-block;
  margin:        var(--omp-space-xs) var(--omp-space-xs) 0 0;
  padding:       0.5rem 1.1rem;
  border-radius: var(--omp-radius);
  font-size:     0.9rem;
  font-weight:   600;
  transition:    background 0.2s, transform 0.15s;
}

.monograph_details .download_links a:first-child,
.book_actions a.primary {
  background: var(--omp-accent);
  color:      #fff;
}
.monograph_details .download_links a:first-child:hover,
.book_actions a.primary:hover {
  background: var(--omp-accent-hover);
  transform:  translateY(-1px);
}

.monograph_details .download_links a:not(:first-child),
.book_actions a.secondary {
  background: transparent;
  border:     2px solid var(--omp-primary);
  color:      var(--omp-primary);
}
.monograph_details .download_links a:not(:first-child):hover,
.book_actions a.secondary:hover {
  background: var(--omp-primary);
  color:      #fff;
  transform:  translateY(-1px);
}


/* =============================================================================
   7. SIDEBAR & WIDGETS
   ============================================================================= */

.pkp_structure_sidebar,
.sidebar {
  width:   var(--omp-sidebar-width);
  flex:    0 0 var(--omp-sidebar-width);
}

/* Widget-Box */
.pkp_block,
.block {
  background:    var(--omp-surface);
  border:        1px solid var(--omp-border);
  border-radius: var(--omp-radius);
  margin-bottom: var(--omp-space-md);
  overflow:      hidden;
  box-shadow:    var(--omp-shadow-sm);
}

/* Widget-Titel */
.pkp_block .title,
.block h2,
.block h3 {
  background:   var(--omp-primary);
  color:        #ffffff;
  font-size:    0.85rem;
  font-family:  var(--omp-font-sans);
  font-weight:  700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding:      0.6rem var(--omp-space-md);
  margin:       0;
}

/* Widget-Inhalt */
.pkp_block .content,
.block .content {
  padding: var(--omp-space-sm) var(--omp-space-md);
}

.pkp_block ul,
.block ul {
  list-style: none;
  padding:    0;
  margin:     0;
}

.pkp_block ul li,
.block ul li {
  padding:       0.35rem 0;
  border-bottom: 1px solid var(--omp-border);
  font-size:     0.9rem;
}
.pkp_block ul li:last-child,
.block ul li:last-child { border-bottom: none; }


/* =============================================================================
   8. FOOTER
   ============================================================================= */

#pkp_content_footer,
.pkp_structure_footer {
  background:  var(--omp-primary);
  color:       rgba(255,255,255,0.75);
  padding:     var(--omp-space-lg) var(--omp-space-md);
  margin-top:  var(--omp-space-xl);
  font-size:   0.88rem;
  line-height: 1.6;
}

.pkp_structure_footer a {
  color: rgba(255,255,255,0.85);
}
.pkp_structure_footer a:hover {
  color:           #fff;
  text-decoration: underline;
}

/* Footer-Logo / Pressenname */
.pkp_structure_footer .footer_press_name {
  font-family: var(--omp-font-serif);
  font-size:   1.1rem;
  color:       #fff;
  margin-bottom: var(--omp-space-sm);
}

/* Untere Leiste (Copyright, PKP-Link) */
.pkp_structure_footer .copyright,
.pkp_structure_footer .pkp_brand {
  border-top:  1px solid rgba(255,255,255,0.15);
  margin-top:  var(--omp-space-md);
  padding-top: var(--omp-space-sm);
  font-size:   0.78rem;
  opacity:     0.65;
}


/* =============================================================================
   9. BUTTONS & FORMULARE
   ============================================================================= */

/* Allgemeine Button-Basis */
.pkp_button,
button,
input[type="submit"],
.btn {
  font-family:   var(--omp-font-sans);
  font-size:     0.9rem;
  font-weight:   600;
  padding:       0.5rem 1.2rem;
  border-radius: var(--omp-radius);
  border:        none;
  cursor:        pointer;
  transition:    background 0.2s, transform 0.15s, box-shadow 0.15s;
}

.pkp_button_primary,
input[type="submit"],
.btn-primary {
  background: var(--omp-accent);
  color:      #fff;
}
.pkp_button_primary:hover,
input[type="submit"]:hover,
.btn-primary:hover {
  background: var(--omp-accent-hover);
  transform:  translateY(-1px);
  box-shadow: 0 4px 10px rgba(192,57,43,0.3);
}

/* Formularfelder */
input[type="text"],
input[type="email"],
input[type="search"],
input[type="password"],
select,
textarea {
  font-family:   var(--omp-font-sans);
  font-size:     0.92rem;
  color:         var(--omp-text);
  background:    var(--omp-surface);
  border:        1px solid var(--omp-border);
  border-radius: var(--omp-radius);
  padding:       0.45rem 0.75rem;
  width:         100%;
  box-sizing:    border-box;
  transition:    border-color 0.2s, box-shadow 0.2s;
}

input:focus,
select:focus,
textarea:focus {
  outline:      none;
  border-color: var(--omp-primary-light);
  box-shadow:   0 0 0 3px rgba(42,95,143,0.18);
}

/* Labels */
label {
  display:       block;
  font-size:     0.88rem;
  font-weight:   600;
  color:         var(--omp-primary);
  margin-bottom: 0.3rem;
}

/* Beschreibungstext unter Feldern */
.pkp_help_text,
.form-text {
  font-size: 0.8rem;
  color:     var(--omp-text-muted);
  margin-top: 0.25rem;
}


/* =============================================================================
   10. RESPONSIVE / MOBILE
   ============================================================================= */

/* Hauptcontainer */
.pkp_structure_main,
#pkp_content_main {
  max-width:  var(--omp-max-width);
  margin:     0 auto;
  padding:    0 var(--omp-space-md);
  box-sizing: border-box;
}

/* Ab 1024px: Main + Sidebar nebeneinander */
@media (min-width: 1024px) {
  .pkp_structure_page,
  .page_catalog {
    display: flex;
    gap:     var(--omp-space-lg);
    align-items: flex-start;
  }

  .pkp_structure_main { flex: 1; min-width: 0; }
  .pkp_structure_sidebar { flex-shrink: 0; }
}

/* Unter 768px: Mobile-Anpassungen */
@media (max-width: 768px) {
  :root {
    --omp-font-size-base: 15px;
    --omp-sidebar-width:  100%;
  }

  h1 { font-size: 1.5rem; }
  h2 { font-size: 1.2rem; }

  .pkp_structure_sidebar { width: 100%; }

  /* Navigation → Hamburger-Bereit */
  .pkp_navigation_primary {
    display:   flex;
    flex-wrap: wrap;
  }
  .pkp_navigation_primary li { flex: 1 1 auto; }
  .pkp_navigation_primary li a {
    display:    block;
    text-align: center;
    padding:    0.5rem 0.5rem;
    font-size:  0.82rem;
  }

  /* Buchdetail: Stack */
  .book_details_wrapper,
  .monograph_details {
    flex-direction: column;
  }
  .book_details_wrapper .cover,
  .monograph_details .cover {
    max-width: 180px;
    margin:    0 auto var(--omp-space-md);
  }

  /* Katalog: 2 Spalten */
  .catalog_page .books_grid,
  .pkp_catalog .catalog_results {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--omp-space-md);
  }
}

@media (max-width: 480px) {
  /* Katalog: 1 Spalte */
  .catalog_page .books_grid,
  .pkp_catalog .catalog_results {
    grid-template-columns: 1fr;
  }
}
