/* ============================================================
   ncp-book.css — Springer-standard, zero AI-slop
   Sharp corners, flat sidebar, clean typography
   ============================================================ */

/* ── Reset OMP wrappers ── */
.page_book .pkp_structure_content { max-width: 1140px; margin: 0 auto; padding: 0 1rem; }
.page_book .pkp_structure_main,
.page_book .pkp_structure_sidebar { background: transparent; border: none; box-shadow: none; padding: 0; float: none; }

/* ── Breadcrumb ── */
.ncp-breadcrumb {
  font-size: .78rem; color: #64748B; margin: 1rem 0 1.5rem;
  display: flex; align-items: center; gap: .35rem; flex-wrap: wrap;
}
.ncp-breadcrumb a { color: #2563EB; text-decoration: none; }
.ncp-breadcrumb a:hover { text-decoration: underline; }
.ncp-bc-sep { color: #CBD5E1; }

/* ═══════════════════════════════════════
   HERO — Springer two-column
═══════════════════════════════════════ */
.ncp-book-hero {
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 2rem;
  padding: 0 0 2rem;
  border-bottom: 1px solid #E2E8F0;
  margin-bottom: 2rem;
}

/* Cover */
.ncp-cover-img {
  width: 100%;
  max-width: 190px;
  display: block;
  box-shadow: 0 2px 12px rgba(0,0,0,.18);
  border: 1px solid #E2E8F0;
}
.ncp-cover-placeholder {
  width: 170px; height: 238px;
  background: linear-gradient(160deg, #6B1010 0%, #1E293B 100%);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  color: #fff; font-size: .78rem; text-align: center; line-height: 1.45;
}

/* Title block */
.ncp-book-meta { display: flex; flex-direction: column; gap: .6rem; padding-top: .25rem; }

.ncp-work-badge {
  display: inline-block; font-size: .7rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .7px; color: #6B1010;
  border: 1px solid #8C1515; padding: .1rem .45rem; width: fit-content;
  border-radius: 0; /* sharp — no rounded corners */
}

.ncp-book-title {
  font-size: 1.55rem; font-weight: 700; color: #111827;
  line-height: 1.3; margin: 0; font-family: Georgia, "Times New Roman", serif;
}

.ncp-book-editors { font-size: .88rem; color: #374151; display: flex; flex-wrap: wrap; gap: .2rem .45rem; align-items: baseline; }
.ncp-contributor { font-weight: 500; }
.ncp-contributor em { font-style: normal; font-size: .78rem; color: #6B1010; font-weight: 600; margin-left: .2rem; }

.ncp-book-pub-row { font-size: .82rem; color: #6B7280; display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.ncp-publisher { font-weight: 600; color: #374151; }
.ncp-pub-sep { color: #CBD5E1; }

/* Access badges */
.ncp-access-row { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.ncp-oa-badge {
  display: inline-flex; align-items: center; gap: .25rem;
  background: #16a34a; color: #fff;
  font-size: .72rem; font-weight: 600; padding: .2rem .55rem;
  border-radius: 0; /* sharp */
}
.ncp-hybrid-badge {
  display: inline-block; background: #F1F5F9; color: #475569;
  font-size: .72rem; font-weight: 600; padding: .2rem .55rem;
  border-radius: 0; border: 1px solid #CBD5E1;
}

/* Hero download row — just the format buttons, no label */
.ncp-dl-row { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .25rem; }
.ncp-hero-dl-btn {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .4rem .9rem; font-size: .8rem; font-weight: 600;
  text-decoration: none; border-radius: 0;
  transition: background .12s;
}
.ncp-hero-dl-free {
  background: #15803d; color: #fff; border: 1px solid #15803d;
}
.ncp-hero-dl-free:hover { background: #166534; color: #fff; }
.ncp-hero-dl-buy {
  background: #1E293B; color: #F5C842; border: 1px solid #1E293B;
}
.ncp-hero-dl-buy:hover { background: #0f172a; color: #FFD700; }

/* DOI */
.ncp-doi { font-size: .8rem; color: #6B7280; }
.ncp-meta-label { font-weight: 700; font-size: .7rem; text-transform: uppercase; letter-spacing: .4px; color: #8C1515; margin-right: .3rem; }
.ncp-doi-link { color: #2563EB; }

/* ═══════════════════════════════════════
   BODY — two-column grid
═══════════════════════════════════════ */
.ncp-book-body {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 2.5rem;
  align-items: start;
}
.ncp-book-main { min-width: 0; }
.ncp-book-sidebar { min-width: 0; position: sticky; top: 1rem; }

/* Sections */
.ncp-section { margin-bottom: 2.25rem; }
.ncp-section-title {
  font-size: 1rem; font-weight: 700; color: #111827;
  border-bottom: 2px solid #111827; padding-bottom: .35rem;
  margin-bottom: 1rem; font-family: Georgia, serif;
  letter-spacing: -.01em;
}

/* Abstract */
.ncp-abstract-text { font-size: .92rem; line-height: 1.75; color: #374151; }

/* ═══════════════════════════════════════
   CHAPTER LIST — Springer exact style
═══════════════════════════════════════ */
.ncp-chapter-list { list-style: none; padding: 0; margin: 0; counter-reset: chapter; }
.ncp-chapter-item {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 1.25rem; padding: 1.1rem 0;
  border-bottom: 1px solid #E5E7EB;
  counter-increment: chapter;
}
.ncp-chapter-item:first-child { border-top: 1px solid #E5E7EB; }
.ncp-chapter-main { flex: 1; min-width: 0; }

.ncp-chapter-title {
  font-size: .9rem; font-weight: 600; color: #111827;
  line-height: 1.45; margin-bottom: .2rem;
}
.ncp-chapter-title::before {
  content: counter(chapter) ". ";
  color: #374151; font-weight: 700;
}
.ncp-chapter-authors {
  font-size: .78rem; color: #6B7280; margin-bottom: .25rem; font-style: italic;
}
.ncp-chapter-abstract {
  font-size: .8rem; color: #4B5563; line-height: 1.55; margin-top: .2rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
  /* NO background, NO border, NO border-radius — plain text */
  background: none; border: none; padding: 0;
}

/* Chapter buttons — Springer style: small, sharp, right-aligned */
.ncp-chapter-files {
  display: flex; flex-direction: column; gap: .3rem;
  flex-shrink: 0; padding-top: .15rem;
}
.ncp-ch-btn {
  display: inline-block; padding: .28rem .75rem;
  font-size: .75rem; font-weight: 600;
  border-radius: 0; /* SHARP — no rounded corners */
  text-decoration: none; white-space: nowrap; text-align: center;
  min-width: 58px;
  transition: background .12s;
}
.ncp-ch-free {
  background: #15803d; color: #fff; border: 1px solid #15803d;
}
.ncp-ch-free:hover { background: #166534; color: #fff; }
.ncp-ch-buy {
  background: #1E293B; color: #F5C842; border: 1px solid #1E293B;
  font-size: .72rem;
}
.ncp-ch-buy:hover { background: #0f172a; color: #FFD700; }

/* ═══════════════════════════════════════
   RELATED TITLES
═══════════════════════════════════════ */
.ncp-related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.ncp-related-card {
  display: flex; gap: .6rem; align-items: flex-start;
  padding: .85rem; text-decoration: none;
  border: 1px solid #E5E7EB; border-radius: 0;
  background: #fff; transition: border-color .12s;
}
.ncp-related-card:hover { border-color: #8C1515; }
.ncp-related-card--cta { border-color: #8C1515; background: #FDF8F8; }
.ncp-related-cover {
  width: 46px; height: 60px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 1.3rem;
}
.ncp-related-cover--placeholder {
  background: linear-gradient(135deg,#8C1515,#1E293B); color: #fff;
  font-size: .55rem; text-align: center; padding: .3rem;
}
.ncp-related-cover--submit { background: #F8F6F3; border: 1.5px dashed #8C1515; }
.ncp-related-title { font-size: .8rem; font-weight: 600; color: #111827; line-height: 1.3; margin-bottom: .15rem; }
.ncp-related-sub { font-size: .72rem; color: #6B7280; }

/* ═══════════════════════════════════════
   SIDEBAR — Springer flat style
   No rounded corners, minimal borders
═══════════════════════════════════════ */
.ncp-sidebar-card {
  margin-bottom: 1.75rem;
  /* Springer sidebar: simple bordered block, no card shadow, no border-radius */
  border: none;
  border-top: 3px solid #8C1515;
  padding: 1rem 0 0;
  background: transparent;
  border-radius: 0;
}
.ncp-sidebar-title {
  font-size: .72rem; font-weight: 700; color: #8C1515;
  text-transform: uppercase; letter-spacing: .7px;
  margin: 0 0 .85rem;
}

/* Book details table */
.ncp-book-details { margin: 0; }
.ncp-book-details dt {
  font-size: .7rem; font-weight: 700; color: #6B7280;
  text-transform: uppercase; letter-spacing: .4px;
  margin-top: .6rem; margin-bottom: .1rem;
}
.ncp-book-details dt:first-child { margin-top: 0; }
.ncp-book-details dd { font-size: .82rem; color: #111827; margin: 0; }
.ncp-book-details dd a { color: #2563EB; text-decoration: none; }
.ncp-book-details dd a:hover { text-decoration: underline; }

/* Publish CTA card */
.ncp-sidebar-cta { border-top-color: #8C1515; }
.ncp-sidebar-cta p { font-size: .8rem; color: #4B5563; line-height: 1.55; margin: 0 0 .85rem; }
.ncp-cta-btn {
  display: block; text-align: center;
  background: #8C1515; color: #fff;
  padding: .6rem 1rem; border-radius: 0; /* sharp */
  text-decoration: none; font-weight: 600; font-size: .8rem;
  transition: background .12s;
}
.ncp-cta-btn:hover { background: #6B1010; color: #fff; }

/* Why list */
.ncp-why-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.ncp-why-list li { font-size: .8rem; color: #374151; }

/* Language in sidebar */
.ncp-lang-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .35rem; }
.ncp-lang-list li a { font-size: .82rem; color: #2563EB; text-decoration: none; }
.ncp-lang-list li a:hover { text-decoration: underline; }
.ncp-lang-list li.current a { font-weight: 700; color: #111827; }

/* ═══════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════ */
@media (max-width: 900px) {
  .ncp-book-hero { grid-template-columns: 150px 1fr; gap: 1.25rem; }
  .ncp-book-body { grid-template-columns: 1fr; }
  .ncp-book-sidebar { position: static; border-top: 2px solid #E5E7EB; padding-top: 1.5rem; margin-top: 1.5rem; }
}
@media (max-width: 580px) {
  .ncp-book-hero { grid-template-columns: 1fr; }
  .ncp-cover-img { max-width: 150px; }
  .ncp-related-grid { grid-template-columns: 1fr; }
  .ncp-chapter-item { flex-direction: column; gap: .5rem; }
  .ncp-chapter-files { flex-direction: row; }
}


/* ═══════════════════════════════════════
   RELATED TITLES CAROUSEL
═══════════════════════════════════════ */
.ncp-carousel-wrap {
  position: relative;
}
.ncp-carousel {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: .5rem;
}
.ncp-carousel::-webkit-scrollbar { display: none; }

.ncp-carousel-card {
  flex: 0 0 200px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  border: 1px solid #E5E7EB;
  text-decoration: none;
  transition: border-color .12s, box-shadow .12s;
  background: #fff;
}
.ncp-carousel-card:hover {
  border-color: #8C1515;
  box-shadow: 0 2px 8px rgba(140,21,21,.1);
}
.ncp-carousel-card--cta { border-color: #8C1515; background: #FDF8F8; }

.ncp-carousel-cover {
  display: flex; align-items: center; justify-content: center;
  padding: 1rem; background: #F8F6F3;
}
.ncp-carousel-cover svg { display: block; }

.ncp-carousel-info { padding: .75rem; flex: 1; }
.ncp-carousel-badge {
  font-size: .65rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .5px; color: #6B7280; margin-bottom: .3rem;
}
.ncp-carousel-badge--cta { color: #8C1515; }
.ncp-carousel-title {
  font-size: .82rem; font-weight: 600; color: #111827;
  line-height: 1.35; margin-bottom: .2rem;
}
.ncp-carousel-author { font-size: .72rem; color: #6B7280; }

/* Carousel nav buttons */
.ncp-carousel-nav {
  display: flex; justify-content: flex-end; gap: .5rem;
  margin-top: .75rem;
}
.ncp-carousel-btn {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px;
  border: 1px solid #E5E7EB; background: #fff;
  cursor: pointer; color: #374151;
  transition: border-color .12s, background .12s;
}
.ncp-carousel-btn:hover {
  border-color: #8C1515; color: #8C1515;
}

/* Language sidebar block integration */
.ncp-sidebar-lang .pkp_block { background: transparent; padding: 0; }
.ncp-sidebar-lang .pkp_block .title { display: none; }
.ncp-sidebar-lang .pkp_block ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .35rem; }
.ncp-sidebar-lang .pkp_block ul li a { font-size: .82rem; color: #2563EB; text-decoration: none; }
.ncp-sidebar-lang .pkp_block ul li a:hover { text-decoration: underline; }
.ncp-sidebar-lang .pkp_block ul li.current a { font-weight: 700; color: #111827; }
