/* ============================================================================
   .p-consultation - /consultation (MD §12)
   REGENERATED (cycle 6): the page consumes the shared component layer
   (components.css c-hero/c-center+c-head/c-rows) for the hero and the
   working-session band. What survives here
   is what no component covers: the hero's breathing ring glyph, and the whole
   form apparatus - the completion meter (the page's one signature motion
   moment, driven by assets/js/pages/consultation.js), the 18-field form
   controls, and the confirmation state the JS swaps in.
   Everything scoped under .p-consultation.
   ========================================================================== */

/* ---- hero band: the ring glyph needs a clipping, positioned stage.
   background + section padding now come from .section.section--black plus the
   shared first-block nav clearance in base.css. ---- */
.p-consultation .pc-hero{ overflow:hidden; }
/* the ring sits fully inside the frame - a hard-clipped half-arc read as a
   rendering fault rather than a glyph */
.p-consultation .pc-hero__q{
  position:absolute; top:50%; right:clamp(0px,2vw,40px); width:clamp(280px,34vw,460px); height:auto;
  color:var(--royal); opacity:.5; transform:translateY(-50%);
  animation:pc-breathe 9s var(--ease-flow) infinite;
  pointer-events:none;
}
@keyframes pc-breathe{
  0%,100%{ transform:translateY(-50%) scale(1); opacity:.42 }
  50%{ transform:translateY(-50%) scale(1.04); opacity:.56 }
}
/* the hero copy must sit above the glyph */
.p-consultation .pc-hero__wrap{ position:relative; z-index:1; }
/* a measure wide enough to set this headline in two lines, not three */
.p-consultation .c-hero__title{ max-width:24ch; }

/* ---- form section: the form and its meter read left on a bounded column,
   under a centered head ---- */
.p-consultation .pc-form__wrap{ max-width:900px; }

/* completion meter - the page's one signature motion moment */
.p-consultation .pc-meter{ margin-top:clamp(32px,4vw,44px); max-width:640px; }
.p-consultation .pc-meter__track{
  height:4px; border-radius:var(--r-btn); background:var(--ink-40); overflow:hidden;
}
.p-consultation .pc-meter__fill{
  height:100%; width:0%; border-radius:var(--r-btn); background:var(--lime);
  transition:width var(--dur-smooth) var(--ease-smooth);
}
.p-consultation .pc-meter__label{
  margin-top:10px; font-size:var(--t-label); letter-spacing:var(--track-eyebrow); text-transform:uppercase; color:var(--ink-60);
}

/* form */
.p-consultation .pc-form{ margin-top:clamp(40px,5vw,56px); }
.p-consultation .pc-fieldset{
  border:0; padding:0; margin:0 0 clamp(36px,4.4vw,52px);
}
.p-consultation .pc-fieldset:last-of-type{ margin-bottom:clamp(28px,3.4vw,40px); }
.p-consultation .pc-fieldset__legend{
  padding:0; margin-bottom:20px; display:flex; align-items:baseline; gap:var(--s-3);
  font-family:var(--f-display); font-weight:650; font-size:var(--t-h4); color:var(--paper-full);
  text-transform:lowercase;
}
.p-consultation .pc-fieldset__num{
  color:var(--lime); font-size:var(--t-eyebrow); letter-spacing:.06em;
}
.p-consultation .pc-fieldset__grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 28px;
}
.p-consultation .pc-field{ display:flex; flex-direction:column; gap:var(--s-2); }
.p-consultation .pc-field--full{ grid-column:1 / -1; }

.p-consultation .pc-field label{
  font-family:var(--f-mono); font-size:var(--t-label); letter-spacing:var(--track-eyebrow); text-transform:uppercase;
  color:var(--ink-60);
}
.p-consultation .pc-field__req{ color:var(--lime); }

.p-consultation .pc-field input,
.p-consultation .pc-field select,
.p-consultation .pc-field textarea{
  width:100%; font-family:var(--f-body); font-size:var(--t-body); color:var(--paper-full);
  background:var(--ink-20); border:1px solid var(--ink-40); border-radius:var(--r-input);
  padding:13px var(--s-4); line-height:1.4;
  transition:border-color var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard);
}
.p-consultation .pc-field textarea{ resize:vertical; min-height:96px; }
.p-consultation .pc-field input::placeholder,
.p-consultation .pc-field textarea::placeholder{ color:var(--ink-60); opacity:1; }
.p-consultation .pc-field input:hover,
.p-consultation .pc-field select:hover,
.p-consultation .pc-field textarea:hover{ border-color:var(--ink-50); }
.p-consultation .pc-field input:focus,
.p-consultation .pc-field select:focus,
.p-consultation .pc-field textarea:focus{
  outline:none; border-color:var(--lime); background:var(--ink-10);
}
.p-consultation .pc-field select{
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23A6A6A6' stroke-width='1.6'><path d='M5 8l5 5 5-5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px;
  padding-right:40px;
}
.p-consultation .pc-field select:invalid{ color:var(--ink-60); }
.p-consultation .pc-field select option{ color:var(--lime-ink); background:var(--paper-full); }

.p-consultation .pc-form__submit{
  margin-top:clamp(8px,1.4vw,16px); display:flex; flex-direction:column; gap:14px; align-items:flex-start;
}
.p-consultation .pc-form__fine{ font-size:var(--t-eyebrow); color:var(--ink-60); max-width:52ch; line-height:1.5; }

/* confirmation state (swapped in by consultation.js on submit) */
.p-consultation .pc-confirm{
  margin-top:clamp(40px,5vw,56px); max-width:640px;
  padding-top:clamp(40px,5vw,56px); border-top:1px solid var(--ink-40);
}
.p-consultation .pc-confirm[hidden]{ display:none; }
.p-consultation .pc-confirm__q{
  width:56px; height:56px; color:var(--lime); margin-bottom:20px;
}
.p-consultation .pc-confirm h2{ margin-top:var(--s-3); font-size:var(--t-h2); max-width:14ch; }
.p-consultation .pc-confirm h2:focus{ outline:none; }
.p-consultation .pc-confirm__body{ margin-top:var(--s-4); font-size:var(--t-body-lg); line-height:1.6; max-width:56ch; color:var(--paper); }
.p-consultation .pc-confirm__body--muted{ color:var(--paper-muted); font-size:var(--t-body); }
.p-consultation .pc-confirm__links{ margin-top:26px; display:flex; flex-wrap:wrap; gap:14px var(--s-6); }

/* form fade-out / confirm fade-in, smooth per FEEL */
.p-consultation .pc-form{
  transition:opacity var(--dur-smooth) var(--ease-smooth), transform var(--dur-smooth) var(--ease-smooth);
}
.p-consultation .pc-form.is-submitting{ opacity:0; transform:translateY(-8px); pointer-events:none; }
.p-consultation .pc-form[hidden]{ display:none; }
.p-consultation .pc-confirm.is-in{ animation:pc-confirm-in var(--dur-smooth) var(--ease-smooth) both; }
@keyframes pc-confirm-in{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }

/* ---- responsive ---- */
@media (max-width:767px){
  .p-consultation .pc-hero__q{ right:-8vw; opacity:.32; }
  .p-consultation .pc-fieldset__grid{ grid-template-columns:1fr; }
}

/* motion stays on under reduced-motion (site rule); only large positional
   moves are already flattened by the shared token contract in tokens.css. */
