/* Minimal shared WordPress shell. Page and rep-blog-wrapper styles stay isolated. */
html {
  min-height: 100%;
  background: #111714;
}

body.reputable-2026 {
  --rep-shell-ink: #111714;
  --rep-shell-ivory: #f4efe4;
  --rep-shell-paper: #efeadf;
  --rep-shell-lime: #caff4d;
  --rep-shell-muted: #b8beb4;
  --rep-shell-muted-light: #59625b;
  --rep-shell-line: rgba(244, 239, 228, .15);
  min-height: 100vh;
  margin: 0;
  background: var(--rep-shell-ink);
}

.global-site-nav,
.site-footer,
.rep-heartbeats-banner,
.rep-standard-single,
.rep-page-fallback,
.rep-index-fallback {
  box-sizing: border-box;
  font-family: 'Instrument Sans', sans-serif;
}

.global-site-nav *,
.site-footer *,
.rep-heartbeats-banner *,
.rep-standard-single *,
.rep-page-fallback *,
.rep-index-fallback * { box-sizing: border-box; }

.global-site-nav a,
.site-footer a,
.rep-heartbeats-banner,
.rep-standard-single a,
.rep-page-fallback a,
.rep-index-fallback a { color: inherit; text-decoration: none; }

.rep-skip-link,
.rep-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.rep-skip-link:focus {
  position: fixed !important;
  z-index: 1000;
  top: 12px;
  left: 20px;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 12px 18px !important;
  overflow: visible !important;
  clip: auto !important;
  color: var(--rep-shell-ink);
  background: var(--rep-shell-lime);
  border-radius: 8px;
  font: 600 15px/1.2 'Instrument Sans', sans-serif;
}

#rh-prog {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: #caff4d;
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
}

.site-footer {
  padding: 32px clamp(20px, 4.5vw, 64px);
  color: var(--rep-shell-ivory);
  background: var(--rep-shell-ink);
  border-top: 1px solid var(--rep-shell-line);
}

.rep-footer-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  width: min(100%, 1200px);
  margin-inline: auto;
  gap: 16px 28px;
}

.site-footer .wordmark,
.site-footer .global-wordmark {
  display: inline-flex;
  align-items: baseline;
  flex-shrink: 0;
  gap: 4px;
  color: var(--rep-shell-ivory);
  font-size: 24px;
  font-weight: 650;
  letter-spacing: -.025em;
}

.site-footer .logo-dot,
.rep-home-footer-wordmark .logo-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--rep-shell-lime);
}

.rep-footer-inner > p {
  margin: 0 0 0 auto;
  color: var(--rep-shell-muted);
  font-size: 13px;
}

.rep-footer-primary-link {
  padding-block: 12px;
  color: var(--rep-shell-muted) !important;
  font-size: 13px;
}

.rep-footer-primary-link:hover,
.rep-footer-primary-link:focus-visible { color: var(--rep-shell-ivory) !important; }

.footer-legal {
  display: flex;
  flex: 1 0 100%;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px clamp(14px, 2vw, 26px);
  width: 100%;
  margin-top: 3px;
  padding-top: 22px;
  color: rgba(244, 239, 228, .58);
  border-top: 1px solid rgba(244, 239, 228, .1);
  font-size: 12px;
  line-height: 1.5;
}

.footer-legal-label {
  color: var(--rep-shell-lime);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.footer-legal a { padding-block: 8px; transition: color 160ms ease; }
.footer-legal a:hover,
.footer-legal a:focus-visible,
.footer-legal a[aria-current='page'] { color: var(--rep-shell-ivory); }
.footer-copyright { margin-left: auto; color: rgba(244, 239, 228, .42); }

.rep-home-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 24px;
  padding-block: 48px;
}

.rep-home-footer-wordmark {
  display: flex;
  align-items: baseline;
  gap: 3px;
  color: var(--rep-shell-ivory);
  font-size: 19px;
  font-weight: 650;
  letter-spacing: -.025em;
}

.rep-home-footer-tagline {
  color: rgba(244, 239, 228, .45);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
}

.rep-heartbeats-banner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 28px max(24px, calc((100% - 1160px) / 2));
  color: var(--rep-shell-ink);
  background: var(--rep-shell-lime);
}

.rep-heartbeats-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: var(--rep-shell-lime);
  background: var(--rep-shell-ink);
  border-radius: 50%;
}

.rep-heartbeats-banner strong { display: block; font-size: 18px; line-height: 1.25; }
.rep-heartbeats-banner small { display: block; margin-top: 4px; font-size: 14px; line-height: 1.45; }
.rep-heartbeats-arrow { font-size: 28px; line-height: 1; }

.rep-standard-single,
.rep-page-fallback,
.rep-index-fallback {
  min-height: 60vh;
  padding: clamp(64px, 8vw, 112px) clamp(20px, 4.5vw, 64px);
  color: var(--rep-shell-ink);
  background: var(--rep-shell-paper);
}

.rep-standard-inner,
.rep-page-fallback-inner,
.rep-index-fallback-inner { width: min(100%, 760px); margin-inline: auto; }

.rep-standard-single .entry-title,
.rep-page-fallback .entry-title,
.rep-index-fallback .archive-title {
  margin: 0;
  font-size: clamp(2.5rem, 6vw, 4.75rem);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1.02;
  text-wrap: balance;
}

.rep-standard-single .entry-meta { margin: 20px 0 0; color: var(--rep-shell-muted-light); font-size: 14px; }
.rep-standard-single .entry-thumbnail { margin: 36px 0 0; }

.rep-standard-single .entry-thumbnail img,
.rep-standard-single .entry-content img,
.rep-page-fallback .entry-content img { display: block; max-width: 100%; height: auto; }

.rep-standard-single .entry-content,
.rep-page-fallback .entry-content {
  margin-top: 36px;
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.75;
}

.rep-standard-single .entry-content table,
.rep-page-fallback .entry-content table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

.rep-standard-single .entry-content th,
.rep-standard-single .entry-content td,
.rep-page-fallback .entry-content th,
.rep-page-fallback .entry-content td {
  padding: 12px;
  border: 1px solid rgba(17, 23, 20, .18);
  text-align: left;
}

.rep-index-fallback .rep-index-list { display: grid; gap: 22px; margin-top: 42px; }
.rep-index-fallback .rep-index-card { padding: 26px; border: 1px solid rgba(17, 23, 20, .16); border-radius: 18px; }
.rep-index-fallback .rep-index-card h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.15; }
.rep-index-fallback .rep-index-card p { margin: 14px 0 0; color: var(--rep-shell-muted-light); line-height: 1.65; }
.rep-index-fallback .navigation.pagination { margin-top: 42px; }

/* Existing Elementor article HTML forces Poppins on every descendant. Restore only its icon fonts. */
body.has-rep-blog-wrapper .rep-blog-wrapper i.ph,
body.has-rep-blog-wrapper .rep-blog-wrapper i.ph::before {
  font-family: 'Phosphor' !important;
}

body.has-rep-blog-wrapper .rep-blog-wrapper i.ph-bold,
body.has-rep-blog-wrapper .rep-blog-wrapper i.ph-bold::before {
  font-family: 'Phosphor-Bold' !important;
}

@media (max-width: 480px) {
  /* The inline -1rem margins overrun Elementor's 10px side padding by 6px. */
  body.has-rep-blog-wrapper .rep-blog-wrapper {
    margin-left: -10px !important;
    margin-right: -10px !important;
  }

  /* Direct body-only packages do not have Elementor's extra side padding. */
  body.has-rep-blog-wrapper .rep-raw-package-single .rep-blog-wrapper {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

@media (max-width: 720px) {
  .rep-footer-inner { align-items: flex-start; }
  .rep-footer-inner > p { flex-basis: 100%; order: 3; margin: 0; }
  .footer-legal { align-items: flex-start; gap: 4px 18px; }
  .footer-legal-label,
  .footer-copyright { flex-basis: 100%; }
  .footer-legal-label { margin-bottom: 5px; }
  .footer-copyright { margin: 9px 0 0; }
  .rep-heartbeats-banner { grid-template-columns: auto minmax(0, 1fr); }
  .rep-heartbeats-arrow { display: none; }
  .rep-home-footer { align-items: flex-start; flex-direction: column; padding-block: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .footer-legal a { transition: none; }
}
