/* ═══════════════════════════════════════════════════════════
   Widgets CSS — Theme-independent functional components
   Always loaded, never overridden by themes.
   Handles: Chat, Search, Lightbox, Mobile Menu, Auth,
   Modals, Notifications, Theme Toggle, Overlays
   ═══════════════════════════════════════════════════════════ */
/* Public ambient background contract:
   The frontend body background is shared infrastructure, not a per-theme copy.
   It must derive only from tenant color-picker variables so brand changes,
   theme switches, and translated tenant pages keep one consistent atmosphere.
   Do not hardcode theme colors here; use --bg/--main/--ac1/--ac2.
   Public pages may carry data-admin when an admin is logged in; only the real
   backend shell gets data-admin-shell, so exclude that marker instead. */
body:not([data-admin-shell]){
  --aoe-ambient-bg:
    radial-gradient(circle at 14% -10%, color-mix(in srgb, var(--main) 20%, transparent) 0, transparent 34rem),
    radial-gradient(circle at 88% 0%, color-mix(in srgb, var(--ac1) 18%, transparent) 0, transparent 32rem),
    radial-gradient(circle at 58% 112%, color-mix(in srgb, var(--ac2) 14%, transparent) 0, transparent 36rem),
    linear-gradient(135deg, color-mix(in srgb, var(--bg) 84%, var(--main)) 0%, var(--bg) 52%, color-mix(in srgb, var(--bg) 88%, var(--ac2)) 100%);
  background:var(--aoe-ambient-bg);
  background-attachment:fixed;
}
/* ── CHAT FAB ── */
.chat-fab{position:fixed;z-index:100;border:none;cursor:pointer;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--main);color:var(--txt-main);box-shadow:0 4px 12px rgba(0,0,0,.2);transition:transform .15s ease,opacity .15s ease}
.chat-fab:hover{transform:scale(1.08)}
.chat-fab:active{transform:scale(.95)}
.chat-fab svg{width:24px;height:24px}
/* ── CHAT BOX (widget mode) ── */
/* Legacy chat theme contract:
   index.html still mounts the historical .chat-box fallback before widgets.js
   can replace it. Keep this visually identical to the injected .aoe-chat-box:
   the panel must include visible --main/--ac1/--ac2 theme color, not only
   --card/--bg, otherwise dark themes regress to a detached black popup. */
.chat-box{position:fixed;z-index:101;width:min(460px,calc(100vw - 2rem));max-height:min(520px,75vh);display:none;flex-direction:column;background:linear-gradient(135deg,color-mix(in srgb,var(--main) 28%,var(--card)) 0%,color-mix(in srgb,var(--ac1) 24%,var(--bg)) 54%,color-mix(in srgb,var(--ac2) 14%,var(--bg)) 100%);border:1px solid var(--border);border-radius:var(--rad);box-shadow:var(--shadow),0 28px 70px color-mix(in srgb,var(--main) 18%,rgba(0,0,0,.35));overflow:hidden}
.chat-box.show{display:flex}
.chat-header{padding:12px 16px;font-weight:600;font-size:.9rem;color:var(--txt);border-bottom:1px solid color-mix(in srgb,var(--main) 24%,var(--border-subtle));background:color-mix(in srgb,var(--main) 12%,transparent);display:flex;align-items:center;justify-content:space-between}
.chat-header button{background:none;border:none;cursor:pointer;color:var(--txt);opacity:.5;font-size:1.1rem;padding:4px}
.chat-header button:hover{opacity:1}
.chat-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}
.chat-msg{padding:8px 12px;border-radius:10px;font-size:.88rem;line-height:1.5;max-width:85%;word-wrap:break-word}
.chat-msg.bot{background:color-mix(in srgb,var(--main) 10%,var(--card));color:var(--txt);align-self:flex-start;border:1px solid color-mix(in srgb,var(--main) 24%,var(--border-subtle));border-bottom-left-radius:2px}
.chat-msg.user{background:var(--main);color:var(--txt-main);align-self:flex-end;border-bottom-right-radius:2px}
.chat-input{border-top:1px solid color-mix(in srgb,var(--main) 24%,var(--border-subtle));padding:8px;display:flex;gap:6px;background:color-mix(in srgb,var(--ac1) 18%,var(--card))}
.chat-input input{flex:1;border:1px solid color-mix(in srgb,var(--main) 24%,var(--border-subtle));border-radius:8px;padding:8px 12px;font-size:16px;background:color-mix(in srgb,var(--bg) 84%,var(--main));color:var(--txt);outline:none}
.chat-input input:focus{border-color:var(--main)}
.chat-input input::placeholder{color:color-mix(in srgb,var(--txt) 40%,transparent)}
/* Public chat button theme contract:
   The public fallback widget is outside the per-theme CSS files, so the send
   button must inherit the active theme's shape, shadow, and hover motion through
   tokens instead of using a fixed widget-only button style. */
.chat-input button{background:var(--main);color:var(--txt-main);border:1px solid color-mix(in srgb,var(--main) 72%,var(--border));border-radius:var(--rad);padding:8px 14px;cursor:pointer;font-weight:600;font-size:.85rem;box-shadow:var(--t-shadow,var(--shadow));transition:transform var(--t-speed,.15s) var(--t-ease,ease),box-shadow var(--t-speed,.15s) var(--t-ease,ease),opacity .15s}
.chat-input button:hover{opacity:.95;transform:translateY(-1px);box-shadow:var(--t-shadow-hover,var(--shadow))}
/* ── UPGRADE BUTTONS ── */
.upgrade-btns{display:flex;gap:.5rem;padding:.75rem}
.upgrade-btns button{flex:1;padding:.5rem;font-size:.82rem;border-radius:8px;cursor:pointer;border:1px solid var(--border-subtle);background:var(--card);color:var(--txt);transition:border-color .15s}
.upgrade-btns button:hover{border-color:var(--border)}
/* ── SEARCH WIDGET ── */
.site-search{position:relative;z-index:100}
.ss-toggle{background:var(--card);border:1px solid var(--border-subtle);color:var(--txt);cursor:pointer;padding:.55rem;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.08);transition:opacity .15s,border-color .15s}
.ss-toggle:hover{opacity:1;border-color:var(--border)}
.ss-toggle svg{width:18px;height:18px}
.ss-panel{display:none;position:fixed;width:min(420px,calc(100vw - 2rem));max-height:480px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.15);z-index:300;flex-direction:column;overflow:hidden}
.ss-panel.show{display:flex}
.ss-panel.ss-top-left{top:4rem;left:1.5rem}
.ss-panel.ss-top-right{top:4rem;right:1.5rem}
.ss-panel.ss-bottom-left{bottom:4rem;left:1.5rem}
.ss-panel.ss-bottom-right{bottom:4rem;right:1.5rem}
.ss-input{border:none;border-bottom:1px solid var(--border-subtle);padding:12px 16px;font-size:16px;background:transparent;color:var(--txt);outline:none;width:100%}
.ss-input:focus{border-color:var(--main)}
.ss-input::placeholder{color:color-mix(in srgb,var(--txt) 40%,transparent)}
.ss-results{flex:1;overflow-y:auto;padding:4px 0}
.ss-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:background .1s;color:var(--txt);text-decoration:none}
.ss-item:hover{background:color-mix(in srgb,var(--txt) 5%,var(--card));text-decoration:none}
.ss-item img{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0}
.ss-item-title{font-size:.88rem;font-weight:500;color:var(--txt)}
.ss-item-text{font-size:.78rem;color:color-mix(in srgb,var(--txt) 60%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ss-item-meta{font-size:.72rem;color:color-mix(in srgb,var(--txt) 45%,transparent)}
.ss-empty{padding:2rem;text-align:center;color:color-mix(in srgb,var(--txt) 50%,transparent);font-size:.88rem}
.ss-type{font-size:.68rem;padding:2px 6px;border-radius:4px;background:color-mix(in srgb,var(--txt) 8%,var(--card));color:var(--txt);white-space:nowrap}
/* ── LIGHTBOX ── */
.lightbox{position:fixed;inset:0;background:color-mix(in srgb,var(--bg,#000) 92%,transparent);z-index:10000;display:none;align-items:center;justify-content:center;padding:1rem;cursor:zoom-out}
.lightbox.show{display:flex}
.lightbox img,.lightbox video{max-width:95vw;max-height:90vh;border-radius:8px;object-fit:contain}
.lightbox .lb-close{position:absolute;top:1rem;right:1.5rem;color:var(--txt,#fff);font-size:2rem;cursor:pointer;background:color-mix(in srgb,var(--txt,#fff) 15%,transparent);border:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:10001}
.lightbox .lb-close:hover{background:color-mix(in srgb,var(--txt,#fff) 30%,transparent)}
[data-lightbox]{cursor:zoom-in}
/* Listing cards: shared structure only; theme frontend.css owns the visual tokens. */
article.card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border-radius:var(--listing-card-radius,var(--rad));
  background:var(--listing-card-bg,var(--card));
  border:var(--listing-card-border,1px solid var(--border-subtle));
  box-shadow:var(--listing-card-shadow,var(--t-shadow,var(--shadow)));
  transition:transform var(--listing-card-speed,var(--t-speed,.2s)) var(--t-ease,ease),border-color var(--listing-card-speed,var(--t-speed,.2s)) var(--t-ease,ease),box-shadow var(--listing-card-speed,var(--t-speed,.2s)) var(--t-ease,ease);
}
article.card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
  background:var(--listing-card-sheen,linear-gradient(180deg,color-mix(in srgb,var(--main) 12%,transparent),transparent 38%,color-mix(in srgb,var(--bg) 48%,transparent)));
  opacity:var(--listing-card-sheen-opacity,.8);
}
article.card:hover{
  transform:translateY(var(--listing-card-hover-y,-4px));
  border-color:var(--listing-card-hover-border,color-mix(in srgb,var(--listing-card-accent,var(--main)) 50%,var(--border)));
  box-shadow:var(--listing-card-hover-shadow,var(--t-shadow-hover,var(--shadow)));
}
article.card img{
  transition:transform var(--listing-card-image-speed,.35s) var(--t-ease,ease),filter var(--listing-card-image-speed,.35s) var(--t-ease,ease);
  filter:var(--listing-card-image-filter,saturate(1.08) contrast(1.05));
}
article.card:hover img{
  transform:scale(var(--listing-card-image-hover-scale,1.035));
  filter:var(--listing-card-image-hover-filter,var(--listing-card-image-filter,saturate(1.08) contrast(1.05)));
}
.card-body{
  position:relative;
  z-index:2;
  background:var(--listing-card-body-bg,linear-gradient(180deg,color-mix(in srgb,var(--card) 88%,transparent),var(--card)));
}
.card-body h3{
  display:inline;
  align-self:flex-start;
  padding:var(--listing-card-title-padding,.08em .3em .12em);
  border-left:var(--listing-card-title-border,3px solid var(--listing-card-accent,var(--main)));
  border-radius:var(--listing-card-title-radius,calc(var(--listing-card-radius,var(--rad)) / 2));
  background:var(--listing-card-title-bg,color-mix(in srgb,var(--card) 74%,var(--bg) 26%));
  color:var(--listing-card-title-color,var(--txt));
  text-shadow:var(--listing-card-title-shadow,0 1px 20px rgba(0,0,0,.55));
  line-height:var(--listing-card-title-line-height,1.22);
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.card-body p{
  color:var(--listing-card-text-color,color-mix(in srgb,var(--txt) 72%,transparent));
}
.card-body .card-meta{
  color:var(--listing-card-meta-color,color-mix(in srgb,var(--listing-card-accent,var(--main)) 62%,var(--txt)));
  border-top-color:var(--listing-card-meta-border,color-mix(in srgb,var(--listing-card-accent,var(--main)) 22%,var(--border-subtle)));
  letter-spacing:var(--listing-card-meta-spacing,var(--t-label-spacing,.05em));
  text-transform:var(--listing-card-meta-transform,var(--t-label-transform,uppercase));
}
.feature-card{
  isolation:isolate;
  border:var(--listing-card-border,1px solid var(--border-subtle));
  border-radius:var(--listing-card-radius,var(--rad));
  box-shadow:var(--listing-card-shadow,var(--t-shadow,var(--shadow)));
  transition:transform var(--listing-card-speed,var(--t-speed,.2s)) var(--t-ease,ease),box-shadow var(--listing-card-speed,var(--t-speed,.2s)) var(--t-ease,ease),border-color var(--listing-card-speed,var(--t-speed,.2s)) var(--t-ease,ease);
}
.feature-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
  background:var(--listing-feature-overlay,linear-gradient(90deg,color-mix(in srgb,#000 72%,transparent),transparent 62%),linear-gradient(180deg,transparent 20%,rgba(0,0,0,.82)));
}
.feature-card:hover{
  transform:translateY(var(--listing-card-hover-y,-4px));
  border-color:var(--listing-card-hover-border,color-mix(in srgb,var(--listing-card-accent,var(--main)) 50%,var(--border)));
  box-shadow:var(--listing-card-hover-shadow,var(--t-shadow-hover,var(--shadow)));
}
.feature-card-media{
  filter:var(--listing-card-image-filter,saturate(1.08) contrast(1.05) brightness(.92));
  transition:transform var(--listing-card-image-speed,.35s) var(--t-ease,ease),filter var(--listing-card-image-speed,.35s) var(--t-ease,ease);
}
.feature-card:hover .feature-card-media{
  transform:scale(var(--listing-card-image-hover-scale,1.035));
  filter:var(--listing-card-image-hover-filter,var(--listing-card-image-filter,saturate(1.08) contrast(1.05) brightness(.92)));
}
.feature-card-copy{
  z-index:2;
}
.feature-card-title{
  display:block;
  width:fit-content;
  max-width:min(100%,var(--listing-feature-title-max,42rem));
  padding:var(--listing-card-title-padding,.08em .3em .12em);
  border-left:var(--listing-card-title-border,3px solid var(--listing-card-accent,var(--main)));
  border-radius:var(--listing-card-title-radius,calc(var(--listing-card-radius,var(--rad)) / 2));
  background:var(--listing-card-title-bg,color-mix(in srgb,#000 58%,var(--listing-card-accent,var(--main)) 18%));
  text-shadow:var(--listing-card-title-shadow,0 2px 22px rgba(0,0,0,.72));
  line-height:var(--listing-card-title-line-height,1.12);
}
.feature-card-excerpt{
  text-shadow:0 1px 14px rgba(0,0,0,.75);
}
/* ── MOBILE MENU ── */
.mobile-menu{display:none;position:fixed;inset:0;z-index:9999;background:var(--main);color:var(--txt-main);flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;overflow-y:auto}
.mobile-menu.open{display:flex}
.mobile-menu a{display:block;width:100%;text-align:center;padding:.9rem 1rem;font-size:1.15rem;color:var(--txt-main);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--txt-main,#fff) 10%,transparent);opacity:.9}
.mobile-menu a.mobile-menu-parent{font-weight:700;letter-spacing:.04em}
.mobile-menu a.mobile-menu-subitem{width:min(82%,520px);font-size:1rem;opacity:.78;padding:.65rem 1rem;margin-top:-.25rem;border-bottom-color:color-mix(in srgb,var(--txt-main,#fff) 6%,transparent)}
.mobile-menu a:hover{opacity:1;text-decoration:none}
.mobile-menu a:last-child{border-bottom:none}
.mobile-menu-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--txt-main);cursor:pointer;padding:8px;font-size:1.5rem;opacity:.7}
.mobile-menu-close:hover{opacity:1}
/* ── NAV TOGGLE (hamburger) ── */
.nav-toggle{display:none;background:none;border:none;color:inherit;cursor:pointer;padding:.25rem;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}
/* ── AUTH OVERLAY ── */
.auth-overlay{position:fixed;inset:0;background:transparent;z-index:200;display:none;align-items:flex-end;justify-content:center;padding:0}
.auth-overlay.show{display:flex}
.auth-box{background:var(--card);border-radius:12px 12px 0 0;max-width:480px;width:100%;padding:clamp(1.2rem,3vw,2rem);position:relative;box-shadow:0 -4px 24px rgba(0,0,0,.12);animation:auth-slide-up .25s ease}
@keyframes auth-slide-up{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
.auth-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-subtle);margin-bottom:1rem}
.auth-tabs button{flex:1;padding:10px 12px;font-size:.88rem;font-weight:500;background:transparent;border:none;border-bottom:2px solid transparent;color:color-mix(in srgb,var(--txt) 55%,transparent);cursor:pointer;transition:color .15s,border-color .15s}
.auth-tabs button.active{color:var(--txt);border-bottom-color:var(--main)}
.auth-tabs button:hover{color:var(--txt)}
.auth-form{display:flex;flex-direction:column;gap:10px}
.auth-form input{border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px;font-size:16px;background:var(--bg);color:var(--txt)}
.auth-form input:focus{border-color:var(--main);outline:none}
.auth-form input::placeholder{color:color-mix(in srgb,var(--txt) 40%,transparent)}
.auth-form button[type=submit]{background:var(--main);color:var(--txt-main);border:none;border-radius:8px;padding:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .15s}
.auth-form button[type=submit]:hover{opacity:.85}
.auth-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;color:var(--txt);font-size:1.2rem;opacity:.5;transition:opacity .15s}
.auth-close:hover{opacity:1}
.auth-msg{font-size:.82rem;padding:8px 12px;border-radius:8px;border:1px solid var(--border-subtle);color:var(--txt);margin-bottom:6px}
.auth-msg:empty{display:none}
.auth-msg.err{border-color:var(--err,#e5484d);color:var(--err,#e5484d)}
.auth-msg.ok{border-color:var(--success,#30a46c);color:var(--success,#30a46c)}
/* ── AUTHOR OVERLAY ── */
.author-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--bg) 60%,transparent);z-index:200;display:none;align-items:center;justify-content:center;padding:1rem}
.author-overlay.show{display:flex}
.author-card .ac-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;cursor:pointer;color:var(--txt);font-size:1.1rem;opacity:.5}
.author-card .ac-close:hover{opacity:1}
.author-card .ac-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--border-subtle)}
.author-card .ac-avatar-placeholder{width:64px;height:64px;border-radius:50%;background:var(--border-subtle);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700}
.author-card .ac-bio{font-size:.88rem;line-height:1.6;opacity:.8;margin:.75rem 0}
.author-card .ac-links{display:flex;gap:.5rem;flex-wrap:wrap}
.author-card .ac-links a{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;opacity:.6;text-decoration:none;color:var(--txt)}
.author-card .ac-links a:hover{opacity:1}
/* ── PROFILE OVERLAY ── */
.profile-overlay{position:fixed;inset:0;background:transparent;z-index:200;display:none;align-items:flex-end;justify-content:center;padding:0}
.profile-overlay.show{display:flex}
/* ── MODAL ── */
.modal-bg,.feat-modal-overlay{position:fixed;inset:0;z-index:150;display:none;align-items:center;justify-content:center;padding:1rem;background:color-mix(in srgb,var(--bg) 60%,transparent)}
.modal-bg.show,.feat-modal-overlay.show{display:flex}
/* ── THEME TOGGLE ── */
.theme-toggle{position:fixed;z-index:99;width:44px;height:44px;border:1px solid var(--border-subtle);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--card);color:var(--txt);box-shadow:0 2px 8px rgba(0,0,0,.08);transition:border-color .15s}
.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--border);outline:none}
.theme-toggle svg{width:18px;height:18px}
/* ── NOTIFICATIONS (hidden on frontend) ── */
.notif-btn,.notif-bell,.notif-badge{display:none}
.notif-panel{position:absolute;top:100%;right:0;z-index:60;display:none;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:280px;max-height:360px;overflow-y:auto}
.notif-panel.show{display:block}
.notif-item{padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:.85rem;cursor:pointer;transition:background .1s;color:var(--txt)}
.notif-item:hover{background:color-mix(in srgb,var(--txt) 4%,var(--card))}
.notif-item:last-child{border-bottom:none}
.notif-item.unread{background:color-mix(in srgb,var(--main) 5%,var(--card))}
.notif-empty{padding:2rem;text-align:center;color:color-mix(in srgb,var(--txt) 50%,transparent);font-size:.85rem}
/* ── TOAST / NOTIFICATIONS ── */
.toast,.notif-toast{position:fixed;z-index:10000;background:var(--card);color:var(--txt);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:12px 18px;font-size:.88rem;animation:toastIn .3s ease}
/* ── DROPDOWNS (always readable) ── */
.nav-dd-menu,.user-dd-menu{position:absolute;z-index:60;display:none;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:160px;padding:4px 0}
.nav-dropdown.open>.nav-dd-menu,.user-dd-menu.show{display:block}
.nav-dd-menu a,.nav-dd-menu button,.user-dd-menu a,.user-dd-menu button{display:block;width:100%;padding:8px 14px;font-size:.85rem;text-align:left;color:var(--txt);text-decoration:none;background:none;border:none;cursor:pointer;transition:background .1s}
.nav-dd-menu a:hover,.nav-dd-menu button:hover,.user-dd-menu a:hover,.user-dd-menu button:hover{background:color-mix(in srgb,var(--txt) 5%,var(--card));text-decoration:none}
.nav-dropdown,.user-dropdown{position:relative}
#main-nav .nav-dd-menu a,#main-nav .user-dd-menu a{color:var(--txt)}
.list-dropdown{position:absolute;z-index:50;display:none;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:140px;padding:4px 0}
.list-dropdown.show{display:block}
.list-dd-btn{background:none;border:1px solid var(--border-subtle);border-radius:6px;padding:6px 10px;font-size:.82rem;color:var(--txt);cursor:pointer}
.list-dd-btn:hover{border-color:var(--border)}
.list-dd-menu a,.list-dd-item{display:block;padding:8px 14px;font-size:.85rem;color:var(--txt);text-decoration:none;cursor:pointer;transition:background .1s}
.list-dd-menu a:hover,.list-dd-item:hover{background:color-mix(in srgb,var(--txt) 5%,var(--card))}
.list-dd-item.active{background:color-mix(in srgb,var(--main) 8%,var(--card))}
/* ── EMOJI PICKER ── */
.cm-emoji-picker-wrap{position:relative}
.cm-emoji-picker{position:absolute;z-index:110;display:none;width:320px;max-height:380px;overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:10px}
.cm-emoji-picker.show{display:block}
.cm-emoji-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;border-bottom:1px solid var(--border-subtle);padding-bottom:8px;margin-bottom:8px}
.cm-emoji-tab{padding:5px 4px;font-size:.7rem;font-family:inherit;background:none;border:1px solid var(--border-subtle);border-radius:var(--rad,6px);color:var(--txt);cursor:pointer;text-align:center;transition:.15s;white-space:nowrap}
.cm-emoji-tab:hover{border-color:var(--border);background:color-mix(in srgb,var(--txt) 4%,var(--card))}
.cm-emoji-tab.active{background:var(--main);color:var(--txt-main);border-color:var(--main)}
.cm-emoji-section-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;opacity:.4;padding:.6rem 0 .3rem;display:block}
.cm-emoji-picker button:not(.cm-emoji-tab){background:none;border:none;padding:0;cursor:pointer;border-radius:var(--rad,6px);transition:.1s;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px}
.cm-emoji-picker button:not(.cm-emoji-tab):hover{background:color-mix(in srgb,var(--txt) 8%,var(--card));transform:scale(1.1)}
.cm-emoji-picker img{width:24px;height:24px;display:block}
/* ── AI COMMENT SUGGESTIONS ── */
.cm-ai-modal{display:none;position:fixed;inset:0;z-index:300;background:color-mix(in srgb,var(--bg) 60%,transparent);align-items:center;justify-content:center;padding:1rem}
.cm-ai-modal.show{display:flex}
.cm-ai-panel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem;max-width:480px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:0 12px 40px rgba(0,0,0,.15)}
.cm-ai-panel h4{font-size:.95rem;font-weight:600;margin-bottom:.75rem;display:flex;align-items:center;gap:.4rem}
.cm-ai-suggestion{padding:.6rem .8rem;border:1px solid var(--border-subtle);border-radius:8px;margin-bottom:.4rem;cursor:pointer;font-size:.88rem;line-height:1.5;transition:border-color .15s,background .15s}
.cm-ai-suggestion:hover{border-color:var(--border);background:color-mix(in srgb,var(--txt) 4%,var(--card))}
.cm-ai-loading{text-align:center;padding:1rem;opacity:.6;font-size:.85rem}
.cm-ai-cancel{padding:.35rem .65rem;font-size:.8rem;background:none;border:1px solid var(--border-subtle);border-radius:6px;color:var(--txt);cursor:pointer;margin-top:.5rem}
.author-card{background:var(--card);color:var(--txt);border:1px solid var(--border-subtle);border-top-left-radius:var(--rad);border-top-right-radius:var(--rad);border-bottom:none;padding:clamp(1.5rem,3vw,2.5rem);max-width:480px;width:100%;text-align:center;position:relative;box-shadow:0 -4px 24px rgba(0,0,0,.15);animation:auth-slide-up .3s ease both}
.author-card h3{font-size:clamp(1.1rem,2vw,1.4rem);margin-bottom:.3rem}
.list-dd-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;background:var(--card);border:1px solid var(--border-subtle);border-radius:var(--rad);box-shadow:0 4px 16px rgba(0,0,0,.15);z-index:50;min-width:120px;max-width:calc(100vw - 1rem);padding:.25rem 0;max-height:260px;overflow-y:auto}
.list-dropdown.open .list-dd-menu{display:block}
.list-dd-item:hover{background:var(--border-subtle)}
.lightbox img{object-fit:contain}
.auth-box h2{font-size:clamp(1.2rem,2.8vw,1.5rem);margin-bottom:1.2rem;color:var(--txt);font-weight:700;letter-spacing:-.02em}
.user-dropdown{position:relative;display:inline-block}
.user-dd-menu{position:absolute;top:100%;right:0;background:var(--card);border:1px solid var(--border-subtle);border-radius:var(--rad);box-shadow:var(--shadow);min-width:160px;max-width:90vw;z-index:50;display:none;padding:.3rem 0}
.user-dd-menu.show{display:block}
.user-dd-menu a,.user-dd-menu button{display:block;width:100%;padding:.5rem 1rem;background:none;border:none;color:var(--txt);text-align:left;cursor:pointer;font-size:clamp(.78rem,1.3vw,.88rem)}
.user-dd-menu a:hover,.user-dd-menu button:hover{background:var(--border-subtle);text-decoration:none}
.nav-dropdown{position:relative;display:inline-block}
.nav-dropdown>.nav-dd-menu{position:absolute;top:100%;left:0;background:var(--card);color:var(--txt);border:1px solid var(--border-subtle);border-radius:var(--rad);box-shadow:var(--shadow);min-width:160px;z-index:50;display:none;padding:.3rem 0;margin-top:.3rem}
.nav-dropdown.open>.nav-dd-menu{display:block}
.nav-dd-menu a{display:block;padding:.5rem 1rem;font-size:clamp(.78rem,1.3vw,.88rem);white-space:normal;color:var(--txt);opacity:1}
.nav-dd-menu a:hover{background:var(--border-subtle);text-decoration:none}
.upgrade-btns .btn-sub{background:var(--ac2);color:var(--txt-ac2)}
.upgrade-btns .btn-ot{background:var(--ac1);color:var(--txt-ac1)}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(-.5rem)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.notif-bell:hover{opacity:1}
.notif-badge{position:absolute;top:-2px;right:-4px;background:var(--err,#e5484d);color:#fff;font-size:.6rem;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;padding:0 3px}
.notif-item .notif-from{font-weight:600}
.notif-item .notif-time{opacity:.4;font-size:.7rem}
.ss-top-left .ss-panel,.ss-top-right .ss-panel{top:48px}
.ss-bottom-left .ss-panel,.ss-bottom-right .ss-panel{bottom:48px}
.ss-top-right .ss-panel,.ss-bottom-right .ss-panel{right:0}
.ss-top-left .ss-panel,.ss-bottom-left .ss-panel{left:0}
.cm-emoji-picker.show button:not(.cm-emoji-tab){display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;background:transparent;cursor:pointer;border-radius:var(--rad)}
.cm-emoji-picker.show button:not(.cm-emoji-tab):hover{background:var(--border-subtle)}
.cm-emoji-picker button{background:none;border:none;padding:2px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.1s;width:36px;height:36px}
.cm-emoji-picker button:hover{background:var(--border-subtle);transform:scale(1.15)}
.cm-ai-panel h4 svg{flex-shrink:0}
.cm-ai-cancel:hover{color:var(--txt)}
.notif-bell{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
.list-dd-item{min-height:44px;display:flex;align-items:center}
@media(max-width:600px){.auth-close{width:44px;height:44px}footer[role=contentinfo]{font-size:clamp(.72rem,1.4vw,.82rem)}}
/* ── RESPONSIVE WIDGETS ── */
/* Widgets shell contract: widgets.css loads after every theme frontend stylesheet.
   Even when themes already define the mobile navigation breakpoint, keep the mobile nav visibility rule mirrored here
   so late widget CSS never hides the hamburger or leaves the desktop nav visible on phones again. */
@media(max-width:768px){
  .chat-box{width:calc(100vw - 2rem);right:1rem;bottom:4.5rem}
  .ss-panel{width:calc(100vw - 2rem)}
  .cm-emoji-picker{width:min(280px,calc(100vw - 2rem));left:auto;right:0}
  .nav-toggle{display:flex}#main-nav{display:none}
}
@media(max-width:480px){
  .auth-box{max-width:none;width:100%;border-radius:12px 12px 0 0}
}
/* ── HQ OVERLAY ── */

/* ── SOCIAL HUB FEED LAYOUTS ──
   Theme-independent layout structure for the public Social Hub feed.
   Tenants choose list (default) / mosaic / grid in admin Settings → Social Hub.
   Each card is rendered by _shPostHtml() with shape:
     <article.sh-feed-post>
       <div.cm-avatar>           ← 32px avatar, leftmost
       <div.cm-body>              ← flex:1 — meta + text + media + actions
         <div.cm-meta>...<time></div>
         <div.body.sh-post-body>...</div>
         optional <img|audio|video.sh-post-media>
         <div.cm-actions>         ← horizontal row: comment, share, edit, [reactions push-right]
           <button.sh-comment-btn>   <button.sh-share-btn>   <button.sh-edit-btn>
           <div#sh-react-X style="margin-left:auto"><div.reaction-bar>…</div></div>
         </div>
       </div>
     </article>
   The base rule below makes EVERY .sh-feed-post a horizontal flex (avatar | body)
   regardless of layout container. Without this, avatar collapses under body and
   the reaction bar wraps to a vertical column. This was the visible layout bug. */
.sh-feed-post{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  padding:clamp(.7rem,1.6vw,1rem);
}
.sh-feed-post>.cm-avatar{
  flex:0 0 36px;
  width:36px;
  height:36px;
  align-self:flex-start;
}
.sh-feed-post>.cm-body{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.35rem;
}
.sh-feed-post .cm-meta{
  font-size:.8rem;
  display:flex;
  align-items:baseline;
  gap:.4rem;
  flex-wrap:wrap;
}
.sh-feed-post .cm-meta strong{font-weight:600}
.sh-feed-post .cm-meta time{
  font-size:.72rem;
  opacity:.55;
}
.sh-feed-post .body.sh-post-body{
  font-size:.92rem;
  line-height:1.5;
  word-break:break-word;
  cursor:pointer;
}
.sh-feed-post .body.sh-post-body p:first-child{margin-top:0}
.sh-feed-post .body.sh-post-body p:last-child{margin-bottom:0}
.sh-feed-post img.sh-post-media{
  display:block;
  width:100%;
  max-width:100%;
  border-radius:var(--rad,8px);
  margin:.2rem 0 .4rem;
}
/* Social post edit panel: public mutation controls must be visible in-page,
   not hidden behind low-contrast buttons or native browser prompts. */
.sh-feed-post .sh-edit-wrap{
  width:100%;
  margin:.75rem 0 0;
  padding:clamp(.65rem,1.5vw,.9rem);
  border:1px solid var(--border);
  border-radius:var(--rad,8px);
  background:color-mix(in srgb,var(--card) 88%,var(--main));
  box-shadow:0 12px 30px color-mix(in srgb,var(--bg,#000) 34%,transparent);
}
.sh-feed-post .sh-edit-wrap .pf-text{
  width:100%;
  min-height:110px;
  border:1px solid var(--border);
  background:color-mix(in srgb,var(--bg) 88%,var(--card));
  color:var(--txt);
}
.sh-feed-post .sh-edit-actions{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  margin-top:.65rem;
}
.sh-feed-post .sh-edit-btn{
  opacity:1;
  font-weight:700;
  border-color:var(--border);
  background:color-mix(in srgb,var(--main) 18%,var(--card));
}
.sh-feed-post .sh-delete-post{
  margin-left:auto;
  opacity:1;
  color:var(--err,#e5484d);
  border-color:color-mix(in srgb,var(--err,#e5484d) 45%,var(--border));
  background:color-mix(in srgb,var(--err,#e5484d) 14%,var(--card));
}
@media(max-width:640px){
  .sh-feed-post .sh-edit-actions{align-items:stretch}
  .sh-feed-post .sh-edit-actions .sh-edit-btn{flex:1;justify-content:center}
  .sh-feed-post .sh-delete-post{margin-left:0;flex-basis:100%}
}
/* cm-actions: horizontal row of buttons + reaction bar pushed right by margin-left:auto on the reaction wrapper. */
.sh-feed-post .cm-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.4rem;
  margin-top:.3rem;
}
.sh-feed-post .cm-actions>.sh-react-wrap{
  display:flex;
  align-items:center;
  min-width:0;
  margin-left:auto;
}
.sh-feed-post .cm-actions .reaction-bar{
  display:flex;
  flex-wrap:wrap;
  gap:.25rem;
  margin-top:0;             /* override theme rule that adds top margin */
  align-items:center;
  justify-content:flex-end;
}

/* List layout (default, single column) */
.sh-feed-list{display:block}
.sh-feed-list .sh-feed-post{margin-bottom:1rem}

/* Mosaic layout (adaptive masonry columns) */
.sh-feed-mosaic{column-width:400px;column-gap:clamp(.9rem,1.6vw,1.2rem)}
.sh-feed-mosaic .sh-feed-post{
  break-inside:avoid;
  page-break-inside:avoid;
  -webkit-column-break-inside:avoid;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  width:100%;
  margin:0 0 clamp(.9rem,1.6vw,1.2rem) 0;
}
.sh-feed-mosaic .sh-feed-post>.cm-avatar{
  align-self:flex-start;
}
.sh-feed-mosaic .sh-feed-post>.cm-body{
  width:100%;
}

/* Grid layout (uniform tiles) */
.sh-feed-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));
  gap:clamp(.9rem,1.6vw,1.2rem);
  align-items:start;
}
/* Inside a grid cell, switch the card from row to column so avatar sits ON TOP
   of a tighter card body — this makes uniform tiles read better. */
.sh-feed-grid .sh-feed-post{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.sh-feed-grid .sh-feed-post>.cm-avatar{
  align-self:flex-start;
}
.sh-feed-grid .sh-feed-post>.cm-body{
  width:100%;
}
.sh-feed-grid .sh-feed-post .cm-actions>.sh-react-wrap,
.sh-feed-mosaic .sh-feed-post .cm-actions>.sh-react-wrap{
  margin-left:auto;
  width:auto;
}
.sh-feed-grid .sh-feed-post .cm-actions .reaction-bar,
.sh-feed-mosaic .sh-feed-post .cm-actions .reaction-bar{
  flex-wrap:nowrap;
  justify-content:flex-end;
}
.sh-feed-grid .sh-feed-post .sh-post-media,
.sh-feed-grid .sh-feed-post img.sh-post-media{
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
}
.sh-feed-mosaic .sh-feed-post .sh-post-media,
.sh-feed-mosaic .sh-feed-post img.sh-post-media{
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
}
.sh-feed-grid .sh-feed-post .body.sh-post-body{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sh-feed-mosaic>#inf-social{column-span:all;-webkit-column-span:all}
.sh-feed-grid>#inf-social{grid-column:1/-1}

/* Public markdown rendering contract: widgets.css owns structure; theme frontend.css files own --md-* styling tokens. */
.body .md-table-wrap{width:100%;border:var(--md-table-border,1px solid color-mix(in srgb,var(--main) 34%,var(--border)));overflow-x:auto;-webkit-overflow-scrolling:touch;margin:clamp(1rem,2vw,1.35rem) 0;border-radius:var(--md-table-radius,calc(var(--rad) + 4px));background:var(--md-table-bg,linear-gradient(135deg,color-mix(in srgb,var(--card) 86%,var(--main) 14%),color-mix(in srgb,var(--card) 90%,var(--ac2) 10%)));box-shadow:var(--md-table-shadow,0 16px 42px color-mix(in srgb,var(--main) 10%,transparent))}
.body table.md-table{width:100%;min-width:520px;border-collapse:separate;border-spacing:0;font-size:clamp(.78rem,1.35vw,.92rem);line-height:1.55;color:var(--txt)}
.body table.md-table th,.body table.md-table td{padding:clamp(.62rem,1.2vw,.9rem) clamp(.7rem,1.5vw,1rem);vertical-align:top;border-bottom:1px solid color-mix(in srgb,var(--main) 18%,var(--border-subtle))}
.body table.md-table th{color:var(--txt);background:var(--md-table-head-bg,linear-gradient(180deg,color-mix(in srgb,var(--main) 22%,transparent),color-mix(in srgb,var(--ac1) 10%,transparent)));border-bottom:var(--md-table-head-border,2px solid color-mix(in srgb,var(--main) 70%,var(--border)));font-weight:700;letter-spacing:.01em}
.body table.md-table td{color:color-mix(in srgb,var(--txt) 82%,transparent)}
.body table.md-table tbody tr:nth-child(even){background:var(--md-table-row-even-bg,color-mix(in srgb,var(--main) 5%,transparent))}
.body table.md-table tbody tr:hover{background:var(--md-table-row-hover-bg,color-mix(in srgb,var(--main) 10%,transparent))}
.body table.md-table tr:last-child td{border-bottom:none}
.content-card>.body h2,.content-card>.body h3{margin:clamp(1.6rem,3vw,2.2rem) 0 clamp(.8rem,1.6vw,1rem);padding:clamp(.85rem,1.6vw,1.1rem) clamp(.95rem,2vw,1.25rem);border:var(--md-heading-border,1px solid color-mix(in srgb,var(--main) 28%,var(--border)));border-left:var(--md-heading-border-left,4px solid var(--main));border-radius:var(--md-heading-radius,calc(var(--rad) + 2px));background:var(--md-heading-bg,linear-gradient(135deg,color-mix(in srgb,var(--card) 88%,var(--main) 12%),color-mix(in srgb,var(--card) 92%,var(--ac2) 8%)));box-shadow:var(--md-heading-shadow,0 14px 36px color-mix(in srgb,var(--main) 8%,transparent));line-height:1.28;text-transform:var(--md-heading-transform,none);letter-spacing:var(--md-heading-spacing,var(--t-heading-spacing,normal))}
.content-card>.body h2:first-child,.content-card>.body h3:first-child{margin-top:0}
.post-hero img{transition:transform .24s ease,filter .24s ease}
.post-hero:hover img{transform:scale(1.012);filter:saturate(1.04)}
.content-listing-page>.content-card+.grid{margin-top:clamp(1rem,2.5vw,1.5rem)}
#funnel-step-stream{display:flex;flex-direction:column;gap:clamp(1.5rem,4vw,3rem)}
.funnel-step-page{display:block;width:100%}
.funnel-step-page .funnel-section-inner{--funnel-step-card-bleed:clamp(1.5rem,4vw,2.5rem);margin-inline:auto;width:100%;max-width:none}
.funnel-step-hero{display:block;width:calc(100% + var(--funnel-step-card-bleed) + var(--funnel-step-card-bleed));margin:calc(-1 * var(--funnel-step-card-bleed)) calc(-1 * var(--funnel-step-card-bleed)) clamp(1rem,3vw,1.5rem);overflow:hidden;cursor:zoom-in}
.funnel-step-hero img{display:block;width:100%;height:auto}
@keyframes funnel-cta-pulse{0%,100%{opacity:.28;transform:scale(.96)}50%{opacity:.7;transform:scale(1.05)}}
@keyframes funnel-cta-shine{0%{transform:translateX(-130%) skewX(-18deg)}52%,100%{transform:translateX(130%) skewX(-18deg)}}
.funnel-step-page .funnel-cta{display:flex;justify-content:center;margin:clamp(1.6rem,4.5vw,2.8rem) auto 0;padding:clamp(1rem,2.8vw,1.35rem);position:relative}
.funnel-step-page .funnel-cta::before{content:"";position:absolute;inset:.2rem;border-radius:calc(var(--rad) + 16px);background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--funnel-cta-main,var(--main)) 24%,transparent),color-mix(in srgb,var(--funnel-cta-ac1,var(--ac1)) 16%,transparent) 42%,transparent 72%);filter:blur(13px);opacity:.72;pointer-events:none;animation:funnel-cta-pulse 2.9s ease-in-out infinite}
.funnel-step-page .funnel-cta .funnel-btn-next{display:inline-flex;align-items:center;justify-content:center;gap:.75em;font-size:clamp(1rem,2.2vw,1.25rem);min-width:min(100%,28rem);font-family:var(--funnel-cta-font,inherit);border-radius:var(--funnel-cta-radius,var(--rad));position:relative;z-index:1;isolation:isolate;overflow:hidden;padding:clamp(1rem,2.3vw,1.25rem) clamp(1.7rem,4.6vw,3rem);text-align:center;text-transform:uppercase;letter-spacing:clamp(.08em,.6vw,.16em);font-weight:900;border:1px solid color-mix(in srgb,var(--funnel-cta-text,var(--txt-main)) 40%,var(--border));background:linear-gradient(135deg,var(--funnel-cta-main,var(--main)),color-mix(in srgb,var(--funnel-cta-ac1,var(--ac1)) 82%,var(--funnel-cta-main,var(--main))),var(--funnel-cta-ac2,var(--ac2)));color:var(--funnel-cta-text,var(--txt-main));-webkit-text-stroke:.45px var(--funnel-cta-text-stroke,rgba(0,0,0,.68));text-shadow:0 1px 1px var(--funnel-cta-text-shadow,rgba(0,0,0,.72)),0 2px 5px var(--funnel-cta-text-shadow,rgba(0,0,0,.52)),0 0 12px color-mix(in srgb,var(--funnel-cta-main,var(--main)) 36%,transparent),0 0 1px color-mix(in srgb,var(--funnel-cta-text,var(--txt-main)) 70%,transparent);box-shadow:0 22px 54px color-mix(in srgb,var(--funnel-cta-main,var(--main)) 28%,transparent),0 0 0 1px color-mix(in srgb,var(--funnel-cta-text,var(--txt-main)) 16%,transparent) inset,0 1px 0 color-mix(in srgb,var(--funnel-cta-text,var(--txt-main)) 28%,transparent) inset;transition:transform var(--t-speed,.2s) var(--t-ease,ease),box-shadow var(--t-speed,.2s) var(--t-ease,ease),filter var(--t-speed,.2s) var(--t-ease,ease)}
.funnel-step-page .funnel-cta .funnel-btn-next::before{content:"";position:absolute;inset:-40% -70%;background:linear-gradient(120deg,transparent 36%,color-mix(in srgb,var(--funnel-cta-text,var(--txt-main)) 28%,transparent) 48%,color-mix(in srgb,var(--funnel-cta-text,var(--txt-main)) 44%,transparent) 52%,transparent 64%);z-index:-1;pointer-events:none;animation:funnel-cta-shine 3.4s ease-in-out infinite}
.funnel-step-page .funnel-cta .funnel-btn-next::after{content:"";display:inline-block;width:.58em;height:.58em;margin-left:.1em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;position:relative;z-index:1;transform:rotate(-45deg) translateY(-1px);transition:transform var(--t-speed,.2s) var(--t-ease,ease)}
.funnel-step-page .funnel-cta .funnel-btn-next:hover{filter:saturate(1.15) brightness(1.04);transform:translateY(-2px) scale(1.01);box-shadow:0 30px 74px color-mix(in srgb,var(--funnel-cta-main,var(--main)) 34%,transparent),0 0 0 1px color-mix(in srgb,var(--funnel-cta-text,var(--txt-main)) 24%,transparent) inset,0 1px 0 color-mix(in srgb,var(--funnel-cta-text,var(--txt-main)) 34%,transparent) inset}
.funnel-step-page .funnel-cta .funnel-btn-next:hover::after{transform:rotate(-45deg) translate(.12em,.1em)}
.funnel-step-page .funnel-cta .funnel-btn-next:focus-visible{outline:3px solid color-mix(in srgb,var(--funnel-cta-ac2,var(--ac2)) 70%,var(--funnel-cta-text,var(--txt-main)));outline-offset:4px}
@media (prefers-reduced-motion:reduce){.funnel-step-page .funnel-cta::before,.funnel-step-page .funnel-cta .funnel-btn-next::before{animation:none}.funnel-step-page .funnel-cta .funnel-btn-next,.funnel-step-page .funnel-cta .funnel-btn-next::after{transition:none}}
#funnel-step-sentinel{width:100%;min-height:1px}
