/* kyivbook.com.ua — базові стилі, анімації, адаптив, hover.
   Структурні стилі лишаються inline у шаблонах (паритет із дизайном);
   тут — те, що inline зробити не можна: hover/focus, keyframes, media. */

* { box-sizing: border-box; }
html { overflow-x: hidden; }
body { margin: 0; background: #fff; font-family: Onest, sans-serif; color: #16170f; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; max-width: 100%; }
/* липкий футер: контент тягнеться, футер завжди внизу екрана */
.kb-content { flex: 1 0 auto; display: flex; flex-direction: column; }
.kb-content > * { flex: 1 0 auto; }
.kb-footer { flex-shrink: 0; }
img { max-width: 100%; }
a { color: inherit; text-decoration: none; }
::-webkit-scrollbar { width: 12px; }
::-webkit-scrollbar-thumb { background: #e2e1da; border-radius: 8px; }

.kb-burger { display: none; }

/* --- hover / інтерактив --- */
.kb-nav-item {
  padding: 9px 14px; border-radius: 100px; cursor: pointer;
  display: flex; align-items: center;
  transition: background .15s, color .15s;
}
.kb-nav-item:hover { background: #f1f0ea; color: #16170f; }

.kb-icon-btn {
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #42433a; cursor: pointer; transition: background .15s, color .15s;
}
.kb-icon-btn:hover { background: #f1f0ea; color: #16170f; }

.kb-cart-btn { transition: background .15s; }
.kb-cart-btn:hover { background: #1e5c45 !important; }

.kb-burger:hover { background: #f1f0ea; }

.kb-btn-dark { transition: background .15s, transform .15s; cursor: pointer; }
.kb-btn-dark:hover { background: #1e5c45 !important; transform: translateY(-2px); }

.kb-link-underline {
  border-bottom: 1.5px solid #16170f; cursor: pointer;
  transition: color .15s, border-color .15s;
}
.kb-link-underline:hover { color: #1e5c45; border-color: #1e5c45; }

.kb-pill {
  font-size: 13.5px; font-weight: 600; padding: 11px 20px; border-radius: 100px;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s, transform .15s, box-shadow .15s;
}
.kb-pill:hover { transform: translateY(-1px); box-shadow: 0 5px 14px -7px rgba(22, 23, 15, .4); }

.kb-card { transition: transform .2s; }
.kb-card:hover { transform: translateY(-5px); }
.kb-card-wish, .kb-card-add { cursor: pointer; transition: transform .15s, background .15s, color .15s; }
.kb-card-wish:hover { transform: scale(1.1); }
.kb-card-add:hover { background: #1e5c45 !important; color: #fff !important; transform: scale(1.08); }

.kb-review { transition: box-shadow .2s, transform .2s; }
.kb-review:hover { box-shadow: 0 18px 40px -24px rgba(22, 23, 15, .3); transform: translateY(-3px); }

/* Споттлайт «Книга місяця» */
.kb-cover-tile-img { transition: transform .25s; }
.kb-cover-tile:hover .kb-cover-tile-img { transform: translateY(-6px); }
.kb-spot-buy:hover { filter: brightness(1.07); }
.kb-cover-tile a[title="Детальніше"]:hover { background: rgba(255, 255, 255, .2) !important; }

.kb-foot-link { cursor: pointer; transition: color .15s; }
.kb-foot-link:hover { color: #9be36b; }

.kb-social {
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255, 255, 255, .07);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .15s, color .15s;
}
.kb-social:hover { background: #9be36b; color: #141410; }

.kb-news-btn { transition: filter .15s; }
.kb-news-btn:hover { filter: brightness(1.07); }
.kb-newsinput:focus { border-color: rgba(155, 227, 107, .5); }
.kb-mobile-link:active { color: #1e5c45; }

/* --- кошик / оформлення --- */
.kb-mobsum { display: none; }
.kb-stickybar { display: none; }
.kb-cart-rm:hover { background: #faf0ec; color: #c4624a; }
.kb-delivery-opt, .kb-pay-opt { transition: border-color .15s, background .15s; }
@keyframes kbspin { to { transform: rotate(360deg); } }
.kb-spin { animation: kbspin .7s linear infinite; }

@media (max-width: 960px) {
  .kb-cartgrid { grid-template-columns: 1fr !important; }
  .kb-cogrid { grid-template-columns: 1fr !important; }
  .kb-sumcol { position: static !important; order: -1; }
  .kb-sumcol-co { display: none !important; }
  .kb-mobsum { display: block; }
  .kb-stickybar { display: none !important; }
  .kb-mob-submit { display: flex !important; }
  .kb-mob-submit-note { display: block !important; }
}
@media (max-width: 760px) {
  .kb-statuscards { grid-template-columns: 1fr !important; }
  .kb-tl { flex-direction: column !important; gap: 0 !important; }
  .kb-tl-step { flex-direction: row !important; align-items: flex-start !important; text-align: left !important; }
}
@media (max-width: 560px) {
  .kb-row2 { flex-wrap: wrap; }
}

/* --- сторінка книги --- */
.kb-buybar { display: none; }
@media (max-width: 960px) {
  .kb-main { grid-template-columns: 1fr !important; }
  .kb-gallery { position: static !important; }
  .kb-similar { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 760px) {
  .kb-specs { grid-template-columns: 1fr !important; }
  .kb-buybar { display: flex !important; }
  .kb-similar { grid-template-columns: repeat(2, 1fr) !important; }
  .kb-trust { flex-wrap: wrap !important; gap: 12px 18px !important; }
}
@media (max-width: 560px) {
  .kb-similar { grid-template-columns: 1fr 1fr !important; }
}

/* --- каталог --- */
.kb-mobctrl { display: none; }
/* колонка результатів — grid-елемент, min-width:0 не дає вмісту розпирати трек */
.kb-results { min-width: 0; }
/* колонки оформлення замовлення — те саме (інакше блок форми розпирає сторінку на мобільному) */
.kb-cogrid > * { min-width: 0; }

/* обкладинки в комплекті: підрізаємо білу рамку по периметру (контейнер має overflow:hidden) */
.kb-set-cover { transform: scale(1.3); }

/* книга з віяла комплекту: при наведенні піднімається, збільшується й виходить поверх інших */
.kb-set-book { transition: transform .22s ease, box-shadow .22s ease; }
.kb-set-book:hover {
  transform: translateY(-16px) scale(1.22) !important;
  z-index: 50 !important;
  box-shadow: 0 30px 44px -18px rgba(22, 23, 15, .6) !important;
}

/* --- журнал: адаптивна сітка карток --- */
@media (max-width: 860px) { .kb-journal-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 560px) { .kb-journal-grid { grid-template-columns: 1fr !important; } }

/* --- автор: герой у колонку на мобільному (текст не за краєм) --- */
@media (max-width: 760px) {
  .kb-author-hero { grid-template-columns: 1fr !important; gap: 22px !important; padding: 24px !important; }
  .kb-author-hero > div:first-child { max-width: 200px; }
}
@media (max-width: 960px) {
  .kb-layout { grid-template-columns: 1fr !important; }
  .kb-filters { display: none !important; }
  .kb-filters.kb-open { display: flex !important; position: static !important; margin-bottom: 18px; }
  .kb-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .kb-mobctrl { display: flex !important; }
}
@media (max-width: 760px) {
  .kb-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px 16px !important; }
}

/* --- keyframes --- */
@keyframes kbfade { from { opacity: 0; } to { opacity: 1; } }
@keyframes kbdrop { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kbpop { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* --- адаптив --- */
@media (max-width: 900px) {
  .kb-hero { grid-template-columns: 1fr !important; }
  .kb-hero-main { grid-row: auto !important; min-height: auto !important; padding: 40px 30px !important; }
  .kb-cover-tile { min-height: 360px !important; order: -1; }
  .kb-catalog { grid-template-columns: repeat(3, 1fr) !important; }
  .kb-reviews { grid-template-columns: repeat(2, 1fr) !important; }
}
/* телефон у шапці — лише на широких екранах, щоб не налазив на меню */
@media (max-width: 1024px) {
  .kb-hdr-phone { display: none !important; }
}
@media (max-width: 860px) {
  .kb-nav { display: none !important; }
  .kb-burger { display: flex !important; }
  .kb-side { width: auto !important; }
}
@media (max-width: 760px) {
  .kbw { padding-left: 18px !important; padding-right: 18px !important; width: 100%; }
  .kb-footwrap { padding-left: 18px !important; padding-right: 18px !important; }
  .kb-philo { grid-template-columns: 1fr !important; gap: 18px !important; padding: 48px 0 !important; }
  .kb-starter { flex-direction: column !important; align-items: flex-start !important; gap: 24px !important; padding: 30px !important; }
  .kb-starter-price { text-align: left !important; }
  .kb-newsrow { flex-direction: column !important; align-items: flex-start !important; gap: 22px !important; }
  .kb-newsform { width: 100% !important; max-width: 100% !important; }
  .kb-newsinput { flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; }
  .kb-foottop { flex-direction: column !important; align-items: flex-start !important; gap: 30px !important; }
  .kb-footcols { gap: 40px !important; }
  .kb-footbottom { flex-direction: column !important; align-items: flex-start !important; gap: 14px !important; }
  /* Ряди «пігулок» (категорії, сортування): один рядок з горизонтальним скролом замість переносів */
  .kb-hscroll { flex-wrap: nowrap !important; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; }
  .kb-hscroll::-webkit-scrollbar { display: none; }
  .kb-hscroll > * { flex: 0 0 auto !important; white-space: nowrap; }
  .kb-sortbar { display: block !important; }
  .kb-sortbar-count { margin-bottom: 10px; }
  .kb-sortrow { width: 100% !important; min-width: 0 !important; }
}
@media (max-width: 640px) {
  .kb-catalog { grid-template-columns: repeat(2, 1fr) !important; gap: 16px 18px !important; }
  .kb-reviews { grid-template-columns: 1fr !important; }
  .kb-hdr { padding: 13px 18px !important; }
  .kb-actions { gap: 12px !important; }
  .kb-cart-btn { padding: 8px 13px 8px 12px !important; }
  .kb-hideicon { display: none !important; }
  .kb-hero-main { padding: 32px 24px !important; }
  .kb-secpad { padding-top: 34px !important; }
  /* Комплект книг: віяло обкладинок не повинно розпирати сторінку на вузьких екранах */
  .kb-starter > div:first-child { max-width: 100% !important; min-width: 0 !important; overflow: hidden !important; }
  .kb-starter > div:first-child > * { width: 52px !important; }
  .kb-starter > div:first-child > * + * { margin-left: -26px !important; }
}

/* Форматований контент (біографія автора, філософія) — редагується в адмінці */
.kb-rich p { margin: 0 0 14px; }
.kb-rich p:last-child { margin-bottom: 0; }
.kb-rich h3 { font-size: 1.12em; font-weight: 700; margin: 18px 0 8px; letter-spacing: -.2px; }
.kb-rich ul, .kb-rich ol { margin: 0 0 14px; padding-left: 22px; }
.kb-rich li { margin: 0 0 6px; }
.kb-rich blockquote { border-left: 3px solid #1e5c45; margin: 0 0 14px; padding: 4px 0 4px 14px; color: #54554b; }
.kb-rich a { color: #1e5c45; text-decoration: underline; }
.kb-rich strong, .kb-rich b { font-weight: 700; }
.kb-rich em, .kb-rich i { font-style: italic; }
