.bk-carousel{
  --bkc-cards-visible:4; --bkc-gap:24px;
  --bkc-ink:#1a1a1a; --bkc-ink-soft:#4a4a4a; --bkc-ink-muted:#8a8a8a;
  --bkc-accent:#b8543d; --bkc-accent-dark:#8f3f2c; --bkc-border:#e8e4dc; --bkc-surface:#fff;
  --bkc-radius:12px;
  --bkc-shadow:0 4px 12px rgba(20,15,5,.06),0 2px 4px rgba(20,15,5,.04);
  --bkc-shadow-hover:0 12px 28px rgba(20,15,5,.12),0 4px 8px rgba(20,15,5,.06);
  --bkc-font-display:'Fraunces',Georgia,serif; --bkc-font-body:'Inter',-apple-system,sans-serif;
  --bkc-transition:220ms cubic-bezier(.4,0,.2,1);
  font-family:var(--bkc-font-body); color:var(--bkc-ink);
  box-sizing:border-box; max-width:1280px; margin:0 auto; padding:32px 0; position:relative;
}
.bk-carousel *,.bk-carousel *::before,.bk-carousel *::after{box-sizing:border-box}
.bk-carousel:focus{outline:0}
.bk-carousel__header{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; padding:0 8px; flex-wrap:wrap}
.bk-carousel__intro{min-width:0; flex:1}
.bk-carousel__eyebrow{font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--bkc-accent); margin:0 0 8px; display:inline-flex; align-items:center; gap:8px}
.bk-carousel__eyebrow::before{content:''; width:18px; height:1.5px; background:var(--bkc-accent); display:inline-block}
.bk-carousel__title{font-family:var(--bkc-font-display); font-weight:500; font-size:clamp(24px,3vw,34px); line-height:1.15; letter-spacing:-.01em; color:var(--bkc-ink); margin:0 0 6px}
.bk-carousel__subtitle{font-size:14px; color:var(--bkc-ink-soft); margin:0; max-width:520px}
.bk-carousel__controls{display:flex; align-items:center; gap:16px; flex-shrink:0}
.bk-carousel__see-all{font-size:13px; font-weight:600; color:var(--bkc-ink); text-decoration:none; border-bottom:1.5px solid transparent; padding-bottom:2px; transition:var(--bkc-transition); white-space:nowrap}
.bk-carousel__see-all:hover{color:var(--bkc-accent); border-bottom-color:var(--bkc-accent)}
.bk-carousel__nav{display:flex; gap:8px}
.bk-carousel__btn{width:44px; height:44px; border-radius:50%; border:1.5px solid var(--bkc-border); background:var(--bkc-surface); color:var(--bkc-ink); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:var(--bkc-transition); flex-shrink:0; padding:0}
.bk-carousel__btn svg{width:18px; height:18px; stroke:currentColor; fill:none}
.bk-carousel__btn:hover:not(:disabled){background:var(--bkc-ink); color:#fff; border-color:var(--bkc-ink); transform:translateY(-1px)}
.bk-carousel__btn:disabled{opacity:.35; cursor:not-allowed}
.bk-carousel__viewport{position:relative; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);
}
.bk-carousel__track{display:flex; gap:var(--bkc-gap); overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding:8px 16px 24px; scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch}
.bk-carousel__track::-webkit-scrollbar{display:none}
.bk-carousel__slide{flex:0 0 calc((100% - (var(--bkc-cards-visible) - 1) * var(--bkc-gap)) / var(--bkc-cards-visible)); min-width:0; scroll-snap-align:start}
.bk-carousel__progress{margin:12px auto 0; height:3px; background:var(--bkc-border); border-radius:99px; overflow:hidden; max-width:200px}
.bk-carousel__progress-bar{height:100%; background:var(--bkc-accent); border-radius:99px; width:25%; transition:transform 280ms cubic-bezier(.4,0,.2,1)}

.bk-book-card{background:var(--bkc-surface); border-radius:var(--bkc-radius); overflow:hidden; box-shadow:var(--bkc-shadow); transition:var(--bkc-transition); display:flex; flex-direction:column; height:100%}
.bk-book-card:hover{transform:translateY(-4px); box-shadow:var(--bkc-shadow-hover)}
.bk-book-card__link,
.bk-book-card__link:hover,
.bk-book-card__link:focus,
.bk-book-card__link:visited{display:flex !important; flex-direction:column !important; flex:1 1 auto !important; min-height:0 !important; text-decoration:none !important; color:inherit !important; background:transparent !important; box-shadow:none !important; border-bottom:0 !important}
.bk-book-card__title,
.bk-book-card__author,
.bk-book-card__price{text-decoration:none !important; border-bottom:0 !important}
.bk-book-card__cover{aspect-ratio:2/3; background:linear-gradient(135deg,#f3eee3,#e9e2d2); overflow:hidden; position:relative}
.bk-book-card__cover img{width:100%; height:100%; object-fit:cover; transition:transform 400ms cubic-bezier(.2,.8,.2,1)}
.bk-book-card:hover .bk-book-card__cover img{transform:scale(1.05)}
.bk-book-card__tag{position:absolute; top:12px; left:12px; background:rgba(255,255,255,.95); backdrop-filter:blur(6px); color:var(--bkc-ink); font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:5px 9px; border-radius:4px}
.bk-book-card__body{padding:16px 18px 14px; display:flex; flex-direction:column; gap:4px; flex:1}
.bk-book-card__title{font-family:var(--bkc-font-display); font-size:17px; font-weight:500; line-height:1.25; min-height:42px; color:var(--bkc-ink); margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.bk-book-card__author{font-family:var(--bkc-font-display); font-style:italic; font-size:13px; line-height:1.25; min-height:16px; color:var(--bkc-ink-muted); margin:0 0 8px}
.bk-book-card__price{margin-top:auto; font-size:18px; font-weight:600; color:var(--bkc-ink); font-variant-numeric:tabular-nums}
.bk-book-card__price .woocommerce-Price-amount{color:inherit !important}
.bk-book-card__price small{display:block; min-height:14px; font-size:11px; line-height:1.25; font-weight:400; color:var(--bkc-ink-muted); margin-top:2px}
.bk-book-card__footer{padding:0 18px 18px}
.bk-book-card__actions{display:grid; grid-template-columns:auto 1fr; gap:8px}
.bk-book-card__btn{display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:6px; min-height:36px !important; padding:9px 14px !important; border-radius:8px; font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; border:1.5px solid transparent; transition:var(--bkc-transition); line-height:1.1 !important; background:transparent; color:inherit}
.bk-book-card__btn svg{width:15px; height:15px; stroke:currentColor; fill:none}
.bk-book-card__btn--cart{border-color:var(--bkc-border); color:var(--bkc-ink); background:var(--bkc-surface); width:40px; padding:9px !important}
.bk-book-card__btn--cart:hover{border-color:var(--bkc-ink); background:var(--bkc-ink); color:#fff}
.bk-book-card__btn--buy{background:var(--bkc-accent); color:#fff}
.bk-book-card__btn--buy:hover{background:var(--bkc-accent-dark); transform:translateY(-1px)}
.bk-book-card__btn:disabled{opacity:.6; cursor:wait}

/* Variation modal */
.bk-var-modal{position:fixed; inset:0; background:rgba(20,15,5,.45); backdrop-filter:blur(2px); display:none; align-items:center; justify-content:center; z-index:10000; padding:20px}
.bk-var-modal.is-open{display:flex}
.bk-var-modal__panel{background:#fff; border-radius:14px; max-width:420px; width:100%; padding:28px; box-shadow:0 24px 56px rgba(0,0,0,.25); animation:bk-var-pop 200ms ease}
@keyframes bk-var-pop{from{opacity:0; transform:translateY(8px) scale(.98)} to{opacity:1; transform:translateY(0) scale(1)}}
.bk-var-modal__title{font-family:'Fraunces',Georgia,serif; font-size:20px; font-weight:600; margin:0 0 6px; color:#1a1a1a}
.bk-var-modal__subtitle{font-size:13px; color:#666; margin:0 0 18px}
.bk-var-modal__options{display:flex; flex-direction:column; gap:10px; margin-bottom:18px}
.bk-var-modal__option{display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border:1.5px solid #e8e4dc; border-radius:10px; background:#fff; cursor:pointer; transition:220ms; text-align:left; font-family:inherit; font-size:14px}
.bk-var-modal__option:hover{border-color:#b8543d; background:#fdf5f2}
.bk-var-modal__option-label{font-weight:600; color:#1a1a1a}
.bk-var-modal__option-price{font-variant-numeric:tabular-nums; color:#1a1a1a; font-weight:600}
.bk-var-modal__option-digital{background:#fdf5f2; color:#b8543d; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:3px; margin-left:8px}
.bk-var-modal__close{background:transparent; border:0; padding:10px 16px; border-radius:8px; cursor:pointer; font-family:inherit; font-size:13px; color:#666; width:100%}
.bk-var-modal__close:hover{background:#f5f5f5; color:#1a1a1a}

@media (max-width:980px){.bk-carousel__slide{flex-basis:calc((100% - (var(--bkc-cards-visible,3) - 1) * var(--bkc-gap)) / var(--bkc-cards-visible,3))}}
@media (max-width:640px){
  .bk-carousel{padding:20px 0}
  .bk-carousel__header{flex-direction:column; align-items:flex-start; gap:14px; margin-bottom:18px; padding:0 16px}
  .bk-carousel__title{font-size:22px}
  .bk-carousel__controls{width:100%; justify-content:space-between}
  .bk-carousel__btn{width:40px; height:40px}
  .bk-carousel__slide{flex-basis:calc((100% - (var(--bkc-cards-visible,2) - 1) * var(--bkc-gap)) / var(--bkc-cards-visible,2) - 24px)}
}
@media (max-width:420px){
  .bk-carousel{--bkc-gap:12px}
  .bk-carousel__slide{flex-basis:78%}
}

/* ============================================================
   GRID MODE (linhas > 1) — desativa carrossel, vira grid estatico
   ============================================================ */
.bk-carousel--grid .bk-carousel__viewport{
  overflow:visible !important;
  -webkit-mask-image:none !important;
          mask-image:none !important;
}
.bk-carousel--grid .bk-carousel__track{
  display:grid !important;
  grid-template-columns:repeat(var(--bkc-cards-visible,4), minmax(0,1fr)) !important;
  grid-auto-rows:auto !important;
  gap:var(--bkc-gap) !important;
  overflow:visible !important;
  scroll-snap-type:none !important;
  padding:8px 0 8px !important;
}
.bk-carousel--grid .bk-carousel__slide{
  flex:initial !important;
  flex-basis:auto !important;
  width:auto !important;
  min-width:0 !important;
  scroll-snap-align:none !important;
}
.bk-carousel--grid .bk-carousel__nav,
.bk-carousel--grid .bk-carousel__progress{display:none !important}
@media (max-width:980px){
  .bk-carousel--grid .bk-carousel__track{grid-template-columns:repeat(var(--bkc-cards-visible,3), minmax(0,1fr)) !important}
  .bk-carousel--grid .bk-carousel__slide{flex-basis:auto !important}
}
@media (max-width:640px){
  .bk-carousel--grid .bk-carousel__track{grid-template-columns:repeat(var(--bkc-cards-visible,2), minmax(0,1fr)) !important; padding:0 16px !important}
  .bk-carousel--grid .bk-carousel__slide{flex-basis:auto !important}
}
@media (max-width:420px){
  .bk-carousel--grid .bk-carousel__track{grid-template-columns:1fr !important}
  .bk-carousel--grid .bk-carousel__slide{flex-basis:auto !important}
}

/* ============================================================
   THEME ISOLATION HARDENING
   Aumenta especificidade com .bk-scope e neutraliza intrusões
   tipicas de Astra/Hello/GeneratePress no botoes, links e headings.
   ============================================================ */
.bk-scope .bk-carousel,
.bk-scope .bk-carousel *,
.bk-scope .bk-carousel *::before,
.bk-scope .bk-carousel *::after{box-sizing:border-box}

.bk-scope .bk-carousel{isolation:isolate}

/* Headings: temas costumam aplicar font-size, color e margin agressivos */
.bk-scope .bk-carousel h2.bk-carousel__title,
.bk-scope .bk-carousel h3.bk-book-card__title{
  font-family:var(--bkc-font-display) !important;
  color:var(--bkc-ink) !important;
  padding:0 !important;
  text-transform:none !important;
  letter-spacing:-.01em !important;
  text-shadow:none !important;
}
.bk-scope .bk-carousel h2.bk-carousel__title{font-weight:500 !important; line-height:1.15 !important; margin:0 0 6px !important}
.bk-scope .bk-carousel h3.bk-book-card__title{font-weight:500 !important; font-size:17px !important; line-height:1.25 !important; margin:0 !important}

.bk-scope .bk-carousel p{margin:0; padding:0}

/* Botoes: zera intrusoes (box-shadow, text-shadow, text-transform, font-size) */
.bk-scope .bk-carousel button{
  font-family:inherit !important;
  font-size:13px !important;
  text-transform:none !important;
  letter-spacing:normal !important;
  text-shadow:none !important;
  box-shadow:none !important;
  margin:0 !important;
  min-height:0 !important;
}
.bk-scope .bk-carousel .bk-carousel__btn{
  width:44px !important; height:44px !important;
  padding:0 !important;
  background:var(--bkc-surface) !important;
  border:1.5px solid var(--bkc-border) !important;
  color:var(--bkc-ink) !important;
  border-radius:50% !important;
}
.bk-scope .bk-carousel .bk-carousel__btn:hover:not(:disabled){background:var(--bkc-ink) !important; color:#fff !important; border-color:var(--bkc-ink) !important}
.bk-scope .bk-carousel .bk-book-card__btn--buy{background:var(--bkc-accent) !important; color:#fff !important; border-color:transparent !important}
.bk-scope .bk-carousel .bk-book-card__btn--buy:hover{background:var(--bkc-accent-dark) !important}
.bk-scope .bk-carousel .bk-book-card__btn--cart{background:var(--bkc-surface) !important; color:var(--bkc-ink) !important; border-color:var(--bkc-border) !important}
.bk-scope .bk-carousel .bk-book-card__btn--cart:hover{background:var(--bkc-ink) !important; color:#fff !important; border-color:var(--bkc-ink) !important}

/* Links: tema gosta de meter underline, border-bottom, color */
.bk-scope .bk-carousel a,
.bk-scope .bk-carousel a:hover,
.bk-scope .bk-carousel a:focus,
.bk-scope .bk-carousel a:visited{
  text-decoration:none !important;
  box-shadow:none !important;
  border-bottom:0 !important;
  background:transparent !important;
}
.bk-scope .bk-carousel a.bk-carousel__see-all{color:var(--bkc-ink) !important; font-weight:600 !important}
.bk-scope .bk-carousel a.bk-carousel__see-all:hover{color:var(--bkc-accent) !important; border-bottom:1.5px solid var(--bkc-accent) !important}

/* Elementor wrapper costuma injetar padding/margem no widget */
.elementor-widget-conecthar-bk-carousel .elementor-widget-container{padding:0 !important}

/* Modal de variacoes vive fora do .bk-scope (e injetado em body),
   entao reforca a isolacao por classe direta */
.bk-var-modal,
.bk-var-modal *,
.bk-var-modal *::before,
.bk-var-modal *::after{box-sizing:border-box}
.bk-var-modal button{font-family:inherit; text-transform:none; letter-spacing:normal; text-shadow:none; box-shadow:none; margin:0}
