/* ============================================================
   VENAIO — service landing page
   Loaded only on the front page, so article pages stay lean.
   ============================================================ */

.hero {
  padding-block: clamp(3.5rem, 8vw, 7rem) clamp(3rem, 6vw, 5rem);
  position: relative;
  overflow: hidden;
}

/* soft light behind the hero, drawn with a gradient rather than
   an image so it costs nothing to load */
.hero::before {
  content: "";
  position: absolute;
  inset: -30% 20% auto -10%;
  height: 40rem;
  background: radial-gradient(
    ellipse at 30% 40%,
    color-mix(in oklab, var(--accent) 14%, transparent),
    transparent 62%
  );
  z-index: -1;
  pointer-events: none;
}

.hero__eyebrow {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-size: var(--step--1); font-weight: 560;
  color: var(--text-mute);
  background: var(--surface);
  border: 1px solid var(--border);
  padding: var(--sp-2) var(--sp-4);
  border-radius: 100px;
  margin-bottom: var(--sp-5);
}
.hero__eyebrow .pulse {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--ok);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--ok) 25%, transparent);
}

.hero h1 {
  font-size: clamp(2.4rem, 1.6rem + 3.4vw, 4.1rem);
  letter-spacing: -0.03em;
  line-height: 1.05;
  max-width: 18ch;
}
/* Teal to Orbit Violet — the same two brand hues the mark uses
   for the V and its aura arcs. */
.hero h1 em {
  font-style: normal;
  background: linear-gradient(100deg, var(--accent) 10%, var(--brand-orbit) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero__lede {
  font-size: var(--step-1);
  color: var(--text-mute);
  max-width: 54ch;
  margin-top: var(--sp-5);
  line-height: 1.6;
}

.hero__actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-top: var(--sp-6); }

/* anchors styled as buttons must drop the link underline */
a.btn, a.btn:hover { text-decoration: none; }
a.btn { padding-block: var(--sp-3); }

.btn-ghost {
  background: transparent !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
}
.btn-ghost:hover { background: var(--surface-2) !important; filter: none !important; }

/* proof strip */
.proof {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: var(--sp-5);
  margin-top: var(--sp-8);
  padding-top: var(--sp-6);
  border-top: 1px solid var(--border);
}
.proof__n {
  font-size: var(--step-2);
  font-weight: 680;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}
.proof__l { color: var(--text-mute); font-size: var(--step--1); margin-top: var(--sp-1); }

/* ---------- generic section ---------- */

.section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.section--alt { background: var(--surface); border-block: 1px solid var(--border); }

.section__head { max-width: 60ch; margin-bottom: var(--sp-7); }
.section__head h2 { font-size: var(--step-3); letter-spacing: -0.025em; margin: 0; }
.section__head p { color: var(--text-mute); margin-top: var(--sp-3); font-size: var(--step-0); }

/* ---------- capability cards ---------- */

.caps { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }

.cap {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--sp-5);
  transition: border-color 0.2s var(--ease), transform 0.2s var(--ease);
}
.cap:hover { border-color: var(--accent); transform: translateY(-2px); }
.cap h3 { font-size: var(--step-0); margin: 0 0 var(--sp-2); }
.cap p { color: var(--text-mute); font-size: var(--step--1); line-height: 1.6; margin: 0; }
.cap__icon {
  width: 2.25rem; height: 2.25rem; border-radius: 9px;
  background: var(--accent-soft); color: var(--accent);
  display: grid; place-items: center; margin-bottom: var(--sp-4);
}
.cap__icon svg { width: 1.15rem; height: 1.15rem; }

.stack-row { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-4); }
.chip {
  font-size: 0.78rem; font-weight: 550;
  padding: 0.2rem var(--sp-3);
  border-radius: 6px;
  background: var(--surface-2);
  color: var(--text-mute);
  border: 1px solid var(--border);
  font-family: var(--font-mono);
}

/* ---------- team ---------- */

.team { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }

.member {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--sp-5);
  display: flex; flex-direction: column; gap: var(--sp-3);
}
.member__top { display: flex; align-items: center; gap: var(--sp-3); }
.member__avatar {
  width: 2.75rem; height: 2.75rem; flex: none;
  border-radius: 50%;
  display: grid; place-items: center;
  font-weight: 640; font-size: var(--step-0);
  background: var(--accent-soft); color: var(--accent);
}
.member__role { font-weight: 620; font-size: var(--step-0); line-height: 1.2; }
.member__yrs { color: var(--text-mute); font-size: var(--step--1); }
.member p { color: var(--text-mute); font-size: var(--step--1); line-height: 1.6; margin: 0; }

/* ---------- process ---------- */

.steps { display: grid; gap: var(--sp-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); counter-reset: step; }
.step { position: relative; padding-top: var(--sp-5); border-top: 2px solid var(--border); }
.step::before {
  counter-increment: step;
  content: "0" counter(step);
  font-family: var(--font-mono);
  font-size: var(--step--1);
  color: var(--accent);
  font-weight: 600;
}
.step h3 { font-size: var(--step-0); margin: var(--sp-2) 0; }
.step p { color: var(--text-mute); font-size: var(--step--1); line-height: 1.6; margin: 0; }

/* ---------- FAQs ---------- */

.faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: start;
}
.faq-layout__intro { margin-bottom: 0; position: sticky; top: 6rem; }
.section__eyebrow {
  display: block;
  margin-bottom: var(--sp-3);
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.faq-list { border-top: 1px solid var(--border); }
.faq-item { border-bottom: 1px solid var(--border); }
.faq-item summary {
  position: relative;
  cursor: pointer;
  list-style: none;
  padding: var(--sp-5) 2.5rem var(--sp-5) 0;
  font-weight: 620;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  position: absolute;
  inset: 50% 0 auto auto;
  translate: 0 -50%;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: var(--step-1);
  font-weight: 400;
}
.faq-item[open] summary::after { content: "−"; }
.faq-item p {
  max-width: 58ch;
  margin: calc(-1 * var(--sp-2)) 0 var(--sp-5);
  color: var(--text-mute);
  font-size: var(--step--1);
  line-height: 1.65;
}

/* ---------- case studies (anonymised) ---------- */

.cases { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.case {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--sp-5);
  display: flex; flex-direction: column; gap: var(--sp-3);
}
.case__tag { font-family: var(--font-mono); font-size: 0.75rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: 0.06em; }
.case h3 { font-size: var(--step-0); margin: 0; line-height: 1.35; }
.case p { color: var(--text-mute); font-size: var(--step--1); line-height: 1.65; margin: 0; }
.case__result {
  margin-top: auto; padding-top: var(--sp-3);
  border-top: 1px solid var(--border);
  font-size: var(--step--1); font-weight: 560; color: var(--ok);
}

/* ---------- final CTA ---------- */

.cta {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(2rem, 5vw, 3.5rem);
  text-align: center;
  margin-block: var(--sp-8);
}
.cta h2 { font-size: var(--step-3); letter-spacing: -0.025em; }
.cta p { color: var(--text-mute); max-width: 48ch; margin: var(--sp-4) auto 0; }
.cta .hero__actions { justify-content: center; }
.cta .cta__note { margin-top: var(--sp-3); font-size: var(--step--1); }

/* Six capabilities and six people divide evenly into three columns.
   auto-fit was giving 4 + 2, which reads as an unfinished row. */
@media (min-width: 62rem) {
  .caps, .team { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 48rem) {
  .faq-layout { grid-template-columns: 1fr; gap: var(--sp-6); }
  .faq-layout__intro { position: static; }
}

/* ============================================================
   Product panel — Venaio Voice platform
   ============================================================ */

.product {
  display: grid;
  gap: var(--sp-7);
  align-items: center;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 56rem) {
  .product { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
}

.product__body h2 {
  font-size: var(--step-3);
  letter-spacing: -0.025em;
  margin: 0 0 var(--sp-4);
}

.product__body p {
  color: var(--text-mute);
  max-width: 56ch;
  margin: 0 0 var(--sp-4);
}

.product__note {
  font-size: var(--step--1);
  padding-inline-start: var(--sp-4);
  border-inline-start: 2px solid var(--accent);
}

/* The mark sits on its own aura wash so the navy square does not
   float unanchored on a light canvas. */
.product__mark {
  position: relative;
  justify-self: center;
  width: min(100%, 15rem);
  aspect-ratio: 1;
}

.product__mark::before {
  content: "";
  position: absolute;
  inset: -18%;
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 45%,
    color-mix(in oklab, var(--brand-orbit) 22%, transparent),
    transparent 68%
  );
  z-index: -1;
}

.product__mark svg {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 22%;
  box-shadow: 0 18px 48px rgb(7 24 39 / 0.28);
}

/* ============================================================
   Compact team — sits below the proof, so it reads as
   supporting detail rather than the pitch.
   ============================================================ */

.team--compact {
  gap: var(--sp-3);
}

@media (min-width: 62rem) {
  .team--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.member--compact {
  gap: var(--sp-1);
  padding: var(--sp-4) var(--sp-5);
  background: var(--bg);
}

.member--compact .member__role {
  font-size: var(--step--1);
  font-weight: 620;
}

.member--compact .member__yrs {
  font-size: 0.78rem;
  color: var(--accent);
  font-weight: 560;
}

.member--compact p {
  font-size: 0.8rem;
  font-family: var(--font-mono);
  color: var(--text-mute);
  line-height: 1.5;
  margin-top: var(--sp-2);
}

/* what the person owns on an AI build — the line that carries the
   meaning, so it gets the emphasis and the stack drops back */
.member--compact .member__focus {
  font-family: var(--font-sans);
  font-size: var(--step--1);
  color: var(--text);
  line-height: 1.45;
  margin-top: var(--sp-2);
}

.member--compact p:last-child {
  font-size: 0.76rem;
  font-family: var(--font-mono);
  color: var(--text-mute);
  margin-top: var(--sp-2);
  padding-top: var(--sp-2);
  border-top: 1px solid var(--border);
}

.team__note {
  margin-top: var(--sp-6);
  padding-inline-start: var(--sp-4);
  border-inline-start: 2px solid var(--accent);
  color: var(--text-mute);
  font-size: var(--step--1);
  max-width: 62ch;
}

/* VEN-UX-02: contact and footer navigation. */
.cap__link { display: inline-flex; gap: .35rem; margin-top: var(--sp-3); font-size: var(--step--1); font-weight: 600; }
.contact-panel { text-align: left; display: grid; gap: var(--sp-7); align-items: center; }
.contact-panel__intro { min-width: 0; }
.contact-panel__intro h2 { margin: 0; }
.contact-panel__intro p { margin-inline: 0; }
.contact-panel__intro .hero__actions { justify-content: flex-start; }
.contact-panel__details { padding: var(--sp-5); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.contact-panel__details h3 { margin: 0; font-size: var(--step-0); }
.contact-panel__details ul { margin-top: var(--sp-3); padding-inline-start: 1.25rem; color: var(--text-mute); }
.contact-panel__details li + li { margin-top: var(--sp-2); }
.contact-panel__details p { margin: var(--sp-4) 0 0; font-size: var(--step--1); }
.home-footer { margin-top: var(--sp-8); }
.home-footer__grid { display: grid; gap: var(--sp-6); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-footer__about { grid-column: 1 / -1; }
.home-footer__brand { color: var(--text) !important; font-size: var(--step-1); font-weight: 700; }
.home-footer__brand span { color: var(--accent); }
.home-footer__about p { max-width: 30ch; margin-top: var(--sp-2); }
.home-footer nav { display: grid; gap: var(--sp-2); align-content: start; }
.home-footer nav h2 { color: var(--text); font-size: var(--step--1); margin: 0 0 var(--sp-2); }
.home-footer__bottom { margin-top: var(--sp-7); padding-top: var(--sp-4); border-top: 1px solid var(--border); }
@media (min-width: 48rem) {
  .contact-panel { grid-template-columns: 1.15fr 1fr; }
  .home-footer__grid { grid-template-columns: 2fr 1fr 1fr; }
  .home-footer__about { grid-column: auto; }
}
