.tab-bar {
  display: inline-flex;
  gap: 0.4rem;
  background: var(--color-surface-sunken);
  padding: 0.35rem;
  border-radius: 999px;
  margin-bottom: 1rem;
}
.tab-btn {
  border: none;
  background: transparent;
  padding: 0.55rem 1.1rem;
  border-radius: 999px;
  font: inherit;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--color-text-muted);
  cursor: pointer;
  transition: background var(--duration-fast) var(--ease-out-expo), color var(--duration-fast) var(--ease-out-expo);
}
.tab-btn.is-active {
  background: var(--color-surface);
  color: var(--color-accent-strong);
  box-shadow: var(--shadow-card);
}
.tab-btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

.mock-site-wrap { padding-block: 0.5rem 3rem; }
.mock-site-wrap.is-hidden { display: none; }

.browser-frame {
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-lifted);
  background: var(--color-surface);
}
.browser-frame .browser-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0.6rem 0.9rem;
  background: var(--color-surface-sunken);
  border-bottom: 1px solid var(--color-border);
}
.browser-frame .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--color-border); }
.browser-frame .url {
  margin-left: 0.75rem;
  font-size: 0.78rem;
  color: var(--color-text-muted);
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
}

.mock-site { font-family: var(--font-body); }
.mock-site section { padding: clamp(1.5rem, 3vw, 2.75rem) clamp(1.25rem, 3vw, 2.75rem); }

.m-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem clamp(1.25rem, 3vw, 2.75rem);
  border-bottom: 1px solid var(--color-border);
}
.m-logo { font-family: var(--font-display); font-weight: 600; font-size: 1.05rem; }
.m-header nav { display: flex; gap: 1.25rem; font-size: 0.85rem; }
.m-header nav a { text-decoration: none; color: var(--color-text-muted); }

.m-hero { text-align: left; }
.m-hero h1 { font-size: clamp(1.6rem, 3vw, 2.4rem); max-width: 18ch; margin-bottom: 0.6rem; }
.m-hero p { color: var(--color-text-muted); max-width: 46ch; margin-bottom: 1.25rem; }
.m-cta {
  display: inline-block;
  padding: 0.65rem 1.3rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.88rem;
}

.m-services h2, .m-testimonials h2, .m-contact h2 { font-size: 1.3rem; margin-bottom: 1rem; }
.m-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.m-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 1.1rem;
  background: var(--color-surface);
}
.m-icon { width: 34px; height: 34px; border-radius: 9px; margin-bottom: 0.6rem; }
.m-card h3 { font-size: 1rem; margin-bottom: 0.3rem; }
.m-card p { font-size: 0.85rem; color: var(--color-text-muted); margin: 0; }

.m-quotes { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.m-quotes blockquote {
  margin: 0;
  padding: 1rem 1.1rem;
  border-left: 3px solid var(--color-border);
  font-size: 0.92rem;
  color: var(--color-text);
}
.m-quotes cite { display: block; margin-top: 0.5rem; font-size: 0.8rem; color: var(--color-text-muted); font-style: normal; }

.m-contact p { color: var(--color-text-muted); margin-bottom: 1rem; font-size: 0.9rem; }

/* Theme: neutral (before) */
.theme-neutral { background: oklch(98.5% 0.002 80); }
.theme-neutral .m-hero { background: oklch(96% 0.005 80); }
.theme-neutral .m-icon { background: oklch(88% 0.01 80); }
.theme-neutral .m-cta { background: oklch(30% 0.01 80); color: oklch(98% 0 0); }
.theme-neutral .m-services, .theme-neutral .m-testimonials, .theme-neutral .m-contact { border-top: 1px solid var(--color-border); }

/* Theme: client (after) */
.theme-client { background: oklch(98% 0.015 150); }
.theme-client .m-hero { background: linear-gradient(135deg, oklch(32% 0.08 150), oklch(45% 0.09 155)); }
.theme-client .m-hero h1, .theme-client .m-hero p { color: oklch(97% 0.01 150); }
.theme-client .m-hero p { opacity: 0.9; }
.theme-client .m-icon { background: oklch(85% 0.08 150); }
.theme-client .m-cta { background: oklch(35% 0.08 150); color: oklch(98% 0 0); }
.theme-client .m-services, .theme-client .m-testimonials, .theme-client .m-contact { border-top: 1px solid oklch(88% 0.03 150); }

@media (max-width: 760px) {
  .m-cards, .m-quotes { grid-template-columns: 1fr; }
  .m-header nav { display: none; }
}
