/* ==========================================================================
   Rhinomed site-wide styles (2026 refresh). Loaded on every page after the
   parent theme. Contents:
     0  Tokens
     1  Footer 2026 (GP Element block replacing site-footer, all pages)
     2  Inner pages: type, colour, links, buttons, forms, header
   The homepage template (body.rm-home) keeps its own sheet, rm-home.css;
   section 2 is scoped to body:not(.rm-home).
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Tokens
   -------------------------------------------------------------------------- */
body {
  --rm-black: #000;
  --rm-white: #fff;
  --rs-grey: #F2F2F2;
  --g800: #2A2A2A;
  --g700: #404040;
  --g600: #595959;
  --g500: #757575;
  --g400: #9E9E9E;
  --g300: #C4C4C4;
  --g200: #E0E0E0;
  --font-display: 'Brandon Grotesque', sans-serif;
  --font-body: 'Inter', -apple-system, system-ui, sans-serif;
  --rm-max: 1600px;   /* matches the GeneratePress container width */
  --pad-min: 40px;
  /* Side gutter: --pad-min, or wider so the content edge matches the GP container (1600 max + 40 inner padding) */
  --pad-x: max(var(--pad-min), calc((100% - var(--rm-max)) / 2 + var(--pad-min)));
  --ease: cubic-bezier(.2, .8, .2, 1);
}

/* Inner pages: full-bleed sections live inside GP's already-capped container, where 100% is the container width,
   not the viewport. Use the viewport so the gutter still lands on the 1600px edge. (The homepage keeps the
   percentage version in rm-home.css because its main element is full width.) */
body:not(.rm-home) {
  --pad-x: max(var(--pad-min), calc((100vw - var(--rm-max)) / 2 + var(--pad-min)));
}

@media (max-width: 640px) {
  /* Inner pages keep GP's 40px mobile gutter so the title band aligns with the content; the homepage sets its own 24px in rm-home.css */
  body { --pad-min: 40px; }
}

/* --------------------------------------------------------------------------
   1. Footer 2026
   -------------------------------------------------------------------------- */
body .site-footer {
  margin: 0;
  padding: 0;
  background: #000;
  color: #fff;
}

body .rm-footer {
  background: #000;
  color: #fff;
  padding: 64px var(--pad-x) 0;
  margin: 0;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  position: relative;
  z-index: 1;
}

/* Classic theme: core wraps the group in an inner container that GP caps at the content width. Flatten it. */
body .rm-footer .wp-block-group__inner-container {
  display: contents;
}

body .rm-footer .alignfull {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  max-width: none;
}

body .rm-footer p { margin: 0; }

body .rm-footer ul,
body .rm-footer ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

body .rm-footer h2,
body .rm-footer h3 {
  font-family: var(--font-display);
  text-transform: uppercase;
  color: inherit;
  margin: 0;
}

body .rm-footer img {
  max-width: 100%;
  height: auto;
  display: block;
}

body .rm-footer a {
  color: inherit;
  text-decoration: none;
  transition: none;
}

body .rm-footer a:hover,
body .rm-footer a:focus-visible {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .2em;
  text-decoration-thickness: 1px;
}

body .rm-footer__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  column-gap: 48px;
  margin: 0;
}

body .rm-footer .rm-footer__grid > .wp-block-column {
  flex: none;
  width: auto;
  min-width: 0;
  flex-basis: auto !important; /* core: flex-basis 100% !important below 782px */
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
  padding: 0;
}

body .rm-footer .rm-footer__h {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 28px;
  line-height: 1;
  letter-spacing: .02em;
  margin: 0 0 20px;
}

body .rm-footer p {
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}

body .rm-footer p a {
  text-decoration: underline;
  text-underline-offset: .2em;
}

/* Hairline list */
body .rm-footer .rm-rules {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 17px;
  line-height: 1.4;
}

body .rm-footer .rm-rules li {
  padding: 16px 0;
  border-top: 1px solid var(--g700);
  margin: 0;
}

body .rm-footer .rm-rules li:last-child { border-bottom: 1px solid var(--g700); }
body .rm-footer .rm-rules--tight { font-size: 15px; }
body .rm-footer .rm-rules--tight li { padding: 10px 0; border-color: var(--g800); }
body .rm-footer .rm-rules a { text-decoration: none; }
body .rm-footer .rm-rules a:hover,
body .rm-footer .rm-rules a:focus-visible { text-decoration: underline; text-underline-offset: .2em; }

/* Legal row */
body .rm-footer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px 24px;
  border-top: 1px solid var(--g800);
  padding: 24px 0;
  margin: 56px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--g500);
}

body .rm-footer__legal p,
body .rm-footer__legal span {
  font-size: 13px;
  color: var(--g500);
  margin: 0;
}

/* Giant wordmark: box follows the image height (518x47 SVG) so the E's bottom bar stays visible */
body .rm-footer__mark {
  height: calc((min(100vw, var(--rm-max)) - 2 * var(--pad-min)) * 47 / 518 * 0.93);
  overflow: hidden;
  margin: 32px calc(-1 * var(--pad-x)) 0;
  padding: 0 var(--pad-x);
  position: relative;
  -webkit-mask-image: linear-gradient(to bottom, #000 55%, rgba(0, 0, 0, .35) 100%);
  mask-image: linear-gradient(to bottom, #000 55%, rgba(0, 0, 0, .35) 100%);
}

body .rm-footer__mark img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  opacity: .4;
}

body .rm-footer__mark figure,
body .rm-footer__mark .wp-block-image {
  margin: 0;
  width: 100%;
}

/* Legal line overlays the wordmark from tablet up */
@media (min-width: 641px) {
  body .rm-footer__legal {
    position: absolute; left: var(--pad-x); right: var(--pad-x); bottom: 14px; z-index: 2;
    margin: 0; padding: 0; border: 0; flex-wrap: nowrap; align-items: flex-end;
  }
  body .rm-footer__legal, body .rm-footer__legal p, body .rm-footer__legal span { color: var(--g300); }
  body .rm-footer__mark { margin-top: 72px; }
}

@media (max-width: 1024px) {
  body .rm-footer__grid {
    grid-template-columns: 1fr;
    row-gap: 40px;
  }
}

@media (max-width: 767px) {
  body .rm-footer__legal { margin-top: 40px; }
}

@media (max-width: 640px) {
  body .rm-footer { padding-top: 48px; }
  body .rm-footer .rm-footer__h { font-size: 24px; }
  body .rm-footer__legal { flex-direction: column; align-items: flex-start; }
  body .rm-footer__legal, body .rm-footer__legal p, body .rm-footer__legal span { color: var(--g400); }
  body .rm-footer__mark { margin-top: 24px; }
}

/* --------------------------------------------------------------------------
   2. Inner pages: bring the rest of the site in line with the homepage.
      Styling only. Content, layout blocks and colours set in the editor
      (has-*-background-color) are left alone.
   -------------------------------------------------------------------------- */
body:not(.rm-home) {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: #000;
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

body:not(.rm-home) .site-content,
body:not(.rm-home) .inside-article,
body:not(.rm-home) .separate-containers .inside-article {
  background: transparent;
}

/* Headings: Brandon, uppercase, tight */
body:not(.rm-home) h1,
body:not(.rm-home) h2,
body:not(.rm-home) h3,
body:not(.rm-home) h4,
body:not(.rm-home) h5,
body:not(.rm-home) h6 {
  font-family: var(--font-display);
  text-transform: uppercase;
  line-height: 1.05;
  letter-spacing: -.01em;
  color: inherit;
}

body:not(.rm-home) h1 { font-weight: 900; font-size: clamp(40px, 5vw, 64px); }
body:not(.rm-home) h2 { font-weight: 900; font-size: clamp(30px, 3.4vw, 44px); }
body:not(.rm-home) h3 { font-weight: 700; font-size: clamp(22px, 2vw, 28px); letter-spacing: 0; }
body:not(.rm-home) h4 { font-weight: 700; font-size: 20px; letter-spacing: .02em; }
body:not(.rm-home) h5,
body:not(.rm-home) h6 { font-weight: 700; font-size: 15px; letter-spacing: .1em; }

body:not(.rm-home) .wp-block-cover h1,
body:not(.rm-home) .wp-block-cover h2 { letter-spacing: -.02em; }

/* Links: black, underlined, grey on hover (GP inline colour was #0285bf) */
body:not(.rm-home) .site-content :where(a:not(.button):not(.wp-block-button__link):not(.gb-button):not(.tile):not(.home-tile)) {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .2em;
  text-decoration-thickness: 1px;
  transition: color .15s var(--ease);
}

body:not(.rm-home) .site-content :where(a:not(.button):not(.wp-block-button__link):not(.gb-button)):hover,
body:not(.rm-home) .site-content :where(a:not(.button):not(.wp-block-button__link):not(.gb-button)):focus-visible {
  color: var(--g600);
}

/* Buttons: square, Brandon caps, black on light backgrounds, white on dark */
body:not(.rm-home) .button,
body:not(.rm-home) .wp-block-button__link,
body:not(.rm-home) .gb-button,
body:not(.rm-home) input[type="submit"],
body:not(.rm-home) input[type="button"],
body:not(.rm-home) button.gform_button,
body:not(.rm-home) .gform_wrapper .gform_button,
body:not(.rm-home) .wp-block-search__button {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 13px;
  line-height: 1;
  padding: 15px 22px;
  border-radius: 0;
  border: 1px solid #000;
  background: #000;
  color: #fff;
  text-decoration: none;
  box-shadow: none;
  transition: background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);
}

body:not(.rm-home) .button:hover,
body:not(.rm-home) .wp-block-button__link:hover,
body:not(.rm-home) .gb-button:hover,
body:not(.rm-home) input[type="submit"]:hover,
body:not(.rm-home) .gform_wrapper .gform_button:hover,
body:not(.rm-home) .button:focus-visible,
body:not(.rm-home) .wp-block-button__link:focus-visible,
body:not(.rm-home) .gb-button:focus-visible {
  background: #fff;
  color: #000;
  border-color: #000;
}

/* On dark or coloured backgrounds the button inverts */
body:not(.rm-home) .wp-block-cover .wp-block-button__link,
body:not(.rm-home) .has-black-background-color .wp-block-button__link,
body:not(.rm-home) .has-black-background-color .gb-button,
body:not(.rm-home) .has-rhinomed-dark-blue-background-color .wp-block-button__link,
body:not(.rm-home) .has-mute-blue-background-color .wp-block-button__link,
body:not(.rm-home) .has-pronto-purple-background-color .wp-block-button__link,
body:not(.rm-home) .has-pronto-blue-background-color .wp-block-button__link,
body:not(.rm-home) .wp-block-cover .gb-button {
  background: #fff;
  color: #000;
  border-color: #fff;
}

body:not(.rm-home) .wp-block-cover .wp-block-button__link:hover,
body:not(.rm-home) .has-black-background-color .wp-block-button__link:hover,
body:not(.rm-home) .wp-block-cover .gb-button:hover {
  background: transparent;
  color: #fff;
  border-color: #fff;
}

body:not(.rm-home) .is-style-outline .wp-block-button__link {
  background: transparent;
  color: inherit;
  border-color: currentColor;
}

/* Forms: square fields, hairline borders */
body:not(.rm-home) input[type="text"],
body:not(.rm-home) input[type="email"],
body:not(.rm-home) input[type="url"],
body:not(.rm-home) input[type="tel"],
body:not(.rm-home) input[type="number"],
body:not(.rm-home) input[type="search"],
body:not(.rm-home) input[type="password"],
body:not(.rm-home) textarea,
body:not(.rm-home) select,
body:not(.rm-home) .gform_wrapper input:not([type="submit"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
body:not(.rm-home) .gform_wrapper textarea,
body:not(.rm-home) .gform_wrapper select {
  font-family: var(--font-body);
  font-size: 16px;
  color: #000;
  background: #fff;
  border: 1px solid var(--g300);
  border-radius: 0;
  box-shadow: none;
  padding: 12px 14px;
}

body:not(.rm-home) input:focus,
body:not(.rm-home) textarea:focus,
body:not(.rm-home) select:focus {
  border-color: #000;
  background: #fff;
  color: #000;
  outline: none;
}

/* Header (every page, homepage included): solid black bar, white Brandon caps, inverted (white) logo.
   Same treatment on the sticky clone and the mobile header so the bar never changes as you scroll. */
body .site-header,
body .site-header .inside-header,
body .main-navigation,
body .main-navigation .inside-navigation,
body .main-navigation.is_stuck,
body #sticky-navigation,
body .navigation-stick,
body #mobile-header,
body #mobile-header.is_stuck,
body #mobile-header.navigation-stick {
  background: #000 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  border: 0;
}

body .main-navigation .main-nav ul li > a,
body .main-navigation .menu-toggle,
body .main-navigation .menu-bar-item > a,
body #mobile-header .menu-toggle,
body #mobile-header .mobile-bar-items a,
body .main-navigation .main-nav ul li:hover > a,
body .main-navigation .main-nav ul li.sfHover > a,
body .main-navigation .main-nav ul li[class*="current-menu-"] > a,
body .main-navigation .menu-toggle:hover,
body .main-navigation .menu-toggle:focus {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 13px;
  color: #fff;
  background: transparent;
}

body .main-navigation .main-nav > ul > li:hover > a,
body .main-navigation .main-nav > ul > li:focus-within > a,
body .main-navigation .main-nav > ul > li.sfHover > a {
  color: var(--g400);
}

body .main-navigation .main-nav ul li a .dropdown-menu-toggle { color: inherit; }

body .site-header .navigation-branding img,
body .site-header .site-logo img,
body .sticky-navigation-logo img,
body #sticky-navigation .navigation-branding img,
body #mobile-header .site-logo img {
  filter: invert(1);
}

/* Sub-menus: white panel, black text, grey hover */
body .main-navigation ul ul {
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}

body .main-navigation .main-nav ul ul li > a,
body .main-navigation .main-nav ul ul li:hover > a,
body .main-navigation .main-nav ul ul li.sfHover > a,
body .main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
  font-size: 12px;
  color: #000;
  background: transparent;
}

body .main-navigation .main-nav ul ul li:hover > a,
body .main-navigation .main-nav ul ul li.sfHover > a { color: var(--g600); }

/* Slide-out / off-canvas menu on phones */
body .slideout-navigation,
body .slideout-navigation.main-navigation,
body .slide-opened .slideout-navigation {
  background: #000;
}

body .slideout-navigation .main-nav ul li a,
body .slideout-navigation .slideout-exit,
body .slideout-navigation button.slideout-exit {
  color: #fff;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* In-page sub-navigation bar (Rhinoswab, Mute, Turbine pages): white strip, hairlines, Brandon caps */
body:not(.rm-home) .page-navigation-block {
  background: #fff !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none;
  border-top: 1px solid var(--g200);
  border-bottom: 1px solid var(--g200);
}

body:not(.rm-home) .page-navigation li {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 12px;
  color: #000;
}

body:not(.rm-home) .page-navigation li:first-of-type strong { font-weight: 900; }
body:not(.rm-home) .page-navigation li:first-of-type:after { color: var(--g300); font-weight: 400; }

body:not(.rm-home) .site-content .page-navigation-block .page-navigation li a {
  color: #000;
  text-decoration: none;
  padding-bottom: 3px;
  border-bottom: 1px solid transparent;
  transition: color .15s var(--ease), border-color .15s var(--ease);
}

body:not(.rm-home) .site-content .page-navigation-block .page-navigation li a:hover,
body:not(.rm-home) .site-content .page-navigation-block .page-navigation li a:focus-visible {
  color: #000;
  border-bottom-color: #000;
}

/* Legacy decorative rules from the old theme were brand blue (#0285bf) or green; they now follow the text colour */
body:not(.rm-home) h1.border,
body:not(.rm-home) h2.border,
body:not(.rm-home) h3.border,
body:not(.rm-home) h4.border,
body:not(.rm-home) h1.border-white,
body:not(.rm-home) h2.border-white,
body:not(.rm-home) h3.border-white,
body:not(.rm-home) h4.border-white,
body:not(.rm-home) .border-green,
body:not(.rm-home) .wp-block-group.border {
  border-color: currentColor;
}

body:not(.rm-home) .wp-block-yoast-faq-block .schema-faq-question:before { border-color: currentColor; }

/* Entry meta, archive lists and latest posts */
body:not(.rm-home) .entry-meta,
body:not(.rm-home) .entry-meta a,
body:not(.rm-home) .wp-block-latest-posts__post-date,
body:not(.rm-home) .posted-on,
body:not(.rm-home) .byline {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--g600);
}

body:not(.rm-home) .entry-title,
body:not(.rm-home) .entry-title a,
body:not(.rm-home) .wp-block-latest-posts a {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  color: #000;
  text-decoration: none;
}

body:not(.rm-home) .entry-title a:hover,
body:not(.rm-home) .wp-block-latest-posts a:hover {
  color: var(--g600);
  text-decoration: none;
}

body:not(.rm-home).blog .inside-article,
body:not(.rm-home).archive .inside-article {
  border-top: 1px solid var(--g200);
  border-radius: 0;
  box-shadow: none;
}

body:not(.rm-home) .read-more,
body:not(.rm-home) a.read-more {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 12px;
}

/* Sidebar widgets on the news archive */
body:not(.rm-home) .sidebar .widget {
  background: transparent;
  box-shadow: none;
  border-top: 1px solid var(--g200);
  padding: 24px 0 0;
}

body:not(.rm-home) .sidebar .widget-title {
  font-size: 13px;
  letter-spacing: .1em;
  font-weight: 700;
}

/* Misc chrome: no shadows, no rounded corners, hairline rules */
body:not(.rm-home) .inside-article,
body:not(.rm-home) .comments-area,
body:not(.rm-home) .page-header,
body:not(.rm-home) .paging-navigation {
  box-shadow: none;
  border-radius: 0;
}

body:not(.rm-home) hr,
body:not(.rm-home) .wp-block-separator:not(.is-style-dots) {
  border: 0;
  border-top: 1px solid var(--g200);
  background: none;
  height: 0;
}

body:not(.rm-home) ::selection { background: #000; color: #fff; }

/* Back to top button */
body:not(.rm-home) .generate-back-to-top {
  border-radius: 0;
  background: #000;
  color: #fff;
}

/* Buttons that carry an editor-set colour (has-background, inline GenerateBlocks colours) still follow the
   house style: black on light sections, white inside covers and dark blocks. */
body:not(.rm-home) .wp-block-button__link.has-background,
body:not(.rm-home) .wp-block-button__link[style*="background"],
body:not(.rm-home) .gb-button[style*="background"],
body:not(.rm-home) .gb-button {
  background-color: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
}

body:not(.rm-home) .wp-block-button__link.has-background:hover,
body:not(.rm-home) .wp-block-button__link[style*="background"]:hover,
body:not(.rm-home) .gb-button:hover {
  background-color: #fff !important;
  color: #000 !important;
}

body:not(.rm-home) .wp-block-cover .wp-block-button__link.has-background,
body:not(.rm-home) .wp-block-cover .wp-block-button__link[style*="background"],
body:not(.rm-home) .wp-block-cover .gb-button,
body:not(.rm-home) .has-black-background-color .wp-block-button__link.has-background,
body:not(.rm-home) .has-black-background-color .gb-button,
body:not(.rm-home) .has-rhinomed-dark-blue-background-color .wp-block-button__link.has-background,
body:not(.rm-home) .has-mute-blue-background-color .wp-block-button__link.has-background,
body:not(.rm-home) .has-pronto-purple-background-color .wp-block-button__link.has-background,
body:not(.rm-home) .has-pronto-blue-background-color .wp-block-button__link.has-background {
  background-color: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}

body:not(.rm-home) .wp-block-cover .wp-block-button__link.has-background:hover,
body:not(.rm-home) .wp-block-cover .gb-button:hover,
body:not(.rm-home) .has-black-background-color .wp-block-button__link.has-background:hover {
  background-color: transparent !important;
  color: #fff !important;
}

/* Footer policy links: the core navigation block collapses to a hamburger below 600px; keep the links inline instead */
body .rm-footer__legal .wp-block-navigation__responsive-container-open { display: none !important; }
body .rm-footer__legal .wp-block-navigation__responsive-container:not(.is-menu-open) {
  display: block;
  position: static;
  background: transparent;
  padding: 0;
}
body .rm-footer__legal .wp-block-navigation__responsive-container-content { display: flex; flex-wrap: wrap; gap: 4px 12px; }
body .rm-footer__legal .wp-block-navigation__container { gap: 4px 12px; }
body .rm-footer__legal .wp-block-navigation-item a { font-size: 13px; }
body .rm-footer__legal .wp-block-navigation__responsive-container-close { display: none !important; }

/* --------------------------------------------------------------------------
   3. News archive: date-and-title rows like the homepage list. Sidebar hidden.
   -------------------------------------------------------------------------- */
body:not(.rm-home).blog .sidebar,
body:not(.rm-home).archive .sidebar { display: none; }

body:not(.rm-home).blog .content-area,
body:not(.rm-home).archive .content-area { width: 100%; max-width: 900px; }

body:not(.rm-home).blog .site-main > article,
body:not(.rm-home).archive .site-main > article { margin: 0; }

body:not(.rm-home).blog .site-main > article .inside-article,
body:not(.rm-home).archive .site-main > article .inside-article {
  padding: 40px 0 44px;
  border-top: 1px solid var(--g200);
  border-radius: 0;
  box-shadow: none;
}

body:not(.rm-home).blog .site-main > article:last-of-type .inside-article,
body:not(.rm-home).archive .site-main > article:last-of-type .inside-article { border-bottom: 1px solid var(--g200); }

/* Date sits above the title as a small label */
body:not(.rm-home).blog .entry-header,
body:not(.rm-home).archive .entry-header { display: flex; flex-direction: column-reverse; gap: 12px; margin-bottom: 18px; }

body:not(.rm-home).blog .entry-meta,
body:not(.rm-home).archive .entry-meta { margin: 0; font-size: 13px; letter-spacing: .02em; }

body:not(.rm-home).blog .entry-meta .updated:not(.published),
body:not(.rm-home).archive .entry-meta .updated:not(.published) { display: none; }

body:not(.rm-home).blog .entry-title,
body:not(.rm-home).archive .entry-title { font-size: clamp(24px, 2.2vw, 32px); line-height: 1.05; margin: 0; max-width: 24ch; }

body:not(.rm-home).blog .entry-summary p,
body:not(.rm-home).archive .entry-summary p { font-size: 16px; line-height: 1.55; color: var(--g600); max-width: 68ch; margin: 0; }

body:not(.rm-home) .entry-summary .read-more { display: block; margin-top: 12px; color: #000; text-decoration: none; }
body:not(.rm-home) .entry-summary .read-more:hover { color: var(--g600); }

body:not(.rm-home) .paging-navigation { border-top: 0; padding-top: 24px; }
body:not(.rm-home) .paging-navigation a { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: 12px; }

/* --------------------------------------------------------------------------
   4. Page heroes: the opening cover block on a page becomes a black title band.
      The cover's photo is hidden by CSS only; the block and its image are untouched
      in the editor, so this is reversible.
   -------------------------------------------------------------------------- */
body:not(.rm-home) .entry-content > .wp-block-cover:first-child,
body:not(.rm-home) .entry-content > .wp-block-group:first-child > .wp-block-cover:first-child {
  background: #000 !important;
  min-height: 0 !important;
  padding: 88px 0 72px !important;
  color: #fff;
}

body:not(.rm-home) .entry-content > .wp-block-cover:first-child .wp-block-cover__image-background,
body:not(.rm-home) .entry-content > .wp-block-cover:first-child .wp-block-cover__video-background,
body:not(.rm-home) .entry-content > .wp-block-cover:first-child .wp-block-cover__background,
body:not(.rm-home) .entry-content > .wp-block-cover:first-child .wp-block-cover__gradient-background {
  display: none !important;
}

body:not(.rm-home) .entry-content > .wp-block-cover:first-child .wp-block-cover__inner-container {
  width: 100%;
  max-width: none;
  padding: 0 var(--pad-x);
}

body:not(.rm-home) .entry-content > .wp-block-cover:first-child h1,
body:not(.rm-home) .entry-content > .wp-block-cover:first-child h2,
body:not(.rm-home) .entry-content > .wp-block-cover:first-child p {
  color: #fff;
  text-align: left;
}

body:not(.rm-home) .entry-content > .wp-block-cover:first-child h1 {
  font-weight: 900;
  font-size: clamp(44px, 5.4vw, 80px);
  max-width: 16ch;
  margin: 0;
}

/* Inside the title band: drop the old spacer and the GenerateBlocks container's own gutter so the title
   sits on the page's left edge, at the same height as the article header element */
body:not(.rm-home) .entry-content > .wp-block-cover:first-child { padding: 80px 0 !important; }
body:not(.rm-home) .entry-content > .wp-block-cover:first-child .wp-block-spacer { display: none; }
body:not(.rm-home) .entry-content > .wp-block-cover:first-child .gb-container,
body:not(.rm-home) .entry-content > .wp-block-cover:first-child .gb-inside-container { padding: 0 !important; margin: 0 !important; }

/* --------------------------------------------------------------------------
   5. QA sweep fixes (2026-09-09)
   -------------------------------------------------------------------------- */
/* Slide-out menu: GP's inline offside CSS out-specified the white link colour */
body .slideout-navigation.main-navigation,
body .slideout-navigation.main-navigation a,
body .slideout-navigation.main-navigation .main-nav ul li a,
body .slideout-navigation.main-navigation .main-nav ul li[class*="current-menu-"] > a,
body .slideout-navigation.main-navigation .main-nav ul ul li a,
body .slideout-navigation.main-navigation .main-nav ul li:hover > a,
body .slideout-navigation .slideout-exit,
body .slideout-navigation .dropdown-menu-toggle { color: #fff !important; }
body .slideout-navigation.main-navigation .main-nav ul li:hover > a { color: var(--g400) !important; }

/* Nav hover: the Customizer's #0091d4 hover rule (uploads/generatepress/style.min.css) beat ours */
body .main-navigation .main-nav > ul > li:not([class*="current-menu-"]):hover > a,
body .main-navigation .main-nav > ul > li.sfHover > a,
body .main-navigation .main-nav > ul > li:focus-within > a { color: var(--g400) !important; }
body .main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a,
body .main-navigation .main-nav ul ul li.sfHover > a,
body .main-navigation .main-nav ul ul li[class*="current-menu-"] > a { color: var(--g600) !important; }

/* Gravity Forms (Orbital theme): black square controls */
body:not(.rm-home) .gform_wrapper.gform-theme,
body:not(.rm-home) .gform_wrapper {
  --gf-color-primary: #000;
  --gf-color-primary-rgb: 0, 0, 0;
  --gf-color-primary-darker: #333;
  --gf-color-primary-lighter: #333;
  --gf-color-primary-contrast: #fff;
  --gf-color-danger: #595959;
  --gf-radius: 0;
  --gf-radius-max-sm: 0;
  --gf-radius-max-md: 0;
  --gf-radius-max-lg: 0;
  --gf-ctrl-radius: 0;
  --gf-ctrl-btn-radius: 0;
  --gf-ctrl-border-color: #C4C4C4;
  --gf-ctrl-btn-shadow: none;
  --gf-ctrl-btn-shadow-hover: none;
  --gf-font-family-primary: var(--font-body);
}
body:not(.rm-home) .gform_wrapper .gform-theme-button,
body:not(.rm-home) .gform_wrapper button.gform_next_button,
body:not(.rm-home) .gform_wrapper button.gform_previous_button,
body:not(.rm-home) .gform_wrapper button.gform_button,
body:not(.rm-home) .gform_wrapper input.gform_button,
body:not(.rm-home) .gform_wrapper input[type="submit"] {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .1em !important;
  font-size: 13px !important;
  padding: 15px 22px !important;
  border-radius: 0 !important;
  border: 1px solid #000 !important;
  background: #000 !important;
  color: #fff !important;
  box-shadow: none !important;
}
body:not(.rm-home) .gform_wrapper .gform-theme-button:hover,
body:not(.rm-home) .gform_wrapper button.gform_button:hover,
body:not(.rm-home) .gform_wrapper input[type="submit"]:hover { background: #fff !important; color: #000 !important; }
body:not(.rm-home) .gform_wrapper .gfield_required { color: var(--g600); }
body:not(.rm-home) .gform_wrapper .gf_progressbar_percentage { background: #000; }

/* Old blue-gradient hero container (Sample Collection, Rhinoswab IFU, DX Health): becomes the black title band */
body:not(.rm-home):not(.page-id-37468) .entry-content > .gb-container-dcc81896:first-child,
body:not(.rm-home):not(.page-id-37468) .gb-container-dcc81896 {
  background: #000 !important;
  background-image: none !important;
  color: #fff;
  min-height: 0 !important;
  padding: 80px var(--pad-x) !important;
}
body:not(.rm-home):not(.page-id-37468) .gb-container-dcc81896 .gb-container { padding: 0 !important; background: transparent !important; }
body:not(.rm-home):not(.page-id-37468) .gb-container-dcc81896 .wp-block-spacer { display: none; }
body:not(.rm-home):not(.page-id-37468) .gb-container-dcc81896 h1,
body:not(.rm-home):not(.page-id-37468) .gb-container-dcc81896 h2,
body:not(.rm-home):not(.page-id-37468) .gb-container-dcc81896 p { color: #fff !important; text-align: left; }
body:not(.rm-home):not(.page-id-37468) .gb-container-dcc81896 h1 { font-weight: 900; font-size: clamp(44px, 5.4vw, 80px); max-width: 16ch; margin: 0; }

/* Old brand-blue text and icon colours become black; the clinical CTA box goes black */
body:not(.rm-home) .has-rhinomed-dark-blue-color,
body:not(.rm-home) .has-rhinomed-light-blue-color,
body:not(.rm-home) .has-rhinomed-aqua-color,
body:not(.rm-home) .has-mute-blue-color { color: #000 !important; }
body:not(.rm-home) .gb-icon svg,
body:not(.rm-home) .gb-icon svg path { fill: currentColor !important; }
/* Keep invisible bounding-box paths (fill="none") invisible; otherwise they render as black squares */
body:not(.rm-home) .gb-icon svg [fill="none"] { fill: none !important; }
body:not(.rm-home) .gb-icon svg [stroke="none"] { stroke: none !important; }
body:not(.rm-home) .gb-container-a567d66f { background-color: #000 !important; background-image: none !important; }
body:not(.rm-home) .gb-container-a567d66f .gb-button,
body:not(.rm-home) .gb-container-a567d66f .wp-block-button__link { background-color: #fff !important; color: #000 !important; border-color: #fff !important; }

/* Pale download links (core "contrast-3" preset) were near-invisible */
body:not(.rm-home) .has-contrast-3-color { color: var(--g500) !important; }
body:not(.rm-home) .has-contrast-3-color a { color: #000 !important; }

/* Search buttons (404 page, search form) */
body:not(.rm-home) .search-submit,
body:not(.rm-home) button.search-submit {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: 13px;
  background: #000; color: #fff; border: 1px solid #000; border-radius: 0; padding: 12px 18px;
}

/* Title band hugs the header: GP's separate-containers gap above the article is removed on pages */
body:not(.rm-home) .site-content,
body:not(.rm-home) .site-main,
body:not(.rm-home) .site-main > article,
body:not(.rm-home) .site-main > article > .inside-article { margin-top: 0 !important; padding-top: 0 !important; }
body:not(.rm-home):not(.page-id-37468) .gb-container-dcc81896 > .gb-inside-container { padding: 0 !important; max-width: none; }

/* WP Filter Chips plugin prints an empty list above every article; its list margin collapsed into a 26px gap under the header */
body .wpc-custom-selected-terms:has(.wpc-empty-chips-container) { display: none; }

/* Slide-out menu: one type size in every state (GP's hover/current rules changed it) */
body .slideout-navigation.main-navigation .main-nav ul li a,
body .slideout-navigation.main-navigation .main-nav ul li:hover > a,
body .slideout-navigation.main-navigation .main-nav ul li.sfHover > a,
body .slideout-navigation.main-navigation .main-nav ul li[class*="current-menu-"] > a,
body .slideout-navigation.main-navigation .main-nav ul li a:focus,
body .slideout-navigation.main-navigation .main-nav ul ul li a {
  font-family: var(--font-display) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  line-height: 1.3 !important;
  padding: 14px 20px !important;
}
body .slideout-navigation.main-navigation .main-nav ul ul li a,
body .slideout-navigation.main-navigation .main-nav ul ul li:hover > a,
body .slideout-navigation.main-navigation .main-nav ul ul li.sfHover > a,
body .slideout-navigation.main-navigation .main-nav ul ul li[class*="current-menu-"] > a,
body .slideout-navigation.main-navigation .main-nav ul ul li a:focus,
body .slideout-navigation.main-navigation .main-nav ul ul li a:hover,
body .slideout-navigation.main-navigation .main-nav ul ul li > a { padding: 12px 20px 12px 32px !important; font-size: 14px !important; font-weight: 700 !important; }
body .slideout-navigation.main-navigation .main-nav ul li a:hover { font-size: 16px !important; }
body .slideout-navigation.main-navigation .main-nav ul ul li a:hover { font-size: 14px !important; }
body .slideout-navigation.main-navigation .main-nav ul li a .dropdown-menu-toggle { padding-right: 0; }

/* Rhinoswab Junior hero keeps its green; the title reads white without the shadow */
body:not(.rm-home) .gb-container-0d1673e0 h1,
body:not(.rm-home) .gb-container-0d1673e0 h1.gb-headline { color: #fff !important; text-shadow: none !important; }

/* In-page sub-nav on phones: fade the right edge to show it scrolls */
@media (max-width: 768px) {
  body:not(.rm-home) .page-navigation-block {
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent);
    padding-right: 48px;
  }
}

/* --------------------------------------------------------------------------
   6. Company section (About page). Same rules as the homepage version, scoped site-wide.
   -------------------------------------------------------------------------- */
body:not(.rm-home) .rm-section--company {
  padding: 88px var(--pad-x);
  margin: 0;
  width: 100%;
  max-width: none;
  background: #fff;
  color: #000;
}
body:not(.rm-home) .rm-section--company .wp-block-group__inner-container { display: contents; }
body:not(.rm-home) .rm-company__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 64px;
  align-items: start !important;
  margin: 0;
}
body:not(.rm-home) .rm-company__grid > .wp-block-column { flex: none; width: auto; min-width: 0; margin: 0; flex-basis: auto !important; }
body:not(.rm-home) .rm-eyebrow { font-size: 13px; letter-spacing: .1em; line-height: 1.2; margin: 0 0 12px; font-weight: 700; }
body:not(.rm-home) .rm-company__h { font-weight: 900; font-size: clamp(40px, 4.5vw, 64px); line-height: .9; letter-spacing: -.01em; margin: 0 0 28px; }
body:not(.rm-home) .rm-section--company p { font-size: 18px; line-height: 1.5; max-width: 50ch; margin: 0 0 16px; color: #000; }
body:not(.rm-home) .rm-section--company p + p { font-size: 15px; line-height: 1.55; color: var(--g600); max-width: 54ch; margin: 0 0 14px; }
body:not(.rm-home) .rm-section--company p:last-child { margin-bottom: 0; }
body:not(.rm-home) .rm-people__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; padding-top: 8px; margin: 0; }
body:not(.rm-home) .rm-people__grid > .wp-block-column { flex: none; width: auto; min-width: 0; margin: 0; flex-basis: auto !important; }
body:not(.rm-home) .rm-people { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid #000; }
body:not(.rm-home) .rm-people li { padding: 14px 0; border-top: 1px solid #000; font-size: 16px; line-height: 1.35; margin: 0; color: #000; }
body:not(.rm-home) .rm-people__role { display: block; font-size: 13px; line-height: 1.4; color: var(--g600); margin-top: 2px; }
body:not(.rm-home) .rm-people__link { display: inline-block; margin-top: 4px; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: 11px; color: #000 !important; text-decoration: none !important; border-bottom: 1px solid currentColor; }
body:not(.rm-home) .rm-people__link:hover { color: var(--g600) !important; }
@media (max-width: 1024px) {
  body:not(.rm-home) .rm-company__grid { grid-template-columns: minmax(0, 1fr); row-gap: 48px; }
}
@media (max-width: 640px) {
  body:not(.rm-home) .rm-section--company { padding: 56px var(--pad-x); }
  body:not(.rm-home) .rm-people__grid { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   7. Story timeline (About page). Editable blocks: each item is a group with a
      year paragraph, an h3 and a paragraph.
   -------------------------------------------------------------------------- */
body:not(.rm-home) .rm-section--story {
  padding: 96px var(--pad-x) 104px;
  margin: 0 !important;      /* editor block-gap rule otherwise adds a stray bottom margin */
  width: 100%;
  max-width: none;
  color: #000;               /* background comes from the editor (colour preset or .rm-section--black) */
}
body:not(.rm-home) .rm-section--story.rm-section--black { background: #000; color: #fff; }
body:not(.rm-home) .rm-section--story .wp-block-group__inner-container { display: contents; }
body:not(.rm-home) .rm-story__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 64px; align-items: end; margin: 0 0 64px; }
body:not(.rm-home) .rm-story__h { font-weight: 900; font-size: clamp(40px, 4.5vw, 64px); line-height: .9; letter-spacing: -.01em; margin: 0; color: inherit; }
body:not(.rm-home) .rm-story__intro { font-size: 18px; line-height: 1.5; color: var(--g600); max-width: 46ch; margin: 0; }
body:not(.rm-home) .rm-section--black .rm-story__intro { color: var(--g300); }
body:not(.rm-home) .rm-timeline { border-top: 1px solid var(--g300); margin: 0; }
body:not(.rm-home) .rm-section--black .rm-timeline, body:not(.rm-home) .rm-section--black .rm-timeline__item { border-color: var(--g700); }
body:not(.rm-home) .rm-timeline__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 64px;
  padding: 40px 0 44px;
  border-bottom: 1px solid var(--g300);
  margin: 0;
}
body:not(.rm-home) .rm-timeline__item:last-child { border-bottom: 0; padding-bottom: 0; }
/* Years in the homepage's data face (JetBrains Mono, as on the flight board), no flap tiles */
body:not(.rm-home) .rm-timeline__year {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700;
  font-size: clamp(40px, 4.4vw, 72px);
  line-height: 1;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  color: inherit;
  margin: 4px 0 0;
}
body:not(.rm-home) .rm-timeline__body { max-width: 60ch; }
body:not(.rm-home) .rm-timeline__title { font-weight: 700; font-size: 22px; letter-spacing: .02em; line-height: 1.1; margin: 6px 0 14px; color: inherit; }
body:not(.rm-home) .rm-timeline__body p { font-size: 16px; line-height: 1.55; color: var(--g600); margin: 0; }
body:not(.rm-home) .rm-section--black .rm-timeline__body p { color: var(--g300); }
@media (max-width: 1024px) {
  body:not(.rm-home) .rm-story__head { grid-template-columns: minmax(0, 1fr); row-gap: 20px; margin-bottom: 48px; }
  body:not(.rm-home) .rm-timeline__item { grid-template-columns: 140px minmax(0, 1fr); column-gap: 32px; }
  body:not(.rm-home) .rm-timeline__year { font-size: 44px; }
}
@media (max-width: 640px) {
  body:not(.rm-home) .rm-section--story { padding: 64px var(--pad-x) 72px; }
  body:not(.rm-home) .rm-timeline__item { grid-template-columns: minmax(0, 1fr); row-gap: 12px; padding: 28px 0 32px; }
  body:not(.rm-home) .rm-timeline__year { font-size: 36px; }
}

/* External-link icon in menus. Font Awesome is not loaded on the site, so the <i class="fa-solid fa-up-right-from-square">
   the editor adds is drawn here as an inline SVG mask in the current text colour.
   Glyph: Font Awesome Free v7.3.1 "up-right-from-square" (CC BY 4.0, https://fontawesome.com/license/free). */
.main-navigation .fa-up-right-from-square,
.slideout-navigation .fa-up-right-from-square,
.rm-footer .fa-up-right-from-square,
.entry-content .fa-up-right-from-square {
  display: inline-block;
  width: .8em;
  height: .8em;
  margin-left: .4em;
  vertical-align: -.06em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'><path d='M354.4 83.8C359.4 71.8 371.1 64 384 64L544 64C561.7 64 576 78.3 576 96L576 256C576 268.9 568.2 280.6 556.2 285.6C544.2 290.6 530.5 287.8 521.3 278.7L464 221.3L310.6 374.6C298.1 387.1 277.8 387.1 265.3 374.6C252.8 362.1 252.8 341.8 265.3 329.3L418.7 176L361.4 118.6C352.2 109.4 349.5 95.7 354.5 83.7zM64 240C64 195.8 99.8 160 144 160L224 160C241.7 160 256 174.3 256 192C256 209.7 241.7 224 224 224L144 224C135.2 224 128 231.2 128 240L128 496C128 504.8 135.2 512 144 512L400 512C408.8 512 416 504.8 416 496L416 416C416 398.3 430.3 384 448 384C465.7 384 480 398.3 480 416L480 496C480 540.2 444.2 576 400 576L144 576C99.8 576 64 540.2 64 496L64 240z'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'><path d='M354.4 83.8C359.4 71.8 371.1 64 384 64L544 64C561.7 64 576 78.3 576 96L576 256C576 268.9 568.2 280.6 556.2 285.6C544.2 290.6 530.5 287.8 521.3 278.7L464 221.3L310.6 374.6C298.1 387.1 277.8 387.1 265.3 374.6C252.8 362.1 252.8 341.8 265.3 329.3L418.7 176L361.4 118.6C352.2 109.4 349.5 95.7 354.5 83.7zM64 240C64 195.8 99.8 160 144 160L224 160C241.7 160 256 174.3 256 192C256 209.7 241.7 224 224 224L144 224C135.2 224 128 231.2 128 240L128 496C128 504.8 135.2 512 144 512L400 512C408.8 512 416 504.8 416 496L416 416C416 398.3 430.3 384 448 384C465.7 384 480 398.3 480 416L480 496C480 540.2 444.2 576 400 576L144 576C99.8 576 64 540.2 64 496L64 240z'/></svg>") center / contain no-repeat;
}

/* --------------------------------------------------------------------------
   8. Investors strip (About page): heading left, one line and a button right
   -------------------------------------------------------------------------- */
body:not(.rm-home) .rm-section--investors {
  padding: 72px var(--pad-x) 88px;
  margin: 0;
  width: 100%;
  max-width: none;
}
body:not(.rm-home) .rm-section--investors .wp-block-group__inner-container { display: contents; }
body:not(.rm-home) .rm-investors__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 64px; align-items: start !important; margin: 0; }
body:not(.rm-home) .rm-investors__grid > .wp-block-column { flex: none; width: auto; min-width: 0; margin: 0; flex-basis: auto !important; }
body:not(.rm-home) .rm-investors__h { font-weight: 900; font-size: clamp(32px, 3.4vw, 44px); line-height: .95; margin: 0; }
body:not(.rm-home) .rm-investors__text { font-size: 17px; line-height: 1.5; max-width: 48ch; margin: 0 0 24px; color: var(--g600); }
body:not(.rm-home) .rm-section--investors .wp-block-button__link .fa-up-right-from-square { margin-left: .5em; }
@media (max-width: 1024px) {
  body:not(.rm-home) .rm-investors__grid { grid-template-columns: minmax(0, 1fr); row-gap: 20px; }
}
@media (max-width: 640px) {
  body:not(.rm-home) .rm-section--investors { padding: 48px var(--pad-x) 64px; }
}
