/* Businessbook site styling effects — body classes from webDesign.siteEffects.
   Additive only. Generic selectors cover all themes; theme4 keeps float-dock exceptions. */

/* Shared primary CTA targets (theme class prefixes vary). */
body.site-fx-gradients :is(
  .bb1-btn--primary,
  a.bb1-btn--primary,
  .btn-primary,
  a.btn-primary,
  .btn-yellow,
  .button-primary,
  a.button-primary,
  .button-gold,
  a.button-gold,
  .button-accent,
  a.button-accent,
  .bb2-float-btn,
  .bb3-cart-fab,
  .bb4-cart-fab,
  .bb1-fab,
  .bb1-float-btn
) {
  background-image: linear-gradient(
    135deg,
    color-mix(in srgb, var(--color-primary, currentColor) 82%, #fff) 0%,
    var(--color-primary, currentColor) 48%,
    color-mix(in srgb, var(--color-primary, currentColor) 76%, #000) 100%
  );
  border-color: transparent;
}

body.site-fx-gradients :is(
  .bb1-stats__value,
  .section-heading h2,
  .bb9-headline,
  .sg-section-head h2,
  .fm-section-heading h2
) {
  background-image: linear-gradient(
    120deg,
    var(--color-primary, currentColor) 0%,
    color-mix(in srgb, var(--color-accent, var(--color-primary, currentColor)) 55%, var(--color-primary, currentColor)) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Dark / photo heroes: light→accent clip (readable on imagery). */
body.site-fx-gradients :is(
  .home-hero h1 .bb3-hero-title-main,
  .home-hero h1 .bb4-hero-title-main,
  .bb1-hero,
  .hero
) {
  background-image: linear-gradient(
    160deg,
    color-mix(in srgb, var(--color-primary, transparent) 9%, transparent) 0%,
    transparent 55%
  );
}

body.site-fx-gradients :is(
  .home-hero h1 .bb3-hero-title-main,
  .home-hero h1 .bb4-hero-title-main
) {
  background-image: linear-gradient(
    120deg,
    #ffffff 0%,
    color-mix(in srgb, var(--color-accent, var(--color-primary, #c9a227)) 70%, #fff) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---------------------------------------------------------------- 3D */

body.site-fx-3d :is(
  .bb1-btn--primary,
  a.bb1-btn--primary,
  .btn-primary,
  a.btn-primary,
  .button-primary,
  a.button-primary,
  .button-gold,
  a.button-gold,
  .button-accent,
  a.button-accent
) {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    inset 0 -2px 0 rgba(0, 0, 0, 0.14),
    0 10px 22px color-mix(in srgb, var(--color-primary, currentColor) 34%, transparent),
    0 2px 4px rgba(12, 18, 34, 0.18);
  transform: translateY(-1px);
}

body.site-fx-3d :is(
  .bb1-btn--primary,
  a.bb1-btn--primary,
  .btn-primary,
  a.btn-primary,
  .button-primary,
  a.button-primary,
  .button-gold,
  a.button-gold,
  .button-accent,
  a.button-accent
):hover {
  transform: translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    inset 0 -2px 0 rgba(0, 0, 0, 0.16),
    0 16px 30px color-mix(in srgb, var(--color-primary, currentColor) 40%, transparent),
    0 3px 6px rgba(12, 18, 34, 0.2);
}

body.site-fx-3d :is(
  .bb1-btn--primary,
  a.bb1-btn--primary,
  .btn-primary,
  a.btn-primary,
  .button-primary,
  a.button-primary,
  .button-gold,
  a.button-gold,
  .button-accent,
  a.button-accent
):active {
  transform: translateY(0);
  box-shadow:
    inset 0 2px 6px rgba(0, 0, 0, 0.22),
    0 3px 8px color-mix(in srgb, var(--color-primary, currentColor) 26%, transparent);
}

body.site-fx-3d :is(
  .bb1-card,
  .bb1-product,
  .bb1-review,
  .bb1-gallery__item,
  .bb1-stats__item,
  .product-card,
  .cat-tile,
  .order-box,
  .review-item,
  .bb3-service-card,
  .bb3-review-card,
  .bb4-service-card,
  .bb4-review-card,
  .bb8-card,
  .bb9-card,
  .bb10-crop-card,
  .bb11-stats-card,
  .faq-item,
  .bb-studio-specific__article,
  .sg-insight-card,
  .fm-machine-grid article,
  .estate-expertise-card
) {
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 18px 38px rgba(12, 18, 34, 0.1),
    0 4px 10px rgba(12, 18, 34, 0.06);
  transition: transform 200ms ease, box-shadow 200ms ease;
}

body.site-fx-3d :is(
  .bb1-card,
  .bb1-product,
  .bb1-gallery__item,
  .product-card,
  .cat-tile,
  .bb3-service-card,
  .bb4-service-card,
  .bb-studio-specific__article,
  .bb10-crop-card,
  .sg-insight-card,
  .estate-expertise-card
):hover {
  transform: translateY(-5px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 26px 50px rgba(12, 18, 34, 0.14),
    0 6px 14px rgba(12, 18, 34, 0.08);
}

/* Theme2 hard-offset DNA when 3D is on */
body.site-fx-3d.site-theme-theme2 :is(.product-card, .cat-tile, .order-box, .review-item) {
  box-shadow: 6px 6px 0 var(--c-text, var(--color-text, #14161f)), 0 14px 30px rgba(12, 18, 34, 0.12);
}
body.site-fx-3d.site-theme-theme2 :is(.product-card, .cat-tile):hover {
  transform: translate(-3px, -3px);
  box-shadow: 10px 10px 0 var(--c-text, var(--color-text, #14161f)), 0 20px 38px rgba(12, 18, 34, 0.16);
}

/* ---------------------------------------------------------- curved */

body.site-fx-curved-btns {
  --t-radius: 16px;
  --t-radius-lg: 26px;
  --r-sm: 999px;
}

body.site-fx-curved-btns :is(
  .bb1-btn,
  a.bb1-btn,
  .btn,
  a.btn,
  .button,
  a.button,
  .newsletter-input,
  .coupon-input
) {
  border-radius: 999px;
}

body.site-fx-curved-btns :is(
  .product-card,
  .cat-tile,
  .order-box,
  .form-control,
  .bb3-service-card,
  .bb3-review-card,
  .bb4-service-card,
  .bb4-review-card,
  .faq-item,
  input:not([type="checkbox"]):not([type="radio"]),
  textarea,
  select
) {
  border-radius: 18px;
}

/* Theme4 float dock — keep square rail (do not pill / 3D-skew). */
body.site-theme-theme4 .pub-float-btn--dock,
body.site-fx-curved-btns.site-theme-theme4 .pub-float-btn--dock,
body.site-fx-3d.site-theme-theme4 .pub-float-btn--dock {
  border-radius: 0 !important;
  transform: none !important;
  filter: none !important;
}
body.site-theme-theme4 .pub-float-btn--dock:first-child,
body.site-fx-curved-btns.site-theme-theme4 .pub-float-btn--dock:first-child {
  border-top-left-radius: 9px !important;
}
body.site-theme-theme4 .pub-float-btn--dock:last-child,
body.site-fx-curved-btns.site-theme-theme4 .pub-float-btn--dock:last-child {
  border-bottom-left-radius: 10px !important;
}
body.site-theme-theme4 .pub-float-btn--dock.pub-float-btn--wa:last-child,
body.site-fx-curved-btns.site-theme-theme4 .pub-float-btn--dock.pub-float-btn--wa:last-child,
body.site-fx-3d.site-theme-theme4 .pub-float-btn--dock.pub-float-btn--wa:last-child {
  border-bottom-left-radius: 0 !important;
}
body.site-fx-3d.site-theme-theme4 .pub-float-dock,
body.site-fx-gradients.site-theme-theme4 .pub-float-dock {
  border-left-color: color-mix(in srgb, #0b1526 88%, #ffffff) !important;
  border-top-color: color-mix(in srgb, #0b1526 88%, #ffffff) !important;
  border-bottom-color: color-mix(in srgb, #0b1526 88%, #ffffff) !important;
}
