/* Shared upcoming-event banner in the archive and site footer. */
/* Upcoming workshops: one editorial card, with a separate reservation action. */
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-panel--upcoming:not(.jo-events-panel--empty) { padding:0; border:0; background:transparent; box-shadow:none; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-panel--upcoming .jo-events-panel__title { color:#fff; font-size:clamp(26px,3vw,38px); }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-panel--upcoming .jo-events-panel__eyebrow { color:#e1c477; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__link { grid-template-columns:minmax(220px,.65fr) minmax(0,1.65fr); gap:0; padding:0; overflow:hidden; border:1px solid #ffffff42; border-radius:18px; background:#fbfaf7; align-items:stretch; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__media { width:100%; height:100%; min-height:280px; border-radius:0; background:radial-gradient(ellipse at 0 0,#1c5264,#08111f 85%); }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__image { object-fit:contain; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__media--calendar { flex-direction:column; gap:24px; padding:30px 20px; position:relative; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__calendar-kicker { color:#c5d0da; font-size:11px; text-transform:uppercase; letter-spacing:2px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__date-mark { color:#e1c477; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__date-mark > span { font-size:100px; font-weight:600; letter-spacing:-6px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__date-mark small { color:#fff; font-size:16px; font-weight:600; letter-spacing:0; margin-top:12px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__calendar-place { color:#e1c477; font-size:18px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__content { padding:30px; gap:16px; justify-content:center; align-self:stretch; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__name { font-family:Raleway,sans-serif; font-weight:600; font-size:clamp(24px,2.5vw,34px); line-height:1.25; color:#172033; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__badge--primary { color:#fff; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__meta { gap:8px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__date { font-size:17px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__price { color:#172033; font-size:22px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__bottom { display:flex; width:100%; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding-top:18px; margin-top:2px; border-top:1px solid #e7dfce; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__cta { width:auto; min-width:0; flex:none; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__cta-label { display:flex; align-items:center; gap:18px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown { width:auto; justify-content:flex-start; flex-direction:column; align-items:flex-start; gap:6px; color:#53616b; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-label { color:#53616b; font-size:10px; letter-spacing:1px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-units { display:flex; gap:12px; width:auto; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-unit { display:flex; flex-direction:row; align-items:baseline; gap:4px; min-height:0; padding:0; border:0; border-radius:0; background:none; box-shadow:none; backdrop-filter:none; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-unit strong { width:auto; height:auto; line-height:1.2; font-size:20px; color:#172033; text-shadow:none; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-unit small { color:#53616b; font-size:9px; margin:0; }

:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) :is(.jo-events-panel__grid--count-2,.jo-events-panel__grid--count-3) .jo-events-card__link { grid-template-columns:1fr; grid-template-rows:auto 1fr; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) :is(.jo-events-panel__grid--count-2,.jo-events-panel__grid--count-3) .jo-events-card__media { height:auto; aspect-ratio:1; }
@media(max-width:767px) {
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__link { grid-template-columns:1fr; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__media--calendar { min-height:0; height:auto; padding:22px; gap:14px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__date-mark > span { font-size:64px; letter-spacing:-3px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__content { padding:22px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__bottom { gap:20px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__cta { width:100%; }
}
@media(max-width:767px) {
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__media--calendar { aspect-ratio:auto; }
}

/* Real product excerpt and a glass flip countdown. */
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__excerpt { color:#53616b; font-size:17px; line-height:1.55; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-units { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:300px; max-width:100%; gap:8px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-unit { flex-direction:column; align-items:center; gap:6px; min-height:82px; padding:10px 6px; border:1px solid #ffffff70; border-radius:12px; background:linear-gradient(145deg,#ffffff38,#ffffff08 55%),#163847; box-shadow:inset 0 1px 0 #ffffff50,0 6px 16px #08111f24; backdrop-filter:blur(14px); }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-unit strong { width:100%; height:38px; line-height:38px; font-size:32px; color:#fff; text-shadow:0 1px 3px #0005; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-unit small { color:#e1c477; font-size:10px; letter-spacing:1px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown .jo-flip-leaf { background:#244552; }
@media(max-width:767px) {
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown { width:100%; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-units { width:100%; }
}
/* Three equally sized panels: date, workshop photograph, information. */
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-panel__grid { grid-template-columns:1fr; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card .jo-events-card__link { grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__photo { display:flex; position:relative; align-items:center; justify-content:center; background:#f1eee6; min-width:0; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__photo img { display:block; width:100%; height:100%; object-fit:contain; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__photo-placeholder { position:absolute; bottom:24px; color:#53616b; font-size:14px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card .jo-events-card__media,
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__photo,
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__content { aspect-ratio:1; height:auto; min-height:0; box-sizing:border-box; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__date-mark > span { font-size:clamp(40px,5vw,78px); letter-spacing:-3px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__content { padding:20px; gap:9px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card .jo-events-card__name { font-size:22px; line-height:1.25; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__excerpt { font-size:14px; line-height:1.4; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__bottom { margin-top:auto; padding-top:10px; gap:10px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown,
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-units { width:100%; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-unit { min-height:70px; padding:6px; gap:3px; }
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__cta { width:100%; }
@media(max-width:1100px) {
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card .jo-events-card__link { grid-template-columns:repeat(2,minmax(0,1fr)); }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__content { grid-column:1/-1; aspect-ratio:auto; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__bottom { flex-wrap:nowrap; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown { width:auto; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-units { width:280px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__cta { width:auto; }
}
@media(max-width:600px) {
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card .jo-events-card__media--calendar { padding:12px; gap:12px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__calendar-kicker { font-size:9px; letter-spacing:1px; text-align:center; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__date-mark > span { font-size:36px; letter-spacing:-1px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__date-mark small { font-size:12px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__calendar-place { font-size:15px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__photo-placeholder { font-size:11px; bottom:8px; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__bottom { flex-wrap:wrap; }
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown,
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-units,
 :is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__cta { width:100%; }
}
#footer.footer .jo-footer-events { padding:0; border:0; background:none; box-shadow:none; }
#footer.footer .jo-footer-events__grid { grid-template-columns:1fr; gap:24px; }
#footer.footer .jo-footer-events__head { margin-bottom:24px; }
:is(#footer.footer, .jo-home-events) .jo-events-card__link { text-decoration:none; }
:is(#footer.footer, .jo-home-events) .jo-events-card__content { text-align:left; }
:is(#footer.footer, .jo-home-events) .jo-events-card__meta { color:#172033; }
:is(#footer.footer, .jo-home-events) .jo-events-card__meta :is(time,.jo-events-card__duration) { background:#f5f1e9; border:1px solid #e7dfce; color:#344050; }
:is(#footer.footer, .jo-home-events) .jo-events-card__badge--joined { background:#e4f1e8; color:#245d42; border-color:#a3c9b1; }
:is(#footer.footer, .jo-home-events) .jo-events-card__cta { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:15px 24px; background:var(--jo-button-gold-gradient); color:var(--jo-button-color); border:1px solid var(--jo-button-border); border-radius:8px; font-family:"Source Sans Pro",sans-serif; font-size:15px; font-weight:800; line-height:1.2; text-transform:none; letter-spacing:0; box-shadow:0 14px 30px rgba(201,162,39,.22); }
:is(#footer.footer, .jo-home-events) .jo-events-card__link:hover .jo-events-card__cta { background:var(--jo-button-hover-gradient); color:#fff; }
:is(#footer.footer, .jo-home-events) .jo-events-card__link:focus-visible { outline:3px solid #fff; outline-offset:3px; box-shadow:var(--jo-button-focus-shadow); }

body.jo-home-page .jo-home-events .jo-home-events__grid { grid-template-columns:minmax(0,1fr); gap:24px; }
/* Footer variant: a compact horizontal event strip. */
#footer.footer .jo-events-card .jo-events-card__link { grid-template-columns:120px 120px minmax(0,1fr); align-items:center; padding:18px; gap:18px; min-height:0; }
#footer.footer .jo-events-card .jo-events-card__media,
#footer.footer .jo-events-card__photo,
#footer.footer .jo-events-card__content { aspect-ratio:auto; height:auto; min-height:0; }
#footer.footer .jo-events-card .jo-events-card__media--calendar { padding:16px 8px; gap:10px; border-radius:12px; align-self:stretch; }
#footer.footer .jo-events-card__calendar-kicker { display:none; }
#footer.footer .jo-events-card__date-mark > span { font-size:36px; letter-spacing:-1px; }
#footer.footer .jo-events-card__date-mark small { font-size:12px; margin-top:7px; }
#footer.footer .jo-events-card__calendar-place { font-size:14px; }
#footer.footer .jo-events-card__photo { width:120px; height:120px; border-radius:10px; overflow:hidden; }
#footer.footer .jo-events-card__photo-placeholder { display:none; }
#footer.footer .jo-events-card__content { display:grid; grid-template-columns:minmax(0,1fr) 250px; align-items:center; align-content:center; gap:6px 24px; padding:0; grid-column:auto; }
#footer.footer .jo-events-card__content > :not(.jo-events-card__bottom) { grid-column:1; }
#footer.footer .jo-events-card__badge { justify-self:start; }
#footer.footer .jo-events-card .jo-events-card__name { font-size:20px; }
#footer.footer .jo-events-card__excerpt { -webkit-line-clamp:1; font-size:13px; }
#footer.footer .jo-events-card__price { font-size:18px; }
#footer.footer .jo-events-card__bottom { grid-column:2; grid-row:1 / span 6; width:100%; margin:0; padding:0 0 0 20px; border-top:0; border-left:1px solid #e7dfce; gap:10px; flex-wrap:wrap; }
#footer.footer .jo-events-card__countdown,
#footer.footer .jo-events-card__countdown-units { width:100%; }
#footer.footer .jo-events-card__countdown-unit { min-height:60px; padding:5px 3px; border-radius:9px; }
#footer.footer .jo-events-card__countdown-unit strong { font-size:26px; }
#footer.footer .jo-events-card__countdown-unit small { font-size:8px; }
#footer.footer .jo-events-card__cta { width:100%; }
@media(max-width:1100px) {
 #footer.footer .jo-events-card .jo-events-card__link { grid-template-columns:100px minmax(0,1fr); gap:16px; }
 #footer.footer .jo-events-card__photo { display:none; }
 #footer.footer .jo-events-card__content { grid-template-columns:minmax(0,1fr) 220px; gap:6px 16px; }
 #footer.footer .jo-events-card__bottom { padding-left:16px; }
}
@media(max-width:700px) {
 #footer.footer .jo-events-card .jo-events-card__link { grid-template-columns:80px minmax(0,1fr); padding:16px; gap:14px; align-items:start; }
 #footer.footer .jo-events-card .jo-events-card__media--calendar { padding:14px 4px; align-self:start; }
 #footer.footer .jo-events-card__date-mark > span { font-size:27px; }
 #footer.footer .jo-events-card__date-mark small { font-size:10px; }
 #footer.footer .jo-events-card__calendar-place { font-size:12px; }
 #footer.footer .jo-events-card__content { display:contents; }
 #footer.footer .jo-events-card__content > :not(.jo-events-card__bottom) { grid-column:2; }
 #footer.footer .jo-events-card__media--calendar { grid-row:1 / span 5; }
 #footer.footer .jo-events-card .jo-events-card__name { font-size:18px; }
 #footer.footer .jo-events-card__excerpt { display:none; }
 #footer.footer .jo-events-card__bottom { grid-column:1/-1; grid-row:auto; border-left:0; border-top:1px solid #e7dfce; padding:14px 0 0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }
 #footer.footer .jo-events-card__countdown-units { gap:4px; }
 #footer.footer .jo-events-card__countdown-unit strong { font-size:20px; }
 #footer.footer .jo-events-card__cta { padding:12px 10px; }
 #footer.footer .jo-events-card__cta-label { gap:6px; }
}
@media(max-width:380px) {
 #footer.footer .jo-events-card__bottom { grid-template-columns:1fr; }
}
/* Dark, compact footer banner. */
#footer.footer .jo-events-card .jo-events-card__link { background:radial-gradient(ellipse at 0 0,#163847,#08111f 80%); border-color:rgba(225,196,119,.3); }
#footer.footer .jo-events-card .jo-events-card__link:hover { border-color:rgba(225,196,119,.65); }
#footer.footer .jo-events-card .jo-events-card__name,
#footer.footer .jo-events-card__price { color:#fbfaf7; }
#footer.footer .jo-events-card__excerpt { color:#c5d0da; }
#footer.footer .jo-events-card__meta :is(time,.jo-events-card__duration) { background:rgba(225,196,119,.09); border-color:rgba(225,196,119,.25); color:#e1c477; }
#footer.footer .jo-events-card__bottom { border-color:rgba(225,196,119,.2); }
#footer.footer .jo-events-card__countdown-label { color:#c5d0da; }
#footer.footer .jo-events-card__photo { background:rgba(255,255,255,.06); }
#footer.footer .jo-events-card__photo .woocommerce-placeholder { mix-blend-mode:screen; opacity:.8; }
/* Fit the desktop footer content to the 120px thumbnail. */
@media(min-width:1101px) {
 #footer.footer .jo-events-card .jo-events-card__link { padding:12px; gap:16px; }
 #footer.footer .jo-events-card .jo-events-card__media--calendar { height:120px; padding:10px 6px; gap:8px; align-self:center; }
 #footer.footer .jo-events-card__content { grid-template-columns:auto minmax(0,1fr) 250px; grid-template-rows:auto auto auto auto; gap:5px 12px; align-content:center; }
 #footer.footer .jo-events-card__content > :is(.jo-events-card__badge,.jo-events-card__name,.jo-events-card__excerpt) { grid-column:1 / 3; }
 #footer.footer .jo-events-card__content > .jo-events-card__meta { grid-column:1; grid-row:4; }
 #footer.footer .jo-events-card__content > .jo-events-card__price { grid-column:2; grid-row:4; }
 #footer.footer .jo-events-card__bottom { grid-column:3; grid-row:1 / 5; gap:6px; padding-left:16px; }
 #footer.footer .jo-events-card__countdown { gap:4px; }
 #footer.footer .jo-events-card__countdown-unit { min-height:52px; padding:2px 3px; gap:0; }
 #footer.footer .jo-events-card__countdown-unit small { line-height:10px; }
 #footer.footer .jo-events-card__cta { min-height:46px; padding:12px 20px; }
}
/* Match the background of the neighbouring IV edition banner. */
#footer.footer .jo-events-card .jo-events-card__link {
 background:linear-gradient(135deg,rgba(201,162,39,.13) 0%,rgba(201,162,39,0) 36%),linear-gradient(135deg,rgba(8,17,31,.86) 0%,rgba(14,23,36,.82) 54%,rgba(12,61,84,.64) 100%);
}
/* Shared calendar tile follows the muted gold/navy palette. */
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card .jo-events-card__media--calendar {
 background:rgba(8,17,31,.32);
 border:1px solid rgba(225,196,119,.18);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
/* Countdown glass uses the same muted navy/gold palette as the footer date. */
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown-unit {
 background:linear-gradient(145deg,#24282a 0%,#121c28 55%,#101a26 100%);
 border-color:#494537;
 backdrop-filter:none;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 4px 12px rgba(0,0,0,.16);
}
:is(.jo-harmonia-events #main, #footer.footer, .jo-home-events) .jo-events-card__countdown .jo-flip-leaf { background:#111b27; }
/* Preserve the dark date tile against the light hero card as well. */
:is(.jo-harmonia-events #main, .jo-home-events) .jo-events-card .jo-events-card__media--calendar {
 background:linear-gradient(rgba(8,17,31,.32),rgba(8,17,31,.32)),linear-gradient(135deg,rgba(201,162,39,.13),transparent 36%),linear-gradient(135deg,rgba(8,17,31,.86),rgba(14,23,36,.82) 54%,rgba(12,61,84,.64)),#090f1a;
}
