.elementor-188383 .elementor-element.elementor-element-28220c89{--display:flex;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:0px 0px 0.5px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0.5px;--border-left-width:0px;border-color:#DDD9DE;--border-color:#DDD9DE;--padding-top:80px;--padding-bottom:40px;--padding-left:8px;--padding-right:8px;}.elementor-188383 .elementor-element.elementor-element-28220c89:not(.elementor-motion-effects-element-type-background), .elementor-188383 .elementor-element.elementor-element-28220c89 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#706C610F;}.elementor-188383 .elementor-element.elementor-element-28220c89::before, .elementor-188383 .elementor-element.elementor-element-28220c89 > .elementor-background-video-container::before, .elementor-188383 .elementor-element.elementor-element-28220c89 > .e-con-inner > .elementor-background-video-container::before, .elementor-188383 .elementor-element.elementor-element-28220c89 > .elementor-background-slideshow::before, .elementor-188383 .elementor-element.elementor-element-28220c89 > .e-con-inner > .elementor-background-slideshow::before, .elementor-188383 .elementor-element.elementor-element-28220c89 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-188383 .elementor-element.elementor-element-43c648cd > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-188383 .elementor-element.elementor-element-70f9045 .elementor-heading-title{font-family:"Outfit", Sans-serif;font-size:56px;color:var( --e-global-color-3e376f5 );}.elementor-188383 .elementor-element.elementor-element-3cce3dbf{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:32px 32px;--row-gap:32px;--column-gap:32px;--padding-top:40px;--padding-bottom:80px;--padding-left:0px;--padding-right:0px;}.elementor-188383 .elementor-element.elementor-element-3cce3dbf:not(.elementor-motion-effects-element-type-background), .elementor-188383 .elementor-element.elementor-element-3cce3dbf > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#706C610F;}.elementor-188383 .elementor-element.elementor-element-5451242a{--display:flex;--gap:04px 04px;--row-gap:04px;--column-gap:04px;--padding-top:8px;--padding-bottom:8px;--padding-left:8px;--padding-right:8px;}.elementor-188383 .elementor-element.elementor-element-14e81155{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--border-radius:8px 8px 8px 8px;box-shadow:0px 2px 10px 0px rgba(112, 108, 97.00000000000001, 0.12);--padding-top:24px;--padding-bottom:24px;--padding-left:24px;--padding-right:24px;}.elementor-188383 .elementor-element.elementor-element-14e81155:not(.elementor-motion-effects-element-type-background), .elementor-188383 .elementor-element.elementor-element-14e81155 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-188383 .elementor-element.elementor-element-6d35bb05{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:none;--border-style:none;--border-radius:0px 0px 8px 8px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-188383 .elementor-element.elementor-element-1ebf84fc{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-188383 .elementor-element.elementor-element-13b09af2{--display:flex;--min-height:20px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:020px 020px;--row-gap:020px;--column-gap:020px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-188383 .elementor-element.elementor-element-64b10320{width:100%;max-width:100%;}.elementor-188383 .elementor-element.elementor-element-64b10320 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-188383 .elementor-element.elementor-element-5dba899f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--border-radius:999px 999px 999px 999px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-188383 .elementor-element.elementor-element-71569081{width:var( --container-widget-width, 100% );max-width:100%;--container-widget-width:100%;--container-widget-flex-grow:0;--e-search-placeholder-color:var( --e-global-color-text );--e-search-input-color:#CBBBCD;--e-search-input-padding-block-start:0px;--e-search-input-padding-inline-start:16px;--e-search-input-padding-block-end:0px;--e-search-input-padding-inline-end:0px;--e-search-submit-margin-inline-start:0px;--e-search-icon-submit-size:12px;--e-search-icon-submit-color:var( --e-global-color-accent );--e-search-submit-border-radius:0px 999px 999px 0px;--e-search-submit-padding:9px 14px 9px 0px;}.elementor-188383 .elementor-element.elementor-element-71569081.elementor-element{--align-self:center;}.elementor-188383 .elementor-element.elementor-element-71569081 > .elementor-widget-container{transition:background 0s;}.elementor-188383 .elementor-element.elementor-element-71569081 .e-search-input{font-family:"Outfit", Sans-serif;font-size:13px;border-style:solid;border-width:00.5px 0px 00.5px 00.5px;border-radius:999px 0px 0px 0999px;}.elementor-188383 .elementor-element.elementor-element-71569081.e-focus{--e-search-input-color:#CBBBCD;}.elementor-188383 .elementor-element.elementor-element-71569081 .e-search-submit{border-style:solid;border-width:00.5px 00.5px 00.5px 0px;}.elementor-188383 .elementor-element.elementor-element-4184089f > .elementor-widget-container{margin:-8px 0px -12px 0px;}.elementor-188383 .elementor-element.elementor-element-4184089f.elementor-element{--align-self:stretch;}.elementor-188383 .elementor-element.elementor-element-2b9e096{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;border-style:none;--border-style:none;--border-radius:8px 8px 8px 8px;box-shadow:0px 2px 10px 0px rgba(112, 108, 97.00000000000001, 0.12);--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:20px;--padding-left:16px;--padding-right:16px;}.elementor-188383 .elementor-element.elementor-element-2b9e096:not(.elementor-motion-effects-element-type-background), .elementor-188383 .elementor-element.elementor-element-2b9e096 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#110513;}.elementor-188383 .elementor-element.elementor-element-4e4fc6e2{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-188383 .elementor-element.elementor-element-7d381d8 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-188383 .elementor-element.elementor-element-7d381d8 .elementor-heading-title{font-size:18px;font-weight:700;letter-spacing:0.01em;color:var( --e-global-color-1380fc1 );}.elementor-188383 .elementor-element.elementor-element-4fc29bb{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--border-radius:999px 999px 999px 999px;--padding-top:2px;--padding-bottom:2px;--padding-left:2px;--padding-right:2px;}.elementor-188383 .elementor-element.elementor-element-4fc29bb:not(.elementor-motion-effects-element-type-background), .elementor-188383 .elementor-element.elementor-element-4fc29bb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(90deg, #40C9FF 0%, #E81CFF 100%);}.elementor-188383 .elementor-element.elementor-element-4e09eb48 .elementor-button{background-color:#FFFFFF;font-family:"Outfit", Sans-serif;font-size:12px;font-weight:600;fill:#7B188C;color:#7B188C;border-style:none;border-radius:999px 999px 999px 999px;padding:8px 15px 8px 15px;}.elementor-188383 .elementor-element.elementor-element-4e09eb48 .elementor-button:hover, .elementor-188383 .elementor-element.elementor-element-4e09eb48 .elementor-button:focus{background-color:#F5F3F6;color:#7B188C;}.elementor-188383 .elementor-element.elementor-element-4e09eb48 .elementor-button:hover svg, .elementor-188383 .elementor-element.elementor-element-4e09eb48 .elementor-button:focus svg{fill:#7B188C;}.elementor-188383 .elementor-element.elementor-element-48ae403a{--display:flex;}.elementor-188383 .elementor-element.elementor-element-6226e4ef > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__meta-data span + span:before{content:"•";}.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__badge{right:0;}.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__card .elementor-post__badge{margin:20px;}.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__card{background-color:var( --e-global-color-1380fc1 );border-radius:0px;}.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__title, .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__title a{font-family:"Outfit", Sans-serif;}.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__title{margin-bottom:0px;}.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__meta-data{font-family:"Outfit", Sans-serif;}.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-post__excerpt p{font-family:"Outfit", Sans-serif;}.elementor-188383 .elementor-element.elementor-element-6226e4ef a.elementor-post__read-more{font-family:"Outfit", Sans-serif;}@media(min-width:768px){.elementor-188383 .elementor-element.elementor-element-5451242a{--width:20%;}.elementor-188383 .elementor-element.elementor-element-14e81155{--width:80%;}.elementor-188383 .elementor-element.elementor-element-4e4fc6e2{--width:80%;}}@media(max-width:1024px){.elementor-188383 .elementor-element.elementor-element-13b09af2{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}}@media(max-width:767px){.elementor-188383 .elementor-element.elementor-element-13b09af2{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-188383 .elementor-element.elementor-element-7d381d8 .elementor-heading-title{line-height:1.25em;}.elementor-188383 .elementor-element.elementor-element-48ae403a{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}}/* Start custom CSS for heading, class: .elementor-element-70f9045 */.elementor-188383 .elementor-element.elementor-element-70f9045 em { font-weight: 400; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5451242a *//* ════════════════════════════════════════════
   YPULSE FILTER RAIL — widget-level CSS
════════════════════════════════════════════ */
#yp-browse-filters,
#yp-browse-filters * {
  font-family: 'Outfit', sans-serif !important;
}

#yp-browse-filters.yp-browse_sidebar {
  width: 20% !important;
  flex-shrink: 0 !important;
  background: var(--near-white, #F5F3F6) !important;
  padding: 24px 0 40px !important;
  font-family: 'Outfit', sans-serif !important;
}

#yp-browse-filters .yp-filter {
  padding: 4px 20px 22px !important;
  border-top: 0.5px solid #DDD9DE !important;
}
#yp-browse-filters .yp-filter:first-of-type {
  border-top: 0.5px solid #DDD9DE !important;
  padding-top: 4px !important;
}

/* Section labels & carets */
#yp-browse-filters .yp-filter__label {
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.5em !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #706C61 !important;
  margin: 0 -20px 12px !important;
  cursor: pointer !important;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
#yp-browse-filters summary {
  list-style: none !important;
}
#yp-browse-filters summary::marker,
#yp-browse-filters .yp-filter__label::-webkit-details-marker {
  content: "" !important;
  display: none !important;
}
#yp-browse-filters .yp-filter__label svg,
#yp-browse-filters .yp-filter__label i,
#yp-browse-filters .yp-filter__label img,
#yp-browse-filters .yp-filter__label [class*="icon"] {
  display: none !important;
}
#yp-browse-filters .yp-filter__label::after {
  content: "\25BE" !important;
  font-size: 10px !important;
  color: #706C61 !important;
  transition: transform 0.2s !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  transform-origin: center !important;
}
#yp-browse-filters .yp-filter:not([open]) .yp-filter__label::after {
  transform: rotate(-90deg) !important;
}

/* Checkbox rows — shared by all filter types */
#yp-browse-filters .yp-check {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  padding: 0 !important;
}
#yp-browse-filters .yp-topic-group + .yp-topic-group {
  margin-top: 2px !important;
}

#yp-browse-filters label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  cursor: pointer !important;
  padding: 4px 0 !important;
  font-size: 12px !important;
  color: #242424 !important;
  transition: color 0.12s !important;
}
#yp-browse-filters label:hover {
  color: #501C59 !important;
}
#yp-browse-filters label span {
  flex: 1 !important;
  font-weight: inherit !important;
}
#yp-browse-filters .yp-check--parent label span {
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.3em !important;
}

#yp-browse-filters input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  margin: 2px 0 0 !important;
  border: 1.5px solid #DDD9DE !important;
  border-radius: 3px !important;
  background: #FFFFFF !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  transition: border-color 0.12s, background 0.12s !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 10px !important;
}
#yp-browse-filters input[type="checkbox"]:checked {
  background-color: #501C59 !important;
  border-color: #501C59 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 8.5L6.5 12L13 4.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

/* Topic row layout — checkbox + label close together, arrow follows close after */
#yp-browse-filters .yp-check--parent {
  justify-content: space-between !important;
}
#yp-browse-filters .yp-check--parent label {
  flex: 1 1 auto !important;
  width: auto !important;
  gap: 10px !important;
}

/* Topic tree — expand/collapse toggle + children */
#yp-browse-filters .yp-topic-toggle {
  all: revert !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 0 !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  color: #706C61 !important;
  font-size: 0 !important;
  transition: transform 0.2s, color 0.12s !important;
  margin-left: 8px !important;
  margin-top: 4px !important;
  transform-origin: center !important;
}
#yp-browse-filters .yp-topic-toggle > *,
#yp-browse-filters .yp-topic-toggle svg,
#yp-browse-filters .yp-topic-toggle img {
  display: none !important;
}
#yp-browse-filters .yp-topic-toggle::before {
  content: "\25B8" !important;
  font-size: 10px !important;
  color: #706C61 !important;
}
#yp-browse-filters .yp-topic-toggle:hover::before {
  color: #501C59 !important;
}
#yp-browse-filters .yp-topic-toggle[aria-expanded="true"] {
  transform: rotate(90deg) !important;
}

#yp-browse-filters .yp-check__children {
  padding-left: 18px !important;
}
#yp-browse-filters .yp-check__children label {
  font-size: 12px !important;
  line-height: 1.4em !important;
}
#yp-browse-filters .yp-check__children[hidden] {
  display: none !important;
}
#yp-browse-filters summary::before {
  content: none !important;
  display: none !important;
}
#yp-browse-filters summary {
  list-style: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
#yp-browse-filters .yp-filter__label::after {
  border: none !important;
  border-width: 0 !important;
  background: none !important;
}
#yp-browse-filters.yp-browse_sidebar {
  width: 20% !important;
  flex-shrink: 0 !important;
  background: var(--near-white, #F5F3F6) !important;
  padding: 24px 0 40px !important;
  font-family: 'Outfit', sans-serif !important;
  border-right: 0.5px solid #DDD9DE !important;
}
#yp-browse-filters .yp-filter {
  padding: 4px 20px 22px !important;
  border-top: 0.5px solid #DDD9DE !important;
}
#yp-browse-filters .yp-filter:first-of-type {
  border-top: 0.5px solid #DDD9DE !important;
  padding-top: 4px !important;
}

/* Open/active arrows — point down, Vivid Purple (2026-08-20) */
#yp-browse-filters .yp-filter[open] > .yp-filter__label::after {
  transform: rotate(0deg) !important;
  color: #7B188C !important;
}
#yp-browse-filters .yp-topic-toggle[aria-expanded="true"]::before {
  color: #7B188C !important;
}
#yp-browse-filters .yp-topic-toggle[aria-expanded="true"]:hover::before {
  color: #7B188C !important;
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-64b10320 *//* ════════════════════════════════════════════
   YPULSE CONTENT TYPE TABS — widget-level CSS
════════════════════════════════════════════ */
#yp-content-tabs,
#yp-content-tabs * {
  font-family: 'Outfit', sans-serif !important;
}

#yp-content-tabs {
  border-bottom: 0.5px solid #DDD9DE !important;
  margin-bottom: 0 !important;
  gap: 0 !important;
}

#yp-content-tabs .yp-tab-item {
  appearance: none !important;
  -webkit-appearance: none !important;
  background: none !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 12px 12px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #706C61 !important;
  cursor: pointer !important;
  transition: color 0.15s, border-color 0.15s !important;
}
#yp-content-tabs .yp-tab-item:hover {
  color: #242424 !important;
}
#yp-content-tabs .yp-tab-item:focus,
#yp-content-tabs .yp-tab-item:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}
#yp-content-tabs .yp-tab-item.is-active {
  color: #242424 !important;
  border-bottom-color: #501C59 !important;
}
#yp-content-tabs .yp-tab-count {
  color: #706C61 !important;
}

/* -- Per-content-type persistent tab colors, matching result-row type colors (always visible, not just when active) -- */
#yp-content-tabs .yp-tab-item[data-tab="articles"] {
  color: #197BBD !important;
}
#yp-content-tabs .yp-tab-item[data-tab="reports"] {
  color: #7B188C !important;
}
#yp-content-tabs .yp-tab-item[data-tab="news"] {
  color: #38B6D4 !important;
}
#yp-content-tabs .yp-tab-item[data-tab="webinars"] {
  color: #B0DB43 !important;
}
#yp-content-tabs .yp-tab-item.is-active[data-tab="articles"] {
  border-bottom-color: #197BBD !important;
}
#yp-content-tabs .yp-tab-item.is-active[data-tab="reports"] {
  border-bottom-color: #7B188C !important;
}
#yp-content-tabs .yp-tab-item.is-active[data-tab="news"] {
  border-bottom-color: #38B6D4 !important;
}
#yp-content-tabs .yp-tab-item.is-active[data-tab="webinars"] {
  border-bottom-color: #B0DB43 !important;
}

/* ── Mobile: tabs were overflowing/cut off with nowrap + no scroll ── */
@media (max-width: 900px) {
  #yp-content-tabs {
    -webkit-overflow-scrolling: touch !important;
  }
  #yp-content-tabs::-webkit-scrollbar {
    display: none !important;
  }
  #yp-content-tabs .yp-tab-item {
    flex-shrink: 0 !important;
  }
}


/* -- Allow shrinking when sharing a row with the search box (2026-08-24, sixteenth pass) --
   Flex items default to min-width:auto (= content width), which blocks shrinking and
   causes overflow/overlap into a narrower sibling instead of scrolling. min-width:0
   lets this actually shrink; overflow-x:auto is the safety net if it still doesn't fit. */
.elementor-188383 .elementor-element.elementor-element-64b10320 {
  min-width: 0;
}
.elementor-188383 .elementor-element.elementor-element-64b10320 #yp-content-tabs {
  overflow-x: auto;
  scrollbar-width: none;
  justify-content: flex-start !important;
}
.elementor-188383 .elementor-element.elementor-element-64b10320 #yp-content-tabs::-webkit-scrollbar {
  display: none;
}

/* -- Fade hint when tabs are squeezed by the search box (2026-08-24, sixteenth pass) --
   The nav can now be narrower than its content (min-width:0 + overflow-x:auto above),
   so the last tab (currently Webinars, lowest-volume type) can scroll off with no visible
   cue. A right-edge fade signals "more here" without needing added JS on a static page. */
.elementor-188383 .elementor-element.elementor-element-64b10320 #yp-content-tabs {
  -webkit-mask-image: linear-gradient(to right, black calc(100% - 32px), transparent 100%);
  mask-image: linear-gradient(to right, black calc(100% - 32px), transparent 100%);
}

/* -- Left-align tabs flush with content, right-align search flush with content (2026-08-24, seventeenth pass) --
   #yp-content-tabs carries a pre-existing 32px left/right padding from its base build. That was
   invisible before this row shared space with the search box (tabs used to be centered in their
   own full-width row), but once justify-content:flex-start made the left edge meaningful (sixteenth
   pass), this padding showed up as an unwanted ~50px indent versus the chips/sort-bar row and the
   results list below, which all start flush at the content column's left edge. Zeroing it also
   frees 64px total back to the tab row before the horizontal-scroll fallback needs to kick in. */
.elementor-188383 .elementor-element.elementor-element-64b10320 #yp-content-tabs {
  padding-left: 0 !important;
  padding-right: 0 !important;
}/* End custom CSS */
/* Start custom CSS for search, class: .elementor-element-71569081 *//* Unify search icon button with input so the bar reads as one piece,
   matching the Nav/Site Search Bar spec's single Near White container (2026-08-20).
   The button keeps native -webkit-appearance:button by default, which makes Chrome
   paint its own native background/border UNDER author CSS regardless of specificity
   or !important -- appearance:none must be set first to unlock stylability (2026-08-20).
   Also: a global/kit-level rule targets this same widget wrapper via its ID,
   "#browse-page-search-bar .e-search-submit { background: var(--near-white) !important }" --
   that variable is undefined here so it resolves invalid (transparent), but the ID
   .elementor-188383 .elementor-element.elementor-element-71569081 (specificity 1,1,0) still wins the cascade slot over our class-only
   .elementor-188383 .elementor-element.elementor-element-71569081-keyword expansion (0,4,0), and it happens to be compiled later in the file.
   Fix: compound the SAME ID onto the widget wrapper (it is literally the same element
   as elementor-element-45bc865) rather than nesting it as an ancestor, so our rule's
   specificity (1,4,0 -> beats 1,1,0 by class count) wins outright (2026-08-20). */
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-submit {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: #F5F3F6 !important;
  border-color: #DDD9DE !important;
}
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-input {
  border-color: #DDD9DE !important;
}

/* -- Narrow + move into shared tabs+search row (2026-08-24, sixteenth pass) --
   Moved into container c083e9e (now the shared "tabs left / search right" row,
   flex_justify_content: space-between) so the search box no longer implies an
   AI-prompt-style full-width input. Capped to 200px, matching the header/
   Nav-Site-Search-Bar spec width, with flex-shrink:0 so the tabs never squeeze it. */
.elementor-188383 .elementor-element.elementor-element-71569081 .e-search-form {
  max-width: 200px !important;
  width: 200px !important;
  flex-shrink: 0 !important;
  margin-left: auto !important;
  margin-right: 0 !important;
}
@media (max-width: 1024px) {
  .elementor-188383 .elementor-element.elementor-element-71569081 .e-search-form {
    max-width: none !important;
    width: 100% !important;
  }
}

/* -- Shrink the widget wrapper itself to hug the 200px form (2026-08-24, sixteenth pass) --
   The wrapper (#browse-page-search-bar) is a block box with width:auto, which fills its
   flex parent's full available main-axis space regardless of the form's own capped width --
   this is normal block width:auto behavior feeding flex-basis:auto, not a bug in the form
   rule above. Capping the wrapper itself to fit-content is what actually frees the extra
   space back to the tabs row. */
.elementor-188383 .elementor-element.elementor-element-71569081 {
  width: fit-content !important;
}

/* ==== YPULSE v4.1 FONT PORT ====
   Hover/focus border treatments, moved off page settings for the same
   portability reason. ID is compounded onto the scope keyword (not
   prepended) so it beats the 1,1,0 of the bare ID rule. Literal hex,
   not the near-white/warm-grey vars, which are undefined on this page. */
/* 2026-09-21: hover/focus ring wraps the whole pill (input + submit), not just the input */
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-form:hover .e-search-input,
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-form:hover .e-search-submit {
  border-color: #706C61 !important;
}
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-form:focus-within .e-search-input,
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-form:focus-within .e-search-submit {
  border-color: #E5A5F0 !important;
}


/* ---- 2026-09-18: full-width search on tablet/mobile. The unconditional
   .elementor-188383 .elementor-element.elementor-element-71569081 { width: fit-content } above is what was pinning it. ---- */
@media (max-width: 1024px) {
  .elementor-188383 .elementor-element.elementor-element-71569081 { width: 100% !important; max-width: 100% !important; --container-widget-width: 100% !important; }
  .elementor-188383 .elementor-element.elementor-element-71569081 .e-search-form, .elementor-188383 .elementor-element.elementor-element-71569081 .e-search-input { width: 100% !important; max-width: none !important; }
}


/* 2026-09-21: loading spinner. The site-wide inline <style> (.e-search-submit.yp-loading::after)
   draws a WHITE spinner for the dark nav search - invisible on this near-white submit button.
   Recolour to Brand Purple here and also hide the <i> icon (the global rule only hides svg). */
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-submit.yp-loading i,
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-submit.yp-loading svg { display: none !important; }
.elementor-188383 .elementor-element.elementor-element-71569081#browse-page-search-bar .e-search-submit.yp-loading::after {
  border: 2px solid rgba(80,28,89,0.25) !important;
  border-top-color: #501C59 !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5dba899f *//* -- Shrink this wrapper to hug its narrowed search widget (2026-08-24, sixteenth pass) --
   Same block width:auto issue as the widget wrapper one level in: as a flex item of
   c083e9e (the shared tabs+search row), this container's width:auto was filling all
   space c083e9e's space-between left it, instead of hugging its 260px child, starving
   the tabs of room and forcing them into horizontal scroll unnecessarily. */
.elementor-188383 .elementor-element.elementor-element-5dba899f {
  width: fit-content !important;
  flex-shrink: 0 !important;
}

/* ---- 2026-09-18: let the wrapper stretch on tablet/mobile ---- */
@media (max-width: 1024px) {
  .elementor-188383 .elementor-element.elementor-element-5dba899f { width: 100% !important; }
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7d381d8 *//* 2026-09-18: AI gradient as the text fill, one continuous run across both sentences.
   The inner span (formerly the cyan first clause) drops its own background and
   inherits the parent clip so the gradient does not restart. */
.elementor-188383 .elementor-element.elementor-element-7d381d8 .elementor-heading-title {
  display: inline;
  background: linear-gradient(90deg, #40C9FF, #E81CFF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}
.elementor-188383 .elementor-element.elementor-element-7d381d8 .elementor-heading-title span {
  background: none !important;
  color: inherit !important;
  -webkit-text-fill-color: transparent;
}/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-4e09eb48 */.elementor-188383 .elementor-element.elementor-element-4e09eb48 .elementor-button { margin: 0; }
/* 2026-09-18: keep "Ask AI" on one line at tablet */
.elementor-188383 .elementor-element.elementor-element-4e09eb48 .elementor-button { white-space: nowrap !important; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4fc29bb */.elementor-188383 .elementor-element.elementor-element-4fc29bb { box-shadow: 0 0 8px rgba(64,201,255,0.40), 0 0 16px rgba(232,28,255,0.28); width: fit-content; align-self: center !important; height: auto !important; }
/* 2026-09-18: never let the glow wrapper shrink — the heading column gives way instead */
.elementor-188383 .elementor-element.elementor-element-4fc29bb { flex-shrink: 0 !important; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2b9e096 *//* Ask-AI banner (2026-09-18). Dark Plum fill with the v4.1 AI Gradient Glow
   as a ring: black on padding-box, cyan-to-magenta gradient on border-box behind a
   transparent 2px border. Dual glow shadow per spec. Dark Plum #25032B per Oliver (reverted from the #161616 neutral trial). */
.elementor-188383 .elementor-element.elementor-element-2b9e096 {
  border: 2px solid transparent !important;
  background: linear-gradient(#25032B, #25032B) padding-box,
              linear-gradient(90deg, #40C9FF, #E81CFF) border-box !important;
  box-shadow: 0 0 8px rgba(64,201,255,0.40), 0 0 16px rgba(232,28,255,0.28) !important;
  border-radius: 10px !important;
}/* End custom CSS */
/* Start custom CSS for posts, class: .elementor-element-6226e4ef *//* ════════════════════════════════════════════
   YPULSE SEARCH RESULTS — table rows (v1.6)
   Widget-level CSS on the Posts widget (26c617d0).
   Supersedes all card-shell CSS from v1.1 through v1.5.

   Selectors are prefixed with `.elementor-188383 .elementor-element.elementor-element-6226e4ef` and include
   .elementor-posts-container to reach 0,3,0 specificity —
   the shortcode emits a body-level <style> at 0,2,0 !important
   which otherwise wins on source order. Do not simplify these.

   Card markup nests the title inside .ranking-top-row >
   .ranking-content, so those wrappers use display:contents to
   promote the leaves into this grid. Columns are then assigned
   explicitly, because the region-span count varies per row.

   v1.4 (2026-08-21): title bumped 16px -> 20px. Hover tooltip
   panel replaced with an in-flow accordion below the title.

   v1.5 (2026-08-21, second edit): content-type labels colour-coded.
   Removed .elementor-posts-container's left/right padding. Removed
   a stray 15px padding-bottom on article.elementor-post. Hover
   box-shadow changed to two 12px horizontal-offset shadows (0
   vertical spread) so it stops exactly at the row's own divider
   edges instead of overlapping neighbors.

   v1.6 (2026-08-21, third edit): titles now wrap instead of
   truncating with an ellipsis, so the full title is always
   visible (line breaks allowed, no ellipsis). Row height grows
   naturally since each row is its own auto-sized grid — no other
   column needed adjustment.
════════════════════════════════════════════ */

.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container {
  row-gap: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef article.elementor-post { display: block !important; margin: 0 !important; padding: 0 !important; }
.elementor-188383 .elementor-element.elementor-element-6226e4ef a.ranking-list-link { display: block !important; }

/* Flatten the wrappers so title + badges + date become grid items */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-top-row,
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-content,
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-content > div:first-child { display: contents !important; }

/* ── Row ── */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card {
  display: grid !important;
  grid-template-columns: 128px 1fr 150px !important;
  column-gap: 24px !important;
  row-gap: 0 !important;
  align-items: start !important;
  background: none !important;
  border: none !important;
  border-top: 0.5px solid #DDD9DE !important;
  border-radius: 0 !important;
  padding: 12px 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  position: relative !important;
  transition: background .12s ease !important;
}
/* Hover fill: two horizontal-offset shadows (0 vertical spread) so the
   highlight bleeds 12px into the left/right margin but its top/bottom
   edges stay exactly at this row's own border-box — flush with the
   divider above and the divider that starts the next row. */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ranking-list-link:hover .yp-post-card,
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ranking-list-link:focus-visible .yp-post-card {
  background: #F5F3F6 !important;
  box-shadow: 12px 0 0 0 #F5F3F6, -12px 0 0 0 #F5F3F6 !important;
  z-index: 3 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ranking-list-link:focus-visible { outline: none !important; }
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ranking-list-link:hover .ranking-title { color: #501C59 !important; }

/* ── Col 1 — type + regions (spans rows 1–2, since a 2-3 line badge outgrows a 1-line title) ── */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-subtitle {
  grid-column: 1 !important; grid-row: 1 / 3 !important; display: block !important; margin: 0 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-subtitle span {
  display: block !important;
  background: none !important; border: none !important;
  padding: 0 !important; border-radius: 0 !important;
  font-size: 12px !important; line-height: 1.5em !important;
  font-weight: 400 !important; text-transform: none !important;
  letter-spacing: normal !important; color: #706C61 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-subtitle span:first-child {
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  color: #706C61 !important;
}
/* Content-type colour coding (2026-08-21) */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .article-type .ranking-subtitle span:first-child {
  color: #197BBD !important; font-weight: 700 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .video-type .ranking-subtitle span:first-child,
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .webinar-type .ranking-subtitle span:first-child {
  color: #B0DB43 !important; font-weight: 700 !important;
}
/* News rows carry the shortcode's fallback class .default-type — Sky Blue, matching the News tab */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .default-type .ranking-subtitle span:first-child {
  color: #38B6D4 !important; font-weight: 700 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container [class*="report-type-"] .ranking-subtitle span:first-child {
  color: #7B188C !important; font-weight: 700 !important;
}
/* Row CTA is redundant — the whole row is the link */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ranking-subtitle ~ span { display: none !important; }

/* ── Col 2 — title (row 1). Wraps in full (2026-08-21) — no
   truncation, no ellipsis. Line breaks are fine; the row's own
   grid auto-sizes to whatever height the wrapped title needs. ── */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-title {
  grid-column: 2 !important; grid-row: 1 !important; margin: 0 !important;
  font-size: 18px !important; font-weight: 800 !important;
  line-height: 1.4em !important; color: #242424 !important;
  display: block !important; -webkit-line-clamp: none !important;
  white-space: normal !important; overflow: visible !important;
  text-overflow: unset !important; overflow-wrap: break-word !important;
  min-height: auto !important;
  transition: color .12s ease !important;
}

/* ── Col 3 — date + data markers (row 1) ── */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]) {
  grid-column: 3 !important; grid-row: 1 !important; display: block !important; text-align: right !important;
  margin-top: 0 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]) span {
  display: block !important;
  font-size: 12px !important; font-weight: 400 !important;
  line-height: 1.5em !important; color: #706C61 !important;
  background: none !important; border: none !important;
  padding: 0 !important; border-radius: 0 !important;
  white-space: nowrap !important;
  text-transform: none !important; letter-spacing: normal !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]) span:first-child {
  font-variant-numeric: tabular-nums;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-topic-chip img { display: none !important; }

/* ── Accordion panel (row 2) — opens below the title on row hover.
   Plain Warm Grey text to match the open-row aesthetic (no
   bordered/filled container per §10a). ── */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-description {
  grid-column: 2 !important;
  grid-row: 2 !important;
  margin: 0 !important;
  max-width: none !important;
  overflow: hidden !important;
  max-height: 0 !important;
  opacity: 0 !important;
  padding: 0 !important;
  font-size: 14px !important;
  line-height: 1.5em !important;
  color: #706C61 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  transition: max-height .22s ease, opacity .18s ease, padding-top .22s ease !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ranking-list-link:hover .ranking-description,
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ranking-list-link:focus-visible .ranking-description {
  max-height: 320px !important;
  opacity: 1 !important;
  padding-top: 6px !important;
  /* show delay only — stops panels strobing while scanning */
  transition-delay: .28s, .28s, .28s !important;
}

/* ── Touch: no hover, so the description stays inline and static ── */
@media (hover: none), (max-width: 1024px) {
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card {
    grid-template-columns: 1fr !important;
    row-gap: 6px !important;
    padding: 14px 0 !important;
  }
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-subtitle,
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-title,
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]),
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-description {
    grid-column: 1 !important; grid-row: auto !important; text-align: left !important;
  }

  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-subtitle > span + span {
    margin-top: 2px !important;
  }

  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-subtitle span {
    line-height: 1.3em !important;
  }

  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-description {
    max-height: none !important;
    opacity: 1 !important;
    background: none !important; border: none !important;
    box-shadow: none !important; padding: 0 !important;
    margin-top: 6px !important;
    font-size: 13px !important; color: #706C61 !important;
    white-space: normal !important; overflow: visible !important;
    text-overflow: unset !important;
    transition: none !important;
  }
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) span {
    line-height: 1.3em !important;
  }
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) span + span {
    margin-top: 2px !important;
  }
}

/* Hide "Includes Data Dashboard/File" markers on reports, and webinar length (2026-08-20).
   Selectors mirror the exact ancestor chain of the rules they must beat
   (col-3 "all spans" rule / col-1 "all subtitle spans" rule) plus one
   extra class, so specificity wins outright rather than tying. */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]) span.yp-topic-chip {
  display: none !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-subtitle span.video-length {
  display: none !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) span.video-length {
  display: none !important;
}


/* -- Load more button: match standard site button system (Primary tier, Brand Purple / Vivid Purple hover) -- */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ypulse-load-more-container .ypulse-load-more-btn {
  font-family: 'Outfit', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1em !important;
  color: #FFFFFF !important;
  background: #501C59 !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 10px 20px !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .ypulse-load-more-container .ypulse-load-more-btn:hover {
  background: #7B188C !important;
}

/* -- Report-type cards: the Report shortcode renders subtitle/description/date as three plain unclassed divs (no .ranking-subtitle / .ranking-description classes like Article/Webinar/News get), so all three were matching the single "date div" rule below and landing in the exact same grid cell (row1/col3), overlapping. Position each by DOM order instead, scoped to any card in this legacy/broken markup shape, regardless of post type, via the div:not([class]) structural match so other content types are untouched. -- */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) {
  grid-area: 1 / 1 / 3 / 2 !important;
  text-align: left !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) span {
  white-space: normal !important;
}
/* Reports have no wrapping .ranking-list-link around the whole row (they expose two
   real links -- Read Report / Explore data -- instead of one row-wide link like Articles),
   so a hover-to-reveal accordion has no trigger element and can never fire. Show the
   description plainly instead of hiding it behind a hover state that can't happen. */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(2):not(:last-of-type) {
  grid-area: 2 / 2 / auto / 3 !important;
  margin: 0 !important;
  margin-top: 4px !important;
  max-width: none !important;
  overflow: visible !important;
  max-height: none !important;
  opacity: 1 !important;
  padding: 0 !important;
  font-size: 14px !important;
  line-height: 1.5em !important;
  color: #706C61 !important;
  text-align: left !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):last-of-type {
  grid-area: 1 / 3 !important;
  text-align: right !important;
}

@media (hover: none), (max-width: 1024px) {
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1),
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(2):not(:last-of-type),
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):last-of-type {
    grid-area: auto / 1 !important;
    text-align: left !important;
  }
  .elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(2):not(:last-of-type) {
    max-height: none !important;
    opacity: 1 !important;
    padding: 0 !important;
    margin-top: 6px !important;
    font-size: 13px !important;
    color: #706C61 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    transition: none !important;
  }
}

/* ==== YPULSE v4.1 FONT PORT ====
   Moved here from page-settings Custom CSS, which does not survive a
   template copy between sites. Widget CSS does, and the scope keyword
   recompiles against whatever element ID this widget gets on import.
   Kit body type is Source Serif 4; cards declare no family of their own,
   so without this they inherit the serif. !important also out-cascades
   the inline font styles the AJAX filter/tab render path emits. */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .yp-post-card,
.elementor-188383 .elementor-element.elementor-element-6226e4ef .yp-post-card * {
  font-family: 'Outfit', sans-serif !important;
}


/* ==== LEGACY SHAPE TYPOGRAPHY (2026-09-17) ====
   The AJAX filter/tab render path emits cards with NO .ranking-* classes
   (shape DU-AU-DU-DU), so every class-keyed type rule above misses and the
   title/type-label fall back to the shortcode's inline styles. Earlier passes
   gave this shape grid PLACEMENT only; these rules give it the matching
   TYPOGRAPHY. Mirror any future change to the classed rules here too.
   Durable fix is backend: render both paths through the same template. */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > a:not([class]) {
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.4em !important;
  color: #242424 !important;
  text-decoration: none !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card:hover > a:not([class]) {
  color: #501C59 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) span:first-child {
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  color: #706C61 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .article-type > div:not([class]):nth-of-type(1) span:first-child {
  color: #197BBD !important; font-weight: 700 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .video-type > div:not([class]):nth-of-type(1) span:first-child,
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .webinar-type > div:not([class]):nth-of-type(1) span:first-child {
  color: #B0DB43 !important; font-weight: 700 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .default-type > div:not([class]):nth-of-type(1) span:first-child {
  color: #38B6D4 !important; font-weight: 700 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container [class*="report-type-"] > div:not([class]):nth-of-type(1) span:first-child {
  color: #7B188C !important; font-weight: 700 !important;
}


/* ==== LEGACY LEFT COLUMN (2026-09-17) ====
   The AJAX markup wraps the type/region spans in an inline-styled flex box
   (gap 6px) and adds a second block holding the Read/Watch CTA link. A full
   page load renders those spans as tight block lines with the CTA hidden.
   Flatten the wrapper and hide the CTA so both paths match. */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) > div:first-child {
  display: block !important;
  gap: 0 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) > div:first-child > span {
  margin-left: 0 !important;
}
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .yp-post-card > div:not([class]):nth-of-type(1) > div:not(:first-child) {
  display: none !important;
}


/* ---- 2026-09-18 search-results pass (Oliver) ---- */
/* 1. Hide "Explore data" link on report entries (sibling of .ranking-list-link inside article) */
.elementor-188383 .elementor-element.elementor-element-6226e4ef article.elementor-post > div > a:not(.ranking-list-link) { display: none !important; }

/* 2. Date: warm grey, regular weight, matching the region tags. Overrides the legacy-shape
   [class*="report-type-"] / .article-type > div:not([class]):nth-of-type(1) span:first-child
   rules, which leak onto the date because <article> also carries the type class. */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container article .yp-post-card > div:not([class]):last-child span:first-child {
  color: #706C61 !important;
  font-weight: 400 !important;
}

/* 3. Tighter line-height on the content-type label (was 1.5em; two-line "Behavioral Report") */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .ranking-subtitle span:first-child {
  line-height: 1.25em !important;
  margin-bottom: 3px !important;
}


/* 2026-09-18: News cards render with .news-type, not .default-type — the Sky Blue rule
   above never matched, so the label fell through to Warm Grey. Same colour as the News tab. */
.elementor-188383 .elementor-element.elementor-element-6226e4ef .elementor-posts-container .news-type .ranking-subtitle span:first-child { color: #38B6D4 !important; font-weight: 700 !important; }/* End custom CSS */