/* =========================================================
   Bull City Systems — additional sections (v2)
   About, picker, multi-step intake, inspirations
   ========================================================= */

/* ---------- ABOUT THE OWNER ---------- */
.about {
  background: var(--c-ink);
  border-top: 1px solid var(--c-line-soft);
  border-bottom: 1px solid var(--c-line-soft);
  position: relative;
  overflow: hidden;
}
.about::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(46, 93, 168, 0.08), transparent 50%),
    radial-gradient(ellipse at 90% 80%, rgba(200, 147, 46, 0.06), transparent 55%);
  pointer-events: none;
}
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 72px;
  align-items: center;
  position: relative;
  z-index: 1;
}
.about-portrait { display: flex; justify-content: center; }
.portrait-frame {
  position: relative;
  width: 100%;
  max-width: 460px;
  aspect-ratio: 4 / 5;
  background: var(--c-charcoal);
  border: 1px solid var(--c-line);
  border-radius: var(--rad-3);
  overflow: hidden;
}
.portrait-photo {
  border: 1px solid var(--c-brass-dim);
  box-shadow:
    0 30px 60px -20px rgba(0,0,0,0.7),
    inset 0 0 0 1px rgba(200,147,46,0.12);
}
.portrait-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 32%;
  filter: contrast(1.04) saturate(0.92);
}
.portrait-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(11,13,17,0) 55%, rgba(11,13,17,0.85) 100%),
    linear-gradient(0deg, rgba(200,147,46,0.08), rgba(200,147,46,0));
  pointer-events: none;
}
.portrait-stamp {
  position: absolute;
  top: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 9px 5px 7px;
  background: rgba(11,13,17,0.78);
  border: 1px solid var(--c-go-dim);
  border-radius: 999px;
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  color: var(--c-go);
  text-transform: uppercase;
  backdrop-filter: blur(6px);
  z-index: 2;
}
.portrait-stamp-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-go);
  box-shadow: 0 0 8px var(--c-go-glow);
  animation: goPulse 2.4s var(--ease-out) infinite;
}
@keyframes goPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(79,168,115,0.55); }
  60%      { box-shadow: 0 0 0 10px rgba(79,168,115,0); }
}
.portrait-tag {
  position: absolute;
  bottom: 16px; left: 16px; right: 16px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-top: 12px;
  border-top: 1px solid var(--c-line-soft);
  background: linear-gradient(180deg, transparent, rgba(11, 13, 17, 0.7));
}
.portrait-name {
  font-family: var(--f-display);
  font-size: 14px;
  color: var(--c-bone);
  font-weight: 500;
}
.about-body { display: flex; flex-direction: column; gap: 18px; }
.about-title { margin: 0; }
.about-lede { max-width: 540px; margin: 0; }
.about-copy { font-size: 15px; line-height: 1.6; margin: 0; max-width: 560px; }
.ext-link {
  color: var(--c-brass);
  border-bottom: 1px solid var(--c-brass-dim);
  transition: color 160ms var(--ease-out), border-color 160ms var(--ease-out);
}
.ext-link:hover { color: var(--c-bone); border-bottom-color: var(--c-bone); }
.ext-arrow { color: var(--c-brass); font-family: var(--f-mono); }

.about-pills {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.about-pills li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px 7px 8px;
  border: 1px solid var(--c-line);
  background: rgba(236, 229, 214, 0.04);
  border-radius: 999px;
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--c-bone);
  letter-spacing: 0.04em;
  transition: border-color 160ms var(--ease-out), background 160ms var(--ease-out);
}
.about-pills li:hover {
  border-color: var(--c-go);
  background: rgba(79, 168, 115, 0.06);
}
.about-pills .vet-pill {
  border-color: rgba(184, 58, 40, 0.45);
}
.about-pills .vet-pill .t-vet {
  color: var(--c-bone);
}
.about-pills .vet-pill .t-vet::before {
  display: none;
}
.pill-check {
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--c-go);
  color: var(--c-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 0 2px rgba(79, 168, 115, 0.18);
}
.pill-check svg {
  width: 10px; height: 10px;
  display: block;
}
/* legacy class kept for safety */
.pill-dot {
  width: 5px; height: 5px;
  background: var(--c-go);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(79, 168, 115, 0.5);
}
.about-cta { align-self: flex-start; margin-top: 12px; }

@media (max-width: 900px) {
  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .portrait-frame { max-width: 360px; }
}

/* ---------- INTAKE PROGRESS BAR ---------- */
.intake-progress {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 32px;
  padding: 16px 24px;
  background: var(--c-ink);
  border: 1px solid var(--c-line-soft);
  border-radius: var(--rad-3);
}
.ip-step { display: flex; align-items: center; gap: 10px; color: var(--c-mute); transition: color 200ms var(--ease-out); }
.ip-step.on { color: var(--c-bone); }
.ip-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--c-line);
  border: 1px solid var(--c-line);
  transition: background 200ms var(--ease-out), border-color 200ms var(--ease-out);
}
.ip-step.on .ip-dot { background: var(--c-brass); border-color: var(--c-brass); box-shadow: 0 0 0 3px rgba(200, 147, 46, 0.18); }
.ip-label {
  font-family: var(--f-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}
.ip-line {
  flex: 1;
  height: 1px;
  background: var(--c-line-soft);
  max-width: 80px;
}
@media (max-width: 720px) {
  .intake-progress { flex-wrap: wrap; padding: 12px 16px; gap: 8px; }
  .ip-line { display: none; }
}

/* ---------- SERVICE PICKER ---------- */
.picker { display: flex; flex-direction: column; gap: 24px; }
.picker-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.picker-error { outline: 1px solid var(--c-brick); border-radius: var(--rad-3); padding: 8px; }
.picker-card {
  text-align: left;
  background: var(--c-charcoal);
  border: 1px solid var(--c-line-soft);
  border-radius: var(--rad-3);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  cursor: pointer;
  transition: all 200ms var(--ease-out);
  font-family: inherit;
  color: inherit;
  position: relative;
  min-height: 180px;
}
.picker-card:hover {
  transform: translateY(-2px);
  border-color: var(--c-line);
  background: var(--c-charcoal-2);
}
.picker-card.on {
  border-color: var(--c-brass);
  background: linear-gradient(180deg, rgba(200, 147, 46, 0.06), var(--c-charcoal));
  box-shadow: 0 0 0 1px var(--c-brass) inset;
}
.picker-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.picker-check {
  width: 22px; height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-brass);
}
.picker-circle {
  width: 14px; height: 14px;
  border: 1.5px solid var(--c-line);
  border-radius: 50%;
}
.picker-card:hover .picker-circle { border-color: var(--c-bone-dim); }
.picker-title {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 19px;
  letter-spacing: -0.01em;
  color: var(--c-bone);
  margin: 0;
}
.picker-blurb {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--c-bone-dim);
  margin: 0;
}
.picker-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  background: var(--c-ink);
  border: 1px solid var(--c-line-soft);
  border-radius: var(--rad-3);
  position: sticky;
  bottom: 16px;
}
.picker-count {
  font-family: var(--f-mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--c-bone-dim);
}
.picker-err {
  color: var(--c-brick);
  font-family: var(--f-mono);
  font-size: 12px;
  margin: 0;
  letter-spacing: 0.04em;
}
@media (max-width: 900px) { .picker-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .picker-grid { grid-template-columns: 1fr; }
  .picker-bar { flex-direction: column; gap: 12px; align-items: stretch; }
}

/* ---------- SERVICE FORM (per-service tailored) ---------- */
.intake-form {
  background: var(--c-ink);
  border: 1px solid var(--c-line-soft);
  border-radius: var(--rad-3);
  padding: 0;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}
.form-banner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 32px 40px;
  border-bottom: 1px solid var(--c-line-soft);
  background: linear-gradient(180deg, var(--c-charcoal-2), var(--c-charcoal));
  gap: 24px;
}
.form-banner-meta { display: flex; flex-direction: column; gap: 8px; }
.form-banner-title {
  font-family: var(--f-display);
  font-size: 26px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--c-bone);
  margin: 0;
}
.form-banner-blurb {
  color: var(--c-bone-dim);
  margin: 0;
  max-width: 560px;
  font-size: 14px;
}
.form-banner-pill {
  font-family: var(--f-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  border: 1px solid var(--c-line);
  border-radius: var(--rad-2);
  padding: 8px 14px;
  color: var(--c-bone);
  background: var(--c-ink);
}
.form-banner-pill.accent-blue { color: var(--c-blue-soft); border-color: var(--c-blue-deep); }
.form-banner-pill.accent-brass { color: var(--c-brass); border-color: var(--c-brass-dim); }
.form-banner-pill.accent-brick { color: var(--c-brick); border-color: var(--c-brick-dim); }

.form-fields {
  padding: 32px 40px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.form-contact {
  padding: 32px 40px;
  border-top: 1px solid var(--c-line-soft);
  background: var(--c-charcoal);
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.contact-head { display: flex; flex-direction: column; gap: 4px; }
.contact-title {
  font-family: var(--f-display);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--c-bone);
  margin: 0;
}
.form-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 40px;
  border-top: 1px solid var(--c-line-soft);
  background: var(--c-ink);
}
@media (max-width: 720px) {
  .form-banner, .form-fields, .form-contact, .form-foot { padding-left: 20px; padding-right: 20px; }
  .form-banner { padding-top: 24px; padding-bottom: 24px; }
  .form-banner-title { font-size: 22px; }
}

/* ---------- INSPIRATION COLLECTOR ---------- */
.insp-field { display: flex; flex-direction: column; gap: 12px; }
.insp-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px dashed var(--c-line);
  border-radius: var(--rad-2);
  padding: 8px;
  background: rgba(46, 93, 168, 0.03);
}
.insp-item {
  display: grid;
  grid-template-columns: 32px 1fr 32px;
  gap: 12px;
  align-items: start;
  padding: 10px 12px;
  background: var(--c-charcoal);
  border: 1px solid var(--c-line-soft);
  border-radius: var(--rad-2);
}
.insp-num {
  font-family: var(--f-mono);
  font-size: 11px;
  color: var(--c-brass);
  letter-spacing: 0.06em;
  padding-top: 2px;
}
.insp-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.insp-url {
  color: var(--c-bone);
  font-family: var(--f-mono);
  font-size: 13px;
  word-break: break-all;
  border-bottom: 1px dashed var(--c-line);
  padding-bottom: 2px;
  align-self: flex-start;
  display: inline-flex;
  gap: 6px;
  align-items: center;
}
.insp-url:hover { color: var(--c-brass); border-color: var(--c-brass); }
.insp-arrow { color: var(--c-mute); font-size: 11px; }
.insp-note { font-size: 13px; color: var(--c-bone-dim); margin: 0; line-height: 1.5; font-style: italic; }
.insp-x {
  background: transparent;
  border: 1px solid var(--c-line);
  color: var(--c-mute);
  border-radius: 50%;
  width: 24px; height: 24px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: all 160ms var(--ease-out);
}
.insp-x:hover { color: var(--c-brick); border-color: var(--c-brick); }

.insp-add {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 8px;
  align-items: stretch;
}
.insp-add .field-input { padding: 10px 12px; font-size: 14px; }
.insp-add-btn {
  padding: 10px 16px;
  font-size: 13px;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .insp-add { grid-template-columns: 1fr; }
  .insp-item { grid-template-columns: 28px 1fr 28px; }
}

/* ---------- SUCCESS STATE override (kept compatible) ---------- */
.success { background: var(--c-ink); border: 1px solid var(--c-brass-dim); border-radius: var(--rad-3); padding: 56px 48px; display: flex; flex-direction: column; gap: 20px; max-width: 720px; margin: 0 auto; }

/* ---------- HERO LAYOUT VARIANTS (for Tweaks) ---------- */
body[data-hero="centered"] .hero-inner { text-align: center; }
body[data-hero="centered"] .hero-meta { justify-content: center; }
body[data-hero="centered"] .hero-lede { margin-left: auto; margin-right: auto; }
body[data-hero="centered"] .hero-ctas { justify-content: center; }
body[data-hero="centered"] .hero-trust { justify-content: center; max-width: none; }
body[data-hero="centered"] .hero-diagram { display: none; }

body[data-hero="split"] .hero-diagram { display: block; opacity: 0.85; }
body[data-hero="split"] .hero-title,
body[data-hero="split"] .hero-lede,
body[data-hero="split"] .hero-ctas,
body[data-hero="split"] .hero-trust { max-width: 620px; }

body[data-hero="minimal"] .hero { padding: 220px 0 140px; min-height: auto; }
body[data-hero="minimal"] .hero-bg { opacity: 0.4; }
body[data-hero="minimal"] .hero-diagram { display: none; }

/* ---------- SERVICES LAYOUT VARIANTS ---------- */
body[data-services="grid"] .services-grid { grid-template-columns: repeat(3, 1fr); }
body[data-services="rows"] .services-grid {
  grid-template-columns: 1fr;
  border: 0;
  background: transparent;
  gap: 0;
  border-top: 1px solid var(--c-line-soft);
}
body[data-services="rows"] .svc-card {
  display: grid;
  grid-template-columns: 64px 1.2fr 1.4fr 1fr;
  gap: 32px;
  align-items: start;
  padding: 32px 0;
  border-bottom: 1px solid var(--c-line-soft);
  background: transparent !important;
  min-height: auto;
}
body[data-services="rows"] .svc-head { grid-column: 1; flex-direction: column; align-items: flex-start; }
body[data-services="rows"] .svc-title { grid-column: 2; }
body[data-services="rows"] .svc-body { grid-column: 3; }
body[data-services="rows"] .svc-points { grid-column: 4; border: 0; padding: 0; margin: 0; }
body[data-services="rows"] .card-accent-top { display: none; }
@media (max-width: 900px) {
  body[data-services="rows"] .svc-card { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; }
}

body[data-services="cards"] .services-grid { grid-template-columns: repeat(3, 1fr); border-radius: 0; border: 0; gap: 16px; background: transparent; overflow: visible; }
body[data-services="cards"] .svc-card { border: 1px solid var(--c-line-soft); border-radius: var(--rad-3); }
@media (max-width: 980px) {
  body[data-services="cards"] .services-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  body[data-services="cards"] .services-grid { grid-template-columns: 1fr; }
}

/* ---------- ACCENT VARIANTS ---------- */
body[data-accent="gold"] {
  --c-accent: var(--c-brass);
}
body[data-accent="blue"] {
  --c-brass: #2E5DA8;
  --c-brass-dim: #1F4A8A;
}
body[data-accent="brick"] {
  --c-brass: #A23A28;
  --c-brass-dim: #6E2818;
}
