:root {
  --ovs-bg: #f6f7fb;
  --ovs-surface: #ffffff;
  --ovs-text: #111827;
  --ovs-muted: #6b7280;
  --ovs-primary: #2563eb;
  --ovs-border: #e5e7eb;
  --ovs-shadow: 0 8px 24px rgba(17, 24, 39, 0.08);
  --ovs-radius: 18px;
  --ovs-space-3: 16px;
  --ovs-space-4: 24px;
  --ovs-bottom-nav-height: 72px;
  --ovs-content-max: 760px;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--ovs-bg); color: var(--ovs-text); }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
.ovs-app-shell { width: min(100%, var(--ovs-content-max)); margin: 0 auto; padding: var(--ovs-space-3); padding-bottom: calc(var(--ovs-bottom-nav-height) + 32px); }
.ovs-site-header { position: sticky; top: 0; z-index: 40; background: rgba(246,247,251,.9); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(229,231,235,.8); }
.ovs-mobile-topbar { gap: var(--ovs-space-3); padding: var(--ovs-space-3); }
.ovs-home-hero,.ovs-filter-bar,.ovs-listing-row-card,.ovs-card { background: var(--ovs-surface); border: 1px solid var(--ovs-border); border-radius: var(--ovs-radius); box-shadow: var(--ovs-shadow); }
.ovs-home-hero { padding: var(--ovs-space-4); margin-bottom: var(--ovs-space-4); }
.ovs-btn,.wp-block-button__link,button,input[type="submit"] { min-height: 44px; border-radius: 14px; }
.ovs-btn { display:inline-flex; justify-content:center; align-items:center; gap:8px; padding:0 16px; border:1px solid var(--ovs-border); background:#fff; color:var(--ovs-text); font-weight:600; }
.ovs-btn--primary { background: var(--ovs-primary); color: #fff; border-color: var(--ovs-primary); }
.ovs-btn--ghost { background:#fff; }
.ovs-filter-bar { position: sticky; top: 72px; z-index: 20; padding: 12px; margin-bottom: 16px; overflow-x: auto; }
.ovs-bottom-nav { position: fixed; left: 50%; bottom: 0; transform: translateX(-50%); width: min(100%, var(--ovs-content-max)); height: var(--ovs-bottom-nav-height); background: rgba(255,255,255,.96); border-top:1px solid var(--ovs-border); display:grid; grid-template-columns: repeat(5,1fr); align-items:center; z-index:60; }
.ovs-bottom-nav__item { height:100%; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:4px; font-size:.72rem; color:var(--ovs-muted); }
.ovs-bottom-nav__item.is-active { color: var(--ovs-primary); font-weight:700; }
.ovs-bottom-nav__item.is-primary { transform: translateY(-12px); }
.ovs-bottom-nav__item.is-primary .ovs-bottom-nav__bubble { width:56px; height:56px; border-radius:999px; background:var(--ovs-primary); color:#fff; display:inline-flex; justify-content:center; align-items:center; box-shadow:var(--ovs-shadow); }
.ovs-sticky-cta-bar { position: fixed; left:50%; transform: translateX(-50%); bottom: var(--ovs-bottom-nav-height); width:min(calc(100% - 24px), calc(var(--ovs-content-max) - 24px)); display:grid; grid-template-columns:1fr 1fr 1.25fr; gap:10px; background:rgba(255,255,255,.94); padding:12px; border:1px solid var(--ovs-border); border-radius:20px; box-shadow:var(--ovs-shadow); z-index:55; }
.ovs-install-sheet { position: fixed; left:12px; right:12px; bottom: calc(var(--ovs-bottom-nav-height) + 12px); z-index:70; }
.ovs-install-sheet__inner { display:flex; justify-content:space-between; gap:16px; align-items:center; background:#fff; border:1px solid var(--ovs-border); border-radius:20px; padding:16px; box-shadow:var(--ovs-shadow); }
