/* (Re)in Hub Widgets 1.0.0 — matches the live hub look measured 3 Sep 2026.
   Colours/typography reference the Elementor kit variables with the measured fallbacks. */

:root {
  --rh-pink: var(--e-global-color-d835870, #D1495B);
  --rh-ink: var(--e-global-color-secondary, #2D2D2A);
  --rh-title: var(--e-global-color-5295029, #171717);
  --rh-archive-title: #342F2F;
  --rh-archive-date: #B54855;
  --rh-ec-date: var(--e-global-color-3cb6364, #8C8177);
  --rh-partner-border: var(--e-global-color-28e7dc6, #C1BFBF);
  --rh-caption-border: var(--e-global-color-ca724af, #C1BFBF91);
  --rh-archive-border: var(--e-global-color-c59f1a7, #F5F5F3);
  --rh-card-border: #BBB7B9FA;
  --rh-special-border: rgba(193, 191, 191, .57);
  --rh-font-heading: var(--e-global-typography-30a6ba9-font-family, "Playfair Display"), Georgia, serif;
  --rh-font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --rh-font-body: "Montserrat", "Inter", sans-serif;
}

/* ---------- section heading ---------- */
.rh-heading { margin: 0 0 20px; }
.rh-heading__row { display: flex; align-items: center; gap: 10px; }
.rh-heading .rh-heading__text { font-family: var(--rh-font-heading) !important; font-size: 20px; font-weight: 700; line-height: 30px; color: var(--rh-ink); margin: 0; }
.rh-heading__more { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-top: 2px; border-radius: 10%; background: rgba(0, 0, 0, .71); color: #fff; font-size: 14px; line-height: 1; text-decoration: none; transition: background .15s; }
.rh-heading__more:hover, .rh-heading__more:focus-visible { background: var(--rh-pink); color: #fff; }
.rh-heading__rule { display: block; width: 30px; border-top: 2.7px solid var(--rh-pink); margin-top: 4px; }
/* The heading paired with a key-story slider follows the established hub scale. */
.e-con:has(> .elementor-widget-rein_key_stories) > .elementor-widget-rein_section_heading .rh-heading__text { font-family: var(--rh-font-heading); font-size: 20px; font-weight: 700; line-height: 30px; }

/* ---------- cards (shared) ---------- */
.rh-card { display: flex; flex-direction: column; min-width: 0; background: transparent; }
.rh-card a { color: inherit; text-decoration: none; }
.rh-card__media { display: block; position: relative; overflow: hidden; }
.rh-card__media--bg { aspect-ratio: 16 / 9; background-size: cover; background-position: 50% 50%; background-color: #e9e6e6; }
.rh-card__img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.rh-card__body { display: block; }
/* The site kit styles h2/h3 globally; our widget titles retain the established hub fonts. */
.rh-card .rh-card__title { margin: 0; font-family: var(--rh-font-ui) !important; font-weight: 700; color: var(--rh-title); }
.rh-card__title a:hover, .rh-card__title a:focus-visible { color: #000; text-decoration: underline; text-decoration-thickness: 1px; }
.rh-card__date { display: block; font-family: var(--rh-font-ui); font-size: 11px; line-height: 1.5; text-transform: uppercase; color: var(--rh-pink); }
.rh-card__excerpt { margin: 10px 0 0; font-family: var(--rh-font-body); font-size: 15px; line-height: 1.5; color: #000; }
.rh-card__category { display: block; font-family: var(--rh-font-ui); font-size: 11px; text-transform: uppercase; color: var(--rh-ink); margin-bottom: 4px; }
.rh-empty { font-family: var(--rh-font-body); font-size: 14px; color: #4F4F4F; margin: 0; }

/* ---------- grids ---------- */
.rh-grid { display: grid; grid-template-columns: repeat(var(--rh-cols, 3), minmax(0, 1fr)); gap: 15px; }

/* Latest: 3 columns, text only */
.rh-grid--text3 { gap: 0; }
.rh-card--text3 { padding: 0 30px 15px 0; }
.rh-card--text3 .rh-card__title { font-size: 16px; line-height: 1.1; }
.rh-card--text3 .rh-card__date { margin-top: 8px; }

/* Editor's choice: caption overlapping the image */
.rh-grid--overlap4 { gap: 25px; }
.rh-card--overlap4 { transition: transform .3s ease; }
.rh-card--overlap4:hover { transform: translateY(-8px); }
.rh-card--overlap4 .rh-card__img { aspect-ratio: 16 / 9; }
.rh-card--overlap4 .rh-card__body { position: relative; margin: -30px 20px 0; padding: 10px 20px 10px 15px; background: linear-gradient(180deg, #FFFFFFD6 0%, #FFFFFF 100%); border: 1px solid var(--rh-caption-border); }
.rh-card--overlap4 .rh-card__title { font-size: 16px; line-height: 1.1; }
.rh-card--overlap4 .rh-card__date { margin-top: 6px; color: var(--rh-ec-date); }

/* Partner content / whitepaper: one bordered card */
.rh-grid--partner1 { gap: 10px; }
.rh-card--partner1 { border: 1px solid var(--rh-partner-border); background: #fff; transition: transform .3s ease; }
.rh-card--partner1:hover { transform: translateY(-6px); }
.rh-card--partner1 .rh-card__body { padding: 0 10px 10px; }
.rh-card--partner1 .rh-card__title { margin-top: 9px; font-size: 14px; font-weight: 400; line-height: 1.5; color: #000; }

/* Plain grid */
.rh-card--plain .rh-card__title { font-size: 16px; line-height: 1.2; margin-top: 8px; }
.rh-card--plain .rh-card__date { margin-top: 6px; }

/* All Stories archive: 5 bordered cards */
.rh-grid--archive { gap: 15px; }
.rh-card--archive { border: 1px solid var(--rh-archive-border); transition: transform .3s ease; }
.rh-card--archive:hover { transform: translateY(-6px); }
.rh-card--archive .rh-card__body { padding: 7px 15px 30px; }
.rh-card--archive .rh-card__title { font-size: 15px; font-weight: 600; line-height: 1.1; color: var(--rh-archive-title); }
.rh-card--archive .rh-card__title a:hover { color: #000; }
.rh-card--archive .rh-card__date { margin-top: 8px; font-weight: 600; letter-spacing: .06em; color: var(--rh-archive-date); }

/* ---------- card carousel (People moves, specialist feeds) ---------- */
.rh-carousel { position: relative; }
.rh-carousel__track { display: flex; gap: 30px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 2px; }
.rh-carousel__track::-webkit-scrollbar { display: none; }
.rh-carousel__item { flex: 0 0 calc((100% - (var(--rh-per-view, 5) - 1) * 30px) / var(--rh-per-view, 5)); scroll-snap-align: start; min-width: 0; }
.rh-card--card { border: 1px solid var(--rh-card-border); border-radius: 1px; background: #fff; height: 100%; }
.rh-carousel--special .rh-card--card { border-color: var(--rh-special-border); }
.rh-card--card .rh-card__body { padding: 10px; min-height: 150px; }
.rh-card--card .rh-card__title { margin-top: 5px; font-size: 15px; font-weight: 600; line-height: 1.1; color: #000; }
.rh-carousel--date-montserrat .rh-card__date { font-family: var(--rh-font-body); font-size: 12px; text-transform: none; }
.rh-carousel__controls { display: flex; gap: 8px; margin-top: 12px; }
.rh-carousel__btn { appearance: none; background: transparent; border: 1px solid transparent; border-radius: 50%; width: 40px; height: 40px; font-size: 24px; line-height: 1; color: #000; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background .15s, color .15s; }
.rh-carousel__btn:hover, .rh-carousel__btn:focus-visible { background: var(--rh-pink); color: #fff; outline: none; }
.rh-carousel__btn[disabled] { opacity: .3; cursor: default; background: transparent; color: #000; }

/* ---------- key stories: mirrors the established hub slide assembly ---------- */
.rh-keystories { display: grid; grid-template-columns: minmax(0, 60fr) minmax(0, 40fr); width: 90%; gap: 0; align-items: start; }
.rh-keystories--half { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.rh-keystories__images, .rh-keystories__text { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; min-width: 0; }
.rh-keystories__images::-webkit-scrollbar, .rh-keystories__text::-webkit-scrollbar { display: none; }
.rh-keystories__slide { flex: 0 0 100%; scroll-snap-align: start; min-width: 0; }
.rh-keystories__content { display: flex; min-width: 0; padding: 0 20px; flex-direction: column; }
.rh-keystories .rh-carousel__controls { display: flex; justify-content: flex-end; gap: 15px; margin: 30px 20px 30px 0; padding: 0; align-items: flex-start; }
.rh-keystories .rh-carousel__btn { width: 50px; height: 50px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, .5); color: #000; font-size: 0; transition: background .18s ease, color .18s ease; }
.rh-keystories .rh-carousel__btn span { display: none; }
.rh-keystories .rh-carousel__btn::before { content: ''; display: block; width: 8px; height: 8px; border: solid currentColor; border-width: 0 1px 1px 0; }
.rh-keystories .rh-carousel__btn--prev::before { transform: rotate(135deg); margin-left: 4px; }
.rh-keystories .rh-carousel__btn--next::before { transform: rotate(-45deg); margin-right: 4px; }
.rh-keystories .rh-carousel__btn:hover, .rh-keystories .rh-carousel__btn:focus-visible { background: var(--rh-pink); color: #fff; outline: none; }
.rh-keystories__images { align-self: start; }
.rh-keystories__text { min-height: 267px; }
.rh-card--ks-image .rh-card__media { width: 100%; aspect-ratio: 16 / 9; background: #EEEAE4; }
.rh-card--ks-image .rh-card__img { width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 9; object-fit: cover; }
.rh-card--ks-text { display: flex; padding: 0 15px 0 0; justify-content: flex-start; }
.rh-keystories .rh-card--ks-text .rh-card__body { display: block; width: 100%; }
.rh-keystories .rh-card--ks-text .rh-card__title { margin: 0; font-family: var(--rh-font-ui) !important; font-size: 22px; font-weight: 700; line-height: 24px; letter-spacing: normal; text-align: right; color: #000; }
.rh-keystories .rh-card--ks-text .rh-card__excerpt { margin: 36.4px 0 0; font-family: var(--rh-font-body); font-size: 15px; font-weight: 400; line-height: 22.5px; text-align: right; color: #969696; }
.rh-keystories .rh-card--ks-text .rh-card__date { margin-top: 18px; font-family: var(--rh-font-ui) !important; font-size: 11px; font-weight: 600; letter-spacing: .075em; text-align: right; }

/* ---------- All Stories search + pagination ---------- */
.rh-archive { display: block; }
.rh-search { position: relative; width: 246px; max-width: 100%; margin: 0 0 18px; }
.rh-search__input { width: 100%; box-sizing: border-box; height: 33px; padding: 5px 50px 5px 10px; border: 1px solid var(--rh-ink); border-radius: 0; font-family: var(--rh-font-ui); font-size: 14px; background: #fff; color: #000; }
.rh-search__btn { position: absolute; right: 0; top: 0; height: 33px; width: 40px; border: 0; background: transparent; cursor: pointer; font-size: 16px; color: var(--rh-ink); }
.rh-search__status { font-family: var(--rh-font-ui); font-size: 13px; color: #4F4F4F; margin: -8px 0 16px; }
.rh-search__clear { margin-left: 8px; color: var(--rh-pink); }
.rh-pagination { margin-top: 24px; }
.rh-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 6px; margin: 0 7px 7px 0; box-sizing: border-box; border: 1px solid #827E8D52; border-radius: 3px; font-family: var(--rh-font-ui); font-size: 13px; line-height: 1.8; color: #000000D6; text-decoration: none; background: #fff; }
.rh-pagination a.page-numbers:hover, .rh-pagination a.page-numbers:focus-visible { background: #FDFDFDDB; border-color: #827E8D; color: #000; }
.rh-pagination .page-numbers.current { background: #000; border-color: #000; color: #fff; }
.rh-pagination .page-numbers.dots { border-color: transparent; background: transparent; }

/* ---------- directory ---------- */
.rh-directory__group { font-family: var(--rh-font-heading); font-size: 24px; font-weight: 700; color: var(--rh-ink); margin: 30px 0 14px; }
.rh-directory__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.rh-directory__card { display: flex; flex-direction: column; gap: 8px; padding: 20px; border: 1px solid var(--rh-partner-border); background: #fff; color: inherit; text-decoration: none; transition: transform .2s ease, border-color .2s; }
.rh-directory__card:hover { transform: translateY(-4px); border-color: var(--rh-pink); }
.rh-directory__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.rh-directory__title { font-family: var(--rh-font-heading); font-size: 20px; font-weight: 700; margin: 0; color: var(--rh-ink); }
.rh-directory__blurb { margin: 0; font-family: var(--rh-font-body); font-size: 14px; color: #4F4F4F; }
.rh-directory__go { margin-top: auto; font-family: var(--rh-font-ui); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rh-pink); }

/* ---------- embed ---------- */
.rh-embed { margin: 0; }
.rh-embed__text { font-family: var(--rh-font-body); font-size: 15px; line-height: 1.6; margin-bottom: 14px; }
.rh-embed__frame { width: 100%; border: 0; display: block; }
.rh-embed__caption { font-family: var(--rh-font-ui); font-size: 12px; color: #4F4F4F; margin-top: 8px; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
  .rh-grid--archive, .rh-grid--overlap4 { --rh-cols: 3; }
  .rh-carousel__item { flex-basis: calc((100% - 2 * 30px) / 3); }
}
@media (max-width: 767px) {
  .rh-grid, .rh-grid--text3, .rh-grid--overlap4, .rh-grid--archive { grid-template-columns: 1fr; --rh-cols: 1; gap: 20px; }
  .rh-grid--text3 { gap: 0; }
  .rh-card--text3 { padding: 0 20px 15px 0; border-bottom: 1px solid var(--e-global-color-96474cb, #F2F2F2FC); margin-bottom: 15px; }
  .rh-card--overlap4 .rh-card__body { margin: -30px 10px 0; padding: 20px 10px; }
  .rh-carousel__track { gap: 16px; }
  .rh-carousel__item { flex-basis: 100%; }
  .rh-keystories { grid-template-columns: 1fr; width: 90%; }
  .rh-keystories__content { padding: 24px 20px 0; }
  .rh-keystories__text { min-height: 0; }
  .rh-card--ks-image .rh-card__img { min-height: 0; aspect-ratio: 16 / 9; }
  .rh-card--ks-text { padding: 0 15px 0 0; }
  .rh-keystories .rh-card--ks-text .rh-card__title { font-size: 16px; line-height: 24px; }
  .rh-keystories .rh-card--ks-text .rh-card__excerpt { font-size: 16px; line-height: 24px; }
  .rh-search { width: 100%; }
}
  @media (prefers-reduced-motion: reduce) {
    .elementor .rh-hub-hero { background-attachment: scroll !important; }
  .rh-carousel__track, .rh-keystories__images, .rh-keystories__text { scroll-behavior: auto; }
  .rh-card--overlap4, .rh-card--partner1, .rh-card--archive, .rh-directory__card { transition: none; }
  .rh-card--overlap4:hover, .rh-card--partner1:hover, .rh-card--archive:hover, .rh-directory__card:hover { transform: none; }
}
.rh-commercial { width: 100%; max-width: 350px; margin-inline: auto; }
.rh-commercial--mpu { display: flex; justify-content: center; }
.rh-commercial--mpu img { max-width: 100%; height: auto; }
