/* ==========================================================================
   Consultoria empresarial
   ========================================================================== */

/* --------------------------------------------------------------------------
   Abertura
   -------------------------------------------------------------------------- */

.k-hero {
  padding-top: calc(var(--header-h) + var(--space-7));
  padding-bottom: var(--section-y);
  background-color: var(--bg-deep);
}
.k-hero__grid { display: grid; gap: var(--space-8); align-items: center; }
.k-hero__title {
  font-size: var(--fs-h1);
  line-height: 1;
  letter-spacing: var(--ls-display);
}
.k-hero__title .light { font-weight: var(--fw-light); }
.k-hero__title .hero__line:nth-child(3) > span { animation-delay: 480ms; }
.k-hero__title .hero__line:nth-child(4) > span { animation-delay: 600ms; }
.k-hero__lead { margin-top: var(--space-6); max-width: 44ch; color: var(--fg-1); }
.k-hero__actions { margin-top: var(--space-6); }
.k-hero__photo {
  justify-self: end;
  width: min(100%, 28rem);
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: var(--radius-lg);
}
.k-hero__photo > div, .k-hero__photo img { width: 100%; height: 100%; }
.k-hero__photo img { object-fit: cover; transform: scale(1.12); }

.js .k-hero__eyebrow { animation: k-rise 600ms var(--ease-out) 100ms both; --d: 12px; }
.js .k-hero__lead { animation: k-rise 720ms var(--ease-out) 600ms both; --d: 20px; }
.js .k-hero__actions { animation: k-rise 780ms var(--ease-out) 740ms both; --d: 28px; }
.js .k-hero__photo { animation: k-photo 1200ms var(--ease-out) 200ms both; }

@keyframes k-rise { from { opacity: 0; transform: translateY(var(--d)); } }
@keyframes k-photo { from { opacity: 0; clip-path: inset(12% 0 0 0); } to { opacity: 1; clip-path: inset(0 0 0 0); } }

@media (min-width: 64em) {
  .k-hero { min-height: min(100svh, 60rem); display: flex; align-items: center; }
  .k-hero > .container { width: 100%; }
  .k-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(3rem, 1rem + 5vw, 7rem); }
}

/* --------------------------------------------------------------------------
   De onde vem
   -------------------------------------------------------------------------- */

.origin__grid { display: grid; gap: var(--space-8); }
.origin .prose { margin-top: var(--space-6); }
.origin__photo { justify-self: end; width: min(100%, 30rem); margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius-lg); }
.origin__photo > div, .origin__photo img { width: 100%; height: 100%; }
.origin__photo img { object-fit: cover; transform: scale(1.1); }
.origin__quote {
  margin: var(--space-7) 0 0;
  max-width: 40ch;
  padding-left: var(--space-5);
  border-left: 2px solid var(--highlight);
  color: var(--gold-300);
  font-family: var(--font-serif);
  font-size: clamp(1.375rem, 1.15rem + .9vw, 1.875rem);
  font-style: italic;
  line-height: 1.25;
}

@media (min-width: 64em) {
  .origin__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(3rem, 1rem + 5vw, 7rem); align-items: center; }
}

/* --------------------------------------------------------------------------
   Método: três etapas; a escolhida ganha espaço
   -------------------------------------------------------------------------- */

.method__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-4);
}
.method__hint { display: none; color: var(--fg-3); font-size: var(--fs-small); }

.steps {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-8);
  list-style: none;
}
.step {
  position: relative;
  display: grid;
  align-content: start;
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-6);
  border: 1px solid var(--border);
  border-top: 3px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: rgba(14, 18, 24, .35);
  overflow: hidden;
  transition: border-color 300ms var(--ease-out), background-color 300ms var(--ease-out), flex-grow 700ms var(--ease-out);
}
.step__n {
  color: var(--highlight);
  font-size: var(--fs-label);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-label);
}
.step__name { font-size: var(--fs-h3); }
.step__q { color: var(--fg-1); font-size: var(--fs-lead); line-height: 1.4; font-weight: var(--fw-medium); }
.step__a { margin-top: var(--space-3); color: var(--fg-2); }

@media (min-width: 64em) {
  .method__hint { display: block; }
  .steps { display: flex; gap: var(--space-4); }
  .step { flex: 1 1 0; padding: var(--space-7) var(--space-6); min-height: 24rem; cursor: default; }
  .step.is-open { flex-grow: 1.9; border-top-color: var(--highlight); background: rgba(42, 100, 194, .12); }
  .step__body { max-width: 36ch; }
  .step__a { transition: opacity 400ms var(--ease-out), transform 500ms var(--ease-out); }
  .step:not(.is-open) .step__a { opacity: .78; }
  .step.is-open .step__a { opacity: 1; }
}

/* --------------------------------------------------------------------------
   Qual é a sua necessidade
   -------------------------------------------------------------------------- */

.needs__grid { display: grid; gap: var(--space-7); }
.needs__set { display: grid; gap: var(--space-3); margin: 0; padding: 0; border: 0; min-width: 0; }

.need {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: 3.75rem;
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  color: var(--fg-1);
  font-weight: var(--fw-medium);
  cursor: pointer;
  transition: border-color var(--dur-micro) var(--ease-out), background-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}
.need input { position: absolute; opacity: 0; pointer-events: none; }
.need:hover { border-color: var(--fg-1); transform: translateX(4px); }
.need:active { transform: scale(.99); }
.need__mark {
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  border: 1.5px solid var(--border-strong);
  border-radius: 50%;
  transition: border-color var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out);
}
.need:has(input:checked) { border-color: var(--highlight); background: rgba(201, 164, 92, .1); }
.need:has(input:checked) .need__mark { border-color: var(--highlight); box-shadow: inset 0 0 0 4px var(--bg), inset 0 0 0 10px var(--highlight); }
.need:has(input:focus-visible) { outline: 2px solid var(--highlight); outline-offset: 3px; }

.need-answer {
  display: grid;
  align-content: start;
  gap: var(--space-5);
  margin-top: var(--space-6);
  padding: var(--space-6);
  border-left: 2px solid var(--highlight);
  background: var(--bg-deep);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.need-answer__empty { color: var(--fg-3); }
.need-answer__text { color: var(--fg-1); font-size: var(--fs-lead); line-height: 1.5; }
.need-answer__text:not([hidden]) { animation: k-rise 520ms var(--ease-out) both; --d: 10px; }
.need-answer__cta { justify-self: start; }
.need-answer__cta:not([hidden]) { animation: k-rise 600ms var(--ease-out) 120ms both; --d: 14px; }

@media (min-width: 64em) {
  .needs__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(3rem, 1rem + 5vw, 7rem); }
  .needs__body { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: start; }
  .need-answer { margin-top: 0; min-height: 100%; }
}

/* --------------------------------------------------------------------------
   Formulário (mesma seção do "Por onde começar")
   -------------------------------------------------------------------------- */

.contact-form {
  display: grid;
  gap: var(--space-7);
  margin-top: var(--section-y);
  padding-top: var(--section-y);
  border-top: 1px solid var(--border);
}
.contact-form__title { font-size: var(--fs-h2); line-height: 1.08; }
.contact-form .lead { margin-top: var(--space-5); max-width: 44ch; }
.contact-form__note { margin-top: var(--space-5); max-width: 44ch; color: var(--fg-3); font-size: var(--fs-small); }

.form {
  display: grid;
  gap: var(--space-5);
  padding: clamp(1.25rem, .6rem + 3vw, 2.5rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--bg-deep);
}
.form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__req { color: var(--fg-3); font-size: var(--fs-small); }
.form__row { display: grid; gap: var(--space-5); }
.field { display: grid; gap: var(--space-2); }
.field label { color: var(--fg-1); font-size: var(--fs-small); font-weight: var(--fw-bold); }
.field input, .field textarea {
  width: 100%;
  min-height: 3rem;
  padding: .75rem 1rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--bg);
  color: var(--fg-1);
  font: inherit;
  transition: border-color var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out);
}
.field textarea { resize: vertical; min-height: 8rem; }
.field input:hover, .field textarea:hover { border-color: var(--fg-2); }
.field input:focus-visible, .field textarea:focus-visible { outline: none; border-color: var(--highlight); box-shadow: 0 0 0 3px rgba(201, 164, 92, .3); }
.field [aria-invalid="true"] { border-color: #E08A75; }

.check { display: grid; grid-template-columns: 1.5rem 1fr; gap: var(--space-3); align-items: start; color: var(--fg-2); font-size: var(--fs-small); }
.check input { width: 1.5rem; height: 1.5rem; margin: 0; accent-color: var(--highlight); }
.check a { color: var(--sky); text-decoration: underline; text-underline-offset: 3px; }
.check a:hover { color: var(--highlight); }

.form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.form__foot .btn[disabled] { opacity: .7; cursor: progress; transform: none; }
.form__status { font-size: var(--fs-small); font-weight: var(--fw-medium); }
.form__status.is-ok { color: #8FD3AE; }
.form__status.is-err { color: #F0A592; }

@media (min-width: 40em) {
  .form__row { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 64em) {
  .contact-form { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(3rem, 1rem + 5vw, 7rem); align-items: start; }
}

/* --------------------------------------------------------------------------
   Convite final
   -------------------------------------------------------------------------- */

.k-final__title { font-size: var(--fs-h1); line-height: 1.02; letter-spacing: var(--ls-display); max-width: 14ch; }
.k-final .lead { margin-top: var(--space-6); max-width: 52ch; }
.k-final__action { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-6); margin-top: var(--space-7); }
.k-final__action p { color: var(--fg-3); font-size: var(--fs-small); }
