/* Full-width background; control proportions match the capped contact hero. */
.rfm-catalog, .rfm-catalog * { box-sizing: border-box; }
.rfm-catalog {
  --rfm-burgundy: #560916; --rfm-ivory: #fff8ee;
  --rfm-font-mega: "RFM Lexend Mega", "Lexend Mega", sans-serif;
  --rfm-font-exa: "RFM Lexend Exa", "Lexend Exa", Arial, sans-serif;
  --rfm-unit: min(.078125vw, 1.25px);
  position: relative; container-type: inline-size; width: 100%; max-width: none; min-width: 0;
  margin: 0; padding: 0; background: var(--rfm-ivory); color: var(--rfm-burgundy);
  font-family: var(--rfm-font-exa); font-weight: 400; font-synthesis: none; -webkit-font-smoothing: antialiased;
}
@supports (width: 1cqw) { .rfm-catalog > * { --rfm-unit: min(.078125cqw, 1.25px); } }
.rfm-catalog [hidden] { display: none !important; }
/* Only the shortcode hosting this viewer needs content-driven height. Elementor's
   generic 100% widget-container height can form a circular height in mobile flex layouts. */
.elementor .elementor-widget-shortcode:has(.rfm-catalog),
.elementor .elementor-widget-shortcode:has(.rfm-catalog) > .elementor-widget-container,
.elementor .elementor-widget-shortcode:has(.rfm-catalog) > .elementor-widget-container > .elementor-shortcode {
  height: auto; max-height: none;
}
/* PDF.js appends its text-measuring canvas directly to body. Without this rule
   the zero-sized inline canvas still creates a line below the website footer. */
body > canvas.hiddenCanvasElement {
  position: absolute; top: 0; left: 0; width: 0; height: 0; display: none;
}
.rfm-catalog .rfm-catalog__hero {
  position: relative; isolation: isolate; display: grid; place-items: center;
  /* Figma 543:4212: 1280 × 483; retain the existing 1600 px scaling cap. */
  width: 100%; height: auto; min-height: calc(var(--rfm-unit) * 483);
  padding: calc(var(--rfm-unit) * 106) 24px calc(var(--rfm-unit) * 48);
  margin: 0; background: #303030; overflow: hidden;
}
.rfm-catalog .rfm-catalog__picture {
  position: absolute; inset: 0; z-index: -1; display: block; width: 100%; height: 100%;
  max-width: none; margin: 0; padding: 0; border: 0; overflow: hidden; pointer-events: none;
}
.rfm-catalog .rfm-catalog__image {
  position: absolute; inset: 0; z-index: -1; display: block; width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: center; margin: 0; padding: 0; border: 0; border-radius: 0; opacity: 1; visibility: visible;
}
.rfm-catalog .rfm-catalog__picture .rfm-catalog__image { z-index: auto; }
.rfm-catalog .rfm-catalog__tabs {
  display: flex; flex-direction: column; align-items: stretch; gap: max(12px, calc(var(--rfm-unit) * 14));
  width: max-content; min-width: min(100%, max(245px, calc(var(--rfm-unit) * 245))); max-width: 100%;
}
.rfm-catalog .rfm-catalog__tab, .rfm-catalog .rfm-catalog__online-title {
  display: flex; align-items: center; justify-content: center; min-height: max(37px, calc(var(--rfm-unit) * 37));
  margin: 0; padding: 8px 14px; border: max(1px, var(--rfm-unit)) solid #d9d3ca;
  border-radius: max(4.7px, calc(var(--rfm-unit) * 4.7)); background: rgba(44,44,44,.2); color: #fff;
  font-family: var(--rfm-font-mega); font-size: max(16px, calc(var(--rfm-unit) * 16.882));
  font-weight: 400; font-style: normal; line-height: 1.03; letter-spacing: .03em;
  text-align: center; text-transform: uppercase; text-decoration: none;
  text-shadow: 0 1px 3px rgba(0,0,0,.3); box-shadow: none; white-space: normal; overflow-wrap: anywhere;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}
.rfm-catalog .rfm-catalog__tab:visited { color: #fff; }
/* Keep the current card highlighted in the same style as hover. */
.rfm-catalog .rfm-catalog__tab[aria-selected="true"],
.rfm-catalog .rfm-catalog__tab:hover, .rfm-catalog .rfm-catalog__tab:focus-visible {
  background: var(--rfm-ivory); border-color: var(--rfm-ivory); color: var(--rfm-burgundy); text-shadow: none; text-decoration: none;
}
.rfm-catalog .rfm-catalog__tab:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.rfm-catalog .rfm-catalog__tab::before, .rfm-catalog .rfm-catalog__tab::after { content: none; }
.rfm-catalog .rfm-catalog__online-title { width: max-content; max-width: 100%; }
.rfm-catalog .rfm-catalog__hero--plain { min-height: auto; padding: 32px 16px; background: var(--rfm-burgundy); }
.rfm-catalog .rfm-catalog__documents { width: 100%; padding: clamp(20px,4vw,90px) 0; }
.rfm-catalog .rfm-catalog__panel { width: calc(100% - 48px); margin: 0 auto; padding: 0; min-width: 0; }
.rfm-catalog .rfm-catalog__panel:focus { outline: none; }
.rfm-catalog .rfm-catalog__panel:focus-visible { outline: 2px solid var(--rfm-burgundy); outline-offset: 6px; }
.rfm-catalog .rfm-catalog__pages { --rfm-page-gap: clamp(12px,2vw,40px); display: flow-root; width: 100%; }
/* Reserve each page's proportional height in normal block flow, even before
   rendering and after releasing its canvas. Canvas pixels never determine layout. */
.rfm-catalog .rfm-catalog__page { position: relative; max-width: 100%; height: auto; margin: 0 auto; overflow: hidden; background: #fff; }
.rfm-catalog .rfm-catalog__page + .rfm-catalog__page { margin-top: var(--rfm-page-gap); }
.rfm-catalog .rfm-catalog__page::before {
  content: ""; display: block; height: 0; padding-top: calc(var(--rfm-page-ratio, 1.4142135624) * 100%);
}
.rfm-catalog .rfm-catalog__page canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; margin: 0; border: 0; }
.rfm-catalog .rfm-catalog__page.is-loading::after {
  content: attr(data-page-label); position: absolute; inset: 0; display: grid; place-items: center; color: var(--rfm-burgundy); font-size: 14px;
}
.rfm-catalog .rfm-catalog__status { margin: 0; padding: 48px 20px; text-align: center; font: 400 15px/1.65 var(--rfm-font-exa); }
.rfm-catalog .rfm-catalog__fallback { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; padding: 16px; }
.rfm-catalog .rfm-catalog__retry, .rfm-catalog .rfm-catalog__download {
  appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; padding: 12px 20px;
  border: 1px solid var(--rfm-burgundy); border-radius: 6px; color: var(--rfm-burgundy); background: transparent;
  font: 400 14px/1.3 var(--rfm-font-exa); text-decoration: none; box-shadow: none; cursor: pointer;
}
.rfm-catalog .rfm-catalog__retry:hover, .rfm-catalog .rfm-catalog__download:hover { color: var(--rfm-ivory); background: var(--rfm-burgundy); }
.rfm-catalog .rfm-catalog__retry:focus-visible, .rfm-catalog .rfm-catalog__download:focus-visible { outline: 2px solid var(--rfm-burgundy); outline-offset: 4px; }
.rfm-catalog .rfm-catalog__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
/* Selectable PDF.js text layer. PDFs do not execute scripts or submit forms. */
.rfm-catalog .rfm-catalog__text-layer {
  position: absolute; top: 0; left: 0; right: auto; bottom: auto; overflow: hidden; opacity: 1; line-height: 1; text-align: initial;
  transform-origin: 0 0; text-size-adjust: none; forced-color-adjust: none; caret-color: CanvasText; z-index: 1;
}
.rfm-catalog .rfm-catalog__text-layer :is(span,br) { color: transparent; position: absolute; white-space: pre; cursor: text; transform-origin: 0 0; margin: 0; padding: 0; }
.rfm-catalog .rfm-catalog__text-layer > :not(.markedContent),
.rfm-catalog .rfm-catalog__text-layer .markedContent span:not(.markedContent) {
  z-index: 1; --total-scale-factor: calc(var(--scale-factor) * var(--user-unit,1));
  font-size: calc(var(--total-scale-factor) * var(--font-height,0px));
  transform: rotate(var(--rotate,0deg)) scaleX(var(--scale-x,1));
}
.rfm-catalog .rfm-catalog__text-layer span.markedContent { top: 0; height: 0; }
.rfm-catalog .rfm-catalog__text-layer ::selection { background: rgba(86,9,22,.25); }
@media (min-width: 768px) and (max-width: 1024px) {
  /* Figma 577:20048: 768 × 316, with the tabs slightly below the centre.
     Use a minimum height so additional menu tabs can expand the hero. */
  .rfm-catalog:not(.rfm-online) .rfm-catalog__hero:not(.rfm-catalog__hero--plain) {
    min-height: calc(var(--rfm-unit) * 526.6666667);
    padding: calc(var(--rfm-unit) * 106.6666667) 24px calc(var(--rfm-unit) * 26.6666667);
  }
}
@media (max-width: 767px) {
  /* Mobile controls have fixed dimensions; no size-query containment is needed. */
  .rfm-catalog { container-type: normal; contain: none; }
  /* Figma 558:16657: 402 × 682. The full-width mobile composition is
     proportional to its viewport, not the old 330 px compact desktop crop.
     No height containment is added to the PDF or its Elementor wrappers. */
  .rfm-catalog:not(.rfm-online) .rfm-catalog__hero:not(.rfm-catalog__hero--plain) {
    min-height: calc(100vw * 682 / 402); padding: 110px 20px 81px;
  }
  .rfm-catalog .rfm-catalog__tabs { min-width: min(245px,100%); max-width: 100%; gap: 12px; }
  .rfm-catalog .rfm-catalog__tab, .rfm-catalog .rfm-catalog__online-title { font-size: 16px; line-height: 1.25; min-height: 44px; }
  .rfm-catalog .rfm-catalog__documents { padding: 16px 0 28px; }
  .rfm-catalog .rfm-catalog__panel { width: calc(100% - 16px); }
  .rfm-catalog .rfm-catalog__hero--plain { min-height: auto; padding: 24px 16px; }
}
@media (prefers-reduced-motion: reduce) { .rfm-catalog .rfm-catalog__tab { transition: none; } }

/* Keep the first paint calm: no empty white sheet or partially drawn canvas. */
.rfm-catalog .rfm-catalog__panel.is-pending { position: relative; min-height: 124px; }
.rfm-catalog .rfm-catalog__panel.is-pending > .rfm-catalog__status {
  position: absolute; z-index: 1; inset: 0 0 auto; padding: 36px 16px;
  opacity: 0; pointer-events: none;
}
.rfm-catalog .rfm-catalog__panel.is-pending > .rfm-catalog__status.is-loading-visible { opacity: 1; }
.rfm-catalog .rfm-catalog__page.is-loading { background: transparent; }
.rfm-catalog .rfm-catalog__page.is-loading canvas { visibility: hidden; }
.rfm-catalog .rfm-catalog__page.is-loading::after { content: none; }
