/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* Smart Cart — subtle item count: white circle, black text */
.sc-trigger.sc-open-cart,
.sc-header-icons .sc-trigger.sc-open-cart {
  position: relative;
  overflow: visible;
}

.sc-trigger.sc-open-cart .sc-trigger-count,
.sc-header-icons .sc-trigger.sc-open-cart .sc-trigger-count {
  top: -5px !important;
  inset-inline-start: auto !important;
  inset-inline-end: -7px !important;
  left: auto !important;
  right: -7px !important;
  min-width: 16px !important;
  height: 16px !important;
  padding: 0 4px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-size: 10px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  color: #000 !important;
  background: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  z-index: 5;
  box-sizing: border-box;
}

html[dir="rtl"] .sc-trigger.sc-open-cart .sc-trigger-count,
html[dir="rtl"] .sc-header-icons .sc-trigger.sc-open-cart .sc-trigger-count {
  right: auto !important;
  left: -7px !important;
  inset-inline-end: auto !important;
  inset-inline-start: -7px !important;
}

.sc-trigger.sc-open-cart .sc-trigger-count.sc-trigger-count--empty,
.sc-header-icons .sc-trigger.sc-open-cart .sc-trigger-count.sc-trigger-count--empty,
.sc-trigger.sc-open-cart .sc-trigger-count[data-count="0"],
.sc-header-icons .sc-trigger.sc-open-cart .sc-trigger-count[data-count="0"] {
  display: none !important;
}

/* Header — "כניסה למנויים" text button in place of the person icon
   (inc/sella-header-account.php). Desktop: Smart Cart shortcode; mobile:
   Elementor icon list. */
.sc-header-icons .sc-trigger.sc-account-trigger,
.elementor-icon-list-item > a.sella-account-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 34px;
  margin-inline-end: 6px;
  padding: 0 16px !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  border-radius: 999px;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color 0.25s ease, border-color 0.25s ease;
}

.sc-header-icons .sc-trigger.sc-account-trigger:hover,
.elementor-icon-list-item > a.sella-account-link:hover {
  opacity: 1;
  color: #fff !important;
  border-color: #fff !important;
  background-color: rgba(255, 255, 255, 0.12) !important;
}

.sella-account-label {
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: inherit;
}

.sella-account-label--member,
body.logged-in .sella-account-label--guest {
  display: none;
}

body.logged-in .sella-account-label--member {
  display: inline;
}

@media (max-width: 767px) {
  .sc-header-icons .sc-trigger.sc-account-trigger,
  .elementor-icon-list-item > a.sella-account-link {
    height: 28px;
    margin-inline-end: 0;
    padding: 0 10px !important;
  }

  .sella-account-label {
    font-size: 12px;
  }

  /* The mobile header's icon column was sized for icons: keep the logo, the
     icons, the button and the burger on one line and let that column take the
     room the logo column does not use. Only the header's inner row: the outer
     section holding it also contains the button and must keep its full width. */
  .elementor-inner-section > .elementor-container:has(> .elementor-inner-column a.sella-account-link) {
    flex-wrap: nowrap;
  }

  .elementor-inner-section > .elementor-container:has(> .elementor-inner-column a.sella-account-link) > .elementor-inner-column {
    width: auto !important;
  }

  .elementor-inner-section > .elementor-container:has(> .elementor-inner-column a.sella-account-link) > .elementor-inner-column:not(:has(a.sella-account-link)) {
    flex: 0 0 auto;
  }

  .elementor-inner-section > .elementor-container > .elementor-inner-column:has(a.sella-account-link) {
    flex: 1 1 auto;
    min-width: 0;
  }

  .elementor-inner-column:has(a.sella-account-link) > .elementor-widget-wrap {
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
  }

  .elementor-widget-icon-list:has(a.sella-account-link) {
    flex-shrink: 0;
    margin-inline-start: 8px;
  }

  .elementor-widget-icon-list:has(a.sella-account-link) .elementor-icon-list-items {
    flex-wrap: nowrap;
  }
}

@media (max-width: 360px) {
  .elementor-inner-section > .elementor-container:has(> .elementor-inner-column a.sella-account-link) > .elementor-inner-column:not(:has(a.sella-account-link)) img {
    max-width: 78px;
  }
}

@media (max-width: 380px) {
  .elementor-icon-list-item > a.sella-account-link {
    padding: 0 8px !important;
  }

  .sella-account-label {
    font-size: 11px;
  }

  .elementor-widget-icon-list:has(a.sella-account-link) .elementor-icon-list-item {
    margin-inline: 1px !important;
  }
}

@media (max-width: 340px) {
  .elementor-inner-section > .elementor-container:has(> .elementor-inner-column a.sella-account-link) > .elementor-inner-column:not(:has(a.sella-account-link)) img {
    max-width: 56px;
  }

  .elementor-icon-list-item > a.sella-account-link {
    padding: 0 8px !important;
  }

  .sella-account-label {
    font-size: 11px;
  }

  .elementor-widget-icon-list:has(a.sella-account-link) .elementor-icon-list-item {
    margin-inline: 1px !important;
  }
}

/* Homepage books slider — add-to-cart button in static cards */
.static-book-card .book-action-area {
  display: flex !important;
  justify-content: center;
  margin-top: 10px;
}

/* The homepage Elementor page CSS (post-2.css) hides the button inside this
   widget with: .elementor-2 .elementor-element.elementor-element-58cdf7d
   .book-card-item .book-add-to-cart-btn { display:none !important }.
   Win with higher specificity; the pill design comes from the existing
   .book-card-item .book-add-to-cart-btn rules. */
.elementor-2 .elementor-element.elementor-element-58cdf7d .book-card-item .book-action-area .book-add-to-cart-btn,
.static-book-card .book-action-area .book-add-to-cart-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
}

/* Fallback design if the shortcode is used outside the homepage */
.static-book-card .book-action-area .book-add-to-cart-btn {
  min-width: 140px;
  padding: 10px 24px;
  border: 1.7px solid #746fed;
  border-radius: 50px;
  color: #746fed;
  background-color: transparent;
  font-size: 18px;
  font-weight: 600;
  line-height: 20px;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
  transition: background-color 0.3s, color 0.3s, transform 0.2s;
}

.static-book-card .book-action-area .book-add-to-cart-btn:hover {
  background-color: #746fed;
  color: #fff;
}

/* Mobile: lighter, smaller titles, prices and buttons on every book card
   (home page, shop, categories). */
@media (max-width: 767px) {
  .elementor-2 .elementor-element.elementor-element-58cdf7d .static-book-card .book-title,
  .book-card-item .book-title {
    margin: 8px 0 2px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.3;
  }

  .elementor-2 .elementor-element.elementor-element-58cdf7d .static-book-card .book-author,
  .book-card-item .book-author {
    margin-bottom: 4px;
    font-size: 12px !important;
    letter-spacing: 0 !important;
    opacity: 0.85;
  }

  .elementor-2 .elementor-element.elementor-element-58cdf7d .book-card-item .book-action-area .book-add-to-cart-btn,
  .book-card-item .book-action-area .book-add-to-cart-btn,
  .book-card-item .book-add-to-cart-btn {
    min-width: 0 !important;
    padding: 5px 12px !important;
    border-width: 1px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 16px !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .book-card-item .book-action-area {
    align-items: center;
    height: auto;
    min-height: 0;
    margin-top: 6px;
  }

  .book-card-item .book-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0 6px;
    margin-bottom: 6px;
    font-size: 14px !important;
  }

  .book-card-item .book-price del,
  .book-card-item .book-price del * {
    font-size: 11px !important;
  }
}

/* Mobile header — cart count badge on the existing sibolet cart icon */
.sibolet-header-icons .elementor-icon-list-item {
  position: relative;
}

.sella-mobile-cart-count {
  position: absolute;
  top: -5px;
  inset-inline-start: -7px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  color: #000;
  background: #fff;
  border-radius: 999px;
  box-sizing: border-box;
  z-index: 5;
  pointer-events: none;
}

/* Smart Cart — hide loading overlay / empty flash while the drawer is closing */
.sc-root.sella-sc-closing .sc-drawer__loader {
  display: none !important;
}

.sc-root.sella-sc-closing .sc-drawer.is-loading .sc-drawer__inner,
.sc-root.sella-sc-closing .sc-drawer__inner {
  visibility: visible !important;
}

/* Smart Cart — place the account link in the free-shipping announcement row. */
.sc-drawer__inner {
  position: relative;
}

.sc-announcement {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 140px;
  box-sizing: border-box;
  color: #8a8a8a;
  background: #fafafa;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}

.sc-topbar {
  position: absolute !important;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 48px;
  padding: 0 18px;
  pointer-events: none;
  box-sizing: border-box;
}

.sc-login-link {
  margin-inline-start: auto;
  color: #171717;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: auto;
  transition: opacity 0.3s ease;
}

.sc-login-link:hover {
  opacity: 0.65;
}

/* Checkout — spacious mobile layout and book thumbnails in order review. */
.woocommerce-checkout .woocommerce {
  color: #171717;
}

.woocommerce-checkout form.checkout {
  max-width: 1120px;
  margin-inline: auto;
}

.woocommerce-checkout form.checkout {
  --sella-field-height: 60px;
  --sella-field-bg: #f7f7f9;
  --sella-field-border: #e7e7ee;
  --sella-field-border-hover: #cfcfdb;
  --sella-field-label: #7b7f8a;
  --sella-field-text: #171717;
  --sella-accent: #746fed;
  --sella-accent-ring: rgba(116, 111, 237, 0.16);
  --sella-error: #d7263d;
}

.woocommerce-checkout #order_review_heading {
  margin: 0 0 14px;
  font-size: 25px;
  font-weight: 800;
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #ship-to-different-address {
  margin-top: 0;
  margin-bottom: 22px;
  font-size: 25px;
  font-weight: 800;
}

/* Checkout fields — two-column grid instead of floats. */
.woocommerce-checkout form.checkout #customer_details .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout form.checkout #customer_details .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout form.checkout #customer_details .woocommerce-additional-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 12px;
}

.woocommerce-checkout form.checkout #customer_details .form-row {
  position: relative;
  grid-column: 1 / -1;
  float: none;
  width: auto;
  margin: 0;
  padding: 0;
}

.woocommerce-checkout form.checkout #customer_details .form-row-first,
.woocommerce-checkout form.checkout #customer_details .form-row-last {
  grid-column: auto;
}

.woocommerce-checkout form.checkout #customer_details .form-row .woocommerce-input-wrapper {
  display: block;
  margin: 0;
}

.woocommerce-checkout form.checkout #customer_details .form-row label {
  display: block;
  margin: 0 0 6px;
  color: var(--sella-field-label);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
}

.woocommerce-checkout form.checkout #customer_details .form-row .required {
  color: var(--sella-error);
  font-weight: 600;
  text-decoration: none;
}

.woocommerce-checkout form.checkout #customer_details .form-row .optional {
  font-size: 0.88em;
  font-weight: 400;
  opacity: 0.8;
}

.woocommerce-checkout form.checkout #customer_details .form-row .input-text,
.woocommerce-checkout form.checkout #customer_details .form-row select,
.woocommerce-checkout form.checkout .e-coupon-box .form-row .input-text {
  display: block;
  width: 100%;
  min-height: var(--sella-field-height);
  margin: 0;
  padding: 8px 16px;
  border: 1.5px solid var(--sella-field-border);
  border-radius: 14px;
  color: var(--sella-field-text);
  background-color: var(--sella-field-bg);
  box-shadow: none;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  box-sizing: border-box;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce-checkout form.checkout #customer_details .form-row select {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b7f8a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left 16px center;
  background-size: 18px;
  padding-inline-end: 44px;
}

/* Beats the Elementor page CSS, which sizes selects with an extra class. */
.woocommerce-checkout form.checkout #customer_details .form-row .woocommerce-input-wrapper select:not([multiple]) {
  font-size: 16px;
}

html:not([dir="rtl"]) .woocommerce-checkout form.checkout #customer_details .form-row select {
  background-position: right 16px center;
}

.woocommerce-checkout form.checkout #customer_details .form-row .country_to_state--single {
  cursor: default;
  background-image: none;
  padding-inline-end: 16px;
}

.woocommerce-checkout form.checkout #customer_details .form-row textarea.input-text {
  min-height: 116px;
  padding-block: 12px;
  resize: vertical;
}

.woocommerce-checkout form.checkout #customer_details .form-row .input-text:hover,
.woocommerce-checkout form.checkout #customer_details .form-row select:hover,
.woocommerce-checkout form.checkout .e-coupon-box .form-row .input-text:hover {
  border-color: var(--sella-field-border-hover);
}

.woocommerce-checkout form.checkout #customer_details .form-row .input-text:focus,
.woocommerce-checkout form.checkout #customer_details .form-row select:focus,
.woocommerce-checkout form.checkout .e-coupon-box .form-row .input-text:focus {
  border-color: var(--sella-accent);
  background-color: #fff;
  box-shadow: 0 0 0 4px var(--sella-accent-ring);
}

.woocommerce-checkout form.checkout #customer_details .form-row.woocommerce-invalid .input-text,
.woocommerce-checkout form.checkout #customer_details .form-row.woocommerce-invalid select {
  border-color: var(--sella-error);
  background-color: #fff;
}

.woocommerce-checkout form.checkout #customer_details .form-row.woocommerce-invalid .input-text:focus,
.woocommerce-checkout form.checkout #customer_details .form-row.woocommerce-invalid select:focus {
  box-shadow: 0 0 0 4px rgba(215, 38, 61, 0.12);
}

.woocommerce-checkout form.checkout #customer_details .checkout-inline-error-message,
.woocommerce-checkout form.checkout #customer_details .lets-address__hint {
  margin: 6px 4px 0;
  font-size: 13px;
  line-height: 1.35;
}

.woocommerce-checkout form.checkout #customer_details .checkout-inline-error-message {
  color: var(--sella-error);
}

/* Floating labels — enabled by assets/js/sella-checkout-fields.js, which adds
   .sella-float-field to each row and toggles .is-filled from the field value. */
.woocommerce-checkout form.checkout #customer_details .sella-float-field label {
  position: absolute;
  top: calc(var(--sella-field-height) / 2);
  inset-inline: 17px;
  z-index: 1;
  margin: 0;
  overflow: hidden;
  font-size: 16px;
  line-height: 1.2;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
  transform: translateY(-50%);
  transition: top 0.2s ease, font-size 0.2s ease, color 0.2s ease;
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field .input-text,
.woocommerce-checkout form.checkout #customer_details .sella-float-field select {
  padding-top: 25px;
  padding-bottom: 7px;
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field textarea.input-text {
  padding-top: 32px;
  padding-bottom: 10px;
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field--textarea label {
  top: 30px;
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field .input-text::placeholder {
  color: transparent;
  transition: color 0.2s ease;
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field .input-text:focus::placeholder {
  color: #a4a8b1;
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field.is-filled label,
.woocommerce-checkout form.checkout #customer_details .sella-float-field:focus-within label {
  top: 17px;
  font-size: 12.5px;
  font-weight: 600;
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field--textarea.is-filled label,
.woocommerce-checkout form.checkout #customer_details .sella-float-field--textarea:focus-within label {
  top: 17px;
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field:focus-within label {
  color: var(--sella-accent);
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field.woocommerce-invalid label {
  color: var(--sella-error);
}

.woocommerce-checkout form.checkout #customer_details .sella-float-field input:-webkit-autofill {
  animation: sella-autofill-start 0.01s;
}

@keyframes sella-autofill-start {
  from { opacity: 1; }
  to { opacity: 1; }
}

.woocommerce-checkout form.checkout .e-coupon-box .form-row .input-text::placeholder {
  color: var(--sella-field-label);
}

.woocommerce-checkout form.checkout #terms {
  width: 18px;
  height: 18px;
  margin-inline-end: 6px;
  vertical-align: middle;
  accent-color: var(--sella-accent);
}

/* Marketing opt-in (inc/sella-customer-fields.php) — checkout and Account details. */
.woocommerce-checkout form.checkout #customer_details .sella-marketing-consent label.checkbox,
.woocommerce-account form.edit-account .sella-marketing-consent label.checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  color: #171717;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  cursor: pointer;
}

.woocommerce-checkout form.checkout #customer_details .sella-marketing-consent .input-checkbox,
.woocommerce-account form.edit-account .sella-marketing-consent .input-checkbox {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: var(--sella-accent, #746fed);
}

/* An opt-in is optional by nature; the "(optional)" tag only adds noise. */
.woocommerce-checkout form.checkout #customer_details .sella-marketing-consent .optional {
  display: none;
}

/* Checkout panels are flat like the cart page — no drop shadows anywhere. */
.woocommerce-checkout [class*="e-checkout__order_review"],
.woocommerce-checkout .e-coupon-box,
.woocommerce-checkout .woocommerce-checkout-payment,
.woocommerce-checkout .col-1,
.woocommerce-checkout .col-2,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-terms-and-conditions,
.woocommerce-checkout #payment {
  box-shadow: none !important;
}

.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table {
  width: 100%;
  border: 0;
  border-collapse: collapse;
}

/* Column headers: quiet, with a single rule under them, as on the cart. */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
  padding: 0 0 12px;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
  color: #6b6b6b;
  font-size: 14px;
  font-weight: 500;
  text-align: start;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total {
  text-align: end;
}

@media (min-width: 768px) {
  .woocommerce-checkout #order_review .woocommerce-checkout-review-order-table .product-total {
    width: 1%;
    white-space: nowrap;
  }
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td {
  padding: 16px 0;
  border: 0;
  border-bottom: 1px solid #f0f0f0;
  vertical-align: middle;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-total {
  font-size: 16px;
  font-weight: 600;
  text-align: end;
  white-space: nowrap;
}

/* The quantity rides on the cover as a badge instead of sitting under the name. */
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity {
  display: none;
}

.sella-checkout-product {
  display: flex;
  align-items: center;
  gap: 14px;
}

.sella-checkout-product-media {
  position: relative;
  flex: 0 0 auto;
  line-height: 0;
}

.sella-checkout-product-image {
  display: block;
  width: 56px;
  height: 72px;
  border-radius: 6px;
  background: #f7f7f9;
  box-shadow: none;
  object-fit: contain;
}

.sella-checkout-product-qty {
  position: absolute;
  inset-block-start: -8px;
  inset-inline-end: -8px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 11px;
  color: #fff;
  background: #171717;
  font-size: 13px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  box-sizing: border-box;
}

.sella-checkout-product-name {
  min-width: 0;
  color: #171717;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  padding: 13px 0;
  border: 0;
  border-top: 1px solid #f0f0f0;
  font-size: 16px;
  font-weight: 500;
  text-align: start;
  vertical-align: middle;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  text-align: end;
  white-space: nowrap;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:first-child th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:first-child td {
  border-top: 0;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
  padding-top: 16px;
  border-top: 1px solid #e5e5e5;
  font-size: 19px;
  font-weight: 800;
}

/* Shipping: the heading sits on its own line with the methods stacked under it.
   assets/js/sella-checkout-fields.js rebuilds the row into one cell spanning both
   columns on every refresh of the review table; until it runs, the cell wraps
   instead of overflowing. The ids in these selectors outrank Elementor's widget CSS,
   which also caps this cell at 70px: harmless in the table, but not once the cell is
   a block on mobile. */
.woocommerce-checkout #order_review tr.woocommerce-shipping-totals td {
  text-align: start;
  white-space: normal;
  max-width: none; /* Elementor caps this cell at 70px */
}

.woocommerce-checkout #order_review .sella-shipping-heading {
  display: block;
  margin-bottom: 10px;
}

.woocommerce-checkout #order_review #shipping_method {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce-checkout #order_review #shipping_method li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  white-space: normal;
}

.woocommerce-checkout #order_review #shipping_method .shipping_method[type="radio"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: #746fed;
  cursor: pointer;
}

.woocommerce-checkout #order_review #shipping_method li label {
  display: block;
  margin: 0;
  color: #171717;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  white-space: normal;
  cursor: pointer;
}

.woocommerce-checkout #order_review #shipping_method li input:checked + label {
  font-weight: 600;
}

/* Mobile order summary toggle — built by assets/js/sella-checkout-fields.js. */
.sella-order-toggle {
  display: none;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 15px 0;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
  color: #171717;
  background: none;
  font: inherit;
  text-align: start;
  cursor: pointer;
}

.sella-order-toggle__label {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 17px;
  font-weight: 600;
}

.sella-order-toggle__chevron {
  width: 9px;
  height: 9px;
  margin-block-start: -4px;
  /* Physical sides: a logical pair would mirror into a sideways chevron in RTL. */
  border-right: 2px solid #171717;
  border-bottom: 2px solid #171717;
  transform: rotate(45deg);
  transition: transform 0.3s ease, margin 0.3s ease;
}

.sella-order-toggle[aria-expanded="true"] .sella-order-toggle__chevron {
  margin-block-start: 3px;
  transform: rotate(-135deg);
}

.sella-order-toggle__total {
  font-size: 18px;
  font-weight: 800;
}

.woocommerce-checkout #payment {
  margin-top: 24px;
  padding: 18px;
  border-radius: 0;
  background: #f8f8f8;
}

.woocommerce-checkout #place_order {
  width: 100%;
  min-height: 52px;
  margin-top: 18px;
  border: 1.7px solid #746fed;
  border-radius: 50px;
  color: #fff;
  background: #746fed;
  font-size: 18px;
  font-weight: 700;
}

@media (max-width: 767px) {
  body.woocommerce-checkout {
    background: #fafafa;
  }

  .woocommerce-checkout .woocommerce {
    padding: 0 14px 28px;
  }

  /* Elementor sets 35px section padding; tighten it so half-width fields keep their labels. */
  body.woocommerce-checkout .elementor-element.elementor-widget-woocommerce-checkout-page {
    --sections-padding: 24px 16px;
  }

  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout .woocommerce-billing-fields h3 {
    font-size: 22px;
  }

  .woocommerce-checkout form.checkout #customer_details .sella-float-field label {
    font-size: 15px;
  }

  .woocommerce-checkout form.checkout #customer_details .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout form.checkout #customer_details .woocommerce-shipping-fields__field-wrapper,
  .woocommerce-checkout form.checkout #customer_details .woocommerce-additional-fields__field-wrapper {
    gap: 12px 10px;
  }

  /* Required fields carry an asterisk, so drop "(optional)" to fit half-width rows. */
  .woocommerce-checkout form.checkout #customer_details .sella-float-field .optional {
    display: none;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tbody,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tr,
  .woocommerce-checkout .woocommerce-checkout-review-order-table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table thead {
    display: none;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart_item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tbody td,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart_item td {
    padding: 0;
    border: 0;
  }

  /* Order summary collapses behind the toggle, Shopify style. */
  .woocommerce-checkout .e-checkout__order_review #order_review_heading {
    display: none;
  }

  .sella-order-toggle {
    display: flex;
  }

  .woocommerce-checkout .e-checkout__order_review #order_review {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
  }

  .woocommerce-checkout .e-checkout__order_review.is-open #order_review {
    max-height: 1600px;
    margin-top: 6px;
    opacity: 1;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart_item .product-name {
    flex: 1 1 auto;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart_item .product-total {
    flex: 0 0 auto;
    width: auto;
    text-align: end;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart_item + tr.cart_item {
    border-top: 1px solid #ededed;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tr:not(.cart_item) {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-top: 1px solid #ededed;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tr:not(.cart_item) th,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tr:not(.cart_item) td {
    width: auto;
    padding: 0;
    border: 0;
  }

  .sella-checkout-product {
    gap: 12px;
  }

  .sella-checkout-product-image {
    width: 50px;
    height: 66px;
  }

  .sella-checkout-product-name {
    font-size: 15px;
  }

  .woocommerce-checkout #payment {
    padding: 14px;
  }

  /* The rebuilt shipping row has a single cell: let it take the whole row. */
  .woocommerce-checkout #order_review tr.sella-shipping-row td {
    flex: 1 1 100%;
  }
}

@media (max-width: 767px) {
  .sc-announcement {
    min-height: 46px;
    padding: 0 112px;
    font-size: 14px;
  }

  .sc-topbar {
    height: 46px;
    padding: 0 12px;
  }

  .sc-login-link {
    font-size: 14px;
  }
}

/* Product pages — persistent add-to-cart action for mobile and desktop. */
.woocommerce-notices-wrapper {
  position: fixed;
  inset-inline-end: 20px;
  inset-block-end: 20px;
  z-index: 2100;
  width: min(390px, calc(100vw - 40px));
  pointer-events: none;
}

.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-height: 58px;
  margin: 0 0 10px;
  padding: 17px 46px 17px 48px;
  overflow: hidden;
  border: 1px solid #d8d8d8;
  border-inline-start: 4px solid #2d8a5a;
  border-radius: 4px;
  color: #171717;
  background: #fff;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.14);
  font-size: 15px;
  line-height: 1.45;
  pointer-events: auto;
  transform: translateX(120%);
  animation: sella-notification-in 0.45s ease forwards;
  box-sizing: border-box;
}

.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before,
.woocommerce-notices-wrapper .woocommerce-error::before {
  position: absolute;
  inset-inline-start: 17px;
  inset-block-start: 17px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: #fff;
  background: #2d8a5a;
  content: '✓';
  font-size: 13px;
  font-weight: 700;
}

.woocommerce-notices-wrapper .woocommerce-info {
  border-inline-start-color: #746fed;
}

.woocommerce-notices-wrapper .woocommerce-info::before {
  background: #746fed;
  content: 'i';
  font-family: Georgia, serif;
}

.woocommerce-notices-wrapper .woocommerce-error {
  border-inline-start-color: #d7263d;
}

.woocommerce-notices-wrapper .woocommerce-error::before {
  background: #d7263d;
  content: '!';
}

.woocommerce-notices-wrapper .woocommerce-message a,
.woocommerce-notices-wrapper .woocommerce-info a,
.woocommerce-notices-wrapper .woocommerce-error a {
  display: inline-block;
  margin-inline-start: 8px;
  color: #746fed;
  font-weight: 700;
  text-decoration: underline;
}

.sella-notification-close {
  position: absolute;
  inset-inline-end: 12px;
  inset-block-start: 10px;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  color: #777;
  background: transparent;
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
}

.sella-notification-close:hover {
  color: #171717;
}

.woocommerce-notices-wrapper .is-dismissing {
  animation: sella-notification-out 0.35s ease forwards;
}

@keyframes sella-notification-in {
  from { opacity: 0; transform: translateX(120%); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes sella-notification-out {
  from { opacity: 1; transform: translateX(0); }
  to { opacity: 0; transform: translateX(120%); }
}

@media (max-width: 767px) {
  .woocommerce-notices-wrapper {
    inset-inline-end: 12px;
    inset-block-end: 12px;
    width: calc(100vw - 24px);
  }

  .woocommerce-notices-wrapper .woocommerce-message,
  .woocommerce-notices-wrapper .woocommerce-info,
  .woocommerce-notices-wrapper .woocommerce-error {
    padding: 15px 40px 15px 44px;
    font-size: 14px;
  }
}

.sella-sticky-product-cart {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  padding: 12px 20px;
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid #e7e7e7;
  box-shadow: 0 -5px 20px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(8px);
  opacity: 0;
  pointer-events: none;
  transform: translateY(100%);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.sella-sticky-product-cart.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.sella-sticky-product-cart__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(1100px, 100%);
  margin: 0 auto;
}

.sella-sticky-product-cart__details {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  min-width: 0;
}

.sella-sticky-product-cart__title {
  overflow: hidden;
  color: #171717;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.sella-sticky-product-cart__price {
  color: #171717;
  font-size: 16px;
  line-height: 1.25;
  white-space: nowrap;
}

.sella-sticky-product-cart__button {
  flex: 0 0 auto;
  min-width: 190px;
  padding: 0 48px;
  height: 46px;
  border: 0;
  border-radius: 50px;
  color: var(--sella-sticky-color, #fff);
  background: var(--sella-sticky-bg, #746fed);
  font: inherit;
  font-size: 18px;
  font-weight: 600;
  line-height: 20px;
  cursor: pointer;
  transition: background-color 0.3s, color 0.3s, opacity 0.3s;
}

.sella-sticky-product-cart__button:hover:not(:disabled) {
  opacity: 0.88;
}

.sella-sticky-product-cart__button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

body.sella-has-sticky-product-cart {
  padding-bottom: 78px;
}

@media (max-width: 767px) {
  .sella-sticky-product-cart {
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  }

  .sella-sticky-product-cart__inner {
    gap: 10px;
  }

  /* Just the button, across the middle: the name and price are on the page. */
  .sella-sticky-product-cart__details {
    display: none;
  }

  /* Room on both sides for the accessibility button in the corner, so it never covers ours. */
  .sella-sticky-product-cart__inner {
    justify-content: center;
    padding-inline: 46px;
    box-sizing: border-box;
  }

  .sella-sticky-product-cart__button {
    flex: 1 1 auto;
    min-width: 0;
    height: 44px;
    padding: 0 16px;
    font-size: 17px;
  }

  body.sella-has-sticky-product-cart {
    padding-bottom: 68px;
  }
}

.sc-root.sella-sc-closing .sc-empty {
  display: none !important;
}

/* Shop filter bar — the archive search field opens the site search overlay
   (assets/js/sella-shop-search.js), so it behaves like a button. */
#sibolet-book-search.sella-shop-search-trigger {
  cursor: pointer;
}

#sibolet-book-search.sella-shop-search-trigger:focus,
#sibolet-book-search.sella-shop-search-trigger:focus-visible {
  outline: 2px solid rgba(116, 111, 237, 0.35);
  outline-offset: 2px;
}

/* Docked shop search — the Smart Cart panel opens inside the filter bar
   (assets/js/sella-shop-search.js moves the whole #sc-search root in here). */
.sibolet-archive-filter-bar.sella-search-host {
  position: relative;
}

body.sella-search-docked-open.sc-search-open {
  overflow: visible;
}

#sc-search.sella-search-docked {
  position: absolute;
  inset: auto;
  inset-block-start: calc(100% + 10px);
  inset-inline-start: 0;
  width: 100%;
  height: auto;
}

/* Docked, the panel is a dropdown: no dimming, and no second search field —
   the shopper types in the archive field and the script forwards the term. */
#sc-search.sella-search-docked .sc-search__backdrop,
#sc-search.sella-search-docked .sc-search__bar {
  display: none;
}

#sc-search.sella-search-docked .sc-search__panel {
  width: 100%;
  max-width: none;
  max-height: min(72vh, 620px);
  margin: 0;
}

@media (max-width: 767px) {
  #sc-search.sella-search-docked .sc-search__panel {
    max-height: min(68vh, 520px);
  }
}

/* Sticky product bar — price under the title, sale price included. */
.sella-sticky-product-cart__price {
  display: flex;
  align-items: baseline;
  gap: 7px;
}

.sella-sticky-product-cart__price del {
  color: #8a8a8a;
  font-size: 15px;
  text-decoration: line-through;
}

.sella-sticky-product-cart__price ins {
  color: #171717;
  background: none;
  font-weight: 700;
  text-decoration: none;
}

.sella-sticky-product-cart__price .screen-reader-text {
  display: none;
}

/* Media hub (/media/) — on mobile the filter buttons stay on one row and scroll
   sideways. The page's Elementor CSS sets these rules with !important. */
@media (max-width: 767px) {
  /* A wrapping flex line is as wide as its widest item, so the one-row strip
     would widen the whole page. This column never wraps anyway. */
  .sm-hub-v2-wrapper.mode-archive .sm-hub-v2-container > .sm-hub-v2-header {
    flex-wrap: nowrap !important;
  }

  /* The padding keeps the button shadows from being clipped by the scroll box;
     the negative margin cancels it so the layout does not move. */
  .sm-hub-v2-header .sm-hub-v2-filters {
    flex-wrap: nowrap !important;
    margin: -8px -10px -14px;
    padding: 8px 10px 14px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .sm-hub-v2-header .sm-hub-v2-filters::-webkit-scrollbar {
    display: none;
  }

  .sm-hub-v2-header .sm-hub-v2-filter-btn {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* Article page — "more articles" sidebar (Unlimited Elements post grid in the
   single-post template): every excerpt takes exactly three lines, cut with an
   ellipsis when longer, so the cards line up. */
.elementor-element-df417ca .uc_post_text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  line-height: 1.5;
  min-height: 4.5em;
  max-height: 4.5em;
}

/*
 * Product page buttons: wider and lower, as one calm bar under the price.
 */
.single-product .single-page-custom-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 280px;
  height: 46px;
  padding: 0 48px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  box-sizing: border-box;
}

/*
 * Mobile product page: the book, its name, the price and the button on the
 * first screen, without scrolling.
 */
@media (max-width: 767px) {
  .single-product .single-book-3d-container {
    max-width: 150px !important;
    margin-inline: auto;
  }

  .single-product .elementor-widget-woocommerce-product-title .product_title {
    font-size: 22px !important;
    line-height: 1.2;
  }

  .single-product .elementor-widget-woocommerce-product-title + .elementor-widget-text-editor {
    margin-block: 10px !important;
  }

  .single-product .elementor-widget-woocommerce-product-price .price {
    margin: 0 !important;
  }

  .single-product .sibolet-custom-btn-wrapper {
    width: 100%;
  }

  .single-product .single-page-custom-btn {
    width: 100%;
    min-width: 0;
    height: 44px;
    font-size: 17px !important;
  }
}

/* Footer on mobile: compact and centred, one short block per topic. */
@media (max-width: 767px) {
  .elementor-location-footer .elementor-element-8e7ea74 {
    padding: 0 16px 16px !important;
  }

  .elementor-location-footer .elementor-element-8e7ea74 .elementor-widget-wrap {
    padding: 0 !important;
    margin: 0 !important;
  }

  .elementor-location-footer .elementor-element-8e7ea74 > .elementor-container > .elementor-column + .elementor-column {
    margin-top: 18px;
  }

  .elementor-location-footer .elementor-element-8e7ea74 .elementor-widget {
    margin-bottom: 8px !important;
  }

  .elementor-location-footer .elementor-element-8e7ea74 .elementor-widget:not(.elementor-widget-form) {
    text-align: center !important;
  }

  .elementor-location-footer .elementor-element-0c70169 {
    margin-top: 24px !important;
  }

  .elementor-location-footer .elementor-element-0c70169 img {
    width: auto !important;
    max-height: 44px;
  }

  .elementor-location-footer .elementor-element-dad40d4,
  .elementor-location-footer .elementor-element-dad40d4 * {
    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  .elementor-location-footer .elementor-element-4ebb67a .elementor-icon-list-items {
    justify-content: center;
  }

  .elementor-location-footer .elementor-element-4ebb67a svg,
  .elementor-location-footer .elementor-element-4ebb67a i {
    width: 16px !important;
    height: 16px !important;
    font-size: 16px !important;
  }

  .elementor-location-footer .elementor-element-e0325cf,
  .elementor-location-footer .elementor-element-e0325cf *,
  .elementor-location-footer .elementor-element-75d7787,
  .elementor-location-footer .elementor-element-75d7787 * {
    font-size: 15px !important;
    line-height: 1.3 !important;
    margin-bottom: 4px !important;
  }

  /* The info links side by side. */
  .elementor-location-footer .elementor-element-b49e12e .elementor-nav-menu--main .elementor-nav-menu {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center;
    gap: 20px;
  }

  .elementor-location-footer .elementor-element-b49e12e .elementor-item {
    padding: 2px 0 !important;
    font-size: 14px !important;
  }

  .elementor-location-footer .elementor-element-213176f,
  .elementor-location-footer .elementor-element-213176f * {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .elementor-location-footer .elementor-element-c8af07b {
    width: 100%;
    max-width: 380px;
    margin-inline: auto !important;
  }

  /* The send button's column as wide as the button, the address field the rest,
     so the field and button read as one centred bar. */
  .elementor-location-footer .elementor-element-c8af07b .elementor-form-fields-wrapper {
    flex-wrap: nowrap;
  }

  .elementor-location-footer .elementor-element-c8af07b .elementor-field-type-email {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
  }

  .elementor-location-footer .elementor-element-c8af07b .elementor-field-type-submit {
    flex: 0 0 auto !important;
    width: auto !important;
  }

  .elementor-location-footer .elementor-element-d36dd5d {
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
  }

  .elementor-location-footer .elementor-element-d36dd5d .elementor-widget-wrap {
    padding: 0 !important;
  }

  .elementor-location-footer .elementor-element-6f3782e,
  .elementor-location-footer .elementor-element-6f3782e * {
    font-size: 11px !important;
    line-height: 1.6 !important;
  }

  .elementor-location-footer .elementor-element-38e4120 img,
  .elementor-location-footer .elementor-element-38e4120 svg {
    max-height: 18px;
    width: auto;
  }
}

/* "האם הספר מתאים לי?" under a book's description (inc/sella-ai-consult.php). */
.sella-ai {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.sella-ai__label {
  color: #000;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
}

.sella-ai__row {
  display: flex;
  gap: 8px;
}

.sella-ai__dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid #e7e7ee;
  border-radius: 50%;
  color: #171717;
  background: #fff;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.sella-ai__dot:hover,
.sella-ai__dot:focus-visible {
  border-color: #746fed;
  transform: translateY(-1px);
}

.sella-ai__dot svg {
  display: block;
  width: 17px;
  height: 17px;
}

@media (max-width: 767px) {
  .sella-ai {
    justify-content: center;
  }

  /* The same size as "רוצים לשתף?" beside it. */
  .sella-ai__label {
    font-size: 16px;
  }
}

/* The mobile menu's account item: the menu's own type, not the header button's. */
.sella-menu-account .sella-account-label {
  font: inherit;
  line-height: inherit;
}

@media (max-width: 768px) {
  .sibolet-hero-blur-container {
    height: 250px !important;
    z-index: -1;
  }
}

/* Cart drawer recommendations: two lines for every title, so prices and
   buttons line up across the row, and a coloured add button. */
.sc-root .sc-rec-card__name {
  min-height: calc(2 * 1.35em);
}

.sc-root .sc-rec-card__link {
  flex: 1 1 auto;
}

.sc-root .sc-rec-card__add {
  min-height: 36px;
  border: 0 !important;
  border-radius: 999px;
  color: #fff !important;
  background: #746fed !important;
  font-weight: 600;
  transition: background-color 0.2s ease;
}

.sc-root .sc-rec-card__add:hover,
.sc-root .sc-rec-card__add:focus-visible {
  background: #5f5ae0 !important;
}

/*
 * Product page without the blurred cover banner: the card starts under the
 * fixed header instead of being pulled up over the banner, with less padding.
 */
.single-product .elementor-element-9f4aaa8 {
  display: none !important;
}

.single-product .elementor-element-dfd90f0 {
  padding-top: 12px !important;
  padding-bottom: 40px !important;
}

.single-product .elementor-element-dfd90f0 > .elementor-container > .elementor-column > .elementor-widget-wrap {
  margin-top: 0 !important;
}

.single-product .elementor-element-a13db06 {
  padding-top: 32px !important;
  padding-bottom: 32px !important;
}

@media (max-width: 767px) {
  .single-product .elementor-element-dfd90f0 {
    padding-top: 0 !important;
    padding-bottom: 24px !important;
  }

  .single-product .elementor-element-a13db06 {
    padding-top: 16px !important;
    padding-bottom: 20px !important;
  }
}

/* Book cards on desktop (home page, shop, categories, related books): the
   name, author, price and button close together under the cover. */
@media (min-width: 768px) {
  .book-card-item .book-3d-container {
    margin-bottom: 10px !important;
  }

  .elementor-2 .elementor-element.elementor-element-58cdf7d .static-book-card .book-title,
  .book-card-item .book-title {
    min-height: 2.5em;
    margin: 6px 0 2px !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.25;
  }

  .elementor-2 .elementor-element.elementor-element-58cdf7d .static-book-card .book-author,
  .book-card-item .book-author {
    margin-bottom: 4px;
    font-size: 14px !important;
    letter-spacing: 0 !important;
  }

  .book-card-item .book-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0 6px;
    margin-bottom: 8px;
    font-size: 17px !important;
  }

  .book-card-item .book-price del,
  .book-card-item .book-price del * {
    font-size: 13px !important;
  }

  .book-card-item .book-action-area {
    align-items: center;
    height: auto;
    min-height: 0;
    margin-top: 0;
  }

  .elementor-2 .elementor-element.elementor-element-58cdf7d .book-card-item .book-action-area .book-add-to-cart-btn,
  .book-card-item .book-action-area .book-add-to-cart-btn,
  .book-card-item .book-add-to-cart-btn {
    min-height: 0 !important;
    height: auto !important;
    padding: 7px 22px !important;
    font-size: 15px !important;
    line-height: 18px !important;
  }

  .books-grid-container {
    row-gap: 28px !important;
  }
}

/* Cart drawer quantity: the − and + centred in their buttons. */
.sc-root .sc-qty__btn {
  display: flex;
  align-items: center;
  justify-content: center;
}
