/* =========================================================
   JO Design Layer: Claude Design "Joel Okpapi Design System"
   tokens + components, mapped onto Elementor markup.
   Light/dark follow Blocksy's data-color-mode.
   ========================================================= */
:root{
  --jo-bg:#F5F4F0;--jo-surface:#FFFFFF;--jo-sunken:#EBEAE6;
  --jo-ink:#0B0B0D;--jo-text-2:#3A3A3E;--jo-muted:#6B6B70;
  --jo-border:rgba(11,11,13,.10);--jo-border-strong:rgba(11,11,13,.22);
  --jo-accent:#2E5CFF;--jo-accent-hover:#2649CC;--jo-accent-soft:#E2E8FF;
  --jo-black:#0B0B0D;--jo-off-white:#F5F4F0;
  --jo-shadow-sm:0 1px 2px rgba(11,11,13,.06),0 1px 1px rgba(11,11,13,.04);
  --jo-shadow-md:0 8px 24px rgba(11,11,13,.08),0 2px 6px rgba(11,11,13,.05);
  --jo-ease:cubic-bezier(.16,1,.3,1);
  --jo-display:'Space Grotesk',ui-sans-serif,system-ui,sans-serif;
  --jo-body:'Inter',ui-sans-serif,system-ui,sans-serif;
  --jo-mono:ui-monospace,'SF Mono',Menlo,monospace;
}
:root[data-color-mode*="dark"]{
  --jo-bg:#0B0B0D;--jo-surface:#161618;--jo-sunken:#1E1E21;
  --jo-ink:#F5F4F0;--jo-text-2:#C7C6C2;--jo-muted:#8F8E8B;
  --jo-border:rgba(245,244,240,.12);--jo-border-strong:rgba(245,244,240,.26);
  --jo-accent:#5C7FFF;--jo-accent-hover:#7C97FF;--jo-accent-soft:rgba(92,127,255,.16);
  --jo-shadow-sm:0 1px 2px rgba(0,0,0,.4);--jo-shadow-md:0 8px 24px rgba(0,0,0,.45);
}
@media (prefers-color-scheme:dark){
  :root[data-color-mode*="os-default"]{
    --jo-bg:#0B0B0D;--jo-surface:#161618;--jo-sunken:#1E1E21;
    --jo-ink:#F5F4F0;--jo-text-2:#C7C6C2;--jo-muted:#8F8E8B;
    --jo-border:rgba(245,244,240,.12);--jo-border-strong:rgba(245,244,240,.26);
    --jo-accent:#5C7FFF;--jo-accent-hover:#7C97FF;--jo-accent-soft:rgba(92,127,255,.16);
    --jo-shadow-sm:0 1px 2px rgba(0,0,0,.4);--jo-shadow-md:0 8px 24px rgba(0,0,0,.45);
  }
}

/* ---------- type ---------- */
.jo-eyebrow .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:600!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:var(--jo-accent)!important;line-height:1.3!important}
.jo-h1 .elementor-heading-title{font-family:var(--jo-display)!important;font-weight:600!important;letter-spacing:-.02em!important;line-height:1.1!important;color:var(--jo-ink)!important;font-size:2rem!important}
.jo-h2 .elementor-heading-title{font-family:var(--jo-display)!important;font-weight:600!important;letter-spacing:-.02em!important;line-height:1.15!important;color:var(--jo-ink)!important;font-size:1.5rem!important}
@media(min-width:768px){.jo-h1 .elementor-heading-title{font-size:2.375rem!important}.jo-h2 .elementor-heading-title{font-size:1.75rem!important}}
@media(min-width:1200px){.jo-h1 .elementor-heading-title{font-size:3rem!important}.jo-h2 .elementor-heading-title{font-size:2.125rem!important}}
.jo-h3 .elementor-heading-title{font-family:var(--jo-display)!important;font-weight:600!important;font-size:20px!important;line-height:1.25!important;color:var(--jo-ink)!important}
.jo-body-lg,.jo-body-lg p{font-size:1.25rem!important;line-height:1.65!important;color:var(--jo-text-2)!important}
@media(max-width:767px){.jo-body-lg,.jo-body-lg p{font-size:1.125rem!important}}
.jo-text-2,.jo-text-2 p,.jo-text-2 .elementor-heading-title{color:var(--jo-text-2)!important}
.jo-muted,.jo-muted p,.jo-muted .elementor-heading-title{color:var(--jo-muted)!important}
.jo-ink,.jo-ink p,.jo-ink .elementor-heading-title{color:var(--jo-ink)!important}
.jo-accent .elementor-heading-title,.jo-accent{color:var(--jo-accent)!important}
.jo-mono .elementor-heading-title,.jo-mono{font-family:var(--jo-mono)!important}
.elementor-widget-text-editor a{color:var(--jo-accent)}
.elementor-widget-text-editor a:hover{color:var(--jo-accent-hover)}

/* ---------- badge ---------- */
.jo-badge{align-self:flex-start!important;width:auto!important}
.jo-badge .elementor-heading-title{display:inline-flex!important;align-items:center;line-height:1.1!important;font-family:var(--jo-body)!important;font-size:12px!important;font-weight:600!important;letter-spacing:.04em!important;text-transform:uppercase!important;padding:8px 14px!important;border-radius:999px!important;background:var(--jo-accent-soft)!important;color:var(--jo-accent-hover)!important}

/* ---------- buttons ---------- */
.elementor-widget-button .elementor-button{font-family:var(--jo-body)!important;font-weight:600!important;border-radius:8px!important;transition:background .15s var(--jo-ease),color .15s var(--jo-ease),border-color .15s var(--jo-ease),transform .15s var(--jo-ease)!important}
.elementor-widget-button .elementor-button:active{transform:scale(.98)}
.jo-btn-primary .elementor-button{background:var(--jo-accent)!important;color:#fff!important;border:1px solid transparent!important;padding:14px 26px!important;font-size:16px!important}
.jo-btn-primary .elementor-button:hover{background:var(--jo-accent-hover)!important;color:#fff!important}
.jo-btn-secondary .elementor-button{background:transparent!important;color:var(--jo-ink)!important;border:1px solid var(--jo-border-strong)!important;padding:14px 26px!important;font-size:16px!important}
.jo-btn-secondary .elementor-button:hover{border-color:var(--jo-ink)!important;color:var(--jo-ink)!important}
.jo-btn-ghost .elementor-button{background:transparent!important;color:var(--jo-ink)!important;border:0!important;padding:10px 4px!important;font-size:15px!important}
.jo-btn-ghost .elementor-button:hover{color:var(--jo-accent)!important}
.jo-btn-ghost .elementor-button-icon svg{width:15px;height:15px;fill:currentColor}
.jo-btn-dark .elementor-button{background:var(--jo-black)!important;color:var(--jo-off-white)!important;border:1px solid transparent!important;padding:12px 22px!important;font-size:14px!important}
:root[data-color-mode*="dark"] .jo-btn-dark .elementor-button{background:var(--jo-off-white)!important;color:var(--jo-black)!important}
.jo-btn-block,.jo-btn-block .elementor-button{width:100%!important}

/* ---------- surfaces ---------- */
.jo-sunken{background-color:var(--jo-sunken)!important}
.jo-surface{background-color:var(--jo-surface)!important}
.jo-bg{background-color:var(--jo-bg)!important}
.jo-dark-band{background-color:var(--jo-black)!important;color:var(--jo-off-white)}

/* card */
.jo-card{background:var(--jo-surface)!important;border:1px solid var(--jo-border)!important;border-radius:20px!important;overflow:hidden!important;box-shadow:var(--jo-shadow-sm)!important;transition:transform .28s var(--jo-ease),box-shadow .28s var(--jo-ease)!important;padding:0!important}
a.jo-card:hover,.jo-card.jo-link:hover,.e-loop-item:hover .jo-card{transform:translateY(-2px);box-shadow:var(--jo-shadow-md)!important}
.jo-card-media{aspect-ratio:16/10;min-height:0!important;background-color:var(--jo-sunken)!important;background-size:cover!important;background-position:top center!important;display:flex!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:0!important}
.jo-card-media .elementor-heading-title{font-family:var(--jo-mono)!important;font-size:11px!important;color:var(--jo-muted)!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important}
.jo-card-body{padding:20px!important;gap:6px!important;background:transparent!important}
.jo-card-cat .elementor-heading-title{font-family:var(--jo-body)!important;font-size:12px!important;font-weight:600!important;color:var(--jo-accent)!important;text-transform:uppercase!important;letter-spacing:.04em!important}
.jo-card-title .elementor-heading-title,.jo-card-title .elementor-heading-title a{font-family:var(--jo-display)!important;font-size:20px!important;font-weight:600!important;line-height:1.25!important;color:var(--jo-ink)!important;text-decoration:none!important}
.jo-card-desc,.jo-card-desc p{font-size:14px!important;line-height:1.5!important;color:var(--jo-text-2)!important;margin:0!important}
.jo-price-main .elementor-heading-title{font-family:var(--jo-display)!important;font-size:22px!important;font-weight:700!important;color:var(--jo-ink)!important}
.jo-price-2 .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-muted)!important}

/* grids (fill to the edges) */
.jo-grid-3{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:20px!important}
.jo-grid-3>.e-con,.jo-grid-3>.elementor-element{width:auto!important;max-width:none!important;margin:0!important}
@media(max-width:900px){.jo-grid-3{grid-template-columns:1fr 1fr!important}}
@media(max-width:600px){.jo-grid-3{grid-template-columns:1fr!important}}

/* pillar row: full-bleed band of 4 surface tiles with hairline dividers */
.jo-pillars{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:1px!important;background:var(--jo-border)!important;width:100%!important;max-width:none!important}
.jo-pillars>.e-con{background:var(--jo-surface)!important;padding:28px!important;width:auto!important;max-width:none!important;border:0!important;gap:8px!important;margin:0!important}
.jo-pillars .jo-pillar-title .elementor-heading-title{font-family:var(--jo-display)!important;font-weight:600!important;font-size:18px!important;color:var(--jo-ink)!important}
.jo-pillars .jo-pillar-desc,.jo-pillars .jo-pillar-desc p{font-size:13px!important;color:var(--jo-text-2)!important;margin:0!important;line-height:1.5!important}
@media(max-width:900px){.jo-pillars{grid-template-columns:1fr 1fr!important}}
@media(max-width:600px){.jo-pillars{grid-template-columns:1fr!important}.jo-pillars>.e-con{padding:20px!important}}

/* taxonomy filter as design tags */
.jo-tags .e-filter{display:flex;flex-wrap:wrap;gap:8px;padding:0;justify-content:flex-start!important}
.jo-tags .e-filter-item{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:500!important;padding:8px 16px!important;border-radius:999px!important;border:1px solid var(--jo-border-strong)!important;background:transparent!important;color:var(--jo-text-2)!important;cursor:pointer;line-height:1.2!important}
.jo-tags .e-filter-item[aria-pressed="true"]{border-color:var(--jo-accent)!important;background:var(--jo-accent-soft)!important;color:var(--jo-accent-hover)!important}
.jo-tags .e-filter-item:hover{color:var(--jo-accent-hover)!important}
.jo-tags .e-filter-item[data-filter="__all"]{order:-1}
.jo-tags .e-filter-item[data-filter="design"]{order:2}.jo-tags .e-filter-item[data-filter="dev-wordpress"]{order:3}.jo-tags .e-filter-item[data-filter="business-strategy"]{order:4}
.jo-tags .e-filter-item[data-filter="product"]{order:1}.jo-tags .e-filter-item[data-filter="business"]{order:2}.jo-tags .e-filter-item[data-filter="real-estate"]{order:3}.jo-tags .e-filter-item[data-filter="nonprofit"]{order:4}.jo-tags .e-filter-item[data-filter="personal-creative"]{order:5}

/* loop items are whole-card links */
.e-loop-item{cursor:pointer}
.e-loop-item .jo-card{height:100%}

/* ---------- header (design: round ghost theme toggle, sm CTA, nav 15/500) ---------- */
#header .ct-color-switch{width:36px!important;height:36px!important;border:1px solid var(--jo-border-strong)!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;color:var(--jo-ink)!important;padding:0!important}
#header .ct-color-switch .ct-label{display:none!important}
#header .ct-color-switch svg{width:15px;height:15px}
#header [data-id="button"] .ct-button{font-family:var(--jo-body)!important;font-weight:600!important;font-size:13px!important;padding:9px 16px!important;min-height:0!important;border-radius:8px!important;line-height:1.3!important}
#header [data-id="menu"] .ct-menu-link{font-size:15px!important;font-weight:500!important;color:var(--jo-text-2)!important}
#header [data-id="menu"] .current-menu-item>.ct-menu-link,#header [data-id="menu"] .ct-menu-link:hover{color:var(--jo-ink)!important}

/* ---------- about ---------- */
.jo-portrait img{width:100%!important;aspect-ratio:4/5;object-fit:cover;border-radius:20px!important;display:block}
.jo-progress .elementor-title{font-family:var(--jo-body)!important;font-size:16px!important;font-weight:400!important;color:var(--jo-text-2)!important;margin-bottom:10px!important;display:block}
.jo-progress .elementor-progress-wrapper{position:relative;height:10px!important;background:var(--jo-sunken)!important;border-radius:999px!important;overflow:visible!important}
.jo-progress .elementor-progress-bar{height:10px!important;background:var(--jo-accent)!important;border-radius:999px!important;line-height:10px!important}
.jo-progress .elementor-progress-text{display:none!important}
.jo-progress .elementor-progress-percentage{position:absolute;right:0;top:-30px;font-family:var(--jo-body);font-size:16px;color:var(--jo-text-2);padding:0!important}
.jo-tool-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:12px!important}
@media(max-width:760px){.jo-tool-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:460px){.jo-tool-grid{grid-template-columns:1fr!important}}
.jo-tool{background:var(--jo-surface)!important;border:1px solid var(--jo-border)!important;border-radius:12px!important;padding:20px 12px!important;gap:10px!important;align-items:center!important;justify-content:center!important;width:auto!important;margin:0!important}
.jo-tool .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:500!important;color:var(--jo-text-2)!important}
.jo-tool.jo-tool-more .elementor-heading-title{color:var(--jo-muted)!important}
:root[data-color-mode*="dark"] .jo-tool img{filter:invert(1)}
@media (prefers-color-scheme:dark){:root[data-color-mode*="os-default"] .jo-tool img{filter:invert(1)}}
.jo-timeline-row{border-bottom:1px solid var(--jo-border)!important;padding:14px 0!important;gap:24px!important;align-items:baseline!important}
.jo-year .elementor-heading-title{font-family:var(--jo-mono)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-accent)!important;min-width:42px}

/* ---------- services ---------- */
.jo-svc-group{display:grid!important;grid-template-columns:260px 1fr!important;gap:40px!important;border-top:1px solid var(--jo-border)!important;padding:32px 0 0!important;margin-top:56px!important}
.jo-svc-group:first-of-type{margin-top:24px!important}
@media(max-width:900px){.jo-svc-group{grid-template-columns:1fr!important;gap:20px!important}}
.jo-svc-intro{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;width:auto!important;gap:10px!important}
.jo-svc-intro .elementor-heading-title{font-family:var(--jo-display)!important;font-size:24px!important;font-weight:600!important;color:var(--jo-ink)!important}
.e-con.jo-svc-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:16px!important;width:100%!important}
@media(max-width:600px){.e-con.jo-svc-grid{grid-template-columns:1fr!important}}
.e-con.jo-grid-3{grid-template-columns:repeat(3,1fr)!important}
@media(max-width:900px){.e-con.jo-grid-3{grid-template-columns:1fr 1fr!important}}
@media(max-width:600px){.e-con.jo-grid-3{grid-template-columns:1fr!important}}
.jo-svc-grid>.e-con{padding:20px!important;gap:10px!important;width:auto!important;margin:0!important}
.jo-svc-grid .elementor-widget-icon .elementor-icon{font-size:22px!important;color:var(--jo-accent)!important}
.jo-svc-grid .elementor-widget-icon .elementor-icon svg{width:22px!important;height:22px!important;fill:var(--jo-accent)!important}
.jo-svc-title .elementor-heading-title{font-family:var(--jo-display)!important;font-size:16px!important;font-weight:600!important;color:var(--jo-ink)!important;line-height:1.3!important}
.jo-svc-price .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-muted)!important}
.jo-svc-grid .jo-btn-ghost .elementor-button{padding:9px 0!important;font-size:13px!important}
.jo-flat3{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:1px!important;background:var(--jo-border)!important;border:1px solid var(--jo-border)!important}
@media(max-width:900px){.jo-flat3{grid-template-columns:1fr!important}}
.jo-flat3>.e-con{background:var(--jo-surface)!important;padding:28px!important;gap:8px!important;width:auto!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.jo-pkg-title .elementor-heading-title{font-family:var(--jo-display)!important;font-size:20px!important;font-weight:600!important;color:var(--jo-ink)!important}
.jo-pkg-price .elementor-heading-title{font-family:var(--jo-mono)!important;font-size:14px!important;font-weight:400!important;color:var(--jo-accent)!important}
.jo-cta-band{background:var(--jo-black)!important;border-radius:20px!important;padding:64px!important;gap:24px!important;align-items:center!important;justify-content:space-between!important;flex-wrap:wrap!important}
@media(max-width:767px){.jo-cta-band{padding:40px 28px!important}}
.jo-cta-title .elementor-heading-title{font-family:var(--jo-display)!important;font-size:32px!important;font-weight:600!important;letter-spacing:-.02em!important;line-height:1.1!important;color:#F5F4F0!important;max-width:480px}
@media(max-width:767px){.jo-cta-title .elementor-heading-title{font-size:26px!important}}

/* ---------- podcast ---------- */
.jo-episode{border-bottom:1px solid var(--jo-border)!important;padding:18px 0!important;gap:18px!important;align-items:center!important}
.jo-episode .elementor-widget-icon .elementor-icon{color:var(--jo-accent)!important;font-size:22px!important}
.jo-episode .elementor-widget-icon .elementor-icon svg{fill:var(--jo-accent)!important;width:22px;height:22px}
.jo-ep-num .elementor-heading-title,.jo-ep-dur .elementor-heading-title{font-family:var(--jo-mono)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-muted)!important}
.jo-ep-num{min-width:32px}
.jo-ep-art{width:56px!important;height:56px!important;min-height:56px!important;border-radius:12px!important;background:var(--jo-sunken)!important;flex-shrink:0!important}
.jo-ep-title .elementor-heading-title{font-family:var(--jo-display)!important;font-size:16px!important;font-weight:600!important;color:var(--jo-ink)!important}
.jo-ep-guest .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-muted)!important}
.jo-spotify{max-width:640px!important;width:100%!important}
.jo-nowrap .elementor-heading-title{white-space:nowrap!important;font-size:13px!important;color:#8F8E8B!important;font-weight:400!important;text-transform:none!important;letter-spacing:0!important}
.jo-ep-dur .elementor-heading-title{white-space:nowrap}
.jo-img-slot{background:var(--jo-sunken)!important;border:1px dashed var(--jo-border-strong)!important;border-radius:20px!important;align-items:center!important;justify-content:center!important}
.jo-img-slot .elementor-heading-title{font-family:var(--jo-mono)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-muted)!important;text-transform:none!important;letter-spacing:0!important}

/* ---------- contact form (design .form.card / .field) ---------- */
.jo-form-card{background:var(--jo-surface)!important;border:1px solid var(--jo-border)!important;border-radius:20px!important;box-shadow:var(--jo-shadow-sm)!important;padding:28px!important}
.jo-form-card .elementor-field-group{margin-bottom:18px!important}
.jo-form-card .elementor-field-label{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-text-2)!important;margin-bottom:6px!important}
.jo-form-card .elementor-field-textual,.jo-form-card select.elementor-field{font-family:var(--jo-body)!important;font-size:15px!important;padding:12px 14px!important;border-radius:8px!important;border:1px solid var(--jo-border-strong)!important;background:var(--jo-surface)!important;color:var(--jo-ink)!important;min-height:0!important}
.jo-form-card .elementor-field-textual:focus{border-color:var(--jo-accent)!important;box-shadow:0 0 0 3px var(--jo-accent-soft)!important;outline:none}
.jo-form-card .elementor-button{background:var(--jo-accent)!important;color:#fff!important;font-family:var(--jo-body)!important;font-weight:600!important;font-size:16px!important;padding:14px 26px!important;border-radius:8px!important}
.jo-form-card .elementor-button:hover{background:var(--jo-accent-hover)!important}
.jo-email .elementor-heading-title,.jo-email .elementor-heading-title a{font-family:var(--jo-display)!important;font-size:20px!important;font-weight:600!important;color:var(--jo-accent)!important}

/* ---------- legal ---------- */
.jo-legal-updated .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-muted)!important;text-transform:none!important;letter-spacing:0!important}
.jo-h3l .elementor-heading-title{font-family:var(--jo-display)!important;font-size:24px!important;font-weight:600!important;color:var(--jo-ink)!important;line-height:1.25!important}

/* ---------- blog cards ---------- */
.jo-read-time .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-muted)!important;text-transform:none!important;letter-spacing:0!important}
.jo-card-feature{display:grid!important;grid-template-columns:1.1fr 1fr!important;gap:32px!important;align-items:center!important}
.jo-card-feature>.jo-card-media{aspect-ratio:auto!important;height:100%!important;min-height:300px!important;width:auto!important}
.jo-card-feature>.jo-feature-body{padding:32px!important;width:auto!important}
.jo-feature-title .elementor-heading-title,.jo-feature-title .elementor-heading-title a{font-size:28px!important;line-height:1.15!important}
@media(max-width:760px){.jo-card-feature{grid-template-columns:1fr!important;gap:0!important}.jo-card-feature>.jo-card-media{min-height:0!important;aspect-ratio:16/10!important}.jo-card-feature>.jo-feature-body{padding:20px!important}.jo-feature-title .elementor-heading-title{font-size:22px!important}}

/* ---------- single post column (design blog-post.html) ---------- */
.single-post .entry-content>*,.single-post .post-edit-link{max-width:760px!important;margin-left:auto!important;margin-right:auto!important;width:100%}
.single-post .jo-post-body>*{max-width:none!important}
.single-post article.post{padding-top:56px;padding-bottom:96px}
@media(max-width:767px){.single-post article.post{padding-top:24px;padding-bottom:56px}}

/* ---------- footer (design .site-footer) ---------- */
@media(min-width:768px){#footer .jo-foot-news{max-width:340px;margin-left:auto}#footer .jo-foot-form input{min-width:0!important;width:240px;flex:1 1 auto}}

/* ---------- small type utilities ---------- */
.jo-15,.jo-15 p{font-size:15px!important;line-height:1.65!important}
.jo-14,.jo-14 p{font-size:14px!important;line-height:1.5!important}
.jo-13,.jo-13 p{font-size:13px!important;line-height:1.5!important}
.jo-small-muted .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:400!important;color:var(--jo-muted)!important;text-transform:none!important;letter-spacing:0!important}
.jo-icon-ink img{width:18px!important;height:18px!important}
:root[data-color-mode*="dark"] .jo-icon-ink img{filter:invert(1)}
@media (prefers-color-scheme:dark){:root[data-color-mode*="os-default"] .jo-icon-ink img{filter:invert(1)}}

/* ---------- testimonial ---------- */
.jo-testimonial{background:var(--jo-surface)!important;border:1px solid var(--jo-border)!important;border-radius:20px!important;padding:28px!important;gap:18px!important;max-width:640px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
.jo-quote .elementor-heading-title{font-family:var(--jo-display)!important;font-size:20px!important;font-weight:500!important;line-height:1.2!important;letter-spacing:-.02em!important;color:var(--jo-ink)!important;text-align:left!important}
.jo-t-name .elementor-heading-title{font-family:var(--jo-body)!important;font-weight:600!important;font-size:14px!important;color:var(--jo-ink)!important;text-align:left!important}
.jo-t-role .elementor-heading-title{font-family:var(--jo-body)!important;font-weight:400!important;font-size:13px!important;color:var(--jo-muted)!important;text-align:left!important}

/* ---------- client logo slots ---------- */
.jo-logo-slot{width:150px!important;height:64px!important;min-height:64px!important;padding:0!important;background:var(--jo-sunken)!important;border:1px solid var(--jo-border-strong)!important;border-radius:12px!important;display:flex!important;align-items:center!important;justify-content:center!important;opacity:.65;transition:opacity .28s var(--jo-ease)}
.jo-logo-slot:hover{opacity:1}
.jo-logo-slot .elementor-heading-title{font-family:var(--jo-mono)!important;font-size:12px!important;font-weight:400!important;color:var(--jo-muted)!important;letter-spacing:0!important;text-transform:none!important}

/* ---------- reviews ---------- */
.jo-review-card{background:var(--jo-surface)!important;border:1px solid var(--jo-border)!important;border-radius:20px!important;padding:28px!important;gap:12px!important}
.jo-review-platform .elementor-heading-title{font-family:var(--jo-body)!important;font-size:12px!important;font-weight:600!important;color:var(--jo-muted)!important;text-transform:uppercase!important;letter-spacing:.04em!important}
