
/* =========================================================
   ABV Public Frontend Foundation v1
   cíl: sjednocení zákaznického webu + mobilní stabilita
   ========================================================= */

html,
body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

body.abv-public-v1 {
  background:
    radial-gradient(circle at 8% 4%, rgba(255,255,255,.72) 0, rgba(255,255,255,0) 34%),
    radial-gradient(circle at 92% 8%, rgba(213,187,143,.18) 0, rgba(213,187,143,0) 30%),
    linear-gradient(180deg, #f8f3ea 0%, #f4ecdf 46%, #fbf8f2 100%) !important;
  color: #1f2f46 !important;
}

body.abv-public-v1 *,
body.abv-public-v1 *::before,
body.abv-public-v1 *::after {
  box-sizing: border-box !important;
}

body.abv-public-v1 img,
body.abv-public-v1 picture,
body.abv-public-v1 video,
body.abv-public-v1 canvas,
body.abv-public-v1 svg {
  max-width: 100%;
}

body.abv-public-v1 .site-main,
body.abv-public-v1 .page-content,
body.abv-public-v1 .elementor-location-header,
body.abv-public-v1 .elementor-location-footer {
  max-width: 100vw !important;
  overflow-x: clip !important;
}

/* Header – desktop jemný, mobile kompaktnější */
body.abv-public-v1 header {
  z-index: 20;
}

body.abv-public-v1 header .elementor-widget-image img,
body.abv-public-v1 header img[src*="Bile_Vrany_Logo"] {
  height: auto !important;
  object-fit: contain !important;
}

body.abv-public-v1 .hfe-search-form__input::placeholder {
  color: rgba(31,47,70,.58) !important;
}

@media (max-width: 767px) {
  body.abv-public-v1 header .elementor-widget-image img,
  body.abv-public-v1 header img[src*="Bile_Vrany_Logo"] {
    max-width: 138px !important;
  }

  body.abv-public-v1 header .elementor-element {
    max-width: 100% !important;
  }

  body.abv-public-v1 .hfe-search-form__container {
    max-width: 220px !important;
  }

  body.abv-public-v1 .hfe-search-form__input {
    min-height: 42px !important;
    font-size: 13px !important;
  }
}

/* Společný shell */
body.abv-public-v1 .abv-wrap,
body.abv-public-v1 .abv34d-wrap,
body.abv-public-v1 .abv-search-safe {
  width: min(1240px, calc(100vw - 34px)) !important;
  max-width: calc(100vw - 34px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Inner sections share their parent width; the outer wrap owns page gutters. */
body.abv-public-v1 .abv-shell{width:100%!important;max-width:1240px!important;margin-left:auto!important;margin-right:auto!important}

body.abv-public-v1 .abv-card,
body.abv-public-v1 .abv34d-card,
body.abv-public-v1 .abv34d-cat-card,
body.abv-public-v1 .abv-search-safe-card,
body.abv-public-v1 .abv-author-card {
  border: 1px solid rgba(194,170,132,.44) !important;
  background:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.9) 0, rgba(255,255,255,0) 36%),
    linear-gradient(180deg, rgba(255,253,248,.98), rgba(249,242,231,.94)) !important;
  box-shadow:
    0 18px 42px rgba(31,47,70,.08),
    inset 0 1px 0 rgba(255,255,255,.9) !important;
}

/* Novinky + Doporučujeme */
body.abv-public-v1 .abv34d-products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)) !important;
  gap: 22px !important;
  align-items: stretch !important;
}

body.abv-public-v1 .abv34d-card {
  min-width: 0 !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  border-radius: 24px !important;
  overflow: hidden !important;
}

body.abv-public-v1 .abv34d-cover {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 250px !important;
  padding: 12px !important;
  background:
    radial-gradient(circle at 50% 20%, rgba(255,255,255,.86), rgba(255,255,255,0) 52%),
    linear-gradient(180deg, #efe3d1, #f8f2e8) !important;
}

body.abv-public-v1 .abv34d-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 13px !important;
  filter: saturate(.98) contrast(1.02) !important;
}

body.abv-public-v1 .abv34d-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  gap: 8px !important;
  min-height: 0 !important;
}

body.abv-public-v1 .abv34d-title-price h2,
body.abv-public-v1 .abv-product-card h2,
body.abv-public-v1 .abv-search-safe-name {
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.abv-public-v1 .abv34d-title-price {
  min-height: 82px !important;
}

body.abv-public-v1 .abv34d-price,
body.abv-public-v1 .abv-price,
body.abv-public-v1 .abv-search-safe-price {
  color: #14243a !important;
  font-weight: 900 !important;
}

body.abv-public-v1 .abv34d-actions,
body.abv-public-v1 .abv-actions {
  margin-top: auto !important;
  display: flex !important;
  gap: 8px !important;
}

body.abv-public-v1 .abv34d-btn,
body.abv-public-v1 .abv-btn,
body.abv-public-v1 .button {
  border-radius: 999px !important;
  min-height: 38px !important;
}

/* Kategorie */
body.abv-public-v1 .abv34d-cats {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
  gap: 18px !important;
}

body.abv-public-v1 .abv34d-cat-card {
  border-radius: 22px !important;
  min-height: 148px !important;
}

/* interní doporučujeme kategorie nepatří do veřejného výpisu kategorií */
body.abv-public-v1 .abv34d-cats a[href*="/kategorie-produktu/doporucujeme/"] {
  display: none !important;
}

/* Autoři */
body.abv-public-v1 .abv-authors-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
  gap: 18px !important;
}

body.abv-public-v1 .abv-author-card {
  border-radius: 22px !important;
  min-width: 0 !important;
}

/* Katalog knih */
body.abv-public-v1 .abv-catalog-layout {
  display: grid !important;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: start !important;
  max-width: 100% !important;
}

body.abv-public-v1 .abv-catalog-sidebar,
body.abv-public-v1 .abv-catalog-content {
  min-width: 0 !important;
  max-width: 100% !important;
}

body.abv-public-v1 .abv-products-grid,
body.abv-public-v1 .abv-products-grid--catalog {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(188px, 1fr)) !important;
  gap: 18px !important;
  align-items: stretch !important;
}

body.abv-public-v1 .abv-product-card {
  min-width: 0 !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  border-radius: 22px !important;
}

body.abv-public-v1 .abv-product-card__image {
  height: 230px !important;
  min-height: 230px !important;
  max-height: 230px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body.abv-public-v1 .abv-product-card__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

/* Search */
body.abv-public-v1 .abv-search-safe-layout {
  display: grid !important;
  grid-template-columns: minmax(220px, 290px) minmax(0, 1fr) !important;
  gap: 24px !important;
  max-width: 100% !important;
}

body.abv-public-v1 .abv-search-safe-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)) !important;
  gap: 18px !important;
}

/* Detail knihy */
body.abv-public-v1.single-product .abv-wrap--single {
  width: min(1240px, calc(100vw - 34px)) !important;
  max-width: calc(100vw - 34px) !important;
  padding-top: 28px !important;
}

body.abv-public-v1.single-product .abv-book-detail-grid,
body.abv-public-v1.single-product .abv-book-detail-grid.abv-single-has-props {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.02fr) minmax(0, .78fr) !important;
  gap: 20px !important;
}

body.abv-public-v1.single-product .abv-book-detail-grid > *,
body.abv-public-v1.single-product .abv-book-summary,
body.abv-public-v1.single-product .abv-book-props-card,
body.abv-public-v1.single-product .abv-book-main-image {
  min-width: 0 !important;
  max-width: 100% !important;
}

body.abv-public-v1.single-product .abv-book-main-image {
  min-height: 420px !important;
  height: auto !important;
  aspect-ratio: 3 / 4 !important;
  padding: 20px !important;
}

body.abv-public-v1.single-product .abv-book-main-image img {
  opacity: 1 !important;
  visibility: visible !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 540px !important;
  object-fit: contain !important;
}

/* Woo/account/cart */
body.abv-public-v1 .abv-woo-wrap,
body.abv-public-v1 .woocommerce {
  max-width: 100% !important;
  overflow-x: auto !important;
}

/* Mobile */
@media (max-width: 980px) {
  body.abv-public-v1 .abv-catalog-layout,
  body.abv-public-v1 .abv-search-safe-layout,
  body.abv-public-v1.single-product .abv-book-detail-grid,
  body.abv-public-v1.single-product .abv-book-detail-grid.abv-single-has-props {
    grid-template-columns: 1fr !important;
  }

  body.abv-public-v1 .abv-catalog-sidebar,
  body.abv-public-v1 .abv-search-safe-sidebar {
    position: static !important;
    width: 100% !important;
  }

  body.abv-public-v1.single-product .abv-book-main-image {
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: auto !important;
    padding: 16px !important;
  }

  body.abv-public-v1.single-product .abv-book-main-image img {
    max-height: 420px !important;
  }
}

@media (max-width: 767px) {
  body.abv-public-v1 .abv-wrap,
    body.abv-public-v1 .abv34d-wrap,
  body.abv-public-v1 .abv-search-safe,
  body.abv-public-v1.single-product .abv-wrap--single {
    width: min(100%, calc(100vw - 24px)) !important;
    max-width: calc(100vw - 24px) !important;
  }

  body.abv-public-v1 .abv34d-products,
  body.abv-public-v1 .abv-products-grid,
  body.abv-public-v1 .abv-products-grid--catalog,
  body.abv-public-v1 .abv-search-safe-grid,
  body.abv-public-v1 .abv-authors-grid,
  body.abv-public-v1 .abv34d-cats {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  body.abv-public-v1 .abv34d-cover,
  body.abv-public-v1 .abv-product-card__image {
    height: 300px !important;
    min-height: 300px !important;
    max-height: 300px !important;
  }

  body.abv-public-v1 .abv34d-title-price {
    min-height: auto !important;
  }

  body.abv-public-v1 .abv34d-actions,
  body.abv-public-v1 .abv-actions {
    flex-direction: column !important;
  }

  body.abv-public-v1.single-product .abv-book-summary h1 {
    font-size: clamp(30px, 9vw, 40px) !important;
    line-height: 1.02 !important;
  }
}
