/* ==========================================================================
   Reviorum — pages/profile.css
   Shared by website.html, company.html, application.html, casino.html
   (single-website.php, single-company.php, single-app.php, single-casino.php).
   The hero tint comes from the category hue class (.rv-hue--*).
   ========================================================================== */

/* ---------- Hero ---------- */
.rv-profile-hero {
  background: var(--rv-cat-tint, var(--rv-lavender));
  padding-bottom: var(--rv-s-8);
}
.rv-profile-hero .rv-breadcrumbs { padding-top: var(--rv-s-6); padding-bottom: var(--rv-s-6); }
.rv-profile-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: var(--rv-s-10);
  align-items: start;
}

.rv-profile-id { display: flex; gap: var(--rv-s-6); align-items: flex-start; }
.rv-profile-id__logo {
  width: 104px;
  height: 104px;
  border-radius: 22px;
  font-size: 2.125rem;
  box-shadow: 0 12px 30px -14px rgba(14, 19, 32, 0.55);
}
.rv-profile-id__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--rv-s-3); }
.rv-profile-id__title { display: flex; align-items: center; flex-wrap: wrap; gap: var(--rv-s-3); }
.rv-profile-id__name { font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.25rem); line-height: 1.1; font-weight: 800; letter-spacing: -0.03em; }
.rv-profile-id__verified {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 0 10px 0 6px;
  border-radius: var(--rv-r-pill);
  background: var(--rv-accent-soft);
  color: var(--rv-accent-hover);
  font-size: var(--rv-fs-sm);
  font-weight: 600;
}
.rv-profile-id__sub { color: var(--rv-ink-2); font-size: 0.9375rem; }
.rv-profile-id__site { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; }
.rv-profile-id__desc { max-width: 640px; color: var(--rv-ink-2); line-height: 1.6; }
.rv-profile-id__tags { display: flex; flex-wrap: wrap; gap: var(--rv-s-2); }
.rv-profile-id__tags .rv-tag {
  height: 26px;
  padding: 0 10px;
  border: 1px solid rgba(14, 19, 32, 0.1);
  background: var(--rv-surface);
  font-size: var(--rv-fs-sm);
}
.rv-body .rv-profile-id__tags a.rv-tag:hover { background: var(--rv-accent-soft); color: var(--rv-accent-hover); }
.rv-profile-id__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--rv-s-2); }
.rv-profile-id__icon-btn { width: 44px; padding: 0; }
.rv-body .rv-profile-id__icon-btn[aria-pressed="true"] { background: var(--rv-accent-soft); border-color: var(--rv-accent); color: var(--rv-accent); }
.rv-profile-id__icon-btn[aria-pressed="true"] svg path { fill: currentColor; }

/* Score card */
.rv-profile-score {
  display: flex;
  flex-direction: column;
  gap: var(--rv-s-4);
  padding: var(--rv-s-6);
  border-color: transparent;
  box-shadow: 0 20px 40px -24px rgba(30, 58, 138, 0.35);
}
.rv-profile-score__main { display: flex; align-items: center; gap: var(--rv-s-4); }
.rv-profile-score__value { font-size: 3.5rem; line-height: 1; font-weight: 800; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.rv-profile-score__stars { display: flex; flex-direction: column; gap: 6px; }
.rv-profile-score__label { color: var(--rv-ink-2); font-size: var(--rv-fs-md); }
.rv-profile-score__dist { gap: 4px; }
.rv-profile-score__dist .rv-dist__row { grid-template-columns: 52px minmax(0, 1fr) 36px; font-size: var(--rv-fs-sm); }
.rv-profile-score__dist li.rv-dist__row { padding: 3px 0; color: var(--rv-ink-2); }
.rv-profile-score__row {
  padding: 3px 4px;
  margin-inline: -4px;
  border-radius: 6px;
  font-size: var(--rv-fs-sm);
  color: var(--rv-ink-2);
  cursor: pointer;
  grid-template-columns: 52px minmax(0, 1fr) 36px;
}
.rv-profile-score__row:hover { background: var(--rv-surface-2); }
.rv-profile-score__note {
  display: flex;
  gap: var(--rv-s-2);
  align-items: flex-start;
  padding-top: var(--rv-s-3);
  border-top: 1px solid var(--rv-line);
  color: var(--rv-muted);
  font-size: var(--rv-fs-xs);
  line-height: 1.5;
}
.rv-profile-score__note svg { flex: none; margin-top: 1px; }

/* ---------- In-page section navigation ---------- */
.rv-profile-nav {
  position: sticky;
  top: calc(var(--rv-top-offset) + var(--rv-header-h));
  z-index: 50;
  background: var(--rv-surface);
  border-bottom: 1px solid var(--rv-line);
}
.rv-profile-nav__list {
  display: flex;
  gap: var(--rv-s-6);
  margin-block: 0;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
}
.rv-profile-nav__list::-webkit-scrollbar { display: none; }
.rv-profile-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 52px;
  border-bottom: 2px solid transparent;
  font-size: 0.9375rem;
  font-weight: 500;
  white-space: nowrap;
}
.rv-body .rv-profile-nav__link { color: var(--rv-muted); }
.rv-body .rv-profile-nav__link:hover { color: var(--rv-ink); }
.rv-body .rv-profile-nav__link.is-active { color: var(--rv-ink); border-color: var(--rv-accent); font-weight: 600; }
.rv-profile-page .rv-profile-section,
.rv-profile-page .rv-profile-aside { scroll-margin-top: calc(var(--rv-top-offset) + var(--rv-header-h) + 64px); }
.rv-profile-inline-address { font-style: normal; }

/* ---------- Layout ---------- */
.rv-profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 28px;
  align-items: start;
  padding-block: 28px 64px;
}
.rv-profile-main { display: flex; flex-direction: column; gap: var(--rv-s-6); min-width: 0; }
.rv-profile-aside { display: flex; flex-direction: column; gap: var(--rv-s-4); }

.rv-profile-section { display: flex; flex-direction: column; gap: 18px; padding: 28px; }
.rv-profile-section--plain { padding: 0; }
.rv-profile-section__head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--rv-s-4); }
.rv-profile-section__title { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.015em; }
.rv-profile-section__count { color: var(--rv-muted); font-weight: 500; }
.rv-profile-section__lead { color: var(--rv-ink-2); font-size: 0.9375rem; line-height: 1.65; }

/* Definition list (facts, licence, app info, company details) */
.rv-profile-dl { margin: 0; display: grid; gap: 10px 16px; font-size: var(--rv-fs-md); }
.rv-profile-dl__row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; }
.rv-profile-dl dt { color: var(--rv-muted); }
.rv-profile-dl dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.rv-profile-dl--facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--rv-s-4); }
.rv-profile-dl--facts .rv-profile-dl__row { display: flex; flex-direction: column; gap: 4px; padding: var(--rv-s-4) 0; border-top: 1px solid var(--rv-line); }
.rv-profile-dl--facts dt { font-size: var(--rv-fs-sm); }
.rv-profile-dl--facts dd { font-size: 0.9375rem; font-weight: 600; }
.rv-profile-dl--stack .rv-profile-dl__row { grid-template-columns: 120px minmax(0, 1fr); }

.rv-profile-social { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.rv-profile-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--rv-line);
  border-radius: 9px;
}
.rv-body .rv-profile-social__link { color: var(--rv-ink-2); }
.rv-body .rv-profile-social__link:hover { border-color: var(--rv-accent); color: var(--rv-accent); }

/* ---------- Reviews ---------- */
.rv-profile-search .rv-search__field { height: 40px; background: var(--rv-surface); }
.rv-profile-filter { display: flex; flex-direction: column; gap: var(--rv-s-3); }
.rv-profile-filter__chips { gap: var(--rv-s-2); }
.rv-profile-chip { min-height: 36px; padding: 0 14px; font-size: var(--rv-fs-md); position: relative; }
.rv-profile-chip small { font-size: var(--rv-fs-xs); opacity: 0.7; }
.rv-body .rv-profile-chip:hover { border-color: var(--rv-line-strong); color: var(--rv-ink); }
.rv-body .rv-profile-chip:has(input:checked) { background: var(--rv-ink); border-color: var(--rv-ink); color: #fff; }
.rv-profile-chip:has(input:focus-visible) { box-shadow: var(--rv-focus); }
.rv-profile-filter__row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rv-s-3) var(--rv-s-5); }
.rv-profile-filter__check { align-items: center; }
.rv-profile-filter__check input { margin: 0; }
.rv-profile-filter__sort { display: inline-flex; align-items: center; gap: var(--rv-s-2); color: var(--rv-muted); font-size: var(--rv-fs-sm); }
.rv-profile-filter__sort .rv-select { width: auto; min-height: 40px; padding: 0 10px; border-width: 1px; border-color: var(--rv-line); border-radius: var(--rv-r-md); color: var(--rv-ink); font-size: var(--rv-fs-md); font-weight: 500; }
.rv-profile-filter__count { margin-left: auto; }
.rv-js .rv-profile-filter__apply { display: none; }

.rv-profile-reviews { display: flex; flex-direction: column; }
.rv-profile-reviews--cards { gap: var(--rv-s-3); }
.rv-profile-review {
  display: flex;
  flex-direction: column;
  gap: var(--rv-s-3);
  padding: var(--rv-s-6) 0;
  border-top: 1px solid var(--rv-line);
}
.rv-profile-review--card { padding: var(--rv-s-5); border: 1px solid var(--rv-line); }
.rv-profile-review__head { display: flex; align-items: center; gap: var(--rv-s-3); }
.rv-profile-review__head .rv-avatar { width: 42px; height: 42px; font-size: var(--rv-fs-md); }
.rv-profile-review__tag { flex: none; }
.rv-profile-review__title { font-size: 1.0625rem; font-weight: 700; }
.rv-profile-review__text { color: var(--rv-ink-2); font-size: 0.9375rem; line-height: 1.65; }
.rv-profile-review__label { color: var(--rv-ink-2); font-weight: 600; }
.rv-profile-review__reply { display: flex; flex-direction: column; gap: var(--rv-s-2); }
.rv-profile-review__reply-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rv-s-2); color: var(--rv-ink); }
.rv-profile-review__reply-head strong { font-weight: 600; }
.rv-profile-review__actions { display: flex; flex-wrap: wrap; gap: 4px; margin-left: -10px; }
.rv-profile-review__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--rv-muted);
  font-size: var(--rv-fs-sm);
  font-weight: 500;
  cursor: pointer;
}
.rv-profile-review__btn:hover { background: #f1f3f7; color: var(--rv-ink); }
.rv-profile-review__btn[aria-pressed="true"] { background: var(--rv-accent-soft); color: var(--rv-accent); }
.rv-profile-review__btn--end { margin-left: auto; }
.rv-profile-empty { border-top: 1px solid var(--rv-line); }

/* ---------- Insights (technical signals) ---------- */
.rv-profile-insights { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rv-s-3); margin: 0; padding: 0; list-style: none; }
.rv-profile-insight {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--rv-s-4);
  border: 1px solid var(--rv-line);
  border-radius: 12px;
}
.rv-profile-insight .rv-meta:last-child { font-size: var(--rv-fs-xs); }
.rv-profile-insight__value { font-size: 1.375rem; font-weight: 700; line-height: 1.2; }
.rv-profile-insight__value--sm { font-size: 0.9375rem; line-height: 1.35; }
.rv-profile-insight__value--icon { display: inline-flex; align-items: center; gap: var(--rv-s-2); }
.rv-profile-insight__ok { color: var(--rv-pos); }
.rv-profile-uptime { display: flex; gap: 2px; height: 18px; align-items: stretch; }
.rv-profile-uptime__day { flex: 1; border-radius: 2px; background: #4ca36a; }
.rv-profile-uptime__day--incident { background: #d97706; }
.rv-profile-section .rv-notice svg { flex: none; margin-top: 1px; color: var(--rv-muted); }

/* ---------- Alternatives ---------- */
/* Positioned so .rv-visually-hidden children stay inside horizontal scrollers */
.rv-profile-alts,
.rv-profile-filter__chips,
.rv-profile-nav__list { position: relative; }
.rv-profile-alt { position: relative; display: flex; flex-direction: column; gap: var(--rv-s-3); padding: 18px; }
.rv-profile-alt__head { display: flex; align-items: center; gap: var(--rv-s-3); }
.rv-profile-alt__head > div { flex: 1; min-width: 0; }
.rv-profile-alt__name { font-size: var(--rv-fs-base); font-weight: 700; }
.rv-profile-alt__diff { flex: 1; color: var(--rv-ink-2); font-size: var(--rv-fs-sm); line-height: 1.5; }
.rv-profile-alt__actions { display: flex; gap: var(--rv-s-2); }
.rv-profile-alt__actions .rv-btn { flex: 1; }

/* ---------- KPI tiles / products (company, app, casino) ---------- */
.rv-profile-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rv-s-3); margin: 0; padding: 0; list-style: none; }
.rv-profile-kpi { display: flex; flex-direction: column; gap: 4px; padding: var(--rv-s-4); }
.rv-profile-kpi__value { font-size: 1.625rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.rv-profile-kpi__value--good { color: var(--rv-pos); }
.rv-profile-kpi__value--warn { color: var(--rv-warn); }

.rv-profile-products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rv-s-4); margin: 0; padding: 0; list-style: none; }
.rv-profile-product { display: flex; flex-direction: column; gap: var(--rv-s-3); padding: var(--rv-s-5); }
.rv-profile-product__top { display: flex; justify-content: space-between; align-items: flex-start; }
.rv-profile-product__name { font-size: var(--rv-fs-base); font-weight: 700; }
.rv-profile-product__cta { margin-top: auto; color: var(--rv-accent); font-size: var(--rv-fs-md); font-weight: 600; }

/* ---------- Aside ---------- */
.rv-profile-box { display: flex; flex-direction: column; gap: var(--rv-s-3); padding: var(--rv-s-5); }
.rv-profile-box__title { font-size: var(--rv-fs-base); font-weight: 700; }
.rv-profile-box__eyebrow { color: var(--rv-muted); font-size: var(--rv-fs-sm); font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.rv-profile-owner { display: flex; align-items: center; gap: var(--rv-s-3); }
.rv-body .rv-profile-owner { color: var(--rv-ink); }
.rv-profile-owner > span:not(.rv-logo) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rv-profile-owner__name { font-weight: 600; }
.rv-profile-owner svg { color: var(--rv-muted); }
.rv-profile-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rv-profile-stats__item { display: flex; flex-direction: column; padding: var(--rv-s-3); border-radius: var(--rv-r-md); background: var(--rv-surface-2); }
.rv-profile-stats__item strong { font-size: var(--rv-fs-lg); }
.rv-profile-stats__item .rv-meta { font-size: var(--rv-fs-xs); line-height: 1.4; }
.rv-profile-contacts { display: flex; flex-direction: column; gap: 10px; color: var(--rv-ink-2); font-size: var(--rv-fs-md); font-style: normal; }
.rv-profile-contacts span { display: flex; align-items: center; gap: 10px; overflow-wrap: anywhere; }
.rv-profile-contacts svg { flex: none; }

.rv-profile-ad { position: relative; display: flex; flex-direction: column; gap: var(--rv-s-3); padding: var(--rv-s-5); }
.rv-profile-ad .rv-sponsored { position: absolute; top: 14px; right: 14px; }
.rv-profile-ad__head { display: flex; align-items: center; gap: var(--rv-s-3); padding-right: 90px; }
.rv-profile-ad__name { font-weight: 700; }
.rv-profile-ad__text { color: var(--rv-ink-2); font-size: var(--rv-fs-md); line-height: 1.5; }

.rv-profile-links { margin: 0; padding: 0; list-style: none; }
.rv-profile-links__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-top: 1px solid #f0f2f5;
  font-size: var(--rv-fs-md);
  font-weight: 500;
}
.rv-body .rv-profile-links__item { color: var(--rv-ink); }
.rv-body .rv-profile-links__item:hover { color: var(--rv-accent); }
.rv-profile-links__item span:nth-child(2) { flex: 1; min-width: 0; }

.rv-profile-claim {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: var(--rv-s-5);
  border: 1px dashed #c9ceda;
  border-radius: var(--rv-r-lg);
  background: var(--rv-surface);
}
.rv-profile-claim .rv-meta { line-height: 1.55; }

.rv-profile-checks { display: flex; flex-direction: column; gap: var(--rv-s-3); margin: 0; padding: 0; list-style: none; }
.rv-profile-checks__item { display: flex; gap: 10px; align-items: flex-start; font-size: var(--rv-fs-md); }
.rv-profile-checks__item > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.rv-profile-checks__title { font-weight: 600; }
.rv-profile-checks__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: var(--rv-r-pill);
  font-size: var(--rv-fs-xs);
  font-weight: 800;
}
.rv-profile-checks__icon--ok { background: var(--rv-pos-soft); color: var(--rv-pos); }
.rv-profile-checks__icon--warn { background: var(--rv-hue-travel); color: #a16207; }
.rv-profile-checks__icon--info { background: var(--rv-accent-soft); color: var(--rv-accent); }
.rv-profile-checks__icon--no { background: #f1f3f7; color: var(--rv-muted); }

/* ---------- Sticky mobile action bar ---------- */
.rv-profile-mbar { display: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .rv-profile-hero__grid,
  .rv-profile-layout { grid-template-columns: minmax(0, 1fr); }
  .rv-profile-hero__grid { gap: var(--rv-s-6); }
  .rv-profile-score { max-width: 560px; }
  .rv-profile-insights,
  .rv-profile-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rv-profile-products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rv-profile-aside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}

@media (max-width: 768px) {
  .rv-profile-aside { grid-template-columns: minmax(0, 1fr); }
  .rv-profile-products { grid-template-columns: minmax(0, 1fr); }
  .rv-profile-dl--facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .rv-profile-hero { padding-bottom: var(--rv-s-5); }
  .rv-profile-hero .rv-breadcrumbs { padding-block: var(--rv-s-3) var(--rv-s-4); }
  .rv-profile-id { flex-direction: column; gap: var(--rv-s-4); }
  .rv-profile-id__logo { width: 72px; height: 72px; border-radius: 18px; font-size: 1.5rem; }
  .rv-profile-id__actions .rv-btn--primary { flex: 1 1 100%; }
  .rv-profile-id__actions .rv-btn--secondary:not(.rv-profile-id__icon-btn),
  .rv-profile-id__actions .rv-btn--dark { flex: 1 1 auto; }
  .rv-profile-score { padding: var(--rv-s-5); }
  .rv-profile-score__value { font-size: 2.75rem; }

  .rv-profile-nav__list { gap: var(--rv-s-5); }
  .rv-profile-nav__link { min-height: 48px; font-size: var(--rv-fs-md); }

  .rv-profile-layout { padding-block: var(--rv-s-4) var(--rv-s-12); gap: var(--rv-s-4); }
  .rv-profile-main { gap: var(--rv-s-4); }
  .rv-profile-section { padding: var(--rv-s-5) var(--rv-s-4); gap: var(--rv-s-4); }
  .rv-profile-section--plain { padding: 0; }
  .rv-profile-section__title { font-size: 1.25rem; }

  .rv-profile-filter__chips {
    flex-wrap: nowrap;
    overflow-x: auto;
    margin-inline: calc(var(--rv-s-4) * -1);
    padding-inline: var(--rv-s-4);
    scrollbar-width: none;
  }
  .rv-profile-filter__chips::-webkit-scrollbar { display: none; }
  .rv-profile-filter__count { margin-left: 0; }
  .rv-profile-review { padding: var(--rv-s-5) 0; }
  .rv-profile-review--card { padding: var(--rv-s-4); }
  .rv-profile-review__head { flex-wrap: wrap; }

  .rv-profile-dl__row,
  .rv-profile-dl--stack .rv-profile-dl__row { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .rv-profile-dl--facts .rv-profile-dl__row { padding: var(--rv-s-3) 0; }

  .rv-profile-alts {
    display: flex;
    margin-inline: calc(var(--rv-gutter) * -1);
    padding: 0 var(--rv-gutter) var(--rv-s-2);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .rv-profile-alts::-webkit-scrollbar { display: none; }
  .rv-profile-alts > li { flex: 0 0 82%; scroll-snap-align: start; }

  .rv-profile-kpi__value { font-size: 1.375rem; }

  /* Sticky quick actions at the bottom of the viewport */
  .rv-profile-mbar {
    position: sticky;
    bottom: 0;
    z-index: 60;
    display: flex;
    gap: var(--rv-s-2);
    padding: var(--rv-s-3) var(--rv-gutter) calc(var(--rv-s-3) + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--rv-line);
    box-shadow: 0 -10px 24px -18px rgba(14, 19, 32, 0.35);
  }
  .rv-profile-mbar .rv-btn { flex: 1; }
}

@media (max-width: 380px) {
  .rv-profile-dl--facts { grid-template-columns: minmax(0, 1fr); }
  .rv-profile-insights,
  .rv-profile-kpis { grid-template-columns: minmax(0, 1fr); }
  .rv-profile-stats { grid-template-columns: minmax(0, 1fr); }
  .rv-profile-mbar .rv-btn { min-width: 0; padding: 0 10px; font-size: var(--rv-fs-md); }
  .rv-profile-mbar .rv-btn svg { display: none; }
}
