/*
Theme Name:     Kadence Child Theme
Theme URI:      n/a
Template:       kadence
Author:         Garrett Digital
Author URI:     https://www.garrettdigital.com
Description:    Research to Real World child theme styles, maintained by Garrett Digital.
Version:        1.0
License:        GNU General Public License v3.0 (or later)
License URI:    https://www.gnu.org/licenses/gpl-3.0.html
*/

/* =============================================================================
   Research to Real World - Child Theme Styles
   Maintained by Garrett Digital  |  https://www.garrettdigital.com

   HOW THIS FILE WORKS
   - Enqueued after Kadence's global CSS (see functions.php), so rules here
     override Kadence defaults.
   - Colors and fonts use the --custom-* tokens in :root below, which map to the
     Kadence global palette. To change brand colors, edit Kadence Global Colors,
     not the values here.
   - Rule order is intentional. Some rules depend on source order (the CSS
     cascade), so do not reorder blocks without testing on staging.

   SECTIONS (in source order)
   1.  Design tokens (:root)
   2.  Single-post prose rhythm (headings, paragraphs, lists)
   3.  Navigation (secondary nav, mega menu)
   4.  Category toggle, resource brand, partner logo trigger
   5.  Pills and tab pills
   6.  Custom cards (product and insight)
   7.  Insight post footer (meta, related resources, prev/next)
   8.  Equal-height Kadence query cards
   9.  Partner cards and directory
   10. Buttons
   11. Partner page and partner detail
   12. Resource filters
   13. Product detail
   14. Simple cards
   15. Non-discrimination accordion
   16. Whole-card link and hover
   17. Insight card media band
   18. Carousel arrow focus, breadcrumbs
   19. Partner modal (moved here from Kadence Element #325)
   20. Partner directory cards as modal triggers
   ============================================================================= */

:root {
  /* Brand Fonts */
  --custom-font-heading: var(--global-heading-font-family);
  --custom-font-body: var(--global-heading-font-family);

  /* Brand Colors */
  --custom-color-blue: var(--global-palette1);
  --custom-color-blue-dark: var(--global-palette2);
  --custom-color-sky: var(--global-palette10);
  --custom-color-wheat: var(--global-palette15);
  --custom-color-crimson: var(--global-palette13);

  /* Supporting Colors */
  --custom-color-pale-blue: var(--global-palette8);
  --custom-color-grey-dark: var(--global-palette4);
  --custom-color-grey: var(--global-palette5);
  --custom-color-grey-soft: var(--global-palette6);
  --custom-color-ink: var(--global-palette3);
  --custom-color-surface: var(--global-palette7);
}

.single-content h1,
.single-content h2,
.single-content h3,
.single-content h4,
.single-content h5,
.single-content h6 {
  margin-bottom: 0.25em;
}

/* Single-post prose rhythm */

/* Paragraphs and lists */
.wp-singular .entry-content .wp-block-paragraph,
.wp-singular .entry-content .wp-block-list,
.wp-singular .entry-content ul:not([class]),
.wp-singular .entry-content ol:not([class]) {
  margin-top: 0;
  margin-bottom: 1.1em;
  line-height: 1.7;
}

/* Headings */
.wp-singular .entry-content .wp-block-heading {
  margin-top: 1.25em;
  margin-bottom: 0.4em;
  line-height: 1.25;
  font-weight: 400;
}

/* Never push the first block of the content down */
.wp-singular .entry-content > *:first-child {
  margin-top: 0;
}

/* List items */
.wp-singular .entry-content li {
  margin-bottom: 0.4em;
  line-height: 1.6;
}

.wp-singular .entry-content li > ul,
.wp-singular .entry-content li > ol {
  margin-top: 0.4em;
  margin-bottom: 0;
}

.secondary-navigation .menu-item-button {
  margin: 0 5px;
}

.secondary-navigation .menu-item-button a {
  border: 1px solid var(--custom-color-blue);
  border-radius: 30px;
  padding: 7px 15px 8px !important;
  text-align: center;
}

.secondary-navigation .menu-item-button a:before {
  content: "";
  display: inline-block;
  position: relative;
  width: 7px;
  height: 7px;
  background: var(--custom-color-crimson);
  border-radius: 50%;
  opacity: 1;
  margin-right: 10px;
}

.secondary-navigation .menu-item-button a:hover {
  background: var(--custom-color-blue);
  color: #fff !important;
}

/*.kadence-menu-mega-enabled .sub-menu {
	top: 75px !important;
	box-shadow: none !important;
	width: auto !important;
}*/

.header-menu-container ul.menu > li.kadence-menu-mega-enabled.menu-item--toggled-on ul,
.header-menu-container ul.menu > li.kadence-menu-mega-enabled ul {
  left: calc(1.6em / 2) !important;
  width: 90vw !important;
  max-width: 240px;
  padding: 18px 22px !important;
  top: 100% !important;
  background: #fff;
  border: 1px solid var(--custom-color-grey-soft) !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 34px rgba(16, 24, 40, 0.14) !important;
}

.header-menu-container
  ul.menu
  > li.kadence-menu-mega-enabled.menu-item--toggled-on
  ul
  .kt-row-column-wrap:first-child,
.header-menu-container ul.menu > li.kadence-menu-mega-enabled ul .kt-row-column-wrap:first-child {
  padding-top: 0;
  padding-bottom: 0;
}

.header-menu-container ul.menu > li.kadence-menu-mega-enabled.menu-item--toggled-on ul h6,
.header-menu-container ul.menu > li.kadence-menu-mega-enabled ul h6 {
  color: var(--custom-color-grey);
}

.header-menu-container
  ul.menu
  > li.kadence-menu-mega-enabled.menu-item--toggled-on
  ul
  .nav-topic-links
  a,
.header-menu-container ul.menu > li.kadence-menu-mega-enabled ul .nav-topic-links a {
  color: var(--custom-color-grey-dark);
  font-weight: 500;
  margin-top: 10px;
  text-decoration: none;
}

.header-menu-container
  ul.menu
  > li.kadence-menu-mega-enabled.menu-item--toggled-on
  ul
  .nav-topic-links
  a:hover,
.header-menu-container ul.menu > li.kadence-menu-mega-enabled ul .nav-topic-links a:hover {
  color: var(--custom-color-blue);
}

.header-menu-container
  ul.menu
  > li.kadence-menu-mega-enabled.menu-item--toggled-on
  ul
  p.wp-block-paragraph:empty,
.header-menu-container ul.menu > li.kadence-menu-mega-enabled ul p.wp-block-paragraph:empty {
  display: none !important;
}

.audience-grid {
  display: none;
}

.category-toggle {
  background: var(--custom-color-pale-blue);
  border-radius: 70px;
  padding: 5px;
  border: 1px solid var(--custom-color-surface);
}

.category-toggle button {
  font-family: var(--custom-font-heading);
  font-size: 15px;
  border: none;
  background: transparent;
  color: var(--custom-color-ink);
}

.category-toggle button:hover {
  box-shadow: none;
}

.category-toggle button.active {
  background: var(--custom-color-blue);
  color: #fff;
}

.resource-brand {
  margin-top: 25px;
  display: flex;
}

.resource-brand img {
  max-width: 150px;
  max-height: 45px;
  object-fit: contain;
  width: auto;
}

.resource-topics {
  margin-bottom: 10px;
}

.resource-brand-name {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}

/* Scoped to the carousel: .partner-logo-trigger is now a shared behavior hook and the /partners/ cards use it too. Box rules unchanged, button renders identically. */
/* .partner-logo-link is the same slide for a full-page partner, where the logo navigates (<a>) instead of opening the modal (<button>). */
.partner-carousel .partner-logo-trigger,
.partner-carousel .partner-logo-link {
  border: none;
  border-radius: 10px;
  padding: 30px 45px;
  background: #fff;
  height: 100%;
}

/* Anchors are inline and left-aligned by default; match the button's centering without touching the button itself. */
.partner-carousel .partner-logo-link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-sizing: border-box;
}

.partner-carousel .partner-logo-inner img {
  max-height: 70px;
  object-fit: contain;
}

.partner-carousel .partner-logo-trigger:hover,
.partner-carousel .partner-logo-trigger:focus,
.partner-carousel .partner-logo-link:hover,
.partner-carousel .partner-logo-link:focus {
  background: #fff;
}

/* The :focus rule above kills the only cue a keyboard user gets; restore a ring for keyboard focus only. */
.partner-carousel .partner-logo-trigger:focus-visible,
.partner-carousel .partner-logo-link:focus-visible {
  outline: 2px solid var(--custom-color-blue);
  outline-offset: 2px;
}

/* Pills */

.global-pill {
  color: rgba(0, 0, 0, 0.65);
  border: 1px solid rgba(0, 0, 0, 0.15);
  font-family: var(--custom-font-heading);
  border-radius: 20px;
  font-size: 14px;
  padding: 1px 10px;
  text-decoration: none;
  font-weight: 400;
  white-space: nowrap;
  margin-bottom: 5px;
}

.global-pill.yellow {
  background: var(--custom-color-wheat);
  border-color: var(--custom-color-wheat);
  color: var(--custom-color-ink);
}

.resource-topics {
  display: flex;
  flex-wrap: wrap;
}

.resource-topics .global-pill + .global-pill {
  margin-left: 5px;
}

/* Custom tab pills */

.custom-tabs-aside-pills {
  margin-top: -80px;
}

.custom-tabs-aside-pills .kt-tabs-title-list {
  margin-bottom: 20px;
  background: var(--custom-color-pale-blue);
  border-radius: 70px;
  padding: 5px;
  border: 1px solid var(--custom-color-surface);
  float: right;
  z-index: 9;
  position: relative;
}

.custom-tabs-aside-pills .kt-tabs-wrap .kt-tabs-title-list li {
  margin: 0 1px;
}

.custom-tabs-aside-pills .kt-tabs-wrap .kt-tabs-title-list li .kt-tab-title {
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--custom-font-heading);
  font-size: 15px;
  font-weight: 500;
  border-radius: 100px;
  padding: 7px 20px 9px 20px;
  color: var(--custom-color-ink);
}

.custom-tabs-aside-pills .kt-tabs-wrap .kt-tabs-title-list li.kt-tab-title-active .kt-tab-title {
  background: var(--custom-color-blue);
  color: #fff;
}

@media (max-width: 767px) {
  .custom-tabs-aside-pills {
    margin-top: 0;
  }

  .custom-tabs-aside-pills .kt-tabs-title-list {
    margin-bottom: 0;
  }
}

/* Custom cards (product + insight) */

.woocommerce .wp-block-post-featured-image {
  background: var(--custom-color-pale-blue);
}

.woocommerce ul.products li.product a img {
  max-height: 182px;
  margin-top: 20px;
  object-fit: cover !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.wp-block-kadence-query .wp-block-kadence-query-card li:not(.product) .kt-inside-inner-col,
.related-post-single-card {
  background: #fff url(https://www.researchtorealworld.org/wp-content/uploads/2026/06/grid.svg)
    no-repeat calc(100% - 15px) 15px !important;
  box-shadow: none;
  padding: 10px 15px 25px;
  border-radius: 10px;
  padding: 15px;
  border: 1px solid var(--custom-color-grey-soft) !important;
}

.wp-block-kadence-query .wp-block-kadence-query-card li:not(.product) .kt-inside-inner-col,
.related-post-single-card {
  padding-top: 50px;
}

.insight-card-excerpt {
  margin-bottom: 20px;
}

.insight-card-divider {
  border: 1px solid #f0ecec;
  margin: auto 0 12px !important;
}

.insight-card-excerpt,
.resource-card-excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

/* Insight post footer */

/* Topics & Audiences strip */
.insight-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 20px 40px;
  margin-top: 32px;
  padding: 24px 28px;
  background: #f7f8fa;
  border-radius: 12px;
}

.insight-meta .resource-attr {
  margin: 0;
}

.insight-meta strong {
  display: block;
  margin-bottom: 8px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--custom-color-grey);
}

.insight-meta .global-pill + .global-pill {
  margin-left: 5px;
}

.insight-meta .resource-attr-item {
  line-height: 1.6;
  color: var(--custom-color-grey-dark);
  text-decoration: none;
}

.insight-meta .resource-attr-item:hover {
  text-decoration: underline;
}

/* Related Resources */
.related-resources-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 30px;
  margin-top: 8px;
}

.related-resource-card {
  background: #fff;
  border: 1px solid var(--custom-color-grey-soft);
  border-radius: 10px;
  padding: 15px;
}

@media (max-width: 600px) {
  .related-resources-grid {
    grid-template-columns: 1fr;
  }
}

/* Previous / Next */
.insight-prev-next-native {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid var(--custom-color-pale-blue);
}

.insight-prev-next-native > .wp-block-group__inner-container {
  flex: 1;
  display: flex;
  justify-content: space-between;
  gap: 24px;
}

.insight-prev-next-native .wp-block-post-navigation-link {
  max-width: 46%;
  font-size: var(--global-kb-font-size-sm, 0.9rem);
}

.insight-prev-next-native .post-navigation-link-next {
  margin-left: auto;
  text-align: right;
}

.insight-prev-next-native .wp-block-post-navigation-link a {
  color: var(--custom-color-blue);
  font-weight: 500;
  text-decoration: none;
}

.insight-prev-next-native .wp-block-post-navigation-link a:hover {
  text-decoration: underline;
}

.insight-prev-next-native [class*="__arrow"] {
  color: var(--custom-color-grey);
}

@media (max-width: 600px) {
  .insight-prev-next-native,
  .insight-prev-next-native > .wp-block-group__inner-container {
    flex-direction: column;
    gap: 16px;
  }
  .insight-prev-next-native .wp-block-post-navigation-link,
  .insight-prev-next-native .post-navigation-link-next {
    max-width: 100%;
    margin-left: 0;
    text-align: left;
  }
}

/* Equal-height Kadence query cards */
.kb-query-grid-wrap {
  display: grid !important;
  align-items: stretch;
}

.kb-query-grid-wrap > .kb-query-item {
  height: 100%;
  display: flex !important;
  flex-direction: column;
}

.kb-query-grid-wrap > .kb-query-item > .kb-row-layout-wrap,
.kb-query-grid-wrap .kt-row-column-wrap,
.kb-query-grid-wrap .wp-block-kadence-column,
.kb-query-grid-wrap .kt-inside-inner-col {
  height: 100%;
  display: flex !important;
  flex-direction: column;
  flex: 1 1 auto;
}

.insight-card-container {
  height: 100%;
  flex: 1 1 auto;
  display: flex !important;
  flex-direction: column;
}

.resource-card-container > img {
  margin-bottom: 20px;
  width: 100%;
}

.resource-card-container .resource-card-title {
  margin: 1em 0 0.5em;
}

.woocommerce ul.products li.product p:empty,
ul.products li.kb-query-item p:empty {
  display: none;
}

.custom-card-post-meta {
  font-size: 14px;
  color: var(--custom-color-grey);
  display: flex;
  font-weight: 400;
  align-items: center;
  gap: 6px;
}

.resource-card-container .custom-card-post-meta {
  margin-top: 8px;
  border-top: 1px solid var(--custom-color-grey-soft);
  padding-top: 12px;
}

.custom-card-post-meta .post-date + .post-author::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin-right: 6px;
  vertical-align: middle;
  border-radius: 50%;
  background: var(--custom-color-grey-soft);
}

/* Single post */

.related-post-single-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  column-gap: 30px;
}

/* Partner cards + directory */

.partners-directory-grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(3, 1fr);
}

.partner-card {
  background: #fff;
  border: 1px solid var(--custom-color-grey-soft);
  color: var(--custom-color-ink) !important;
  padding: 24px;
  border-radius: 10px;
  text-decoration: none;
  transition:
    border-color 0.12s,
    transform 0.12s;
}

.partner-card:hover {
  border-color: var(--custom-color-blue);
  transform: translateY(-5px);
}

.partner-card-content {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.partner-card-title {
  color: var(--custom-color-ink) !important;
  font-family: var(--custom-font-heading);
  font-size: 1.5rem;
  line-height: 40px;
}

.partner-brand-logo {
  display: block;
  height: 40px;
  object-fit: contain;
  object-position: center left;
  width: 100%;
}

@media (max-width: 900px) {
  .partners-directory-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .partners-directory-grid {
    grid-template-columns: repeat(1, 1fr);
  }
}

/* Patterns */

/* Buttons */

.kb-button {
  display: inherit;
}

.kb-button:before {
  content: "";
  position: relative;
  width: 7px;
  height: 7px;
  background: var(--custom-color-crimson);
  border-radius: 50%;
  opacity: 1;
  margin-right: 10px;
  top: 0.075em;
}

.kb-button.white-circle::before {
  background: #fff;
}

.kb-button.yellow-circle::before {
  background: var(--custom-color-wheat);
}

/* Partner page layout */
.rtrw-partner-page .partner-hero-band {
  padding: 48px 0;
}
.rtrw-partner-page .partner-about {
  padding: 48px 0;
}
.rtrw-partner-page .partner-offerings {
  padding: 48px 0;
}
.rtrw-partner-page .rtrw-surface {
  background: #f5f7fa;
}

/* Partner detail page */

/* Section heading divider — matches title-divider.svg used on /partners/ */
.rtrw-section-divider {
  display: block;
  max-width: 276px;
  margin: 4px 0 28px;
}

/* Partner hero band — uses --custom-color-blue token */
.partner-hero-band {
  background: var(--custom-color-blue);
  color: #fff;
  padding: 56px 0 64px;
}

/* Eyebrow label — uppercase, small, light — matches partners page h1 treatment */
.rtrw-partner-eyebrow {
  font-family: var(--custom-font-heading);
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: rgba(255, 255, 255, 0.7);
  margin: 0 0 10px;
}

/* Hero h1 — white, large */
/* <!-- new CSS needed: consider pulling size from Kadence global heading once confirmed --> */
.rtrw-partner-h1 {
  color: #fff;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 0 14px;
}

/* Hero tagline and body copy */
.rtrw-partner-tagline {
  font-size: 1.2em;
  color: rgba(255, 255, 255, 0.85);
  margin: 0 0 12px;
  max-width: 700px;
}

.rtrw-partner-desc {
  font-size: 1em;
  color: rgba(255, 255, 255, 0.8);
  max-width: 640px;
  margin: 0 0 24px;
}

/* Hero CTA buttons */
.rtrw-hero-btns {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 8px;
}

/* rtrw-btn — primary action button, reuses --custom-color-blue token */
.rtrw-btn {
  display: inline-flex;
  align-items: center;
  padding: 11px 28px;
  border-radius: 30px;
  font-family: var(--custom-font-heading);
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  cursor: pointer;
  transition:
    background 0.12s,
    color 0.12s,
    border-color 0.12s;
  border: 2px solid transparent;
}

/* Solid white button on blue background */
.rtrw-btn-primary {
  background: #fff;
  color: var(--custom-color-blue);
  border-color: #fff;
}

.rtrw-btn-primary:hover {
  background: transparent;
  color: #fff;
  border-color: #fff;
}

/* Ghost/outline button on blue background */
.rtrw-btn-outline {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.6);
}

.rtrw-btn-outline:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: #fff;
  color: #fff;
}

/* Partner About section */
.partner-about {
  padding: 56px 0;
}

/* Partner Staff section — uses --custom-color-surface token for background */
.partner-staff {
  background: var(--custom-color-surface);
  padding: 56px 0;
}

.partner-staff-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 8px;
}

.partner-staff-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  min-width: 220px;
}

/* Avatar circle — reuses --custom-color-blue and --custom-font-heading tokens */
.staff-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--custom-color-blue);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--custom-font-heading);
  font-weight: 700;
  font-size: 18px;
  flex-shrink: 0;
}

.staff-name {
  font-weight: 600;
  font-size: 1rem;
  color: var(--custom-color-ink);
  margin-bottom: 3px;
}

.staff-role {
  font-size: 14px;
  color: var(--custom-color-grey);
}

/* Partner Offerings section */
.partner-offerings {
  padding: 56px 0;
}

/* Resource filters */

#resource-filter-description {
  margin-bottom: 0;
}

.resource-filters-pills {
  padding: 20px 0;
  border-bottom: 1px solid var(--custom-color-pale-blue);
  -moz-column-gap: 5px;
  column-gap: 5px;
  display: flex;
  flex-wrap: wrap;
  row-gap: 5px;
}

.resource-filters-pills .global-pill {
  color: var(--custom-color-grey-dark);
  border: 1px solid var(--custom-color-pale-blue);
  font-size: 0.9rem;
  padding: calc(0.4em - 1px) calc(1em - 1px);
  border-radius: 100px;
  font-weight: 500;
}

.resource-filters-pills .global-pill.active {
  background: var(--custom-color-blue);
  border-color: var(--custom-color-blue);
  color: #fff;
}

.resource-filters-pills .global-pill:not(.active):hover {
  background: var(--custom-color-pale-blue);
}

/* Product detail */

@media (min-width: 860px) {
  .product-template-default .custom-product-info > .kt-row-column-wrap {
    grid-template-columns: 1fr 340px !important;
  }
}

.product-template-default .custom-product-info > .kt-row-column-wrap:has(> :only-child) {
  grid-template-columns: 1fr !important;
}

.resource-simple-topics-partners {
  color: var(--custom-color-blue);
  font-size: var(--global-kb-font-size-sm, 0.9rem);
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.11em;
}

.product-template-default
  .wp-block-kadence-wootemplate-blocks-image:has(.woocommerce-product-gallery__image--placeholder) {
  display: none;
}

.product-template-default .wp-block-kadence-wootemplate-blocks-image img {
  border-radius: 12px;
  margin-bottom: 20px;
}

.product-template-default .kt-tab-alignment-center > .kt-tabs-title-list {
  justify-content: flex-start;
}

.product-template-default .kt-tab-inner-content-inner {
  max-width: 680px;
}

.product-template-default .kt-tab-inner-content-inner p:empty {
  display: none !important;
}

.product-template-default .kt-tab-inner-content-inner p {
  font-size: 18px !important;
  line-height: 1.5em !important;
  margin: 0 !important;
  margin-bottom: 1em !important;
}

.product-template-default .wp-block-separator.has-background:not(.is-style-dots) {
  border-top-width: 1px;
}

.resource-attr + .resource-attr {
  margin-top: 5px;
}
/* Single resource attribute strip (.resource-attrs on single product pages) */

/* Single resource attribute strip (.resource-attrs on single product pages) */

.single-product .resource-attrs {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 20px 40px;
  padding: 24px 28px;
  background: #f7f8fa;
  border-radius: 12px;
}

.single-product .resource-attr {
  margin: 0;
  flex: 1 1 180px;
  min-width: 0;
}

/* Multi-value attributes get a double share of the row */
.single-product .resource-attr:has(.resource-attr-item + .resource-attr-item) {
  flex-grow: 2;
  flex-basis: 260px;
}

/* Label above values */
.single-product .resource-attr strong {
  display: block;
  margin-bottom: 8px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #5a6572;
}

/* Hide the <br><br> in the Partner block */
.single-product .resource-attr br {
  display: none;
}

.single-product .resource-attr .resource-brand-link {
  display: inline-block;
}
.single-product .resource-attr .resource-brand-logo {
  display: block;
  max-height: 36px;
  width: auto;
  height: auto;
}

.single-product .resource-attr .resource-attr-item {
  line-height: 1.6;
}

/* Tablet: strict 2-column grid; phone: single column */
@media (max-width: 1024px) {
  .single-product .resource-attrs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 32px;
  }
}

@media (max-width: 600px) {
  .single-product .resource-attrs {
    grid-template-columns: 1fr;
  }
}

.resource-attr .global-pill + .global-pill {
  margin-left: 5px;
}

.product-template-default
  .custom-product-info
  .with_frm_style
  .frm_form_fields
  > fieldset:last-child {
  padding-bottom: 0 !important;
}

.product-template-default .frm_style_formidable-style.with_frm_style .frm_submit button {
  width: 100%;
}

.resource-cta-heading {
  color: var(--custom-color-blue);
  font-size: 1.25rem;
}

.resource-cta-subheading {
  font-size: 1.75rem;
}

.resource-cta-primary,
.resource-cta-secondary {
  border: 1px solid var(--custom-color-blue) !important;
  border-radius: 100px !important;
  display: flex !important;
  justify-content: center;
  align-items: center;
  margin-top: 1em !important;
}

.resource-cta-primary {
  background: var(--custom-color-blue) !important;
  color: #fff !important;
}

.resource-cta-primary:hover,
.resource-cta-secondary:hover {
  background: var(--custom-color-blue-dark) !important;
  border-color: var(--custom-color-blue-dark) !important;
  color: #fff !important;
}

/* Simple cards */

.simple-cards-container {
  padding-top: var(--global-kb-spacing-sm, 1.5rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--global-row-gutter-md, 2rem) var(--global-row-gutter-md, 2rem);
  grid-auto-rows: minmax(min-content, max-content);
  z-index: 1;
  position: relative;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.global-simple-card {
  border: 1px solid var(--custom-color-grey-soft);
  border-radius: 10px;
  color: var(--custom-color-grey-dark);
  padding: var(--global-kb-spacing-xs, 1rem);
  text-decoration: none;
}

.global-simple-card:hover {
  background-color: var(--custom-color-pale-blue);
  color: var(--custom-color-grey-dark);
}

.cf-turnstile {
  width: 100% !important;
}

.global-simple-card-title {
  font-weight: 400;
}

@media (max-width: 767px) {
  .simple-cards-container {
    grid-template-columns: minmax(0, 1fr);
  }
}

.rtrw-nondiscrimination {
  padding-top: 4px;
}

.rtrw-nondiscrimination > summary {
  list-style: none;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 8px 0;
  font-weight: 500;
}

.rtrw-nondiscrimination > summary::-webkit-details-marker {
  display: none;
}

.rtrw-nondiscrimination > summary::after {
  content: "";
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
  margin-left: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}

.rtrw-nondiscrimination[open] > summary::after {
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}

.rtrw-nondiscrimination-body {
  padding-top: 10px;
}

.rtrw-nondiscrimination-body p {
  margin: 0;
  line-height: 1.6;
  overflow-wrap: break-word;
}

@media (prefers-reduced-motion: reduce) {
  .rtrw-nondiscrimination > summary::after {
    transition: none;
  }
}

/* Whole-card link + hover */

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.wp-block-kadence-query .wp-block-kadence-query-card li:not(.product) .kt-inside-inner-col,
.related-post-single-card {
  transition:
    border-color 0.12s ease,
    transform 0.12s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
.wp-block-kadence-query .wp-block-kadence-query-card li:not(.product) .kt-inside-inner-col:hover,
.related-post-single-card:hover {
  border-color: var(--custom-color-blue) !important;
  transform: translateY(-2px);
}

.link-card-absolute {
  border-radius: 10px;
  display: block;
  height: calc(100% + 2px);
  left: -1px;
  position: absolute;
  top: -1px;
  width: calc(100% + 2px);
  z-index: 6;
}

.archive.woocommerce-page ul.products li.product .link-card-absolute {
  height: calc(100% + 32px);
  left: -16px;
  position: absolute;
  top: -16px;
  width: calc(100% + 32px);
}

/* Fix: confine the whole-card link overlay in single-page related sections
   (Related Resources / Related Posts on insight posts). These custom-grid cards
   had no positioning context, so .link-card-absolute escaped and covered the page,
   linking the hero and everything to the last card. */
.related-resource-card,
.related-post-single-card {
  position: relative;
}

.related-resource-card {
  transition:
    border-color 0.12s ease,
    transform 0.12s ease;
}

.related-resource-card:hover {
  border-color: var(--custom-color-blue) !important;
  transform: translateY(-2px);
}

/* Insight card media band */

.wp-block-kadence-query-card li:not(.product) .wp-block-kadence-column .kt-inside-inner-col {
  background: #fff !important;
}

h5.insight-card-title {
  margin-top: 6px;
}

.insight-card-media {
  position: relative;
  aspect-ratio: 24 / 9;
  margin-bottom: 12px;
  border-radius: 7px;
  overflow: hidden;
  background: #e1eef9
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 22' fill='none' stroke='%23a9c4e6' stroke-width='1.3'%3E%3Crect x='1' y='1' width='62' height='20'/%3E%3Cpath d='M11.3 1v20M21.7 1v20M32 1v20M42.3 1v20M52.7 1v20M1 11h62'/%3E%3C/svg%3E")
    top 14px right 16px / 84px no-repeat;
}

.insight-card-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
@supports not (aspect-ratio: 1 / 1) {
  .insight-card-media {
    height: 0;
    padding-top: 37.5%;
  }
}

.kt-inside-inner-col:has(.insight-card-media) {
  background-image: none !important;
  padding-top: 15px !important;
}

/* Carousel arrow focus fix */

.splide__arrow:focus:not(:hover) {
  background: #ccc !important;
  opacity: 0.7 !important;
}

/* Breadcrumbs */

.resource-simple-topics-partners {
  font-weight: 500;
}

.resource-simple-topics-partners a {
  color: inherit;
  text-decoration: none;
}
.resource-simple-topics-partners a:hover {
  text-decoration: underline;
}

/* Make the inline Formidable form submit buttons match the product-page CTA buttons
   (the .resource-cta-primary style used by "Download PDF", "Submit", etc.).
   Applies to the gated-download form (form 5, "Get Access"), the quote-request form
   (form 3, "Send Request"), and the contact form (form 2, "Send Message"). */
#frm_form_5_container .frm_submit button.frm_button_submit,
#frm_form_3_container .frm_submit button.frm_button_submit,
#frm_form_2_container .frm_submit button.frm_button_submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 13px 28px;
  font-family: var(--custom-font-heading);
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  color: #fff !important;
  background: var(--custom-color-blue) !important;
  border: 1px solid var(--custom-color-blue) !important;
  border-radius: 100px !important;
  box-shadow: none;
  cursor: pointer;
  transition:
    background 0.12s ease,
    border-color 0.12s ease;
}

#frm_form_5_container .frm_submit button.frm_button_submit:hover,
#frm_form_5_container .frm_submit button.frm_button_submit:focus,
#frm_form_3_container .frm_submit button.frm_button_submit:hover,
#frm_form_3_container .frm_submit button.frm_button_submit:focus,
#frm_form_2_container .frm_submit button.frm_button_submit:hover,
#frm_form_2_container .frm_submit button.frm_button_submit:focus {
  color: #fff !important;
  background: var(--custom-color-blue-dark) !important;
  border-color: var(--custom-color-blue-dark) !important;
}

#frm_form_5_container .frm_submit button.frm_button_submit::before,
#frm_form_3_container .frm_submit button.frm_button_submit::before,
#frm_form_2_container .frm_submit button.frm_button_submit::before {
  content: "";
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--custom-color-crimson);
}

/* Contact-form submit button (form 2) sizes to its content, not full-width like the
   CTA-column buttons (gated/quote), which fill their narrow column. */
#frm_form_2_container .frm_submit button.frm_button_submit {
  width: auto;
}

/* Cloudflare Turnstile on the contact form (form 2) only: cap the width so it is not
   full-width. The global .cf-turnstile full-width rule is needed inside the narrow
   resource CTA column (gated/quote forms); on the wider contact form it stretched too
   far. Scoped to this form instance so the CTA-column Turnstiles are unaffected. */
#frm_form_2_container .cf-turnstile {
  max-width: 300px !important;
}

/* =============================================================================
   Partner modal — moved verbatim from Kadence Element #325, now retired to
   draft. This is the only source of these styles; delete it and the modal
   renders unstyled. Rules above "Hardening" are #325 unchanged.
   ========================================================================== */

.partner-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

.partner-modal.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.partner-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

.partner-modal-content {
  position: relative;
  z-index: 2;
  width: min(90vw, 640px);
  background: #fff;
  padding: 3rem;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.25);
}

.partner-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  border: 1px solid var(--global-palette1);
  background: transparent;
  font-size: 2rem;
  line-height: 0.5;
  cursor: pointer;
  padding: 10px 13px 16px;
}

.partner-modal-logo {
  margin-bottom: 1.25rem;
}

.partner-modal-logo img {
  max-width: 180px;
  max-height: 80px;
  width: auto;
  height: auto;
  display: block;
}

.partner-modal-title {
  margin-bottom: 0.75em;
}

.partner-modal-description {
  margin-bottom: 1.5rem;
}

.partner-modal-description p:last-child {
  margin-bottom: 0;
}

.partner-modal-link:empty {
  display: none;
}

/* --- Hardening: NN/g and Baymard dialog guidance ------------------------- */

/* Lock background scroll. The JS always set this class but no rule matched it, so the page scrolled behind the modal (NN/g's top dialog complaint, worst on touch). */
body.partner-modal-open {
  overflow: hidden;
}

/* Cap height so long copy can't push the close button off-screen; contain stops scroll chaining to the page. */
.partner-modal-content {
  max-height: 85vh;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* 44px minimum touch target. Already larger at current padding, so this is a floor, not a visible change. */
.partner-modal-close {
  min-width: 44px;
  min-height: 44px;
  box-sizing: border-box;
}

/* Phones: trim the 3rem padding so content keeps usable width and the close button stays in view. */
@media (max-width: 767px) {
  .partner-modal-content {
    padding: 2.25rem 1.5rem 1.5rem;
    max-height: 80vh;
  }
}

/* Respect reduced-motion. */
@media (prefers-reduced-motion: reduce) {
  .partner-modal,
  .partner-modal-content {
    transition: none;
  }
}

/* =============================================================================
   Partner directory cards — full-page partners stay an <a>, modal partners
   render as a <button>. Both use .partner-card; this only strips UA button
   defaults (centered text, system font, grey background, intrinsic width).
   ========================================================================== */

button.partner-card {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--custom-color-grey-soft);
  background: #fff;
  font: inherit;
  text-align: inherit;
  width: 100%;
  display: block;
  cursor: pointer;
}

/* Match the <a> variant's keyboard focus cue with a deliberate ring. */
button.partner-card:focus-visible {
  outline: 2px solid var(--custom-color-blue);
  outline-offset: 2px;
}

/* End of Research to Real World child theme styles */
