/* PROFILE V2 - the redesigned public profile (Business + Professional), shared by every theme.
 * Markup: application/views/enduser/theme_includes/profile/. Behaviour: themes/shared/js/profile-v2.js.
 * The accent is the portal's (--site_color_g); the highlight is the portal's profile colour
 * (--pv2-hi-colour, set by page.php from pp2_highlight(), picked on the Profile Builder). Text colours
 * and fonts are the client's design (canvas N8PwLhaonbivophCYR7j6H): navy ink with its text / muted /
 * faint shades, Manrope body, Bricolage Grotesque headings, JetBrains Mono labels (page.php loads them).
 * Smallest text: 14px. Everything is scoped under .pv2 so the portal's chrome is untouched. */

.pv2 {
  --pv2-accent: var(--site_color_g, #1326F3);
  --pv2-ink: #080F54;
  --pv2-hi: var(--pv2-hi-colour, #FAE621);
  --pv2-on-accent: #FFFFFF;
  /* accent used as text / dark surface, and the icon on an accent tile: page.php overrides both
     (pp2_contrast_style()) when the portal's accent is light, e.g. Ignite's yellow */
  --pv2-accent-deep: var(--pv2-accent);
  --pv2-ic-on-accent: var(--pv2-hi);
  --pv2-on-hi: var(--pv2-ink);
  --pv2-bg: color-mix(in srgb, var(--pv2-accent) 4.5%, #FFFFFF);
  --pv2-tint: color-mix(in srgb, var(--pv2-accent) 7%, #FFFFFF);
  --pv2-tint-ink: color-mix(in srgb, var(--pv2-accent) 55%, var(--pv2-ink));
  --pv2-hi-tint: color-mix(in srgb, var(--pv2-hi) 28%, #FFFFFF);
  --pv2-hi-ink: color-mix(in srgb, var(--pv2-hi) 30%, #3A3000);
  --pv2-text: #3A4178;
  --pv2-muted: #5A6191;
  --pv2-faint: #8F97CC;
  --pv2-line: color-mix(in srgb, var(--pv2-ink) 8%, transparent);
  --pv2-line-2: color-mix(in srgb, var(--pv2-ink) 14%, transparent);
  --pv2-night: color-mix(in srgb, var(--pv2-ink) 35%, #000000);
  --pv2-star: #E0B800;
  --pv2-star-off: #D5D9EE;
  --pv2-ok: #0F7A3C;
  --pv2-shadow: 0 1px 2px color-mix(in srgb, var(--pv2-ink) 5%, transparent), 0 18px 40px -26px color-mix(in srgb, var(--pv2-ink) 35%, transparent);
  --pv2-shadow-lift: 0 30px 50px -26px color-mix(in srgb, var(--pv2-accent) 45%, transparent);
  --pv2-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --pv2-font-display: "Bricolage Grotesque", "Manrope", system-ui, sans-serif;
  --pv2-font-body: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --pv2-sticky-top: 90px;
  background: var(--pv2-bg);
  color: var(--pv2-ink);
  font-family: var(--pv2-font-body);
  font-size: 16px;
  line-height: 1.5;
  padding-bottom: 1px;
  /* west_chester's header is float:left; width:100%, and the cover (overflow:hidden) shrank to 0px
     beside it - the profile starts below any floated header */
  clear: both;
}
@supports not (color: color-mix(in srgb, red, blue)) {
  .pv2 {
    --pv2-bg: #F4F6FF; --pv2-tint: #EEF1FF; --pv2-tint-ink: #1B2A8F; --pv2-hi-tint: #FFF9C2; --pv2-hi-ink: #5A4D00;
    --pv2-text: #3A4178; --pv2-muted: #5A6191; --pv2-faint: #8F97CC; --pv2-line: rgba(8,15,84,.08); --pv2-line-2: rgba(8,15,84,.14);
    --pv2-night: #02041F; --pv2-shadow: 0 1px 2px rgba(8,15,84,.05), 0 18px 40px -26px rgba(8,15,84,.35);
    --pv2-shadow-lift: 0 30px 50px -26px rgba(19,38,243,.45);
  }
}

/* ---- reset inside the profile (portal stylesheets style bare elements) ---- */
.pv2 *, .pv2 *::before, .pv2 *::after { box-sizing: border-box; }
.pv2 h1, .pv2 h2, .pv2 h3, .pv2 h4, .pv2 p, .pv2 ul, .pv2 ol, .pv2 figure { margin: 0; }
.pv2 h1, .pv2 h2, .pv2 h3, .pv2 h4 { color: inherit; text-transform: none; }
.pv2 img { display: block; max-width: 100%; }
.pv2 a { color: var(--pv2-accent-deep); }
.pv2 a:hover { color: color-mix(in srgb, var(--pv2-accent) 75%, #000000); }
/* Guard: some theme sheets had `a *:hover { color: … }`, which repaints whatever is hovered inside a
   link (an icon on its own tile vanished). Parts inside pv2 links keep their own colour on hover. */
.pv2 a *:hover:not([class]), .pv2 a .pv2-crow-text:hover, .pv2 a .pv2-switch-text:hover, .pv2 a .pv2-worksat-body:hover { color: inherit; }
.pv2 a .pv2-ic--accent:hover, .pv2 a .pv2-mini--square:hover { color: var(--pv2-ic-on-accent); }
.pv2 a .pv2-ic--ink:hover, .pv2 a .pv2-worksat-logo:hover { color: var(--pv2-hi); }
.pv2 a .pv2-ic--hi:hover { color: var(--pv2-on-hi); }
.pv2 a .pv2-mini--round:hover { color: var(--pv2-ink); }
.pv2 a .pv2-muted:hover { color: var(--pv2-muted); }
.pv2 a .pv2-accent:hover, .pv2 a .pv2-switch-end:hover { color: var(--pv2-accent-deep); }
.pv2 a .pv2-tab-n:hover { color: var(--pv2-faint); }
.pv2 a.pv2-tab.is-on .pv2-tab-n { color: var(--pv2-accent-deep); }
.pv2 small { font-size: 14px; }
.pv2 b, .pv2 strong { font-weight: 800; }
.pv2 button { font-family: inherit; }
/* a theme's own font on p / a / span ... must not replace the design's inside the profile */
.pv2 :where(p, span, a, li, label, small, b, strong, em, input, textarea, select, button) { font-family: inherit; }
.pv2 :where(h1, h2, h3, h4) { font-family: var(--pv2-font-display); color: var(--pv2-ink); }
/* an editor field shown as its own HTML (pp2_rich(), clean_post_html) */
.pv2 .pv2-rich { color: var(--pv2-text); font-size: 16px; line-height: 1.7; }
.pv2 .pv2-rich > :first-child { margin-top: 0; }
.pv2 .pv2-rich > :last-child { margin-bottom: 0; }
.pv2 .pv2-rich p { margin: 0 0 14px; }
.pv2 .pv2-rich :where(h2, h3) { font-family: var(--pv2-font-display); font-weight: 800; font-size: 22px; line-height: 1.25; letter-spacing: -.015em; color: var(--pv2-ink); margin: 22px 0 8px; }
.pv2 .pv2-rich h4 { font-family: var(--pv2-font-display); font-weight: 800; font-size: 18px; line-height: 1.3; color: var(--pv2-ink); margin: 18px 0 6px; }
.pv2 .pv2-rich :where(ul, ol) { margin: 0 0 14px; padding-left: 22px; }
.pv2 .pv2-rich li { margin: 0 0 6px; }
.pv2 .pv2-rich strong, .pv2 .pv2-rich b { color: var(--pv2-ink); font-weight: 700; }
.pv2 [hidden] { display: none !important; }
.pv2 svg { flex: 0 0 auto; max-width: none; }
.pv2 .pv2-btn--icon svg { width: 18px; height: 18px; }

/* ---- layout primitives ---- */
.pv2-wrap { width: min(1240px, 100% - 32px); margin: 0 auto; position: relative; }
.pv2-cols { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; margin-top: 24px; padding-bottom: 80px; }
.pv2-main { display: grid; gap: 20px; min-width: 0; }
.pv2-panel { display: grid; gap: 20px; min-width: 0; }
.pv2-side { display: grid; gap: 16px; position: sticky; top: var(--pv2-sticky-top); min-width: 0; }
.pv2-stack { display: grid; gap: 14px; align-content: start; }
.pv2-gap-4 { gap: 4px; } .pv2-gap-6 { gap: 6px; } .pv2-gap-8 { gap: 8px; } .pv2-gap-10 { gap: 10px; }
.pv2-gap-12 { gap: 12px; } .pv2-gap-16 { gap: 16px; } .pv2-gap-18 { gap: 18px; } .pv2-gap-22 { gap: 22px; }
.pv2-row { display: flex; align-items: center; gap: 12px; }
.pv2-wrap-row { flex-wrap: wrap; }
.pv2-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pv2-head--wrap { flex-wrap: wrap; }
.pv2-g2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pv2-g3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pv2-g4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pv2-mt-4 { margin-top: 4px !important; } .pv2-mt-10 { margin-top: 10px !important; }
.pv2-ml-auto { margin-left: auto; }
.pv2-self-start { justify-self: start; }
.pv2-block { display: block; }
.pv2-m-only { display: none; }

/* ---- type ---- */
.pv2-eb { display: inline-flex; align-items: center; gap: 10px; font: 600 14px/1.2 var(--pv2-font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--pv2-accent-deep); }
.pv2-eb::before { content: ""; width: 16px; height: 2px; background: currentColor; border-radius: 2px; }
.pv2-mono { font: 600 14px/1.35 var(--pv2-font-mono); letter-spacing: .06em; }
.pv2-label { letter-spacing: .1em; color: var(--pv2-accent-deep); }
.pv2-h2 { font-weight: 800; font-size: 30px; line-height: 1.1; font-family: var(--pv2-font-display); letter-spacing: -.02em; }
.pv2-h3 { font-weight: 800; font-size: 22px; line-height: 1.2; font-family: var(--pv2-font-display); letter-spacing: -.015em; }
.pv2-h3--side { font-size: 19px; }
.pv2-h3--sm { font-size: 17px; }
.pv2-h-17 { font-weight: 800; font-size: 17px; line-height: 1.3; font-family: var(--pv2-font-display); }
.pv2-h-18 { font-weight: 800; font-size: 18px; line-height: 1.3; font-family: var(--pv2-font-display); }
.pv2-h-20 { font-weight: 800; font-size: 20px; line-height: 1.3; font-family: var(--pv2-font-display); }
.pv2-h-22 { font-weight: 800; font-size: 22px; line-height: 1.25; font-family: var(--pv2-font-display); }
.pv2-accent { color: var(--pv2-accent-deep); }
.pv2-muted { color: var(--pv2-muted); }
.pv2-lead { font-size: 16px; line-height: 1.7; color: var(--pv2-text); }
.pv2-note { font-size: 14px; line-height: 1.45; font-weight: 600; }
.pv2-measure { max-width: 46ch; }
.pv2-text-145 { font-size: 14.5px; line-height: 1.55; }
.pv2-text-15 { font-size: 15px; line-height: 1.6; }
.pv2-text-155 { font-size: 15.5px; line-height: 1.6; }
.pv2-text-16 { font-size: 16px; line-height: 1.6; }
.pv2-b6 { font-size: 14px; font-weight: 600; }
.pv2-b7 { font-size: 14px; font-weight: 700; }
.pv2-b8 { font-weight: 800; }

/* ---- surfaces ---- */
.pv2-card { background: #FFFFFF; border: 1px solid var(--pv2-line); border-radius: 22px; box-shadow: var(--pv2-shadow); }
.pv2-pad-lg { padding: 28px; }
.pv2-pad-md { padding: 24px; }
.pv2-pad-rv { padding: 26px; }
.pv2-pad-sm { padding: 22px; }
.pv2-pad-side { padding: 22px; }
.pv2-lift { transition: transform .3s, box-shadow .3s; }
.pv2-lift:hover { transform: translateY(-4px); box-shadow: var(--pv2-shadow-lift); }
.pv2-box { padding: 20px; border-radius: 18px; background: var(--pv2-bg); }
.pv2-fact { padding: 16px; border-radius: 16px; border: 1px dashed color-mix(in srgb, var(--pv2-ink) 20%, transparent); }
.pv2-fact p { font-weight: 800; margin-top: 6px; }
.pv2-perf { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 14px; background: var(--pv2-bg); }
.pv2-perf .pv2-muted { font-size: 14px; }

/* ---- chips ---- */
.pv2-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pv2-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 1.2; background: var(--pv2-tint); color: var(--pv2-tint-ink); white-space: nowrap; }
.pv2-chip--hi { background: var(--pv2-hi-tint); color: var(--pv2-hi-ink); }
.pv2-chip--accent { background: color-mix(in srgb, var(--pv2-accent) 11%, #FFFFFF); color: var(--pv2-accent-deep); }

/* ---- buttons ---- */
.pv2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 10px 20px; border-radius: 13px; font-size: 14.5px; font-weight: 800; line-height: 1.2; text-decoration: none; border: 0; cursor: pointer; white-space: nowrap; transition: transform .2s, box-shadow .25s, background .2s, border-color .2s; }
.pv2 .pv2-btn:hover { transform: translateY(-2px); text-decoration: none; }
.pv2-btn:focus-visible, .pv2-tab:focus-visible, .pv2-more:focus-visible, .pv2-slot:focus-visible, .pv2-starpick button:focus-visible { outline: 2px solid var(--pv2-accent); outline-offset: 2px; }
.pv2 .pv2-btn--hi, .pv2 .pv2-btn--hi:hover { background: var(--pv2-hi); color: var(--pv2-on-hi); box-shadow: 0 14px 30px -14px color-mix(in srgb, var(--pv2-hi) 90%, #000000); }
.pv2 .pv2-btn--accent, .pv2 .pv2-btn--accent:hover { background: var(--pv2-accent); color: var(--pv2-on-accent); box-shadow: 0 14px 30px -14px color-mix(in srgb, var(--pv2-accent) 80%, transparent); }
.pv2 .pv2-btn--accent:hover { background: color-mix(in srgb, var(--pv2-accent) 88%, #FFFFFF); }
.pv2 .pv2-btn--white, .pv2 .pv2-btn--white:hover { background: #FFFFFF; color: var(--pv2-ink); border: 1px solid var(--pv2-line-2); }
.pv2 .pv2-btn--white:hover { border-color: color-mix(in srgb, var(--pv2-accent) 45%, transparent); }
.pv2 .pv2-btn--ink, .pv2 .pv2-btn--ink:hover { background: var(--pv2-ink); color: #FFFFFF; }
.pv2 .pv2-btn--glass, .pv2 .pv2-btn--glass:hover { background: color-mix(in srgb, var(--pv2-night) 60%, transparent); color: #FFFFFF; border: 1px solid rgba(255,255,255,.25); backdrop-filter: blur(8px); }
.pv2-btn--icon { width: 46px; min-width: 46px; padding: 0; }
.pv2-btn--sm { min-height: 36px; padding: 0 12px; font-size: 14px; }
.pv2-btn[aria-pressed="true"].pv2-btn--sm { background: var(--pv2-tint); }
.pv2-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.pv2-linkbtn:hover { color: var(--pv2-accent-deep); }
.pv2-more { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 800; color: var(--pv2-accent-deep); text-decoration: none; white-space: nowrap; }
.pv2-rating-quote .pv2-more, .pv2-rectop .pv2-more { justify-self: start; min-height: 40px; }

/* ---- icon tiles ---- */
.pv2-ic { flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; font-size: 14px; font-weight: 800; line-height: 1; }
.pv2-ic--36 { width: 36px; height: 36px; }
.pv2-ic--38 { width: 38px; height: 38px; }
.pv2-ic--40 { width: 40px; height: 40px; }
.pv2-ic--42 { width: 42px; height: 42px; }
.pv2-ic--50 { width: 50px; height: 50px; }
.pv2-ic--56 { width: 56px; height: 56px; }
.pv2-ic--72 { width: 72px; height: 72px; border-radius: 22px; }
.pv2-ic--round { border-radius: 50%; }
/* .pv2 a ... : a theme's own link colour must not repaint the icon inside a contact link */
.pv2 .pv2-ic--accent, .pv2 a .pv2-ic--accent { background: var(--pv2-accent); color: var(--pv2-ic-on-accent); }
.pv2 .pv2-ic--hi, .pv2 a .pv2-ic--hi { background: var(--pv2-hi); color: var(--pv2-on-hi); }
.pv2 .pv2-ic--ink, .pv2 a .pv2-ic--ink { background: color-mix(in srgb, var(--pv2-ink) 85%, var(--pv2-accent)); color: var(--pv2-hi); }
.pv2-ic--white { background: #FFFFFF; }
/* four decorative tones, all mixed from the theme colours */
.pv2-tone-1 { background: var(--pv2-hi-tint); color: var(--pv2-ink); }
.pv2-tone-2 { background: color-mix(in srgb, var(--pv2-accent) 11%, #FFFFFF); color: var(--pv2-accent-deep); }
.pv2-tone-3 { background: color-mix(in srgb, var(--pv2-ink) 9%, #FFFFFF); color: var(--pv2-ink); }
.pv2-tone-4 { background: color-mix(in srgb, var(--pv2-accent) 18%, color-mix(in srgb, var(--pv2-hi) 10%, #FFFFFF)); color: color-mix(in srgb, var(--pv2-accent) 70%, var(--pv2-ink)); }
.pv2-skill.pv2-tone-1 .pv2-ic, .pv2-skill.pv2-tone-3 .pv2-ic { color: var(--pv2-ink); }
.pv2-skill.pv2-tone-2 .pv2-ic { color: var(--pv2-accent-deep); }
.pv2-solid-1, .pv2-solid-accent { background: var(--pv2-accent); color: #FFFFFF; }
.pv2-solid-2 { background: color-mix(in srgb, var(--pv2-accent) 45%, var(--pv2-ink)); color: #FFFFFF; }
.pv2-solid-3 { background: var(--pv2-ink); color: #FFFFFF; }
.pv2-solid-hi { background: var(--pv2-hi); color: var(--pv2-on-hi); }
.pv2-grad-1 { background: linear-gradient(135deg, var(--pv2-accent), var(--pv2-ink)); }
.pv2-grad-2 { background: linear-gradient(135deg, color-mix(in srgb, var(--pv2-accent) 60%, var(--pv2-ink)), var(--pv2-accent)); }
.pv2-grad-3 { background: linear-gradient(135deg, color-mix(in srgb, var(--pv2-accent) 55%, var(--pv2-hi)), var(--pv2-accent)); }
.pv2-grad-4 { background: linear-gradient(135deg, var(--pv2-ink), color-mix(in srgb, var(--pv2-accent) 70%, var(--pv2-ink))); }

/* ================= COVER ================= */
.pv2-cover { position: relative; height: 320px; overflow: hidden; background: var(--pv2-night); }
.pv2--professional .pv2-cover { height: 300px; }
.pv2-cover-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none !important; object-fit: cover; object-position: 80% 50%; }
.pv2-cover-shade { position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--pv2-night) 85%, transparent) 0%, color-mix(in srgb, var(--pv2-night) 35%, transparent) 55%, transparent 100%), linear-gradient(0deg, color-mix(in srgb, var(--pv2-night) 60%, transparent), transparent 50%); }
.pv2--professional .pv2-cover-img { transform: scaleX(-1); object-position: 100% 30%; }
.pv2--professional .pv2-cover-shade { background: radial-gradient(60% 120% at 85% 20%, color-mix(in srgb, var(--pv2-hi) 22%, transparent), transparent 60%), linear-gradient(90deg, color-mix(in srgb, var(--pv2-night) 20%, transparent) 0%, color-mix(in srgb, var(--pv2-night) 75%, transparent) 100%), linear-gradient(0deg, color-mix(in srgb, var(--pv2-night) 60%, transparent), transparent 50%); }
.pv2-cover-inner { padding-top: 22px; }
.pv2-crumbs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 14px; font-weight: 600; color: #C9CEF0; }
.pv2-crumbs a, .pv2-crumbs a:hover { color: #C9CEF0; text-decoration: none; }
.pv2-crumbs a:hover { color: #FFFFFF; }
.pv2-crumbs .is-current { color: #FFFFFF; }
.pv2-cover-edit { position: absolute; right: max(16px, calc((100% - 1240px) / 2)); top: 20px; }
.pv2-drift { animation: pv2-drift 30s ease-in-out infinite alternate; }
@keyframes pv2-drift { to { transform: scale(1.08) translate(-2%, 1%); } }
.pv2--professional .pv2-drift { animation-name: pv2-drift-flip; }
@keyframes pv2-drift-flip { from { transform: scaleX(-1); } to { transform: scaleX(-1) scale(1.08) translate(2%, 1%); } }

/* ================= IDENTITY ================= */
.pv2-idsec { position: relative; margin-top: -110px; z-index: 2; }
.pv2-idcard { border-radius: 28px; padding: 26px 28px 0; box-shadow: 0 1px 2px color-mix(in srgb, var(--pv2-ink) 5%, transparent), 0 16px 32px -24px color-mix(in srgb, var(--pv2-ink) 28%, transparent); }
.pv2-idrow { display: flex; gap: 24px; align-items: flex-end; position: relative; }
.pv2-avatar-wrap { position: relative; margin-top: -76px; flex: 0 0 auto; align-self: flex-start; }
.pv2--professional .pv2-avatar-wrap { margin-top: -80px; }
.pv2-avatar { width: 148px; height: 148px; display: grid; place-items: center; overflow: hidden; border: 6px solid #FFFFFF; box-shadow: 0 24px 40px -20px color-mix(in srgb, var(--pv2-ink) 70%, transparent); }
.pv2-avatar img { width: 100%; height: 100%; object-fit: cover; }
.pv2-avatar span { font-weight: 800; font-size: 52px; line-height: 1; font-family: var(--pv2-font-display); letter-spacing: -.04em; }
.pv2-avatar--square { border-radius: 34px; background: linear-gradient(140deg, var(--pv2-accent), var(--pv2-ink) 70%); color: var(--pv2-hi); }
.pv2-avatar--round { width: 152px; height: 152px; border-radius: 50%; background: linear-gradient(140deg, var(--pv2-hi), color-mix(in srgb, var(--pv2-hi) 75%, #E07000)); color: var(--pv2-ink); }
.pv2-avatar--round span { font-size: 54px; }
.pv2-verified { position: absolute; right: -6px; bottom: 6px; width: 38px; height: 38px; border-radius: 50%; background: var(--pv2-hi); color: var(--pv2-ink); border: 4px solid #FFFFFF; display: grid; place-items: center; }
.pv2-pulse { animation: pv2-pulse 2.4s ease-out infinite; }
@keyframes pv2-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--pv2-hi) 70%, transparent); } 100% { box-shadow: 0 0 0 14px transparent; } }

.pv2-idtext { flex: 1; min-width: 0; display: grid; gap: 8px; padding-bottom: 4px; }
.pv2-namerow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pv2-name { font-weight: 800; font-size: clamp(30px, 3.4vw, 42px); line-height: 1.05; font-family: var(--pv2-font-display); letter-spacing: -.03em; }
.pv2-subline { color: var(--pv2-muted); font-size: 15px; font-weight: 600; }
.pv2-headline { font-size: 16px; font-weight: 700; color: var(--pv2-text); }
.pv2-headline a { text-decoration: none; font-weight: 800; }
.pv2-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; font-size: 14px; font-weight: 600; color: var(--pv2-text); }
.pv2-meta > span { display: inline-flex; align-items: center; gap: 6px; }
.pv2-meta svg { color: var(--pv2-accent-deep); }
.pv2-meta .is-muted, .pv2-meta .is-muted svg { color: var(--pv2-muted); }
.pv2-opento { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; align-items: center; }
.pv2-opento .pv2-mono { color: var(--pv2-muted); letter-spacing: .1em; margin-right: 4px; }
.pv2-mchips { display: none; }

.pv2-acts { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding-bottom: 6px; }
/* the member's portals: one button, or a small menu (details) when they own several */
.pv2-portals { position: relative; }
.pv2-portals > summary { list-style: none; cursor: pointer; }
.pv2-portals > summary::-webkit-details-marker { display: none; }
.pv2-portals[open] > summary svg:last-child { transform: rotate(90deg); }
.pv2-portals-pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; min-width: 240px; display: grid; padding: 6px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--pv2-line-2); box-shadow: var(--pv2-shadow); }
.pv2 .pv2-portals-pop a { padding: 10px 12px; border-radius: 10px; font-size: 14px; font-weight: 700; color: var(--pv2-ink); text-decoration: none; }
.pv2 .pv2-portals-pop a:hover { background: var(--pv2-tint); color: var(--pv2-ink); }
.pv2-act-follow .pv2-follow-off, .pv2-act-follow .pv2-follow-on { display: inline-flex; align-items: center; gap: 9px; }
.pv2-act-follow .pv2-follow-on { display: none; }
.pv2 .pv2-act-follow.is-following, .pv2 .pv2-act-follow.is-following:hover { background: #FFFFFF; color: var(--pv2-ink); border: 1px solid var(--pv2-line-2); box-shadow: none; }
.pv2-act-follow.is-following .pv2-follow-off { display: none; }
.pv2-act-follow.is-following .pv2-follow-on { display: inline-flex; }

/* switcher: every profile the member has (Professional + any number of Business profiles).
 * Two share the row like the design; more wrap onto further rows (phones: one swipeable row). */
.pv2-switch { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 10px; margin-top: 22px; }
.pv2-switch--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pv2-switch-item { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 16px; background: var(--pv2-bg); border: 1px solid var(--pv2-line); color: var(--pv2-ink); text-decoration: none; min-width: 0; }
.pv2 a.pv2-switch-item, .pv2 a.pv2-switch-item:hover { color: var(--pv2-ink); text-decoration: none; }
.pv2 a.pv2-switch-item:hover { border-color: color-mix(in srgb, var(--pv2-accent) 45%, transparent); }
.pv2-switch-item.is-current { background: var(--pv2-ink); border-color: var(--pv2-ink); color: #FFFFFF; }
.pv2-switch-text { min-width: 0; }
.pv2-switch-text small { display: block; font: 600 14px/1.3 var(--pv2-font-mono); letter-spacing: .06em; color: var(--pv2-accent-deep); }
.pv2-switch-item.is-current .pv2-switch-text small { color: var(--pv2-hi); }
.pv2-switch-text b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pv2-switch-end { margin-left: auto; font-weight: 800; color: var(--pv2-accent-deep); white-space: nowrap; }
.pv2-switch-item.is-current .pv2-switch-end { color: #C9CEF0; }
.pv2-mini { flex: 0 0 auto; width: 40px; height: 40px; display: grid; place-items: center; font-weight: 800; font-size: 14px; line-height: 1; font-family: var(--pv2-font-display); }
.pv2-mini--square { border-radius: 12px; background: linear-gradient(140deg, var(--pv2-accent), color-mix(in srgb, var(--pv2-accent) 70%, var(--pv2-ink))); color: var(--pv2-ic-on-accent); }
.pv2-mini--round { border-radius: 50%; background: var(--pv2-hi); color: var(--pv2-ink); }
.pv2-switch-item:not(.is-current) .pv2-mini--square { background: linear-gradient(140deg, var(--pv2-accent), var(--pv2-ink)); }

/* stats */
.pv2-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin-top: 22px; border-top: 1px solid var(--pv2-line); }
.pv2--professional .pv2-stats { margin-top: 18px; }
.pv2-stats--m { display: none; }
.pv2-stat { padding: 16px 0; display: grid; gap: 2px; }
.pv2-stat strong { font-weight: 800; font-size: 26px; line-height: 1; font-family: var(--pv2-font-display); color: var(--pv2-ink); }
.pv2-stat span { font: 600 14px/1.3 var(--pv2-font-mono); letter-spacing: .06em; color: var(--pv2-muted); }

/* tabs (line = in the card; pills = phones) */
.pv2-tabs--line { display: flex; gap: 28px; overflow-x: auto; border-top: 1px solid var(--pv2-line); scrollbar-width: none; }
.pv2-tabs--line::-webkit-scrollbar { display: none; }
.pv2 .pv2-tab { position: relative; display: inline-flex; align-items: center; min-height: 56px; padding: 0 4px; font-size: 14.5px; font-weight: 800; color: var(--pv2-muted); text-decoration: none; white-space: nowrap; }
.pv2 .pv2-tab:hover { color: var(--pv2-ink); text-decoration: none; }
.pv2 .pv2-tab.is-on { color: var(--pv2-ink); }
.pv2-tabs--line .pv2-tab.is-on::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 3px; background: var(--pv2-accent); }
.pv2-tab-n { margin-left: 6px; font: 600 14px/1 var(--pv2-font-mono); color: var(--pv2-faint); }
.pv2-tab.is-on .pv2-tab-n { color: var(--pv2-accent-deep); }
.pv2-tabs--pills { display: none; }

/* ================= OWNER BAR ================= */
.pv2-ownerbar-wrap { margin-top: 18px; }
.pv2-ownerbar { padding: 18px 22px; border-radius: 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; background: linear-gradient(110deg, var(--pv2-ink), var(--pv2-accent)); color: #FFFFFF; box-shadow: var(--pv2-shadow); }
.pv2-ownerbar-body { display: grid; gap: 10px; }
.pv2-ownerbar-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pv2-ownerbar-head b, .pv2-ownerbar-title { font-weight: 800; font-size: 17px; line-height: 1.3; font-family: var(--pv2-font-display); }
.pv2-ownerbar-head .pv2-mono { color: var(--pv2-hi); }
.pv2-meter { height: 10px; border-radius: 999px; background: rgba(255,255,255,.15); overflow: hidden; }
.pv2-meter span { display: block; height: 100%; background: var(--pv2-hi); border-radius: 999px; }
.pv2-todo { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pv2-todo li { display: inline-flex; gap: 6px; align-items: center; padding: 6px 11px; border-radius: 999px; background: rgba(255,255,255,.1); font-size: 14px; font-weight: 700; }
.pv2 a.pv2-todo-link, .pv2 a.pv2-todo-link:hover { color: inherit; text-decoration: none; }
.pv2 a.pv2-todo-link:hover { text-decoration: underline; }
.pv2-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--pv2-hi); }

/* ================= SECTIONS ================= */
.pv2-about--sm .pv2-h2 { font-size: 28px; line-height: 1.12; }
.pv2-about .pv2-note { font-size: 14px; }

/* services grid (overview) */
.pv2-svc { padding: 20px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: start; }
.pv2-svc-body { display: grid; gap: 6px; }
.pv2-svc-title { font-weight: 800; font-size: 17px; line-height: 1.3; font-family: var(--pv2-font-display); }
.pv2-svc-title--lg { font-size: 19px; }
.pv2-svc-text { font-size: 14px; line-height: 1.5; }
.pv2-svc-short, .pv2-svc-chev { display: none; }
.pv2-svc-link { font-weight: 800; font-size: 14px; text-decoration: none; }
.pv2-svc-row { padding: 22px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; }

/* posts */
.pv2-post-card { overflow: hidden; display: grid; align-content: start; }
.pv2-post-thumb { height: 120px; position: relative; }
.pv2-post-type { position: absolute; left: 14px; bottom: 12px; padding: 5px 10px; border-radius: 999px; background: #FFFFFF; font: 600 14px/1.2 var(--pv2-font-mono); color: var(--pv2-accent-deep); }
.pv2-post-body { padding: 18px; display: grid; gap: 8px; }
.pv2 .pv2-post-title { font-weight: 800; font-size: 17px; line-height: 1.3; font-family: var(--pv2-font-display); color: var(--pv2-ink); text-decoration: none; }
.pv2 .pv2-post-title:hover { color: var(--pv2-accent-deep); }
.pv2-post-title--row { font-size: 18px !important; }
.pv2-post-row { padding: 16px; display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 18px; align-items: center; }
.pv2-post-rthumb { height: 110px; border-radius: 16px; display: grid; place-items: center; color: #FFFFFF; }
.pv2-post-row--compact { grid-template-columns: 150px minmax(0, 1fr); }
.pv2-post-row--compact .pv2-post-rthumb { height: 96px; border-radius: 14px; }
.pv2-post-row--compact .pv2-post-title--row { font-size: 17px !important; }
.pv2-post-acts { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; font-size: 14px; font-weight: 700; color: var(--pv2-muted); }
.pv2-post-acts a { margin-left: auto; text-decoration: none; }
.pv2-post-acts a.pv2-linkbtn { margin-left: 0; color: inherit; }
.pv2-post-acts a.pv2-linkbtn:hover { color: var(--pv2-accent-deep); }

/* gallery */
.pv2-tile { aspect-ratio: 4 / 3; width: 100%; border-radius: 16px; object-fit: cover; }
.pv2-tile-link { display: block; border-radius: 16px; position: relative; }
/* a video tile: round play badge in the middle */
.pv2-play { position: absolute; left: 50%; top: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; display: grid; place-items: center;
  background: color-mix(in srgb, var(--pv2-ink) 78%, transparent); color: #FFFFFF; box-shadow: 0 10px 24px -10px rgba(0,0,0,.6); transition: transform .2s; pointer-events: none; }
.pv2-play svg { margin-left: 3px; fill: currentColor; }
.pv2 .pv2-tile-link:hover .pv2-play { transform: scale(1.08); }
.pv2-pre { white-space: pre-line; }
.pv2-ic-img { width: 60%; height: 60%; object-fit: contain; }
.pv2-hours-row { display: flex; gap: 8px; font-size: 14px; }
.pv2-hours-row b { font-weight: 800; }
.pv2 a.pv2-similar-name { display: block; font-size: 14px; font-weight: 800; color: var(--pv2-ink); text-decoration: none; }
.pv2 a.pv2-similar-name:hover { color: var(--pv2-accent-deep); }
.pv2-tile--empty { display: grid; place-items: center; background: repeating-linear-gradient(135deg, var(--pv2-tint) 0 12px, var(--pv2-bg) 12px 24px); color: var(--pv2-muted); }

/* rating */
.pv2-rating { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; align-items: center; }
.pv2-rating-score { display: grid; gap: 4px; justify-items: start; }
.pv2-score { font-weight: 800; font-size: 54px; line-height: 1; font-family: var(--pv2-font-display); }
.pv2-score--lg { font-size: 60px; }
.pv2-stars { color: var(--pv2-star); font-size: 20px; letter-spacing: 2px; line-height: 1.2; }
.pv2-stars--lg { font-size: 22px; }
.pv2-person .pv2-stars, .pv2-row .pv2-stars { font-size: 16px; }
.pv2-rating-quote { display: grid; gap: 8px; border-left: 1px solid color-mix(in srgb, var(--pv2-ink) 10%, transparent); padding-left: 24px; }
.pv2-quote { font-weight: 700; font-size: 18px; line-height: 1.45; font-family: var(--pv2-font-display); }

/* reviews tab */
.pv2-rv-top { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 26px; align-items: center; }
.pv2-starpick { display: flex; gap: 4px; }
.pv2-starpick button { width: 44px; height: 44px; border: 0; background: none; padding: 0; cursor: pointer; font-size: 30px; line-height: 1; color: var(--pv2-star-off); border-radius: 10px; }
.pv2-starpick button.is-on { color: var(--pv2-star); }

/* forms */
.pv2-field { display: grid; gap: 6px; font-weight: 700; font-size: 14px; margin: 0; color: var(--pv2-ink); }
.pv2-inp { width: 100%; min-height: 46px; padding: 0 14px; border-radius: 12px; border: 1px solid color-mix(in srgb, var(--pv2-ink) 16%, transparent); font: inherit; font-size: 15px; font-weight: 500; color: var(--pv2-ink); background: #FFFFFF; box-shadow: none; }
.pv2-inp:focus { outline: 2px solid var(--pv2-accent); outline-offset: 1px; }
.pv2-inp--area { padding: 12px 14px; min-height: 84px; resize: vertical; }
.pv2-inp--file { padding-top: 10px; }
.pv2-check { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; margin: 0; }
.pv2-check input { width: 20px; height: 20px; accent-color: var(--pv2-accent-deep); margin: 0; }
.pv2-ok { font-weight: 800; color: var(--pv2-ok); font-size: 14px; }

/* capability */
.pv2-ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 15px; font-weight: 600; }
.pv2-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }

/* events empty state */
.pv2-empty { padding: 44px; display: grid; gap: 14px; justify-items: center; text-align: center; }

/* activity */
.pv2-highlight { padding: 20px; border: 1.5px solid color-mix(in srgb, var(--pv2-accent) 35%, transparent); }

/* professional overview */
.pv2-skill { padding: 16px; border-radius: 16px; display: grid; gap: 8px; }
.pv2-skill-title { font-weight: 800; font-size: 16px; line-height: 1.3; font-family: var(--pv2-font-display); color: var(--pv2-ink); }
.pv2-offer { padding: 18px; border-radius: 16px; border: 1px solid color-mix(in srgb, var(--pv2-ink) 10%, transparent); display: grid; gap: 8px; align-content: start; }
.pv2-offer .pv2-muted { font-size: 14px; line-height: 1.5; }
.pv2-rectop { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; align-items: start; }
.pv2-rectop .pv2-ic { font-size: 17px; }

/* experience timeline */
.pv2-timeline { list-style: none; margin: 0; padding: 0; display: grid; }
.pv2-timeline li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; position: relative; }
.pv2-timeline li.has-line { padding-bottom: 22px; }
.pv2-timeline li.has-line::before { content: ""; position: absolute; left: 23px; top: 48px; bottom: 0; width: 2px; background: color-mix(in srgb, var(--pv2-accent) 12%, #FFFFFF); }
.pv2-tl-logo { width: 48px; height: 48px; border-radius: 13px; display: grid; place-items: center; font-weight: 800; font-size: 15px; line-height: 1; font-family: var(--pv2-font-display); text-decoration: none; }
.pv2 a.pv2-tl-logo, .pv2 a.pv2-tl-logo:hover { background: linear-gradient(140deg, var(--pv2-accent), var(--pv2-ink)); color: var(--pv2-hi); text-decoration: none; }
.pv2-tl-logo--empty { background: var(--pv2-tint); color: var(--pv2-muted); font-size: 15px; }

/* ================= SIDEBAR ================= */
.pv2-crow { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 14px; background: var(--pv2-bg); color: var(--pv2-ink); text-decoration: none; }
.pv2 a.pv2-crow, .pv2 a.pv2-crow:hover { color: var(--pv2-ink); text-decoration: none; }
.pv2 a.pv2-crow:hover { background: var(--pv2-tint); }
.pv2-crow-text { min-width: 0; overflow-wrap: anywhere; }
.pv2-crow-text small { display: block; font-weight: 700; font-size: 14px; }
.pv2-msgform { padding-top: 6px; border-top: 1px solid var(--pv2-line); }
.pv2-community { color: var(--pv2-ink); text-decoration: none; }
.pv2 a.pv2-community, .pv2 a.pv2-community:hover { color: var(--pv2-ink); text-decoration: none; }
.pv2-community b { font-size: 14.5px; }
.pv2-similar-text { min-width: 0; flex: 1; }
.pv2-similar-text b { display: block; font-size: 14px; }
.pv2-similar-text small { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; }
.pv2-worksat { padding: 0; overflow: hidden; display: grid; text-decoration: none; color: var(--pv2-ink); }
.pv2 a.pv2-worksat, .pv2 a.pv2-worksat:hover { color: var(--pv2-ink); text-decoration: none; }
.pv2-worksat-band { display: block; height: 70px; background: linear-gradient(120deg, var(--pv2-accent), var(--pv2-ink)); }
.pv2-worksat-body { padding: 0 20px 20px; display: grid; gap: 8px; }
.pv2-worksat-logo { width: 56px; height: 56px; margin-top: -28px; border-radius: 16px; background: linear-gradient(140deg, var(--pv2-accent), var(--pv2-ink)); border: 4px solid #FFFFFF; display: grid; place-items: center; font-weight: 800; font-size: 18px; line-height: 1; font-family: var(--pv2-font-display); color: var(--pv2-hi); }
.pv2-worksat-body small { letter-spacing: .1em; }
.pv2-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pv2-slot { min-height: 44px; border-radius: 12px; border: 1px solid var(--pv2-line-2); background: #FFFFFF; font-size: 14px; font-weight: 700; color: var(--pv2-ink); cursor: pointer; }
.pv2-slot[aria-pressed="true"] { background: var(--pv2-accent); border-color: var(--pv2-accent-deep); color: var(--pv2-on-accent); }

/* ================= MOBILE BAR + TOAST ================= */
.pv2-mbar { display: none; }
.pv2-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); z-index: 1000; padding: 12px 18px; border-radius: 12px; background: var(--pv2-hi); color: var(--pv2-on-hi); font-size: 14px; font-weight: 800; box-shadow: 0 20px 40px -14px color-mix(in srgb, var(--pv2-ink) 60%, transparent); }

/* ================= RESPONSIVE ================= */
/* Ask Copilot side card (side/copilot.php) */
.pv2-copilot { position: relative; overflow: hidden; border-radius: 22px; padding: 22px; display: grid; gap: 12px; color: #FFFFFF;
  background: linear-gradient(140deg, var(--pv2-ink), var(--pv2-accent-deep)); }
.pv2-copilot[hidden] { display: none; }
.pv2-copilot-head { display: flex; align-items: center; gap: 12px; }
.pv2-copilot-head b { font-size: 17px; font-weight: 800; }
.pv2-copilot-face { width: 40px; height: 40px; border-radius: 12px; object-fit: cover; }
.pv2-copilot p { margin: 0; font-size: 14px; line-height: 1.5; color: color-mix(in srgb, #FFFFFF 85%, var(--pv2-accent)); }
.pv2-copilot-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pv2 .pv2-copilot-chip { padding: 7px 12px; border-radius: 999px; border: 0; background: rgba(255,255,255,.12); color: #FFFFFF; font-size: 14px; font-weight: 700; cursor: pointer; }
.pv2 .pv2-copilot-chip:hover { background: rgba(255,255,255,.22); }
.pv2 .pv2-copilot-go { justify-self: start; }

@media (max-width: 1100px) {
  .pv2-cols { grid-template-columns: minmax(0, 1fr); }
  .pv2-side { position: static; }
  .pv2-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pv2-idrow { flex-wrap: wrap; row-gap: 14px; }
  .pv2-acts { flex: 1 1 100%; justify-content: flex-start; padding-left: 172px; }
}

@media (max-width: 720px) {
  .pv2-g2, .pv2-g3, .pv2-g4 { grid-template-columns: minmax(0, 1fr); }
  .pv2-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pv2-d-only { display: none !important; }
  .pv2-m-only { display: inline; }
  .pv2-m-hide { display: none !important; }
  .pv2-card { border-radius: 20px; box-shadow: 0 14px 30px -22px color-mix(in srgb, var(--pv2-ink) 40%, transparent); }
  .pv2-pad-lg, .pv2-pad-md, .pv2-pad-rv, .pv2-pad-sm, .pv2-pad-side { padding: 18px; }
  .pv2-h2 { font-size: 21px; line-height: 1.15; }
  .pv2-about--sm .pv2-h2 { font-size: 21px; }
  .pv2-h3 { font-size: 18px; }
  .pv2-lead { font-size: 14.5px; line-height: 1.6; }
  .pv2-main, .pv2-panel { gap: 14px; }

  /* cover + compact identity (the mobile board) */
  .pv2-cover, .pv2--professional .pv2-cover { height: 170px; }
  .pv2-cover-shade, .pv2--professional .pv2-cover-shade { background: linear-gradient(0deg, color-mix(in srgb, var(--pv2-night) 70%, transparent), transparent 60%); }
  .pv2-cover-img { object-position: 85% 50%; }
  .pv2-crumbs { display: none; }
  .pv2-cover-edit { top: 12px; right: 16px; min-height: 40px; padding: 0 12px; }
  .pv2-idsec { margin-top: -56px; }
  .pv2-idsec > .pv2-wrap { width: calc(100% - 32px); }
  .pv2-idcard { display: grid; gap: 10px; position: relative; padding: 0 18px 18px; border-radius: 20px; box-shadow: 0 14px 30px -22px color-mix(in srgb, var(--pv2-ink) 40%, transparent); }
  .pv2-idrow { display: contents; }
  .pv2-avatar-wrap { order: 1; } .pv2-idtext { order: 2; } .pv2-stats--m { order: 3; } .pv2-acts { order: 4; } .pv2-switch { order: 5; }
  .pv2-avatar-wrap, .pv2--professional .pv2-avatar-wrap { margin-top: -40px; justify-self: start; width: max-content; }
  .pv2-avatar, .pv2-avatar--round { width: 96px; height: 96px; border-width: 5px; box-shadow: 0 16px 30px -16px color-mix(in srgb, var(--pv2-ink) 70%, transparent); }
  .pv2-avatar--square { border-radius: 26px; }
  .pv2-avatar span, .pv2-avatar--round span { font-size: 34px; }
  .pv2-verified { right: -6px; bottom: -4px; width: 30px; height: 30px; border-width: 3px; }
  .pv2-verified svg { width: 13px; height: 13px; }
  .pv2-idtext { gap: 10px; padding-bottom: 0; }
  .pv2-name { font-size: 26px; line-height: 1.1; letter-spacing: -.02em; }
  .pv2-namerow .pv2-chip, .pv2-meta, .pv2-opento { display: none; }
  .pv2-subline { font-size: 14px; }
  .pv2-headline { font-size: 15px; }
  .pv2-mchips { display: flex; flex-wrap: wrap; gap: 6px; }
  .pv2-mchips .pv2-chip { padding: 5px 10px; white-space: normal; max-width: 100%; }
  .pv2-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0; }
  .pv2-acts .pv2-btn { padding: 0 16px; font-size: 14px; }
  .pv2-act-icon { display: none; }
  .pv2-acts .pv2-act-link.pv2-btn--white, .pv2-acts > .pv2-btn--ink, .pv2-acts > .pv2-act-more, .pv2-acts > .pv2-act-portal, .pv2-acts > .pv2-portals { grid-column: 1 / -1; }
  .pv2-portals > .pv2-btn { width: 100%; }
  .pv2-act-copy { position: absolute; top: 12px; right: 18px; width: 44px; min-width: 44px; }
  .pv2-switch, .pv2-switch--n2 { grid-template-columns: minmax(0, 1fr); gap: 8px; margin-top: 4px; }
  .pv2-switch-text b { white-space: normal; }
  .pv2-switch--n3, .pv2-switch--n4 { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
  .pv2-switch--n3 .pv2-switch-item, .pv2-switch--n4 .pv2-switch-item { flex: 0 0 84%; scroll-snap-align: start; }
  .pv2-stats { display: none; }
  .pv2-stats--m { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; padding: 12px 0; border-top: 1px solid var(--pv2-line); border-bottom: 1px solid var(--pv2-line); }
  .pv2-stats--m .pv2-stat { padding: 0; }
  .pv2-stats--m .pv2-stat strong { font-size: 20px; line-height: 1.2; }
  .pv2-tabs--line { display: none; }

  /* sticky pills */
  .pv2-tabs--pills { display: flex; gap: 8px; overflow-x: auto; position: sticky; top: var(--pv2-pill-top, 0px); z-index: 10; padding: 14px 16px; background: color-mix(in srgb, var(--pv2-bg) 95%, transparent); scrollbar-width: none; }
  .pv2-tabs--pills::-webkit-scrollbar { display: none; }
  .pv2-tabs--pills .pv2-tab { flex: 0 0 auto; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--pv2-ink) 12%, transparent); background: #FFFFFF; font-size: 14px; color: var(--pv2-text); }
  .pv2 .pv2-tabs--pills .pv2-tab.is-on { background: var(--pv2-ink); border-color: var(--pv2-ink); color: #FFFFFF; }

  .pv2-ownerbar-wrap { margin-top: 0; margin-bottom: 14px; }
  .pv2-ownerbar { grid-template-columns: minmax(0, 1fr); border-radius: 20px; }
  .pv2-cols { margin-top: 0; padding-bottom: 24px; gap: 14px; }

  /* compact service rows */
  .pv2-services-grid .pv2-g2 { gap: 10px; }
  .pv2-services-grid .pv2-head .pv2-more { display: none; }
  .pv2-svc { padding: 14px; display: flex; align-items: center; gap: 12px; }
  .pv2-svc .pv2-ic--50 { width: 44px; height: 44px; border-radius: 12px; }
  .pv2-svc .pv2-ic--50 svg { width: 20px; height: 20px; }
  .pv2-svc-body { flex: 1; min-width: 0; gap: 2px; }
  .pv2-svc-title { font-size: 15px; }
  .pv2-svc-text, .pv2-svc .pv2-svc-link { display: none; }
  .pv2-svc-short { display: block; font-size: 14px; }
  .pv2-svc-chev { display: block; color: var(--pv2-accent-deep); }
  .pv2-svc-row { grid-template-columns: auto minmax(0, 1fr); padding: 16px; gap: 14px; }
  .pv2-svc-row .pv2-btn { grid-column: 1 / -1; }

  /* overview posts: the newest one, no head */
  .pv2-posts-grid .pv2-head { display: none; }
  .pv2-posts-grid .pv2-post-card:nth-child(n+2) { display: none; }
  .pv2-post-thumb { height: 110px; }
  .pv2-post-type { left: 12px; bottom: 10px; padding: 4px 9px; }
  .pv2-post-body { padding: 14px; gap: 6px; }
  .pv2 .pv2-post-title { font-size: 16px; }
  .pv2-post-row, .pv2-post-row--compact { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .pv2-post-rthumb { height: 120px; }

  .pv2-rating { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .pv2-rating-score { display: flex; align-items: center; gap: 10px; }
  .pv2-rating-score .pv2-b7 { display: none; }
  .pv2-score { font-size: 32px; }
  .pv2-rating .pv2-stars { font-size: 16px; }
  .pv2-rating-quote { border-left: 0; padding-left: 0; }
  .pv2-quote { font-size: 16px; line-height: 1.4; }
  .pv2-rv-top { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .pv2-score--lg { font-size: 44px; }
  .pv2-empty { padding: 28px 18px; }
  .pv2-perf { flex-direction: column; align-items: flex-start; gap: 4px; }
  .pv2-rectop { grid-template-columns: minmax(0, 1fr); }

  /* contact card as the mobile board: values only */
  .pv2-contact { gap: 10px; }
  .pv2-crow-text small { display: none; }
  .pv2-crow .pv2-ic--40 { width: 38px; height: 38px; }
  .pv2-crow-text b { font-size: 14px; }
  .pv2-crow-text b.pv2-m-only { display: block; }

  /* bottom action bar */
  .pv2-mbar { display: grid; gap: 8px; position: sticky; bottom: 0; z-index: 20; padding: 12px 16px 18px; background: rgba(255,255,255,.96); border-top: 1px solid color-mix(in srgb, var(--pv2-ink) 10%, transparent); box-shadow: 0 -14px 30px -20px color-mix(in srgb, var(--pv2-ink) 50%, transparent); }
  .pv2-mbar--3 { grid-template-columns: 1fr 1fr 1.3fr; }
  .pv2-mbar--2 { grid-template-columns: 1fr 1.3fr; }
  .pv2-mbar .pv2-btn { padding: 0 12px; font-size: 14px; box-shadow: none; }
  .pv2-toast { bottom: 96px; }
  .pv2-mbar { padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
}

/* The portal's floating controls (admin Edit Page, the Support / Copilot launcher, back-to-top) sit
 * above the phone's bottom bar instead of on it. profile-v2.js sets body.pv2-has-mbar and
 * --pv2-mbar-h only while the bar is shown; the controls' own files are untouched. */
@media (max-width: 767px) {
  body.pv2-has-mbar .ig-edit-btn,
  body.pv2-has-mbar .qme-sw, body.pv2-has-mbar .qme-vw,
  body.pv2-has-mbar .tq-cp-launch, body.pv2-has-mbar .tq-totop,
  body.pv2-has-mbar #scrollUp, body.pv2-has-mbar .scroll-to-top, body.pv2-has-mbar .btn-scroll-top,
  body.pv2-has-mbar .progress-wrap, body.pv2-has-mbar .scrollup, body.pv2-has-mbar .back-to-top {
    bottom: calc(var(--pv2-mbar-h, 78px) + 12px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pv2-pulse, .pv2-drift { animation: none; }
  .pv2-btn, .pv2-lift { transition: none; }
}
