/* Royal Barber 2.3 — Elementor, page navigation, contrast and mobile menu fixes */
:root {
  --rb-light-text: #17130f;
  --rb-button-text: #111210;
  --rb-control-height: 50px;
  --rb-section-gap: clamp(72px, 9vw, 128px);
}

body.menu-is-open { overflow: hidden; }
body.menu-is-open .site-header {
  background: var(--rb-bg) !important;
  border-bottom-color: var(--rb-border) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.42) !important;
  backdrop-filter: blur(20px) !important;
}

/* Stable, consistent CTA system. */
.button,
.wp-element-button,
.elementor-button {
  min-height: var(--rb-control-height);
  padding: 0 26px;
  border: 1px solid var(--rb-accent);
  border-radius: 999px;
  color: var(--rb-button-text) !important;
  background: var(--rb-accent-bright);
  font-family: "Manrope", system-ui, sans-serif;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .075em;
  text-align: center;
  text-transform: uppercase;
}
.button:hover,
.wp-element-button:hover,
.elementor-button:hover { color: var(--rb-button-text) !important; background: var(--rb-accent); }
.button--small { min-height: 42px; padding-inline: 19px; font-size: .7rem; }
.button--outline {
  color: var(--rb-text) !important;
  background: transparent;
  border-color: color-mix(in srgb, var(--rb-text) 36%, transparent);
}
.button--outline:hover { color: var(--rb-bg) !important; background: var(--rb-text); }

/* Light sections always receive a matching readable text system. */
.rb-philosophy,
.rb-branch-philosophy,
.rb-review-section,
.rb-branch-location,
.section--accent {
  color: var(--rb-light-text);
  background: var(--rb-light-surface);
}
.rb-philosophy h1, .rb-philosophy h2, .rb-philosophy h3,
.rb-branch-philosophy h1, .rb-branch-philosophy h2, .rb-branch-philosophy h3,
.rb-review-section h1, .rb-review-section h2, .rb-review-section h3,
.rb-branch-location h1, .rb-branch-location h2, .rb-branch-location h3,
.rb-philosophy strong, .rb-branch-philosophy strong, .rb-review-section strong,
.rb-branch-location strong { color: var(--rb-light-text); }
.rb-philosophy p, .rb-branch-philosophy p, .rb-review-section p,
.rb-branch-location p, .rb-branch-location span { color: color-mix(in srgb, var(--rb-light-text) 76%, transparent); }
.rb-philosophy .eyebrow, .rb-branch-philosophy .eyebrow,
.rb-review-section .eyebrow, .rb-branch-location .eyebrow { color: var(--rb-accent-dark); }
.rb-philosophy .button--outline,
.rb-branch-philosophy .button--outline,
.rb-review-section .button--outline,
.rb-branch-location .button--outline {
  color: var(--rb-light-text) !important;
  border-color: color-mix(in srgb, var(--rb-light-text) 42%, transparent);
}
.rb-philosophy .button--outline:hover,
.rb-branch-philosophy .button--outline:hover,
.rb-review-section .button--outline:hover,
.rb-branch-location .button--outline:hover { color: var(--rb-text) !important; background: var(--rb-bg); }

/* Page layouts and Elementor Free. */
.rb-page-shell { min-height: 65vh; }
.rb-page-content { padding-bottom: 36px; }
.rb-page-content .content-shell { width: min(100%, 920px); }
.rb-page-dynamic { padding-top: 40px; background: var(--rb-bg-soft); }
.rb-elementor-content,
.rb-elementor-full-width { width: 100%; overflow: clip; }
.rb-elementor-content__inner { width: 100%; }
.rb-elementor-built .page-hero { display: none; }
.elementor-page .site-main { overflow: clip; }
.elementor-page .elementor-widget-text-editor { color: var(--rb-text-soft); }
.elementor-page .elementor-heading-title { color: inherit; }

.rb-catalog-notice {
  display: grid;
  grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr);
  gap: 28px;
  align-items: start;
  margin: 0 0 34px;
  padding: 24px 28px;
  border: 1px solid var(--rb-border);
  border-left: 3px solid var(--rb-accent-bright);
  background: var(--rb-panel);
}
.rb-catalog-notice strong { color: var(--rb-text); font-family: "Playfair Display",serif; font-size: 1.35rem; }
.rb-catalog-notice p { margin: 0; color: var(--rb-text-soft); }
.rb-network-service-card--catalog .rb-network-service-card__body { min-height: 300px; }
.rb-network-service-card--catalog .text-link { margin-top: auto; }

/* Central product catalogue + branch contacts. */
.rb-product-branches { background: var(--rb-bg-soft); }
.rb-product-branch-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.rb-product-branch-card {
  display: flex;
  flex-direction: column;
  min-height: 370px;
  padding: 32px;
  border: 1px solid var(--rb-border);
  background: var(--rb-panel);
  box-shadow: 0 24px 55px rgba(0,0,0,.16);
}
.rb-product-branch-card h3 { color: var(--rb-text); font-size: 2rem; }
.rb-product-branch-card p,
.rb-product-branch-card__hours { color: var(--rb-text-soft); }
.rb-product-branch-card__hours { margin-top: auto; padding-top: 22px; border-top: 1px solid var(--rb-border); }
.rb-product-branch-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 24px; }
.rb-product-branch-card__actions .button { min-height: 44px; padding-inline: 17px; font-size: .67rem; }

/* Cleaner visual hierarchy for dynamic cards. */
.content-card,
.rb-network-service-card,
.rb-network-team-card,
.rb-network-product-card,
.rb-network-blog-card {
  border: 1px solid var(--rb-border);
  background: var(--rb-panel);
}
.content-card h2, .content-card h3,
.rb-network-service-card h3,
.rb-network-team-card h3,
.rb-network-product-card h3,
.rb-network-blog-card h3 { color: var(--rb-text); }
.content-card p,
.rb-network-service-card p,
.rb-network-team-card p,
.rb-network-product-card p,
.rb-network-blog-card p { color: var(--rb-text-soft); }
.rb-section-head { gap: clamp(28px,5vw,70px); }
.rb-section-head__actions { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; max-width: 520px; }
.rb-section-head__actions p { margin: 0; text-align: right; }

/* Mobile navigation must remain opaque after scrolling and opening. */
@media (max-width: 1100px) {
  .primary-navigation {
    top: var(--rb-mobile-nav-top, var(--rb-header-height)) !important;
    z-index: 1190;
    height: calc(100dvh - var(--rb-mobile-nav-top, var(--rb-header-height)));
    overflow-y: auto;
    background: var(--rb-bg) !important;
    background-image: radial-gradient(circle at 85% 12%, color-mix(in srgb, var(--rb-accent) 20%, transparent), transparent 28%) !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
  }
  .primary-navigation.is-open { display: block !important; }
  .primary-navigation .menu { padding-bottom: 70px; }
  .primary-navigation a { color: var(--rb-text) !important; }
  .menu-toggle { position: relative; z-index: 1201; }
  .site-header { background: color-mix(in srgb, var(--rb-bg) 96%, transparent); }
  .rb-product-branch-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 782px) {
  .rb-catalog-notice { grid-template-columns: 1fr; gap: 10px; }
  .rb-section-head__actions { align-items: flex-start; max-width: none; }
  .rb-section-head__actions p { text-align: left; }
  .rb-product-branch-grid { grid-template-columns: 1fr; }
  .rb-product-branch-card { min-height: auto; padding: 26px; }
  .button, .wp-element-button, .elementor-button { min-height: 48px; padding-inline: 21px; font-size: .72rem; }
}
.rb-product-branch-card__contact {
  display: grid;
  gap: 7px;
  margin-top: 18px;
  color: var(--rb-text-soft);
  font-size: .86rem;
}
.rb-product-branch-card__contact a { color: var(--rb-text-soft); overflow-wrap: anywhere; }
.rb-product-branch-card__contact a:hover { color: var(--rb-accent-bright); }
