/*
Theme Name: Josephine Osumo – Hello Child
Theme URI: https://josephineosumo.com/
Description: Lightweight purple & gold child theme for Hello Elementor with built-in clarity-call booking, events with WooCommerce tickets, a Tutor LMS course grid and a contact form.
Author: Josephine Osumo
Template: hello-elementor
Version: 1.0.1
Requires PHP: 7.4
Text Domain: jo
*/

/* ============ 1. TOKENS ============ */
:root{
  --jo-purple:#8e1bb0; --jo-plum:#5c1478; --jo-deep:#2b0a3d; --jo-night:#1b0628;
  --jo-ink:#2b1838; --jo-muted:#6f5f7c; --jo-line:#ebe1f1;
  --jo-gold:#d4a63a; --jo-gold-d:#b8892a; --jo-gold-l:#f0d58a;
  --jo-cream:#faf7f2; --jo-lilac:#f6f0fa; --jo-white:#fff;
  --jo-serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --jo-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --jo-r:16px; --jo-wrap:1200px;
  --jo-shadow:0 18px 50px -20px rgba(43,10,61,.28);
  --jo-shadow-s:0 6px 22px -10px rgba(43,10,61,.25);
  --jo-ease:cubic-bezier(.2,.7,.2,1);
  --jo-grad:linear-gradient(135deg,#2b0a3d 0%,#4a0f63 55%,#6d1890 100%);
  --jo-gold-grad:linear-gradient(135deg,#f0d58a 0%,#d4a63a 45%,#b8892a 100%);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--jo-white);color:var(--jo-ink);font-family:var(--jo-sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--jo-purple);text-decoration:none;transition:color .2s}
a:hover{color:var(--jo-gold-d)}
h1,h2,h3,h4,h5,h6{font-family:var(--jo-serif);color:var(--jo-deep);font-weight:600;line-height:1.15;margin:0 0 .5em}
::selection{background:var(--jo-gold-l);color:var(--jo-deep)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.jo-skip:focus{position:fixed!important;top:10px;left:10px;width:auto;height:auto;clip:auto;z-index:100000;background:#fff;padding:10px 16px;border-radius:8px}
#jo-page{overflow:clip;min-height:100vh;display:flex;flex-direction:column}
#jo-page>main,#jo-page>#content,#jo-page>.elementor{flex:1 0 auto}
.jo-ico{width:1.15em;height:1.15em;flex:0 0 auto;vertical-align:-.2em}

/* ============ 2. ELEMENTOR SHELL RESET ============ */
#jo-page :where(.e-con){--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0;--gap:0;--row-gap:0;--column-gap:0;--width:100%;padding:0;gap:0;min-height:0}
#jo-page :where(.e-con)>.elementor-widget{margin:0;width:100%}
#jo-page .elementor-widget:not(:last-child){margin-block-end:0}
#jo-page :where(.elementor-widget-text-editor) p:last-child{margin-bottom:0}
.elementor-editor-active .jo-reveal{opacity:1!important;transform:none!important}

/* ============ 3. LAYOUT ============ */
#jo-page :where(.jo-section){position:relative;padding:110px 24px;display:flex;flex-direction:column;align-items:center;isolation:isolate}
#jo-page :where(.jo-wrap){width:100%;max-width:var(--jo-wrap);margin:0 auto;display:flex;flex-direction:column;gap:22px;position:relative;z-index:2}
#jo-page :where(.jo-narrow){max-width:820px}
#jo-page :where(.jo-row){display:flex;flex-direction:row;flex-wrap:wrap;gap:14px;align-items:center}
#jo-page .jo-row>.elementor-widget{width:auto}
#jo-page :where(.jo-col){display:flex;flex-direction:column;gap:18px}
#jo-page :where(.jo-split){display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:center}
#jo-page :where(.jo-split--rev)>:first-child{order:2}
#jo-page :where(.jo-grid-2,.jo-grid-3,.jo-grid-4){display:grid;gap:26px;width:100%}
#jo-page :where(.jo-grid-2){grid-template-columns:repeat(2,1fr)}
#jo-page :where(.jo-grid-3){grid-template-columns:repeat(3,1fr)}
#jo-page :where(.jo-grid-4){grid-template-columns:repeat(4,1fr)}
#jo-page :where(.jo-center){text-align:center;align-items:center}
#jo-page .jo-center .jo-row{justify-content:center}
.jo-bg-cream{background:var(--jo-cream)}
.jo-bg-lilac{background:var(--jo-lilac)}
#jo-page .jo-bg-deep{background:var(--jo-grad);color:#efe6f5}
.jo-bg-deep h1,.jo-bg-deep h2,.jo-bg-deep h3,.jo-bg-deep .elementor-heading-title{color:#fff}

/* ============ 4. TYPE ============ */
.jo-kick,#jo-page .jo-kick .elementor-heading-title{display:inline-flex;align-items:center;gap:12px;font-family:var(--jo-sans);font-size:13px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--jo-gold-d);margin:0}
.jo-kick::before,#jo-page .jo-kick .elementor-heading-title::before{content:"";width:34px;height:2px;background:var(--jo-gold-grad);border-radius:2px}
#jo-page .jo-center .jo-kick .elementor-heading-title::after{content:"";width:34px;height:2px;background:var(--jo-gold-grad);border-radius:2px}
.jo-kick--light,.jo-bg-deep .jo-kick .elementor-heading-title,.jo-hero .jo-kick .elementor-heading-title{color:var(--jo-gold-l)!important}
#jo-page .jo-title .elementor-heading-title{font-size:clamp(32px,4vw,50px);line-height:1.12;margin:0;letter-spacing:-.01em}
#jo-page .jo-title em,#jo-page .jo-h1 em,.jo-ph-title em{font-style:italic;font-weight:500;background:var(--jo-gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.05em}
#jo-page .jo-lead,#jo-page .jo-lead p{font-size:19px;color:var(--jo-muted);max-width:720px;margin:0}
.jo-center .jo-lead,.jo-center .jo-lead p{margin-left:auto;margin-right:auto}
#jo-page .jo-bg-deep .jo-lead,#jo-page .jo-bg-deep .jo-lead p,#jo-page .jo-pagehero .jo-lead p,.jo-bg-deep p{color:#dccfe6}
.jo-prose p{margin:0 0 1.1em}
.jo-prose h2{font-size:32px;margin-top:1.2em}
.jo-prose ul{padding-left:1.2em}

/* ============ 5. BUTTONS ============ */
#jo-page .elementor-widget-button.jo-btn{all:unset;display:block;width:auto}
#jo-page .elementor-widget-button.jo-btn::after{display:none}
.jo-btn,#jo-page .jo-btn .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 30px;border-radius:60px;font-family:var(--jo-sans);font-size:15px;font-weight:700;letter-spacing:.03em;line-height:1.2;border:2px solid transparent;background:var(--jo-purple);color:#fff;cursor:pointer;position:relative;overflow:hidden;transition:transform .35s var(--jo-ease),box-shadow .35s var(--jo-ease),background .3s,color .3s,border-color .3s;text-decoration:none;fill:currentColor}
.jo-btn:hover,#jo-page .jo-btn .elementor-button:hover{transform:translateY(-3px);box-shadow:0 14px 30px -12px rgba(142,27,176,.6);color:#fff}
.jo-btn--gold,#jo-page .jo-btn--gold .elementor-button{background:var(--jo-gold-grad);color:var(--jo-deep)}
.jo-btn--gold:hover,#jo-page .jo-btn--gold .elementor-button:hover{color:var(--jo-deep);box-shadow:0 14px 30px -12px rgba(212,166,58,.75)}
.jo-btn--gold::after,#jo-page .jo-btn--gold .elementor-button::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);animation:jo-shine 4.5s 1.5s infinite}
@keyframes jo-shine{0%,70%{left:-60%}100%{left:130%}}
.jo-btn--line,#jo-page .jo-btn--line .elementor-button{background:transparent;color:var(--jo-purple);border-color:var(--jo-purple)}
.jo-btn--line:hover,#jo-page .jo-btn--line .elementor-button:hover{background:var(--jo-purple);color:#fff}
.jo-btn--line-light,#jo-page .jo-btn--line-light .elementor-button{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.jo-btn--line-light:hover,#jo-page .jo-btn--line-light .elementor-button:hover{background:#fff;color:var(--jo-deep);border-color:#fff}
.jo-btn--sm,#jo-page .jo-btn--sm .elementor-button{padding:11px 20px;font-size:14px}
.jo-btn--muted{background:#e9e3ee;color:var(--jo-muted);cursor:default}
.jo-btn--muted:hover{transform:none;box-shadow:none;color:var(--jo-muted)}
.jo-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--jo-purple)}
.jo-link .jo-ico{transition:transform .3s var(--jo-ease)}
.jo-link:hover .jo-ico{transform:translateX(5px)}

/* ============ 6. HEADER ============ */
.jo-header{position:sticky;top:0;z-index:999;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:box-shadow .3s,border-color .3s}
.admin-bar .jo-header{top:32px}
.jo-header.is-stuck{box-shadow:0 8px 30px -18px rgba(43,10,61,.45);border-color:var(--jo-line)}
.jo-header__in{max-width:1320px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:28px;transition:padding .3s}
.jo-header.is-stuck .jo-header__in{padding-top:8px;padding-bottom:8px}
.jo-logo{display:flex;align-items:center;gap:12px;color:var(--jo-deep);flex:0 0 auto}
.jo-logo__img{width:62px;height:62px;object-fit:contain;border-radius:50%;transition:width .3s,height .3s}
.jo-header.is-stuck .jo-logo__img{width:50px;height:50px}
.jo-logo__txt{display:flex;flex-direction:column;line-height:1.15}
.jo-logo__txt b{font-family:var(--jo-serif);font-size:21px;font-weight:600;color:var(--jo-deep)}
.jo-logo__txt small{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--jo-gold-d);font-weight:700}
.jo-nav{margin-left:auto}
.jo-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.jo-nav li{position:relative}
.jo-nav a{display:block;padding:10px 14px;font-size:15px;font-weight:600;color:var(--jo-ink);position:relative}
.jo-nav>ul>li>a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:var(--jo-gold-grad);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--jo-ease)}
.jo-nav>ul>li>a:hover::after,.jo-nav>ul>li.current-menu-item>a::after,.jo-nav>ul>li.current_page_item>a::after{transform:scaleX(1)}
.jo-nav a:hover,.jo-nav .current-menu-item>a{color:var(--jo-purple)}
.jo-nav .sub-menu{position:absolute;top:100%;left:0;min-width:220px;background:#fff;border-radius:12px;box-shadow:var(--jo-shadow);padding:8px;display:block;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s}
.jo-nav li:hover>.sub-menu,.jo-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.jo-nav .sub-menu a{padding:9px 12px;border-radius:8px}
.jo-nav .sub-menu a:hover{background:var(--jo-lilac)}
.jo-nav__cta-m{display:none!important}
.jo-burger{display:none;margin-left:auto;width:46px;height:46px;border:0;background:var(--jo-lilac);border-radius:12px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.jo-burger span{display:block;width:22px;height:2px;background:var(--jo-deep);border-radius:2px;transition:.3s}
.jo-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.jo-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.jo-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ============ 7. HERO (home) ============ */
#jo-page :where(.jo-hero){background:var(--jo-grad);color:#eadcf3;padding:90px 24px 130px;min-height:calc(100svh - 90px);justify-content:center;overflow:hidden}
#jo-page .jo-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 70% at 85% 30%,rgba(212,166,58,.28),transparent 60%),radial-gradient(50% 60% at 0% 100%,rgba(142,27,176,.55),transparent 70%)}
#jo-page .jo-hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:90px;background:#fff;z-index:1;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0 60C240 10 480 0 720 30s480 60 720 10v50H0z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0 60C240 10 480 0 720 30s480 60 720 10v50H0z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat}
#jo-page .jo-hero--cream::after{background:var(--jo-cream)}
#jo-page .jo-h1 .elementor-heading-title{font-size:clamp(40px,5.6vw,76px);line-height:1.04;color:#fff;margin:0;letter-spacing:-.015em}
#jo-page .jo-hero .jo-lead,#jo-page .jo-hero .jo-lead p{color:#dccfe6;font-size:20px}
.jo-hero__trust{display:flex;align-items:center;gap:16px;margin-top:8px;font-size:14px;color:#cdb9dc}
.jo-hero__trust img{width:62px;height:62px;border-radius:50%;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.jo-hero__trust b{display:block;color:#fff;font-size:15px}
.jo-portrait{position:relative;justify-self:center;width:min(100%,500px);aspect-ratio:4/5}
.jo-portrait__frame{position:absolute;inset:0;border-radius:260px 260px 24px 24px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);z-index:2}
.jo-portrait__frame img{width:100%;height:100%;object-fit:cover;object-position:42% 30%;transform:scale(1.04);transition:transform 6s var(--jo-ease)}
.jo-portrait:hover .jo-portrait__frame img{transform:scale(1.1)}
.jo-portrait__ring{position:absolute;inset:-18px 18px 18px -18px;border:2px solid var(--jo-gold);border-radius:270px 270px 30px 30px;z-index:1;animation:jo-float 7s ease-in-out infinite}
.jo-portrait__orb{position:absolute;width:150px;height:150px;right:-40px;top:8%;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f7e3a6,#d4a63a 55%,#9e7422);filter:blur(.3px);opacity:.85;z-index:0;animation:jo-float 9s ease-in-out infinite reverse}
.jo-badge{position:absolute;z-index:3;background:#fff;color:var(--jo-ink);border-radius:16px;padding:14px 18px;box-shadow:var(--jo-shadow);display:flex;align-items:center;gap:12px;font-size:13px;line-height:1.3;animation:jo-float 6s ease-in-out infinite}
.jo-badge b{display:block;font-family:var(--jo-serif);font-size:26px;color:var(--jo-purple);line-height:1}
.jo-badge img{width:46px;height:46px;border-radius:50%}
.jo-badge--a{left:-40px;bottom:16%}
.jo-badge--b{right:-26px;bottom:-14px;animation-delay:-3s}
@keyframes jo-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* ============ 8. MARQUEE ============ */
#jo-page :where(.jo-marquee){padding:0;background:var(--jo-deep);overflow:hidden}
.jo-marquee__track{display:flex;gap:0;width:max-content;animation:jo-marq 40s linear infinite}
.jo-marquee:hover .jo-marquee__track{animation-play-state:paused}
.jo-marquee__track span{display:inline-flex;align-items:center;gap:22px;padding:22px 22px;font-family:var(--jo-serif);font-size:22px;font-style:italic;color:#f3e9d2;white-space:nowrap}
.jo-marquee__track span::after{content:"✦";font-style:normal;color:var(--jo-gold);font-size:16px}
@keyframes jo-marq{to{transform:translateX(-50%)}}

/* ============ 9. CARDS ============ */
.jo-card{position:relative;background:#fff;border:1px solid var(--jo-line);border-radius:var(--jo-r);padding:36px 30px;display:flex;flex-direction:column;gap:12px;height:100%;transition:transform .45s var(--jo-ease),box-shadow .45s var(--jo-ease),border-color .3s;overflow:hidden}
.jo-card::before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--jo-gold-grad);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--jo-ease)}
.jo-card:hover{transform:translateY(-8px);box-shadow:var(--jo-shadow);border-color:transparent}
.jo-card:hover::before{transform:scaleX(1)}
.jo-card h3{font-size:24px;margin:6px 0 0}
.jo-card p{margin:0;color:var(--jo-muted);font-size:16px}
.jo-card ul{margin:4px 0 0;padding:0;list-style:none;font-size:15px}
.jo-card li{display:flex;gap:10px;padding:4px 0;color:var(--jo-ink)}
.jo-card li .jo-ico{color:var(--jo-gold-d);margin-top:.25em}
.jo-card .jo-link{margin-top:auto;padding-top:10px}
.jo-icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:var(--jo-lilac);color:var(--jo-purple);transition:background .4s,color .4s,transform .5s var(--jo-ease)}
.jo-icon .jo-ico{width:30px;height:30px}
.jo-card:hover .jo-icon{background:var(--jo-gold-grad);color:var(--jo-deep);transform:rotate(-8deg) scale(1.05)}
.jo-card--dark{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#e9dcf2}
.jo-card--dark h3{color:#fff}
.jo-card--dark p{color:#cdb9dc}
.jo-card--dark .jo-icon{background:rgba(212,166,58,.16);color:var(--jo-gold-l)}
.jo-card--feature{background:var(--jo-grad);border:0;color:#e9dcf2}
.jo-card--feature h3{color:#fff}.jo-card--feature p{color:#d6c4e2}.jo-card--feature li{color:#efe6f5}
.jo-card--feature .jo-icon{background:rgba(212,166,58,.18);color:var(--jo-gold-l)}
.jo-card--feature .jo-link{color:var(--jo-gold-l)}
.jo-card__tag{position:absolute;top:22px;right:22px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;border-radius:30px;background:var(--jo-gold-grad);color:var(--jo-deep)}

/* ============ 10. ABOUT / PHOTO ============ */
.jo-photo{position:relative;border-radius:var(--jo-r);overflow:visible}
.jo-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:42% 30%;border-radius:var(--jo-r);box-shadow:var(--jo-shadow)}
.jo-photo--wide img{aspect-ratio:3/2}
.jo-photo::before{content:"";position:absolute;inset:24px -24px -24px 24px;border:2px solid var(--jo-gold);border-radius:var(--jo-r);z-index:-1}
.jo-photo__seal{position:absolute;left:-30px;bottom:-30px;width:120px!important;height:120px;aspect-ratio:1!important;border-radius:50%!important;box-shadow:var(--jo-shadow);animation:jo-spin 30s linear infinite}
@keyframes jo-spin{to{transform:rotate(360deg)}}
.jo-checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}
.jo-checks li{display:flex;gap:10px;align-items:flex-start;font-weight:600;font-size:16px}
.jo-checks .jo-ico{color:#fff;background:var(--jo-gold-grad);border-radius:50%;padding:4px;width:24px;height:24px;margin-top:2px}
.jo-sign{font-family:var(--jo-serif);font-style:italic;font-size:28px;color:var(--jo-purple)}

/* ============ 11. STATS ============ */
.jo-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;width:100%;border-radius:var(--jo-r);overflow:hidden;background:#fff;box-shadow:var(--jo-shadow)}
.jo-stat{padding:40px 20px;text-align:center;position:relative}
.jo-stat+.jo-stat::before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:1px;background:var(--jo-line)}
.jo-stat b{display:block;font-family:var(--jo-serif);font-size:54px;line-height:1;color:var(--jo-purple);font-weight:600}
.jo-stat b sup{font-size:.5em;color:var(--jo-gold-d);top:-.8em}
.jo-stat span{display:block;margin-top:10px;font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--jo-muted)}
.jo-stats--lift{margin-top:-80px;position:relative;z-index:5}

/* ============ 12. QUOTE ============ */
.jo-quote{position:relative;max-width:900px;margin:0 auto;text-align:center}
.jo-quote__mark{display:block;font-family:var(--jo-serif);font-size:120px;line-height:.6;height:50px;background:var(--jo-gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.jo-quote blockquote{margin:16px 0 18px;font-family:var(--jo-serif);font-size:clamp(26px,3.2vw,40px);line-height:1.35;font-style:italic;color:#fff}
.jo-quote cite{font-style:normal;font-size:14px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--jo-gold-l)}

/* ============ 13. STEPS ============ */
.jo-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;counter-reset:s;width:100%}
.jo-steps li{position:relative;padding:30px 24px 26px;background:#fff;border-radius:var(--jo-r);border:1px solid var(--jo-line);counter-increment:s}
.jo-steps li::before{content:"0" counter(s);font-family:var(--jo-serif);font-size:46px;line-height:1;font-weight:600;background:var(--jo-gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;margin-bottom:12px}
.jo-steps li:not(:last-child)::after{content:"";position:absolute;top:52px;right:-22px;width:18px;height:2px;background:var(--jo-gold)}
.jo-steps b{display:block;font-family:var(--jo-serif);font-size:21px;color:var(--jo-deep);margin-bottom:6px}
.jo-steps span{font-size:15px;color:var(--jo-muted)}

/* ============ 14. BOOKS / MASTERMINDS ============ */
.jo-books{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;width:100%}
.jo-book{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:34px 24px;border-radius:var(--jo-r);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);transition:transform .45s var(--jo-ease),background .3s}
.jo-book:hover{transform:translateY(-8px);background:rgba(255,255,255,.1)}
.jo-book img,.jo-book__ph{width:140px;height:200px;object-fit:cover;border-radius:4px 10px 10px 4px;box-shadow:12px 16px 30px -10px rgba(0,0,0,.6);transform:perspective(600px) rotateY(-14deg);transition:transform .6s var(--jo-ease)}
.jo-book:hover img,.jo-book:hover .jo-book__ph{transform:perspective(600px) rotateY(0)}
.jo-book__ph{display:grid;place-items:center;background:linear-gradient(160deg,#d4a63a,#8a6118);color:#2b0a3d;font-family:var(--jo-serif);font-size:20px;font-weight:700;padding:16px;line-height:1.2}
.jo-book h3{color:#fff;font-size:22px;margin:6px 0 0}
.jo-book p{color:#cdb9dc;font-size:15px;margin:0}

/* ============ 15. EVENTS ============ */
.jo-evs{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,380px));justify-content:center;gap:28px;width:100%}
.jo-ev{background:#fff;border-radius:var(--jo-r);overflow:hidden;border:1px solid var(--jo-line);display:flex;flex-direction:column;transition:transform .45s var(--jo-ease),box-shadow .45s var(--jo-ease)}
.jo-ev:hover{transform:translateY(-8px);box-shadow:var(--jo-shadow)}
.jo-ev__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--jo-grad)}
.jo-ev__img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--jo-ease)}
.jo-ev:hover .jo-ev__img{transform:scale(1.07)}
.jo-ev__ph{position:absolute;inset:0;display:grid;place-items:center;color:rgba(240,213,138,.55);background:radial-gradient(circle at 70% 30%,rgba(212,166,58,.35),transparent 60%),var(--jo-grad)}
.jo-ev__ph .jo-ico{width:70px;height:70px}
.jo-ev__date{position:absolute;left:18px;top:18px;min-width:66px;padding:10px 8px;border-radius:12px;background:#fff;text-align:center;box-shadow:var(--jo-shadow-s);line-height:1}
.jo-ev__date b{display:block;font-family:var(--jo-serif);font-size:28px;color:var(--jo-purple)}
.jo-ev__date span{display:block;margin-top:4px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--jo-gold-d)}
.jo-ev__body{padding:24px 26px 26px;display:flex;flex-direction:column;gap:8px;flex:1}
.jo-ev__tags{display:flex;gap:6px;flex-wrap:wrap}
.jo-ev__tags span{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:20px;background:var(--jo-lilac);color:var(--jo-purple)}
.jo-ev h3{font-size:23px;margin:4px 0 2px}
.jo-ev h3 a{color:var(--jo-deep)}
.jo-ev h3 a:hover{color:var(--jo-purple)}
.jo-ev__meta{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:14px;color:var(--jo-muted)}
.jo-ev__meta .jo-ico{color:var(--jo-gold-d);margin-top:.25em}
.jo-ev__ex{margin:6px 0 0;font-size:15px;color:var(--jo-muted)}
.jo-ev__foot{margin-top:auto;padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px dashed var(--jo-line)}
.jo-ev__price{font-family:var(--jo-serif);font-size:22px;font-weight:600;color:var(--jo-deep);line-height:1.1}
.jo-ev__price small{display:block;font-family:var(--jo-sans);font-size:12px;font-weight:700;color:var(--jo-gold-d)}
.jo-ev__btns{display:flex;gap:8px;margin-left:auto}
.jo-evs--list{grid-template-columns:1fr;justify-content:stretch}
.jo-evs--list .jo-ev{flex-direction:row}
.jo-evs--list .jo-ev__media{flex:0 0 38%;aspect-ratio:auto;min-height:240px}
.jo-empty{text-align:center;padding:50px 20px;border:2px dashed var(--jo-line);border-radius:var(--jo-r);color:var(--jo-muted);width:100%}
.jo-empty .jo-ico{width:42px;height:42px;color:var(--jo-gold)}

/* single event */
.jo-event__when{display:flex;align-items:center;gap:10px;color:#f3e9d2;font-size:18px;margin:0}
.jo-count{display:flex;gap:14px;margin-top:10px}
.jo-count span{min-width:84px;padding:14px 10px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(240,213,138,.3);text-align:center;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#d8c6e4}
.jo-count b{display:block;font-family:var(--jo-serif);font-size:34px;color:var(--jo-gold-l);letter-spacing:0;line-height:1.1}
.jo-event__grid{display:grid!important;grid-template-columns:1fr 380px;gap:60px;align-items:start}
.jo-event__card{position:sticky;top:110px;background:#fff;border-radius:var(--jo-r);box-shadow:var(--jo-shadow);padding:30px;border-top:4px solid var(--jo-gold)}
.jo-event__card ul{list-style:none;padding:0;margin:0 0 18px}
.jo-event__card li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--jo-line);font-size:15px}
.jo-event__card li .jo-ico{color:var(--jo-purple);margin-top:.3em}
.jo-event__price{font-family:var(--jo-serif);font-size:34px;color:var(--jo-deep);margin:0 0 14px;line-height:1.1}
.jo-event__price small{display:block;font-family:var(--jo-sans);font-size:13px;color:var(--jo-gold-d);font-weight:700}
.jo-event__card .jo-btn{width:100%}
.jo-event__note{font-size:14px;color:var(--jo-muted);margin:14px 0 0;text-align:center}

/* ============ 16. COURSES ============ */
.jo-courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,370px));justify-content:center;gap:28px;width:100%}
.jo-course{background:#fff;border-radius:var(--jo-r);overflow:hidden;box-shadow:var(--jo-shadow-s);display:flex;flex-direction:column;transition:transform .45s var(--jo-ease),box-shadow .45s var(--jo-ease)}
.jo-course:hover{transform:translateY(-8px);box-shadow:var(--jo-shadow)}
.jo-course__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--jo-grad)}
.jo-course__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--jo-ease)}
.jo-course:hover .jo-course__media img{transform:scale(1.07)}
.jo-course__price{position:absolute;right:16px;bottom:16px;padding:8px 14px;border-radius:30px;background:var(--jo-gold-grad);color:var(--jo-deep);font-weight:800;font-size:14px;box-shadow:var(--jo-shadow-s)}
.jo-course__body{padding:24px 26px 28px;display:flex;flex-direction:column;gap:8px;flex:1}
.jo-course__k{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--jo-gold-d)}
.jo-course h3{font-size:22px;margin:0}
.jo-course h3 a{color:var(--jo-deep)}
.jo-course p{margin:0;font-size:15px;color:var(--jo-muted)}
.jo-course__meta{display:flex;gap:16px;flex-wrap:wrap}
.jo-course__meta span{display:inline-flex;gap:6px;align-items:center;font-size:13px;font-weight:700;color:var(--jo-purple)}
.jo-course .jo-link{margin-top:auto;padding-top:8px}

/* ============ 17. FORMS ============ */
.jo-form{display:flex;flex-direction:column;gap:16px;width:100%}
.jo-form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.jo-form label,.jo-bk label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:var(--jo-deep)}
.jo-form input,.jo-form select,.jo-form textarea,.jo-bk input,.jo-bk textarea{font:inherit;font-weight:400;font-size:16px;color:var(--jo-ink);background:#fff;border:1.5px solid var(--jo-line);border-radius:12px;padding:13px 16px;width:100%;transition:border-color .2s,box-shadow .2s}
.jo-form input:focus,.jo-form select:focus,.jo-form textarea:focus,.jo-bk input:focus,.jo-bk textarea:focus{outline:0;border-color:var(--jo-purple);box-shadow:0 0 0 4px rgba(142,27,176,.12)}
.jo-form .jo-btn{align-self:flex-start}
.jo-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}
.jo-form__err,.jo-bk__err{color:#b23b3b;font-weight:600;margin:0}
.jo-bk__err:empty{display:none}
.jo-sent{text-align:center;padding:40px 24px;border-radius:var(--jo-r);background:var(--jo-lilac)}
.jo-sent .jo-ico{width:56px;height:56px;padding:12px;border-radius:50%;background:var(--jo-gold-grad);color:var(--jo-deep)}
.jo-formcard{background:#fff;border-radius:var(--jo-r);box-shadow:var(--jo-shadow);padding:44px;position:relative}
.jo-formcard::before{content:"";position:absolute;left:44px;right:44px;top:0;height:4px;border-radius:0 0 4px 4px;background:var(--jo-gold-grad)}
.jo-cinfo{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.jo-cinfo li{display:flex;gap:16px;align-items:flex-start}
.jo-cinfo .jo-icon{width:54px;height:54px;border-radius:16px;flex:0 0 auto}
.jo-cinfo b{display:block;font-family:var(--jo-serif);font-size:19px;color:var(--jo-deep)}
.jo-cinfo span{color:var(--jo-muted);font-size:15px}

/* ============ 18. BOOKING ============ */
.jo-bk{display:grid;grid-template-columns:340px 1fr;background:#fff;border-radius:22px;box-shadow:var(--jo-shadow);overflow:hidden;width:100%;text-align:left;min-height:520px}
.jo-bk__info{background:var(--jo-grad);color:#e3d4ee;padding:40px 32px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}
.jo-bk__info::after{content:"";position:absolute;width:260px;height:260px;right:-120px;bottom:-120px;border-radius:50%;background:radial-gradient(circle,rgba(212,166,58,.45),transparent 70%)}
.jo-bk__badge{align-self:flex-start;display:inline-flex;gap:6px;align-items:center;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;border-radius:30px;background:var(--jo-gold-grad);color:var(--jo-deep)}
.jo-bk__info h3{color:#fff;font-size:30px;margin:0}
.jo-bk__info p{margin:0;font-size:15px}
.jo-bk__info ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:15px}
.jo-bk__info li{display:flex;gap:10px;align-items:flex-start}
.jo-bk__info li .jo-ico{color:var(--jo-gold-l);margin-top:.25em}
.jo-bk__ltz{color:#fff}
.jo-bk__sel{margin-top:10px;padding:16px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(240,213,138,.35);color:#fff;font-weight:700;position:relative;z-index:1}
.jo-bk__sel small{display:block;font-weight:400;color:#cdb9dc}
.jo-bk__main{padding:36px 38px;position:relative}
.jo-bk__step{display:none;flex-direction:column;gap:16px;animation:jo-in .45s var(--jo-ease)}
.jo-bk__step.is-on{display:flex}
@keyframes jo-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.jo-bk__head{display:flex;align-items:center;justify-content:space-between}
.jo-bk__month{font-family:var(--jo-serif);font-size:24px;color:var(--jo-deep)}
.jo-bk__nav{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--jo-line);background:#fff;color:var(--jo-deep);cursor:pointer;display:grid;place-items:center;padding:0;transition:.2s}
.jo-bk__nav:hover:not(:disabled){background:var(--jo-purple);border-color:var(--jo-purple);color:#fff}
.jo-bk__nav:disabled{opacity:.35;cursor:default}
.jo-bk__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.jo-bk__grid .dow{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--jo-muted);padding:6px 0}
.jo-bk__grid button{aspect-ratio:1;max-height:56px;border:0;border-radius:12px;background:transparent;font:inherit;font-size:15px;color:#bfb3c8;cursor:default;position:relative;padding:0}
.jo-bk__grid button.ok{background:var(--jo-lilac);color:var(--jo-deep);font-weight:700;cursor:pointer;transition:.2s}
.jo-bk__grid button.ok::after{content:"";position:absolute;left:50%;bottom:7px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--jo-gold)}
.jo-bk__grid button.ok:hover{background:#ecdff5;transform:translateY(-2px)}
.jo-bk__grid button.sel{background:var(--jo-purple)!important;color:#fff!important}
.jo-bk__grid button.sel::after{background:var(--jo-gold-l)}
.jo-bk__grid button.today{outline:1.5px solid var(--jo-gold);outline-offset:-2px}
.jo-bk__slots{border-top:1px solid var(--jo-line);padding-top:16px}
.jo-bk__slots h4{font-family:var(--jo-sans);font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--jo-muted);margin:0 0 12px}
.jo-bk__times{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.jo-bk__times button{border:1.5px solid var(--jo-line);border-radius:12px;background:#fff;padding:12px 6px;font:inherit;font-weight:700;font-size:15px;color:var(--jo-deep);cursor:pointer;transition:.2s;line-height:1.2}
.jo-bk__times button small{display:block;font-weight:400;font-size:11px;color:var(--jo-muted)}
.jo-bk__times button:hover{border-color:var(--jo-purple);background:var(--jo-purple);color:#fff}
.jo-bk__times button:hover small{color:#e8d7f3}
.jo-bk__hint{margin:0;color:var(--jo-muted);font-size:15px}
.jo-bk__back{align-self:flex-start;display:inline-flex;gap:6px;align-items:center;border:0;background:none;color:var(--jo-purple);font:inherit;font-weight:700;cursor:pointer;padding:0}
.jo-bk .jo-form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.jo-bk__step--form .jo-btn{align-self:flex-start;margin-top:4px}
.jo-bk__step--done{align-items:center;text-align:center;justify-content:center;min-height:400px}
.jo-bk__tick{width:86px;height:86px;border-radius:50%;background:var(--jo-gold-grad);display:grid;place-items:center;color:var(--jo-deep);animation:jo-pop .6s var(--jo-ease)}
.jo-bk__tick .jo-ico{width:44px;height:44px;stroke-width:2.4}
@keyframes jo-pop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
.jo-bk__when{font-family:var(--jo-serif);font-size:21px;color:var(--jo-purple);margin:0}
.jo-bk.is-loading .jo-bk__main::after{content:"";position:absolute;top:18px;right:18px;width:22px;height:22px;border:3px solid var(--jo-line);border-top-color:var(--jo-purple);border-radius:50%;animation:jo-spin .8s linear infinite}
.jo-bk--off{display:block;padding:40px;text-align:center}

/* ============ 19. PAGE HERO ============ */
#jo-page :where(.jo-pagehero){background:var(--jo-grad);color:#e3d4ee;padding:110px 24px 140px;min-height:52vh;justify-content:center;overflow:hidden}
#jo-page .jo-pagehero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(50% 80% at 90% 10%,rgba(212,166,58,.25),transparent 60%),var(--jo-hero-img,none) center/cover no-repeat;opacity:1}
#jo-page .jo-pagehero[style*="--jo-hero-img"]::before{background:linear-gradient(100deg,rgba(43,10,61,.94) 30%,rgba(43,10,61,.55)),var(--jo-hero-img) center/cover no-repeat}
#jo-page .jo-pagehero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:70px;background:#fff;z-index:1;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 40C360 0 1080 80 1440 30v40H0z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 40C360 0 1080 80 1440 30v40H0z'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat}
#jo-page .jo-pagehero--cream::after{background:var(--jo-cream)}
.jo-ph-title,#jo-page .jo-ph-title .elementor-heading-title{font-size:clamp(38px,5vw,66px);color:#fff;margin:0;line-height:1.08}
.jo-crumbs{display:flex;gap:10px;font-size:14px;font-weight:600;color:#cdb9dc;margin:0}
.jo-crumbs a{color:var(--jo-gold-l)}
.jo-crumbs span{opacity:.5}

/* ============ 20. GOLD SPARKS (ambient animation) ============ */
.jo-spark{position:absolute;bottom:-20px;z-index:0;pointer-events:none;border-radius:50%;background:radial-gradient(circle,#fff6d6 0%,#f0d58a 35%,rgba(212,166,58,0) 70%);opacity:0;animation:jo-rise linear infinite;will-change:transform,opacity}
.jo-spark--star{border-radius:0;background:#f0d58a;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes jo-rise{
  0%{transform:translate3d(0,0,0) scale(.6) rotate(0);opacity:0}
  10%{opacity:var(--o,.8)}
  50%{transform:translate3d(var(--sx,20px),calc(var(--rise,600px) * -.5),0) scale(1) rotate(90deg);opacity:var(--o,.8)}
  85%{opacity:calc(var(--o,.8) * .6)}
  100%{transform:translate3d(calc(var(--sx,20px) * -.5),calc(var(--rise,600px) * -1),0) scale(.4) rotate(180deg);opacity:0}}

/* ============ 21. REVEAL ============ */
.jo-js .jo-reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--jo-ease),transform 1s var(--jo-ease)}
.jo-js .jo-reveal.jo-left{transform:translateX(-40px)}
.jo-js .jo-reveal.jo-right{transform:translateX(40px)}
.jo-js .jo-reveal.jo-zoom{transform:scale(.92)}
.jo-js .jo-reveal.is-in{opacity:1;transform:none}
.jo-d1{transition-delay:.12s!important}.jo-d2{transition-delay:.24s!important}.jo-d3{transition-delay:.36s!important}.jo-d4{transition-delay:.48s!important}
.jo-grid-3>.jo-reveal:nth-child(3n+2),.jo-grid-4>.jo-reveal:nth-child(4n+2),.jo-grid-2>.jo-reveal:nth-child(2n),.jo-evs>.jo-reveal:nth-child(3n+2),.jo-courses>.jo-reveal:nth-child(3n+2){transition-delay:.12s}
.jo-grid-3>.jo-reveal:nth-child(3n),.jo-grid-4>.jo-reveal:nth-child(4n+3),.jo-evs>.jo-reveal:nth-child(3n),.jo-courses>.jo-reveal:nth-child(3n){transition-delay:.24s}
.jo-grid-4>.jo-reveal:nth-child(4n){transition-delay:.36s}
#jo-page .jo-title .elementor-heading-title em{background-size:200% 100%;animation:jo-gold 6s ease-in-out infinite}
@keyframes jo-gold{0%,100%{background-position:0 0}50%{background-position:100% 0}}

/* ============ 22. FOOTER ============ */
.jo-footer{background:var(--jo-night);color:#bfaecd;font-size:15px;margin-top:auto}
.jo-footer__cta{background:var(--jo-gold-grad);padding:0 24px}
.jo-footer__cta-in{max-width:var(--jo-wrap);margin:0 auto;padding:44px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.jo-footer__cta .jo-kick{color:var(--jo-deep)}
.jo-footer__cta .jo-kick::before{background:var(--jo-deep)}
.jo-footer__cta h2{font-size:clamp(28px,3vw,40px);margin:8px 0 0;color:var(--jo-deep)}
.jo-footer__cta .jo-btn{background:var(--jo-deep);color:#fff}
.jo-footer__cta .jo-btn::after{display:none}
.jo-footer__in{max-width:var(--jo-wrap);margin:0 auto;padding:80px 24px 50px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:44px}
.jo-footer h4{font-family:var(--jo-sans);color:#fff;font-size:14px;letter-spacing:.18em;text-transform:uppercase;margin:6px 0 20px}
.jo-footer ul{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:10px}
.jo-footer a{color:#e3d4ee}
.jo-footer a:hover{color:var(--jo-gold-l)}
.jo-footer__in ul a{position:relative;transition:padding .3s,color .3s}
.jo-footer__in ul a:hover{padding-left:6px}
.jo-footer__contact li{display:flex;gap:10px;align-items:flex-start}
.jo-footer__contact .jo-ico{color:var(--jo-gold);margin-top:.3em}
.jo-footer__brand p{margin:18px 0}
.jo-logo--light .jo-logo__txt b{color:#fff}
.jo-logo--light .jo-logo__img{background:#fff;padding:3px}
.jo-footer__seal{width:84px;height:84px;border-radius:50%}
.jo-footer__bar{border-top:1px solid rgba(255,255,255,.08);padding:22px 24px;text-align:center;font-size:13px;color:#8f7da0}
.jo-totop{position:fixed;right:22px;bottom:22px;width:50px;height:50px;border-radius:50%;border:0;background:var(--jo-purple);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:var(--jo-shadow-s);opacity:0;visibility:hidden;transform:translateY(16px);transition:.35s;z-index:900;padding:0}
.jo-totop.is-on{opacity:1;visibility:visible;transform:none}
.jo-totop:hover{background:var(--jo-gold);color:var(--jo-deep)}

/* ============ 23. WOO / TUTOR / PLAIN PAGES (light touch) ============ */
body:not(.elementor-page) #jo-page>main.site-main{max-width:var(--jo-wrap);margin:0 auto;padding:60px 24px 90px;width:100%}
body:not(.elementor-page) .page-header .entry-title{font-size:clamp(32px,4vw,48px)}
.woocommerce .button,.woocommerce button.button,.woocommerce a.button,.woocommerce #respond input#submit,.tutor-btn-primary{background:var(--jo-purple)!important;color:#fff!important;border-radius:40px!important;border:0}
.woocommerce .button:hover,.tutor-btn-primary:hover{background:var(--jo-plum)!important}
.woocommerce .button.alt,.woocommerce #place_order{background:var(--jo-gold-grad)!important;color:var(--jo-deep)!important}
:root{--tutor-color-primary:#8e1bb0;--tutor-color-primary-rgb:142,27,176;--tutor-color-primary-hover:#5c1478}

/* ============ 24. RESPONSIVE ============ */
@media (max-width:1100px){
  .jo-nav a{padding:10px 10px;font-size:14px}
  .jo-header__in{gap:16px}
  .jo-logo__txt small{display:none}
  #jo-page :where(.jo-grid-4){grid-template-columns:repeat(2,1fr)}
  .jo-steps{grid-template-columns:repeat(2,1fr)}
  .jo-steps li::after{display:none}
  .jo-footer__in{grid-template-columns:1fr 1fr}
  .jo-bk{grid-template-columns:1fr}
  .jo-badge--a{left:-10px}
}
@media (max-width:960px){
  .jo-burger{display:flex}
  .jo-header__cta{display:none!important}
  .jo-nav{position:fixed;inset:76px 0 auto 0;background:#fff;max-height:calc(100vh - 76px);overflow:auto;padding:14px 20px 26px;box-shadow:0 20px 40px -20px rgba(43,10,61,.4);transform:translateY(-12px);opacity:0;visibility:hidden;transition:.3s}
  .admin-bar .jo-nav{top:122px}
  .jo-nav.is-open{transform:none;opacity:1;visibility:visible}
  .jo-nav ul{flex-direction:column;gap:0}
  .jo-nav a{padding:14px 6px;font-size:17px;border-bottom:1px solid var(--jo-line)}
  .jo-nav>ul>li>a::after{display:none}
  .jo-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;padding:0 0 0 14px}
  .jo-nav__cta-m{display:inline-flex!important;margin-top:18px;width:100%}
  #jo-page :where(.jo-split){grid-template-columns:1fr;gap:56px}
  #jo-page :where(.jo-split--rev)>:first-child{order:0}
  #jo-page :where(.jo-grid-3){grid-template-columns:1fr 1fr}
  .jo-books{grid-template-columns:1fr 1fr}
  .jo-stats{grid-template-columns:1fr 1fr}
  .jo-stat:nth-child(3)::before{display:none}
  .jo-event__grid{grid-template-columns:1fr!important}
  .jo-event__card{position:static}
  .jo-evs--list .jo-ev{flex-direction:column}
  .jo-portrait{width:min(86%,440px);margin-top:10px}
}
@media (max-width:767px){
  body{font-size:16px}
  .admin-bar .jo-header{top:0}
  #jo-page :where(.jo-section){padding:76px 18px}
  #jo-page :where(.jo-hero){padding:56px 18px 110px;min-height:auto}
  #jo-page :where(.jo-pagehero){padding:76px 18px 110px;min-height:40vh}
  #jo-page :where(.jo-grid-2,.jo-grid-3,.jo-grid-4){grid-template-columns:1fr}
  .jo-books,.jo-steps{grid-template-columns:1fr}
  .jo-checks{grid-template-columns:1fr}
  .jo-form__row,.jo-bk .jo-form__row{grid-template-columns:1fr}
  .jo-formcard{padding:30px 22px}
  .jo-bk__main{padding:26px 18px}
  .jo-bk__info{padding:30px 22px}
  .jo-footer__in{grid-template-columns:1fr;padding-top:60px}
  .jo-logo__img{width:50px;height:50px}
  .jo-logo__txt b{font-size:18px}
  .jo-header__in{padding:12px 16px}
  .jo-badge--a{left:-6px;bottom:10%}
  .jo-badge--b{right:-6px}
  .jo-portrait__orb{width:100px;height:100px;right:-14px}
  .jo-photo::before{inset:14px -12px -14px 12px}
  .jo-photo__seal{left:-8px;bottom:-20px;width:90px!important;height:90px}
  .jo-stat b{font-size:42px}
  .jo-count span{min-width:64px;padding:10px 6px}
  .jo-count b{font-size:26px}
  .jo-ev__btns{margin-left:0;width:100%}
  .jo-ev__btns .jo-btn{flex:1}
  .jo-marquee__track span{font-size:18px;padding:16px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .jo-js .jo-reveal{opacity:1;transform:none}
  .jo-spark{display:none}
}

/* ============ 25. BLOG ============ */
.jo-posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,370px));justify-content:center;gap:28px;width:100%;text-align:left}
.jo-post{background:#fff;border-radius:var(--jo-r);overflow:hidden;box-shadow:var(--jo-shadow-s);display:flex;flex-direction:column;transition:transform .45s var(--jo-ease),box-shadow .45s var(--jo-ease)}
.jo-post:hover{transform:translateY(-8px);box-shadow:var(--jo-shadow)}
.jo-post__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--jo-grad)}
.jo-post__img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--jo-ease)}
.jo-post:hover .jo-post__img{transform:scale(1.07)}
.jo-post__cat{position:absolute;left:16px;top:16px;padding:6px 12px;border-radius:30px;background:#fff;color:var(--jo-purple);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;box-shadow:var(--jo-shadow-s)}
.jo-post__body{padding:22px 26px 28px;display:flex;flex-direction:column;gap:8px;flex:1}
.jo-post__meta{margin:0;font-size:13px;font-weight:700;color:var(--jo-gold-d)}
.jo-post h3{font-size:22px;margin:0}
.jo-post h3 a{color:var(--jo-deep)}
.jo-post h3 a:hover{color:var(--jo-purple)}
.jo-post p{margin:0;font-size:15px;color:var(--jo-muted)}
.jo-post .jo-link{margin-top:auto;padding-top:8px}
.jo-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:10px}
.jo-chips a{padding:9px 18px;border-radius:30px;border:1.5px solid var(--jo-line);font-size:14px;font-weight:700;color:var(--jo-deep);background:#fff}
.jo-chips a:hover,.jo-chips a.is-on{background:var(--jo-purple);border-color:var(--jo-purple);color:#fff}
.jo-pager ul{list-style:none;display:flex;gap:8px;justify-content:center;padding:0;margin:20px 0 0}
.jo-pager a,.jo-pager span{display:grid;place-items:center;min-width:44px;height:44px;border-radius:50%;border:1.5px solid var(--jo-line);font-weight:700;color:var(--jo-deep)}
.jo-pager .current,.jo-pager a:hover{background:var(--jo-purple);border-color:var(--jo-purple);color:#fff}
.jo-h2{font-size:clamp(30px,3.6vw,44px);margin:0}
.jo-h2 em{font-style:italic;font-weight:500;background:var(--jo-gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.jo-article__meta{color:#dccfe6;margin:0;font-size:15px}
#jo-page .jo-article .jo-wrap.jo-narrow{max-width:760px}
.jo-article__body{font-size:18px;line-height:1.8;color:var(--jo-ink)}
.jo-article__body h2,.jo-article__body h3{margin:1.4em 0 .5em}
.jo-article__body img{border-radius:12px;height:auto}
.jo-article__body blockquote{margin:1.6em 0;padding:6px 0 6px 24px;border-left:4px solid var(--jo-gold);font-family:var(--jo-serif);font-size:22px;font-style:italic;color:var(--jo-plum)}
.jo-article__body a{text-decoration:underline;text-underline-offset:3px}
.jo-author{display:flex;gap:22px;align-items:flex-start;margin-top:40px;padding:28px;border-radius:var(--jo-r);background:var(--jo-lilac)}
.jo-author img{width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:42% 25%;flex:0 0 auto;border:3px solid #fff;box-shadow:var(--jo-shadow-s)}
.jo-author b{font-family:var(--jo-serif);font-size:21px;color:var(--jo-deep)}
.jo-author p{margin:6px 0 14px;font-size:15px;color:var(--jo-muted)}
.jo-postnav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}
.jo-postnav a{display:block;padding:18px 20px;border:1.5px solid var(--jo-line);border-radius:14px;color:var(--jo-deep);font-weight:700;font-size:15px}
.jo-postnav a:hover{border-color:var(--jo-purple)}
.jo-postnav a small{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--jo-gold-d)}
.jo-postnav .nx{text-align:right}
.jo-comments{margin-top:40px}
@media (max-width:767px){.jo-author{flex-direction:column}.jo-postnav{grid-template-columns:1fr}.jo-article__body{font-size:17px}}

/* Blog posts built with Elementor: let the article styling win over old per-post colours */
#jo-page .jo-pagehero p.jo-lead{color:#dccfe6}
.jo-article__body .elementor,.jo-article__body .e-con,.jo-article__body .e-con-inner,.jo-article__body .elementor-section,.jo-article__body .elementor-container,.jo-article__body .elementor-column,.jo-article__body .elementor-widget-wrap,.jo-article__body .elementor-element{background:none!important;background-image:none!important;border-color:transparent!important;box-shadow:none!important;max-width:100%!important;width:100%;--padding-left:0;--padding-right:0;padding-left:0!important;padding-right:0!important;--content-width:100%}
.jo-article__body .elementor-background-overlay{display:none!important}
.jo-article__body,.jo-article__body p,.jo-article__body li,.jo-article__body .elementor-widget-text-editor,.jo-article__body .elementor-widget-text-editor *{color:var(--jo-ink)!important;font-family:var(--jo-sans)!important}
.jo-article__body h1,.jo-article__body h2,.jo-article__body h3,.jo-article__body h4,.jo-article__body .elementor-heading-title{color:var(--jo-deep)!important;font-family:var(--jo-serif)!important}
.jo-article__body strong,.jo-article__body b{color:var(--jo-plum)!important}
.jo-article__body blockquote,.jo-article__body blockquote *{color:var(--jo-plum)!important;font-family:var(--jo-serif)!important}
.jo-article__body a{color:var(--jo-purple)!important}
.jo-article__body img{max-width:100%}

.jo-article__body p,.jo-article__body li,.jo-article__body .elementor-widget-text-editor,.jo-article__body .elementor-widget-text-editor span{font-size:18px!important;line-height:1.8!important}
.jo-article__body h2,.jo-article__body h2 *{font-size:30px!important;line-height:1.25!important}
.jo-article__body h3,.jo-article__body h3 *{font-size:24px!important;line-height:1.3!important}
@media (max-width:767px){.jo-article__body p,.jo-article__body li,.jo-article__body .elementor-widget-text-editor,.jo-article__body .elementor-widget-text-editor span{font-size:17px!important}.jo-article__body h2,.jo-article__body h2 *{font-size:25px!important}}
