/* ============================================================================
   CONTACT PAGE
   ========================================================================== */
.section[id]{scroll-margin-top:6rem}

/* ---- HERO ------------------------------------------------------------------ */
.ch-grid{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:center}
@media(min-width:940px){.ch-grid{grid-template-columns:1.25fr .75fr}}
.ch-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}
.ch-assure{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:1.9rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.ch-assure li{display:flex;align-items:center;gap:.45rem;font-size:var(--fs-small);color:var(--ink-soft)}
.ch-assure svg{width:15px;height:15px;color:var(--purple);flex:none}

.ch-card{
  text-align:center;padding:2rem 1.6rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  box-shadow:var(--shadow-md);
}
.ch-card img{width:96px;height:96px;margin:0 auto .9rem;object-position:center 15%}
.ch-card b{display:block;font-family:var(--font-display);font-size:1.2rem;font-weight:580;color:var(--ink)}
.ch-cred{
  display:inline-block;margin:.35rem 0 1rem;
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--purple);background:var(--purple-tint);
  padding:.3rem .7rem;border-radius:var(--r-pill);
}
.ch-card p{font-size:var(--fs-small);line-height:1.6;font-style:italic}
.ch-mini{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;
  margin-top:1.4rem;padding-top:1.3rem;border-top:1px solid var(--line);
}
.ch-mini b{
  font-family:var(--font-display);font-size:1.3rem;line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.ch-mini span{display:block;font-size:.7rem;color:var(--ink-faint);margin-top:.25rem;line-height:1.3}

/* ---- QUICK CHANNELS --------------------------------------------------------- */
.chan{height:100%;display:flex;flex-direction:column}
.chan p{flex:1;font-size:var(--fs-small)}
.chan-note{
  display:inline-block;margin-top:.9rem;
  font-size:var(--fs-tiny);font-weight:650;color:var(--purple);
}
.qa-card{height:100%;display:flex;flex-direction:column}
.qa-card p{flex:1}
.qa-note{color:var(--ink-faint);font-size:var(--fs-tiny)}

/* ---- REQUEST A CONSULTATION ------------------------------------------------ */
/* The booking section is a CTA card handing off to the hosted intake form,
   not an embedded scheduler, so it is width-capped like the old frame was. */
.book-cta{max-width:46rem;margin-inline:auto}
.book-cta .card{text-align:center;display:grid;gap:.9rem;justify-items:center}
.book-cta .cal-fallback{margin-top:.4rem}
.cal-fallback{
  margin-top:1rem;text-align:center;
  font-size:var(--fs-tiny);color:var(--ink-faint);line-height:1.55;
}
.cal-fallback a{color:var(--purple);font-weight:600;text-decoration:underline;text-underline-offset:2px}

.cal-help{
  display:grid;gap:1rem;max-width:60rem;margin:2.2rem auto 0;
}
@media(min-width:800px){.cal-help{grid-template-columns:1fr 1fr}}
.ch-item{
  display:flex;gap:.9rem;align-items:flex-start;
  padding:1.2rem 1.4rem;border-radius:var(--r-lg);
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.ch-item b{display:block;font-size:1rem;font-weight:650;color:var(--ink);margin-bottom:.25rem}
.ch-item span span,.ch-item>div>span{display:block;font-size:var(--fs-small);color:var(--ink-soft);line-height:1.55}
.ch-item a{color:var(--purple);font-weight:600;white-space:nowrap}
.ch-ic{
  flex:none;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;
  background:var(--purple-tint);color:var(--purple);
}
.ch-ic--blue{background:var(--blue-tint);color:var(--blue-dark)}
.ch-ic svg{width:19px;height:19px}

/* ---- FORM PRIVACY NOTE ------------------------------------------------------ */
.f-privacy{
  display:flex;gap:.6rem;align-items:flex-start;
  font-size:var(--fs-tiny);color:var(--ink-faint);line-height:1.5;
  padding:.85rem 1rem;border-radius:var(--r-sm);
  background:var(--bg-soft);border:1px solid var(--line);
}
.f-privacy svg{width:16px;height:16px;flex:none;color:var(--purple);margin-top:.1rem}

.contact-grid{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:start}
@media(min-width:940px){.contact-grid{grid-template-columns:1.25fr .75fr}}
.contact-form h2{margin:.4rem 0 .7rem}
.contact-form>p{margin-bottom:2rem}
.contact-aside{position:sticky;top:130px}
@media(max-width:939px){.contact-aside{position:static}}

.has-error input,.has-error select,.has-error textarea{border-color:var(--danger)!important}

.ci-list{display:grid;gap:1.2rem;margin-top:1.2rem}
.ci-list li{display:flex;gap:.85rem;align-items:flex-start}
.ci-list b{display:block;font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.11em;color:var(--ink-faint);font-weight:650;margin-bottom:.2rem}
.ci-list a,.ci-list span:not(.ci-ic){color:var(--ink);font-weight:550;line-height:1.5}
.ci-list a:hover{color:var(--purple)}
.ci-list .btn--ghost{margin-top:.4rem;font-size:var(--fs-tiny)}
.ci-ic{
  flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  background:var(--purple-tint);color:var(--purple);
}
.ci-ic svg{width:18px;height:18px}

.hours-note{font-family:var(--font-body,inherit);font-size:.8rem;font-weight:500;color:var(--ink-faint);letter-spacing:.02em}
.hours{display:grid;gap:.1rem;margin-top:1rem}
.hours li{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.55rem 0;border-bottom:1px solid var(--line);font-size:var(--fs-small);
}
.hours li:last-child{border-bottom:0}
.hours span{color:var(--ink-soft)}
.hours b{color:var(--ink);font-weight:600}
.hours .closed b{color:var(--ink-faint);font-weight:500}

.virtual-note{
  display:flex;gap:.75rem;align-items:flex-start;margin-top:1.6rem;
  padding:1rem 1.1rem;border-radius:var(--r-md);
  background:var(--blue-tint);border:1px solid rgba(56,145,254,.2);
  font-size:var(--fs-tiny);line-height:1.55;color:var(--ink-soft);
}
.virtual-note svg{width:18px;height:18px;flex:none;color:var(--blue-dark);margin-top:.1rem}
.virtual-note b{color:var(--ink)}

.social-row{display:flex;gap:.55rem;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.social-row a{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  background:var(--bg-soft);color:var(--ink);border:1px solid var(--line);
  transition:transform var(--t-fast),background var(--t-fast),color var(--t-fast);
}
.social-row a:hover{transform:translateY(-3px);background:var(--grad);color:#fff;border-color:transparent}
.social-row svg{width:17px;height:17px}

/* Points people booking a paid consultation at the real intake form rather than
   the general message box. Sits directly above the form it redirects away from. */
.intake-note{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  margin-bottom:1.6rem;padding:1.1rem 1.3rem;
  border-radius:var(--r-md);
  background:linear-gradient(135deg,var(--purple-tint),var(--blue-tint));
  border:1px solid rgba(96,36,149,.14);
}
.intake-note b{display:block;font-size:1rem;color:var(--ink)}
.intake-note span{display:block;font-size:var(--fs-small);color:var(--ink-soft);line-height:1.5;margin-top:.2rem;max-width:46ch}
.intake-note .btn{white-space:nowrap;flex:none;background:#fff}
