:root {
  --rb-partner-green: #566a2f;
  --rb-partner-green-dark: #33411c;
  --rb-partner-ink: #15191f;
  --rb-partner-muted: #68707c;
  --rb-partner-line: #e4e7df;
  --rb-partner-soft: #f4f6f0;
  --rb-partner-gold: #eba83b;
}

/* Keep the partner dropdown readable over the transparent homepage header. */
body.home:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu,
body.page-template-page-home-main-php:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu,
body.page-template-page-home-main:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu {
  background: #fff !important;
  box-shadow: 0 16px 40px rgba(15,23,42,.16) !important;
}

body.home:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu a,
body.page-template-page-home-main-php:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu a,
body.page-template-page-home-main:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu a {
  color: #15191f !important;
  text-shadow: none !important;
}

body.home:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu a:hover,
body.page-template-page-home-main-php:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu a:hover,
body.page-template-page-home-main:not(.rollbnb-home-scrolled) #navigation .rollbnb-partners-menu-item > .sub-menu a:hover {
  color: #566a2f !important;
  background: #f3f6ed !important;
}

#mobile-nav > .rollbnb-partners-menu-item.rb-partner-menu-open > .sub-menu {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Partner pages: hide the sticky header while scrolling down and restore it on scroll up. */
body.post-type-archive-rollbnb_partner .rb-partner-topbar,
body.single-rollbnb_partner .rb-partner-topbar,
body.post-type-archive-rollbnb_partner #header-container,
body.single-rollbnb_partner #header-container,
body.post-type-archive-rollbnb_partner #header.cloned,
body.single-rollbnb_partner #header.cloned,
body.post-type-archive-rollbnb_partner .mobile-navigation-wrapper .mobile-nav-header,
body.single-rollbnb_partner .mobile-navigation-wrapper .mobile-nav-header {
  transition: transform .28s ease, opacity .22s ease !important;
  will-change: transform;
}

body.rb-partner-header-hidden.post-type-archive-rollbnb_partner .rb-partner-topbar,
body.rb-partner-header-hidden.single-rollbnb_partner .rb-partner-topbar,
body.rb-partner-header-hidden.post-type-archive-rollbnb_partner #header-container,
body.rb-partner-header-hidden.single-rollbnb_partner #header-container,
body.rb-partner-header-hidden.post-type-archive-rollbnb_partner #header.cloned,
body.rb-partner-header-hidden.single-rollbnb_partner #header.cloned,
body.rb-partner-header-hidden.post-type-archive-rollbnb_partner .mobile-navigation-wrapper .mobile-nav-header,
body.rb-partner-header-hidden.single-rollbnb_partner .mobile-navigation-wrapper .mobile-nav-header {
  transform: translate3d(0,-125%,0) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.rb-partners,
.rb-partners * { box-sizing: border-box; }

.rb-partners {
  color: var(--rb-partner-ink);
  background: #f8f9f6;
  min-height: 60vh;
}

.rb-partners-shell {
  width: min(1240px, calc(100% - 40px));
  margin-inline: auto;
}

.rb-partners-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(86px, 10vw, 138px) 0 clamp(72px, 8vw, 112px);
  background:
    radial-gradient(circle at 82% 12%, rgba(235,168,59,.34), transparent 24%),
    radial-gradient(circle at 12% 90%, rgba(255,255,255,.11), transparent 30%),
    linear-gradient(132deg, #202a15 0%, #566a2f 58%, #788c49 100%);
}

.rb-partners-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: min(46vw, 600px);
  aspect-ratio: 1;
  right: -8%;
  bottom: -70%;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  box-shadow: 0 0 0 60px rgba(255,255,255,.04), 0 0 0 130px rgba(255,255,255,.025);
}

.rb-partners-eyebrow {
  display: inline-flex;
  margin-bottom: 20px;
  padding: 8px 14px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.12);
  font-size: 12px;
  font-weight: 700 !important;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.rb-partners-hero h1 {
  max-width: 820px;
  margin: 0;
  color: #fff !important;
  font-size: clamp(38px, 5vw, 68px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.rb-partners-hero p {
  max-width: 700px;
  margin: 24px 0 0;
  color: rgba(255,255,255,.88) !important;
  font-size: clamp(16px, 1.5vw, 20px) !important;
  line-height: 1.65 !important;
}

.rb-partners-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.rb-partners-become {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  min-height: 52px;
  padding: 14px 20px;
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 13px;
  color: var(--rb-partner-ink) !important;
  background: #fff;
  box-shadow: 0 14px 34px rgba(0,0,0,.18);
  font-size: 14px;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.rb-partners-become span { color: var(--rb-partner-green); font-size: 18px; transition: transform .2s ease; }
.rb-partners-become:hover { transform: translateY(-2px); color: var(--rb-partner-ink) !important; background: #f6f8f2; box-shadow: 0 18px 38px rgba(0,0,0,.23); }
.rb-partners-become:hover span { transform: translateX(4px); }

.rb-partners-content { padding: 50px 0 90px; }

.rb-partner-filters {
  position: sticky;
  z-index: 20;
  top: 16px;
  display: flex;
  gap: 10px;
  overflow-x: auto;
  margin: 0 0 38px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 20px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 18px 48px rgba(28,40,18,.09);
  backdrop-filter: blur(16px);
  scrollbar-width: thin;
}

.admin-bar .rb-partner-filters { top: 48px; }

.rb-partner-filter {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  margin: 0;
  padding: 10px 15px !important;
  border: 1px solid var(--rb-partner-line) !important;
  border-radius: 999px !important;
  color: #343a31 !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  transition: transform .2s ease, color .2s ease, background .2s ease, border-color .2s ease;
}

.rb-partner-filter:hover { transform: translateY(-1px); border-color: #b8c29f !important; }
.rb-partner-filter.is-active { color: #fff !important; border-color: var(--rb-partner-green) !important; background: var(--rb-partner-green) !important; }
.rb-partner-filter span { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: rgba(0,0,0,.07); font-size: 11px; font-weight: 700 !important; }
.rb-partner-filter.is-active span { background: rgba(255,255,255,.19); }

.rb-partner-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.rb-partner-card[hidden] { display: none !important; }

.rb-partner-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--rb-partner-line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(31,42,23,.07);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.rb-partner-card:hover {
  transform: translateY(-6px);
  border-color: #cbd2bb;
  box-shadow: 0 22px 48px rgba(31,42,23,.14);
}

.rb-partner-card-link { display: flex; flex-direction: column; height: 100%; color: inherit !important; text-decoration: none !important; }

.rb-partner-logo {
  display: grid;
  place-items: center;
  min-height: 220px;
  padding: 34px;
  border-bottom: 1px solid #edf0e8;
  background: linear-gradient(145deg, #fff 0%, #f1f4eb 100%);
}

.rb-partner-logo img { display: block; width: 100%; height: 150px; object-fit: contain; mix-blend-mode: multiply; }
.rb-partner-logo > span,
.rb-partner-modal-logo > span { color: var(--rb-partner-green); font-size: 64px; font-weight: 700 !important; line-height: 1; }
.rb-partner-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 27px; }
.rb-partner-category { color: var(--rb-partner-green) !important; font-size: 12px; font-weight: 700 !important; letter-spacing: .055em; line-height: 1.35; text-transform: uppercase; }
.rb-partner-card h2 { margin: 10px 0 7px; color: var(--rb-partner-ink) !important; font-size: 24px !important; line-height: 1.2 !important; letter-spacing: -.025em; }
.rb-partner-location { display: flex; align-items: center; gap: 7px; color: var(--rb-partner-muted) !important; font-size: 13px; line-height: 1.45; }
.rb-partner-location span { color: var(--rb-partner-green); font-size: 18px; }
.rb-partner-card-body > p { margin: 18px 0; color: #5e6670 !important; font-size: 14px !important; line-height: 1.7 !important; }

.rb-partner-benefit-teaser {
  display: -webkit-box;
  overflow: hidden;
  width: 100%;
  margin: auto 0 20px;
  padding: 12px 14px;
  border-radius: 13px;
  color: #435024;
  background: #eff4e3;
  font-size: 12px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.rb-partner-benefit-teaser span { margin-right: 6px; color: #d99a2f; }
.rb-partner-card-cta { display: inline-flex; align-items: center; gap: 9px; color: var(--rb-partner-green) !important; font-size: 14px; font-weight: 700 !important; }
.rb-partner-card-cta span { transition: transform .2s ease; }
.rb-partner-card:hover .rb-partner-card-cta span { transform: translateX(4px); }
.rb-partner-empty { padding: 45px 24px; border: 1px dashed #ccd3bf; border-radius: 20px; color: var(--rb-partner-muted); background: #fff; text-align: center; }

html.rb-partner-modal-open { overflow: hidden; }

.rb-partner-dialog {
  width: min(960px, calc(100% - 32px));
  max-width: none;
  max-height: min(860px, calc(100dvh - 40px));
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 28px;
  background: transparent;
  box-shadow: 0 36px 110px rgba(0,0,0,.42);
}

.rb-partner-dialog::backdrop { background: rgba(9,13,16,.78); backdrop-filter: blur(7px); }
.rb-partner-dialog-panel { position: relative; overflow: auto; max-height: min(860px, calc(100dvh - 40px)); border-radius: 28px; background: #fff; overscroll-behavior: contain; }
.rb-partner-dialog-close {
  position: absolute;
  z-index: 5;
  top: 16px;
  right: 16px;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin: 0;
  padding: 0 !important;
  border: 1px solid rgba(18,24,16,.1) !important;
  border-radius: 50% !important;
  color: #1c211a !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.12) !important;
  font-size: 30px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
}
.rb-partner-dialog-close:hover { color: #fff !important; background: var(--rb-partner-green) !important; }
.rb-partner-modal-layout { display: grid; grid-template-columns: minmax(290px, .8fr) minmax(0, 1.35fr); min-height: 570px; }
.rb-partner-modal-brand { display: flex; flex-direction: column; justify-content: center; padding: 54px 42px; background: linear-gradient(150deg, #eef2e7 0%, #fff 65%); }
.rb-partner-modal-logo { display: grid; place-items: center; width: 100%; min-height: 210px; margin-bottom: 32px; padding: 28px; border: 1px solid #e0e5d8; border-radius: 24px; background: #fff; box-shadow: 0 16px 34px rgba(49,64,33,.08); }
.rb-partner-modal-logo img { display: block; width: 100%; height: 150px; object-fit: contain; }
.rb-partner-modal-brand h2 { margin: 11px 0 10px; color: var(--rb-partner-ink) !important; font-size: clamp(30px, 4vw, 44px) !important; line-height: 1.05 !important; letter-spacing: -.045em; }
.rb-partner-modal-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 64px 54px 54px; }

.rb-partner-benefit {
  display: flex;
  gap: 15px;
  width: 100%;
  margin: 0 0 28px;
  padding: 18px;
  border: 1px solid #dce6c7;
  border-radius: 18px;
  background: #f1f6e6;
}
.rb-partner-benefit-icon { display: grid; flex: 0 0 38px; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; background: var(--rb-partner-green); }
.rb-partner-benefit strong { display: block; margin: 1px 0 5px; color: #35451e; font-size: 13px; font-weight: 700 !important; letter-spacing: .025em; }
.rb-partner-benefit p { margin: 0; color: #4c5b31 !important; font-size: 14px !important; line-height: 1.55 !important; }
.rb-partner-description { width: 100%; color: #4d5560; font-size: 15px; line-height: 1.8; }
.rb-partner-description > :first-child { margin-top: 0; }
.rb-partner-description > :last-child { margin-bottom: 0; }
.rb-partner-description a { color: var(--rb-partner-green); text-decoration: underline; text-underline-offset: 3px; }
.rb-partner-website { display: inline-flex; align-items: center; gap: 10px; margin-top: 30px; padding: 15px 20px; border-radius: 12px; color: #fff !important; background: var(--rb-partner-green); box-shadow: 0 12px 24px rgba(86,106,47,.22); font-size: 14px; font-weight: 700 !important; text-decoration: none !important; transition: transform .2s ease, background .2s ease; }
.rb-partner-website:hover { transform: translateY(-2px); color: #fff !important; background: var(--rb-partner-green-dark); }

.rb-partner-single { padding: 74px 0 100px; }
.rb-partner-back { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 24px; color: var(--rb-partner-green) !important; font-size: 14px; font-weight: 700 !important; text-decoration: none !important; }
.rb-partner-single-card { overflow: hidden; border: 1px solid var(--rb-partner-line); border-radius: 30px; background: #fff; box-shadow: 0 24px 60px rgba(31,42,23,.1); }
.rb-partner-single-brand { display: grid; grid-template-columns: 300px 1fr; gap: 44px; align-items: center; padding: 48px; background: linear-gradient(145deg, #eef2e7, #fff); }
.rb-partner-single-brand .rb-partner-modal-logo { margin: 0; }
.rb-partner-single-brand h1 { margin: 12px 0; color: var(--rb-partner-ink) !important; font-size: clamp(38px, 5vw, 62px) !important; line-height: 1.05 !important; letter-spacing: -.045em; }
.rb-partner-single-copy { max-width: 850px; margin: 0 auto; padding: 56px; }

@media (max-width: 991px) {
  .rb-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rb-partner-modal-layout { grid-template-columns: 1fr; }
  .rb-partner-modal-brand { padding: 44px 42px 32px; }
  .rb-partner-modal-logo { min-height: 170px; margin-bottom: 24px; }
  .rb-partner-modal-copy { padding: 32px 42px 48px; }
  .rb-partner-single-brand { grid-template-columns: 240px 1fr; }
}

@media (max-width: 767px) {
  .rb-partners-shell { width: min(100% - 28px, 620px); }
  .rb-partners-hero { padding: 72px 0 68px; }
  .rb-partners-hero h1 { font-size: clamp(36px, 11vw, 50px) !important; }
  .rb-partners-content { padding: 28px 0 70px; }
  .rb-partner-filters { top: 10px; margin-bottom: 26px; border-radius: 16px; }
  .admin-bar .rb-partner-filters { top: 56px; }
  .rb-partner-grid { grid-template-columns: 1fr; gap: 20px; }
  .rb-partner-logo { min-height: 190px; }
  .rb-partner-dialog { width: calc(100% - 16px); max-height: calc(100dvh - 16px); border-radius: 22px; }
  .rb-partner-dialog-panel { max-height: calc(100dvh - 16px); border-radius: 22px; }
  .rb-partner-dialog-close { position: sticky; float: right; top: 12px; right: 12px; margin: 12px 12px -58px 0; }
  .rb-partner-modal-brand { padding: 70px 24px 28px; }
  .rb-partner-modal-logo { min-height: 150px; padding: 22px; }
  .rb-partner-modal-logo img { height: 120px; }
  .rb-partner-modal-brand h2 { font-size: 34px !important; }
  .rb-partner-modal-copy { padding: 26px 24px 36px; }
  .rb-partner-single { padding: 42px 0 70px; }
  .rb-partner-single-brand { grid-template-columns: 1fr; gap: 25px; padding: 28px; }
  .rb-partner-single-copy { padding: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .rb-partner-card,
  .rb-partner-card-cta span,
  .rb-partner-website,
  .rb-partner-filter { transition: none !important; }
  .rb-partners-become,
  .rb-partners-become span { transition: none !important; }
}
