/* ILB global styles (loaded by mu-plugins/ilb-global-css.php, after Elementor). */

/* Author grids: two columns on phones (under 768px).
   Applies to the Authors page grid and any other loop of author profile cards (cards that link to /our-authors/).
   The grid uses the full column width on phones (lined up with the search box) and the cards keep their style,
   with slightly tighter padding so the photos stay a useful size at 375px. */
@media (max-width: 767px) {
  .e-collection-loop:has(.e-collection-loop-layout > [data-element_type="e-collection-loop-item"] a[href*="/our-authors/"]),
  .e-collection-loop-layout:has(> [data-element_type="e-collection-loop-item"] a[href*="/our-authors/"]),
  .elementor-55 [data-id="7a7791e4"],
  .elementor-55 [data-id="23e28492"] {
    padding-inline: 0 !important;
  }
  .e-collection-loop-layout:has(> [data-element_type="e-collection-loop-item"] a[href*="/our-authors/"]),
  .elementor-55 [data-id="23e28492"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .elementor .e-collection-loop-layout:has(> [data-element_type="e-collection-loop-item"] a[href*="/our-authors/"]) > [data-element_type="e-collection-loop-item"].e-con,
  .elementor-55 [data-id="23e28492"] > [data-id="64a2e75"] {
    padding: 14px !important;
  }
}

/* Header cart: same circle as the account icon (cream outline, cream icon, cream fill + ink icon on hover), 40px with a
   44px tap area, desktop and phones. Count badge (set by ilb-site.js): Sunflower with Ink DM Sans 700, top-right edge. */
body .elementor-location-header [data-id="558fa380"], body .elementor-location-header [data-id="6b4f5778"], body .elementor-location-header [data-id="44a4060f"] { box-sizing: border-box; width: 40px !important; height: 40px !important; min-width: 40px !important; min-height: 40px !important; }
body .elementor-location-header [data-id="6b4f5778"] { background-color: transparent !important; border: 2px solid #F7F1E8 !important; overflow: visible !important; }
body .elementor-location-header [data-id="6b4f5778"]::before { background-color: #F7F1E8 !important; }
body .elementor-location-header [data-id="6b4f5778"]:hover, body .elementor-location-header [data-id="6b4f5778"]:focus-visible { background-color: #F7F1E8 !important; }
body .elementor-location-header [data-id="6b4f5778"]:hover::before, body .elementor-location-header [data-id="6b4f5778"]:focus-visible::before { background-color: #1C1210 !important; }
body .elementor-location-header [data-id="558fa380"]::after, body .elementor-location-header [data-id="6b4f5778"]::after, body .elementor-location-header [data-id="44a4060f"]::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; }
.ilb-cart-badge { position: absolute; top: -6px; right: -7px; z-index: 1; box-sizing: border-box; min-width: 18px; height: 18px; padding: 0 5px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: #F6A623; color: #1C1210; font-family: "DM Sans", sans-serif; font-size: 11px; font-weight: 700; line-height: 1; letter-spacing: 0; pointer-events: none; }
.ilb-cart-badge:empty { display: none; }

/* Book page: wishlist heart beside Add to cart / the store button (48px, outlined, like the brand's pill buttons). */
.elementor-610 [data-id="70f6ab10"] { align-items: center; }
body button.ilb-act.ilb-act--page { width: 48px; height: 48px; min-height: 48px; flex: 0 0 48px; background: transparent; border: 2px solid #1C1210; box-shadow: none; }
body button.ilb-act.ilb-act--page:hover, body button.ilb-act.ilb-act--page:focus-visible { background: #F26E21; border-color: #F26E21; }
.ilb-act--page svg { width: 22px; height: 22px; }

/* Wishlist page: groups by where to buy. */
.ilb-wl__group { margin: 0 0 48px; }
.ilb-wl__group + .ilb-wl__group { padding-top: 32px; border-top: 1px solid #E8DDCB; }
.ilb-wl__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 0 0 20px; }
.ilb-wl__group-title { margin: 0; font-family: "Fraunces", serif; font-size: 28px; font-weight: 500; line-height: 1.2; color: #1C1210; }
.ilb-wl__group-n { font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; color: #4A3A34; }
.ilb-wl__group-sub { margin: 4px 0 0; font-size: 15px; color: #4A3A34; }
body button.ilb-wl__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px; border: 0; border-radius: 999px; background: #F26E21; color: #1C1210 !important; font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; cursor: pointer; }
body button.ilb-wl__btn:hover { background: #1C1210; color: #F7F1E8 !important; }
body button.ilb-wl__btn:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
body button.ilb-wl__btn:disabled { opacity: .7; cursor: progress; }
.ilb-wl__status { margin: -8px 0 20px; font-size: 15px; font-weight: 700; color: #1C1210; }
.ilb-wl__status:empty { display: none; }
.ilb-wl__status a { color: #1C1210 !important; text-decoration: underline; }
body a.ilb-wl__store { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 10px; padding: 0 20px; border: 2px solid #1C1210; border-radius: 999px; background: transparent; color: #1C1210 !important; font-family: "DM Sans", sans-serif; font-size: 15px; font-weight: 700; text-decoration: none; }
body a.ilb-wl__store::after { content: "\2197"; margin-left: 6px; }
body a.ilb-wl__store:hover { background: #F26E21; border-color: #F26E21; }
body a.ilb-wl__store:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
.ilb-wl__note { margin: 20px 0 0; font-size: 14px; color: #4A3A34; }
@media (max-width: 767px) {
  .ilb-wl__group-title { font-size: 24px; }
  .ilb-wl__head { align-items: stretch; }
  .ilb-wl__head > div { flex: 1 1 100%; }
  body button.ilb-wl__btn { width: 100%; }
  body a.ilb-wl__store { width: 100%; padding: 0 12px; font-size: 14px; }
}

/* Price on hold (I Like Being Me, until Sam & Rita confirm its Canadian price). */
.ilb-price-soon { font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; color: #4A3A34; }
.elementor-610 .ilb-has-heart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.elementor-610 .ilb-has-heart .single_add_to_cart_button { margin: 0 !important; }
/* On-hold price: no format choice or cart button, just the heart. */
body.ilb-price-hold .elementor-610 [data-id="a7c2e101"] { display: none !important; }

/* Maple leaf: only on books by M.A.C.C.A. authors (class ilb-macca from mu-plugin ilb-macca.php, keyed on the author). */
.e-loop-item.elementor-634:not(.ilb-macca) [data-id="bdg2634a"] { display: none !important; }
body.single-product:not(.ilb-macca) .elementor-610 [data-id="bdg2610a"] { display: none !important; }
/* Author profile: the "M.A.C.C.A. author" label only on M.A.C.C.A. authors. */
body.single-authors:not(.ilb-author-macca) .elementor-749 [data-id="368680b5"] { display: none !important; }

/* Community forms (mu-plugin ilb-community.php): Toastmasters "I'm interested" + "We Remember When". */
.ilb-cf { display: flex; flex-direction: column; gap: 20px; width: 100%; max-width: 760px; margin: 0; padding: 24px; box-sizing: border-box; background: #FFFFFF; border: 1px solid #E8DDCB; border-radius: 16px; font-family: "DM Sans", sans-serif; color: #1C1210; }
.ilb-cf__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ilb-cf__field { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
.ilb-cf__field label, .ilb-cf__field legend { font-size: 15px; font-weight: 700; color: #1C1210; padding: 0; }
.ilb-cf__field label span, .ilb-cf__small { font-weight: 400; color: #4A3A34; }
.ilb-cf input[type=text], .ilb-cf input[type=email], .ilb-cf input[type=tel], .ilb-cf textarea { box-sizing: border-box; width: 100%; min-height: 48px; padding: 12px 14px; font-family: "DM Sans", sans-serif; font-size: 16px; color: #1C1210; background: #FFFFFF; border: 2px solid #1C1210; border-radius: 8px; box-shadow: none; }
.ilb-cf textarea { min-height: 140px; resize: vertical; }
.ilb-cf input:focus, .ilb-cf textarea:focus, .ilb-cf select:focus { outline: 3px solid #F6A623; outline-offset: 1px; border-color: #1C1210; }
.ilb-cf__radios { flex-direction: row; flex-wrap: wrap; gap: 8px 24px; }
.ilb-cf__radios legend { width: 100%; margin-bottom: 8px; }
.ilb-cf__radios label { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 400; cursor: pointer; }
.ilb-cf__radios input { width: 20px; height: 20px; margin: 0; accent-color: #F26E21; }
.ilb-cf__actions { margin: 0; }
body button.ilb-cf__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 32px; border: 0; border-radius: 999px; background: #F26E21; color: #1C1210 !important; font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; cursor: pointer; }
body button.ilb-cf__btn:hover { background: #1C1210; color: #F7F1E8 !important; }
body button.ilb-cf__btn:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
.ilb-cf__small { margin: -8px 0 0; font-size: 14px; }
.ilb-cf__notice { margin: 0; padding: 14px 16px; border-radius: 8px; font-weight: 700; font-size: 15px; background: #F7F1E8; border-left: 4px solid #F6A623; color: #1C1210; }
.ilb-cf__notice--error { border-left-color: #F26E21; }
.ilb-cf__trap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ilb-rw__empty { margin: 0; font-size: 17px; color: #4A3A34; }
.ilb-rw__form-title { margin: 0; font-family: "Fraunces", serif; font-size: 24px; font-weight: 500; color: #1C1210; }
@media (max-width: 767px) {
  .ilb-cf { padding: 20px 16px; }
  .ilb-cf__row { grid-template-columns: 1fr; }
  body button.ilb-cf__btn { width: 100%; }
}


/* Added-to-cart panel (ilb-site.js; replaces WooCommerce's "added to your cart" bar). White spec panel: 16px radius,
   #E8DDCB border, 24px padding, soft shadow; from the right on desktop, from the bottom (full width) on phones. */
a.added_to_cart.wc-forward { display: none !important; }
.ilb-cp { position: fixed; inset: 0; z-index: 99999; }
.ilb-cp[hidden] { display: none; }
.ilb-cp__backdrop { position: absolute; inset: 0; background: rgba(28, 18, 16, .4); opacity: 0; transition: opacity .25s ease; }
.ilb-cp__panel { position: absolute; top: 16px; right: 16px; width: 400px; max-width: calc(100vw - 32px); max-height: calc(100vh - 32px); overflow-y: auto; box-sizing: border-box; padding: 24px; background: #FFFFFF; border: 1px solid #E8DDCB; border-radius: 16px; box-shadow: 0 12px 40px rgba(28, 18, 16, .16); font-family: "DM Sans", sans-serif; color: #1C1210; transform: translateX(calc(100% + 24px)); transition: transform .28s ease; outline: none; }
html.ilb-cp-open .ilb-cp__backdrop { opacity: 1; }
html.ilb-cp-open .ilb-cp__panel { transform: none; }
.ilb-cp__head { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; }
.ilb-cp__tick { flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; background: #F6A623; display: inline-flex; align-items: center; justify-content: center; }
.ilb-cp__tick svg { width: 16px; height: 16px; fill: none; stroke: #1C1210; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.ilb-cp__title { flex: 1 1 auto; margin: 0; font-family: "Fraunces", serif; font-size: 22px; font-weight: 500; line-height: 1.25; color: #1C1210; }
body button.ilb-cp__x { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; margin: -8px -10px -8px 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: 50%; color: #1C1210; cursor: pointer; box-shadow: none; }
body button.ilb-cp__x:hover { background: #F7F1E8; color: #1C1210; }
body button.ilb-cp__x:focus-visible { outline: 3px solid #F6A623; outline-offset: 0; }
.ilb-cp__x svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.ilb-cp__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; max-height: 300px; overflow-y: auto; }
.ilb-cp__item { display: flex; gap: 14px; align-items: flex-start; margin: 0; }
.ilb-cp__thumb { flex: 0 0 64px; width: 64px; height: 88px; object-fit: cover; border-radius: 6px; background: #F7F1E8; display: block; }
.ilb-cp__info { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ilb-cp__name { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ilb-cp__meta { margin: 0; font-size: 14px; color: #4A3A34; }
.ilb-cp__price { margin: 0; font-size: 15px; font-weight: 700; color: #1C1210; }
.ilb-cp__note { margin: 16px 0 0; padding: 12px 14px; border-radius: 8px; background: #F7F1E8; font-size: 14px; line-height: 1.5; color: #1C1210; }
.ilb-cp__note[hidden] { display: none; }
.ilb-cp__sum { display: flex; justify-content: space-between; gap: 12px; margin: 20px 0 0; padding: 16px 0 0; border-top: 1px solid #E8DDCB; font-size: 15px; color: #4A3A34; }
.ilb-cp__sum strong { color: #1C1210; font-size: 17px; }
.ilb-cp__btns { display: flex; flex-direction: column; gap: 12px; margin: 20px 0 0; }
body .ilb-cp__btns a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px; border-radius: 999px; font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; text-decoration: none; box-sizing: border-box; transition: background-color .2s ease, color .2s ease; }
body a.ilb-cp__checkout { background: #F26E21; color: #1C1210 !important; border: 2px solid #F26E21; }
body a.ilb-cp__checkout:hover { background: #1C1210; border-color: #1C1210; color: #F7F1E8 !important; }
body a.ilb-cp__view { background: transparent; color: #1C1210 !important; border: 2px solid #1C1210; }
body a.ilb-cp__view:hover { background: #E9DCC8; }
body .ilb-cp__btns a:focus-visible, body button.ilb-cp__keep:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
body button.ilb-cp__keep { display: block; width: 100%; min-height: 44px; margin: 8px 0 0; padding: 0; background: transparent; border: 0; box-shadow: none; color: #1C1210; font-family: "DM Sans", sans-serif; font-size: 15px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
body button.ilb-cp__keep:hover { background: transparent; color: #F26E21; }
@media (max-width: 767px) {
  .ilb-cp__panel { top: auto; right: 0; bottom: 0; left: 0; width: 100%; max-width: 100%; max-height: 85vh; padding: 24px 16px calc(16px + env(safe-area-inset-bottom)); border-radius: 16px 16px 0 0; border-bottom: 0; transform: translateY(100%); }
  .ilb-cp__title { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) { .ilb-cp__panel, .ilb-cp__backdrop { transition: none; } }

/* Cart: "Back to shop" (text link above the cart; outline pill on the empty cart). */
.ilb-cart-back { margin: 0 0 12px; }
body a.ilb-back-shop { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #1C1210 !important; font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; text-decoration: none; }
body a.ilb-back-shop span { text-decoration: underline; text-underline-offset: 3px; }
body a.ilb-back-shop::before { content: "\2190"; display: inline-block; }
body a.ilb-back-shop:hover { color: #F26E21 !important; }
body a.ilb-back-shop:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; border-radius: 4px; }
body a.ilb-back-shop.ilb-back-shop--pill { justify-content: center; min-height: 48px; margin-top: 8px; padding: 0 28px; border: 2px solid #1C1210; border-radius: 999px; text-decoration: none !important; }
body a.ilb-back-shop.ilb-back-shop--pill::before { content: none; }
body a.ilb-back-shop.ilb-back-shop--pill:hover { background: #E9DCC8; color: #1C1210 !important; }

/* Community "We Remember When" (item 15): share button, count, 3/2/1 grid, featured card, Read more, Show more. */
.ilb-rw { display: flex; flex-direction: column; gap: 24px; width: 100%; }
.ilb-rw__share-wrap, .ilb-rw__more-wrap { margin: 0; }
body button.ilb-rw__share { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 32px; border: 0; border-radius: 999px; background: #F26E21; color: #1C1210 !important; font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; cursor: pointer; box-shadow: none; transition: background-color .2s ease, color .2s ease; }
body button.ilb-rw__share:hover { background: #1C1210; color: #F7F1E8 !important; }
body button.ilb-rw__share:focus-visible, body button.ilb-rw__more:focus-visible, body button.ilb-rw__toggle:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
.ilb-rw__form[hidden] { display: none !important; }
.ilb-rw__count { margin: 8px 0 0; font-family: "DM Sans", sans-serif; font-size: 15px; font-weight: 700; color: #4A3A34; }
.ilb-rw__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.ilb-rw__card { margin: 0; padding: 24px; background: #FFFFFF; border: 1px solid #E8DDCB; border-radius: 18px; display: flex; flex-direction: column; gap: 16px; box-sizing: border-box; outline: none; }
.ilb-rw__card::before { content: "\201C"; font-family: "Fraunces", serif; font-size: 48px; line-height: .6; color: #F6A623; }
.ilb-rw__text { font-family: "DM Sans", sans-serif; font-size: 17px; line-height: 1.6; color: #1C1210; }
.ilb-rw__text p { margin: 0 0 12px; }
.ilb-rw__text p:last-child { margin-bottom: 0; }
.ilb-rw__text.is-clamped { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden; max-height: calc(1.6em * 6); }
body button.ilb-rw__toggle { align-self: flex-start; min-height: 44px; margin: -8px 0 0; padding: 0; background: transparent; border: 0; box-shadow: none; color: #1C1210; font-family: "DM Sans", sans-serif; font-size: 15px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
body button.ilb-rw__toggle:hover { background: transparent; color: #F26E21; }
.ilb-rw__by { margin: auto 0 0; font-size: 15px; color: #4A3A34; display: flex; flex-wrap: wrap; gap: 4px 12px; }
.ilb-rw__by strong { color: #1C1210; }
.ilb-rw__card--featured { grid-column: 1 / -1; padding: 32px; }
.ilb-rw__card--featured .ilb-rw__text { font-family: "Fraunces", serif; font-style: italic; font-size: 22px; line-height: 1.5; }
.ilb-rw__flag { order: -1; margin: 0; font-family: "DM Sans", sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #4A3A34; }
body button.ilb-rw__more { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 32px; border: 2px solid #1C1210; border-radius: 999px; background: transparent; color: #1C1210 !important; font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; cursor: pointer; box-shadow: none; }
body button.ilb-rw__more:hover { background: #E9DCC8; color: #1C1210 !important; }
body button.ilb-rw__more:disabled { opacity: .7; cursor: progress; }
@media (max-width: 1023px) { .ilb-rw__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .ilb-rw__list { grid-template-columns: 1fr; }
  body button.ilb-rw__share, body button.ilb-rw__more { width: 100%; }
  .ilb-rw__card--featured { padding: 24px; }
  .ilb-rw__card--featured .ilb-rw__text { font-size: 19px; }
}

/* Header nav: Community dropdown (Podcast), same look and behaviour as the Shop dropdown (kit CSS). */
.elementor-location-header [data-id="4c53f7f3"] { width: auto !important; flex: 0 0 auto; }
.elementor-location-header [data-id="28329019"] { width: max-content !important; min-width: 190px; top: 100%; left: -8px; z-index: 60; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s ease, transform .18s ease, visibility .18s; border: 1px solid rgba(247,241,232,.18); box-shadow: 0 14px 32px rgba(0,0,0,.45); }
.elementor-location-header [data-id="4c53f7f3"]:hover > [data-id="28329019"], .elementor-location-header [data-id="4c53f7f3"]:focus-within > [data-id="28329019"] { opacity: 1; visibility: visible; transform: none; }
.elementor-location-header [data-id="63dbfae4"]::after { content: ""; width: 6px; height: 6px; margin-left: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s ease; }
.elementor-location-header [data-id="4c53f7f3"]:hover [data-id="63dbfae4"]::after, .elementor-location-header [data-id="4c53f7f3"]:focus-within [data-id="63dbfae4"]::after { transform: translateY(1px) rotate(225deg); }
@media (prefers-reduced-motion: reduce) { .elementor-location-header [data-id="28329019"], .elementor-location-header [data-id="63dbfae4"]::after { transition: none; } }


/* Item 16: section anchors clear the sticky header (104px); smooth scroll for same-page links. */
#story, #events, #podcast, #news, #we-remember-when { scroll-margin-top: 104px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
/* Ebony Toastmasters: "Our story" section holds only PLACEHOLDER blocks (Sam's history + photos); hidden until filled in. */
.elementor-2279 [data-id="62ef5e18"] { display: none !important; }
/* Header nav: current page highlighted in the Community dropdown, as in Shop's. */
.elementor-location-header [data-id="28329019"] a[aria-current="page"] { color: #2A1712 !important; background-color: transparent; }
body .elementor-location-header [data-id="28329019"] > :has(a[aria-current="page"]) { background-color: #F6A623 !important; color: #2A1712 !important; }

/* Item 17: SpeakUP! Spotify player in "Listen now" (Community). Fallback pill if the player can't load. */
.ilb-spotify { width: 100%; }
.ilb-spotify__frame { display: block; width: 100%; height: 232px; border: 0; border-radius: 16px; background: transparent; }
.ilb-spotify__fallback { display: none !important; }
.ilb-spotify.is-fallback .ilb-spotify__frame { display: none; }
body .ilb-spotify.is-fallback .ilb-spotify__fallback { display: inline-flex !important; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px; border: 2px solid #F7F1E8; border-radius: 999px; background: transparent; color: #F7F1E8 !important; font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
body .ilb-spotify.is-fallback .ilb-spotify__fallback::after { content: "\2197"; margin-left: 8px; }
body .ilb-spotify.is-fallback .ilb-spotify__fallback:hover { background: #F7F1E8; color: #1C1210 !important; }
body .ilb-spotify .ilb-spotify__fallback:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
@media (max-width: 767px) { .ilb-spotify__frame { height: 152px; } }

/* Item 18. Desktop nav: the caret is its own button (ilb-site.js), so the word opens the page and the caret opens the menu. */
.elementor-location-header .ilb-has-caret [data-id="7fbb76fa"]::after, .elementor-location-header .ilb-has-caret [data-id="63dbfae4"]::after { display: none !important; }
.elementor-location-header .ilb-has-caret [data-id="7fbb76fa"], .elementor-location-header .ilb-has-caret [data-id="63dbfae4"] { padding-inline-end: 2px !important; }
body .elementor-location-header button.ilb-nav-caret { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 44px; min-height: 44px; margin: 0 4px 0 0; padding: 0; background: transparent; border: 0; border-radius: 6px; box-shadow: none; color: #F7F1E8; cursor: pointer; }
body .elementor-location-header button.ilb-nav-caret::before { content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s ease; }
body .elementor-location-header button.ilb-nav-caret::after { content: ""; position: absolute; inset: 0 -10px; }
body .elementor-location-header button.ilb-nav-caret:hover, body .elementor-location-header .ilb-has-caret:hover button.ilb-nav-caret { background: transparent; color: #F6A623; }
body .elementor-location-header button.ilb-nav-caret:focus-visible { outline: 3px solid #F6A623; outline-offset: 0; }
.elementor-location-header .ilb-has-caret:hover button.ilb-nav-caret::before, .elementor-location-header .ilb-has-caret:focus-within button.ilb-nav-caret::before, .elementor-location-header .ilb-has-caret.is-open button.ilb-nav-caret::before { transform: translateY(1px) rotate(225deg); }
.elementor-location-header [data-id="3fa14540"].is-open > [data-id="16bd5e90"], .elementor-location-header [data-id="4c53f7f3"].is-open > [data-id="28329019"] { opacity: 1; visibility: visible; transform: none; }
@media (prefers-reduced-motion: reduce) { body .elementor-location-header button.ilb-nav-caret::before { transition: none; } }

/* Phone drawer: Community and Shop rows = link + separate caret button (44px) that shows the indented sub-links. */
.ilb-drawer-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ilb-drawer-row > a { flex: 1 1 auto; }
body .ilb-drawer button.ilb-drawer-caret { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: 50%; box-shadow: none; color: #1C1210; cursor: pointer; }
body .ilb-drawer button.ilb-drawer-caret::before { content: ""; width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform .2s ease; }
body .ilb-drawer button.ilb-drawer-caret[aria-expanded="true"]::before { transform: translateY(3px) rotate(225deg); }
body .ilb-drawer button.ilb-drawer-caret:hover { background: #E9DCC8; color: #1C1210; }
body .ilb-drawer button.ilb-drawer-caret:focus-visible { outline: 3px solid #F6A623; outline-offset: 0; }
.ilb-drawer-subs { list-style: none; margin: 0 0 8px; padding: 0; }
.ilb-drawer-subs[hidden] { display: none; }
.ilb-drawer-subs li.ilb-drawer-sub { border-bottom: 0 !important; }
@media (prefers-reduced-motion: reduce) { body .ilb-drawer button.ilb-drawer-caret::before { transition: none; } }


/* Item 13: partner stores by country (<html data-ilb-country>, set by ilb-site.js). Canada: Amazon.ca only;
   US: Bookshop.org only; anywhere else: both. .ilb-cc-off = hidden by the book-page script. */
/* Extra weight: the kit's pill-button rule (.e-button-base:not(...) x3, display:inline-flex !important) must lose. */
html body .ilb-cc-off.ilb-cc-off.ilb-cc-off.ilb-cc-off { display: none !important; }
html[data-ilb-country="ca"] .ilb-cc-b, html[data-ilb-country="ca"] .ilb-cc-or,
html[data-ilb-country="us"] .ilb-cc-a, html[data-ilb-country="us"] .ilb-cc-or { display: none !important; }
body.ilb-cc-amazon-main .elementor-widget-woocommerce-product-price, body.ilb-cc-amazon-main.single-product .price { display: none !important; }
/* Wishlist: a book with both stores (country unknown) shows both buttons. */
body a.ilb-wl__store + a.ilb-wl__store--alt { margin-left: 8px; }
@media (max-width: 767px) { body a.ilb-wl__store + a.ilb-wl__store--alt { margin-left: 0; } }

/* "Shopping from: Canada / US" switch: header (dark) and phone menu (light). Pills, Sunflower = selected. */
.ilb-cc { display: inline-flex; align-items: center; gap: 4px; font-family: "DM Sans", sans-serif; }
.ilb-cc__label { margin-right: 4px; font-size: 13px; font-weight: 700; white-space: nowrap; }
body button.ilb-cc__opt { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 32px; height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid transparent; background: transparent; box-shadow: none; font-family: "DM Sans", sans-serif; font-size: 13px; font-weight: 700; line-height: 1; cursor: pointer; transition: background-color .2s ease, color .2s ease; }
body button.ilb-cc__opt::after { content: ""; position: absolute; inset: -6px -2px; }
body button.ilb-cc__opt:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
body button.ilb-cc__opt[aria-pressed="true"], body button.ilb-cc__opt[aria-pressed="true"]:hover { background: #F6A623; border-color: #F6A623; color: #1C1210; }
.ilb-cc--header { flex: 0 0 auto; margin-right: 6px; padding: 3px; border: 1px solid rgba(247, 241, 232, .35); border-radius: 999px; }
.ilb-cc--header .ilb-cc__label { color: #F7F1E8; padding-left: 8px; }
.ilb-cc--header button.ilb-cc__opt { color: #F7F1E8; }
body .ilb-cc--header button.ilb-cc__opt:hover { background: rgba(247, 241, 232, .14); color: #F7F1E8; }
.ilb-cc--drawer { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 12px 0; }
.ilb-cc--drawer .ilb-cc__label { flex: 0 0 100%; color: #1C1210; font-size: 15px; margin: 0 0 4px; }
.ilb-cc--drawer button.ilb-cc__opt { min-height: 44px; height: 44px; padding: 0 18px; font-size: 15px; color: #1C1210; border-color: #1C1210; }
body .ilb-cc--drawer button.ilb-cc__opt:hover { background: #E9DCC8; color: #1C1210; }
@media (max-width: 1399px) { .ilb-cc--header .ilb-cc__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }
@media (max-width: 767px) { .ilb-cc--header { display: none !important; } }

/* Item 20. Phone menu: wishlist / account / cart as icon circles, like the header's (40px, 44px tap area), inked for the
   light menu: Ink outline + icon, Ink fill + Cream icon on hover. Cart count = the Sunflower badge (ilb-site.js). */
.ilb-drawer-extra li.ilb-drawer-icons { display: flex; align-items: center; gap: 16px; padding: 14px 0; border-bottom: 1px solid #E8DDCB; }
body a.ilb-dicon { position: relative; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 40px; height: 40px; min-height: 40px; padding: 0; border: 2px solid #1C1210; border-radius: 50%; background: transparent; color: #1C1210; text-decoration: none; font-size: 0; transition: background-color .2s ease; }
body a.ilb-dicon::before { content: ""; width: 20px; height: 20px; background-color: #1C1210; -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; }
body a.ilb-dicon::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; }
body a.ilb-dicon--account::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-6.5 8-6.5s8 2.5 8 6.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-6.5 8-6.5s8 2.5 8 6.5'/%3E%3C/svg%3E"); }
body a.ilb-dicon--cart::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.5'/%3E%3Ccircle cx='18' cy='20' r='1.5'/%3E%3Cpath d='M2 3h3l2.6 12.4a2 2 0 0 0 2 1.6h8.8a2 2 0 0 0 2-1.6L22 7H6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.5'/%3E%3Ccircle cx='18' cy='20' r='1.5'/%3E%3Cpath d='M2 3h3l2.6 12.4a2 2 0 0 0 2 1.6h8.8a2 2 0 0 0 2-1.6L22 7H6'/%3E%3C/svg%3E"); }
body a.ilb-dicon--wishlist::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5s-7.5-4.6-7.5-10.1A4.4 4.4 0 0 1 12 7.6a4.4 4.4 0 0 1 7.5 2.8c0 5.5-7.5 10.1-7.5 10.1z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5s-7.5-4.6-7.5-10.1A4.4 4.4 0 0 1 12 7.6a4.4 4.4 0 0 1 7.5 2.8c0 5.5-7.5 10.1-7.5 10.1z'/%3E%3C/svg%3E"); }
body a.ilb-dicon:hover { background: #1C1210; }
body a.ilb-dicon:hover::before { background-color: #F7F1E8; }
body a.ilb-dicon:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
body a.ilb-dicon .ilb-cart-badge { top: -6px; right: -7px; }
body a.ilb-dicon .ilb-wl-badge { position: absolute; top: -6px; right: -7px; z-index: 1; }


/* ===== Item 21: laptop widths match desktop =====
   Elementor's tablet breakpoint is 1023px (was 1024), so 1024px+ gets the desktop layout.
   Header: full desktop header from 1024px, tightened up to 1279px so it never wraps; the wordmark stays.
   Tablets (768-1023px) can't fit menu + wordmark + switch + icons on one line, so they use the menu button + drawer
   like phones, keeping the wordmark, the Canada/US switch and the three icons in the bar. */
@media (min-width: 1024px) and (max-width: 1279px) {
  .elementor-location-header [data-id="4979dfb5"] { column-gap: 16px !important; }
  .elementor-location-header [data-id="59bf1eaf"] { column-gap: 2px !important; }
  .elementor-location-header [data-id="1202a265"], .elementor-location-header [data-id="4a03f8e2"], .elementor-location-header [data-id="63dbfae4"],
  .elementor-location-header [data-id="7fbb76fa"], .elementor-location-header [data-id="380cded4"] { padding-inline: 7px !important; font-size: 14px !important; }
  .elementor-location-header .ilb-has-caret [data-id="7fbb76fa"], .elementor-location-header .ilb-has-caret [data-id="63dbfae4"] { padding-inline-end: 0 !important; }
  .elementor-location-header [data-id="7f30cbb8"] { column-gap: 6px !important; }
  .elementor-location-header [data-id="390fa500"] { width: 60px !important; max-width: 60px !important; height: auto !important; }
  .elementor-location-header [data-id="7d9468a5"] { column-gap: 10px !important; }
  .elementor-location-header [data-id="5cfc6536"] { font-size: 19px !important; }
  .elementor-location-header [data-id="6c29e3bd"] { font-size: 11px !important; }
  body .ilb-cc--header button.ilb-cc__opt { padding: 0 9px; font-size: 12px; }
  .ilb-cc--header { margin-right: 2px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .elementor-location-header [data-id="59bf1eaf"] { display: none !important; }
  .elementor-location-header [data-id="4979dfb5"] { flex-wrap: nowrap !important; justify-content: space-between !important; column-gap: 16px !important; }
  .elementor-location-header [data-id="7f30cbb8"] { margin-left: auto !important; column-gap: 8px !important; }
  body button.ilb-burger { order: 99; display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; position: relative; width: 40px; height: 40px; min-width: 40px; padding: 0; margin: 0; background: transparent; border: 2px solid #F7F1E8; border-radius: 50%; cursor: pointer; flex: 0 0 auto; }
  body button.ilb-burger::after { content: ""; position: absolute; inset: -2px; }
  body .ilb-burger:hover, body .ilb-burger:focus { background-color: rgba(247,241,232,.14); }
  body .ilb-burger:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
  .ilb-burger span { display: block; width: 16px; height: 2px; border-radius: 2px; background: #F7F1E8; }
  .ilb-drawer-backdrop { display: block; position: fixed; inset: 0; z-index: 99998; background: rgba(28,18,16,.5); opacity: 0; transition: opacity .3s ease; }
  .ilb-drawer { display: flex; flex-direction: column; position: fixed; top: 0; bottom: 0; right: 0; z-index: 99999; width: min(84vw, 380px); padding: 16px 24px 32px; overflow-y: auto; overscroll-behavior: contain; background: #F7F1E8; box-shadow: -8px 0 32px rgba(28,18,16,.25); transform: translateX(100%); transition: transform .3s cubic-bezier(.2,.7,.2,1); }
  .ilb-drawer[hidden], .ilb-drawer-backdrop[hidden] { display: none; }
  .ilb-drawer-open .ilb-drawer { transform: none; }
  .ilb-drawer-open .ilb-drawer-backdrop { opacity: 1; }
  html.ilb-drawer-open, html.ilb-drawer-open body { overflow: hidden; }
  .ilb-drawer-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
  .ilb-drawer-logo img { display: block; width: 56px; height: auto; }
  body .ilb-drawer-close { position: relative; width: 44px; height: 44px; padding: 0; background: transparent; border: 2px solid #1C1210; border-radius: 50%; cursor: pointer; }
  .ilb-drawer-close::before, .ilb-drawer-close::after { content: ""; position: absolute; top: 50%; left: 50%; width: 18px; height: 2px; border-radius: 2px; background: #1C1210; }
  .ilb-drawer-close::before { transform: translate(-50%, -50%) rotate(45deg); }
  .ilb-drawer-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
  .ilb-drawer ul { list-style: none; margin: 0; padding: 0; }
  .ilb-drawer-links li { border-bottom: 1px solid #E8DDCB; }
  body .ilb-drawer-links a { display: flex; align-items: center; min-height: 56px; font-family: "Fraunces", serif; font-size: 26px; line-height: 1.2; color: #1C1210; text-decoration: none; }
  body .ilb-drawer-links a[aria-current="page"] { color: #F26E21; }
  body .ilb-drawer-links a[aria-current="page"]::after { content: ""; width: 8px; height: 8px; margin-left: 12px; border-radius: 50%; background: #F26E21; }
  .ilb-drawer-links li.ilb-drawer-sub { border-bottom: 0; }
  body .ilb-drawer-links li.ilb-drawer-sub a { min-height: 44px; padding-left: 20px; font-size: 20px; }
  .ilb-drawer-extra { margin-top: 24px !important; }
  body .ilb-drawer-extra a:not(.ilb-dicon) { display: flex; align-items: center; min-height: 44px; font-family: "DM Sans", sans-serif; font-size: 16px; font-weight: 700; color: #1C1210; text-decoration: underline; text-underline-offset: 3px; }
  .ilb-drawer a:focus-visible { outline: 3px solid #F6A623; outline-offset: 2px; }
}
@media (min-width: 768px) and (max-width: 1023px) and (prefers-reduced-motion: reduce) { .ilb-drawer, .ilb-drawer-backdrop { transition: none; } }

/* Item 21: book grids step down evenly (shop/category/author-books template 611: 4 columns from 1200px, 3 below). */
@media (min-width: 1024px) and (max-width: 1199px) {
  .elementor-611 [data-id="f1a00010"] .elementor-loop-container { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
/* "You might also like" (4 books): 2 x 2 on tablets instead of 3 + 1. */
@media (min-width: 768px) and (max-width: 1023px) {
  .elementor-610 [data-id="relgrid610"] .elementor-loop-container { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
/* Item 22. Home hero from 1024px: two columns inside the 1400px column, text ~55% (eyebrow, headline, intro, buttons)
   and photo ~45%, 56px gap, bottom-aligned so the photo's bottom edge lines up with the buttons. Below 1024px it stays
   stacked (text, then photo). It used to stack on anything narrower than about 1330px of content because the text
   (580px) and photo (600px) had fixed widths and the row was allowed to wrap. */
.elementor-39 [data-id="57d0ac5a"] { border-radius: 18px !important; }
@media (min-width: 1024px) {
  .elementor-39 [data-id="6fe3b5cb"] { flex-wrap: nowrap !important; align-items: flex-end !important; column-gap: 56px !important; }
  .elementor-39 [data-id="4de581c6"] { flex: 0 0 calc(55% - 28px) !important; max-width: none !important; min-width: 0 !important; margin-bottom: 0 !important; }
  .elementor-39 [data-id="57d0ac5a"] { flex: 0 0 calc(45% - 28px) !important; max-width: none !important; min-width: 0 !important; width: auto !important; height: auto !important; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; border-radius: 18px !important; margin: 0 !important; }
}
/* Headings scale down smoothly, from their desktop size at 1440px to about 78% at 1024px and below (down to
   768px; phones keep their own sizes). Page titles 72px, About's title 60px, section titles 52px. */
@media (min-width: 768px) and (max-width: 1439px) {
  .elementor h1.ilb-h1 { font-size: clamp(56px, calc(3.85vw + 16.6px), 72px) !important; }
  .elementor h1.ilb-h1.e-1e36cf52-609c { font-size: clamp(48px, calc(2.88vw + 18.5px), 60px) !important; }
  .elementor h2.ilb-h2 { font-size: clamp(42px, calc(2.4vw + 17.4px), 52px) !important; }
}
/* About "Our story, since 1994": keep the desktop column proportions (text column was a fixed 680px, which squeezed
   the heading column to 169px at 1024px). */
@media (min-width: 1024px) and (max-width: 1439px) {
  body .elementor-54 [data-id="6475dcfe"] { grid-template-columns: minmax(0, 0.86fr) minmax(0, 1fr) !important; }
}
/* Shop grid on tablets: 2 columns (3 left covers about 120px wide). */
@media (min-width: 768px) and (max-width: 1023px) {
  .elementor-611 [data-id="f1a00010"] .elementor-loop-container { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Gaps check (cart with an item, checkout, my account). Page titles line up with the 16px phone edge (the theme added
   10px of its own); "Cart totals" heading the same size everywhere (was 13px on desktop, 32px on phones/tablets). */
body.woocommerce-cart .page-header .entry-title, body.woocommerce-checkout .page-header .entry-title, body.woocommerce-account .page-header .entry-title { padding-inline: 0 !important; }
body .wp-block-woocommerce-cart-order-summary-heading-block.wc-block-cart__totals-title { font-family: "Fraunces", serif !important; font-size: 24px !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; color: #1C1210 !important; }


/* ===== Spec gaps pass (2026-10-16) ===== */
/* 6. Focus: 3px Sunflower ring with a 3px offset on everything clickable; text fields get the Orange ring (8). */
html body :is(a, button, summary, [role="button"], [role="option"], [tabindex]:not([tabindex="-1"]), input[type=checkbox], input[type=radio], input[type=submit]):focus-visible { outline: 3px solid #F6A623 !important; outline-offset: 3px !important; }
html body :is(input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=hidden]), textarea, select):focus-visible,
html body .select2-container--focus .select2-selection, html body .select2-container--open .select2-selection { outline: 3px solid #F26E21 !important; outline-offset: 1px !important; box-shadow: none !important; }

/* 3. Type: H1 Fraunces 400 / 0.95; H2 line height 1.0; H3 Fraunces 500 / 1.1. */
html body :is(.elementor, .site-main, .page-header, .ilb-wl-page) h1 { font-family: "Fraunces", serif !important; font-weight: 400 !important; line-height: .95 !important; }
html body :is(.elementor, .site-main, .ilb-wl-page) h2:not(.ilb-cp__title) { line-height: 1.0 !important; }
html body :is(.elementor, .site-main) h3 { font-weight: 500 !important; line-height: 1.1 !important; }
/* About's two section titles were 40px (30 on phones); section titles are 52/34. */
body .elementor-54 [data-id="39f01acc"], body .elementor-54 [data-id="14fd1107"] { font-size: 52px !important; }
@media (min-width: 768px) and (max-width: 1439px) { body .elementor-54 [data-id="39f01acc"], body .elementor-54 [data-id="14fd1107"] { font-size: clamp(42px, calc(2.4vw + 17.4px), 52px) !important; } }
@media (max-width: 767px) { body .elementor-54 [data-id="39f01acc"], body .elementor-54 [data-id="14fd1107"] { font-size: 34px !important; } }
/* Long text on book pages and author profiles: body size 17/16px, line height 1.55 (was 18px / 1.75). */
html body :is(.elementor-610, .elementor-749) p:not([class]) { font-size: 17px !important; line-height: 1.55 !important; }
@media (max-width: 767px) { html body :is(.elementor-610, .elementor-749) p:not([class]) { font-size: 16px !important; } }
/* Readable measure: Community timeline text was 76-81em wide on wide screens. */
body .elementor-56 [data-id="e03087f"] p { max-width: 68em; }

/* 4. Panels: the account "Password change" box. */
body.woocommerce-account fieldset { background: #FFFFFF; border: 1px solid #E8DDCB !important; border-radius: 16px; padding: 24px !important; margin: 24px 0 !important; }
body.woocommerce-account fieldset legend { padding: 0 8px; font-family: "Fraunces", serif; font-size: 22px; font-weight: 500; color: #1C1210; }

/* 5. Buttons: centred text both ways; icon buttons round. */
body .elementor-location-header button.ilb-nav-caret { border-radius: 999px !important; }
body .wc-block-cart-item__remove-link { display: inline-flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50% !important; }
body .wc-block-cart-item__remove-link:hover { background: #E9DCC8 !important; }
body .jet-checkboxes-list__button { justify-content: center !important; text-align: center !important; }
body :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper, .woocommerce-MyAccount-content) :is(a.button, .woocommerce-Button, a.wc-forward) { display: inline-flex !important; align-items: center !important; justify-content: center !important; text-align: center !important; min-height: 48px; border-radius: 999px !important; }

/* 7. Links: Ink (author link on book pages, phone on Contact). */
body .elementor-610 a[href*="/book-author/"], body .elementor-610 a[href*="/our-authors/"], body .elementor-57 a[href^="tel:"] { color: #1C1210 !important; }
body .elementor-610 a[href*="/book-author/"]:hover, body .elementor-57 a[href^="tel:"]:hover { text-decoration: underline; }

/* 8. Forms: fields at least 44px; checkboxes 20px Ink border, Orange fill with a white tick; radios to match. */
html body :is(.woocommerce-Input, input.input-text, .woocommerce form .input-text) { min-height: 48px !important; box-sizing: border-box; }
html body input[type=checkbox]:not(.jet-checkboxes-list__input):not(.wc-block-components-checkbox__input),
html body input[type=radio]:not(.wc-block-components-radio-control__input) { -webkit-appearance: none; appearance: none; flex: 0 0 20px; width: 20px !important; height: 20px !important; min-height: 20px; margin: 0 8px 0 0; padding: 0; border: 2px solid #1C1210; background: #FFFFFF; display: inline-grid; place-content: center; vertical-align: -4px; cursor: pointer; box-shadow: none; }
html body input[type=checkbox]:not(.jet-checkboxes-list__input):not(.wc-block-components-checkbox__input) { border-radius: 4px; }
html body input[type=radio]:not(.wc-block-components-radio-control__input) { border-radius: 50%; }
html body input[type=checkbox]:not(.jet-checkboxes-list__input):not(.wc-block-components-checkbox__input):checked { background: #F26E21; border-color: #F26E21; }
html body input[type=checkbox]:not(.jet-checkboxes-list__input):not(.wc-block-components-checkbox__input):checked::before { content: ""; width: 10px; height: 6px; margin-top: -2px; border-left: 2px solid #FFFFFF; border-bottom: 2px solid #FFFFFF; transform: rotate(-45deg); }
html body input[type=radio]:not(.wc-block-components-radio-control__input):checked { border-color: #F26E21; background: #F26E21; }
html body input[type=radio]:not(.wc-block-components-radio-control__input):checked::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #FFFFFF; }
body .wc-block-components-radio-control__input { border: 2px solid #1C1210 !important; }
body .wc-block-components-radio-control__input:checked { border-color: #F26E21 !important; }
body .wc-block-components-radio-control__input:checked::before { background: #F26E21 !important; }
/* Cart table header line (was grey). */
body .wc-block-cart-items, body .wc-block-cart-items th, body .wc-block-cart-items td, body .wc-block-cart-items__header { border-color: #E8DDCB !important; }
/* WooCommerce's select2 dropdowns (account address forms): branded, like the site's own dropdown. */
body .select2-container--default .select2-selection--single { height: 48px; display: flex; align-items: center; border: 2px solid #1C1210; border-radius: 8px; background: #FFFFFF; }
body .select2-container--default .select2-selection--single .select2-selection__rendered { padding-left: 14px; line-height: 44px; color: #1C1210; font-family: "DM Sans", sans-serif; font-size: 16px; }
body .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #4A3A34; }
body .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; right: 10px; }
body .select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: #1C1210 transparent transparent; }
body .select2-dropdown { border: 2px solid #1C1210 !important; border-radius: 12px !important; overflow: hidden; background: #FFFFFF; box-shadow: 0 14px 32px rgba(28,18,16,.22); font-family: "DM Sans", sans-serif; }
body .select2-search--dropdown { padding: 6px; }
body .select2-search--dropdown .select2-search__field { height: 40px; padding: 0 12px; border: 1.5px solid #E8DDCB !important; border-radius: 8px; background: #F7F1E8; color: #1C1210; font-size: 15px; }
body .select2-results__option { padding: 8px 12px; margin: 0 6px; border-radius: 8px; color: #1C1210; font-size: 15px; }
body .select2-container--default .select2-results__option--highlighted[aria-selected], body .select2-container--default .select2-results__option--highlighted { background: #F26E21 !important; color: #1C1210 !important; }
body .select2-container--default .select2-results__option[aria-selected=true], body .select2-container--default .select2-results__option--selected { background: #1C1210 !important; color: #F7F1E8 !important; font-weight: 700; }
body .select2-container--default .select2-results__option[aria-selected=true]::after, body .select2-container--default .select2-results__option--selected::after { content: ""; display: inline-block; width: 10px; height: 6px; margin-left: 10px; border-left: 2px solid #F6A623; border-bottom: 2px solid #F6A623; transform: translateY(-3px) rotate(-45deg); }
/* Checkout country/province: the site's branded dropdown sits on top of WooCommerce's select (ilb-site.js). */
body .wc-blocks-components-select__container { position: relative; }
body .wc-blocks-components-select__container > .ilb-select--wc { position: absolute; inset: 0; z-index: 1; }
body .wc-blocks-components-select__container:has(> .ilb-select--wc) .wc-blocks-components-select__select { opacity: 0 !important; pointer-events: none !important; }
body .wc-blocks-components-select__container:has(> .ilb-select--wc) .wc-blocks-components-select__expand { display: none !important; }
body .wc-blocks-components-select__container:has(> .ilb-select--wc) .wc-blocks-components-select__label { z-index: 2; pointer-events: none; }
body .ilb-select--wc button.ilb-select__button { height: 100%; min-height: 0; padding: 18px 14px 0; border-radius: 8px; align-items: center; }
body .ilb-select--wc .ilb-select__pop { top: calc(100% + 6px); }

/* 2. Prices: Ink, bold (cart and checkout totals were 400-500). */
html body :is(.wc-block-formatted-money-amount, .woocommerce-Price-amount, .wc-block-components-product-price) { color: #1C1210 !important; font-weight: 700 !important; }

/* 14. Footer: Spotify glyph before the Spotify link (new element 5f0a9d21). */
.elementor-34 [data-id="5f0a9d21"] a::before { content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 8px; vertical-align: -3px; background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M7 9.5c3.5-1 7.3-.6 10 1'/%3E%3Cpath d='M7.6 12.6c2.9-.8 5.8-.4 8.2.9'/%3E%3Cpath d='M8.2 15.5c2.2-.6 4.4-.3 6.2.7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M7 9.5c3.5-1 7.3-.6 10 1'/%3E%3Cpath d='M7.6 12.6c2.9-.8 5.8-.4 8.2.9'/%3E%3Cpath d='M8.2 15.5c2.2-.6 4.4-.3 6.2.7'/%3E%3C/svg%3E") center / contain no-repeat; }
