/* Compact course offer, using the shared site button and colour palette. */
.sticky-join[hidden] { display:none; }
.sticky-join { position:fixed;z-index:30;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(1000px,calc(100% - 40px));display:grid;grid-template-columns:220px minmax(0,1fr) auto;align-items:center;gap:24px;padding:16px 20px;border:1px solid #bcd1ff45;border-radius:24px;background:radial-gradient(ellipse at 15% 0,#536faf45,transparent 65%),linear-gradient(115deg,#101a29fa,#151625fa);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 12px 40px #0008,inset 0 1px 0 #e1ebff12; }
.blueprint-cover { position:relative;box-sizing:border-box;width:100%;aspect-ratio:1672 / 941;overflow:hidden;border:1px solid #dce3ff70;border-radius:10px;box-shadow:0 6px 20px #0005; }
.blueprint-cover-photo { display:block;width:100%;height:100%;object-fit:contain; }
.sticky-join-copy { min-width:0; }
.sticky-blueprint-title { margin:0;color:#f3f5ff;font-size:28px;font-weight:650;line-height:1.12;letter-spacing:-.035em; }
.sticky-course-count { margin:6px 0 0;color:#c8d9ff;font-size:14px;font-weight:550;line-height:1.3; }
.sticky-price-row { display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:10px 0 0; }
.sticky-value { color:#c0cadc;white-space:nowrap; }
.sticky-value s { font-size:26px;font-weight:550;line-height:1.1;text-decoration-thickness:2px;text-decoration-color:#f1f4ff; }
.sticky-free { padding:4px 7px;border:1px solid #cbdcff50;border-radius:7px;background:#c8d9ff20;color:#f1f6ff;font-size:17px;letter-spacing:.01em;line-height:1.1; }
.sticky-arrow { display:none; }
.sticky-join .sticky-join-button { min-height:52px;padding:13px 20px;gap:9px;font-size:16px;white-space:nowrap;border-radius:999px;box-shadow:0 4px 18px #899aff20,inset 0 1px 0 #fff5; }
.sticky-join-button img { width:23px;height:23px; }
html:has(body.has-sticky-join) { scroll-padding-bottom:200px; }
@media(prefers-reduced-motion:no-preference) {
 .sticky-join { animation:sticky-join-enter 240ms cubic-bezier(.2,.7,.2,1); }
 @keyframes sticky-join-enter { from {opacity:0;translate:0 10px;} to {opacity:1;translate:0 0;} }
}
@media(max-width:850px) {
 .sticky-join { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:12px 14px;width:min(480px,calc(100% - 24px));padding:14px;bottom:calc(10px + env(safe-area-inset-bottom,0px));border-radius:20px; }
 .sticky-blueprint-title { font-size:clamp(18px,5vw,24px); }
 .sticky-course-count { font-size:12px;margin-top:4px; }
 .sticky-price-row { gap:6px;margin-top:8px;flex-wrap:nowrap; }
 .sticky-value s { font-size:20px; }
 .sticky-free { font-size:12px;padding:4px 5px; }
 .sticky-join .sticky-join-button { grid-column:1 / -1;width:100%;min-height:46px;font-size:15px;padding:11px 12px; }
 .sticky-join-button img { width:21px;height:21px; }
 html:has(body.has-sticky-join) { scroll-padding-bottom:220px; }
}
@media(max-width:360px) {
 .sticky-join { gap:10px;padding:12px; }
 .sticky-course-count { font-size:11px; }
 .sticky-value s { font-size:17px; }
 .sticky-free { font-size:10px;padding:4px 5px; }
 .sticky-price-row { gap:4px; }
 .sticky-join .sticky-join-button { font-size:14px;gap:4px; }
}

/* Homepage/VSL event invitation. Existing community routing and show/hide stay shared. */
.sticky-join--event { grid-template-columns:132px minmax(0,1fr) auto; gap:22px; padding:16px 22px; }
.sticky-event-visual { position:relative; height:106px; isolation:isolate; }
.sticky-event-visual::before { content:''; position:absolute; inset:8px 10px 4px 0; border:1px solid #b9caff50; border-radius:14px; background:#798dc921; transform:rotate(-6deg); }
.sticky-event-visual>img { position:absolute; inset:6px 10px 6px 0; width:calc(100% - 10px); height:calc(100% - 12px); object-fit:cover; object-position:34% center; border:1px solid #b8caff70; border-radius:12px; transform:rotate(-3deg); box-shadow:0 6px 18px #0005; }
.sticky-event-sticker { position:absolute; z-index:1; left:-5px; top:0; padding:4px 9px; border-radius:5px; color:#14201b; background:#d5f4a1; font:800 11px/1.2 Poppins,Arial,sans-serif; letter-spacing:.05em; transform:rotate(-8deg); box-shadow:0 3px 8px #0003; }
.sticky-event-calendar { position:absolute; right:0; bottom:0; display:grid; justify-items:center; gap:2px; width:47px; padding:6px 2px 5px; border:1px solid #d4ddff75; border-radius:9px; color:#f2f5ff; background:linear-gradient(145deg,#435a88,#232d4b); transform:rotate(7deg); box-shadow:0 4px 12px #0005; }
.sticky-event-calendar strong { font:700 27px/1 Inter,Arial,sans-serif; letter-spacing:-.05em; }
.sticky-event-calendar>span { font:700 9px/1.2 Poppins,Arial,sans-serif; letter-spacing:.13em; }
.sticky-event-eyebrow { margin:0 0 6px; color:#c7d6f7; font-size:10px; font-weight:650; line-height:1.4; letter-spacing:.07em; }
.sticky-event-title { margin:0; color:#f3f6ff; font-size:28px; line-height:1.08; font-weight:700; letter-spacing:-.04em; }
.sticky-event-topic { margin:4px 0 0; color:#c3baff; font-size:17px; line-height:1.25; font-weight:550; }
.sticky-event-date { margin:7px 0 0; color:#c2cee3; font-size:13px; line-height:1.35; }
.sticky-event-action { min-width:0; text-align:center; }
.sticky-event-availability { display:flex; align-items:center; justify-content:center; gap:11px; margin:0 0 9px; padding:8px 15px; border:1px solid #ff788475; border-radius:13px; background:linear-gradient(115deg,#ff59652b,#cd314d12); text-align:left; }
.sticky-event-spots-number { color:#ff858f; font:800 44px/.95 Inter,Arial,sans-serif; letter-spacing:-.065em; font-variant-numeric:tabular-nums; text-shadow:0 0 22px #ff69752b; }
.sticky-event-spots-copy { display:grid; gap:3px; }
.sticky-event-spots-copy strong { color:#ff9ca5; font-size:15px; line-height:1.15; font-weight:700; }
.sticky-event-spots-copy>span { color:#dba9b2; font-size:10px; line-height:1.3; }
.sticky-event-action>p { margin:7px 0 0; color:#bdc9df; font-size:11px; line-height:1.4; }
.sticky-join--event .sticky-join-button { width:100%; font-size:15px; }
@media(max-width:850px) {
 .sticky-join--event { grid-template-columns:94px minmax(0,1fr); gap:12px 16px; padding:14px; }
 .sticky-event-visual { height:105px; }
 .sticky-event-visual>img { object-position:30% center; }
 .sticky-event-title { font-size:24px; }
 .sticky-event-topic { font-size:15px; }
 .sticky-event-eyebrow { font-size:9px; letter-spacing:.04em; margin-bottom:5px; }
 .sticky-event-date { font-size:12px; margin-top:6px; }
 .sticky-event-action { grid-column:1/-1; }
 html:has(body.has-sticky-join .sticky-join--event) { scroll-padding-bottom:315px; }
 .sticky-event-availability { padding:6px 12px; gap:10px; margin-bottom:8px; }
 .sticky-event-spots-number { font-size:38px; }
 .sticky-join--event .sticky-join-button { min-height:46px; font-size:15px; }
 .sticky-event-action>p { margin-top:6px; }
}
@media(max-width:380px) {
 .sticky-join--event { grid-template-columns:78px minmax(0,1fr); gap:10px 12px; padding:12px; }
 .sticky-event-title { font-size:21px; }
 .sticky-event-topic { font-size:13px; }
 .sticky-event-eyebrow { font-size:8px; }
 .sticky-event-calendar { width:39px; }
 .sticky-event-calendar strong { font-size:24px; }
 .sticky-join--event .sticky-join-button { font-size:13px; }
 .sticky-event-action>p { font-size:10px; }
}
