/* ===== R3 LAYOUT LAYER ===== */
/* content width = Blocksy header/footer container width */
:root{--jo-wrap:min(var(--theme-normal-container-max-width,1290px),var(--theme-container-edge-spacing,90vw))}
.e-con.jo-sec{--content-width:var(--jo-wrap)!important;--padding-left:0px!important;--padding-right:0px!important;--padding-top:96px!important;--padding-bottom:96px!important}
.e-con.jo-sec.jo-sec-first{--padding-top:80px!important}
.e-con.jo-sec.jo-sec-hero{--padding-top:96px!important}
@media(max-width:900px){.e-con.jo-sec{--padding-top:64px!important;--padding-bottom:64px!important}.e-con.jo-sec.jo-sec-first{--padding-top:56px!important}.e-con.jo-sec.jo-sec-hero{--padding-top:64px!important}}
@media(max-width:600px){.e-con.jo-sec{--padding-top:48px!important;--padding-bottom:48px!important}.e-con.jo-sec.jo-sec-first{--padding-top:48px!important}.e-con.jo-sec.jo-sec-hero{--padding-top:56px!important}}
/* section head: eyebrow + title, 32px to content */
.e-con.jo-head{--gap:8px!important;--row-gap:8px!important;gap:8px!important}
.jo-sec>.e-con-inner>.jo-head+*{margin-top:12px}
/* 50/50 split */
.e-con-full.jo-split,.e-con-boxed.jo-split>.e-con-inner{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:40px!important;align-items:center!important}
.jo-split>.e-con,.jo-split>.e-con-inner>.e-con,.jo-split>.elementor-element,.jo-split>.e-con-inner>.elementor-element{width:auto!important;max-width:none!important;min-width:0!important;margin:0!important}
.jo-split.jo-top,.jo-split.jo-top>.e-con-inner{align-items:start!important}
@media(max-width:900px){.e-con-full.jo-split,.e-con-boxed.jo-split>.e-con-inner{grid-template-columns:minmax(0,1fr)!important}}

/* ---------- home hero (DAFPi-style portrait) ---------- */
.jo-hero-copy{gap:28px!important;--gap:28px!important}
.jo-hero-copy .jo-body-lg{max-width:480px}
.jo-hero-h1{font-family:var(--jo-display);font-weight:600;font-size:3rem;line-height:1.08;letter-spacing:-.02em;margin:0;color:var(--jo-ink)}
@media(max-width:1199px){.jo-hero-h1{font-size:2.375rem}}
@media(max-width:600px){.jo-hero-h1{font-size:2rem}}
.jo-rot{color:var(--jo-accent);display:inline-block;transition:opacity .45s var(--jo-ease)}
.jo-split .e-con.jo-hero-media{position:relative;width:100%!important;max-width:520px!important;justify-self:end;padding:0!important;overflow:visible!important}
.e-con.jo-hero-media::before{content:""!important;display:block!important;position:absolute;top:auto!important;right:auto!important;left:-28px!important;bottom:-28px!important;mix-blend-mode:normal!important;opacity:1!important;width:72%;height:72%;background:var(--jo-accent-soft);border-radius:200px 24px 24px 24px;z-index:0}
.e-con.jo-hero-media::after{content:""!important;display:block!important;position:absolute;left:auto!important;bottom:auto!important;right:-22px!important;top:28px!important;width:120px;height:120px;background-image:radial-gradient(var(--jo-accent) 1.6px,transparent 1.7px);background-size:16px 16px;opacity:.35;z-index:0}
.jo-hero-portrait{position:relative;z-index:1;width:100%!important}
.jo-hero-portrait img{width:100%!important;max-width:none!important;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:260px 260px 24px 24px!important;display:block;box-shadow:var(--jo-shadow-md)}
@media(max-width:900px){.jo-split .e-con.jo-hero-media{justify-self:center;max-width:420px!important;margin-top:24px!important}.e-con.jo-hero-media::before{left:-14px!important;bottom:-14px!important}.jo-hero-media::after{right:-10px;width:84px;height:84px}}

/* ---------- pillar strip: contained, linked tiles ---------- */
.jo-pillars{border:1px solid var(--jo-border)!important;border-radius:20px!important;overflow:hidden!important}
.jo-pillars>a.e-con{text-decoration:none!important;color:inherit!important;cursor:pointer;transition:background .28s var(--jo-ease)!important}
.jo-pillars>a.e-con:hover,.jo-pillars>a.e-con:focus-visible{background:var(--jo-sunken)!important}
.jo-pillars .jo-pillar-title .elementor-heading-title{display:inline-flex;align-items:center;gap:8px;transition:color .2s var(--jo-ease)}
.jo-pillars .jo-pillar-title .elementor-heading-title::after{content:"\2192";font-family:var(--jo-body);font-size:16px;opacity:0;transform:translateX(-6px);transition:opacity .28s var(--jo-ease),transform .28s var(--jo-ease);color:var(--jo-accent)}
.jo-pillars>a.e-con:hover .jo-pillar-title .elementor-heading-title{color:var(--jo-accent)!important}
.jo-pillars>a.e-con:hover .jo-pillar-title .elementor-heading-title::after{opacity:1;transform:none}

/* ---------- carousels (design: arrows + dots centred below) ---------- */
.jo-carousel{position:relative;padding-bottom:56px!important}
.jo-carousel .elementor-swiper-button{top:auto!important;bottom:0!important;transform:none!important;width:36px!important;height:36px!important;border:1px solid var(--jo-border-strong)!important;border-radius:999px!important;display:flex!important;align-items:center!important;justify-content:center!important;color:var(--jo-ink)!important;background:transparent!important;font-size:14px!important;transition:border-color .2s var(--jo-ease),color .2s var(--jo-ease)}
.jo-carousel .elementor-swiper-button:hover{border-color:var(--jo-ink)!important}
.jo-carousel .elementor-swiper-button svg{width:14px!important;height:14px!important;fill:currentColor!important}
.jo-carousel .elementor-swiper-button-prev{left:calc(50% - 18px - 76px)!important;right:auto!important;inset-inline-start:calc(50% - 18px - 76px)!important;inset-inline-end:auto!important}
.jo-carousel .elementor-swiper-button-next{left:calc(50% - 18px + 76px)!important;right:auto!important;inset-inline-start:calc(50% - 18px + 76px)!important;inset-inline-end:auto!important}
.jo-carousel .swiper-pagination{position:absolute!important;bottom:14px!important;top:auto!important;left:50%!important;transform:translateX(-50%)!important;width:auto!important;display:flex!important;gap:8px;line-height:0}
.jo-carousel .swiper-pagination-bullet{width:8px!important;height:8px!important;margin:0!important;background:var(--jo-border-strong)!important;opacity:1!important}
.jo-carousel .swiper-pagination-bullet-active{background:var(--jo-accent)!important}
.jo-carousel .swiper-slide>.e-con{height:100%}
.jo-carousel .jo-testimonial{max-width:640px!important;margin:0 auto!important}
.jo-logos .swiper-slide>.e-con{align-items:center!important;justify-content:center!important;padding:12px 0!important}
.jo-logo-slot{width:100%!important;max-width:180px}
.jo-logo-slot .elementor-heading-title{font-family:var(--jo-display)!important;font-size:15px!important;font-weight:600!important;color:var(--jo-text-2)!important;text-align:center!important;padding:0 10px}
.jo-logo-slot{filter:grayscale(1)}
.jo-logo-slot:hover{filter:none}

/* ---------- review cards (design .reviews-card) ---------- */
.jo-review-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:40px!important;align-items:stretch!important}
@media(max-width:900px){.jo-review-grid{grid-template-columns:1fr!important}}
.jo-review-grid>.e-con{width:auto!important;max-width:none!important;margin:0!important}
.jo-review-card{--padding-top:28px!important;--padding-bottom:28px!important;--padding-left:28px!important;--padding-right:28px!important;box-shadow:none!important}
.jo-stars .elementor-star-rating{color:var(--jo-accent)!important;font-size:18px!important;letter-spacing:4px}
.jo-stars .elementor-star-rating i:before{color:var(--jo-accent)!important}
.jo-stars .elementor-star-rating i{color:var(--jo-border-strong)!important}
.jo-review-score .elementor-heading-title{font-family:var(--jo-display)!important;font-size:22px!important;font-weight:600!important;color:var(--jo-ink)!important;line-height:1.2!important}
.jo-review-card .jo-btn-ghost .elementor-button{font-size:13px!important;padding:9px 0!important}

/* ---------- loop pagination (design tag style) ---------- */
.elementor-pagination{display:flex!important;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:40px!important;font-family:var(--jo-body)}
.elementor-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--jo-border-strong);color:var(--jo-text-2)!important;font-size:14px;font-weight:500;text-decoration:none!important;margin:0!important;transition:border-color .2s var(--jo-ease),color .2s var(--jo-ease),background .2s var(--jo-ease)}
.elementor-pagination a.page-numbers:hover{border-color:var(--jo-ink);color:var(--jo-ink)!important}
.elementor-pagination .page-numbers.current{background:var(--jo-accent)!important;border-color:var(--jo-accent)!important;color:#fff!important}
.elementor-pagination .page-numbers.dots{border:0;min-width:0;padding:0 4px}
.elementor-pagination .page-numbers.prev,.elementor-pagination .page-numbers.next{padding:0 18px}
/* ===== /R3 ===== */

.jo-split .e-con.jo-hero-media::before{width:72%!important;height:72%!important;background:var(--jo-accent-soft)!important;border-radius:200px 24px 24px 24px!important;z-index:0!important}
.jo-split .e-con.jo-hero-media::after{width:120px!important;height:120px!important;z-index:0!important}
@media(max-width:900px){.jo-split .e-con.jo-hero-media::after{width:84px!important;height:84px!important}}
.jo-logos .jo-logo-slot{max-width:none!important;width:100%!important;height:72px!important;min-height:72px!important;background:var(--jo-surface)!important;border:1px solid var(--jo-border)!important;opacity:.8}
.jo-logos .jo-logo-slot:hover{opacity:1;border-color:var(--jo-border-strong)!important}
/* narrow legal column (design max-width 820) */
.e-con.jo-sec.jo-narrow{--content-width:min(820px,var(--jo-wrap))!important}
/* podcast hero centred */
.jo-pod-hero>.e-con-inner{align-items:center!important;text-align:center}
.jo-pod-hero>.e-con-inner>.e-con{align-items:center!important;text-align:center;width:100%!important}
.jo-pod-hero .elementor-widget-image,.jo-pod-hero .elementor-widget-image img{margin-left:auto!important;margin-right:auto!important}
.jo-pod-hero .elementor-widget-text-editor{max-width:560px;margin-left:auto!important;margin-right:auto!important}
.jo-pod-hero .jo-spotify{margin-left:auto!important;margin-right:auto!important;text-align:left}
.jo-pod-hero .jo-spotify *{text-align:left}
.jo-pod-hero .e-con.e-flex[class*=jo-plat],.jo-pod-hero .e-con:has(>.jo-small-muted){justify-content:center!important}
.jo-ep-dur{flex:0 0 auto!important;width:auto!important;min-width:max-content}
.jo-pod-hero .e-con:has(>.jo-nowrap){width:auto!important;max-width:100%;justify-content:center!important;align-items:center!important;gap:20px!important;margin-top:16px}
.jo-pod-hero .e-con:has(>.jo-nowrap)>.e-con{flex:0 0 auto!important;width:auto!important;gap:14px!important;--gap:14px!important}
.jo-pod-hero .e-con:has(>.jo-nowrap)>.e-con>.elementor-widget{width:auto!important;flex:0 0 auto!important}
/* ---------- services (design services.html) ---------- */
.jo-sec .e-con.jo-svc-group{display:grid!important;grid-template-columns:260px minmax(0,1fr)!important;gap:40px!important;border-top:1px solid var(--jo-border)!important;padding:32px 0 0!important;margin:0!important;align-items:start!important}
.jo-sec .e-con.jo-svc-group>.e-con{width:auto!important;max-width:none!important;min-width:0!important;margin:0!important}
.jo-svc-group .e-con.jo-svc-grid,.jo-svc-group .e-con.jo-svc-grid:has(>.jo-card){display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:16px!important;width:100%!important}
.jo-svc-group .e-con.jo-svc-grid>.e-con{width:auto!important;max-width:none!important;margin:0!important;padding:20px!important;gap:10px!important}
.jo-svc-intro{gap:10px!important}
.jo-svc-intro .elementor-heading-title{font-size:20px!important}
.jo-svc-intro .elementor-widget-text-editor,.jo-svc-intro p{font-size:14px!important;line-height:1.65!important;color:var(--jo-text-2)!important;margin:0!important}
.jo-svc-icon .elementor-icon{display:inline-flex;color:var(--jo-accent)!important}
.jo-svc-icon .elementor-icon svg,.jo-svc-grid .jo-svc-icon .elementor-icon svg{width:24px!important;height:24px!important;fill:none!important;stroke:var(--jo-accent)!important}
.jo-svc-icon .elementor-icon svg path{fill:none!important}
.jo-svc-grid .jo-svc-title .elementor-heading-title{font-size:16px!important}
.jo-btn-sm .elementor-button,.jo-svc-grid .jo-btn-sm .elementor-button{padding:9px 16px!important;font-size:13px!important}
.jo-svc-grid .jo-btn-ghost{align-self:flex-start}
@media(max-width:900px){.jo-sec .e-con.jo-svc-group{grid-template-columns:minmax(0,1fr)!important;gap:20px!important}}
@media(max-width:600px){.jo-svc-group .e-con.jo-svc-grid,.jo-svc-group .e-con.jo-svc-grid:has(>.jo-card){grid-template-columns:minmax(0,1fr)!important}}
.jo-flat3{border-radius:0!important}
.jo-flat3>.e-con{gap:12px!important}
.jo-flat3 .jo-pkg-title .elementor-heading-title{font-size:20px!important}
.jo-svc-group .e-con.jo-svc-grid,.jo-sec .e-con.jo-svc-group,.e-con-full.jo-split,.e-con-boxed.jo-split>.e-con-inner,.jo-review-grid,.jo-grid-3,.jo-flat3,.jo-pillars,.jo-tool-grid{grid-template-rows:none!important;grid-auto-rows:auto!important}
@media(max-width:767px){.e-con.jo-spotify,.jo-sunken .e-con:has(>.elementor-widget-icon+.e-con+.e-con){flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:14px!important;--padding-top:16px!important;--padding-bottom:16px!important;--padding-left:16px!important;--padding-right:16px!important}.e-con.jo-spotify>.e-con:not(:last-child),.jo-sunken .e-con:has(>.elementor-widget-icon+.e-con+.e-con)>.e-con:not(:last-child){width:56px!important;height:56px!important;min-height:56px!important;flex:0 0 56px!important;display:none!important}.e-con.jo-spotify>.e-con:last-child,.jo-sunken .e-con:has(>.elementor-widget-icon+.e-con+.e-con)>.e-con:last-child{flex:1 1 auto!important;min-width:0!important;width:auto!important}}
.jo-logos.jo-carousel .elementor-swiper-button-prev{left:0!important;inset-inline-start:0!important}
.jo-logos.jo-carousel .elementor-swiper-button-next{left:auto!important;right:0!important;inset-inline-start:auto!important;inset-inline-end:0!important}
/* ---------- mobile drawer (design .mobile-nav) ---------- */
#offcanvas{--side-panel-width:100vw;background:transparent!important;backdrop-filter:none!important}
#offcanvas .ct-panel-inner{position:relative;width:100vw!important;max-width:100vw!important;background:var(--jo-bg)!important;box-shadow:none!important;padding:18px calc((100vw - var(--jo-wrap))/2) 40px!important;overflow-y:auto}
#offcanvas .ct-panel-actions{position:absolute!important;top:18px!important;right:calc((100vw - var(--jo-wrap))/2)!important;padding:0!important;margin:0!important;z-index:2;height:38px;display:flex;align-items:center}
#offcanvas .ct-toggle-close{width:38px!important;height:38px!important;border:1px solid var(--jo-border-strong)!important;border-radius:8px!important;background:transparent!important;color:var(--jo-ink)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;--theme-icon-color:var(--jo-ink);--theme-icon-hover-color:var(--jo-accent)}
#offcanvas .ct-toggle-close svg{width:14px!important;height:14px!important;fill:currentColor!important}
#offcanvas .ct-panel-content{padding:0!important}
#offcanvas .ct-panel-content-inner{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;text-align:left!important;padding:0!important;gap:0!important}
#offcanvas .ct-panel-content-inner>*{margin:0!important}
#offcanvas .site-logo-container{display:flex!important;align-items:center!important;height:38px!important;margin:0 0 40px!important;align-self:flex-start!important;padding:0!important}
#offcanvas .site-logo-container img,#offcanvas .site-logo-container svg{height:32px!important;width:auto!important;max-height:32px!important}
#offcanvas .mobile-menu{width:100%!important;margin:0!important;padding:0!important}
#offcanvas .mobile-menu ul{display:flex!important;flex-direction:column!important;gap:8px!important;margin:0!important;padding:0!important;list-style:none!important}
#offcanvas .mobile-menu li{margin:0!important;padding:0!important;border:0!important}
#offcanvas .mobile-menu .ct-menu-link{display:block!important;font-family:var(--jo-display)!important;font-size:32px!important;font-weight:600!important;line-height:1.2!important;letter-spacing:-.01em!important;color:var(--jo-ink)!important;text-decoration:none!important;text-transform:none!important;padding:10px 0!important;border-bottom:1px solid var(--jo-border)!important;justify-content:flex-start!important;text-align:left!important}
#offcanvas .mobile-menu .ct-menu-link:hover,#offcanvas .mobile-menu .current-menu-item>.ct-menu-link,#offcanvas .mobile-menu [aria-current=page]{color:var(--jo-accent)!important}
#offcanvas .mobile-menu .ct-menu-link:after,#offcanvas .mobile-menu .ct-menu-link:before{display:none!important}
#offcanvas [data-id="button"],#offcanvas .ct-header-cta{width:100%!important;margin:32px 0 0!important;display:block!important}
#offcanvas .ct-button{display:flex!important;width:100%!important;justify-content:center!important;align-items:center!important;padding:14px 26px!important;min-height:0!important;font-family:var(--jo-body)!important;font-size:16px!important;font-weight:600!important;line-height:1.3!important;border-radius:8px!important;background:var(--jo-accent)!important;color:#fff!important}
#offcanvas .ct-button:hover{background:var(--jo-accent-hover)!important}
#offcanvas .mobile-menu li{display:flex!important;flex-direction:column!important;align-items:flex-start!important}
#offcanvas .mobile-menu .ct-menu-link{display:inline-block!important;width:auto!important}
#offcanvas .ct-button{padding:16px 26px!important}
/* ---------- project cards: CTA line ---------- */
.jo-card-cta .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:600!important;color:var(--jo-ink)!important;margin-top:8px!important;display:inline-flex;align-items:center;gap:6px}
.jo-card-cta .elementor-heading-title:after{content:"\2192";transition:transform .2s var(--jo-ease)}
.e-loop-item:hover .jo-card-cta .elementor-heading-title{color:var(--jo-accent)!important}
.e-loop-item:hover .jo-card-cta .elementor-heading-title:after{transform:translateX(3px)}
/* ---------- case study page (design case-study.html) ---------- */
.jo-cs .jo-cs-head{max-width:820px}
.jo-cs .jo-cs-lead,.jo-cs .jo-cs-lead p{max-width:640px;margin:0!important}
.jo-cs-hero img{width:100%!important;aspect-ratio:16/7;object-fit:cover;object-position:top center;border-radius:20px!important;border:1px solid var(--jo-border);display:block}
@media(max-width:767px){.jo-cs-hero img{aspect-ratio:16/10}}
.e-con.jo-cs-facts{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;gap:24px!important;border-top:1px solid var(--jo-border)!important;border-bottom:1px solid var(--jo-border)!important;padding:32px 0!important;grid-template-rows:none!important}
.jo-cs-facts>.e-con{width:auto!important;gap:6px!important;margin:0!important}
.jo-cs-fact-k .elementor-heading-title{font-family:var(--jo-body)!important;font-size:13px!important;font-weight:500!important;letter-spacing:.04em!important;text-transform:uppercase!important;color:var(--jo-muted)!important}
.jo-cs-fact-v .elementor-heading-title,.jo-cs-fact-v .elementor-shortcode{font-family:var(--jo-display)!important;font-size:20px!important;font-weight:600!important;line-height:1.3!important;color:var(--jo-ink)!important}
.jo-cs-live{color:var(--jo-accent)!important;text-decoration:none!important;word-break:break-word}
.jo-cs-live:hover{color:var(--jo-accent-hover)!important}
.jo-cs .jo-cs-text{max-width:760px;gap:16px!important}
.jo-cs-copy p{font-size:16px!important;line-height:1.7!important;color:var(--jo-text-2)!important;margin:0 0 14px!important}
.jo-cs-copy p:last-child{margin-bottom:0!important}
.jo-cs-figure,.jo-cs-gallery figure{margin:0}
.jo-cs-figure img,.jo-cs-gallery img{width:100%;height:auto;display:block;border-radius:20px;border:1px solid var(--jo-border)}
.jo-cs-gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.jo-cs-gallery.is-single{grid-template-columns:1fr}
@media(max-width:767px){.jo-cs-gallery{grid-template-columns:1fr}}
.jo-cs-results{background:var(--jo-black);color:var(--jo-off-white);border-radius:20px;padding:56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px}
.jo-cs-rv{font-family:var(--jo-display);font-size:40px;font-weight:700;line-height:1.1;margin:0 0 6px;color:#F5F4F0}
.jo-cs-rl{font-size:14px;color:#C7C6C2}
@media(max-width:767px){.jo-cs-results{padding:36px 28px}.jo-cs-rv{font-size:32px}}
:root[data-color-mode*="dark"] .jo-cs-results{background:var(--jo-surface);border:1px solid var(--jo-border)}
.jo-cs-quote{margin:0;max-width:760px;background:var(--jo-surface);border:1px solid var(--jo-border);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:18px}
.jo-cs-quote blockquote{margin:0;padding:0;border:0;font-family:var(--jo-display);font-size:22px;line-height:1.35;letter-spacing:-.01em;color:var(--jo-ink)}
.jo-cs-quote figcaption{display:flex;flex-direction:column;gap:2px;font-size:14px;color:var(--jo-ink)}
.jo-cs-quote figcaption span{font-size:13px;color:var(--jo-muted)}
.jo-cs-next{display:flex;flex-direction:column;gap:6px;padding:28px 0;border-top:1px solid var(--jo-border);border-bottom:1px solid var(--jo-border);text-decoration:none!important;color:var(--jo-ink)!important}
.jo-cs-next-k{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--jo-accent)}
.jo-cs-next-t{font-family:var(--jo-display);font-size:28px;font-weight:600;letter-spacing:-.02em;transition:color .2s var(--jo-ease)}
.jo-cs-next:hover .jo-cs-next-t{color:var(--jo-accent)}
.jo-cs .jo-cta-band{flex-direction:row!important}
@media(max-width:767px){.jo-cs .jo-cta-band{flex-direction:column!important;align-items:flex-start!important}}
