/* =====================================================================
   worldsedge - inner screens (dark restyle of legacy content)

   Every screen that is not the home page is still built by a legacy
   controller and handed to layouts/layout.php through
   layouts/landing_header.php -> theme_render('legacy'). Its content keeps
   its own light-theme markup, <style> blocks and stylesheets (post detail
   loads assets/css/detail.css, whose :root vars and element rules paint
   black headings and grey body text). This file makes that content read
   correctly on the dark layout, from CSS alone:

     1. local aliases + legacy colour variables remapped
     2. legacy screen base (counters detail.css on <body> and headings)
     3. buttons, muted text, small text, light utility surfaces
     4. post detail: enduser/post_detail.php or the theme's post_detail.php,
        enduser/partials/media_gallery_style.php, theme_includes/sidebar.php,
        theme_includes/post_credits.php, comments from getComments()
     5. editor content (.base_html) - post body and CMS pages
     6. list screens: pagination, collaborators page
     7. /register/subscribe (enduser/landing/subscribe.php)
     8. form builder pages and embedded forms (views/form_builder_styles.php)
     9. legacy Bootstrap modals, select2 dropdowns, SweetAlert
    10. CMS page templates (templates/pages/*.php) - worldsedge's own

   Scope: every rule starts at body.theme-worldsedge (MyHook adds
   theme-<name> through portal_body_classes()). Content rules are further
   tied to the screen class the engine puts on <body>:
     .ig-screen-legacy          every bridged legacy screen
     [class*="ig-screen-pages-"] CMS page templates
   so nothing here reaches the home page sections or another portal.

   Weight: the global head styles injected by MyHook, the shared views'
   inline <style> blocks and detail.css all print AFTER this file, so the
   body.theme-worldsedge prefix supplies the weight and !important is used
   only against an inline style or an !important of their own. Generic
   rules are wrapped in :where() so they stay below the Live Feed's own
   rules (feed.css) on the screens both appear on.

   Colours come from the --we-* tokens (theme.css) with the design values
   as fallbacks; the accent is the portal colour (--site_color_g).
   Minimum font size 14px.
   ===================================================================== */

/* ---------- 1. Local aliases and legacy colour variables ---------- */
body.theme-worldsedge {
  /* The theme's violet, not the dashboard colour (--site_color_g) the global stylesheet prints. */
  --wes-accent:  var(--we-violet, #7B2FF7);
  /* Design states: hover lines magenta, focus magenta at 60%. */
  --wes-line:    var(--we-line-hover, rgba(214, 58, 249, .5));
  --wes-focus:   var(--we-focus, rgba(214, 58, 249, .6));
  /* The portal colour can be dark (teal, navy); as TEXT on black it needs lifting. */
  --wes-link:    color-mix(in srgb, var(--wes-accent) 40%, var(--we-text, #F6F3FB));
  --wes-soft:    color-mix(in srgb, var(--we-text, #F6F3FB) 80%, var(--we-muted, #A79FB8));
  --wes-hi:      color-mix(in srgb, var(--we-text, #F6F3FB) 35%, transparent);
  --wes-field:   color-mix(in srgb, var(--we-bg, #000) 45%, transparent);
  --wes-surface: linear-gradient(160deg, color-mix(in srgb, var(--we-text, #F6F3FB) 9%, var(--we-bg, #000)), var(--we-bg, #000) 60%);
  /* The design's empty .we-media backdrop: behind covers, and in place of a missing one. */
  --wes-media:   radial-gradient(90% 90% at 90% 110%, color-mix(in srgb, var(--we-silver-2, #BFC3CA) 35%, transparent), transparent 60%),
                 radial-gradient(70% 70% at 0% 0%, color-mix(in srgb, var(--we-silver-3, #7C818A) 40%, transparent), transparent 65%),
                 var(--we-deep-2, #121316);

  /* Light-theme variables the legacy views and the global head block read.
     Remapped once here instead of chasing every rule that uses them. */
  --site_font_color_g: var(--we-text, #F6F3FB);   /* body text colour, #202020 by default */
  --site_font_color:   var(--we-text, #F6F3FB);
  --light_bg:          var(--we-panel, rgba(255, 255, 255, .04));
  --heading:           var(--we-text, #F6F3FB);   /* detail.css */
  --text-color:        var(--wes-soft);           /* detail.css */
  --blue-dark:         var(--wes-accent);         /* detail.css */
}

/* ---------- 2. Legacy screen base ---------- */
/* detail.css sets body to 18px/32px grey DM Sans; put the layout's values back. */
body.theme-worldsedge.ig-screen-legacy {
  color: var(--we-text, #F6F3FB);
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-line-height);
}
/* detail.css: h1-h6 { color:#000; font-family: DM Sans }. Two type selectors
   of weight: beats that element rule, loses to any class rule (feed cards). */
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) div :is(h1, h2, h3, h4, h5, h6) {
  color: inherit;
  font-family: var(--we-display, "Sora", "Segoe UI", system-ui, sans-serif);
  letter-spacing: -.02em;
}
/* Headings the legacy views colour inline (privacy page: color:#252525). */
:where(body.theme-worldsedge.ig-screen-legacy #we-main) :is(h1, h2, h3, h4, h5, h6)[style*="color"] {
  color: inherit !important;
}

/* ---------- 3. Buttons, muted text, small text, light surfaces ---------- */
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) .btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--wes-accent);
  --bs-btn-border-color: var(--wes-accent);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--wes-accent) 82%, #fff);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--wes-accent) 82%, #fff);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: color-mix(in srgb, var(--wes-accent) 82%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--wes-accent) 82%, #000);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--wes-accent);
  --bs-btn-disabled-border-color: var(--wes-accent);
}
/* Bootstrap 4-era secondary actions: glass, the design's outline button. */
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) :is(.btn-secondary, .btn-default, .btn-light, .btn-success, .btn-info, .btn-warning, .btn-outline-primary, .btn-outline-secondary) {
  --bs-btn-color: var(--we-text, #F6F3FB);
  --bs-btn-bg: var(--we-panel-2, rgba(255, 255, 255, .07));
  --bs-btn-border-color: var(--we-stroke, rgba(255, 255, 255, .09));
  --bs-btn-hover-color: var(--we-text, #F6F3FB);
  --bs-btn-hover-bg: var(--wes-field);
  --bs-btn-hover-border-color: var(--wes-line);
  --bs-btn-active-color: var(--we-text, #F6F3FB);
  --bs-btn-active-bg: var(--we-panel-2, rgba(255, 255, 255, .07));
  --bs-btn-active-border-color: var(--wes-line);
  --bs-btn-disabled-color: var(--we-muted, #A79FB8);
  --bs-btn-disabled-bg: var(--we-panel, rgba(255, 255, 255, .04));
  --bs-btn-disabled-border-color: var(--we-stroke, rgba(255, 255, 255, .09));
}
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) .text-muted {
  color: var(--we-muted, #A79FB8) !important;
}
/* Failed images: views/broken_image_fallback.php (global, MyHook) fills them
   #e9ecef, a light box on this dark theme. Every screen, home included. */
body.theme-worldsedge img.qme-img-fallback {
  background: var(--wes-media);
}
/* White/light utility panels in legacy content become the dark panel. */
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) :is(.bg-white, .bg-light) {
  background: var(--we-panel, rgba(255, 255, 255, .04)) !important;
  color: var(--we-text, #F6F3FB);
}
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) :is(.text-dark, .text-black) {
  color: var(--we-text, #F6F3FB) !important;
}

/* ---------- 4. Post detail ---------- */
body.theme-worldsedge .blog-details-section {
  padding-top: clamp(24px, 4vw, 48px);
  padding-bottom: clamp(40px, 6vw, 80px);
}
body.theme-worldsedge .blog-details-section hr {
  border-top-color: var(--we-stroke, rgba(255, 255, 255, .09));
  opacity: 1;
}

/* Title (also the ?report=1 view, which has no .entry-content). */
body.theme-worldsedge .blog-details-section .entry-content h3.title,
body.theme-worldsedge .blog-details-section .col-12 > h3.title {
  font-family: var(--we-display, "Sora", "Segoe UI", system-ui, sans-serif);
  font-weight: 800;
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.1;
  letter-spacing: -.03em;
  color: var(--we-text, #F6F3FB);
  margin: 0 0 20px;
}

/* Author / date / comment count row. */
body.theme-worldsedge .blog-details-section .post-meta {
  color: var(--we-muted, #A79FB8);
  font-size: 15px;
}
body.theme-worldsedge .blog-details-section .entry-content .post-meta ul li {
  color: var(--we-muted, #A79FB8);
}
body.theme-worldsedge .blog-details-section .post-meta i { color: var(--we-muted, #A79FB8); }
body.theme-worldsedge .blog-details-section .entry-content .post-meta ul li span .cat-link {
  color: var(--we-text, #F6F3FB) !important;
  font-size: 16px;
  font-weight: 600;
}
body.theme-worldsedge .blog-details-section .post-meta .img-thumbnail {
  background: none;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  padding: 0;
}

/* Links: media_gallery_style.php forces the raw portal colour (!important),
   which is too dark on black when the portal colour is dark. */
body.theme-worldsedge .blog-details-section .blog-details-wrapper a:not(.btn) {
  color: var(--wes-link) !important;
}
body.theme-worldsedge .blog-details-section .blog-details-wrapper a:not(.btn):hover {
  color: var(--we-text, #F6F3FB) !important;
}

/* Photo credit / op tags under the gallery. */
body.theme-worldsedge .blog-details-section .credit_txt em,
body.theme-worldsedge .blog-details-section .entry-content > em {
  color: var(--we-muted, #A79FB8) !important;
}

/* Gallery arrows (media_gallery_style.php): white discs -> dark glass. */
body.theme-worldsedge .blog-details-section #primary-slider .splide__arrow {
  background: color-mix(in srgb, var(--we-bg, #000) 55%, transparent) !important;
  border: 1px solid var(--wes-hi);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: none;
}
body.theme-worldsedge .blog-details-section #primary-slider .splide__arrow svg {
  fill: var(--we-text, #F6F3FB) !important;
}
body.theme-worldsedge .blog-details-section #primary-slider .splide__arrow:hover {
  background: var(--wes-accent) !important;
  border-color: var(--wes-accent);
}
body.theme-worldsedge .blog-details-section #primary-slider {
  border-radius: 20px;
}
body.theme-worldsedge .blog-details-section .jobs_spotlight_slider .carousel-item img {
  border-radius: 20px;
}

/* Event and interview boxes. */
body.theme-worldsedge .blog-details-section .event_boxx {
  background: var(--we-panel, rgba(255, 255, 255, .04));
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 20px;
  padding: 18px 22px;
  color: var(--wes-soft);
}
body.theme-worldsedge .blog-details-section .event_boxx strong { color: var(--we-text, #F6F3FB); }
body.theme-worldsedge .blog-details-section .contact_card .boxxxx h6 {
  color: var(--we-muted, #A79FB8);
  font-size: 14px;
}

/* Tags: chips, not boxed purple links. */
body.theme-worldsedge .blog-details-section .post-share-tag .post-tag-cloud ul li a {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  background: var(--we-panel, rgba(255, 255, 255, .04));
  color: var(--we-text, #F6F3FB) !important;
  font-size: 14px;
  font-weight: 600;
}
body.theme-worldsedge .blog-details-section .post-share-tag .post-tag-cloud ul li a:hover {
  background: var(--wes-accent) !important;
  border-color: var(--wes-accent) !important;
  color: #fff !important;
}
body.theme-worldsedge .blog-details-section .post-share-tag .social-share ul li a:hover {
  color: var(--we-text, #F6F3FB) !important;
}

/* "Copy Embed News" (inline: dark text, purple border). */
body.theme-worldsedge .blog-details-section .blog-details-wrapper .copy_embed {
  background: var(--we-panel-2, rgba(255, 255, 255, .07)) !important;
  color: var(--we-text, #F6F3FB) !important;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  border-radius: 999px;
  font-size: 15px;
}
body.theme-worldsedge .blog-details-section .blog-details-wrapper .copy_embed:hover {
  border-color: var(--wes-line) !important;
}

/* Comments: getComments() + comment_ui_styles() + the global head block
   paint a grey form, a white input and a white list, all !important. */
body.theme-worldsedge #comment-respond .comments-heading,
body.theme-worldsedge .blog-details-section .comments-area h4.comments-title {
  color: var(--we-text, #F6F3FB);
  font-family: var(--we-display, "Sora", "Segoe UI", system-ui, sans-serif);
}
body.theme-worldsedge .blog-details-section #addCommentForm2,
body.theme-worldsedge .blog-details-section .comments-respond22 {
  background: var(--we-panel, rgba(255, 255, 255, .04)) !important;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  border-radius: 20px 20px 0 0 !important;
}
body.theme-worldsedge .blog-details-section #addCommentForm2 .commentArea .input-group {
  background: var(--wes-field) !important;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09)) !important;
}
body.theme-worldsedge .blog-details-section #addCommentForm2 .commentArea .input-group:focus-within {
  border-color: var(--wes-focus) !important;
}
body.theme-worldsedge .blog-details-section #addCommentForm2 .commentArea textarea {
  color: var(--we-text, #F6F3FB) !important;
}
body.theme-worldsedge .blog-details-section #addCommentForm2 .commentArea textarea::placeholder {
  color: var(--we-muted, #A79FB8);
}
/* Signed-out prompt: .bg-info box with an inline white background. */
body.theme-worldsedge .blog-details-section .comments-respond22 .bordered.bg-info {
  background: transparent !important;
  padding: 4px 0 !important;
}
body.theme-worldsedge .blog-details-section .comments-respond22 .btn-warning {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--wes-accent);
  --bs-btn-border-color: var(--wes-accent);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--wes-accent) 82%, #fff);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--wes-accent) 82%, #fff);
}
body.theme-worldsedge .blog-details-section #comment_list {
  background: var(--we-panel, rgba(255, 255, 255, .04)) !important;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  border-top: 0 !important;
  border-radius: 0 0 20px 20px !important;
  color: var(--wes-soft);
}
body.theme-worldsedge .blog-details-section #comment_list .comment-tree {
  border-top-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  border-bottom-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
}
body.theme-worldsedge .blog-details-section #comment_list .comment-tree img {
  border-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
}
body.theme-worldsedge .blog-details-section #comment_list .comment-text b {
  color: var(--we-text, #F6F3FB) !important;
}
body.theme-worldsedge .blog-details-section #comment_list .comment-text .rcomment7 {
  color: var(--wes-soft) !important;
}
body.theme-worldsedge .blog-details-section #comment_list .comment-tools {
  color: var(--we-muted, #A79FB8) !important;
}

/* Sidebar (theme_includes/sidebar.php, or the inline copy in enduser/post_detail.php). */
body.theme-worldsedge .blog-details-section .sidebar-widget-area .widget,
body.theme-worldsedge .blog-details-section .sidebar-widget-area .widget.category-widget {
  background: linear-gradient(160deg, var(--we-panel-2, rgba(255, 255, 255, .07)), var(--we-panel, rgba(255, 255, 255, .04)) 60%);
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 24px;
  padding: 24px 26px;
}
body.theme-worldsedge .blog-details-section .sidebar-widget-area .widget .widget-title {
  font-size: 20px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--we-text, #F6F3FB);
  margin-bottom: 16px;
}
body.theme-worldsedge .blog-details-section .sidebar-widget-area .widget h4.widget-title::after {
  display: none;
}
body.theme-worldsedge .blog-details-section .sidebar-widget-area .widget.category-widget .category-nav li a {
  color: var(--wes-soft);
  font-size: 16px;
  line-height: 1.4;
  padding-bottom: 12px;
  border-bottom-color: var(--we-stroke, rgba(255, 255, 255, .09));
}
body.theme-worldsedge .blog-details-section .sidebar-widget-area .widget.category-widget .category-nav li.active a,
body.theme-worldsedge .blog-details-section .sidebar-widget-area .widget.category-widget .category-nav li a:hover {
  color: var(--we-text, #F6F3FB) !important;
  border-color: var(--wes-line);
}
body.theme-worldsedge .blog-details-section .sidebar-widget-area .category-nav li a i {
  color: var(--wes-link);
}
body.theme-worldsedge .blog-details-section .sidebar-widget-area .category-nav li a span {
  color: var(--we-muted, #A79FB8);
}
body.theme-worldsedge .blog-details-section .recent-post-widget .recent-post-list .post-thumbnail-content img {
  border-radius: 12px;
}
body.theme-worldsedge .blog-details-section .recent-post-widget .recent-post-list .post-thumbnail-content .post-title-date h6 {
  font-size: 16px;
  line-height: 1.35;
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .blog-details-section .recent-post-widget .recent-post-list .post-thumbnail-content .post-title-date h6:hover {
  color: var(--wes-link);
}

/* Related posts heading ("More News"). */
body.theme-worldsedge .blog-details-section > .container > h4 {
  font-size: clamp(24px, 2.6vw, 32px);
  font-weight: 800;
  letter-spacing: -.03em;
  color: var(--we-text, #F6F3FB);
  margin: 12px 0 24px;
}

/* The two older dashboard-style card grids, NOT the post_loop feed card:
     .related_postss   related posts under a post (enduser/post_detail.php)
     .flexx_boxx       /home/activities/<type> grid (enduser/landing/news.php,
                       card = enduser/landing/loop/post_loop.php, .post_loooppp)
   Same skeleton: .card-header avatar + name/time, .card-body cover + title +
   excerpt, .card-footer .post-actions. They carry Bootstrap 4 spacing classes
   (mr-4, ml-2) that Bootstrap 5 lacks, an .img-xs avatar with no size rule
   (it drew the 250px source), and <i data-feather> icons that nothing on these
   screens turns into SVG. Styled as the design's .we-card with a .we-act
   action row; the icons are masks drawn in the text colour. The grid card has
   an inline border:none/box-shadow:none !important, so the frame is an outline. */
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) {
  --wes-i-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7.5-4.6-9.5-9.3C1.1 8.3 3.2 4.5 7 4.5c2.2 0 3.6 1.2 5 3 1.4-1.8 2.8-3 5-3 3.8 0 5.9 3.8 4.5 7.2C19.5 16.4 12 21 12 21z'/%3E%3C/svg%3E");
  --wes-i-heart-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7.5-4.6-9.5-9.3C1.1 8.3 3.2 4.5 7 4.5c2.2 0 3.6 1.2 5 3 1.4-1.8 2.8-3 5-3 3.8 0 5.9 3.8 4.5 7.2C19.5 16.4 12 21 12 21z'/%3E%3C/svg%3E");
  --wes-i-comment: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E");
  --wes-i-share: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v13M7 8l5-5 5 5M5 14v6h14v-6'/%3E%3C/svg%3E");
  --wes-i-more: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Ccircle cx='5' cy='12' r='1.8'/%3E%3Ccircle cx='12' cy='12' r='1.8'/%3E%3Ccircle cx='19' cy='12' r='1.8'/%3E%3C/svg%3E");
  --bs-gutter-y: 24px;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) > .eq_height_wrapper {
  display: flex;
  margin-bottom: 0;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  color: var(--we-text, #F6F3FB);
  background: var(--wes-surface);
  border: 0;
  outline: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  outline-offset: -1px;
  border-radius: 24px !important;
  transition: transform .3s, outline-color .3s;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card:hover {
  outline-color: var(--we-line-card, rgba(214, 58, 249, .45));
  box-shadow: 0 30px 60px rgba(0, 0, 0, .45), 0 0 60px var(--we-glow-card, rgba(123, 47, 247, .18));
  transform: translateY(-4px);
}
@media (prefers-reduced-motion: reduce) {
  body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card:hover { transform: none; }
}
/* Header: 40px avatar, name (or the portal logo for an admin author), time */
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header {
  background: none !important;
  border: 0;
  padding: 18px 20px 0 !important; /* news.php: 5px 5px !important */
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header .d-flex.align-items-center {
  gap: 12px;
  min-width: 0;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header .img-xs {
  display: block;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  max-width: none;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header p {
  margin: 0;
  color: var(--we-text, #F6F3FB) !important; /* inline color:#686868 */
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header p a {
  color: var(--we-text, #F6F3FB) !important; /* inline color:#686868 */
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header p.tx-11 {
  font-size: 14px;
  font-weight: 400;
  color: var(--we-muted, #A79FB8) !important;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header .post_logoo {
  display: block;
  width: auto;
  height: 22px;
  max-width: 150px;
  object-fit: contain;
  object-position: left center;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header .dropdown > .btn {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--we-muted, #A79FB8);
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header .dropdown > .btn:hover {
  background: var(--we-panel-2, rgba(255, 255, 255, .07));
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header .dropdown-menu {
  background: var(--we-bg, #000);
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 14px;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header .dropdown-item {
  gap: 8px;
  color: var(--wes-soft);
  font-size: 14px;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-header .dropdown-item:hover {
  background: var(--we-panel-2, rgba(255, 255, 255, .07));
  color: var(--we-text, #F6F3FB);
}
/* Body: 16:9 cover, category tag, 2-line title, 3-line excerpt; grows so the footers line up */
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 16px 20px 4px;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-body > a:first-child {
  display: block;
  margin-bottom: 16px;
  border-radius: 16px;
  overflow: hidden;
  background: var(--wes-media);
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-body > a:first-child img:not(.play_icon img) {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: transform .5s;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-body > a:first-child:hover img:not(.play_icon img) {
  transform: scale(1.04);
}
/* No cover: the views fall back to assets/images/placeholder.jpg (another
   portal's brand) and a failed load gets the global fallback. Both keep their
   16:9 box but show only the empty design frame behind them. */
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-body > a:first-child :is(img[src$="/images/placeholder.jpg"], img.qme-img-fallback) {
  visibility: hidden;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-body .v_box {
  position: relative;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-body .v_box .play_icon {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-body .v_box .play_icon img {
  width: 56px;
  height: auto;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) :is(.card_content, .card_content2) {
  margin: 0 0 10px !important;
  padding-inline: 0 !important; /* news.php: 10px */
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card_content > p {
  margin: 8px 0 0;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card_content > span:not(.badge) {
  display: block;
  margin-bottom: 8px;
  color: var(--we-muted, #A79FB8);
  font-size: 14px;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card_content .badge {
  padding: 5px 11px;
  border: 1px solid color-mix(in srgb, var(--we-violet, #7B2FF7) 35%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--we-violet, #7B2FF7) 18%, transparent) !important;
  color: var(--we-link, #DCC8FF) !important;
  font-size: 14px;
  font-weight: 600;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .spotlight-title {
  display: -webkit-box !important; /* inline display:block on the grid card */
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--we-text, #F6F3FB) !important; /* global head: body .post_titlee a {color: accent !important} */
  font-family: var(--we-display, "Sora", "Segoe UI", system-ui, sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.01em;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .spotlight-title:hover {
  color: var(--wes-link) !important;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) :is(.card_content.tx-14, .card_content2 > p) {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  color: var(--we-muted, #A79FB8);
  font-size: 15px;
  line-height: 1.6;
}
/* Footer: the design's .we-act row */
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .card-footer {
  margin-top: auto;
  background: none;
  border-top: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  padding: 8px 12px;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .post-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .post-actions > a {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 9px 12px;
  border-radius: 999px;
  color: var(--wes-soft) !important; /* .text-muted is !important */
  font-size: 14px;
  font-weight: 500;
  transition: background .2s, color .2s;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .post-actions > a:hover {
  background: var(--we-panel-2, rgba(255, 255, 255, .07));
  color: var(--we-text, #F6F3FB) !important;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .post-actions > a.heartfill {
  color: var(--lf-like, var(--we-live, #FF5C9A)) !important;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .post-actions p {
  margin: 0;
  color: inherit;
  font-size: 14px;
  line-height: 1.2;
}
/* The labels are d-none d-md-block, which also hides the like count on phones;
   the cards are full width there, so the three labels fit. */
@media (max-width: 767.98px) {
  body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .post-actions p.d-none {
    display: block !important;
  }
}
/* Icons: <i data-feather> drawn as masks; an SVG if feather.replace() ever runs */
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) i[data-feather] {
  display: inline-block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  padding: 0;
  background-color: currentColor;
  -webkit-mask: var(--wes-i) center / contain no-repeat;
  mask: var(--wes-i) center / contain no-repeat;
}
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) i[data-feather="heart"]            { --wes-i: var(--wes-i-heart); }
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .heartfill i[data-feather="heart"] { --wes-i: var(--wes-i-heart-on); }
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) i[data-feather="message-square"]   { --wes-i: var(--wes-i-comment); }
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) i[data-feather="share"]            { --wes-i: var(--wes-i-share); }
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) i[data-feather="more-horizontal"]  { --wes-i: var(--wes-i-more); }
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) .dropdown-menu i[data-feather]     { display: none; }
body.theme-worldsedge :is(.blog-details-section .related_postss, .trending-activites .flexx_boxx) svg.feather {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

/* ---------- 5. Editor content (.base_html): post body and CMS pages ---------- */
/* Not inside a feed card: feed.css owns .post_loop content. */
body.theme-worldsedge .base_html:not(.post_loop .base_html) {
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) :is(h1, h2, h3, h4, h5, h6) {
  color: var(--we-text, #F6F3FB);
  font-family: var(--we-display, "Sora", "Segoe UI", system-ui, sans-serif);
  letter-spacing: -.02em;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) :is(h1, h2, h3, h4, h5, h6):not(:first-child) {
  margin-top: 1.6em;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) a {
  color: var(--wes-link);
  text-decoration-color: color-mix(in srgb, var(--wes-link) 50%, transparent);
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) a:hover {
  color: var(--we-text, #F6F3FB);
  text-decoration-color: var(--wes-accent);
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) li::marker {
  color: var(--wes-link);
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) blockquote {
  background: var(--we-panel, rgba(255, 255, 255, .04));
  border-left: 3px solid var(--wes-accent);
  border-radius: 0 16px 16px 0;
  padding: 16px 22px;
  color: var(--wes-soft);
  font-size: 1.1em;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) blockquote > :last-child { margin-bottom: 0; }
body.theme-worldsedge .base_html:not(.post_loop .base_html) :is(img, video, iframe) {
  border-radius: 16px;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) figcaption {
  color: var(--we-muted, #A79FB8);
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) hr {
  border-top-color: var(--we-stroke, rgba(255, 255, 255, .09));
  opacity: 1;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) table {
  max-width: 100%;
  font-size: 15px;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) :is(th, td) {
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  color: var(--wes-soft);
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) :is(th, thead td) {
  background: var(--we-panel-2, rgba(255, 255, 255, .07));
  color: var(--we-text, #F6F3FB);
  font-weight: 600;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) tbody tr:nth-child(even) td {
  background: var(--we-panel, rgba(255, 255, 255, .04));
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) :is(code, pre) {
  font-family: var(--we-mono, "JetBrains Mono", ui-monospace, Menlo, monospace);
  background: var(--we-panel-2, rgba(255, 255, 255, .07));
  color: var(--we-text, #F6F3FB);
  border-radius: 8px;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) pre {
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 14px;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) pre code { background: none; }
body.theme-worldsedge .base_html:not(.post_loop .base_html) mark {
  background: color-mix(in srgb, var(--wes-accent) 35%, transparent);
  color: var(--we-text, #F6F3FB);
}
/* Text pasted from Docs/Word carries inline black text and white highlights. */
body.theme-worldsedge .base_html:not(.post_loop .base_html) :is(p, span, li, div, td, th, strong, em, b, i, u, font, h1, h2, h3, h4, h5, h6)[style*="color"],
body.theme-worldsedge .base_html:not(.post_loop .base_html) font[color] {
  color: inherit !important;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) [style*="background"]:not(img):not(a) {
  background-color: transparent !important;
}
body.theme-worldsedge .base_html:not(.post_loop .base_html) a [style*="color"] {
  color: inherit !important;
}

/* ---------- 6. List screens ---------- */
/* Pagination: CI's links are bare <a> inside .page-item (no .page-link). */
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) .pagination {
  --bs-pagination-color: var(--we-text, #F6F3FB);
  --bs-pagination-bg: var(--we-panel, rgba(255, 255, 255, .04));
  --bs-pagination-border-color: var(--we-stroke, rgba(255, 255, 255, .09));
  --bs-pagination-hover-color: var(--we-text, #F6F3FB);
  --bs-pagination-hover-bg: var(--we-panel-2, rgba(255, 255, 255, .07));
  --bs-pagination-hover-border-color: var(--wes-line);
  --bs-pagination-focus-color: var(--we-text, #F6F3FB);
  --bs-pagination-focus-bg: var(--we-panel-2, rgba(255, 255, 255, .07));
  --bs-pagination-active-color: #fff;
  --bs-pagination-active-bg: var(--wes-accent);
  --bs-pagination-active-border-color: var(--wes-accent);
  --bs-pagination-disabled-color: var(--we-muted, #A79FB8);
  --bs-pagination-disabled-bg: transparent;
  --bs-pagination-disabled-border-color: var(--we-stroke, rgba(255, 255, 255, .09));
  --bs-pagination-font-size: 15px;
  flex-wrap: wrap;
  gap: 8px;
  margin: 32px 0;
}
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) .pagination .page-item > :is(a, span, .page-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 14px;
  margin: 0;
  border-radius: 999px;
  border: 1px solid var(--bs-pagination-border-color);
  background: var(--bs-pagination-bg);
  color: var(--bs-pagination-color);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s, border-color .2s;
}
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) .pagination .page-item > :is(a, .page-link):hover {
  background: var(--bs-pagination-hover-bg);
  border-color: var(--bs-pagination-hover-border-color);
  color: var(--bs-pagination-hover-color);
}
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) .pagination .page-item.active > :is(a, span, .page-link) {
  background: var(--bs-pagination-active-bg);
  border-color: var(--bs-pagination-active-border-color);
  color: var(--bs-pagination-active-color);
}
:where(body.theme-worldsedge.ig-screen-legacy, body.theme-worldsedge[class*="ig-screen-pages-"]) .pagination svg {
  width: 18px;
  height: 18px;
}

/* /home/activities/<list> (enduser/landing/news.php + news_top.php): the
   site-name eyebrow, the page title and the category links. The links are
   <li><h4><a> with no spacing on desktop (news_top.php only adds some under
   576px), so they read "Live FeedOp-edMedia/Podcast..."; made the design's
   pill tabs. An active link is a.active (news.php colours it inline). */
body.theme-worldsedge.ig-screen-legacy .news__top h4.wow {
  margin: 0 0 6px;
  color: var(--we-muted, #A79FB8);
  font-family: var(--we-mono, ui-monospace, monospace);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
body.theme-worldsedge.ig-screen-legacy .news__top h1 {
  margin: 0;
  font-size: clamp(32px, 4.4vw, 56px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.035em;
}
body.theme-worldsedge.ig-screen-legacy .news__top .category-list {
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 0;
}
body.theme-worldsedge.ig-screen-legacy .news__top .category-list li { margin: 0; }
body.theme-worldsedge.ig-screen-legacy .news__top .category-list li h4 {
  margin: 0;
  font-family: var(--we-body, "DM Sans", system-ui, sans-serif);
  font-size: 15px;
  letter-spacing: 0;
}
body.theme-worldsedge.ig-screen-legacy .trending-activites .news__top .category-list li h4 a {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 9px 16px;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  border-radius: 999px;
  background: var(--we-panel, rgba(255, 255, 255, .04));
  color: var(--wes-soft) !important;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
}
body.theme-worldsedge.ig-screen-legacy .trending-activites .news__top .category-list li h4 a:hover {
  background: var(--we-panel-2, rgba(255, 255, 255, .07));
  border-color: var(--wes-line) !important;
  color: var(--we-text, #F6F3FB) !important;
}
body.theme-worldsedge.ig-screen-legacy .trending-activites .news__top .category-list li h4 a.active {
  background: var(--we-grad);
  border-color: transparent !important;
  color: #fff !important;
}
/* The Live Feed list: with no featured posts the right column is not printed,
   which left the feed hugging the left of an empty container. */
body.theme-worldsedge.ig-screen-legacy .latest-post-inner-wrap > .row > .col-md-8:only-child {
  margin-inline: auto;
}

/* /collaborators (enduser/landing/collaborators_page.php + clbtr_loop_fragment.php). */
body.theme-worldsedge.ig-screen-legacy .trending-activites .cavani_tm_title span {
  color: var(--we-text, #F6F3FB);
  font-size: 15px;
}
body.theme-worldsedge.ig-screen-legacy .trending-activites .cavani_tm_title span::after {
  background-color: var(--we-stroke, rgba(255, 255, 255, .09));
}
body.theme-worldsedge.ig-screen-legacy .clbtr_item .jo-article__img {
  border-radius: 20px;
  overflow: hidden;
}
body.theme-worldsedge.ig-screen-legacy .clbtr_item :is(h4, .jo-article__title, .jo-article__title a) {
  color: var(--we-text, #F6F3FB);
}

/* ---------- 7. /register/subscribe ---------- */
/* Also covers bt_macheteverse/subscribe_css.php, which a mirrored fallback
   would bring along: white section, white .fix_h fields, black chevrons. */
body.theme-worldsedge .jo-inner-main-content {
  padding: clamp(32px, 5vw, 64px) 0 clamp(40px, 6vw, 80px);
  background: transparent;
}
body.theme-worldsedge :is(.jo-inner-main-content, .subs_modal) .form-group .fix_h {
  background-color: var(--wes-field);
  border-color: var(--we-stroke, rgba(255, 255, 255, .09));
  color: var(--we-text, #F6F3FB);
}
/* The two actions share one d-flex row that cannot wrap: on a phone the long
   "Or Create an Account to Personalize Your News Feed" ran off the card. */
body.theme-worldsedge .jo-inner-main-content form > p.d-flex {
  flex-wrap: wrap;
  gap: 10px !important;
}
body.theme-worldsedge .jo-inner-main-content form > p.d-flex > .btn {
  margin: 0;
  white-space: normal;
}
@media (max-width: 575.98px) {
  body.theme-worldsedge .jo-inner-main-content form > p.d-flex > .btn { flex: 1 1 100%; }
}
body.theme-worldsedge .jo-inner-main-content .section-title {
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.03em;
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .jo-inner-main-content .color-text-paragraph-2 {
  color: var(--we-muted, #A79FB8);
  font-size: 17px;
  line-height: 1.65;
}
body.theme-worldsedge .jo-inner-main-content .auth-form-wrapper {
  background: linear-gradient(160deg, var(--we-panel-2, rgba(255, 255, 255, .07)), var(--we-panel, rgba(255, 255, 255, .04)) 60%);
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 28px;
  padding: clamp(20px, 3vw, 36px) !important;
}
body.theme-worldsedge :is(.jo-inner-main-content, .subs_modal) :is(.control-label, .control-label2) {
  color: var(--wes-soft);
  font-size: 15px;
}
body.theme-worldsedge :is(.jo-inner-main-content, .subs_modal) .control-label2 a,
body.theme-worldsedge .jo-inner-main-content .alredy_login a {
  color: var(--wes-link);
}
body.theme-worldsedge :is(.jo-inner-main-content, .subs_modal) .control-label2 a:hover,
body.theme-worldsedge .jo-inner-main-content .alredy_login a:hover {
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge :is(.jo-inner-main-content, .subs_modal) .redstar {
  color: var(--bs-danger-text-emphasis);
}
body.theme-worldsedge .jo-inner-main-content .alredy_login {
  color: var(--we-muted, #A79FB8);
  margin-top: 16px;
}
/* The view's own `select { background: url(black chevron) }`. */
body.theme-worldsedge :is(.jo-inner-main-content, .subs_modal) select.form-control,
body.theme-worldsedge #subs_ajax select {
  /* Chevron drawn from currentColor, so it follows the text colour. */
  background-color: var(--wes-field);
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-repeat: no-repeat;
  background-position: calc(100% - 21px) 50%, calc(100% - 15px) 50%;
  background-size: 6px 6px, 6px 6px;
  padding-right: 40px;
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge :is(.jo-inner-main-content, .subs_modal) select.form-control option {
  background: var(--we-bg, #000);
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .subs_modal .card.bg-light {
  background: var(--we-panel, rgba(255, 255, 255, .04)) !important;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 20px;
}
body.theme-worldsedge .subs_modal :is(.text-dark, .card-title, .modal-title, h5) {
  color: var(--we-text, #F6F3FB) !important;
}
body.theme-worldsedge .subs_modal .card-text {
  color: var(--we-muted, #A79FB8);
}

/* ---------- 8. Form builder: /form/<id> pages and embedded [qme_form] ---------- */
/* form_builder_styles.php whitens the page and <body> behind a standalone
   form, which put the dark header's white text on white. Keep the layout
   dark and draw the form as the design's panel. */
body.theme-worldsedge:has(.qme-form-page),
body.theme-worldsedge:has(.qme-form-page) :is(.m24_main_wrapper, #fix_content_h, .page-wrapper, .page-content) {
  background: var(--we-bg, #000) !important;
}
body.theme-worldsedge .qme-form-page {
  background: transparent !important;
  padding: clamp(32px, 5vw, 64px) 15px clamp(40px, 6vw, 80px) !important;
}
body.theme-worldsedge .qme-form-page-inner {
  background: linear-gradient(160deg, var(--we-panel-2, rgba(255, 255, 255, .07)), var(--we-panel, rgba(255, 255, 255, .04)) 60%) !important;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  border-radius: 28px !important;
  padding: clamp(20px, 3vw, 40px) !important;
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .qme-form-container :is(.form-control, input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="date"], input[type="password"], textarea, select) {
  color: var(--we-text, #F6F3FB) !important;
  background-color: var(--wes-field) !important;
  border-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  color-scheme: dark;
}
body.theme-worldsedge .qme-form-container :is(.form-control, input, textarea, select):focus {
  border-color: var(--wes-focus) !important;
}
body.theme-worldsedge .qme-form-container :is(input, textarea)::placeholder {
  color: var(--we-muted, #A79FB8);
}
body.theme-worldsedge .qme-form-container select option {
  background: var(--we-bg, #000);
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .qme-form-container .select2-container--default :is(.select2-selection--single, .select2-selection--multiple) {
  background-color: var(--wes-field) !important;
  border-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
}
body.theme-worldsedge .qme-form-container .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--we-text, #F6F3FB) !important;
}
body.theme-worldsedge .qme-form-container .qme-choice-pills .form-check-label > span {
  background: var(--we-panel, rgba(255, 255, 255, .04)) !important;
  border-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .qme-form-container .qme-avatar-preview {
  background: var(--we-panel, rgba(255, 255, 255, .04)) !important;
  border-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  color: var(--we-muted, #A79FB8) !important;
}
body.theme-worldsedge .qme-form-container .qme-step {
  background: var(--we-panel-2, rgba(255, 255, 255, .07)) !important;
  color: var(--wes-soft) !important;
}
body.theme-worldsedge .qme-form-container .qme-step .qme-step-num {
  background: var(--wes-field) !important;
  color: var(--we-text, #F6F3FB) !important;
}
/* form_builder_script.php: repeater rows, "add" pill and the result popup. */
body.theme-worldsedge .qme-form-system .qme-repeater-item {
  border-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
}
body.theme-worldsedge .qme-form-system .qme-repeater-add {
  background: var(--we-panel, rgba(255, 255, 255, .04));
  color: var(--wes-link);
  border-color: var(--we-stroke, rgba(255, 255, 255, .09));
}
body.theme-worldsedge .qme-form-system .qme-repeater-add:hover {
  background: var(--wes-accent);
  color: #fff;
}
body.theme-worldsedge .qme-form-popup {
  background: var(--wes-surface);
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 24px;
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .qme-form-popup-message {
  color: var(--wes-soft);
}
body.theme-worldsedge .qme-form-popup-message a {
  color: var(--wes-link) !important;
}
body.theme-worldsedge .qme-form-popup-message a:is(:hover, :focus) {
  color: var(--we-text, #F6F3FB) !important;
}

/* ---------- 9. Legacy modals, select2 dropdowns, SweetAlert ---------- */
/* Legacy Bootstrap modals only; the theme's own carry .we-modal. */
body.theme-worldsedge .modal:not(.we-modal) .modal-content {
  background: var(--wes-surface);
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 24px;
  color: var(--we-text, #F6F3FB);
  box-shadow: 0 40px 80px color-mix(in srgb, var(--we-bg, #000) 70%, transparent);
}
body.theme-worldsedge .modal:not(.we-modal) :is(.modal-header, .modal-footer) {
  border-color: var(--we-stroke, rgba(255, 255, 255, .09));
}
/* Bootstrap 4 close button (.close) still printed by legacy modals. */
body.theme-worldsedge .modal:not(.we-modal) .close {
  color: var(--we-text, #F6F3FB);
  text-shadow: none;
  opacity: .8;
}
body.theme-worldsedge .modal:not(.we-modal) .close:hover { opacity: 1; }

/* select2 renders its dropdown at the end of <body>. */
body.theme-worldsedge .select2-dropdown {
  background: var(--wes-surface);
  border-color: var(--we-stroke, rgba(255, 255, 255, .09));
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .select2-container--default .select2-search--dropdown .select2-search__field {
  background: var(--wes-field);
  border-color: var(--we-stroke, rgba(255, 255, 255, .09));
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .select2-container--default .select2-results__option--highlighted[aria-selected],
body.theme-worldsedge .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
  background: var(--wes-accent);
  color: #fff;
}
body.theme-worldsedge .select2-container--default .select2-results__option[aria-selected="true"],
body.theme-worldsedge .select2-container--default .select2-results__option--selected {
  background: var(--we-panel-2, rgba(255, 255, 255, .07));
}

/* SweetAlert: sweetalert2's white popup and the shared swal_theme.php
   (light text colours, white cancel button), both !important. */
body.theme-worldsedge .swal2-container.swal2-backdrop-show {
  background: color-mix(in srgb, var(--we-bg, #000) 75%, transparent);
}
body.theme-worldsedge .swal2-popup {
  background: var(--wes-surface) !important;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09));
  border-radius: 24px !important;
  color: var(--we-text, #F6F3FB);
  box-shadow: 0 40px 80px color-mix(in srgb, var(--we-bg, #000) 70%, transparent) !important;
}
body.theme-worldsedge .swal2-title {
  color: var(--we-text, #F6F3FB) !important;
  font-family: var(--we-display, "Sora", "Segoe UI", system-ui, sans-serif) !important;
}
body.theme-worldsedge :is(.swal2-html-container, .swal2-footer) {
  color: var(--wes-soft) !important;
}
body.theme-worldsedge .swal2-footer {
  border-top-color: var(--we-stroke, rgba(255, 255, 255, .09));
}
body.theme-worldsedge :is(.swal2-input, .swal2-select, .swal2-textarea, .swal2-file) {
  background-color: var(--wes-field) !important;
  border-color: var(--we-stroke, rgba(255, 255, 255, .09)) !important;
  color: var(--we-text, #F6F3FB) !important;
}
body.theme-worldsedge .swal2-select option {
  background: var(--we-bg, #000);
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge :is(.swal2-input, .swal2-select, .swal2-textarea):focus {
  border-color: var(--wes-focus) !important;
}
body.theme-worldsedge :is(.swal2-input, .swal2-textarea)::placeholder {
  color: var(--we-muted, #A79FB8);
}
body.theme-worldsedge .swal2-validation-message {
  background: color-mix(in srgb, var(--bs-danger, #dc3545) 18%, transparent) !important;
  color: var(--bs-danger-text-emphasis) !important;
}
body.theme-worldsedge .swal2-styled.swal2-cancel,
body.theme-worldsedge .swal2-styled.swal2-deny {
  background-color: var(--we-panel-2, rgba(255, 255, 255, .07)) !important;
  color: var(--we-text, #F6F3FB) !important;
  border: 1px solid var(--we-stroke, rgba(255, 255, 255, .09)) !important;
}
body.theme-worldsedge .swal2-styled.swal2-cancel:hover,
body.theme-worldsedge .swal2-styled.swal2-deny:hover {
  background: var(--wes-field) !important;
  border-color: var(--wes-hi) !important;
}
body.theme-worldsedge .swal2-styled.swal2-confirm,
body.theme-worldsedge .swal2-styled.swal2-cancel,
body.theme-worldsedge .swal2-styled.swal2-deny {
  border-radius: 999px !important;
}
body.theme-worldsedge .swal2-close {
  color: var(--we-muted, #A79FB8);
}
body.theme-worldsedge .swal2-close:hover {
  color: var(--we-text, #F6F3FB);
}
body.theme-worldsedge .swal2-timer-progress-bar {
  background: var(--wes-accent);
}
/* The success icon masks its ring with white patches; on a dark popup they
   show as white blocks. */
body.theme-worldsedge .swal2-icon.swal2-success [class^="swal2-success-circular-line"],
body.theme-worldsedge .swal2-icon.swal2-success .swal2-success-fix {
  background-color: transparent !important;
}

/* ---------- 10. CMS page templates (templates/pages/*.php) ---------- */
/* about_us, contact, partners, grow, faq, features. The page head, banner and
   .we-prose come from theme.css (the default template's rules) through
   partials/page_head.php; the video cover is partials/page_video.php. */
body.theme-worldsedge .we-eyebrow {
  font: 500 14px var(--we-mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--we-muted);
  margin: 0 0 10px;
}
body.theme-worldsedge .we-block-title {
  font-weight: 800;
  font-size: clamp(24px, 2.6vw, 34px);
  letter-spacing: -.03em;
  line-height: 1.1;
  color: var(--we-text);
  margin: 0 0 16px;
}
body.theme-worldsedge .we-page-figure {
  border-radius: 20px;
  border: 1px solid var(--we-stroke);
  aspect-ratio: 4 / 3;
}

/* About: the bullet list and the history tabs (Bootstrap pills). */
body.theme-worldsedge .we-points {
  display: grid;
  gap: 10px;
  margin: 20px 0 0;
}
body.theme-worldsedge .we-points li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 16px;
  color: var(--we-text);
}
body.theme-worldsedge .we-points i {
  flex: 0 0 26px;
  height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 14px;
  color: var(--we-text);
  background: var(--we-grad);
}
body.theme-worldsedge .we-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
body.theme-worldsedge .we-tabs .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: .55rem 1.1rem;
  border-radius: 999px;
  border: 1px solid var(--we-stroke);
  background: var(--we-panel);
  color: var(--we-muted);
  font-size: 15px;
  font-weight: 600;
}
body.theme-worldsedge .we-tabs .nav-link:hover {
  color: var(--we-text);
  background: var(--we-panel-2);
}
body.theme-worldsedge .we-tabs .nav-link.active {
  color: var(--we-text);
  background: var(--we-grad);
  border-color: transparent;
}

/* Contact: the detail tiles and the platform form. */
body.theme-worldsedge .we-contact-tile {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
body.theme-worldsedge .we-contact-tile a {
  color: var(--we-link);
  word-break: break-word;
}
body.theme-worldsedge .we-contact-tile a:hover {
  color: var(--we-text);
}
body.theme-worldsedge .we-contact-icon {
  flex: 0 0 44px;
  height: 44px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: var(--we-grad);
  color: var(--we-text);
  font-size: 16px;
}
body.theme-worldsedge .we-contact-form-title {
  font-weight: 700;
  font-size: 22px;
  color: var(--we-text);
  margin: 0 0 18px;
}
body.theme-worldsedge .we-contact-form :is(.form-label, .form-check-label) {
  font-size: 14px;
  font-weight: 600;
  color: var(--we-muted);
}
body.theme-worldsedge .we-contact-form .form-control {
  border-radius: 12px;
  padding: .7rem .9rem;
}
body.theme-worldsedge .we-contact-form .form-check-input:checked {
  background-color: var(--we-violet);
  border-color: var(--we-violet);
}
body.theme-worldsedge .we-contact-form label.error {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--we-live);
}
body.theme-worldsedge .we-captcha {
  position: relative;
  min-height: 78px;
}
/* Kept in the layout (not display:none) so jquery-validate still checks it. */
body.theme-worldsedge .we-captcha-hidden {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
}
body.theme-worldsedge .we-alert {
  border-radius: 14px;
  border: 1px solid var(--we-stroke);
  background: var(--we-panel-2);
  color: var(--we-text);
  font-size: 15px;
}

/* Partners / Explore Collaborators: the video cover and the call to action. */
body.theme-worldsedge .we-page-video {
  border-radius: 28px;
  border: 1px solid var(--we-stroke);
  aspect-ratio: 16 / 9;
}
body.theme-worldsedge .we-page-video-play {
  position: absolute;
  left: 24px;
  bottom: 24px;
  z-index: 2;
  color: var(--we-text);
}
body.theme-worldsedge .we-page-video-play:hover {
  color: var(--we-text);
  background: var(--we-panel-2);
}
body.theme-worldsedge .we-page-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

/* Explore Collaborators: the card gradients, from the tokens in turn
   (the home section's cards take theirs from its repeater). */
body.theme-worldsedge .we-collab-grid > div .we-collab { --c1: var(--we-brand); --c2: var(--we-bg); }
body.theme-worldsedge .we-collab-grid > div:nth-child(4n+2) .we-collab { --c1: var(--we-violet); --c2: var(--we-deep-2); }
body.theme-worldsedge .we-collab-grid > div:nth-child(4n+3) .we-collab { --c1: var(--we-deep-1); --c2: var(--we-bg); }
body.theme-worldsedge .we-collab-grid > div:nth-child(4n+4) .we-collab { --c1: var(--we-magenta); --c2: var(--we-brand); }

/* About: the numbers strip reuses the hero's .we-stats; the milestone heading is smaller. */
body.theme-worldsedge .we-page-stats {
  padding: 24px 8px;
}
body.theme-worldsedge .we-block-title-sm {
  font-size: clamp(20px, 2vw, 26px);
}

/* Partners: the logo wall. */
body.theme-worldsedge .we-partner {
  display: grid;
  place-items: center;
  height: 100%;
  min-height: 120px;
  padding: 20px;
  border-radius: 20px;
  border: 1px solid var(--we-stroke);
  background: var(--we-panel);
  color: var(--we-text);
  font-family: var(--we-display);
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  transition: border-color .3s, background .3s;
}
body.theme-worldsedge a.we-partner:hover {
  color: var(--we-text);
  background: var(--we-panel-2);
  border-color: var(--we-stroke);
}
body.theme-worldsedge .we-partner img {
  max-width: 100%;
  max-height: 72px;
  object-fit: contain;
}

/* FAQ: Bootstrap 5 accordion, one panel per question. */
body.theme-worldsedge .we-accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-color: var(--we-text);
  --bs-accordion-border-color: var(--we-stroke);
  --bs-accordion-btn-color: var(--we-text);
  --bs-accordion-btn-bg: transparent;
  --bs-accordion-active-color: var(--we-text);
  --bs-accordion-active-bg: transparent;
  --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--we-magenta) 35%, transparent);
  display: grid;
  gap: 12px;
}
body.theme-worldsedge .we-accordion .accordion-item {
  border: 1px solid var(--we-stroke);
  border-radius: 20px;
  overflow: hidden;
  background: var(--we-panel);
}
body.theme-worldsedge .we-accordion .accordion-item .accordion-button {
  border-radius: 0;
  padding: 1.1rem 1.4rem;
  font-family: var(--we-display);
  font-size: 18px;
  font-weight: 600;
}
body.theme-worldsedge .we-accordion .accordion-button:not(.collapsed) {
  box-shadow: none;
}
body.theme-worldsedge .we-accordion .accordion-body {
  padding: 0 1.4rem 1.3rem;
}

/* Features: the card grid. */
body.theme-worldsedge .we-feature {
  display: flex;
  flex-direction: column;
}
body.theme-worldsedge div.we-feature:hover {
  transform: none;
}
body.theme-worldsedge .we-feature-img {
  aspect-ratio: 16 / 10;
}
body.theme-worldsedge .we-feature-icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  background: var(--we-grad);
  color: var(--we-text);
  font-size: 20px;
}

@media (max-width: 767.98px) {
  body.theme-worldsedge .we-page-video { border-radius: 20px; }
  body.theme-worldsedge .we-page-video-play { left: 14px; bottom: 14px; }
  body.theme-worldsedge .we-accordion .accordion-item .accordion-button { font-size: 16px; padding: 1rem 1.1rem; }
  body.theme-worldsedge .we-accordion .accordion-body { padding: 0 1.1rem 1.1rem; }
}

/* Post tags use the design's tag chip (.we-tag) - theme colour tokens, not the
   shared outline links. Only real tag markup: .post-tag-cloud (post detail) and
   the tag-cloud widget - never a[href*="tag"], which also matches "stage". */
body.theme-worldsedge .post-tag-cloud ul li a,body.theme-worldsedge .blog-details-wrapper a.tagss,body.theme-worldsedge .tag-cloud-widget a{display:inline-flex;align-items:center;font-size:14px!important;font-weight:600;padding:5px 12px!important;border-radius:999px!important;background:color-mix(in srgb,var(--we-violet) 18%,transparent)!important;color:var(--we-link)!important;border:1px solid color-mix(in srgb,var(--we-violet) 35%,transparent)!important;text-decoration:none}
body.theme-worldsedge .post-tag-cloud ul li a:hover,body.theme-worldsedge .blog-details-wrapper a.tagss:hover,body.theme-worldsedge .tag-cloud-widget a:hover{background:var(--we-grad)!important;color:#fff!important;border-color:transparent!important}
body.theme-worldsedge .post-tag-cloud .item-heading{color:var(--we-muted);font-weight:600}

/* Post byline: the portal NAME in place of the logo picture (theme.json post_logo). */
body.theme-worldsedge .post_logo_name{display:inline-block;font-family:"Sora",sans-serif;font-weight:700;font-size:16px;letter-spacing:.02em;color:var(--we-text);margin-bottom:6px}

/* Page builder: the built sections in this theme's palette. The sections use
   Tailwind's grays for ground, panels, borders and text; the builder maps
   those onto --pb-* (assets/page_builder/src/shared.css) and they are set
   here, once, from the design tokens. `body#pb-page` is the editor's preview
   frame, so the builder shows the page as it will look. Accent stays
   var(--site_color_g). */
body.theme-worldsedge #pb-page,
body.theme-worldsedge#pb-page {
  --pb-bg: var(--we-bg);
  --pb-surface: var(--we-panel-2);
  --pb-surface-2: var(--we-panel);
  --pb-border: var(--we-stroke);
  --pb-muted: var(--we-muted);
  --pb-body: var(--we-muted);
  --pb-text: var(--we-text);
  --pb-font-heading: var(--we-display);
  --pb-font-body: var(--we-body);
}
