/* RouxLub · interior pages — page hero, premium prose (migrated Kadence content), QR link-tree.
   The migrated content was Gutenberg blocks that lost their CSS; this gives them a branded,
   premium treatment (navy/red, Montserrat/Source Sans). */

/* ============================================================
   Page hero — banded header for every interior page
   ============================================================ */
.rx-pagehead {
  position: relative;
  background:
    linear-gradient(135deg, #eef2f7, #e2e8f1);
  background-color: #eef2f7;
  border-bottom: 4px solid var(--rx-red);
  padding: clamp(2.2rem, 5vw, 3.6rem) 0 clamp(1.8rem, 4vw, 3rem);
  overflow: hidden;
}
/* faint derrick-grid texture from the brand, top-right */
.rx-pagehead::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 2px, transparent 2px 14px);
  opacity: .5;
}
.rx-pagehead > .rx-container { position: relative; z-index: 1; }
.rx-pagehead .rx-breadcrumbs { color: var(--rx-ink-soft); margin-bottom: .9rem; }
.rx-pagehead .rx-breadcrumbs a { color: var(--rx-ink-soft); }
.rx-pagehead .rx-breadcrumbs a:hover { color: var(--rx-red); }
.rx-pagehead .rx-breadcrumbs span[aria-current] { color: var(--rx-navy); }
.rx-pagehead .rx-breadcrumbs__sep { color: var(--rx-ink-muted); }
.rx-pagehead__title {
  color: var(--rx-navy); font-family: var(--rx-font-head); font-weight: var(--rx-fw-bold);
  font-size: clamp(2rem, 5.2vw, 3.1rem); line-height: 1.08; letter-spacing: -.01em;
  margin: 0; text-wrap: balance;
}
.rx-pagehead__title::after {
  content: ""; display: block; width: 64px; height: 4px; margin-top: 1rem;
  background: var(--rx-red); border-radius: 2px;
}

/* tighten the section under the hero */
.rx-page__inner { padding-top: clamp(2rem, 4vw, 3rem); }

/* ============================================================
   Premium prose — migrated content gets real hierarchy & rhythm
   ============================================================ */
.rx-page__inner .rx-prose { max-width: none; font-size: 1.06rem; color: var(--rx-ink); }
.rx-page__inner .rx-prose > * { max-width: 78ch; }           /* readable measure for text… */
.rx-page__inner .rx-prose > figure,
.rx-page__inner .rx-prose > .wp-block-image,
.rx-page__inner .rx-prose > .wp-block-table,
.rx-page__inner .rx-prose > table,
.rx-page__inner .rx-prose > .wp-block-columns { max-width: none; }  /* …full width for media/tables */

.rx-page__inner .rx-prose h2 {
  font-family: var(--rx-font-head); font-weight: var(--rx-fw-bold);
  font-size: clamp(1.5rem, 3vw, 2rem); color: var(--rx-navy);
  margin: clamp(2.2rem, 4vw, 3rem) 0 1rem; padding-left: 1rem;
  border-left: 5px solid var(--rx-red); line-height: 1.2;
}
.rx-page__inner .rx-prose h3 {
  font-family: var(--rx-font-head); font-weight: var(--rx-fw-semibold);
  font-size: clamp(1.2rem, 2.2vw, 1.45rem); color: var(--rx-blue-700);
  margin: 1.8rem 0 .6rem;
}
.rx-page__inner .rx-prose p { line-height: 1.75; margin: 0 0 1.1rem; color: var(--rx-ink-soft); }
.rx-page__inner .rx-prose strong { color: var(--rx-ink); }
.rx-page__inner .rx-prose a { color: var(--rx-link); border-bottom: 1px solid rgba(0, 63, 180, .25); }
.rx-page__inner .rx-prose a:hover { color: var(--rx-red); border-bottom-color: var(--rx-red); }

/* lists with branded markers */
.rx-page__inner .rx-prose ul { list-style: none; padding-left: 0; margin: 0 0 1.2rem; }
.rx-page__inner .rx-prose ul > li {
  position: relative; padding-left: 1.6rem; margin: 0 0 .6rem; line-height: 1.7; color: var(--rx-ink-soft);
}
.rx-page__inner .rx-prose ul > li::before {
  content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 8px;
  background: var(--rx-red); border-radius: 2px; transform: rotate(45deg);
}
.rx-page__inner .rx-prose ol { padding-left: 1.3rem; margin: 0 0 1.2rem; }
.rx-page__inner .rx-prose ol > li { margin: 0 0 .6rem; line-height: 1.7; color: var(--rx-ink-soft); }
.rx-page__inner .rx-prose ol > li::marker { color: var(--rx-red); font-family: var(--rx-font-head); font-weight: 700; }

/* technical spec tables */
.rx-page__inner .rx-prose figure.wp-block-table { margin: 1.6rem 0; overflow-x: auto; }
.rx-page__inner .rx-prose table {
  width: 100%; border-collapse: collapse; font-size: .95rem;
  box-shadow: var(--rx-shadow-sm); border-radius: var(--rx-radius-lg); overflow: hidden;
}
.rx-page__inner .rx-prose thead th,
.rx-page__inner .rx-prose table tr:first-child th {
  background: var(--rx-navy); color: #fff; font-family: var(--rx-font-head); font-weight: var(--rx-fw-semibold);
  text-align: left; padding: .8rem 1rem; letter-spacing: .01em;
}
.rx-page__inner .rx-prose td, .rx-page__inner .rx-prose th {
  border: 1px solid var(--rx-border); padding: .7rem 1rem; vertical-align: top;
}
.rx-page__inner .rx-prose tbody tr:nth-child(even) { background: var(--rx-grey-100); }
.rx-page__inner .rx-prose tbody tr:hover { background: #eef3fb; }

/* images & figures */
.rx-page__inner .rx-prose img { border-radius: var(--rx-radius-lg); }
.rx-page__inner .rx-prose figure { margin: 1.8rem 0; }
.rx-page__inner .rx-prose figure img { box-shadow: var(--rx-shadow-md); border: 1px solid var(--rx-border); }
.rx-page__inner .rx-prose figcaption { margin-top: .5rem; font-size: .85rem; color: var(--rx-ink-muted); text-align: center; }

/* blockquotes (reviews) */
.rx-page__inner .rx-prose blockquote {
  margin: 1.6rem 0; padding: 1.2rem 1.6rem; background: var(--rx-grey-100);
  border-left: 5px solid var(--rx-red); border-radius: 0 var(--rx-radius) var(--rx-radius) 0;
  font-size: 1.1rem; line-height: 1.6; color: var(--rx-ink); font-style: italic;
}
.rx-page__inner .rx-prose blockquote p:last-child { margin-bottom: 0; }
.rx-page__inner .rx-prose blockquote cite { display: block; margin-top: .6rem; font-style: normal; font-weight: 600; color: var(--rx-navy); font-size: .9rem; }

/* migrated buttons → branded buttons */
.rx-page__inner .rx-prose .wp-block-button { margin: 1.2rem 0; }
.rx-page__inner .rx-prose .wp-block-button__link,
.rx-page__inner .rx-prose a.button {
  display: inline-flex; align-items: center; gap: .5rem; border: 0; cursor: pointer;
  background: var(--rx-red); color: #fff !important; border-bottom: 0;
  font-family: var(--rx-font-head); font-weight: var(--rx-fw-semibold); font-size: 1rem;
  padding: .8rem 1.6rem; border-radius: var(--rx-radius);
  transition: background .2s var(--rx-ease), transform .2s var(--rx-ease);
}
.rx-page__inner .rx-prose .wp-block-button__link:hover,
.rx-page__inner .rx-prose a.button:hover { background: var(--rx-red-dark); color: #fff !important; transform: translateY(-2px); }

/* separators & columns */
.rx-page__inner .rx-prose hr,
.rx-page__inner .rx-prose .wp-block-separator { border: 0; border-top: 1px solid var(--rx-border); margin: 2rem 0; max-width: none; }
.rx-page__inner .rx-prose .wp-block-columns { display: flex; flex-wrap: wrap; gap: clamp(1rem, 3vw, 2.5rem); margin: 1.6rem 0; }
.rx-page__inner .rx-prose .wp-block-column { flex: 1 1 260px; }

/* contact form sits under the page text */
.rx-page__inner .rx-page__form { max-width: 640px; }

/* ============================================================
   QR link-tree (full-screen mobile profile)
   ============================================================ */
body.rx-qr-page { padding-top: 0; background: var(--rx-navy); }
body.rx-qr-page .rx-header,
body.rx-qr-page .rx-footer,
body.rx-qr-page .rx-search-overlay { display: none !important; }

.rx-linktree {
  min-height: 100vh; min-height: 100dvh;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(0, 81, 233, .28), transparent 60%),
    var(--rx-navy);
  display: flex; align-items: flex-start; justify-content: center;
  padding: clamp(2.2rem, 8vw, 4rem) 1.25rem 3rem;
}
.rx-linktree__inner { width: 100%; max-width: 460px; text-align: center; }
.rx-linktree__logo {
  width: clamp(150px, 44vw, 196px); height: clamp(150px, 44vw, 196px);
  margin: 0 auto; border-radius: 50%; background: #fff;
  display: grid; place-items: center; padding: 18px; box-sizing: border-box;
  box-shadow: 0 14px 40px rgba(0, 0, 0, .35);
}
.rx-linktree__logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.rx-linktree__handle {
  color: #fff; font-family: var(--rx-font-head); font-weight: var(--rx-fw-semibold);
  font-size: 1.15rem; margin: 1.1rem 0 0; letter-spacing: .02em;
}
.rx-linktree__social { display: flex; justify-content: center; gap: 1.3rem; margin: 1.1rem 0 1.8rem; }
.rx-linktree__social a { color: #fff; display: inline-flex; transition: transform .2s var(--rx-ease), opacity .2s var(--rx-ease); opacity: .92; }
.rx-linktree__social a:hover { transform: translateY(-2px); opacity: 1; }
.rx-linktree__social svg { width: 30px; height: 30px; }
.rx-linktree__links { display: flex; flex-direction: column; gap: 1.1rem; }
.rx-linktree__btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem;
  background: var(--rx-red); color: #fff; border-radius: 14px; padding: 1.05rem 1.4rem;
  min-height: 64px; text-decoration: none; box-shadow: 0 8px 22px rgba(252, 0, 0, .25);
  transition: background .2s var(--rx-ease), transform .2s var(--rx-ease), box-shadow .2s var(--rx-ease);
}
.rx-linktree__btn:hover { background: var(--rx-red-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(252, 0, 0, .32); }
.rx-linktree__btn-label { font-family: var(--rx-font-head); font-weight: var(--rx-fw-bold); font-size: 1.08rem; letter-spacing: .01em; }
.rx-linktree__btn-sub { font-size: .9rem; opacity: .9; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 640px) {
  .rx-page__inner .rx-prose { font-size: 1rem; }
  .rx-page__inner .rx-prose h2 { padding-left: .7rem; border-left-width: 4px; }
}
