/*
 * Sheepdog Patrol premium homepage system.
 * Bootstrap owns layout; this file owns the brand skin, component polish, and motion states.
 */

/* Individual-page composition extends the existing Bootstrap/Sheepdog system. */

/* Client content edition: composition rules follow the baseline at the end. */

:root {
  --motion-instant: 120ms;
  --motion-fast: 180ms;
  --motion-standard: 280ms;
  --motion-card: 360ms;
  --motion-media: 700ms;
  --motion-slow: 520ms;
  --motion-hover-delay: 55ms;
  --motion-card-hover-delay: 72ms;
  --motion-reveal-delay: 80ms;
  --motion-ease: cubic-bezier(.22, .61, .36, 1);
  --motion-card-ease: cubic-bezier(.16, 1, .3, 1);
}

html {
  overflow-x: clip;
  scroll-behavior: smooth;
  scroll-padding-top: 8rem;
}

/* Lenis owns desktop wheel interpolation while native scrolling remains
 * available for touch, keyboard, form controls, and fallback navigation. */
html.lenis,
html.lenis body {
  height: auto;
}

html.lenis.lenis-smooth {
  scroll-behavior: auto;
}

html.lenis.lenis-stopped {
  overflow: clip;
}

body.sheepdog-site {
  margin: 0;
  overflow-x: clip;
  background: var(--color-surface);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.sheepdog-site *,
.sheepdog-site *::before,
.sheepdog-site *::after {
  box-sizing: border-box;
}

.sheepdog-site ::selection {
  background: var(--color-primary);
  color: var(--color-surface);
}

.sheepdog-site a {
  color: inherit;
  text-decoration: none;
  transition: color var(--motion-fast) var(--motion-ease), background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), opacity var(--motion-fast) var(--motion-ease), box-shadow var(--motion-standard) var(--motion-ease), filter var(--motion-standard) var(--motion-ease);
}

.sheepdog-site img {
  display: block;
  height: auto;
  max-width: 100%;
  transition: opacity var(--motion-standard) var(--motion-ease), filter var(--motion-media) var(--motion-ease);
}

.sheepdog-site button,
.sheepdog-site input,
.sheepdog-site select,
.sheepdog-site textarea {
  font: inherit;
}

.sheepdog-site h1,
.sheepdog-site h2,
.sheepdog-site h3,
.sheepdog-site h4 {
  margin-top: 0;
  color: var(--color-text);
  font-family: var(--font-display);
  font-stretch: condensed;
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: .94;
  text-transform: uppercase;
}

.sheepdog-site p:last-child {
  margin-bottom: 0;
}

.vibe-main {
  overflow: clip;
  background: var(--color-surface);
}

.vibe-skip-link {
  position: fixed;
  z-index: 100000;
  top: var(--space-sm);
  left: var(--space-sm);
  translate: 0 -200%;
  padding: .75rem 1rem;
  border-radius: var(--radius-sm);
  background: var(--color-primary);
  color: var(--color-surface);
  font-weight: 800;
  transition: translate var(--motion-fast) var(--motion-ease);
}

.vibe-skip-link:focus {
  translate: 0 0;
}

.vibe-progress {
  position: fixed;
  z-index: 9999;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  pointer-events: none;
}

.admin-bar .vibe-progress {
  top: 32px;
}

.vibe-progress__bar {
  display: block;
  width: 100%;
  height: 100%;
  scale: 0 1;
  transform-origin: left center;
  background: var(--color-primary);
  box-shadow: 0 0 1.25rem color-mix(in srgb, var(--color-primary) 65%, transparent);
}

.sheepdog-icon {
  width: 1.25em;
  height: 1.25em;
  flex: 0 0 auto;
}

.vibe-eyebrow,
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  margin: 0 0 var(--space-md);
  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.3;
  text-transform: uppercase;
}

.vibe-eyebrow::before,
.hero-badge::before {
  width: 2.5rem;
  height: 1px;
  flex: 0 0 auto;
  background: currentColor;
  content: "";
}

.vibe-section-heading {
  margin-bottom: var(--space-lg);
  max-width: 14ch;
  font-size: clamp(2.4rem, 4.5vw, 4.6rem);
  line-height: .96;
  text-wrap: balance;
}

.vibe-section-sub,
.vibe-body-text,
.vibe-cta__body,
.vibe-what-we-do__body {
  color: var(--color-text-muted);
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  line-height: 1.75;
}

.vibe-btn {
  --bs-btn-padding-x: 1.5rem;
  --bs-btn-padding-y: .95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  min-height: 3.5rem;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font-size: var(--text-sm);
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
  transition: color var(--motion-fast) var(--motion-ease), background-color var(--motion-standard) var(--motion-ease), border-color var(--motion-standard) var(--motion-ease), box-shadow var(--motion-standard) var(--motion-ease), translate var(--motion-standard) var(--motion-ease), scale var(--motion-standard) var(--motion-ease);
}

.vibe-btn .sheepdog-icon {
  transition: translate var(--motion-standard) var(--motion-ease);
}

.vibe-btn:hover,
.vibe-btn:focus-visible {
  translate: 0 -.2rem;
}

.vibe-btn:hover .sheepdog-icon,
.vibe-btn:focus-visible .sheepdog-icon {
  translate: .25rem 0;
}

.vibe-btn--primary {
  background: var(--color-primary);
  color: var(--color-surface);
  box-shadow: 0 .75rem 2.25rem color-mix(in srgb, var(--color-primary) 22%, transparent);
}

.vibe-btn--primary:hover,
.vibe-btn--primary:focus-visible {
  border-color: var(--color-primary);
  background: var(--color-text);
  color: var(--color-surface);
  box-shadow: 0 1rem 3rem color-mix(in srgb, var(--color-primary) 30%, transparent);
}

.vibe-btn--ghost {
  border-color: color-mix(in srgb, var(--color-text) 36%, transparent);
  background: color-mix(in srgb, var(--color-surface) 36%, transparent);
  color: var(--color-text);
  backdrop-filter: blur(1rem);
}

.vibe-btn--ghost:hover,
.vibe-btn--ghost:focus-visible {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));
  color: var(--color-primary);
}

.vibe-text-link {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  margin-top: var(--space-lg);
  padding-bottom: .35rem;
  border-bottom: 1px solid var(--color-primary);
  color: var(--color-text);
  font-size: var(--text-sm);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), gap var(--motion-standard) var(--motion-ease);
}

.vibe-text-link:hover,
.vibe-text-link:focus-visible {
  gap: 1rem;
  color: var(--color-primary);
}

.sheepdog-site :focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: .25rem;
}

/* Header */
.vibe-header {
  position: fixed;
  z-index: 1000;
  top: 0;
  right: 0;
  left: 0;
  border-bottom: 1px solid transparent;
  color: var(--color-surface);
  transition: background-color var(--motion-standard) var(--motion-ease), border-color var(--motion-standard) var(--motion-ease), box-shadow var(--motion-standard) var(--motion-ease), translate var(--motion-standard) var(--motion-ease);
}

.admin-bar .vibe-header {
  top: 32px;
}

.vibe-header.is-scrolled {
  border-color: var(--color-border);
  background: transparent;
  box-shadow: 0 .75rem 2.5rem color-mix(in srgb, var(--color-surface) 78%, transparent);
  backdrop-filter: blur(1.25rem);
}

.vibe-header__utility {
  border-bottom: 1px solid color-mix(in srgb, var(--color-text) 10%, transparent);
  background: color-mix(in srgb, var(--color-surface) 96%, transparent);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vibe-header__utility .container-xl {
  min-height: 2.25rem;
}

.vibe-header__utility-copy {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vibe-header__utility-phone {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--color-primary);
  font-weight: 800;
  white-space: nowrap;
}

.vibe-header__utility-phone:hover,
.vibe-header__utility-phone:focus-visible {
  color: var(--color-text);
}

.vibe-navbar {
  min-height: 4.75rem;
  padding-block: .45rem;
  border-bottom: 1px solid color-mix(in srgb, var(--color-surface) 10%, transparent);
  background: color-mix(in srgb, var(--color-text) 97%, transparent);
  box-shadow: 0 .75rem 2rem color-mix(in srgb, var(--color-surface) 18%, transparent);
  backdrop-filter: blur(1.25rem);
}

.vibe-brand {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  color: var(--color-surface);
}

.vibe-brand__logo {
  width: clamp(10.75rem, 17vw, 13rem);
  max-height: 3.75rem;
  object-fit: contain;
  object-position: left center;
  filter: none;
}

.vibe-brand__text {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 900;
  letter-spacing: -.02em;
  text-transform: uppercase;
}

.vibe-navbar__toggle {
  width: 3rem;
  height: 3rem;
  padding: .75rem;
  border: 1px solid color-mix(in srgb, var(--color-surface) 22%, transparent);
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--color-surface) 6%, transparent);
  box-shadow: none;
}

.vibe-navbar__toggle span {
  display: block;
  width: 100%;
  height: 1px;
  margin: .3rem 0;
  background: var(--color-surface);
  transition: translate var(--motion-standard) var(--motion-ease), rotate var(--motion-standard) var(--motion-ease), opacity var(--motion-fast) var(--motion-ease);
}

.vibe-navbar__toggle[aria-expanded="true"] span:first-child {
  translate: 0 .38rem;
  rotate: 45deg;
}

.vibe-navbar__toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.vibe-navbar__toggle[aria-expanded="true"] span:last-child {
  translate: 0 -.38rem;
  rotate: -45deg;
}

.vibe-nav__menu {
  gap: .15rem;
  padding-block: var(--space-sm);
}

.vibe-nav__menu .nav-link {
  position: relative;
  padding: .65rem .62rem;
  color: color-mix(in srgb, var(--color-surface) 74%, var(--color-secondary));
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
}

.vibe-nav__menu .nav-link::after {
  position: absolute;
  right: .85rem;
  bottom: .4rem;
  left: .85rem;
  height: 1px;
  scale: 0 1;
  transform-origin: right center;
  background: var(--color-primary);
  content: "";
  transition: scale var(--motion-standard) var(--motion-ease);
}

.vibe-nav__menu .nav-link:hover,
.vibe-nav__menu .nav-link:focus-visible {
  color: var(--color-surface);
}

.vibe-nav__menu .nav-link:hover::after,
.vibe-nav__menu .nav-link:focus-visible::after {
  scale: 1 1;
  transform-origin: left center;
}

.vibe-navbar__cta {
  margin: .5rem 0 var(--space-sm);
  white-space: nowrap;
}

/* Hero */
.vibe-hero {
  position: relative;
  isolation: isolate;
  min-height: clamp(43rem, 82vh, 49rem);
  overflow: hidden;
  background: var(--color-surface);
}

.vibe-hero__media,
.vibe-hero__wash {
  position: absolute;
  inset: 0;
}

.vibe-hero__media {
  z-index: -3;
  overflow: hidden;
}

.vibe-hero__image {
  width: 100%;
  height: 116%;
  max-width: none;
  object-fit: cover;
  object-position: 62% center;
  filter: saturate(.7) contrast(1.08);
  scale: 1.06;
}

.vibe-hero__wash {
  z-index: -2;
  background:
    linear-gradient(90deg, var(--color-surface) 0%, color-mix(in srgb, var(--color-surface) 88%, transparent) 42%, color-mix(in srgb, var(--color-surface) 32%, transparent) 76%, color-mix(in srgb, var(--color-surface) 72%, transparent) 100%),
    linear-gradient(0deg, var(--color-surface) 0%, transparent 42%, color-mix(in srgb, var(--color-surface) 45%, transparent) 100%);
}

.vibe-hero__wash::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 42%, color-mix(in srgb, var(--color-primary) 16%, transparent) 51%, transparent 60%);
  content: "";
  opacity: .65;
  translate: -38% 0;
}

.vibe-hero__line {
  position: absolute;
  z-index: -1;
  top: -10%;
  width: 1px;
  height: 130%;
  background: linear-gradient(180deg, transparent, var(--color-primary), transparent);
  opacity: .4;
  rotate: 18deg;
}

.vibe-hero__line--one {
  right: 20%;
}

.vibe-hero__line--two {
  right: 29%;
  opacity: .18;
}

.vibe-hero__layout {
  min-height: clamp(43rem, 82vh, 49rem);
  padding-top: 10.25rem;
  padding-bottom: 4rem;
}

.hero-headline {
  max-width: 10.5ch;
  margin: 0 0 var(--space-lg);
  font-size: var(--text-hero);
  letter-spacing: -.07em;
  line-height: .86;
  text-wrap: balance;
}

.hero-headline::first-line {
  color: var(--color-text);
}

.hero-sub {
  max-width: 42rem;
  margin: 0 0 var(--space-lg);
  color: var(--color-text-muted);
  font-size: clamp(1.05rem, 1.5vw, 1.3rem);
  line-height: 1.55;
}

.vibe-hero__aside {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.vibe-hero__brand-mark {
  display: flex;
  width: min(100%, 23rem);
  flex-direction: row;
  align-items: center;
  justify-content: center;
  padding: .85rem 1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 42%, transparent);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--color-surface) 78%, transparent);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(1rem);
}

.sheepdog-site .vibe-hero__crest {
  width: auto;
  height: 7rem;
  object-fit: contain;
}

.vibe-hero__brand-mark span {
  margin: 0 0 0 var(--space-sm);
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .1em;
  text-align: center;
  text-transform: uppercase;
}

.vibe-hero__response {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--color-surface-alt) 78%, transparent);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(1.25rem);
  width: min(100%, 23rem);
  transition: border-color var(--motion-standard) var(--motion-ease), background-color var(--motion-standard) var(--motion-ease), box-shadow var(--motion-standard) var(--motion-ease), translate var(--motion-standard) var(--motion-ease);
}

.vibe-hero__response:hover,
.vibe-hero__response:focus-visible {
  translate: 0 -.35rem;
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-surface-alt));
  box-shadow: var(--shadow-card-hover);
}

.vibe-hero__response-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  flex: 0 0 auto;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: var(--color-surface);
}

.vibe-hero__response small,
.vibe-hero__response strong {
  display: block;
}

.vibe-hero__response small {
  margin-bottom: .2rem;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vibe-hero__response strong {
  font-size: var(--text-lg);
  line-height: 1.2;
}

.vibe-hero__response > .sheepdog-icon {
  margin-left: auto;
  color: var(--color-primary);
}

.vibe-hero__scroll {
  position: absolute;
  z-index: 2;
  right: 1.25rem;
  bottom: 6rem;
  display: none;
  align-items: center;
  gap: .75rem;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

.vibe-hero__scroll span {
  width: 1px;
  height: 4rem;
  background: linear-gradient(180deg, var(--color-primary), transparent);
}

/* Services */
.vibe-services {
  position: relative;
  padding: var(--space-section) 0;
  background: var(--color-surface-alt);
}

.vibe-services::before {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 85% 10%, color-mix(in srgb, var(--color-primary) 9%, transparent), transparent 35%);
  content: "";
  pointer-events: none;
}

.vibe-section-header {
  position: relative;
  margin-bottom: clamp(2.5rem, 4vw, 4rem);
}

.vibe-services__grid {
  position: relative;
}

.vibe-service-card {
  position: relative;
  isolation: isolate;
  display: block;
  min-height: 21rem;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-text) 9%, transparent);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  translate: 0 0;
  transition: border-color 560ms var(--motion-card-ease), box-shadow 620ms var(--motion-card-ease), translate 620ms var(--motion-card-ease);
}

.vibe-service-card__media,
.vibe-service-card__overlay {
  position: absolute;
  inset: 0;
}

.vibe-service-card__media {
  z-index: -3;
  overflow: hidden;
}

.vibe-service-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(.55) brightness(.62);
  scale: 1.03;
  transition: filter 680ms var(--motion-card-ease), scale 720ms var(--motion-card-ease);
}

.vibe-service-card__overlay {
  z-index: -2;
  background: linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 18%, transparent) 0%, color-mix(in srgb, var(--color-surface) 98%, transparent) 88%);
}

.vibe-service-card__content {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  padding: 1.75rem;
}

.vibe-service-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  margin-bottom: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--color-surface) 74%, transparent);
  color: var(--color-primary);
  backdrop-filter: blur(.75rem);
  transition: background-color 480ms var(--motion-card-ease), color 480ms var(--motion-card-ease), rotate 520ms var(--motion-card-ease), scale 520ms var(--motion-card-ease);
}

.vibe-service-card h3 {
  margin: 0 0 var(--space-sm);
  color: var(--color-text);
  font-size: clamp(1.75rem, 2.4vw, 2.35rem);
}

.vibe-service-card__desc {
  display: block;
  color: color-mix(in srgb, var(--color-text) 80%, var(--color-text-muted));
  font-size: var(--text-sm);
  line-height: 1.65;
}

.vibe-service-card__desc p {
  margin: 0;
}

.vibe-service-card__link {
  display: flex;
  align-items: center;
  gap: .55rem;
  max-height: 3rem;
  margin-top: var(--space-sm);
  overflow: hidden;
  color: var(--color-primary);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: .08em;
  opacity: 1;
  text-transform: uppercase;
  translate: 0 0;
  transition: max-height 480ms var(--motion-card-ease), margin-top 480ms var(--motion-card-ease), opacity 420ms var(--motion-card-ease), translate 520ms var(--motion-card-ease);
}

.vibe-service-card:hover,
.vibe-service-card:focus-visible {
  z-index: 2;
  border-color: var(--color-primary);
  box-shadow: var(--shadow-card-hover);
  translate: 0 -.35rem;
}

.vibe-service-card:hover .vibe-service-card__image,
.vibe-service-card:focus-visible .vibe-service-card__image {
  filter: grayscale(0) brightness(.64);
  scale: 1.07;
}

.vibe-service-card:hover .vibe-service-card__icon,
.vibe-service-card:focus-visible .vibe-service-card__icon {
  background: var(--color-primary);
  color: var(--color-surface);
  rotate: 3deg;
  scale: 1.035;
}

.vibe-service-card:hover .vibe-service-card__link,
.vibe-service-card:focus-visible .vibe-service-card__link {
  max-height: 3rem;
  margin-top: var(--space-sm);
  opacity: 1;
  translate: .2rem 0;
}

/* Mission */
.vibe-intro {
  position: relative;
  padding: var(--space-section) 0;
  background: var(--color-surface);
}

.vibe-intro::after {
  position: absolute;
  z-index: 0;
  top: 14%;
  right: -8rem;
  width: 18rem;
  height: 18rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  content: "";
  opacity: .4;
}

.vibe-intro .container-xl {
  position: relative;
  z-index: 1;
}

.vibe-intro__visual {
  position: relative;
  min-height: 32rem;
  padding: 0 1.25rem 3rem 0;
}

.vibe-intro__image {
  position: absolute;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.vibe-intro__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vibe-intro__image--primary {
  inset: 0 3.5rem 4.5rem 0;
}

.vibe-intro__image--primary img {
  object-position: center;
}

.vibe-intro__image--secondary {
  right: 0;
  bottom: 0;
  width: 46%;
  height: 45%;
  border: .45rem solid var(--color-surface);
}

.vibe-intro__since {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 17%;
  display: flex;
  width: 10rem;
  min-height: 10rem;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 1.35rem;
  border-radius: var(--radius-md);
  background: var(--color-primary);
  color: var(--color-surface);
  box-shadow: var(--shadow-card);
  rotate: -3deg;
}

.vibe-intro__since strong,
.vibe-intro__since span {
  display: block;
}

.vibe-intro__since strong {
  margin-bottom: .25rem;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.vibe-intro__since span {
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.4;
  text-transform: uppercase;
}

.vibe-body-text p {
  margin-bottom: 1.25rem;
}

.vibe-intro__points {
  margin: var(--space-lg) 0 0;
  padding: 0;
  list-style: none;
}

.vibe-intro__points li {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: .85rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--color-text) 10%, transparent);
  color: var(--color-text);
  font-size: var(--text-sm);
  font-weight: 700;
}

.vibe-intro__points li > span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  flex: 0 0 auto;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--color-primary) 14%, transparent);
  color: var(--color-primary);
}

.vibe-intro__content .vibe-section-heading {
  font-size: clamp(2.5rem, 4.3vw, 4.5rem);
}

.vibe-intro__content .vibe-body-text {
  max-width: 42rem;
  font-size: clamp(1rem, 1.2vw, 1.16rem);
  line-height: 1.68;
}

.vibe-intro--team {
  background: var(--color-surface-alt);
}

.vibe-intro--team::after {
  right: auto;
  left: -8rem;
}

.vibe-intro--team .vibe-intro__image--primary {
  inset: 0 0 3.5rem 3.5rem;
}

.vibe-intro--team .vibe-intro__image--secondary {
  right: auto;
  left: 0;
}

.vibe-intro--team .vibe-intro__since {
  right: auto;
  left: 0;
  rotate: 3deg;
}

.vibe-intro--team .vibe-intro__visual {
  min-height: 30rem;
}

/* Readiness grid */
.vibe-features-grid {
  position: relative;
  padding: var(--space-section) 0;
  background: var(--color-surface-alt);
}

.vibe-features-grid::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-border), transparent);
  content: "";
}

.vibe-features-grid__intro {
  position: relative;
}

.vibe-features-grid__intro .vibe-section-heading {
  max-width: 13ch;
  font-size: clamp(2.25rem, 3.15vw, 3.5rem);
  line-height: .98;
  overflow-wrap: break-word;
}

.vibe-features-grid__rule {
  width: 100%;
  height: 2px;
  margin-top: var(--space-xl);
  overflow: hidden;
  background: color-mix(in srgb, var(--color-text) 8%, transparent);
}

.vibe-features-grid__rule span {
  display: block;
  width: 100%;
  height: 100%;
  scale: 0 1;
  transform-origin: left center;
  background: var(--color-primary);
}

.vibe-feature-card {
  position: relative;
  min-height: 15.5rem;
  overflow: hidden;
  padding: 1.75rem;
  border: 1px solid color-mix(in srgb, var(--color-text) 10%, transparent);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--color-surface) 74%, transparent);
  transition: border-color var(--motion-card) var(--motion-ease), background-color var(--motion-card) var(--motion-ease), box-shadow var(--motion-card) var(--motion-ease), translate var(--motion-card) var(--motion-ease);
}

.vibe-feature-card::after {
  position: absolute;
  right: -3rem;
  bottom: -3rem;
  width: 7rem;
  height: 7rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  content: "";
  transition: scale var(--motion-slow) var(--motion-ease), border-color var(--motion-standard) var(--motion-ease);
}

.vibe-feature-card:hover {
  translate: 0 -.35rem;
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
  box-shadow: var(--shadow-card);
}

.vibe-feature-card:focus-within {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
}

.vibe-feature-card:hover::after {
  scale: 1.35;
  border-color: var(--color-primary);
}

.vibe-feature-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: var(--space-lg);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--color-primary) 14%, transparent);
  color: var(--color-primary);
  transition: background-color var(--motion-standard) var(--motion-ease), color var(--motion-standard) var(--motion-ease), rotate var(--motion-card) var(--motion-ease);
}

.vibe-feature-card:hover .vibe-feature-card__icon {
  background: var(--color-primary);
  color: var(--color-surface);
  rotate: -5deg;
}

.vibe-feature-card__number {
  position: absolute;
  top: 1.75rem;
  right: 1.75rem;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}
.vibe-feature-card h3 {
  margin-bottom: var(--space-sm);
  font-size: var(--text-2xl);
  letter-spacing: -.025em;
  line-height: 1.05;
}

.vibe-feature-card div {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.vibe-feature-card div p {
  margin: 0;
}

/* Coverage */
.vibe-what-we-do {
  position: relative;
  isolation: isolate;
  min-height: auto;
  overflow: hidden;
  padding: var(--space-section) 0;
  background: var(--color-surface);
}

.vibe-what-we-do__media,
.vibe-what-we-do__overlay {
  position: absolute;
  inset: 0;
}

.vibe-what-we-do__media {
  z-index: -3;
}

.vibe-what-we-do__image {
  width: 100%;
  height: 116%;
  object-fit: cover;
  filter: grayscale(.55) brightness(.6) saturate(.75);
}

.vibe-what-we-do__overlay {
  z-index: -2;
  background: linear-gradient(90deg, var(--color-surface) 0%, color-mix(in srgb, var(--color-surface) 82%, transparent) 48%, color-mix(in srgb, var(--color-surface) 54%, transparent) 100%);
}

.vibe-what-we-do__overlay::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, var(--color-surface), transparent 45%, color-mix(in srgb, var(--color-surface) 30%, transparent));
  content: "";
}

.vibe-what-we-do__heading {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(2.8rem, 5.2vw, 5.6rem);
  line-height: .92;
  text-wrap: balance;
}

.vibe-what-we-do__body {
  margin-bottom: var(--space-lg);
  color: color-mix(in srgb, var(--color-text) 76%, var(--color-text-muted));
  font-size: clamp(1rem, 1.15vw, 1.14rem);
  line-height: 1.66;
}

.vibe-what-we-do__body p {
  margin-bottom: 1rem;
}

.vibe-what-we-do__locations {
  margin-top: clamp(2.75rem, 5vw, 4.5rem);
}

.vibe-location-pill {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 4.5rem;
  padding: .9rem 1rem;
  border: 1px solid color-mix(in srgb, var(--color-text) 18%, transparent);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--color-surface) 58%, transparent);
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  backdrop-filter: blur(1rem);
  transition: border-color var(--motion-standard) var(--motion-ease), background-color var(--motion-standard) var(--motion-ease), color var(--motion-standard) var(--motion-ease), translate var(--motion-standard) var(--motion-ease);
}

.vibe-location-pill .sheepdog-icon {
  color: var(--color-primary);
}

.vibe-location-pill:hover {
  translate: 0 -.25rem;
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));
}

/* Contact / Gravity Forms */
.vibe-cta {
  position: relative;
  padding: var(--space-section) 0;
  background: var(--color-surface-alt);
}

.vibe-cta::before {
  position: absolute;
  top: 8%;
  right: 4%;
  width: 18rem;
  height: 18rem;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--color-primary) 8%, transparent);
  content: "";
  filter: blur(4rem);
}

.vibe-cta__panel {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: clamp(1.5rem, 4vw, 3rem);
  background: var(--color-surface);
  box-shadow: var(--shadow-hero);
}

.vibe-cta__copy,
.vibe-cta__form {
  padding: clamp(2rem, 5vw, 4.5rem);
}

.vibe-cta__copy {
  position: relative;
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface-alt));
}

.vibe-cta__copy::after {
  position: absolute;
  right: -3.5rem;
  bottom: -3.5rem;
  width: 9rem;
  height: 9rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  content: "";
}

.vibe-cta__copy .vibe-section-heading {
  max-width: 10ch;
  font-size: clamp(2.5rem, 4vw, 4rem);
}

.vibe-cta__contacts {
  margin-top: var(--space-xl);
}

.vibe-cta__contacts a {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 1rem 0;
  border-top: 1px solid color-mix(in srgb, var(--color-text) 10%, transparent);
  transition: color var(--motion-fast) var(--motion-ease), padding-left var(--motion-standard) var(--motion-ease);
}

.vibe-cta__contacts a:hover,
.vibe-cta__contacts a:focus-visible {
  padding-left: .35rem;
  color: var(--color-primary);
}

.vibe-cta__contacts a > span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 auto;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--color-primary) 14%, transparent);
  color: var(--color-primary);
}

.vibe-cta__contacts small,
.vibe-cta__contacts strong {
  display: block;
}

.vibe-cta__contacts small {
  margin-bottom: .15rem;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vibe-cta__contacts strong {
  font-size: var(--text-sm);
  line-height: 1.3;
}

.vibe-cta__form {
  background: var(--color-surface);
}

.vibe-cta__form .gform_wrapper.gravity-theme,
.vibe-cta__form .gform_wrapper {
  margin: 0;
}

.vibe-cta__form .gform_heading {
  display: none;
}

.vibe-cta__form .gform_fields {
  row-gap: 1rem;
}

.vibe-cta__form .gfield_label,
.vibe-cta__form .gform-field-label {
  margin-bottom: .45rem;
  color: var(--color-text) !important;
  font-family: var(--font-mono);
  font-size: .69rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vibe-cta__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.vibe-cta__form select,
.vibe-cta__form textarea {
  width: 100%;
  border: 1px solid color-mix(in srgb, var(--color-text) 16%, transparent);
  border-radius: var(--radius-sm);
  background: var(--color-surface-alt) !important;
  color: var(--color-text) !important;
  box-shadow: none;
  transition: border-color var(--motion-fast) var(--motion-ease), background-color var(--motion-fast) var(--motion-ease), box-shadow var(--motion-standard) var(--motion-ease), translate var(--motion-fast) var(--motion-ease);
}

.vibe-cta__form select {
  color-scheme: dark;
}

.vibe-cta__form select option {
  background: var(--color-surface-alt);
  color: var(--color-text);
}

.vibe-cta__form input::placeholder,
.vibe-cta__form textarea::placeholder {
  color: color-mix(in srgb, var(--color-text) 62%, var(--color-text-muted)) !important;
  opacity: 1;
}

.vibe-cta__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]) {
  min-height: 3.5rem;
  padding: .8rem 1rem;
}

.vibe-cta__form select {
  min-height: 3.5rem;
  padding: .8rem 1rem;
}

.vibe-cta__form textarea {
  min-height: 8.5rem;
  padding: 1rem;
  resize: vertical;
}

.vibe-cta__form input:focus,
.vibe-cta__form select:focus,
.vibe-cta__form textarea:focus {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 5%, var(--color-surface-alt));
  box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--color-primary) 12%, transparent);
  outline: 0;
  translate: 0 -.1rem;
}

.vibe-cta__form .gfield_required {
  color: var(--color-accent);
}

.vibe-cta__form .gform_footer,
.vibe-cta__form .gform_page_footer {
  margin-top: var(--space-md);
  padding: 0;
}

.vibe-cta__form input[type="submit"],
.vibe-cta__form .gform_button {
  min-height: 3.6rem;
  padding: .95rem 1.8rem;
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: var(--color-surface);
  font-size: var(--text-sm);
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  box-shadow: 0 .75rem 2.25rem color-mix(in srgb, var(--color-primary) 22%, transparent);
  transition: background-color var(--motion-standard) var(--motion-ease), color var(--motion-standard) var(--motion-ease), box-shadow var(--motion-standard) var(--motion-ease), translate var(--motion-standard) var(--motion-ease);
}

.vibe-cta__form input[type="submit"]:hover,
.vibe-cta__form input[type="submit"]:focus-visible,
.vibe-cta__form .gform_button:hover,
.vibe-cta__form .gform_button:focus-visible {
  translate: 0 -.2rem;
  background: var(--color-text);
  color: var(--color-surface);
  box-shadow: 0 1rem 3rem color-mix(in srgb, var(--color-primary) 28%, transparent);
}

.vibe-cta__form .gform_validation_errors,
.vibe-cta__form .validation_error {
  margin-bottom: var(--space-md);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--color-accent) 8%, var(--color-surface));
  color: var(--color-text);
  box-shadow: none;
}

.vibe-cta__form .gfield_validation_message,
.vibe-cta__form .validation_message {
  border: 0;
  background: transparent;
  color: var(--color-accent);
  font-size: var(--text-xs);
}

.vibe-cta__form .gform_confirmation_wrapper {
  padding: var(--space-xl);
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));
  color: var(--color-text);
  font-size: var(--text-lg);
}

/* Footer */
.vibe-footer {
  position: relative;
  padding: clamp(4.5rem, 8vw, 7rem) 0 0;
  border-top: 1px solid var(--color-border);
  background: var(--color-surface);
}

.vibe-footer::before {
  position: absolute;
  top: 0;
  left: 7%;
  width: 18%;
  height: 2px;
  background: var(--color-primary);
  content: "";
}

.vibe-footer__main {
  padding-bottom: clamp(3.5rem, 7vw, 6rem);
}

.vibe-footer__brand {
  display: inline-block;
  margin-bottom: var(--space-lg);
}

.vibe-footer__logo {
  width: min(16rem, 80vw);
  max-height: 5rem;
  object-fit: contain;
  object-position: left center;
}

.vibe-footer__statement {
  max-width: 34rem;
  color: var(--color-text-muted);
  font-size: var(--text-lg);
}

.vibe-footer__eyebrow {
  margin: var(--space-lg) 0 var(--space-sm);
  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.vibe-footer__socials {
  display: flex;
  gap: .6rem;
  margin-top: var(--space-lg);
}

.vibe-footer__socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 900;
  transition: background-color var(--motion-standard) var(--motion-ease), border-color var(--motion-standard) var(--motion-ease), color var(--motion-standard) var(--motion-ease), translate var(--motion-standard) var(--motion-ease), rotate var(--motion-standard) var(--motion-ease);
}

.vibe-footer__socials a:hover,
.vibe-footer__socials a:focus-visible {
  translate: 0 -.25rem;
  rotate: -4deg;
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-surface);
}

.vibe-footer__heading {
  margin-bottom: var(--space-md);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: .15em;
  text-transform: uppercase;
}

.vibe-footer__menu {
  margin: 0;
  padding: 0;
  list-style: none;
}

.vibe-footer__menu li + li {
  margin-top: .75rem;
}

.vibe-footer__menu a {
  position: relative;
  display: inline-block;
  color: var(--color-text);
  font-weight: 700;
  transition: color var(--motion-fast) var(--motion-ease), padding-left var(--motion-standard) var(--motion-ease);
}

.vibe-footer__menu a::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--color-primary);
  content: "";
  transition: width var(--motion-standard) var(--motion-ease);
}

.vibe-footer__menu a:hover,
.vibe-footer__menu a:focus-visible {
  padding-left: 1.25rem;
  color: var(--color-primary);
}

.vibe-footer__menu a:hover::before,
.vibe-footer__menu a:focus-visible::before {
  width: .8rem;
}

.vibe-footer__contact {
  margin: 0;
  font-style: normal;
}

.vibe-footer__contact a {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  line-height: 1.55;
}

.vibe-footer__contact a + a {
  margin-top: var(--space-sm);
}

.vibe-footer__contact a:hover,
.vibe-footer__contact a:focus-visible {
  color: var(--color-primary);
}

.vibe-footer__contact .sheepdog-icon {
  margin-top: .15rem;
  color: var(--color-primary);
}

.vibe-footer__bottom {
  padding: 1.4rem 0;
  border-top: 1px solid color-mix(in srgb, var(--color-text) 9%, transparent);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: .65rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}

/* Utility pages remain readable while phase one is homepage-only. */
.vibe-page-hero,
.vibe-page-content,
.vibe-content-area {
  padding: var(--space-section) 0;
}

@media (min-width: 768px) {
  .vibe-btn {
    --bs-btn-padding-x: 1.8rem;
  }

  .vibe-hero__layout {
    padding-bottom: 7rem;
  }

  .vibe-service-card {
    min-height: 22rem;
  }

  .vibe-intro__visual {
    min-height: 35rem;
  }

  .vibe-location-pill {
    min-height: 5rem;
    padding: 1rem 1.25rem;
  }
}

@media (min-width: 992px) {
  .vibe-navbar {
    min-height: 4.85rem;
  }

  .vibe-nav__menu {
    padding-block: 0;
  }

  .vibe-navbar__cta {
    margin: 0 0 0 var(--space-sm);
  }

  .vibe-hero,
  .vibe-hero__layout {
    min-height: clamp(44rem, 84vh, 50rem);
  }

  .vibe-hero__layout {
    padding-top: 9.75rem;
    padding-bottom: 3.75rem;
  }

  .vibe-hero__scroll {
    display: flex;
  }

  .vibe-intro__content {
    padding-block: var(--space-xl);
  }

  .vibe-cta__copy,
  .vibe-cta__form {
    min-height: 100%;
  }
}

@media (min-width: 1200px) {
  .vibe-nav__menu {
    gap: .05rem;
  }

  .vibe-nav__menu .nav-link {
    padding-inline: .55rem;
  }

  .vibe-navbar__cta {
    --bs-btn-padding-x: 1.25rem;
    margin-left: .65rem;
  }

  .vibe-service-card__content {
    padding: 2rem;
  }

  .vibe-hero__brand-mark {
    flex-direction: column;
    padding: 1.25rem;
  }

  .sheepdog-site .vibe-hero__crest {
    height: clamp(14rem, 23vw, 18rem);
  }

  .vibe-hero__brand-mark span {
    margin: var(--space-sm) 0 0;
  }

  .vibe-intro__visual {
    min-height: 36rem;
  }
}

@media (max-width: 991.98px) {
  .admin-bar .vibe-header {
    top: 46px;
  }

  .admin-bar .vibe-progress {
    top: 46px;
  }

  .vibe-navbar .navbar-collapse {
    margin-top: .75rem;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--color-text) 98%, transparent);
    box-shadow: var(--shadow-card);
    backdrop-filter: blur(1.25rem);
  }

  .vibe-hero__image {
    object-position: 66% center;
  }

  .vibe-what-we-do {
    min-height: auto;
  }

  .vibe-what-we-do__image {
    object-position: 68% center;
  }
}

@media (max-width: 782px) {
  .admin-bar .vibe-header,
  .admin-bar .vibe-progress {
    top: 46px;
  }
}

@media (max-width: 575.98px) {
  .vibe-header__utility-copy {
    max-width: 62%;
  }

  .vibe-header__utility-phone .sheepdog-icon {
    display: none;
  }

  .vibe-hero__layout {
    padding-top: 10rem;
  }

  .hero-headline {
    font-size: clamp(3.3rem, 16vw, 4.75rem);
  }

  .vibe-service-card {
    min-height: 22rem;
  }

  .vibe-intro__visual {
    min-height: 24rem;
    padding-right: 0;
  }

  .vibe-intro--team .vibe-intro__visual {
    min-height: 24rem;
  }

  .vibe-intro__image--primary {
    right: 1.75rem;
  }

  .vibe-intro__image--secondary {
    width: 48%;
    height: 39%;
  }

  .vibe-intro__since {
    right: 1rem;
    width: 8.5rem;
    min-height: 8.5rem;
    padding: 1rem;
  }

  .vibe-feature-card {
    min-height: 15rem;
  }

  .vibe-what-we-do__heading {
    font-size: clamp(2.8rem, 14vw, 4.5rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-pika-vibe-respect-reduced-motion="true"] {
    scroll-behavior: auto;
  }

  html[data-pika-vibe-respect-reduced-motion="true"] .vibe-service-card:hover,
  html[data-pika-vibe-respect-reduced-motion="true"] .vibe-btn:hover,
  html[data-pika-vibe-respect-reduced-motion="true"] .vibe-location-pill:hover {
    translate: 0 0;
  }
}

/* September 2026 client content edition. */
.sheepdog-site h1,.sheepdog-site h2,.sheepdog-site h3 { text-transform: none; letter-spacing: -.045em; line-height: 1.08; }
.sheepdog-site .vibe-btn--primary { color: var(--color-surface); }
.sheepdog-site .vibe-btn { border-radius: var(--radius-sm); box-shadow: none; }
.vibe-header__utility { font-family: var(--font-body); letter-spacing: .04em; }
.vibe-brand__logo { width: 11rem; }
.vibe-hero { min-height: 0; }
.vibe-hero__layout { min-height: 48rem; padding-top: 11rem; padding-bottom: 5rem; }
.hero-headline { font-size: clamp(3rem,5.25vw,5.4rem); max-width: 12ch; line-height: 1.02; letter-spacing: -.055em; }
.hero-sub { max-width: 39rem; font-size: clamp(1rem,1.35vw,1.125rem); line-height: 1.75; margin-top: 1.75rem; }
.hero-badge { font-family: var(--font-body); letter-spacing: .19em; font-size: var(--text-xs); }
.vibe-hero__brand-mark { width: 100%; max-width: 25rem; margin-left: auto; border: 0; background: transparent; box-shadow: none; backdrop-filter: none; padding: 1.5rem; }
.vibe-hero__crest { max-height: 22rem; width: auto; filter: drop-shadow(0 1.5rem 2rem var(--color-surface)); }
.vibe-hero__brand-mark > span { color: var(--color-secondary); letter-spacing: .18em; font-size: .65rem; }
.vibe-hero__response { max-width: 25rem; margin: 1rem 0 0 auto; border-radius: var(--radius-sm); }
.vibe-hero__scroll { display: none; }
.vibe-hero__wash { background: linear-gradient(90deg,var(--color-surface) 0%,color-mix(in srgb,var(--color-surface) 90%,transparent) 33%,color-mix(in srgb,var(--color-surface) 45%,transparent) 100%); }
.vibe-trust-bar { position: relative; padding: 1.8rem 0; background: var(--color-primary); color: var(--color-surface); }
.vibe-trust-bar__item { display: flex; gap: .65rem; align-items: center; font-weight: 650; font-size: var(--text-sm); line-height: 1.35; }
.vibe-trust-bar__item .sheepdog-icon { flex: 0 0 1.25rem; }
.vibe-section-heading { font-size: clamp(2.2rem,3.7vw,3.75rem); max-width: 18ch; }
.vibe-eyebrow { font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: .14em; }
.vibe-intro--overview { background: var(--color-text); color: var(--color-surface); }
.vibe-intro--overview .vibe-section-heading { color: var(--color-surface); }
.vibe-intro--overview .vibe-body-text { color: color-mix(in srgb,var(--color-surface) 78%,var(--color-text)); font-size: var(--text-base); }
.vibe-intro--overview .vibe-eyebrow,.vibe-intro--overview .vibe-text-link { color: var(--color-primary-dark); }
.vibe-intro--overview .vibe-intro__visual { min-height: 31rem; }
.vibe-intro--overview .vibe-intro__image--primary { inset: 0 2rem 1rem 0; border-radius: var(--radius-sm); }
.vibe-intro--overview .vibe-intro__since { border-radius: var(--radius-sm); background: var(--color-primary); color: var(--color-surface); width: 13rem; min-height: 7rem; bottom: 0; right: 0; }
.vibe-intro--overview .vibe-intro__since strong { font-size: var(--text-2xl); color: var(--color-surface); }
.vibe-intro--overview .vibe-intro__since span { color: var(--color-surface); }
.vibe-services .vibe-section-heading { white-space: pre-line; }
.vibe-service-card { border-radius: var(--radius-sm); min-height: 23rem; }
.vibe-service-card__content h3 { font-size: clamp(1.7rem,2.5vw,2.5rem); }
.vibe-service-card__icon { display: none; }
.vibe-services__directory { margin-top: var(--space-xl); }
.vibe-services__directory-heading { font-size: var(--text-xl); font-weight: 500; color: var(--color-text-muted); margin-bottom: 1.5rem; }
.vibe-service-detail { border-top: 1px solid var(--color-border); }
.vibe-service-detail summary { display: flex; gap: 1.5rem; justify-content: space-between; cursor: pointer; padding: 1.2rem 0; font-size: var(--text-base); list-style: none; transition: color var(--motion-standard) var(--motion-ease) 40ms; }
.vibe-service-detail summary::-webkit-details-marker,.vibe-faq summary::-webkit-details-marker { display: none; }
.vibe-service-detail summary > span:last-child { color: var(--color-primary); }
.vibe-service-detail summary:hover,.vibe-service-detail summary:focus-visible { color: var(--color-primary); }
.vibe-service-detail > div { padding: 0 0 1.5rem; font-size: var(--text-sm); color: var(--color-text-muted); }
.vibe-service-detail[open] summary > span:last-child { rotate: 45deg; }
.vibe-service-detail summary > span:last-child { transition: rotate var(--motion-standard) var(--motion-ease) 40ms; }
.vibe-feature-card { border-radius: var(--radius-sm); min-height: 13rem; }
.vibe-feature-card h3 { font-size: var(--text-xl); line-height: 1.2; }
.vibe-feature-card p { font-size: var(--text-sm); }
.vibe-features-grid__items > div:last-child { width: 100%; }
.vibe-features-grid__items > div:last-child .vibe-feature-card { min-height: 0; }
.vibe-industry-list,.vibe-faq { padding: var(--space-section) 0; background: var(--color-text); color: var(--color-surface); }
.vibe-industry-list h2,.vibe-industry-list h3,.vibe-faq h2 { color: var(--color-surface); }
.vibe-industry-list .vibe-eyebrow,.vibe-faq .vibe-eyebrow { color: var(--color-primary-dark); }
.vibe-industry-list__item { display: flex; gap: 1rem; align-items: baseline; min-height: 6.7rem; padding: 1.6rem 1rem; border-top: 1px solid color-mix(in srgb,var(--color-surface) 20%,transparent); transition: background-color var(--motion-standard) var(--motion-ease) 50ms; }
.vibe-industry-list__item:hover { background: color-mix(in srgb,var(--color-primary) 20%,transparent); }
.vibe-industry-list__item h3 { font-size: var(--text-lg); line-height: 1.4; letter-spacing: -.02em; }
.vibe-intro--team .vibe-section-heading,.vibe-intro--mission .vibe-section-heading { max-width: 15ch; }
.vibe-intro--mission .vibe-body-text { font-size: var(--text-base); }
.vibe-what-we-do__heading { font-size: clamp(2.75rem,5vw,5rem); max-width: 14ch; }
.vibe-what-we-do { min-height: 0; }
.vibe-location-pill { border-radius: var(--radius-sm); }
.vibe-faq__item { border-top: 1px solid color-mix(in srgb,var(--color-surface) 20%,transparent); }
.vibe-faq__item:last-child { border-bottom: 1px solid color-mix(in srgb,var(--color-surface) 20%,transparent); }
.vibe-faq__item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.3rem 0; cursor: pointer; font-weight: 600; transition: color var(--motion-standard) var(--motion-ease) 50ms; }
.vibe-faq__item summary:hover { color: var(--color-primary-dark); }
.vibe-faq__item > div { padding: 0 2rem 1.4rem 0; color: color-mix(in srgb,var(--color-surface) 78%,var(--color-text)); transform-origin: top; }
.vibe-faq__item[data-vibe-disclosure-transition],.vibe-service-detail[data-vibe-disclosure-transition] { overflow: clip; }
.vibe-faq__plus { font-size: var(--text-2xl); font-weight: 400; transition: rotate var(--motion-standard) var(--motion-ease) 50ms; }
.vibe-faq__item[open] .vibe-faq__plus { rotate: 45deg; }
.vibe-cta__panel { border-radius: var(--radius-sm); }
.vibe-cta .vibe-section-heading { font-size: clamp(2rem,3vw,3rem); line-height: 1.13; }
.vibe-footer__areas { font-size: var(--text-xs); color: var(--color-text-muted); }
.vibe-footer__socials { margin-top: 1.5rem; }
.sheepdog-site :is(a,button,input,select,textarea,summary) { transition-delay: 40ms; }
.sheepdog-site summary:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 4px; }
@media(min-width:1400px) { .vibe-hero__layout { min-height: 52rem; } }
@media(max-width:1199.98px) and (min-width:768px) { .vibe-hero__layout > div:first-child { width: 62%; } .vibe-hero__aside { width: 38%; } .vibe-hero__crest { max-height: 16rem; } .vibe-hero__response { padding: 1rem; } .vibe-hero__response-icon { display: none; } .vibe-hero__response strong { font-size: var(--text-lg); } }
@media(max-width:767.98px) { .vibe-hero__layout { min-height: 0; padding-top: 10rem; padding-bottom: 3rem; } .hero-headline { font-size: clamp(2.8rem,8.5vw,4.5rem); max-width: 14ch; } .vibe-hero__brand-mark { display: none; } .vibe-hero__response { margin: 0; max-width: none; } .hero-sub { font-size: var(--text-base); } .vibe-hero__actions { gap: .75rem !important; } .vibe-hero__actions .vibe-btn { padding: .95rem 1rem; font-size: var(--text-xs); } .vibe-intro--overview .vibe-intro__visual { min-height: 25rem; } .vibe-service-card { min-height: 24rem; } .vibe-industry-list__item { min-height: 0; } }
.hero-headline { max-width: none; font-size: clamp(2.8rem,4.5vw,5rem); }
.vibe-hero__layout { min-height: 46rem; padding-top: 10rem; padding-bottom: 4rem; }
@media(max-width:767.98px) { .hero-headline { font-size: clamp(2.8rem,8.5vw,4.5rem); } .vibe-hero__layout { min-height: 0; padding-top: 10rem; padding-bottom: 3rem; } }
/* Image dimensions must outrank the baseline responsive img height:auto rule. */
.sheepdog-site .vibe-hero__image,.sheepdog-site .vibe-service-card__image,.sheepdog-site .vibe-what-we-do__image,.sheepdog-site .vibe-intro__image img { width: 100%; height: 100%; object-fit: cover; }
.vibe-hero__brand-mark { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.sheepdog-site .gform_wrapper .gfield_required,.sheepdog-site .gform_wrapper .gfield_validation_message,.sheepdog-site .gform_wrapper .gform_validation_errors h2 { color: color-mix(in srgb,var(--color-accent) 42%,var(--color-text)); }
.sheepdog-site .gform_wrapper .gfield_required_text { font-size: 0; }
.sheepdog-site .gform_wrapper .gfield_required_text::after { content: "*"; font-size: var(--text-base); line-height: 1; }
.sheepdog-site .gform_wrapper .gform_validation_errors { background: color-mix(in srgb,var(--color-accent) 12%,var(--color-surface)); border-color: color-mix(in srgb,var(--color-accent) 42%,var(--color-text)); box-shadow: none; }
.sheepdog-site .gform_wrapper .gform_validation_errors h2 { font-size: var(--text-base); line-height: 1.5; letter-spacing: 0; }

/* Premium interaction rhythm: hover-in waits briefly so a deliberate response
 * begins after pointer intent is clear; hover-out starts immediately and uses
 * the same component-owned easing, avoiding the old pause-and-snap return. */
body.sheepdog-site :is(a, button, input, select, textarea, summary) {
  transition-delay: 0ms !important;
}

body.sheepdog-site :is(.vibe-brand, .vibe-footer__brand, .vibe-service-card, .vibe-service-card__image, .vibe-service-card__icon, .vibe-service-card__link, .vibe-feature-card, .vibe-feature-card__icon, .vibe-hero__response, .vibe-location-pill, .vibe-trust-bar__item, .vibe-industry-list__item, .vibe-faq__plus, .vibe-footer__socials a, .vibe-navbar__toggle span) {
  transition-delay: 0ms !important;
}

body.sheepdog-site .vibe-feature-card::after,
body.sheepdog-site .vibe-footer__menu a::before,
body.sheepdog-site .vibe-nav__menu .nav-link::after {
  transition-delay: 0ms !important;
}

@media (hover: hover) and (pointer: fine) {
  body.sheepdog-site :is(a, button, input, select, textarea, summary):hover,
  body.sheepdog-site :is(a, button, input, select, textarea, summary):focus-visible,
  body.sheepdog-site :is(.vibe-brand, .vibe-footer__brand, .vibe-feature-card, .vibe-hero__response, .vibe-location-pill, .vibe-trust-bar__item, .vibe-industry-list__item):hover,
  body.sheepdog-site :is(.vibe-brand, .vibe-footer__brand, .vibe-feature-card, .vibe-hero__response, .vibe-location-pill):focus-visible {
    transition-delay: var(--motion-hover-delay) !important;
  }

  body.sheepdog-site .vibe-service-card:hover,
  body.sheepdog-site .vibe-service-card:focus-visible {
    transition-delay: var(--motion-card-hover-delay) !important;
  }

  body.sheepdog-site .vibe-service-card:hover .vibe-service-card__image,
  body.sheepdog-site .vibe-service-card:focus-visible .vibe-service-card__image {
    transition-delay: calc(var(--motion-card-hover-delay) + 45ms) !important;
  }

  body.sheepdog-site .vibe-service-card:hover :is(.vibe-service-card__icon, .vibe-service-card__link),
  body.sheepdog-site .vibe-service-card:focus-visible :is(.vibe-service-card__icon, .vibe-service-card__link) {
    transition-delay: calc(var(--motion-card-hover-delay) + 100ms) !important;
  }

  body.sheepdog-site .vibe-faq__item[open] .vibe-faq__plus,
  body.sheepdog-site .vibe-service-detail[open] summary > span:last-child {
    transition-delay: var(--motion-hover-delay) !important;
  }
}

/* The featured cards are anchors/images, so this component selector must
 * outrank the safe global anchor/image paint transitions above. Keeping the
 * complete sequence here prevents the browser from falling back to the short
 * generic timings that caused the visible hover snap. */
body.sheepdog-site a.vibe-service-card {
  transition: border-color 560ms var(--motion-card-ease), box-shadow 620ms var(--motion-card-ease), translate 620ms var(--motion-card-ease);
}

body.sheepdog-site img.vibe-service-card__image {
  transition: filter 680ms var(--motion-card-ease), scale 720ms var(--motion-card-ease);
}

body.sheepdog-site .vibe-service-card__icon {
  transition: background-color 480ms var(--motion-card-ease), color 480ms var(--motion-card-ease), rotate 520ms var(--motion-card-ease), scale 520ms var(--motion-card-ease);
}

body.sheepdog-site .vibe-service-card__link {
  transition: max-height 480ms var(--motion-card-ease), margin-top 480ms var(--motion-card-ease), opacity 420ms var(--motion-card-ease), translate 520ms var(--motion-card-ease);
}

.vibe-brand,
.vibe-footer__brand {
  transition: filter var(--motion-standard) var(--motion-ease), scale var(--motion-standard) var(--motion-ease), opacity var(--motion-fast) var(--motion-ease);
}

.vibe-brand:hover,
.vibe-brand:focus-visible,
.vibe-footer__brand:hover,
.vibe-footer__brand:focus-visible {
  filter: drop-shadow(0 .65rem 1.15rem color-mix(in srgb, var(--color-primary) 20%, transparent));
  scale: 1.018;
}

.vibe-trust-bar__item {
  transition: color var(--motion-fast) var(--motion-ease), opacity var(--motion-standard) var(--motion-ease), translate var(--motion-standard) var(--motion-ease);
}

.vibe-trust-bar__item:hover {
  color: color-mix(in srgb, var(--color-surface) 84%, var(--color-primary));
  translate: 0 -.18rem;
}

.vibe-industry-list__item {
  transition: background-color var(--motion-standard) var(--motion-ease), border-color var(--motion-standard) var(--motion-ease), translate var(--motion-standard) var(--motion-ease);
}

.vibe-industry-list__item:hover {
  border-color: color-mix(in srgb, var(--color-primary) 54%, transparent);
  translate: .35rem 0;
}

@media (prefers-reduced-motion: reduce) {
  html[data-pika-vibe-respect-reduced-motion="true"] .vibe-brand:hover,
  html[data-pika-vibe-respect-reduced-motion="true"] .vibe-footer__brand:hover,
  html[data-pika-vibe-respect-reduced-motion="true"] .vibe-trust-bar__item:hover,
  html[data-pika-vibe-respect-reduced-motion="true"] .vibe-industry-list__item:hover {
    scale: 1;
    translate: 0 0;
  }
}

/* Client brief: dedicated core and service pages, 2026-09-08. */
.vibe-hero--inner .vibe-hero__layout { min-height: 0; padding-top: clamp(10rem, 15vw, 13rem); padding-bottom: var(--space-section); }
.vibe-hero--inner .vibe-hero__layout > div:first-child { width: 100%; max-width: 68rem; }
.vibe-hero--inner .hero-headline { max-width: 22ch; font-size: clamp(2.55rem, 5vw, 4.8rem); }
.vibe-hero--inner .hero-sub { max-width: 64ch; }
.vibe-editorial, .vibe-next-step { padding-block: var(--space-section); border-top: 1px solid var(--color-border); }
.vibe-editorial:nth-of-type(odd) { background: var(--color-surface-alt); }
.vibe-editorial .vibe-section-heading { font-size: clamp(1.8rem, 3vw, 2.8rem); }
.vibe-editorial .vibe-body-text { max-width: 70ch; }
.vibe-editorial__list { margin-bottom: 0; }
.vibe-editorial__item { display: flex; align-items: flex-start; gap: var(--space-sm); height: 100%; padding: var(--space-md); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.vibe-editorial__item .sheepdog-icon { color: var(--color-primary); flex-shrink: 0; margin-top: .25em; }
.vibe-next-step { background: var(--color-surface-alt); }
.vibe-next-step .vibe-section-heading { max-width: 24ch; }
.vibe-next-step .vibe-section-sub { margin-bottom: 0; }
body.sheepdog-site .vibe-service-link { display: flex; flex-direction: column; height: 100%; padding: var(--space-lg); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface-alt); color: var(--color-text); text-decoration: none; translate: 0 0; transition: border-color var(--motion-standard), translate var(--motion-slow) var(--motion-ease); }
body.sheepdog-site .vibe-service-link:is(:hover,:focus-visible) { border-color: var(--color-primary); translate: 0 -.3rem; transition-delay: var(--motion-hover-delay); }
.vibe-service-link h3 { font-size: var(--text-2xl); line-height: 1.25; margin-bottom: var(--space-sm); }
.vibe-service-link p { color: var(--color-text-muted); font-size: var(--text-base); }
.vibe-service-link > .vibe-text-link { margin-top: auto; padding-top: var(--space-sm); }
body.sheepdog-site .vibe-service-directory-link { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); padding-block: var(--space-md); border-bottom: 1px solid var(--color-border); color: var(--color-text); text-decoration: none; transition: color var(--motion-standard), border-color var(--motion-standard); }
.vibe-service-directory-link strong { display: block; font-size: var(--text-lg); }
.vibe-service-directory-link strong + span { display: block; color: var(--color-text-muted); font-size: var(--text-sm); margin-top: var(--space-xs); }
.vibe-service-directory-link > svg { flex-shrink: 0; }
body.sheepdog-site .vibe-service-directory-link:is(:hover,:focus-visible) { color: var(--color-primary); border-color: var(--color-primary); transition-delay: var(--motion-hover-delay); }
.vibe-nav__services { display: flex; flex-wrap: wrap; align-items: center; }
.vibe-nav__trigger { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: auto; gap: .45rem; min-height: 2.75rem; color: var(--color-text); background: transparent; border: 0; border-radius: var(--radius-sm); cursor: pointer; transition: color var(--motion-standard) var(--motion-hover-delay), background-color var(--motion-standard); }
.vibe-nav__trigger > .vibe-nav__chevron { display: block; width: .45rem; height: .45rem; font-size: 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-.12rem) rotate(45deg); transition: transform var(--motion-standard) var(--motion-ease); }
.vibe-nav__trigger[aria-expanded="true"] > .vibe-nav__chevron { transform: translateY(.12rem) rotate(225deg); }
.vibe-nav__trigger:is(:hover,[aria-expanded="true"]) { background: color-mix(in srgb, var(--color-primary) 15%, transparent); }
.vibe-nav__trigger:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.vibe-nav__trigger:hover, .vibe-nav__trigger:focus-visible { color: var(--color-primary); }
.vibe-nav__submenu { padding: var(--space-xs); border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface-alt); box-shadow: var(--shadow-card); min-width: min(23rem, calc(100vw - 2rem)); max-height: 65vh; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--color-text-muted) var(--color-surface-alt); }
body.sheepdog-site .vibe-nav__submenu .dropdown-item { white-space: normal; padding: .65rem var(--space-sm); color: var(--color-text); font-size: var(--text-sm); border-radius: var(--radius-sm); transition: background-color var(--motion-standard), color var(--motion-standard); }
body.sheepdog-site .vibe-nav__submenu .dropdown-item:is(:hover,:focus-visible,[aria-current="page"]) { color: var(--color-primary); background: var(--color-surface); }
.vibe-nav__menu .nav-link[aria-current="page"] { color: var(--color-primary); }
@media (max-width: 991.98px) {
  .vibe-nav__services > .nav-link { flex: 1; }
  .vibe-nav__trigger { justify-content: space-between; }
  .vibe-nav__submenu { flex-basis: 100%; width: 100%; min-width: 0; box-shadow: none; }
  .vibe-navbar .navbar-collapse { max-height: calc(100dvh - 8rem); overflow-y: auto; }
}
.vibe-nav__trigger { color: var(--color-surface); }
.vibe-nav__trigger:is(:hover,:focus-visible), .vibe-nav__menu .nav-link[aria-current="page"] { color: var(--color-primary-dark); }
@media (prefers-reduced-motion: reduce) {
  .vibe-nav__trigger > .vibe-nav__chevron { transition: none; }
}
