/* =============================================================
   service detail pages — single-screen (no long scroll) layout.
   Built on /assets/styles.css tokens. Page sets its hue once via
   <body style="--svc: var(--svc-X)">.  Desktop fits ~1 viewport;
   below 860px it stacks and may scroll.
   ============================================================= */

.solo {
  min-height: calc(100vh - var(--nav-h));
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(26px, 4vh, 52px);
  padding: clamp(20px, 4vh, 48px) 0;
  position: relative;
  overflow: hidden;
}

/* soft service-tinted ambiance (no height cost) */
.solo__orbs { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.solo__orbs .orb--1 { background: var(--svc, var(--accent)); }
.solo__orbs .orb--2 { background: var(--accent); }
.solo__orbs .orb--3 { background: var(--svc, var(--accent)); }

/* ---- compact hero (top) ---- */
.solo__hero { text-align: center; max-width: 720px; margin-inline: auto; padding-inline: 24px; }
.solo__hero .eyebrow { color: var(--svc, var(--accent)); display: block; margin-bottom: 14px; }
.solo__hero h1 {
  font-size: clamp(34px, 4.6vw, 58px); line-height: 1.07; letter-spacing: -0.03em; font-weight: 700;
  margin: 0;
}
.solo__lead { font-size: var(--t-lead); color: var(--ink-soft); margin: 16px auto 0; max-width: 44ch; text-wrap: pretty; }
.solo__actions { display: flex; gap: 12px; justify-content: center; margin-top: 26px; flex-wrap: wrap; }

/* ---- info band (bottom, two panels) ---- */
.solo__band {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  width: 100%; max-width: var(--maxw-wide); margin-inline: auto; padding-inline: 24px;
  align-items: start;
}
.panel {
  background: var(--bg-soft);
  border: 1px solid color-mix(in oklab, var(--ink) 7%, transparent);
  border-radius: var(--r-lg);
  padding: 26px 30px;
}
.panel > .eyebrow { color: var(--svc, var(--accent)); display: block; margin-bottom: 16px; }

/* key features — compact rows */
.feat { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; }
.feat + .feat { border-top: 1px solid color-mix(in oklab, var(--ink) 7%, transparent); }
.feat__dot {
  flex: none; width: 30px; height: 30px; border-radius: 9px; margin-top: 1px;
  display: grid; place-items: center; font-size: 13px; font-weight: 700;
  color: var(--svc, var(--accent));
  background: color-mix(in oklab, var(--svc, var(--accent)) 14%, transparent);
}
.feat h3 { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; }
.feat p { font-size: var(--t-small); color: var(--ink-soft); margin-top: 3px; line-height: 1.45; }

/* how it works — compact numbered list */
.steps { display: grid; gap: 2px; }
.step { display: flex; gap: 14px; align-items: center; padding: 10px 0; }
.step + .step { border-top: 1px solid color-mix(in oklab, var(--ink) 7%, transparent); }
.step__n {
  flex: none; width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--display); font-weight: 700; font-size: 13px;
  color: #fff; background: var(--svc, var(--accent));
}
.step__label { font-size: 15px; font-weight: 500; color: var(--ink); }
.step__label span { display: block; font-size: 13px; font-weight: 400; color: var(--ink-soft); margin-top: 1px; }

/* ---- responsive: stack, allow natural scroll ---- */
@media (max-width: 860px) {
  .solo { min-height: 0; justify-content: flex-start; padding-top: 36px; }
  .solo__band { grid-template-columns: 1fr; }
}
