@import url("colors.css");
@import url("typography.css");
@import url("spacing.css");
@import url("effects.css");

/* Self-hosted fonts with slab feet on the capital I (so "AI" ≠ "Al").
   Modified under the OFL (license files alongside the fonts); regenerate
   with the design-system/font-surgery scripts when upstream updates.
   Kano is a logo-only asset (design-system/fonts) and is not loaded. */
@font-face {
  font-family: "Bricolage AI";
  src: url("../fonts/BricolageAI.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 200 800;
  font-stretch: 75% 100%;
}

@font-face {
  font-family: "Mulish AI";
  src: url("../fonts/MulishAI.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 200 1000;
}

@font-face {
  font-family: "Mulish AI";
  src: url("../fonts/MulishAI-Italic.woff2") format("woff2");
  font-display: swap;
  font-style: italic;
  font-weight: 200 1000;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  background: var(--rk-paper);
  color: var(--rk-text-body);
  font-family: var(--rk-font-body);
  margin: 0;
  min-width: 320px;
}

body.rk-menu-open { overflow: hidden; }

main > .wp-block-group,
main > .wp-block-columns { margin-block-start: 0; }

img, svg { display: block; height: auto; max-width: 100%; }
button, input, select, textarea { font: inherit; }
a { color: var(--rk-text-link); }

h1, h2, h3, h4, h5, h6 {
  color: var(--rk-text-strong);
  font-family: var(--rk-font-display);
  letter-spacing: var(--rk-tracking-tight);
  text-wrap: balance;
}

:focus-visible {
  border-radius: 3px;
  outline: 2px solid var(--rk-muffin);
  outline-offset: 3px;
  box-shadow: var(--rk-ring);
}

[hidden] { display: none !important; }
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.rk-skip-link {
  background: var(--rk-white);
  color: var(--rk-rhino-900);
  font-weight: 700;
  left: 12px;
  padding: 10px 16px;
  position: fixed;
  top: -100px;
  z-index: 1000;
}
.rk-skip-link:focus { top: 12px; }

.rk-container {
  margin-inline: auto;
  max-width: calc(var(--rk-container) + 80px);
  padding-inline: 40px;
  width: 100%;
}
.rk-container--narrow { max-width: calc(var(--rk-container-narrow) + 80px); }
.rk-section { padding-block: 80px; }
.rk-section--white { background: var(--rk-white); border-block: 1px solid var(--rk-border); }
.rk-section--cream { background: var(--rk-cream); border-block: 1px solid var(--rk-border); }
.rk-section--rhino { background: var(--rk-rhino-700); color: var(--rk-text-on-dark); }
.rk-grid { display: grid; gap: 22px; }
.rk-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rk-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rk-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.rk-icon { height: var(--rk-icon-size); width: var(--rk-icon-size); }
.rk-icon-tile {
  align-items: center;
  border-radius: var(--rk-radius-md);
  display: inline-flex;
  flex: 0 0 auto;
  height: 50px;
  justify-content: center;
  width: 50px;
}
.rk-icon-tile--tomato { background: var(--rk-tomato-100); color: var(--rk-tomato-600); }
.rk-icon-tile--macaroni { background: var(--rk-macaroni-100); color: var(--rk-macaroni-600); }
.rk-icon-tile--rhino { background: var(--rk-rhino-100); color: var(--rk-rhino-700); }
.rk-icon-tile--plain { background: transparent; color: inherit; height: auto; width: auto; }
/* Inline variants for the [rk_icon] shortcode — scale with the text unless
   an explicit size="" sets --rk-inline-icon-size. Ratios keep the geometry
   of the 50px card tile (24px icon, 12px radius), so size="50" matches it. */
.rk-icon-tile--inline { border-radius: calc(var(--rk-inline-icon-size, 1.5em) * .24); height: var(--rk-inline-icon-size, 1.5em); vertical-align: -.4em; width: var(--rk-inline-icon-size, 1.5em); }
.rk-icon-tile--inline .rk-icon { height: calc(var(--rk-inline-icon-size, 1.5em) * .48); width: calc(var(--rk-inline-icon-size, 1.5em) * .48); }
.rk-inline-icon { display: inline-flex; vertical-align: -.15em; }
.rk-inline-icon .rk-icon { height: var(--rk-inline-icon-size, 1em); width: var(--rk-inline-icon-size, 1em); }
.rk-inline-sized { vertical-align: middle; }
/* Bordered tile backgrounds for [rk_icon tile="white|paper"]; tone becomes
   the icon ink on these. */
.rk-inline-tile--white, .rk-inline-tile--paper { border: 1px solid var(--rk-border); }
.rk-inline-tile--white { background: var(--rk-white); }
.rk-inline-tile--paper { background: var(--rk-paper); }
.rk-inline-ink--tomato { color: var(--rk-tomato); }
.rk-inline-ink--macaroni { color: var(--rk-macaroni-600); }
.rk-inline-ink--rhino { color: var(--rk-rhino-700); }
.rk-inline-ink--plain { color: inherit; }
/* A paragraph holding only [rk_icon] tiles reads as a card tile row: close
   the gap to the next element to the cards block's 12px. */
.rk-icon-row { margin-bottom: 0; }
.rk-entry-content .rk-icon-row + *, .rk-prose .rk-icon-row + *, .rk-icon-row + * { margin-top: 12px; }

.rk-eyebrow {
  align-items: center;
  color: var(--rk-tomato);
  display: inline-flex;
  font-size: 13px;
  font-weight: 700;
  gap: 8px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.rk-eyebrow--macaroni { color: var(--rk-macaroni-500); }
.rk-eyebrow--muffin { color: var(--rk-rhino-500); }

.rk-section-heading { align-items: flex-start; display: flex; flex-direction: column; gap: 14px; }
.rk-section-heading :is(h1, h2, h3, h4) { font-size: clamp(36px, 5vw, 48px); line-height: 1.08; margin: 0; }
.rk-section-heading p { color: var(--rk-text-muted); font-size: 18px; line-height: 1.6; margin: 0; max-width: 640px; }
.rk-section-heading p.rk-eyebrow { color: var(--rk-tomato); font-size: 13px; line-height: 1; }
.rk-section-heading.is-inverse p.rk-eyebrow { color: var(--rk-macaroni-500); }
.rk-section-heading.is-centered { align-items: center; margin-inline: auto; max-width: 720px; text-align: center; }
.rk-section-heading.is-inverse :is(h1, h2, h3, h4) { color: var(--rk-white); }
.rk-section-heading.is-inverse p { color: var(--rk-text-on-dark); }

.rk-button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.rk-button {
  align-items: center;
  border: 2px solid transparent;
  border-radius: var(--rk-radius-sm);
  cursor: pointer;
  display: inline-flex;
  font-weight: 700;
  gap: 8px;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  transition: background var(--rk-dur) var(--rk-ease-out), color var(--rk-dur) var(--rk-ease-out), transform var(--rk-dur-fast) var(--rk-ease-out);
  white-space: nowrap;
}
.rk-button:hover { transform: translateY(-1px); }
.rk-button--sm { font-size: 14px; padding: 8px 16px; }
.rk-button--md { font-size: 16px; padding: 12px 22px; }
.rk-button--lg { font-size: 18px; gap: 10px; padding: 16px 30px; }
.rk-button--primary { background: var(--rk-tomato-500); color: var(--rk-white); }
.rk-button--primary:hover { background: var(--rk-tomato-600); color: var(--rk-white); }
.rk-button--secondary { border-color: var(--rk-rhino-700); color: var(--rk-rhino-700); }
.rk-button--secondary:hover { background: var(--rk-rhino-100); }
.rk-button--accent { background: var(--rk-macaroni-500); color: var(--rk-rhino-900); }
.rk-button--accent:hover { background: var(--rk-macaroni-600); color: var(--rk-rhino-900); }
.rk-button--light { background: var(--rk-white); color: var(--rk-tomato-600); }
.rk-button--light:hover { background: var(--rk-tomato-100); }
.rk-button--ghost { color: var(--rk-rhino-700); }
.rk-button--ghost:hover { background: var(--rk-rhino-100); }
.rk-button--ghost-light { color: inherit; opacity: .9; }
.rk-button--ghost-light:hover { background: rgba(255,255,255,.1); color: inherit; }

/* PDF Section plugin — align its section wrapper and download button with
   the theme's callout and primary-button styling. */
.rkpdf-section.has-background { border-radius: var(--rk-radius-lg); padding: 28px 30px; }
.rkpdf-button {
  background: var(--rk-tomato-500);
  border-radius: var(--rk-radius-sm);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  padding: 10px 16px;
  transition: background var(--rk-dur) var(--rk-ease-out), transform var(--rk-dur-fast) var(--rk-ease-out);
}
.rkpdf-button:hover { background: var(--rk-tomato-600); opacity: 1; transform: translateY(-1px); }

.rk-block-button .wp-block-button__link {
  align-items: center;
  border: 2px solid transparent;
  border-radius: var(--rk-radius-sm);
  display: inline-flex;
  font-family: var(--rk-font-body);
  font-weight: 700;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  transition: background var(--rk-dur) var(--rk-ease-out), transform var(--rk-dur-fast) var(--rk-ease-out);
}
.rk-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
.rk-block-button.rk-button--sm .wp-block-button__link { font-size: 14px; padding: 8px 16px; }
.rk-block-button.rk-button--md .wp-block-button__link { font-size: 16px; padding: 12px 22px; }
.rk-block-button.rk-button--lg .wp-block-button__link { font-size: 18px; padding: 16px 30px; }
.rk-block-button.rk-button--primary .wp-block-button__link { background: var(--rk-tomato-500); color: var(--rk-white); }
.rk-block-button.rk-button--primary .wp-block-button__link:hover { background: var(--rk-tomato-600); }
.rk-block-button.rk-button--secondary .wp-block-button__link { background: transparent; border-color: var(--rk-rhino-700); color: var(--rk-rhino-700); }
.rk-block-button.rk-button--secondary .wp-block-button__link:hover { background: var(--rk-rhino-100); }
.rk-block-button.rk-button--accent .wp-block-button__link { background: var(--rk-macaroni-500); color: var(--rk-rhino-900); }
.rk-block-button.rk-button--accent .wp-block-button__link:hover { background: var(--rk-macaroni-600); }
.rk-block-button.rk-button--light .wp-block-button__link { background: var(--rk-white); color: var(--rk-tomato-600); }
.rk-block-button.rk-button--ghost .wp-block-button__link { background: transparent; color: var(--rk-rhino-700); }
.rk-block-button.rk-button--ghost-light .wp-block-button__link { background: transparent; color: inherit; opacity: .9; }

.rk-badge {
  border-radius: var(--rk-radius-xs);
  display: inline-flex;
  font-family: var(--rk-font-body);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .05em;
  padding: 3px 8px;
  text-transform: uppercase;
}
.rk-badge--success { background: rgba(46,139,87,.12); color: #1f6b41; }
.rk-badge--soon { background: var(--rk-macaroni-100); color: var(--rk-macaroni-600); }

/* Header */
.rk-site-header {
  backdrop-filter: blur(10px);
  background: rgba(251,247,240,.86);
  border-bottom: 1px solid var(--rk-border);
  position: sticky;
  top: 0;
  z-index: 100;
}
.admin-bar .rk-site-header { top: 32px; }
.rk-site-header__inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-inline: auto;
  max-width: 1440px;
  padding: 16px 40px;
  position: relative;
}
.rk-logo { align-items: center; display: flex; flex: 0 0 auto; }
.rk-logo img { height: 38px; width: auto; }
.rk-primary-nav { align-items: center; display: flex; gap: 4px; }
.rk-nav-link {
  align-items: center;
  background: none;
  border: 0;
  border-radius: var(--rk-radius-sm);
  color: var(--rk-rhino-700);
  cursor: pointer;
  display: inline-flex;
  font-size: 15px;
  font-weight: 600;
  gap: 4px;
  padding: 8px 14px;
  text-decoration: none;
}
.rk-nav-link:hover { color: var(--rk-tomato-600); }
.rk-services-toggle { position: relative; }
.rk-services-toggle::after {
  content: "";
  height: 22px;
  left: 0;
  position: absolute;
  right: 0;
  top: 100%;
}
.rk-services-toggle .rk-icon { transition: transform var(--rk-dur); }
.rk-services-toggle[aria-expanded="true"] .rk-icon { transform: rotate(180deg); }
.rk-pattern-link {
  align-items: center;
  border: 1.5px solid var(--rk-border-strong);
  border-radius: var(--rk-radius-pill);
  color: var(--rk-rhino-700);
  display: inline-flex;
  font-size: 15px;
  font-weight: 700;
  gap: 7px;
  margin-left: 6px;
  padding: 7px 14px;
  text-decoration: none;
  transition: background var(--rk-dur), border-color var(--rk-dur);
}
.rk-pattern-link .rk-icon { color: var(--rk-macaroni-600); }
.rk-pattern-link:hover { background: var(--rk-macaroni-100); border-color: var(--rk-macaroni-500); color: var(--rk-rhino-900); }
.rk-primary-nav > .rk-button { margin-left: 10px; }
.rk-services-menu { position: static; }
.rk-mega-menu {
  background: var(--rk-white);
  border: 1px solid var(--rk-border);
  border-radius: var(--rk-radius-lg);
  box-shadow: var(--rk-shadow-lg);
  left: 50%;
  margin-top: 8px;
  max-width: 900px;
  padding: 20px;
  position: absolute;
  right: auto;
  top: calc(100% - 8px);
  transform: translateX(-50%);
  width: calc(100% - 80px);
}
.rk-mega-menu__head {
  align-items: baseline;
  border-bottom: 1px solid var(--rk-border);
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
  padding: 2px 8px 10px;
}
.rk-mega-menu__head strong { color: var(--rk-tomato); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.rk-mega-menu__head span { color: var(--rk-text-muted); font-size: 13px; }
.rk-mega-menu__grid { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rk-mega-menu__item {
  border-radius: var(--rk-radius-md);
  color: inherit;
  display: flex;
  gap: 14px;
  padding: 14px 12px;
  text-decoration: none;
}
.rk-mega-menu__item:hover { background: var(--rk-gray-100); }
.rk-mega-menu__title { align-items: center; color: var(--rk-text-strong); display: flex; font-family: var(--rk-font-display); font-size: 16px; font-weight: 700; gap: 8px; }
.rk-mega-menu__description { color: var(--rk-text-muted); display: block; font-size: 13.5px; line-height: 1.45; margin-top: 4px; }
.rk-menu-toggle { background: none; border: 0; color: var(--rk-rhino-700); display: none; padding: 8px; }

/* Cards */
.rk-project-card {
  background: var(--rk-white);
  border: 1px solid var(--rk-border);
  border-radius: var(--rk-radius-lg);
  color: inherit;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  text-decoration: none;
  transition: box-shadow var(--rk-dur) var(--rk-ease-out), transform var(--rk-dur) var(--rk-ease-out);
}
.rk-project-card:hover { box-shadow: var(--rk-shadow-md); color: inherit; transform: translateY(-3px); }
.rk-project-card__cover {
  align-items: center;
  aspect-ratio: 16/10;
  background: var(--rk-cover-color, var(--rk-rhino-700));
  color: rgba(255,255,255,.92);
  display: flex;
  justify-content: center;
  position: relative;
}
.rk-project-card__kind { bottom: 14px; color: rgba(255,255,255,.85); font-size: 12px; font-weight: 700; left: 16px; letter-spacing: .06em; position: absolute; text-transform: uppercase; }
.rk-project-card__body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 20px 22px 22px; }
.rk-project-card__client { color: var(--rk-tomato); font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.rk-project-card__title { color: var(--rk-text-strong); font-family: var(--rk-font-display); font-size: 22px; font-weight: 700; letter-spacing: -.01em; line-height: 1.15; transition: color var(--rk-dur); }
.rk-project-card:hover .rk-project-card__title { color: var(--rk-tomato); }
.rk-project-card__description { color: var(--rk-text-muted); font-size: 15px; line-height: 1.55; }
.rk-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 4px; }
.rk-tags > span { background: var(--rk-gray-100); border-radius: var(--rk-radius-pill); color: var(--rk-rhino-700); font-size: 12px; font-weight: 600; padding: 4px 10px; }

.rk-feature-card {
  align-items: stretch;
  background: var(--rk-white);
  border: 1px solid var(--rk-border);
  border-radius: var(--rk-radius-lg);
  color: inherit;
  display: grid;
  gap: 22px;
  grid-template-columns: 176px minmax(0, 1fr);
  padding: 20px;
  text-decoration: none;
  transition: box-shadow var(--rk-dur) var(--rk-ease-out), transform var(--rk-dur) var(--rk-ease-out);
}
.rk-feature-card:hover { box-shadow: var(--rk-shadow-md); color: inherit; transform: translateY(-3px); }
.rk-feature-card__top { align-items: center; display: flex; justify-content: space-between; }
.rk-feature-card__illustration { background-color: var(--rk-paper); background-position: center; background-repeat: no-repeat; background-size: auto 134px; border: 1px solid var(--rk-border); border-radius: var(--rk-radius-md); display: block; min-height: 190px; width: 100%; }
.rk-feature-card__illustration > img { border-radius: inherit; height: 100%; object-fit: contain; width: 100%; }
.rk-feature-card__content { align-items: flex-start; display: flex; flex-direction: column; gap: 11px; min-width: 0; }
.rk-feature-card h3 { font-size: 22px; line-height: 1.15; margin: 0; }
.rk-feature-card p { color: var(--rk-text-muted); font-size: 15.5px; line-height: 1.6; margin: 0; }
.rk-feature-card p.rk-badge { color: #1f6b41; font-size: 12px; line-height: 1; margin: 0; }
.rk-feature-card p.rk-badge--soon { color: var(--rk-macaroni-600); }
.rk-feature-card .wp-block-buttons { margin-top: auto; }
.rk-feature-card .rk-block-button .wp-block-button__link { color: var(--rk-tomato-600); padding-left: 0; padding-right: 0; }
.rk-feature-card__action { align-items: center; color: var(--rk-tomato-600); display: inline-flex; font-size: 15px; font-weight: 700; gap: 7px; margin-top: auto; }
.rk-feature-card__action .rk-icon { transition: transform var(--rk-dur) var(--rk-ease-out); }
.rk-feature-card:hover .rk-feature-card__action .rk-icon { transform: translateX(4px); }

.rk-pattern-card {
  background: var(--rk-white);
  border: 1px solid var(--rk-border);
  border-radius: var(--rk-radius-lg);
  color: inherit;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 26px;
  text-decoration: none;
  transition: box-shadow var(--rk-dur), transform var(--rk-dur) var(--rk-ease-out);
}
.rk-pattern-card:hover { box-shadow: var(--rk-shadow-md); color: inherit; transform: translateY(-3px); }
.rk-pattern-card__top { align-items: center; display: flex; justify-content: space-between; }
.rk-pattern-card__category { color: var(--rk-rhino-300); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.rk-pattern-card__title { color: var(--rk-text-strong); font-family: var(--rk-font-display); font-size: 21px; font-weight: 700; }
.rk-pattern-card__description { color: var(--rk-text-muted); font-size: 15px; line-height: 1.55; }
.rk-pattern-card__when { align-items: baseline; border-top: 1px dashed var(--rk-border-strong); display: flex; gap: 8px; margin-top: auto; padding-top: 12px; }
.rk-pattern-card__when strong { color: var(--rk-tomato); font-size: 12.5px; letter-spacing: .05em; text-transform: uppercase; }
.rk-pattern-card__when span { color: var(--rk-text-body); font-size: 14px; }

.rk-filter-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rk-filter-chips.is-centered { justify-content: center; }
.rk-filter-chip {
  background: var(--rk-white);
  border: 1px solid var(--rk-border-strong);
  border-radius: var(--rk-radius-pill);
  color: var(--rk-rhino-700);
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 12px;
}
.rk-filter-chip:hover { background: var(--rk-rhino-100); }
.rk-filter-chip.is-active { background: var(--rk-rhino-700); border-color: transparent; color: var(--rk-white); }

.rk-callout {
  align-items: flex-start;
  background: var(--rk-rhino-700);
  border-radius: var(--rk-radius-xl);
  color: var(--rk-white);
  display: flex;
  flex-direction: column;
  gap: 18px;
  overflow: hidden;
  padding: 56px 52px;
  position: relative;
}
.rk-callout > img { opacity: .16; pointer-events: none; position: absolute; right: -10px; top: 22px; transform: rotate(-8deg); width: 210px; }
.rk-callout > *:not(img) { position: relative; }
.rk-callout__eyebrow { color: var(--rk-macaroni-500); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rk-callout p.rk-callout__eyebrow { color: var(--rk-macaroni-500); font-size: 13px; line-height: 1; }
.rk-callout h2 { color: inherit; font-size: clamp(32px, 5vw, 42px); line-height: 1.08; margin: 0; max-width: var(--rk-callout-title-max, 620px); }
.rk-callout p { color: var(--rk-text-on-dark); font-size: 18px; line-height: 1.6; margin: 0; max-width: var(--rk-callout-body-max, 560px); }
/* Editor-only: flashed on an element while its width slider moves (the
   class is never emitted on the front end; lives here because main.css
   reliably reaches the canvas). */
.rk-width-flash { outline: 2px dotted var(--rk-muffin); outline-offset: 6px; }

.rk-callout em, .rk-offering-hero em { color: var(--rk-macaroni); font-style: normal; }
.rk-callout--cream em { color: var(--rk-tomato-500); }
.rk-callout--tomato { background: var(--rk-tomato-500); }
.rk-callout--tomato .rk-callout__eyebrow { color: var(--rk-white); }
.rk-callout--tomato p { color: rgba(255,255,255,.9); }
.rk-callout--cream { background: var(--rk-cream); color: var(--rk-rhino-900); }
.rk-callout--cream .rk-callout__eyebrow { color: var(--rk-tomato); }
.rk-callout--cream p { color: var(--rk-text-muted); }
.rk-callout--cream > img { content: url("../images/whisk-rhino.svg"); }
.rk-block-callout-wrap { padding-block: 80px; }

/* Footer */
.rk-site-footer { background: var(--rk-rhino-900); color: var(--rk-white); overflow: hidden; padding: 64px 0 40px; position: relative; }
.rk-site-footer__whisk { bottom: -20px; opacity: .08; position: absolute; right: -30px; transform: rotate(-10deg); width: 260px; }
.rk-site-footer__grid { display: grid; gap: 40px; grid-template-columns: 1.6fr repeat(3, 1fr); position: relative; }
.rk-site-footer__brand { display: flex; flex-direction: column; gap: 16px; }
.rk-site-footer__brand img { height: 40px; width: auto; }
.rk-site-footer__brand p { color: var(--rk-text-on-dark); font-size: 15px; line-height: 1.6; margin: 0; max-width: 300px; opacity: .85; }
.rk-site-footer address { display: flex; flex-direction: column; font-size: 15px; font-style: normal; line-height: 1.7; }
.rk-site-footer a { color: var(--rk-text-on-dark); text-decoration: none; }
.rk-site-footer a:hover { color: var(--rk-white); text-decoration: underline; }
.rk-footer-column { display: flex; flex-direction: column; gap: 12px; }
.rk-footer-column h2 { color: var(--rk-macaroni-500); font-family: var(--rk-font-body); font-size: 13px; letter-spacing: .07em; margin: 0; text-transform: uppercase; }
.rk-footer-column a { font-size: 15px; opacity: .85; }
.rk-site-footer__base { border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.55); display: flex; font-size: 13px; justify-content: space-between; margin-top: 40px; padding-top: 24px; position: relative; }

/* Home */
.rk-home-hero { padding-block: 72px 84px; }
.rk-home-hero__grid { align-items: center; display: grid; gap: 48px; grid-template-columns: 1.05fr 1fr; }
.rk-home-hero__copy { align-items: flex-start; display: flex; flex-direction: column; gap: 24px; }
.rk-home-hero h1 { font-size: clamp(48px, 6vw, 60px); font-weight: 800; letter-spacing: -.03em; line-height: 1.02; margin: 0; }
.rk-home-hero em { color: var(--rk-tomato-500); font-style: normal; }
.rk-section-heading em { color: var(--rk-tomato-500); font-style: normal; }
.rk-feature-card__content em  { color: var(--rk-tomato-500); font-style: normal; }
.rk-home-hero__copy > p { color: var(--rk-text-muted); font-size: 20px; line-height: 1.55; margin: 0; max-width: 520px; }
.rk-home-hero__copy > p.rk-eyebrow { color: var(--rk-tomato); font-size: 13px; line-height: 1; }
/* Standalone use (outside the home hero grid): keep the device at its
   designed width and give it section breathing room. */
main > .rk-home-hero__device { margin: 56px auto; max-width: 660px; padding-inline: 24px; }
.rk-transform-device { --rk-demo-duration: 12s; height: 365px; position: relative; }
.rk-transform-device__field { background: var(--rk-macaroni-100); border-radius: var(--rk-radius-xl); bottom: calc(4% - 10px); left: calc(2% - 40px); position: absolute; right: calc(2% - 40px); top: calc(5% - 10px); }
.rk-transform-device__pdf,
.rk-transform-device__web { background: var(--rk-white); border: 1px solid var(--rk-border); box-sizing: border-box; position: absolute; }
.rk-transform-device__pdf { border-radius: var(--rk-radius-sm); box-shadow: var(--rk-shadow-md); left: 3%; padding: 10px; top: 29px; transform: rotate(-3deg); width: 180px; z-index: 1; }
.rk-transform-device__pdf-title { align-items: center; color: var(--rk-text-muted); display: flex; font-family: var(--rk-font-mono); font-size: 9px; justify-content: space-between; margin-bottom: 8px; }
.rk-transform-device__pdf-title > span { align-items: center; display: flex; gap: 6px; }
.rk-transform-device__pdf-title .rk-icon { color: var(--rk-tomato); }
.rk-transform-device__pdf-title strong { background: var(--rk-tomato-100); border-radius: 20px; color: var(--rk-tomato-700); font-size: 8px; padding: 4px 6px; }
.rk-pdf-viewport { background: #73767d; border: 1px solid #62656b; height: 246px; overflow: hidden; position: relative; }
.rk-pdf-pages { align-items: center; animation: rk-pdf-scroll var(--rk-demo-duration) cubic-bezier(.65,0,.35,1) infinite; display: flex; flex-direction: column; gap: 10px; padding: 9px 12px 9px 7px; }
.rk-pdf-page { background: var(--rk-white); box-shadow: 0 2px 8px rgba(30,39,64,.32); box-sizing: border-box; flex: 0 0 auto; height: 168px; padding: 10px 9px 8px; position: relative; width: 119px; }
.rk-pdf-page__heading { background: var(--rk-rhino-500); height: 4px; margin-bottom: 6px; width: 58%; }
.rk-pdf-columns { display: grid; gap: 5px; grid-template-columns: repeat(2, 1fr); }
.rk-pdf-column { display: flex; flex-direction: column; gap: 3px; }
.rk-pdf-column span { background: var(--rk-rhino-200); height: 2px; width: 100%; }
.rk-pdf-column span:nth-child(4n+1) { width: 82%; }
.rk-pdf-column span:nth-child(5n+2) { width: 91%; }
.rk-pdf-column span:nth-child(7n+3) { margin-bottom: 1px; width: 68%; }
.rk-pdf-page__number { bottom: 4px; color: var(--rk-rhino-300); font-family: var(--rk-font-mono); font-size: 5px; position: absolute; right: 7px; }
.rk-pdf-scrollbar { background: rgba(255,255,255,.28); border-radius: 5px; bottom: 5px; position: absolute; right: 4px; top: 5px; width: 4px; }
.rk-pdf-scrollbar span { animation: rk-pdf-scrollbar var(--rk-demo-duration) cubic-bezier(.65,0,.35,1) infinite; background: rgba(255,255,255,.8); border-radius: inherit; height: 48px; left: 0; position: absolute; top: 0; width: 100%; }
.rk-transform-device__arrow { align-items: center; background: var(--rk-tomato); border: 4px solid var(--rk-macaroni-100); border-radius: 50%; box-shadow: var(--rk-shadow-md); color: var(--rk-white); display: flex; height: 54px; justify-content: center; left: 37.5%; position: absolute; top: 161px; width: 54px; z-index: 4; }
.rk-transform-device__arrow span { align-items: center; display: flex; }
.rk-transform-device__web { border-radius: var(--rk-radius-md); box-shadow: var(--rk-shadow-lg); overflow: hidden; right: 1%; top: 36px; width: 294px; z-index: 2; }
.rk-browser-bar { align-items: center; background: var(--rk-gray-100); border-bottom: 1px solid var(--rk-border); display: flex; gap: 10px; height: 32px; padding-inline: 10px; }
.rk-browser-bar__dots { display: flex; gap: 5px; }
.rk-browser-bar__dots span { border-radius: 50%; height: 7px; width: 7px; }
.rk-browser-bar__dots span:nth-child(1) { background: #e4614f; }
.rk-browser-bar__dots span:nth-child(2) { background: var(--rk-macaroni); }
.rk-browser-bar__dots span:nth-child(3) { background: var(--rk-muffin); }
.rk-browser-address { background: var(--rk-white); border-radius: 4px; color: var(--rk-text-muted); flex: 1; font-family: var(--rk-font-mono); font-size: 7px; padding: 4px 8px; text-align: center; }
.rk-demo-website { background: var(--rk-white); height: 270px; position: relative; }
.rk-demo-stage { bottom: 0; left: 0; overflow: hidden; position: absolute; right: 62px; top: 0; }
.rk-demo-screen { background: var(--rk-white); inset: 0; opacity: 0; overflow: hidden; position: absolute; }
.rk-demo-screen--chart { animation: rk-screen-chart var(--rk-demo-duration) ease-in-out infinite; }
.rk-demo-screen--diagram { animation: rk-screen-diagram var(--rk-demo-duration) ease-in-out infinite; }
.rk-demo-screen--accordion { animation: rk-screen-accordion var(--rk-demo-duration) ease-in-out infinite; }
.rk-demo-page { min-height: 430px; }
.rk-demo-page--chart { animation: rk-page-chart var(--rk-demo-duration) cubic-bezier(.65,0,.35,1) infinite; }
.rk-demo-page--diagram { animation: rk-page-diagram var(--rk-demo-duration) cubic-bezier(.65,0,.35,1) infinite; }
.rk-demo-page--accordion { animation: rk-page-accordion var(--rk-demo-duration) cubic-bezier(.65,0,.35,1) infinite; }
.rk-demo-page__hero { box-sizing: border-box; color: var(--rk-white); display: flex; flex-direction: column; gap: 7px; height: 96px; justify-content: flex-end; padding: 14px; }
.rk-demo-page__hero small { font-family: var(--rk-font-mono); font-size: 6px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.rk-demo-page__hero strong { font-family: var(--rk-font-display); font-size: 15px; line-height: 1.08; max-width: 175px; }
.rk-demo-page--chart .rk-demo-page__hero { background: var(--rk-tomato-500); }
.rk-demo-page--diagram .rk-demo-page__hero { background: var(--rk-rhino-700); }
.rk-demo-page--accordion .rk-demo-page__hero { background: var(--rk-macaroni); color: var(--rk-rhino-900); }
.rk-demo-page__copy { display: flex; flex-direction: column; gap: 5px; padding: 13px 14px 15px; }
.rk-demo-page__copy span { background: var(--rk-rhino-200); border-radius: 3px; height: 4px; width: 100%; }
.rk-demo-page__copy span:nth-child(2) { width: 88%; }
.rk-demo-page__copy span:nth-child(3) { width: 61%; }
.rk-demo-page__copy span:nth-child(4) { width: 94%; }
.rk-demo-page__copy span:nth-child(5) { width: 72%; }
.rk-demo-page__copy--after { padding-bottom: 22px; padding-top: 13px; }
.rk-demo-page__copy--after span:nth-child(1) { width: 92%; }
.rk-demo-page__copy--after span:nth-child(2) { width: 76%; }
.rk-demo-page__copy--after span:nth-child(3) { width: 100%; }
.rk-demo-page__copy--after span:nth-child(4) { width: 64%; }
.rk-demo-module { background: var(--rk-white); border: 1px solid var(--rk-border); border-radius: 7px; box-shadow: 0 3px 10px rgba(30,39,64,.08); margin: 0 10px; padding: 10px; }
.rk-demo-nav { align-items: flex-start; background: var(--rk-rhino-100); bottom: 0; display: flex; flex-direction: column; gap: 8px; padding: 12px 8px; position: absolute; right: 0; top: 0; width: 62px; z-index: 6; }
.rk-demo-nav__title { color: var(--rk-rhino-700); font-family: var(--rk-font-body); font-size: 11px; font-weight: 700; line-height: 1.05; margin-bottom: 3px; }
.rk-demo-nav__item { background: var(--rk-rhino-700); border-radius: 3px; display: block; height: 5px; opacity: 1; width: 100%; }
.rk-demo-nav__item--two { width: 79%; }
.rk-demo-nav__item--three { width: 91%; }
.rk-demo-nav__item--four { width: 68%; }
.rk-demo-nav__item--five { animation: rk-toc-five var(--rk-demo-duration) linear infinite; width: 88%; }
.rk-demo-nav__item--six { animation: rk-toc-six var(--rk-demo-duration) linear infinite; width: 74%; }
.rk-demo-nav__item--seven { width: 94%; }
.rk-demo-nav__item--eight { width: 63%; }
.rk-demo-nav__item--one { animation: rk-toc-one var(--rk-demo-duration) linear infinite; }
.rk-demo-heading { align-items: flex-end; display: flex; justify-content: space-between; margin-bottom: 12px; }
.rk-demo-heading strong { color: var(--rk-rhino-900); font-family: var(--rk-font-display); font-size: 11px; }
.rk-demo-heading span { color: var(--rk-text-muted); font-family: var(--rk-font-mono); font-size: 7px; }
.rk-demo-chart { border-bottom: 1px solid var(--rk-rhino-200); display: flex; height: 100px; margin-left: 16px; position: relative; }
.rk-demo-chart__axis { bottom: -2px; color: var(--rk-text-muted); display: flex; flex-direction: column; font-family: var(--rk-font-mono); font-size: 6px; justify-content: space-between; left: -18px; position: absolute; top: 0; }
.rk-demo-chart__bars { align-items: flex-end; display: flex; gap: 6px; height: 100%; padding-inline: 8px; width: 100%; }
.rk-demo-chart__bars > span { animation: rk-chart-grow var(--rk-demo-duration) cubic-bezier(.2,.8,.2,1) infinite; background: var(--rk-macaroni); border-radius: 4px 4px 0 0; height: var(--bar-height); transform-origin: bottom; width: 18px; }
.rk-demo-chart__bars > span:nth-child(even) { background: var(--rk-tomato-500); }
.rk-demo-chart__tip { animation: rk-chart-tip var(--rk-demo-duration) ease-in-out infinite; background: var(--rk-rhino-900); border-radius: 5px; color: var(--rk-white); display: flex; flex-direction: column; padding: 5px 7px; position: absolute; right: 15px; top: 1px; }
.rk-demo-chart__tip strong { font-family: var(--rk-font-display); font-size: 10px; }
.rk-demo-chart__tip small { color: rgba(255,255,255,.72); font-size: 6px; }
.rk-demo-diagram { height: 105px; position: relative; }
.rk-demo-diagram__line { animation: rk-diagram-line var(--rk-demo-duration) ease-out infinite; background: var(--rk-muffin); height: 2px; left: 50%; position: absolute; top: 50%; transform: rotate(var(--angle)) scaleX(0); transform-origin: left; width: var(--length); }
.rk-demo-diagram__node { align-items: center; animation: rk-diagram-explode var(--rk-demo-duration) cubic-bezier(.2,.8,.2,1) infinite; background: var(--rk-macaroni-100); border: 1px solid var(--rk-macaroni-300); border-radius: 50%; color: var(--rk-rhino-700); display: flex; font-family: var(--rk-font-mono); font-size: 6px; height: 35px; justify-content: center; left: 50%; position: absolute; top: 50%; transform: translate(-50%,-50%); width: 35px; z-index: 2; }
.rk-demo-diagram__node--core { animation: rk-diagram-core var(--rk-demo-duration) ease-in-out infinite; background: var(--rk-rhino-900); border-color: var(--rk-rhino-900); color: var(--rk-white); height: 44px; width: 44px; z-index: 3; }
.rk-demo-accordion { display: flex; flex-direction: column; gap: 5px; }
.rk-demo-accordion__item,
.rk-demo-accordion__row { border: 1px solid var(--rk-border); border-radius: 5px; }
.rk-demo-accordion__item { background: var(--rk-macaroni-100); border-color: var(--rk-macaroni-300); overflow: hidden; }
.rk-demo-accordion__item .rk-demo-accordion__row { border: 0; border-radius: 0; }
.rk-demo-accordion__row { align-items: center; color: var(--rk-rhino-700); display: flex; font-size: 8px; font-weight: 700; justify-content: space-between; padding: 7px 9px; }
.rk-demo-accordion__row strong { color: var(--rk-tomato); font-size: 11px; line-height: 1; }
.rk-demo-accordion__answer { animation: rk-accordion-open var(--rk-demo-duration) ease-in-out infinite; display: flex; flex-direction: column; gap: 3px; max-height: 0; opacity: 0; overflow: hidden; padding-inline: 9px; }
.rk-demo-accordion__answer span { background: var(--rk-rhino-200); height: 3px; width: 100%; }
.rk-demo-accordion__answer span:nth-child(2) { width: 84%; }
.rk-demo-accordion__answer span:nth-child(3) { width: 62%; }
.rk-transform-caption { color: var(--rk-rhino-700); font-family: var(--rk-font-display); font-size: 14px; font-weight: 700; height: 25px; margin-top: 7px; position: relative; text-align: center; }
.rk-transform-caption span { inset: 0; opacity: 0; position: absolute; }
.rk-transform-caption__first { animation: rk-caption-first var(--rk-demo-duration, 12s) ease-in-out infinite; }
.rk-transform-caption__second { animation: rk-caption-second var(--rk-demo-duration, 12s) ease-in-out infinite; }
.rk-transform-caption__third { animation: rk-caption-third var(--rk-demo-duration, 12s) ease-in-out infinite; }

@keyframes rk-pdf-scroll {
  0%, 9% { transform: translateY(0); }
  19%, 27% { transform: translateY(-116px); }
  37%, 45% { transform: translateY(-232px); }
  55%, 63% { transform: translateY(-348px); }
  73%, 92% { transform: translateY(-464px); }
  93%, 100% { transform: translateY(0); }
}
@keyframes rk-pdf-scrollbar {
  0%, 9% { transform: translateY(0); }
  19%, 27% { transform: translateY(46px); }
  37%, 45% { transform: translateY(92px); }
  55%, 63% { transform: translateY(138px); }
  73%, 92% { transform: translateY(188px); }
  93%, 100% { transform: translateY(0); }
}
@keyframes rk-screen-chart { 0%, 27% { opacity: 1; transform: translateX(0); } 31%, 93% { opacity: 0; transform: translateX(-8px); } 97%, 100% { opacity: 1; transform: translateX(0); } }
@keyframes rk-screen-diagram { 0%, 27% { opacity: 0; transform: translateX(8px); } 31%, 58% { opacity: 1; transform: translateX(0); } 62%, 100% { opacity: 0; transform: translateX(-8px); } }
@keyframes rk-screen-accordion { 0%, 58% { opacity: 0; transform: translateX(8px); } 62%, 93% { opacity: 1; transform: translateX(0); } 97%, 100% { opacity: 0; transform: translateX(-8px); } }
@keyframes rk-page-chart { 0%, 7%, 97%, 100% { transform: translateY(0); } 13%, 27% { transform: translateY(-112px); } 31%, 93% { transform: translateY(-112px); } }
@keyframes rk-page-diagram { 0%, 37%, 63%, 100% { transform: translateY(0); } 43%, 58% { transform: translateY(-112px); } 59%, 62% { transform: translateY(-112px); } }
@keyframes rk-page-accordion { 0%, 68%, 97%, 100% { transform: translateY(0); } 74%, 93% { transform: translateY(-112px); } }
@keyframes rk-toc-one { 0%, 27%, 97%, 100% { background: var(--rk-tomato); } 31%, 93% { background: var(--rk-rhino-700); } }
@keyframes rk-toc-five { 0%, 27%, 62%, 100% { background: var(--rk-rhino-700); } 31%, 58% { background: var(--rk-tomato); } }
@keyframes rk-toc-six { 0%, 58%, 97%, 100% { background: var(--rk-rhino-700); } 62%, 93% { background: var(--rk-tomato); } }
@keyframes rk-chart-grow { 0%, 8%, 31%, 96%, 100% { transform: scaleY(.12); } 15%, 27% { transform: scaleY(1); } }
@keyframes rk-chart-tip { 0%, 14%, 27%, 100% { opacity: 0; transform: translateY(5px); } 18%, 24% { opacity: 1; transform: translateY(0); } }
@keyframes rk-diagram-line { 0%, 43%, 59%, 100% { opacity: 0; transform: rotate(var(--angle)) scaleX(0); } 49%, 57% { opacity: 1; transform: rotate(var(--angle)) scaleX(1); } }
@keyframes rk-diagram-explode { 0%, 43%, 59%, 100% { opacity: 0; transform: translate(-50%,-50%) translate(0,0) scale(.7); } 49%, 57% { opacity: 1; transform: translate(-50%,-50%) translate(var(--node-x),var(--node-y)) scale(1); } }
@keyframes rk-diagram-core { 0%, 43%, 59%, 100% { opacity: 0; transform: translate(-50%,-50%) scale(.7); } 47%, 57% { opacity: 1; transform: translate(-50%,-50%) scale(1); } 53% { box-shadow: 0 0 0 7px rgba(58,69,98,.12); } }
@keyframes rk-accordion-open { 0%, 74%, 93%, 100% { max-height: 0; opacity: 0; padding-bottom: 0; } 80%, 89% { max-height: 32px; opacity: 1; padding-bottom: 8px; } }
@keyframes rk-caption-first { 0%, 28%, 97%, 100% { opacity: 1; transform: translateY(0); } 33%, 93% { opacity: 0; transform: translateY(-4px); } }
@keyframes rk-caption-second { 0%, 29%, 63%, 100% { opacity: 0; transform: translateY(4px); } 34%, 58% { opacity: 1; transform: translateY(0); } }
@keyframes rk-caption-third { 0%, 59%, 97%, 100% { opacity: 0; transform: translateY(4px); } 64%, 92% { opacity: 1; transform: translateY(0); } }
.rk-section-stack { display: flex; flex-direction: column; gap: 40px; }
.rk-heading-action { align-items: flex-end; display: flex; gap: 20px; justify-content: space-between; }
/* Steps / Cards block */
.rk-stepcard { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.rk-stepcard--white, .rk-stepcard--paper, .rk-stepcard--cream { border: 1px solid var(--rk-border); border-radius: var(--rk-radius-lg); padding: 26px; }
.rk-stepcard--white { background: var(--rk-white); }
.rk-stepcard--paper { background: var(--rk-paper); }
.rk-stepcard--cream { background: var(--rk-cream); }
.rk-stepcard__top { align-items: center; display: flex; gap: 12px; }
.rk-stepcard__top--split { justify-content: space-between; }
.rk-stepcard .rk-stepcard__tile--outline { background: var(--rk-white); border: 1px solid var(--rk-border); color: var(--rk-tomato); }
.rk-stepcard--white .rk-stepcard__tile--outline { background: var(--rk-paper); }
.rk-stepcard__number { color: var(--rk-rhino-100); font-family: var(--rk-font-display); font-size: 38px; font-weight: 700; line-height: 1; }
.rk-stepcard__number--corner { font-size: 30px; font-weight: 800; }
.rk-stepcard h3 { font-size: 20px; margin: 0; }
.rk-stepcard p { color: var(--rk-text-muted); font-size: 15.5px; line-height: 1.6; margin: 0; }
.rk-section--rhino .rk-stepcard--none h3 { color: var(--rk-white); }
.rk-section--rhino .rk-stepcard--none p { color: var(--rk-text-on-dark); }
.rk-section--rhino .rk-stepcard--none .rk-stepcard__number { color: rgba(255, 255, 255, .18); }

.rk-steps { display: grid; gap: 40px; grid-template-columns: repeat(3, 1fr); }
.rk-step { display: flex; flex-direction: column; gap: 12px; }
.rk-step__top { align-items: center; display: flex; gap: 12px; }
.rk-step__top .rk-icon-tile { background: var(--rk-white); border: 1px solid var(--rk-border); color: var(--rk-tomato); }
.rk-step__number { color: var(--rk-rhino-100); font-family: var(--rk-font-display); font-size: 40px; font-weight: 700; }
.rk-step p.rk-step__number { color: var(--rk-rhino-100); font-family: var(--rk-font-display); font-size: 40px; font-weight: 700; line-height: 1; }
.rk-step h3 { font-size: 22px; margin: 0; }
.rk-step p { color: var(--rk-text-muted); font-size: 15.5px; line-height: 1.6; margin: 0; }
.rk-pattern-teaser { align-items: center; display: grid; gap: 48px; grid-template-columns: 1fr 1fr; }
.rk-pattern-teaser__copy { align-items: flex-start; display: flex; flex-direction: column; gap: 22px; }
.rk-pattern-teaser__tiles { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.rk-pattern-teaser__tile { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: var(--rk-radius-md); color: var(--rk-white); display: flex; flex-direction: column; font-family: var(--rk-font-display); font-size: 17px; font-weight: 600; gap: 12px; padding: 20px; }
.rk-pattern-teaser__tile { text-decoration: none; }
.rk-pattern-teaser__tile .rk-icon { color: var(--rk-macaroni); }

/* Audience benefits (paired columns: benefit grid + stage panel) */
.rk-audience__groups { align-items: start; display: grid; gap: 48px; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
.rk-audience__groups--pair { grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); }
.rk-audience-group { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.rk-audience-group > .rk-button, .rk-audience-group__button .rk-button { align-self: flex-start; margin-top: 6px; }
.rk-audience-group__eyebrow { align-items: center; color: var(--rk-tomato); display: flex; font-size: 13px; font-weight: 700; gap: 14px; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.rk-audience-group__eyebrow::after { background: currentColor; content: ""; flex: 1; height: 2px; min-width: 24px; opacity: .5; }
.rk-audience-group__title { font-size: clamp(24px, 3vw, 29px); line-height: 1.15; margin: 0 0 6px; }
.rk-audience-group__title em, .rk-audience-panel__callout p em { color: var(--rk-tomato-500); font-style: normal; }
.rk-audience-toggle { background: none; border: 0; color: inherit; cursor: pointer; display: inline; font: inherit; letter-spacing: inherit; margin: 0; padding: 0; text-align: left; transition: color var(--rk-dur) var(--rk-ease-out); }
.rk-audience-toggle:hover { color: var(--rk-tomato-600); }
.rk-audience-group--collapsible .rk-audience-stage__icon, .rk-audience-group--collapsible .rk-audience-item__icon { cursor: pointer; }
.rk-audience-group__hint { align-self: flex-end; color: var(--rk-rhino-300); cursor: pointer; font-family: var(--rk-font-body); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.rk-audience-panel .rk-audience-group__hint { margin-bottom: -10px; }
.rk-audience-group__hint-open { display: none; }
.rk-audience-group--collapsible.is-open .rk-audience-group__hint-open { display: inline; }
.rk-audience-group--collapsible.is-open .rk-audience-group__hint-closed { display: none; }
.rk-audience-collapse { display: grid; grid-template-rows: 1fr; transition: grid-template-rows var(--rk-dur-slow) var(--rk-ease-out), margin var(--rk-dur-slow) var(--rk-ease-out); visibility: visible; }
.rk-audience-collapse__inner { min-height: 0; overflow: hidden; }
.rk-audience-group--collapsible:not(.is-open) .rk-audience-collapse { grid-template-rows: 0fr; transition: grid-template-rows var(--rk-dur-slow) var(--rk-ease-out), margin var(--rk-dur-slow) var(--rk-ease-out), visibility 0s linear var(--rk-dur-slow); visibility: hidden; }
.rk-audience-group--collapsible:not(.is-open) > .rk-audience-collapse { margin-top: -20px; }
.rk-audience-grid { display: grid; gap: 36px 30px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rk-audience-item { display: grid; gap: 8px; }
.rk-audience-item--icon { column-gap: 18px; grid-template-columns: auto minmax(0, 1fr); }
.rk-audience-item--icon .rk-audience-item__icon { grid-row: 1 / span 2; }
.rk-audience-item__icon { background: var(--rk-white); border: 1px solid var(--rk-border); box-shadow: var(--rk-shadow-sm); color: var(--rk-tomato); height: 56px; width: 56px; }
.rk-audience-item :is(h4, h5, h6) { align-self: center; font-size: 20px; line-height: 1.2; margin: 0; }
.rk-audience-item__body p { color: var(--rk-text-muted); font-size: 15.5px; line-height: 1.6; margin: 0; }
.rk-audience-item__body p + p { margin-top: 10px; }
.rk-audience-panel { background: var(--rk-white); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-lg); display: flex; flex-direction: column; gap: 28px; padding: 30px 28px; }
.rk-audience-stages { display: flex; flex-direction: column; gap: 34px; list-style: none; margin: 0; padding: 0; }
.rk-audience-stage { display: flex; gap: 20px; position: relative; }
.rk-audience-stage__icon { background: var(--rk-paper); border: 1px solid var(--rk-border); border-radius: 50%; color: var(--rk-tomato); height: 52px; width: 52px; }
.rk-audience-stage--icon:not(:last-child)::before { border-left: 2px dotted var(--rk-border-strong); bottom: -30px; content: ""; left: 25px; position: absolute; top: 58px; }
.rk-audience-stage__content { display: grid; flex: 1; gap: 8px 26px; grid-template-columns: minmax(120px, 160px) minmax(0, 1fr); min-width: 0; }
.rk-audience-stage__title { font-size: 18.5px; line-height: 1.25; margin: 0; }
.rk-audience-stage__body p { color: var(--rk-text-muted); font-size: 15px; line-height: 1.6; margin: 0; }
.rk-audience-stage__body p + p { margin-top: 12px; }
.rk-audience-panel__callout { align-items: center; border-top: 1px solid var(--rk-border); display: flex; gap: 16px; padding-top: 26px; }
.rk-audience-panel__callout-icon { background: var(--rk-paper); border: 1px solid var(--rk-border); border-radius: 50%; color: var(--rk-tomato); height: 52px; width: 52px; }
.rk-audience-panel__callout p { color: var(--rk-text-strong); font-family: var(--rk-font-display); font-size: clamp(20px, 2.4vw, 24px); font-weight: 700; line-height: 1.3; margin: 0; }
.rk-audience-process { align-items: flex-start; display: flex; gap: 10px; list-style: none; margin: 0; padding: 0 4px; }
.rk-audience-process__step { display: flex; flex: 1; gap: 10px; min-width: 0; }
.rk-audience-process__arrow { color: var(--rk-tomato-500); display: flex; flex: none; padding-top: 17px; }
.rk-audience-process__step-body { align-items: center; display: flex; flex: 1; flex-direction: column; gap: 10px; min-width: 0; text-align: center; }
.rk-audience-process__tile { background: var(--rk-white); border: 1px solid var(--rk-border); box-shadow: var(--rk-shadow-sm); color: var(--rk-tomato); height: 54px; width: 54px; }
.rk-audience-process__label { color: var(--rk-rhino-700); font-size: 13.5px; font-weight: 700; line-height: 1.35; }

@media (max-width: 1280px) and (min-width: 1081px) {
  .rk-audience__groups--pair .rk-audience-stage__content { grid-template-columns: 1fr; }
}

@media (max-width: 1080px) {
  .rk-audience__groups, .rk-audience__groups--pair { gap: 56px; grid-template-columns: 1fr; }
}

/* Archive headers and filters */
.rk-page-hero { border-bottom: 1px solid var(--rk-border); padding-block: 64px 56px; }
.rk-page-hero--cream { background: var(--rk-cream); }
.rk-page-hero--center { text-align: center; }
.rk-page-hero__inner { align-items: flex-start; display: flex; flex-direction: column; gap: 18px; }
.rk-page-hero--center .rk-page-hero__inner { align-items: center; }
.rk-page-hero h1 { font-size: clamp(44px, 6vw, 56px); font-weight: 800; letter-spacing: -.03em; line-height: 1.03; margin: 0; max-width: 880px; }
.rk-page-hero p { color: var(--rk-text-muted); font-size: 19px; line-height: 1.55; margin: 0; max-width: 680px; }
.rk-archive-body { padding-block: 40px 88px; }
.rk-archive-stack { display: flex; flex-direction: column; gap: 32px; }
.rk-pattern-archive .rk-page-hero { border: 0; padding-bottom: 48px; }
.rk-pattern-archive .rk-archive-body { padding-top: 0; }

/* Project profile index (Our Work) */
.rk-profile-card { background: var(--rk-white); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-lg); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.rk-profile-card__media { display: block; }
.rk-profile-card__media { background: var(--rk-paper); border-bottom: 1px solid var(--rk-border); }
.rk-profile-card__media img { aspect-ratio: 1200 / 630; display: block; height: auto; object-fit: contain; width: 100%; }
a.rk-profile-card__media { transition: opacity var(--rk-dur) var(--rk-ease-out); }
a.rk-profile-card__media:hover { opacity: .92; }
.rk-profile-card__body { align-items: flex-start; display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 20px 22px 22px; }
.rk-profile-card__body h2 { font-size: 22px; line-height: 1.15; margin: 0; }
.rk-profile-card__summary p { color: var(--rk-text-muted); font-size: 15px; line-height: 1.55; margin: 0; }
.rk-profile-card__summary p + p { margin-top: 8px; }
.rk-profile-card .rk-button { margin-top: auto; }
.rk-profile-card__summary { margin-bottom: 8px; }

/* Project profile */
.rk-back-link { align-items: center; color: var(--rk-text-muted); display: inline-flex; font-size: 15px; font-weight: 600; gap: 7px; margin-top: 28px; text-decoration: none; }
.rk-project-hero { padding-block: 32px 56px; }
.rk-project-hero__inner { align-items: flex-start; display: flex; flex-direction: column; gap: 22px; }
.rk-project-hero__client { color: var(--rk-text-muted); font-size: 15px; font-weight: 700; }
.rk-project-hero h1 { font-size: clamp(46px, 7vw, 56px); font-weight: 800; letter-spacing: -.03em; line-height: 1.02; margin: 0; max-width: 860px; }
.rk-project-hero__intro { color: var(--rk-text-muted); font-size: 20px; line-height: 1.55; margin: 0; max-width: 680px; }
.rk-before-after { align-items: stretch; display: grid; gap: 28px; grid-template-columns: 1fr auto 1fr; }
.rk-before-after__panel { display: flex; flex-direction: column; gap: 12px; }
.rk-before-after__label { color: var(--rk-text-muted); font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.rk-before-after__panel:last-child .rk-before-after__label { color: var(--rk-tomato); }
.rk-before-after__device { background: var(--rk-white); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-sm); display: flex; flex-direction: column; gap: 9px; min-height: 180px; padding: 22px; }
.rk-before-after__device--after { border-radius: var(--rk-radius-md); box-shadow: var(--rk-shadow-md); overflow: hidden; padding: 0; }
.rk-before-after__device--after .rk-browser-hero { padding: 24px; }
.rk-before-after__arrow { align-items: center; color: var(--rk-tomato); display: flex; }
.rk-before-after__media { background: var(--rk-white); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-md); box-shadow: var(--rk-shadow-md); display: block; height: auto; width: 100%; }
.rk-before-after__placeholder { align-items: center; background: var(--rk-white); border: 1px dashed var(--rk-border-strong); border-radius: var(--rk-radius-md); color: var(--rk-text-muted); display: flex; font-size: 14px; font-weight: 600; justify-content: center; min-height: 220px; }
.rk-project-content-grid { align-items: start; display: grid; gap: 56px; grid-template-columns: 1fr 1.2fr; }
.rk-stats { display: flex; flex-direction: column; gap: 32px; }
.rk-stat { display: flex; flex-direction: column; gap: 4px; }
.rk-stat strong { color: var(--rk-tomato); font-family: var(--rk-font-display); font-size: 42px; letter-spacing: -.02em; }
.rk-stat span { color: var(--rk-text-muted); font-size: 15px; }
.rk-prose { color: var(--rk-text-body); font-size: 18px; line-height: 1.65; }
.rk-prose > *:first-child { margin-top: 0; }
.rk-prose > *:last-child { margin-bottom: 0; }
.rk-prose h2 { font-size: 32px; }
.rk-prose h3 { font-size: 25px; }
.rk-prose a { text-decoration-color: var(--rk-macaroni); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.rk-prose .wp-block-image { margin: 34px 0; }
.rk-prose .wp-block-image img { border: 1px solid var(--rk-border); border-radius: var(--rk-radius-md); box-shadow: var(--rk-shadow-md); height: auto; max-width: 100%; }
.rk-prose .wp-block-video { margin: 34px 0; }
.rk-prose .wp-block-video video { border: 1px solid var(--rk-border); border-radius: var(--rk-radius-md); box-shadow: var(--rk-shadow-md); display: block; width: 100%; }
.rk-prose figcaption { color: var(--rk-text-muted); font-size: 14px; line-height: 1.5; margin-top: 12px; text-align: center; }
.rk-prose .wp-block-gallery { display: grid; gap: 16px; grid-template-columns: repeat(2, 1fr); margin: 34px 0; }
.rk-prose .wp-block-gallery.columns-3 { grid-template-columns: repeat(3, 1fr); }
.rk-prose .wp-block-gallery .wp-block-image { margin: 0; }
.rk-prose .wp-block-gallery .wp-block-gallery-caption { grid-column: 1 / -1; margin-top: 0; }
.rk-prose .wp-block-quote { border-left: 4px solid var(--rk-tomato); margin: 0 0 30px; padding: 6px 0 6px 24px; }
.rk-prose .wp-block-quote p { color: var(--rk-text-strong); font-family: var(--rk-font-display); font-size: 21px; font-style: italic; line-height: 1.5; margin: 0 0 10px; }
.rk-prose .wp-block-quote cite { color: var(--rk-text-muted); display: block; font-size: 15px; font-style: normal; }
.rk-prose .wp-block-table { margin: 34px 0; overflow-x: auto; }
.rk-prose .wp-block-table table { border-collapse: collapse; font-size: 16px; width: 100%; }
.rk-prose .wp-block-table th, .rk-prose .wp-block-table td { border: 1px solid var(--rk-border); padding: 12px 16px; text-align: left; vertical-align: top; }
.rk-prose .wp-block-table th { background: var(--rk-rhino-700); color: var(--rk-white); font-family: var(--rk-font-display); font-weight: 600; }
.rk-prose .wp-block-buttons { margin-top: 28px; }
/* Ordered-list numbers as tomato digits in cream circles. ::marker cannot
   take a background, so the marker is a counter in ::before. */
ol.wp-block-list { counter-reset: rk-li; list-style: none; padding-left: .4em; }
ol.wp-block-list > li { counter-increment: rk-li; padding-left: 2.2em; position: relative; }
ol.wp-block-list > li + li { margin-top: .5em; }
ol.wp-block-list > li::before {
  content: counter(rk-li);
  color: var(--rk-tomato);
  background: var(--rk-cream);
  width: 1.5em;
  height: 1.5em;
  line-height: 1.5em;
  text-align: center;
  border-radius: 50%;
  font-weight: 700;
  position: absolute;
  left: 0;
  top: .1em;
}

/* Floated callout box — the "Floated callout box" block, or add "rk-callout-box"
   to any block via Advanced → Additional CSS class(es). Following text wraps
   around it. Width via --rk-callout-width/-frac (the block sets these inline).
   Variants: rk-callout-box--macaroni, rk-callout-box--rhino (dark), --left. */
.rk-callout-box { background: var(--rk-cream); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-md); clear: right; float: right; margin: 6px 0 22px 30px; padding: 24px 26px; position: relative; width: var(--rk-callout-width, 50%); z-index: 1; }
.rk-callout-box > :first-child { margin-top: 0; }
.rk-callout-box > :last-child { margin-bottom: 0; }
.rk-callout-box--macaroni { background: var(--rk-macaroni-100); border-color: var(--rk-macaroni-300); }
.rk-callout-box--rhino { background: var(--rk-rhino-700); border-color: var(--rk-rhino-700); color: var(--rk-text-on-dark); }
.rk-callout-box--rhino :is(h1, h2, h3, h4, h5, h6) { color: var(--rk-macaroni); }
.rk-callout-box--rhino a { color: var(--rk-macaroni); text-decoration-color: var(--rk-macaroni); }
.rk-callout-box--rhino a:hover { color: var(--rk-macaroni-300); }
.rk-prose .rk-callout-box--rhino a { text-decoration-color: var(--rk-macaroni); }
.rk-callout-box--left { clear: left; float: left; margin: 6px 30px 22px 0; }
/* Inside the centered page column, keep the box aligned to the column edge. */
.rk-entry-content > .rk-callout-box { margin-left: 30px; margin-right: max(0px, calc((100% - var(--rk-container-narrow)) / 2)); width: calc(var(--rk-container-narrow) * var(--rk-callout-frac, 0.5)); }
.rk-entry-content > .rk-callout-box--left { margin-left: max(0px, calc((100% - var(--rk-container-narrow)) / 2)); margin-right: 30px; }
/* Content-width variant: in normal flow, spanning the text column. */
.rk-callout-box--content, .rk-entry-content > .rk-callout-box--content { clear: both; float: none; margin: 28px auto; width: auto; }
/* Full-width variant: the color band runs edge to edge; the content inside
   stays constrained to the text column. */
.rk-callout-box--full { border: 0; border-radius: 0; clear: both; float: none; margin: 34px 0; padding: 34px 24px; width: auto; }
.rk-entry-content > .rk-callout-box--full { margin-left: 0; margin-right: 0; max-width: none; width: auto; }
.rk-callout-box--full > * { margin-left: auto; margin-right: auto; max-width: var(--rk-container-narrow); }
.rk-entry-content::after, .rk-prose::after { clear: both; content: ""; display: block; }

.rk-accordion { background: var(--rk-white); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-md); margin-top: 28px; overflow: hidden; }
.rk-accordion__item + .rk-accordion__item { border-top: 1px solid var(--rk-border); }
.rk-accordion__button { align-items: center; background: none; border: 0; color: var(--rk-text-strong); cursor: pointer; display: flex; font-family: var(--rk-font-display); font-size: 19px; font-weight: 600; gap: 16px; justify-content: space-between; padding: 20px 24px; text-align: left; width: 100%; }
.rk-accordion__button .rk-icon { color: var(--rk-tomato); flex: none; transition: transform var(--rk-dur) var(--rk-ease-out); }
.rk-accordion__button[aria-expanded="true"] .rk-icon { transform: rotate(45deg); }
.rk-accordion__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--rk-dur-slow) var(--rk-ease-out); }
.rk-accordion__panel.is-open { grid-template-rows: 1fr; }
.rk-accordion__panel > div { overflow: hidden; }
.rk-accordion__panel p { color: var(--rk-text-muted); font-size: 16px; line-height: 1.62; margin: 0; padding: 0 24px 22px; }

/* Offerings */
.rk-offering-hero { background: var(--rk-rhino-700); color: var(--rk-white); padding-block: 72px 80px; }
.rk-offering-hero__grid { align-items: center; display: grid; gap: 48px; grid-template-columns: 1.1fr .9fr; }
.rk-offering-hero__copy { align-items: flex-start; display: flex; flex-direction: column; gap: 22px; }
.rk-offering-hero .rk-badge { font-size: 12px; padding: 5px 10px; }
.rk-offering-hero h1 { color: var(--rk-white); font-size: clamp(48px, 6vw, 58px); font-weight: 800; letter-spacing: -.03em; line-height: 1.02; margin: 0; }
.rk-offering-hero p { color: var(--rk-text-on-dark); font-size: 20px; line-height: 1.55; margin: 0; max-width: 560px; }
.rk-offering-hero p.rk-badge { color: #1f6b41; font-size: 12px; line-height: 1; }
.rk-offering-hero p.rk-badge--soon { color: var(--rk-macaroni-600); }
.rk-offering-hero p.rk-eyebrow { color: var(--rk-macaroni-500); font-size: 13px; line-height: 1; }
.rk-value-list { display: flex; flex-direction: column; gap: 12px; }
.rk-value-row { align-items: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: var(--rk-radius-md); display: flex; font-size: 16.5px; font-weight: 600; gap: 14px; padding: 16px 18px; }
.rk-value-row p { color: inherit; font-size: 16.5px; font-weight: 600; line-height: 1.4; margin: 0; }
.rk-value-row .rk-icon { color: var(--rk-macaroni); flex: none; }
.rk-process-card { background: var(--rk-white); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-lg); display: flex; flex-direction: column; gap: 12px; padding: 24px; }
.rk-process-card__top { align-items: center; display: flex; justify-content: space-between; }
.rk-process-card__number { color: var(--rk-rhino-100); font-family: var(--rk-font-display); font-size: 30px; font-weight: 800; }
.rk-process-card p.rk-process-card__number { color: var(--rk-rhino-100); font-family: var(--rk-font-display); font-size: 30px; font-weight: 800; line-height: 1; }
.rk-process-card h3 { font-size: 19px; margin: 0; }
.rk-process-card p { color: var(--rk-text-muted); font-size: 15px; line-height: 1.55; margin: 0; }

/* About */
.rk-about-story { display: flex; flex-direction: column; gap: 24px; }
.rk-about-story > span { color: var(--rk-tomato); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rk-about-story p { font-size: 19px; line-height: 1.7; margin: 0; }
.rk-value-card { background: var(--rk-paper); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-lg); display: flex; flex-direction: column; gap: 14px; padding: 26px; }
.rk-value-card h3 { font-size: 20px; margin: 0; }
.rk-value-card p { color: var(--rk-text-muted); font-size: 15.5px; line-height: 1.6; margin: 0; }
.rk-stat-strip { display: grid; gap: 24px; grid-template-columns: repeat(3, 1fr); }
.rk-stat-strip__item { border-top: 3px solid var(--rk-tomato); display: flex; flex-direction: column; gap: 6px; padding-top: 8px; }
.rk-stat-strip__item strong { color: var(--rk-rhino-900); font-family: var(--rk-font-display); font-size: 46px; letter-spacing: -.02em; }
.rk-stat-strip__item span { color: var(--rk-text-muted); font-size: 16px; }
.rk-stat-strip__item p { margin: 0; }
.rk-story-label { color: var(--rk-tomato); font-size: 13px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* Insights */
.rk-insights-layout { align-items: start; display: grid; gap: 56px; grid-template-columns: 1fr 240px; }
.rk-post-list { display: flex; flex-direction: column; }
.rk-post-row { color: inherit; display: flex; flex-direction: column; gap: 9px; padding-block: 26px; text-decoration: none; }
.rk-post-row + .rk-post-row { border-top: 1px solid var(--rk-border); }
.rk-post-row__meta { align-items: center; color: var(--rk-text-muted); display: flex; flex-wrap: wrap; font-size: 13px; gap: 10px; }
.rk-post-row__meta strong { color: var(--rk-tomato); letter-spacing: .06em; text-transform: uppercase; }
.rk-post-row h2 { font-size: 27px; line-height: 1.12; margin: 0; max-width: 640px; transition: color var(--rk-dur); }
.rk-post-row:hover h2 { color: var(--rk-tomato-600); }
.rk-post-row__dek { color: var(--rk-text-muted); font-size: 16.5px; line-height: 1.6; margin: 0; max-width: 620px; }
.rk-post-row__more { align-items: center; color: var(--rk-tomato-600); display: inline-flex; font-size: 14.5px; font-weight: 700; gap: 6px; margin-top: 2px; }
.rk-post-row__more .rk-icon { transition: transform var(--rk-dur); }
.rk-post-row:hover .rk-post-row__more .rk-icon { transform: translateX(3px); }
.rk-insights-sidebar { display: flex; flex-direction: column; gap: 28px; position: sticky; top: 104px; }
.rk-topic-list { display: flex; flex-direction: column; }
.rk-topic-list h2 { color: var(--rk-rhino-300); font-family: var(--rk-font-body); font-size: 12px; letter-spacing: .08em; margin: 0 0 8px; text-transform: uppercase; }
.rk-topic-list a { border-bottom: 1px solid var(--rk-border); color: var(--rk-text-body); font-size: 15px; font-weight: 500; padding: 7px 0; text-decoration: none; }
.rk-topic-list a:hover, .rk-topic-list a.is-active { color: var(--rk-tomato-600); font-weight: 700; }
.rk-subscribe-card { background: var(--rk-rhino-700); border-radius: var(--rk-radius-md); display: flex; flex-direction: column; gap: 10px; padding: 20px 18px; }
.rk-subscribe-card h2 { color: var(--rk-white); font-size: 17px; margin: 0; }
.rk-subscribe-card p { color: var(--rk-text-on-dark); font-size: 13.5px; line-height: 1.5; margin: 0; opacity: .85; }

/* Generic pages and posts */
.rk-entry { padding-block: 64px 88px; }
.rk-entry-subtitle { color: var(--rk-text-muted); font-family: var(--rk-font-display); font-size: 28px; font-weight: 400; line-height: 1.15; margin: 0.2em 0 .5em 0; max-width: 680px; }
.rk-entry-header { margin-bottom: 40px; }
.rk-entry-header h1 { font-size: clamp(42px, 6vw, 56px); line-height: 1.04; margin: 12px 0 0; }
.rk-entry-meta { color: var(--rk-text-muted); font-size: 14px; }
.rk-entry-content { font-size: 18px; line-height: 1.7; }
.rk-entry-content > * { max-width: var(--rk-container-narrow); margin-left: auto; margin-right: auto; }
.rk-entry-content > .alignwide { max-width: var(--rk-container); }
.rk-entry-content > .alignfull { max-width: none; }
/* Report Kitchen section blocks placed inside article content break out to
   full width — matching how the editor canvas previews them. Their own
   .rk-container re-centers the content. */
.rk-entry-content > .rk-section,
.rk-entry-content > .rk-page-hero,
.rk-entry-content > .rk-offering-hero,
.rk-entry-content > .rk-home-hero { max-width: none; }
/* Prose heading rhythm applies to top-level article headings only — child
   combinator keeps it out of section blocks embedded in the content. */
.rk-entry-content > h2 { font-size: 36px; margin-top: 2em; }
.rk-entry-content > h3 { font-size: 27px; margin-top: 1.8em; }
.rk-callout-box :is(h2, h3, h4) { font-size: 23px; }
.rk-pagination { margin-top: 40px; }
.rk-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.rk-pagination a, .rk-pagination span { border: 1px solid var(--rk-border-strong); border-radius: var(--rk-radius-sm); padding: 8px 12px; text-decoration: none; }
.rk-pagination .current { background: var(--rk-rhino-700); color: var(--rk-white); }
.rk-empty { padding-block: 80px; text-align: center; }

/* Contact */
.rk-contact-layout { align-items: start; display: grid; gap: 64px; grid-template-columns: .8fr 1.2fr; }
.rk-contact-copy h1 { font-size: clamp(44px, 6vw, 56px); margin: 16px 0; }
.rk-contact-copy p { color: var(--rk-text-muted); font-size: 19px; line-height: 1.65; }
.rk-contact-copy p.rk-eyebrow { color: var(--rk-tomato); font-size: 13px; line-height: 1; }
.rk-contact-details { display: flex; flex-direction: column; gap: 10px; margin-top: 28px; }
.rk-contact-details a { color: var(--rk-rhino-700); font-weight: 700; }
.rk-contact-form { background: var(--rk-white); border: 1px solid var(--rk-border); border-radius: var(--rk-radius-lg); display: grid; gap: 20px; padding: 32px; }
.rk-form-field { display: flex; flex-direction: column; gap: 7px; }
.rk-form-field label { color: var(--rk-text-strong); font-size: 14px; font-weight: 600; }
.rk-form-field input, .rk-form-field textarea {
  background: var(--rk-white);
  border: 1.5px solid var(--rk-border-strong);
  border-radius: var(--rk-radius-sm);
  color: var(--rk-text-body);
  font-size: 16px;
  padding: 13px 16px;
  width: 100%;
}
.rk-form-field input:focus, .rk-form-field textarea:focus { border-color: var(--rk-muffin); box-shadow: var(--rk-ring); outline: 0; }
.rk-form-honeypot { left: -9999px; position: absolute; }
.rk-form-notice { border-radius: var(--rk-radius-sm); font-weight: 600; padding: 12px 16px; }
.rk-form-notice--success { background: rgba(46,139,87,.12); color: #1f6b41; }
.rk-form-notice--error { background: var(--rk-tomato-100); color: var(--rk-tomato-700); }

@media (max-width: 1180px) {
  .rk-site-header__inner { padding-inline: 24px; }
  .rk-nav-link { padding-inline: 9px; }
  .rk-primary-nav { gap: 0; }
  .rk-primary-nav > .rk-button { margin-left: 6px; }
  .rk-pattern-link { margin-left: 2px; padding-inline: 10px; }
}

@media (max-width: 1080px) {
  .rk-services-toggle::after { display: none; }
  .rk-menu-toggle { display: inline-flex; }
  .rk-primary-nav {
    align-items: stretch;
    background: var(--rk-paper);
    border-bottom: 1px solid var(--rk-border);
    box-shadow: var(--rk-shadow-lg);
    display: none;
    flex-direction: column;
    left: 0;
    max-height: calc(100vh - 70px);
    overflow-y: auto;
    padding: 20px 24px 28px;
    position: absolute;
    right: 0;
    top: 100%;
  }
  .rk-primary-nav.is-open { display: flex; }
  .rk-nav-link, .rk-pattern-link { border-radius: var(--rk-radius-sm); justify-content: space-between; margin: 0; padding: 12px; }
  .rk-primary-nav > .rk-button { margin: 12px 0 0; }
  .rk-services-menu { display: contents; }
  .rk-mega-menu { border-radius: var(--rk-radius-md); box-shadow: none; left: auto; margin: 0 0 10px; max-width: none; padding: 12px; position: static; right: auto; transform: none; width: auto; }
  .rk-mega-menu__grid { grid-template-columns: 1fr; }
  .rk-mega-menu__head { display: none; }
}

@media (max-width: 900px) {
  .rk-grid--3, .rk-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rk-feature-card { gap: 16px; grid-template-columns: 132px minmax(0, 1fr); }
  .rk-feature-card__illustration { background-size: auto 108px; min-height: 180px; }
  .rk-home-hero__grid, .rk-offering-hero__grid { grid-template-columns: 1fr; }
  .rk-home-hero__device { margin-inline: auto; max-width: 560px; width: 100%; }
  .rk-pattern-teaser { grid-template-columns: 1fr; }
  .rk-site-footer__grid { grid-template-columns: 1.5fr repeat(2, 1fr); }
  .rk-site-footer__brand { grid-row: span 2; }
  .rk-project-content-grid { gap: 40px; grid-template-columns: .7fr 1.3fr; }
  .rk-insights-layout { gap: 40px; grid-template-columns: 1fr 210px; }
  .rk-contact-layout { gap: 40px; }
}

@media (max-width: 700px) {
  :root { --rk-section-y: 4rem; }
  .admin-bar .rk-site-header { top: 46px; }
  .rk-container { padding-inline: 24px; }
  .rk-site-header__inner { padding: 13px 20px; }
  .rk-logo img { height: 34px; }
  .rk-section, .rk-archive-body { padding-block: 64px; }
  .rk-home-hero { padding-block: 52px 64px; }
  .rk-grid--2, .rk-grid--3, .rk-grid--4, .rk-steps, .rk-stat-strip { grid-template-columns: 1fr; }
  .rk-callout-box, .rk-entry-content > .rk-callout-box { float: none; margin-left: 0; margin-right: 0; width: 100%; }
  .rk-audience-grid { grid-template-columns: 1fr; }
  .rk-audience-stage__content { grid-template-columns: 1fr; }
  .rk-audience-panel { padding: 24px 20px; }
  .rk-audience-panel__callout { align-items: flex-start; }
  .rk-audience-process { display: grid; gap: 20px 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rk-audience-process__arrow { display: none; }
  .rk-feature-card { gap: 22px; grid-template-columns: 176px minmax(0, 1fr); }
  .rk-feature-card__illustration { background-size: auto 134px; min-height: 190px; }
  .rk-heading-action { align-items: flex-start; flex-direction: column; }
  .rk-transform-device { height: 330px; transform: scale(.92); transform-origin: center; }
  .rk-pattern-teaser__tiles { grid-template-columns: 1fr 1fr; }
  .rk-site-footer { padding-top: 52px; }
  .rk-site-footer__grid { grid-template-columns: 1fr 1fr; }
  .rk-site-footer__brand { grid-column: 1/-1; grid-row: auto; }
  .rk-site-footer__base { flex-direction: column; gap: 8px; }
  .rk-before-after { grid-template-columns: 1fr; }
  .rk-before-after__arrow { justify-content: center; transform: rotate(90deg); }
  .rk-project-content-grid, .rk-insights-layout, .rk-contact-layout { grid-template-columns: 1fr; }
  .rk-insights-sidebar { position: static; }
  .rk-callout { padding: 40px 28px; }
  .rk-callout > img { width: 160px; }
  .rk-contact-form { padding: 24px; }
}

@media (max-width: 480px) {
  .rk-container { padding-inline: 20px; }
  .rk-home-hero h1 { font-size: 44px; }
  .rk-feature-card { gap: 14px; grid-template-columns: 105px minmax(0, 1fr); padding: 14px; }
  .rk-feature-card__illustration { background-size: auto 88px; min-height: 180px; }
  .rk-transform-device { height: 300px; margin-inline: -26px; transform: scale(.78); width: calc(100% + 52px); }
  .rk-pattern-teaser__tiles, .rk-site-footer__grid { grid-template-columns: 1fr; }
  .rk-footer-column { border-top: 1px solid rgba(255,255,255,.12); padding-top: 24px; }
  .rk-button-row { align-items: stretch; flex-direction: column; width: 100%; }
  .rk-button-row .rk-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .rk-transform-device * { animation: none !important; }
  .rk-transform-caption span { animation: none !important; }
  .rk-pdf-pages { transform: translateY(-116px); }
  .rk-pdf-scrollbar span { transform: translateY(46px); }
  .rk-demo-screen--chart { opacity: 1; transform: none; }
  .rk-demo-screen--diagram,
  .rk-demo-screen--accordion { opacity: 0; }
  .rk-demo-page--chart { transform: translateY(-112px); }
  .rk-demo-nav__item--one { background: var(--rk-tomato); opacity: 1; }
  .rk-demo-chart__bars > span { transform: scaleY(1); }
  .rk-demo-chart__tip { opacity: 1; transform: none; }
  .rk-transform-caption__first { opacity: 1; transform: none; }
}
