/* BookSesh Author / Practitioner Profile Polish — Stage 1 (additive, is_author-scoped, reversible).
   Restyles EXISTING Voxel widgets on the "Profile Single" template (12421). No template/SEO/content change.
   Typography = Plus Jakarta Sans with a system fallback (NO font is loaded from here). Luma/Eventbrite-inspired
   left-aligned premium organiser feel, kept in BookSesh identity. All selectors scoped to body.bks-author-polish. */

body.bks-author-polish{
  --bks-font: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --bks-ink: #090711;
  --bks-ink-soft: #5f5c6b;
  --bks-line: rgba(9,7,17,.09);
  --bks-card: #ffffff;
  --bks-radius: 20px;
  --bks-radius-img: 18px;
  --bks-shadow: 0 10px 34px rgba(9,7,17,.10);
  --bks-shadow-hover: 0 16px 44px rgba(9,7,17,.15);
  --bks-coral: #EB666D;
  --bks-blue: #318FFF;
  --bks-purple: #7A5AF0;
  --bks-wrap: 1320px;
}

/* ---------- FULL-WIDTH desktop: widen the Voxel boxed content column (scoped to author pages only) ---------- */
@media (min-width: 1025px){
  body.bks-author-polish .e-con-boxed{ --content-width: var(--bks-wrap) !important; }
}

/* ---------- 0. Font alignment on the polished text (family only; no load) ---------- */
body.bks-author-polish .elementor-element-770d4844,
body.bks-author-polish .elementor-element-a29fe79,
body.bks-author-polish .elementor-element-42bc03f3,
body.bks-author-polish .elementor-element-bf7ca38,
body.bks-author-polish .elementor-element-bbb7d6e,
body.bks-author-polish .bks-ap-tabbar,
body.bks-author-polish .bks-ap-btn{ font-family: var(--bks-font) !important; }

/* ---------- 1. HERO: cover + avatar ---------- */
/* Cover image — taller, rounded, premium. */
body.bks-author-polish .elementor-element-c12cfd8 img{
  width: 100% !important; height: clamp(200px, 30vw, 360px) !important; object-fit: cover !important;
  border-radius: var(--bks-radius) !important; box-shadow: var(--bks-shadow) !important; display: block;
}
/* Avatar — larger, ringed, left-anchored overlap. */
body.bks-author-polish .elementor-element-2fa45600 img{
  width: clamp(104px, 12vw, 148px) !important; height: clamp(104px, 12vw, 148px) !important;
  border-radius: 50% !important; object-fit: cover !important;
  border: 5px solid #fff !important; box-shadow: var(--bks-shadow) !important;
}
body.bks-author-polish .elementor-element-2fa45600{ margin-top: -74px !important; z-index: 3; position: relative; }

/* Cover CROSSFADE slider (JS-built from the author's own listing images) — same dissolve + dot nav + swipe
   as the listing-single hero. The original featured image stays as the base frame underneath. */
body.bks-author-polish .elementor-element-c12cfd8{ position: relative !important; overflow: hidden; border-radius: var(--bks-radius); touch-action: pan-y; }
body.bks-author-polish .bks-cover-slide{
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0 !important; transition: opacity 1300ms ease-in-out !important; will-change: opacity;
  transform: translateZ(0); backface-visibility: hidden; pointer-events: none; border-radius: var(--bks-radius);
}
body.bks-author-polish .bks-cover-slide.is-active{ opacity: 1 !important; }
body.bks-author-polish .bks-cover-dots{ position: absolute; left: auto; right: 16px; top: 14px; bottom: auto; z-index: 4;
  display: flex; gap: 8px; justify-content: flex-end; pointer-events: none; }
body.bks-author-polish .bks-cover-dot{ width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
  pointer-events: auto; background: rgba(255,255,255,.55); box-shadow: 0 1px 3px rgba(0,0,0,.35);
  transition: background .2s ease, transform .2s ease; }
body.bks-author-polish .bks-cover-dot:hover{ transform: scale(1.18); }
body.bks-author-polish .bks-cover-dot.is-active{ background: #fff; transform: scale(1.18); }

/* ---------- 2. IDENTITY block — left aligned ---------- */
body.bks-author-polish .elementor-element-a29fe79 .elementor-heading-title{  /* "Partner status" eyebrow */
  text-align: left !important; font-size: .82rem !important; font-weight: 700 !important;
  letter-spacing: .08em !important; text-transform: uppercase !important; color: var(--bks-ink-soft) !important;
  margin: 0 0 4px !important;
}
body.bks-author-polish .elementor-element-770d4844 .elementor-heading-title{  /* Name */
  text-align: left !important; font-size: clamp(28px, 4vw, 40px) !important; font-weight: 800 !important;
  letter-spacing: -.02em !important; line-height: 1.1 !important; color: var(--bks-ink) !important; margin: 0 !important;
}
/* verification (ID Verified / Insured) = OWNER-MANAGED in Elementor (container #3a228f2 -> Direction: Row +
   Justify: Center). Intentionally no CSS here. Emoji shortcode #7b91b2b is owner-hidden — untouched. */

/* ---------- 3. STATS row (followers / following / location advanced-list) ---------- */
body.bks-author-polish .elementor-element-bbb7d6e{ text-align: left !important; }
body.bks-author-polish .elementor-element-bbb7d6e .ts-advanced-list{
  display: flex !important; flex-wrap: wrap; gap: 10px 22px !important; justify-content: flex-start !important;
  font-size: .95rem !important; color: var(--bks-ink-soft) !important; margin: 6px 0 0 !important;
}
body.bks-author-polish .elementor-element-bbb7d6e a,
body.bks-author-polish .elementor-element-bbb7d6e span{ color: var(--bks-ink-soft) !important; }

/* ---------- 4. ACTION icons (follow / message / repost / menu) — Salient-style circular icons ---------- */
/* Keep the existing Voxel SVGs; just make them premium circular icon-buttons with an accent hover fill. */
body.bks-author-polish .elementor-element-f6644a6{ text-align: center !important; }
body.bks-author-polish .elementor-element-f6644a6 .elementor-widget-container{ justify-content: center !important; }
body.bks-author-polish .elementor-element-f6644a6 .ts-advanced-list{
  display: flex !important; gap: 12px !important; justify-content: center !important; flex-wrap: wrap;
  /* zero any <ul> default/left padding + margin so the centred group sits on the TRUE content-column axis */
  margin: 16px auto 0 !important; padding: 0 !important; width: 100% !important; box-sizing: border-box; list-style: none !important;
}
body.bks-author-polish .elementor-element-f6644a6 li.ts-action{ margin: 0 !important; }
/* ONLY the top-level round action buttons (a.ts-action-con). Deliberately NOT `a` — the share/options
   dropdown links live inside a popup and are NOT .ts-action-con; styling those broke the menu. */
body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con{
  width: 50px !important; height: 50px !important; aspect-ratio: 1 / 1; padding: 0 !important;
  border-radius: 50% !important; border: 2px solid var(--bks-line) !important; background: #fff !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  color: var(--bks-ink-soft) !important; box-shadow: 0 2px 10px rgba(9,7,17,.06); overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con .ts-action-icon svg,
body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con svg{ width: 19px !important; height: 19px !important; }
/* DISTINCTIVE per-action colours (owner): 1 Follow = RED/coral · 2 Message = BLUE · 3 Share = PURPLE (our
   colour) · 4 Menu = neutral. Icon takes the button colour so it's always visible; hover fills with it. */
body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con .ts-action-icon svg{ fill: currentColor !important; }
body.bks-author-polish .elementor-element-f6644a6 li.ts-action:nth-child(1) a.ts-action-con{ color: var(--bks-coral)  !important; border-color: rgba(235,102,109,.5) !important; }
body.bks-author-polish .elementor-element-f6644a6 li.ts-action:nth-child(2) a.ts-action-con{ color: var(--bks-blue)   !important; border-color: rgba(49,143,255,.5)  !important; }
body.bks-author-polish .elementor-element-f6644a6 li.ts-action:nth-child(3) a.ts-action-con{ color: var(--bks-purple) !important; border-color: rgba(122,90,240,.5)  !important; }
/* TOUCH devices: the follow +/✓ swap relies on :hover which latches on tap and left an empty circle.
   Pin the initial "+" visible and drop the reveal so every tap stays clean. (Desktop keeps the swap.) */
@media (hover: none){
  body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con{ overflow: visible !important; }
  body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con .ts-reveal{ display: none !important; }
  body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con .ts-initial{ position: static !important; opacity: 1 !important; transform: none !important; }
}
/* hover FILL only on hover-capable devices — each icon fills with its OWN colour + white glyph + lift. */
@media (hover: hover) and (pointer: fine){
  body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con:hover{ transform: translateY(-3px); color: #fff !important; }
  body.bks-author-polish .elementor-element-f6644a6 a.ts-action-con:hover .ts-action-icon svg{ fill: #fff !important; stroke: #fff !important; }
  body.bks-author-polish .elementor-element-f6644a6 li.ts-action:nth-child(1) a.ts-action-con:hover{ background: var(--bks-coral)  !important; border-color: var(--bks-coral)  !important; box-shadow: 0 12px 26px rgba(235,102,109,.34); }
  body.bks-author-polish .elementor-element-f6644a6 li.ts-action:nth-child(2) a.ts-action-con:hover{ background: var(--bks-blue)   !important; border-color: var(--bks-blue)   !important; box-shadow: 0 12px 26px rgba(49,143,255,.32); }
  body.bks-author-polish .elementor-element-f6644a6 li.ts-action:nth-child(3) a.ts-action-con:hover{ background: var(--bks-purple) !important; border-color: var(--bks-purple) !important; box-shadow: 0 12px 26px rgba(122,90,240,.34); }
  body.bks-author-polish .elementor-element-f6644a6 li.ts-action:nth-child(4) a.ts-action-con:hover{ background: var(--bks-ink)    !important; border-color: var(--bks-ink)    !important; box-shadow: 0 12px 26px rgba(9,7,17,.25); }
}

/* ---------- 5. BIO card (read-more + paragraph rhythm) ---------- */
body.bks-author-polish .elementor-element-42bc03f3{
  text-align: left !important; background: var(--bks-card); border-radius: var(--bks-radius);
  box-shadow: var(--bks-shadow); padding: 22px 28px !important; margin: 4px 0 44px !important;  /* small top gap (sits close under the name); bottom gap clears the followers/following row */
}
/* zero the name's own bottom margin so the bio sits close beneath it */
body.bks-author-polish .elementor-element-770d4844{ margin-bottom: 0 !important; }
/* extra breathing room on the stats row so the bio-card shadow never overlaps it */
body.bks-author-polish .elementor-element-bbb7d6e{ margin-top: 6px !important; }
body.bks-author-polish .elementor-element-42bc03f3 .elementor-widget-container,
body.bks-author-polish .elementor-element-42bc03f3{         /* this text-editor has no .elementor-widget-container */
  white-space: pre-line;                         /* honours any source newlines (SEO-safe); JS adds paragraphs */
  line-height: 1.78; font-size: 1rem; color: var(--bks-ink); text-align: left !important;
}
body.bks-author-polish .elementor-element-42bc03f3 p{ margin: 0 0 1.5em !important; text-align: left !important; }
body.bks-author-polish .elementor-element-42bc03f3 p:last-child{ margin-bottom: 0 !important; }
/* JS read-more clamp (full text stays in DOM -> SEO-safe) */
body.bks-author-polish .bks-ap-clamp{ position: relative; max-height: 8.6em; overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg,#000 68%,transparent); mask-image: linear-gradient(180deg,#000 68%,transparent); }
body.bks-author-polish .bks-ap-clamp.is-open{ max-height: none; -webkit-mask-image: none; mask-image: none; }
body.bks-author-polish .bks-ap-readmore{ display: block; width: 100%; text-align: center; margin-top: .8em; font: 600 .9rem/1 var(--bks-font);
  color: var(--bks-ink); background: none; border: 0; padding: .2em 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 6. TABS (JS-injected): Hosting / Community ---------- */
body.bks-author-polish .bks-ap-tabbar{
  display: flex; gap: 4px; border-bottom: 1px solid var(--bks-line); margin: 30px 0 20px; padding: 0;
}
body.bks-author-polish .bks-ap-tab{
  appearance: none; background: none; border: 0; cursor: pointer; padding: 12px 16px; margin: 0;
  font: 700 1rem/1 var(--bks-font); color: var(--bks-ink-soft); position: relative;
}
body.bks-author-polish .bks-ap-tab.is-active{ color: var(--bks-ink); }
body.bks-author-polish .bks-ap-tab.is-active::after{
  content:""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--bks-coral);
}
body.bks-author-polish .bks-ap-hidden{ display: none !important; }

/* ---------- 7. "Currently hosting" — EXACT /session/ card design, scoped to the author feed only ----------
   The card template (Elementor 12428) markup is byte-identical to the archive; the /session/ look is painted
   by body-class-gated CSS (bks-session-discovery-page / bks-disc-v2) that isn't present here. We re-declare the
   SAME rules scoped to .elementor-element-dafb4a7 so the author feed matches /session/ without touching the
   archive, template 12428, the session-discovery plugins, or any DB/SEO. (Rewards pill / teaser / image dots are
   server-injected by other plugins and cannot be reproduced by CSS — the card box/title/button/photo are.) */
body.bks-author-polish .elementor-element-bf7ca38{ text-align: left !important; }
body.bks-author-polish .elementor-element-bf7ca38 .elementor-heading-title{
  text-align: left !important; font-size: clamp(20px,2.4vw,26px) !important; font-weight: 800 !important;
  letter-spacing: -.01em !important; color: var(--bks-ink) !important; margin: 0 0 10px !important;
}
body.bks-author-polish .elementor-element-dafb4a7 .post-feed-grid{ gap: 20px !important; }

/* 7.1 lavender card box + gradient (skin §11 + §12) */
body.bks-author-polish .elementor-element-dafb4a7 .ts-preview{
  box-sizing: border-box; border: 1px solid rgba(122,90,240,.16) !important; border-radius: 14px !important;
  padding: 18px !important; background: linear-gradient(180deg,#EBE6FD 0%,#FFFFFF 78%) !important;
  box-shadow: 0 6px 20px rgba(122,90,240,.14), 0 2px 6px rgba(9,7,17,.07) !important;
  transition: transform .18s ease, box-shadow .18s ease;
}
body.bks-author-polish .elementor-element-dafb4a7 .ts-preview:hover{ transform: translateY(-3px); box-shadow: 0 14px 34px rgba(122,90,240,.20), 0 3px 8px rgba(9,7,17,.08) !important; }

/* 7.2 blue title (v2 Refinement 4) */
body.bks-author-polish .elementor-element-dafb4a7 .ts-preview h3,
body.bks-author-polish .elementor-element-dafb4a7 .ts-preview h3 a,
body.bks-author-polish .elementor-element-dafb4a7 .ts-preview .elementor-widget-heading .elementor-heading-title{
  background: none !important; -webkit-text-fill-color: #0F40FF !important; color: #0F40FF !important;
}

/* 7.3 gradient pill BOOK NOW (v2 Refinement 3) */
body.bks-author-polish .elementor-element-dafb4a7 .booksesh-btn{
  border-radius: 999px !important; border: 0 !important; color: #fff !important;
  background-color: #0F40FF !important;
  background-image: linear-gradient(90deg,#0F40FF 0%,#7A5AF0 25%,#EB666D 50%,#7A5AF0 75%,#0F40FF 100%) !important;
  background-size: 280% 100% !important; box-shadow: 0 4px 14px rgba(122,90,240,.35) !important;
  animation: bksV2Grad 11s ease-in-out infinite !important;
}
@keyframes bksV2Grad{ 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
body.bks-author-polish .elementor-element-dafb4a7 .booksesh-btn:hover{ filter: brightness(.94); box-shadow: 0 6px 20px rgba(235,102,109,.45) !important; }

/* 7.4 rounded photo + circular avatar overlay (skin §4 + §10) */
body.bks-author-polish .elementor-element-dafb4a7 .ts-preview .elementor-element-b6b2133{ position: relative; margin-bottom: 12px; }
body.bks-author-polish .elementor-element-dafb4a7 .ts-preview .elementor-element-b6b2133 img{ border-radius: 10px !important; }
body.bks-author-polish .elementor-element-dafb4a7 .ts-preview .elementor-element-22a8d2b img{
  width: 50px !important; height: 50px !important; object-fit: cover !important; border-radius: 50% !important;
  box-shadow: 0 0 10px 0 rgba(0,0,0,.36) !important;
}
/* 7.5 coral rewards pill + home-based chip colour — only styles if those elements happen to render */
body.bks-author-polish .elementor-element-dafb4a7 .bksesh-qv-earn{
  color: #EB666D; background: rgba(235,102,109,.10); border: 1px solid rgba(235,102,109,.30);
  border-radius: 11px; padding: 2px 8px; font-size: 11px; font-weight: 700;
}

/* 7.6 card thumbnail CROSSFADE (replicates /session card-gallery-preview) — slides built by JS from each
   listing's own gallery. Base image stays in flow (holds height); extra images overlay + crossfade. */
body.bks-author-polish .elementor-element-dafb4a7 .bks-cardslide{ transition: opacity 900ms ease-in-out !important; }
body.bks-author-polish .elementor-element-dafb4a7 img.bks-cardslide:not(.bks-cardbase){
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 10px;
  opacity: 0; pointer-events: none; z-index: 1;
}
body.bks-author-polish .elementor-element-dafb4a7 img.bks-cardslide.bks-cardbase{ position: relative; opacity: 1; z-index: 0; }
body.bks-author-polish .elementor-element-dafb4a7 img.bks-cardslide.bks-cardbase:not(.is-active){ opacity: 0; }
body.bks-author-polish .elementor-element-dafb4a7 img.bks-cardslide:not(.bks-cardbase).is-active{ opacity: 1; }
body.bks-author-polish .elementor-element-dafb4a7 .bks-carddots{
  position: absolute; left: 0; right: 0; bottom: 8px; display: flex; justify-content: center; gap: 5px; z-index: 3; pointer-events: none;
}
body.bks-author-polish .elementor-element-dafb4a7 .bks-carddot{ width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,.55); box-shadow: 0 0 0 1px rgba(0,0,0,.15); }
body.bks-author-polish .elementor-element-dafb4a7 .bks-carddot.is-active{ background: #fff; transform: scale(1.35); }

/* ---------- 8. Community timeline — premium cards ---------- */
body.bks-author-polish .elementor-element-864cc06 .ts-timeline-feed > *,
body.bks-author-polish .elementor-element-864cc06 .ts-status{
  border-radius: var(--bks-radius) !important; border-color: var(--bks-line) !important;
}

/* ---------- 9. Layout wrapper: left-align + comfortable max-width ---------- */
body.bks-author-polish .elementor-element-c12cfd8,
body.bks-author-polish .elementor-element-2fa45600,
body.bks-author-polish .elementor-element-42bc03f3,
body.bks-author-polish .elementor-element-dafb4a7,
body.bks-author-polish .elementor-element-864cc06,
body.bks-author-polish .elementor-element-bf7ca38{ max-width: var(--bks-wrap); margin-left: auto; margin-right: auto; }

/* ---------- 10. Mobile-first tweaks ---------- */
@media (max-width: 767px){
  body.bks-author-polish .elementor-element-c12cfd8 img{ height: 168px !important; border-radius: 14px !important; }
  body.bks-author-polish .elementor-element-2fa45600 img{ border-width: 4px !important; }
  body.bks-author-polish .elementor-element-2fa45600{ margin-top: -56px !important; }
  body.bks-author-polish .elementor-element-770d4844 .elementor-heading-title{ font-size: 26px !important; }
  body.bks-author-polish .elementor-element-42bc03f3{ padding: 20px !important; }
  /* mobile: centre the identity meta — stats (followers/following/location) + action icons */
  body.bks-author-polish .elementor-element-bbb7d6e{ text-align: center !important; }
  body.bks-author-polish .elementor-element-bbb7d6e .ts-advanced-list{ justify-content: center !important; }
  body.bks-author-polish .elementor-element-f6644a6 .ts-advanced-list{ justify-content: center !important; }
  /* lift the bio "Read more" up on mobile (closer to the faded text) */
  body.bks-author-polish .bks-ap-readmore{ margin-top: -28px !important; transform: translateX(-8px); }
}
