/* Veritas HR — component styles shared by theme templates and plugin blocks. Tokens come from theme.json. */
:root { --v-radius: 12px; --v-shadow: 0 1px 2px rgba(27,26,23,.04); --v-bar-bg: #EDEAE2; }

/* Without this a width:100% input adds its padding and border on top of the container and overhangs it. */
*, *::before, *::after { box-sizing: border-box; }

/* ---- primitives ------------------------------------------------------------------------- */
.v-card { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--v-radius); }
.v-chip { display:inline-flex; align-items:center; gap:4px; min-height:30px; padding:0 12px; border-radius:999px; background:var(--wp--preset--color--surface); border:1px solid var(--wp--preset--color--border-2); font-size:13px; font-weight:500; color:var(--wp--preset--color--ink); text-decoration:none; }
a.v-chip:hover { border-color:var(--wp--preset--color--accent); color:var(--wp--preset--color--accent); }
.v-chip--soft { background:var(--wp--preset--color--accent-soft); border-color:var(--wp--preset--color--accent-soft); color:var(--wp--preset--color--accent); }
.v-chip--ink, a.v-chip--ink:hover { background:var(--wp--preset--color--ink); border-color:var(--wp--preset--color--ink); color:#fff; }
.v-chips { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.v-chips__label { line-height:30px; }
.v-tag { display:inline-flex; align-items:center; height:24px; padding:0 9px; border-radius:6px; background:var(--wp--preset--color--panel); font-size:12px; font-weight:600; color:var(--wp--preset--color--ink-2); text-decoration:none; }
.v-badge { display:inline-flex; align-items:center; gap:4px; height:22px; padding:0 8px; border-radius:6px; background:var(--wp--preset--color--accent-soft); color:var(--wp--preset--color--accent); font-size:11px; font-weight:700; letter-spacing:.02em; text-transform:uppercase; white-space:nowrap; }
.v-badge--muted { background:var(--wp--preset--color--panel); color:var(--wp--preset--color--muted); }
.v-badge--gold { background:var(--wp--preset--color--star); color:#fff; }
.v-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:0 18px; border-radius:8px; font-weight:600; font-size:14px; border:1px solid transparent; white-space:nowrap; cursor:pointer; text-decoration:none; font-family:inherit; line-height:1; }
.v-btn--primary { background:var(--wp--preset--color--accent); color:#fff; }
.v-btn--primary:hover { background:var(--wp--preset--color--accent-2); color:#fff; }
.v-btn--ghost { background:var(--wp--preset--color--surface); color:var(--wp--preset--color--ink); border-color:var(--wp--preset--color--border-2); }
.v-btn--ghost:hover { border-color:var(--wp--preset--color--accent); color:var(--wp--preset--color--accent); }
.v-btn--white { background:#fff; color:var(--wp--preset--color--accent); }
.v-btn--sm { min-height:38px; padding:0 12px; }
.v-btn:focus-visible { outline:2px solid var(--wp--preset--color--accent); outline-offset:2px; }
.v-bar { height:6px; border-radius:3px; background:var(--v-bar-bg); overflow:hidden; flex:1; min-width:60px; max-width:120px; }
.v-bar > span { display:block; height:100%; background:var(--wp--preset--color--accent); border-radius:3px; }
.v-bar-row { display:flex; align-items:center; gap:8px; }
.v-bar-row > .v-xs:first-child { width:88px; flex-shrink:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.v-bar-row__pct { width:32px; text-align:right; font-weight:600; }
.v-logo { width:56px; height:56px; border-radius:10px; background:var(--wp--preset--color--panel); display:flex; align-items:center; justify-content:center; font-family:var(--wp--preset--font-family--display); font-size:22px; color:var(--wp--preset--color--accent); flex-shrink:0; overflow:hidden; }
.v-logo img { width:100%; height:100%; object-fit:contain; }
.v-logo--mark { font-weight:600; letter-spacing:.02em; line-height:1; }
.v-logo--sm { width:36px; height:36px; font-size:15px; border-radius:8px; }
.v-logo--md { width:48px; height:48px; font-size:18px; }
.v-logo--xl { width:88px; height:88px; font-size:36px; border-radius:14px; }
.v-muted { color:var(--wp--preset--color--muted); }
.v-small { font-size:13px; }
.v-xs { font-size:12px; }
.v-stars { display:inline-flex; gap:1px; color:var(--wp--preset--color--star); vertical-align:middle; }
.v-rating { display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
.v-rating__avg { font-size:14px; }
.v-input, .v-search input, .v-search select { display:flex; align-items:center; gap:10px; min-height:44px; padding:0 16px; background:var(--wp--preset--color--surface); border:1px solid var(--wp--preset--color--border-2); border-radius:10px; font:inherit; width:100%; color:inherit; }
.v-input:focus, .v-search input:focus, .v-search select:focus, .v-select:focus { outline:2px solid var(--wp--preset--color--accent); outline-offset:1px; }
.v-divider { border:0; border-top:1px solid var(--wp--preset--color--border); margin:6px 0; }
.v-empty { padding:24px; text-align:center; color:var(--wp--preset--color--muted); display:flex; flex-direction:column; gap:12px; align-items:center; }
.v-empty p { margin:0; }
.v-grid { display:grid; gap:16px; grid-template-columns:1fr; }
.v-section { margin-top:40px; }
.v-section > h2, .v-section > .wp-block-heading { margin:0 0 12px; font-size:28px; }
.v-section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:16px; flex-wrap:wrap; }
.v-section-head h2 { margin:0; font-size:30px; }
.v-more { display:inline-flex; align-items:center; gap:6px; min-height:24px; font-weight:600; font-size:14px; }
.v-rail-card { padding:18px; display:flex; flex-direction:column; gap:10px; }
.v-rail-title { display:block; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.skip-link:focus { position:fixed; top:8px; left:8px; width:auto; height:auto; clip:auto; z-index:1000; padding:8px 12px; background:#fff; }
.v-icon { flex-shrink:0; }

/* ---- header ----------------------------------------------------------------------------- */
.v-header { position:relative; background:var(--wp--preset--color--base); }
.v-header__bar { padding:12px 0; gap:20px; min-width:0; align-items:center; }
.v-brand { display:inline-flex; align-items:center; gap:10px; color:var(--wp--preset--color--ink); text-decoration:none; font-family:var(--wp--preset--font-family--display); font-size:22px; line-height:1; white-space:nowrap; flex-shrink:0; }
.v-brand__word span { color:var(--wp--preset--color--accent); }
body.v-no-scroll { overflow:hidden; }

/* ---- header: mega nav ------------------------------------------------------------------- */
.v-mega { display:flex; align-items:center; gap:20px; flex:1; min-width:0; justify-content:space-between; }
.v-mega__burger { display:none; align-items:center; justify-content:center; width:44px; height:44px; margin-inline-start:auto; padding:0; border:0; border-radius:var(--v-radius); background:transparent; color:var(--wp--preset--color--ink); cursor:pointer; }
.v-mega__burger:hover { background:var(--wp--preset--color--surface, #f3f1ec); }
.v-mega__burger-close { display:none; }
.v-mega.is-open .v-mega__burger-open { display:none; }
.v-mega.is-open .v-mega__burger-close { display:inline-flex; }
.v-mega__drawer { display:flex; align-items:center; gap:20px; flex:1; min-width:0; justify-content:space-between; }
.v-mega__list { display:flex; align-items:center; gap:4px; margin:0; padding:0; list-style:none; min-width:0; }
.v-mega__item { position:static; }
.v-mega__top { display:inline-flex; align-items:center; gap:5px; padding:9px 12px; border:0; border-radius:var(--v-radius); background:transparent; font:inherit; font-size:14px; font-weight:500; line-height:1.2; color:var(--wp--preset--color--ink); text-decoration:none; white-space:nowrap; cursor:pointer; }
.v-mega__top:hover, .v-mega__top[aria-expanded="true"] { color:var(--wp--preset--color--accent); background:var(--wp--preset--color--surface, #f3f1ec); }
.v-mega__chev { transition:transform .15s ease; }
.v-mega__top[aria-expanded="true"] .v-mega__chev { transform:rotate(180deg); }
.v-mega__panel[hidden] { display:none; }
.v-mega__panel { position:absolute; inset-inline:0; top:100%; z-index:40; background:var(--wp--preset--color--base); border-top:1px solid var(--wp--preset--color--border); box-shadow:0 18px 40px rgba(0,0,0,.09); }
.v-mega__inner { max-width:1200px; margin-inline:auto; padding:28px 24px 24px; }
.v-mega__cols { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:28px 32px; }
.v-mega__h { margin:0 0 10px; font-family:inherit; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--wp--preset--color--muted); }
.v-mega__links { margin:0; padding:0; list-style:none; display:grid; gap:2px; }
.v-mega__links a { display:block; padding:6px 0; font-size:14px; line-height:1.45; color:var(--wp--preset--color--ink); text-decoration:none; }
.v-mega__links a:hover { color:var(--wp--preset--color--accent); text-decoration:underline; }
.v-mega__all { display:inline-flex; align-items:center; gap:7px; margin-top:22px; padding-top:16px; border-top:1px solid var(--wp--preset--color--border); width:100%; font-size:14px; font-weight:600; color:var(--wp--preset--color--accent); text-decoration:none; }
.v-mega__all:hover { text-decoration:underline; }
.v-mega__cta { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.v-mega__login { font-size:14px; font-weight:600; color:var(--wp--preset--color--ink); text-decoration:none; white-space:nowrap; }
.v-mega__login:hover { color:var(--wp--preset--color--accent); }
.v-mega__cta .v-btn { min-height:40px; white-space:nowrap; }

@media (max-width: 899px) {
	.v-mega__burger { display:inline-flex; margin-inline-start:4px; order:3; }
	.v-mega__drawer { display:none; position:absolute; top:100%; inset-inline:0; max-height:calc(100vh - 100%); z-index:50; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; padding:8px 20px 32px; overflow-y:auto; overscroll-behavior:contain; background:var(--wp--preset--color--base); border-top:1px solid var(--wp--preset--color--border); }
	.v-mega.is-open .v-mega__drawer { display:flex; }
	.v-mega__list { flex-direction:column; align-items:stretch; gap:0; }
	.v-mega__item { border-bottom:1px solid var(--wp--preset--color--border); }
	.v-mega__top { width:100%; justify-content:space-between; padding:16px 2px; font-size:17px; border-radius:0; min-height:44px; }
	.v-mega__top:hover, .v-mega__top[aria-expanded="true"] { background:transparent; }
	.v-mega__panel { position:static; border:0; box-shadow:none; background:transparent; }
	.v-mega__inner { padding:0 0 14px; max-width:none; }
	.v-mega__cols { grid-template-columns:1fr; gap:20px; }
	.v-mega__links a { padding:9px 0; }
	.v-mega__all { margin-top:16px; }
	.v-mega__login { display:none; }
	.v-mega__cta { margin-inline-start:auto; }
	.v-mega__cta .v-btn { padding:0 12px; min-height:42px; font-size:13px; }
}
@media (max-width: 479px) { .v-brand__word { display:none; } .v-header__bar { gap:8px; } }

/* ---- figures --------------------------------------------------------------------------- */
.v-rankfig { margin:24px 0; padding:22px 24px; background:var(--wp--preset--color--surface); border:1px solid var(--wp--preset--color--border); border-radius:var(--v-radius); }
.v-rankfig__svg { display:block; max-width:100%; height:auto; overflow:visible; }
.v-rankfig__label { font-size:14px; font-weight:600; fill:var(--wp--preset--color--ink); }
.v-rankfig__note { font-size:11.5px; fill:var(--wp--preset--color--muted); }
.v-rankfig__pct { font-size:13px; font-weight:700; fill:var(--wp--preset--color--ink-2); }
.v-rankfig__bar { fill:var(--wp--preset--color--accent-soft); }
/* The lead signal carries the accent so the hierarchy survives being read at a glance. */
.v-rankfig__bar.is-lead { fill:var(--wp--preset--color--accent); }
.v-rankfig figcaption { margin-top:14px; }
@media (max-width: 599px) { .v-rankfig { padding:16px; } }

/* ---- consent banner ----------------------------------------------------------------------- */
.v-consent { position:fixed; inset-inline:0; bottom:0; z-index:60; background:var(--wp--preset--color--surface); border-top:1px solid var(--wp--preset--color--border); box-shadow:0 -8px 28px rgba(0,0,0,.08); }
.v-consent__inner { max-width:1200px; margin-inline:auto; padding:16px 24px; display:flex; flex-wrap:wrap; gap:14px 24px; align-items:center; justify-content:space-between; }
.v-consent__title { margin:0 0 2px; font-weight:600; }
.v-consent__text { margin:0; color:var(--wp--preset--color--ink-2); max-width:70ch; }
.v-consent__actions { display:flex; gap:10px; flex-shrink:0; }
/* Decline is the same size and weight as Accept: a consent choice must not be nudged. */
.v-consent__actions .v-btn { min-height:44px; }
@media (max-width: 767px) {
	.v-consent__inner { padding:14px 20px; }
	.v-consent__actions { width:100%; }
	.v-consent__actions .v-btn { flex:1; justify-content:center; }
}

/* ---- account dashboard -------------------------------------------------------------------- */
.vhr-account__head { display:flex; flex-wrap:wrap; gap:14px; align-items:flex-start; justify-content:space-between; }
.vhr-account__hello { margin:0 0 4px; }
.vhr-account__meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0; }
.vhr-account__stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:12px; margin-top:18px; }
.vhr-stat { background:var(--wp--preset--color--surface); border:1px solid var(--wp--preset--color--border); border-radius:var(--v-radius); padding:16px 18px; }
.vhr-stat__n { display:block; font-family:var(--wp--preset--font-family--display); font-size:30px; line-height:1.1; color:var(--wp--preset--color--ink); }
.vhr-stat__l { display:block; margin-top:2px; font-size:13px; color:var(--wp--preset--color--muted); }
.vhr-account__section { margin-top:16px; padding:20px; }
.vhr-account__section > h3 { margin:0 0 14px; }
.vhr-tablewrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.vhr-table { width:100%; border-collapse:collapse; font-size:14px; }
.vhr-table th { text-align:left; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--wp--preset--color--muted); padding:0 14px 8px 0; border-bottom:1px solid var(--wp--preset--color--border); white-space:nowrap; }
.vhr-table td { padding:12px 14px 12px 0; border-bottom:1px solid var(--wp--preset--color--border); vertical-align:top; }
.vhr-table tr:last-child td { border-bottom:0; }
.vhr-table td:last-child, .vhr-table th:last-child { padding-right:0; }
.v-badge--muted { background:var(--wp--preset--color--panel); color:var(--wp--preset--color--muted); }
@media (max-width: 767px) {
	.vhr-account__head { flex-direction:column; }
	.vhr-account__head .vhr-actions { width:100%; }
	.vhr-account__head .v-btn { flex:1 1 auto; justify-content:center; }
	.vhr-table { font-size:13px; }
}

/* ---- auth (login / sign-up) --------------------------------------------------------------- */
.vhr-auth__cols { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:20px; align-items:start; }
.vhr-auth__panel { padding:24px; }
.vhr-auth__panel h2 { margin:0 0 4px; }
.vhr-auth__panel .vhr-form { margin-top:18px; }
.vhr-check { display:flex; align-items:center; gap:8px; font-size:14px; min-height:44px; }
.vhr-check input { width:18px; height:18px; }

/* ---- page frame ------------------------------------------------------------------------- */
.v-page { padding-top:22px; }
.v-crumbs ol { list-style:none; margin:0; padding:0; display:inline-flex; flex-wrap:wrap; gap:6px; align-items:center; }
.v-crumbs li::marker { content:''; }
.v-crumbs li { display:inline-flex; align-items:center; gap:6px; }
.v-crumbs a { color:inherit; display:inline-flex; align-items:center; min-height:24px; } /* WCAG 2.5.8 minimum target */
.v-crumbs [aria-current] { color:var(--wp--preset--color--ink); font-weight:700; }
.v-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-top:14px; flex-wrap:wrap; }
.v-intro h1 { margin:0 0 8px; font-size:var(--wp--preset--font-size--title); font-family:var(--wp--preset--font-family--display); font-weight:400; line-height:1.1; letter-spacing:-0.01em; }
.v-intro__lead { margin-top:0; max-width:720px; font-size:16px; line-height:1.5; color:var(--wp--preset--color--muted); }
.v-intro__lead p { margin:0; }
.v-page > .v-chips { margin-top:22px; }

/* ---- hub two-column --------------------------------------------------------------------- */
.v-hub { display:grid; gap:24px; margin-top:24px; align-items:start; }
.v-hub__rail { display:flex; flex-direction:column; gap:14px; }
@media (min-width: 1024px) {
  .v-hub { grid-template-columns:260px minmax(0,1fr); gap:32px; margin-top:28px; }
  .v-hub--software { grid-template-columns:minmax(0,1fr) 320px; }
  .v-filters { position:sticky; top:20px; max-height:calc(100vh - 40px); overflow:auto; }
}
.v-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.v-sort { display:flex; align-items:center; gap:8px; }
.v-select { appearance:none; -webkit-appearance:none; padding-right:28px; background:var(--wp--preset--color--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231B1A17' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center; cursor:pointer; font-family:inherit; }
.v-sponsored { padding:14px 20px; margin-bottom:14px; display:flex; gap:10px 14px; align-items:center; flex-wrap:wrap; background:var(--wp--preset--color--sponsored); border-color:#F0E2B8; }
.v-sponsored__link { margin-left:auto; font-weight:600; display:inline-flex; align-items:center; gap:4px; }
.v-listings__rows { display:flex; flex-direction:column; gap:12px; }
.v-pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:6px; margin-top:24px; }
.v-pagination .page-numbers, .v-pagination a, .v-pagination .wp-block-query-pagination-numbers .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:38px; min-height:38px; padding:0 12px; border-radius:999px; border:1px solid var(--wp--preset--color--border-2); background:var(--wp--preset--color--surface); font-size:13px; font-weight:500; color:var(--wp--preset--color--ink); text-decoration:none; }
.v-pagination .page-numbers.current { background:var(--wp--preset--color--accent); border-color:var(--wp--preset--color--accent); color:#fff; }
.v-pagination .page-numbers.dots { border:0; background:none; }
.v-nearby { margin-top:40px; }
.v-faq { margin-top:56px; }
.v-faq h2 { margin:0 0 14px; font-size:30px; }
.v-faq__item { border-top:1px solid var(--wp--preset--color--border); }
.v-faq__item:first-child { border-top:0; }
.v-faq__item summary { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 20px; cursor:pointer; list-style:none; min-height:44px; }
.v-faq__item summary::-webkit-details-marker { display:none; }
.v-faq__item[open] summary .v-icon { transform:rotate(45deg); }
.v-faq__answer { padding:0 20px 16px; }
.v-faq__answer p { margin:0 0 8px; }

/* ---- filter rail ------------------------------------------------------------------------ */
.v-filters { padding:4px 20px 8px; }
.v-filters__head { display:flex; justify-content:space-between; align-items:center; padding:14px 0; cursor:pointer; list-style:none; min-height:44px; }
.v-filters__head::-webkit-details-marker { display:none; }
.v-filters__head b { display:flex; gap:8px; align-items:center; }
.v-filters__reset { font-weight:600; }
.v-filters__group { border:0; border-top:1px solid var(--wp--preset--color--border); margin:0; padding:16px 0; display:flex; flex-direction:column; gap:8px; min-width:0; }
.v-filters__group legend { font-weight:700; padding:0; margin-bottom:10px; float:left; width:100%; }
.v-check { display:flex; align-items:center; gap:8px; cursor:pointer; min-height:28px; }
.v-check input { position:absolute; opacity:0; width:1px; height:1px; }
.v-check__box { width:16px; height:16px; border:1.5px solid #C9C5BA; border-radius:4px; background:#fff; display:inline-flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0; }
.v-check input:checked + .v-check__box { background:var(--wp--preset--color--accent); border-color:var(--wp--preset--color--accent); }
.v-check input:focus-visible + .v-check__box { outline:2px solid var(--wp--preset--color--accent); outline-offset:1px; }
.v-filters__apply { width:100%; margin:8px 0 10px; }
.v-sfilter { padding:20px; display:flex; flex-direction:column; gap:14px; }
.v-sfilter .v-xs { margin-bottom:6px; }

/* ---- listing row ------------------------------------------------------------------------ */
.v-row { padding:20px; display:grid; gap:16px; align-items:start; }
.v-row--featured { border-color:#F0E2B8; }
.v-row__main { display:flex; gap:16px; min-width:0; }
.v-row__id { min-width:0; }
.v-row__title { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.v-row__title h2, .v-row__title h3 { margin:0; font-size:22px; }
.v-row__title a { color:inherit; }
.v-row__tagline { margin:4px 0 8px; }
.v-row__facts { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.v-row__facts li { display:flex; gap:8px; align-items:center; }
.v-row__facts .v-icon { color:var(--wp--preset--color--muted); }
.v-row__focus .v-focus-mini { display:flex; flex-direction:column; gap:10px; }
.v-focus-mini__label { margin-bottom:4px; }
.v-row__actions { display:flex; gap:8px; }
.v-row__actions .v-btn { flex:1; }
.v-row--plain { display:block; }
.v-row--plain h2, .v-row--plain h3 { margin:0 0 6px; font-size:20px; }
@media (min-width: 768px) {
  .v-row { grid-template-columns:minmax(0,1fr) 200px; padding:22px 24px; gap:20px; }
  .v-row__main { grid-column:1 / -1; }
  .v-row__actions { grid-column:2; grid-row:2; flex-direction:column; }
  .v-row__focus { grid-column:1; grid-row:2; }
  .v-row__facts { grid-column:1; grid-row:3; }
}
@media (min-width: 1024px) {
  .v-row { grid-template-columns:repeat(12,minmax(0,1fr)); }
  .v-row__main { grid-column:span 5; grid-row:1; }
  .v-row__facts { grid-column:span 3; grid-row:1; }
  .v-row__focus { grid-column:span 3; grid-row:1; }
  .v-row__actions { grid-column:span 1; grid-row:1; flex-direction:column; }
  .v-row__actions .v-btn { padding:0 8px; }
}
.v-mini { display:flex; gap:10px; align-items:center; color:inherit; text-decoration:none; min-height:44px; }
.v-mini > span { display:flex; flex-direction:column; min-width:0; }
.v-mini__body { flex:1; }
.v-mini__count { display:inline-flex; align-items:center; gap:3px; font-weight:700; color:var(--wp--preset--color--accent); }
.v-mini b { color:var(--wp--preset--color--ink); }
.v-mini:hover b { color:var(--wp--preset--color--accent); }

/* ---- software rows ---------------------------------------------------------------------- */
.v-software__rows { overflow:hidden; }
.v-software__period { padding:14px 22px; background:var(--wp--preset--color--panel); font-weight:700; }
.v-srow { display:flex; align-items:center; gap:14px; padding:16px 20px; border-top:1px solid var(--wp--preset--color--border); flex-wrap:wrap; }
.v-software__rows > .v-srow:first-child { border-top:0; }
.v-srow--ranked { padding:18px 22px; gap:18px; }
.v-srow__rank { width:20px; flex-shrink:0; }
.v-srow__body { flex:1; min-width:180px; }
.v-srow__title { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.v-srow__title b, .v-srow__title .v-srow__name { font-size:17px; }
.v-srow__name { margin:0; font-family:inherit; font-weight:700; letter-spacing:0; line-height:inherit; }
.v-srow__title a { color:inherit; }
.v-srow__title a:hover { color:var(--wp--preset--color--accent); }
.v-srow--compact .v-srow__title b, .v-srow--compact .v-srow__name { font-size:16px; }
.v-srow__meta { display:flex; gap:6px; margin-top:8px; align-items:center; flex-wrap:wrap; }
.v-srow__price { margin-left:6px; }
.v-srow__rating { display:flex; align-items:center; gap:6px; }
.v-upvote { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; width:60px; height:60px; border:1px solid var(--wp--preset--color--border-2); border-radius:10px; background:#fff; color:var(--wp--preset--color--accent); flex-shrink:0; }
.v-upvote b { color:var(--wp--preset--color--ink); }
.v-srow--compact .v-upvote { width:56px; height:56px; }
.v-sortchips { margin-bottom:12px; }
.v-software__minis { display:flex; flex-direction:column; gap:10px; }

/* ---- home ------------------------------------------------------------------------------- */
.v-hero { padding:48px 0 40px; text-align:center; }
.v-hero__kicker { justify-content:center; margin-bottom:22px; }
.v-hero__title { font-size:var(--wp--preset--font-size--hero); line-height:1.05; max-width:820px; margin:0 auto; }
.v-hero__title em { font-style:italic; color:var(--wp--preset--color--accent); }
.v-hero__lead { font-size:18px; max-width:600px; margin:20px auto 34px; }
.v-search { display:flex; gap:10px; max-width:820px; margin:0 auto; background:#fff; border:1px solid var(--wp--preset--color--border-2); border-radius:14px; padding:8px; flex-wrap:wrap; }
.v-search__field { display:flex; align-items:center; gap:10px; flex:1 1 240px; min-height:48px; padding:0 8px 0 12px; }
.v-search__field--city { flex:0 1 220px; }
.v-search input, .v-search select { border:0; padding:0; min-height:48px; background:transparent; }
.v-search input::placeholder { color:var(--wp--preset--color--placeholder); }
.v-search__sep { width:1px; background:var(--wp--preset--color--border); margin:8px 0; }
.v-search__btn { min-height:48px; padding:0 24px; flex:1 1 100%; }
@media (min-width: 768px) { .v-search { flex-wrap:nowrap; } .v-search__btn { flex:0 0 auto; } }
@media (max-width: 767px) { .v-search__sep { display:none; } .v-search__field--city { flex:1 1 240px; } .v-chips { gap:6px; } .v-hero { padding-top:32px; } .v-hero__title { font-size:36px; } }
.v-hero__chips, .v-hero > .v-chips { justify-content:center; margin-top:10px; }
.v-hero__chips { margin-top:18px; }
.v-verticals { display:grid; gap:20px; }
.v-vertical { padding:32px; display:flex; justify-content:space-between; align-items:flex-end; gap:20px; min-height:170px; color:var(--wp--preset--color--ink); text-decoration:none; flex-wrap:wrap; }
.v-vertical h2 { margin:8px 0 0; font-size:32px; }
.v-vertical__kicker { font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.v-vertical__sub { margin-top:8px; }
.v-vertical--accent { background:var(--wp--preset--color--accent); border-color:var(--wp--preset--color--accent); color:#fff; }
.v-vertical--accent .v-vertical__kicker { opacity:.75; }
.v-vertical--accent .v-vertical__sub { opacity:.85; }
.v-home__section { margin-top:64px; }
.v-home__split { display:grid; gap:20px; align-items:start; }
.v-cta { padding:28px; display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.v-cta p { margin:0; }
.v-cta h3 { margin:0; font-size:26px; }
.v-cta__h3 { font-size:22px !important; }
.v-cta--panel { background:var(--wp--preset--color--panel); border-color:var(--wp--preset--color--panel); }
.v-cta--panel .v-divider { width:100%; }
.v-cta--accent { background:var(--wp--preset--color--accent); border-color:var(--wp--preset--color--accent); color:#fff; padding:20px; gap:6px; }
.v-cta--accent p { opacity:.85; margin-bottom:8px; }
.v-cta--accent .v-btn { min-height:40px; }
.v-guide-card { padding:20px; display:flex; flex-direction:column; gap:8px; color:var(--wp--preset--color--ink); text-decoration:none; }
.v-guide-card__title { font-size:16px; line-height:1.3; }
.v-guide-card h3 { margin:0; font-size:20px; }
.v-guide-card:hover .v-guide-card__title { color:var(--wp--preset--color--accent); }
@media (min-width: 768px) {
  .v-verticals { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v-grid--2, .v-grid--3, .v-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v-home__split { grid-template-columns:2fr 1fr; }
  .v-hero { padding:72px 0 56px; }
}
@media (min-width: 1024px) {
  .v-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
  .v-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* ---- profile ---------------------------------------------------------------------------- */
.v-profile-layout { display:grid; gap:32px; margin-top:20px; align-items:start; }
.v-profile-layout__rail { display:flex; flex-direction:column; gap:14px; }
@media (min-width: 1024px) {
  .v-profile-layout { grid-template-columns:minmax(0,1fr) 340px; gap:40px; }
  .v-profile-layout__rail { position:sticky; top:20px; }
}
.v-profile { display:flex; gap:20px; align-items:flex-start; }
.v-profile__body { flex:1; min-width:0; }
.v-profile__title { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.v-profile__title h1 { margin:0; font-size:40px; }
.v-profile__tagline { margin:4px 0 12px; font-size:17px; }
.v-profile__rating { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.v-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-top:28px; }
.v-stat { padding:12px 14px; }
.v-stat b { display:block; }
.v-tabs { display:flex; gap:28px; margin-top:36px; border-bottom:1px solid var(--wp--preset--color--border); overflow-x:auto; }
.v-tabs a { padding:0 0 12px; font-weight:600; font-size:14px; color:var(--wp--preset--color--muted); white-space:nowrap; border-bottom:2px solid transparent; margin-bottom:-1px; min-height:44px; display:inline-flex; align-items:flex-end; }
.v-tabs a:hover, .v-tabs a:first-child { color:var(--wp--preset--color--accent); border-color:var(--wp--preset--color--accent); }
.v-prose { max-width:720px; }
.v-prose > :first-child { margin-top:0; }
.v-prose--article { max-width:760px; margin-inline:auto; font-size:17px; line-height:1.65; }
.v-terms { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.v-terms .wp-block-post-terms__separator { display:none; }
.v-terms a { text-decoration:none; }
.v-terms--tags a { display:inline-flex; align-items:center; height:24px; padding:0 9px; border-radius:6px; background:var(--wp--preset--color--panel); font-size:12px; font-weight:600; color:var(--wp--preset--color--ink-2); }
.v-terms--chips a, .v-terms--chips-soft a { display:inline-flex; align-items:center; min-height:30px; padding:0 12px; border-radius:999px; background:var(--wp--preset--color--surface); border:1px solid var(--wp--preset--color--border-2); font-size:13px; font-weight:500; color:var(--wp--preset--color--ink); }
.v-terms--chips-soft a { background:var(--wp--preset--color--accent-soft); border-color:var(--wp--preset--color--accent-soft); color:var(--wp--preset--color--accent); }
.v-termgroups { margin-top:14px; }
.v-termgroup .v-xs { margin:0 0 8px; }
.v-termgroup .v-terms { margin-top:0; }
.v-termgroup:not(:has(.wp-block-post-terms)) { display:none; }
.v-section .v-termgroup { margin-top:16px; }
.v-focus-grid { display:grid; gap:20px; margin-top:14px; }
@media (min-width: 768px) { .v-focus-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.v-focus-card { padding:20px; }
.v-focus-card__title { display:block; margin-bottom:12px; }
.v-focus-card__rows { display:flex; flex-direction:column; gap:9px; }
.v-focus-card .v-bar { max-width:110px; }
.v-portfolio-card { padding:18px; }
.v-portfolio-card b { display:block; margin:4px 0 8px; }
.v-portfolio-card p { margin:0; }
.v-contact { padding:22px; display:flex; flex-direction:column; gap:10px; }
.v-contact__title { font-size:16px; }
.v-contact .vhr-block { background:transparent; border:0; border-radius:0; }
.v-contact .vhr-block > h3 { margin:0 0 8px; font-size:16px; }
.v-contact .vhr-block > p { margin:0 0 14px; }
.v-map { padding:18px; }
.v-map__box { height:150px; border-radius:8px; background:var(--v-bar-bg); margin-top:10px; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; text-align:center; }
.v-map__link { display:inline-flex; align-items:center; gap:4px; margin-top:10px; font-weight:600; display:inline-flex; align-items:center; min-height:24px; }
.v-pricing { padding:20px; display:flex; flex-direction:column; gap:10px; }
.v-pricing__from { display:flex; flex-direction:column; }
.v-pricing__from b { font-size:24px; font-family:var(--wp--preset--font-family--display); }
.v-pricing__facts { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.v-features { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.v-features li { display:flex; gap:8px; align-items:center; }
.v-features .v-icon { color:var(--wp--preset--color--accent); }
@media (min-width: 768px) { .v-features { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.v-shots__track { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:6px; }
.v-shots__item { margin:0; flex:0 0 min(80%,520px); scroll-snap-align:start; overflow:hidden; }
.v-shots__img { display:block; width:100%; height:auto; }
.v-actions { display:flex; gap:10px; margin-top:18px; align-items:center; flex-wrap:wrap; }

/* ---- article / page / 404 ---------------------------------------------------------------- */
.v-article__head { margin-top:16px; }
.v-article__head h1 { margin:12px 0 0; }
.v-article__lead { font-size:18px; margin-top:12px; }
.v-article__meta { margin-top:12px; gap:6px; }
.v-article__meta p { margin:0; }
.v-article__img { margin-top:28px; border-radius:var(--v-radius); overflow:hidden; }
.v-article .wp-block-post-content { margin-top:28px; }
.v-404 { text-align:center; padding-top:64px; }
.v-404 .v-search { margin:24px auto; }
.v-404 .v-chips { justify-content:center; }
.v-search--inline { max-width:560px; }

/* mobile: tighter hero top spacing */
@media (max-width: 640px) { .v-hero, .wp-block-veritas-directory-hero { padding-top: 24px !important; } }
/* a11y: footer links get 24px+ hit targets; card eyebrow contrast */
footer .wp-block-list li { padding: 4px 0; }
footer .wp-block-list a { display: inline-block; min-height: 24px; line-height: 24px; }
.v-card .v-xs.v-muted, .v-eyebrow { color: #4B4840; }

/* ---- term intro (below the grid) --------------------------------------------------------- */
.v-term-intro { margin-top:48px; max-width:760px; }
.v-term-intro h2 { margin:0 0 12px; font-size:26px; }
.v-term-intro__body p { margin:0 0 12px; font-size:15px; color:var(--wp--preset--color--ink-2); }

/* ---- mega footer (veritas/footer-links) -------------------------------------------------- */
.v-footer__top { display:flex; justify-content:space-between; align-items:flex-start; gap:16px 24px; flex-wrap:wrap; padding-bottom:28px; border-bottom:1px solid var(--wp--preset--color--border-2); }
.v-footer__brand { max-width:420px; }
.v-footer__tagline { margin:10px 0 0; }
.v-footer__cta { min-height:40px; padding:0 14px; font-size:13px; }
.v-footer__cols { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 20px; margin-top:28px; }
.v-footer__col { min-width:0; }
.v-footer__h { margin:0 0 6px; font-family:var(--wp--preset--font-family--body); font-size:13px; font-weight:700; line-height:1.4; }
.v-footer__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.v-footer__list li { margin:0; }
.v-footer__list a { display:inline-flex; align-items:center; min-height:36px; padding:5px 0; font-size:13px; line-height:1.3; color:var(--wp--preset--color--ink-2); text-decoration:none; }
.v-footer__list a:hover { color:var(--wp--preset--color--accent); text-decoration:underline; }
.v-footer__quick { margin-top:28px; padding-top:20px; border-top:1px solid var(--wp--preset--color--border-2); }
.v-footer__list--row { flex-direction:row; flex-wrap:wrap; gap:0 20px; }
.v-footer__legal { display:flex; justify-content:space-between; gap:6px 24px; flex-wrap:wrap; margin-top:24px; padding-top:16px; border-top:1px solid var(--wp--preset--color--border-2); }
@media (max-width: 767px) { .v-footer__list a { min-height:44px; padding:9px 0; } }
.v-guide-card .wp-block-post-terms a { display:inline-flex; align-items:center; min-height:24px; }

/* Touch targets: the 38px compact sizes read fine under a mouse but are tight under a thumb. */
@media (max-width: 767px) {
	.v-btn--sm { min-height:44px; padding:0 14px; }
	.v-pagination .page-numbers, .v-pagination a { min-width:44px; min-height:44px; }
	.v-brand { min-height:44px; }
}
@media (min-width: 768px) { .v-footer__cols { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width: 1024px) { .v-footer__cols { grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px 32px; } }
