/* ============================================================
   KST Pivot CSS — additions made during Phase 4.3
   - Wellbeing Tips badge (header + footer)
   - Footer ecosystem strip
   - "From our practice" section on home
   Kept additive — does not override or fight existing theme.
   ============================================================ */

/* ---------- Wellbeing Tips badge ---------- */
.wt-badge {
  --wt-cream:    #EDE6DA;
  --wt-cream-hi: #F4EFE5;
  --wt-ink:      #3A2F22;
  --wt-clay:     #C9A47E;
  --wt-rose:     #C99B97;
  --wt-sage:     #9FB089;

  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.4375rem 0.875rem 0.4375rem 0.625rem;
  background: var(--wt-cream);
  color: var(--wt-ink);
  border: 1px solid rgba(58, 47, 34, 0.08);
  border-radius: 999px;
  text-decoration: none;
  font-family: 'Lora', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: 0.875rem;
  letter-spacing: 0.005em;
  line-height: 1;
  white-space: nowrap;
  transition: background .35s ease, transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  will-change: transform;
}
.wt-badge:hover,
.wt-badge:focus-visible {
  background: var(--wt-cream-hi);
  border-color: rgba(58, 47, 34, 0.14);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(58, 47, 34, 0.08);
  text-decoration: none;
  color: var(--wt-ink);
}
.wt-badge__dots {
  display: inline-flex;
  align-items: center;
  width: 28px;
  position: relative;
}
.wt-badge__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  box-shadow: 0 0 0 1.5px var(--wt-cream);
  margin-left: -5px;
  transition: transform .55s ease, margin .55s ease;
}
.wt-badge__dot:first-child { margin-left: 0; }
.wt-badge__dot--clay { background: var(--wt-clay); }
.wt-badge__dot--rose { background: var(--wt-rose); }
.wt-badge__dot--sage { background: var(--wt-sage); }
.wt-badge:hover .wt-badge__dot--clay,
.wt-badge:focus-visible .wt-badge__dot--clay  { transform: translateX(-2px); }
.wt-badge:hover .wt-badge__dot--rose,
.wt-badge:focus-visible .wt-badge__dot--rose  { transform: scale(1.06); }
.wt-badge:hover .wt-badge__dot--sage,
.wt-badge:focus-visible .wt-badge__dot--sage  { transform: translateX(2px); }
.wt-badge__label {
  font-family: 'Lora', Georgia, serif;
  font-style: italic;
  font-size: 0.9375rem;
  line-height: 1;
  letter-spacing: 0.005em;
}
@media (prefers-reduced-motion: reduce) {
  .wt-badge,
  .wt-badge__dot { transition: none; }
  .wt-badge:hover,
  .wt-badge:focus-visible { transform: none; }
  .wt-badge:hover .wt-badge__dot--clay,
  .wt-badge:hover .wt-badge__dot--rose,
  .wt-badge:hover .wt-badge__dot--sage { transform: none; }
}

/* Header context — give the nav badge a smaller footprint and align it
   visually next to the Contact CTA. The desktop nav is a flexbox row. */
.kst-nav .wt-badge {
  margin-left: 1rem;
  font-size: 0.8125rem;
}
.kst-nav .wt-badge__label { font-size: 0.875rem; }
@media (max-width: 991px) {
  .kst-nav .wt-badge { display: none; }
  .kst-nav__mobile .wt-badge { display: inline-flex; margin: 1rem auto 0; }
}

/* ---------- Footer ecosystem strip ---------- */
.kst-footer__ecosystem {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  padding: 1rem 1.5rem;
  margin: 0 auto 1.25rem;
}
.kst-footer__ecosystem-link {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  font-style: italic;
  font-size: 1.0625rem;
  letter-spacing: 0.01em;
  color: var(--kst-text-muted, #6b6b6b);
  text-decoration: none;
  transition: color .25s ease;
}
.kst-footer__ecosystem-link:hover { color: var(--kst-navy, #1F2D4B); }

/* ---------- "From our practice" section on home ---------- */
.kst-practice {
  background: #fff;
  padding: 5rem 1.5rem;
}
.kst-practice__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.kst-practice__header {
  text-align: center;
  margin-bottom: 3rem;
}
.kst-practice__eyebrow {
  display: inline-block;
  font-family: 'Raleway', sans-serif;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--kst-gold, #C7A33C);
  margin-bottom: 1rem;
}
.kst-practice__title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.15;
  color: var(--kst-navy, #1F2D4B);
  margin: 0;
}
.kst-practice__title em { font-style: italic; color: var(--kst-gold, #C7A33C); }
.kst-practice__grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .kst-practice__grid { grid-template-columns: 1fr 1fr; }
}
.kst-practice__door {
  display: block;
  padding: 2.25rem;
  background: #F8F8F5;
  border: 1px solid rgba(31,45,75,0.08);
  border-radius: 4px;
  text-decoration: none;
  color: var(--kst-navy, #1F2D4B);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.kst-practice__door:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(31,45,75,0.08);
  border-color: rgba(199,163,60,0.4);
}
.kst-practice__door--wt { background: #EDE6DA; border-color: rgba(58,47,34,0.08); }
.kst-practice__door--wt:hover { border-color: rgba(58,47,34,0.18); }
.kst-practice__door-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  font-style: italic;
  font-size: 1.55rem;
  line-height: 1.2;
  margin: 0 0 0.75rem 0;
}
.kst-practice__door-sub {
  font-family: 'Raleway', sans-serif;
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--kst-text-muted, #6b6b6b);
  margin: 0 0 1.25rem 0;
}
.kst-practice__door-cta {
  font-family: 'Raleway', sans-serif;
  font-size: 12px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--kst-gold, #C7A33C);
}
.kst-practice__door--wt .kst-practice__door-cta { color: #3A2F22; }

/* ---------- New enquiry form (Phase 4.3) ---------- */
.kst-form {
  display: grid;
  gap: 1.25rem;
}
.kst-form__field { display: grid; gap: 0.5rem; }
.kst-form__label {
  font-family: 'Raleway', sans-serif;
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  color: inherit;
}
.kst-form__input {
  width: 100%;
  padding: 0.85rem 1rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.2);
  color: inherit;
  font-family: 'Raleway', sans-serif;
  font-size: 0.95rem;
  border-radius: 3px;
  transition: border-color .2s ease, background .2s ease;
}
.kst-form__input::placeholder { color: rgba(255,255,255,0.5); }
.kst-form__input:focus {
  outline: none;
  border-color: var(--kst-gold, #C7A33C);
  background: rgba(255,255,255,0.1);
}
.kst-form__textarea {
  min-height: 6.5rem;
  resize: vertical;
}
/* When the form sits on a white background, invert colours */
.kst-section--white .kst-form__input,
.kst-section--cream .kst-form__input,
.kst-section--white .kst-form__textarea,
.kst-section--cream .kst-form__textarea {
  background: #fff;
  border-color: rgba(31,45,75,0.18);
  color: var(--kst-navy, #1F2D4B);
}
.kst-form__consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: start;
  font-family: 'Raleway', sans-serif;
  font-size: 0.85rem;
  line-height: 1.5;
}
.kst-form__consent input[type=checkbox] { margin-top: 4px; }
.kst-form__honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.kst-form__submit {
  appearance: none;
  font-family: 'Raleway', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 1rem 2rem;
  background: var(--kst-gold, #C7A33C);
  color: var(--kst-navy, #1F2D4B);
  border: 0;
  border-radius: 3px;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
  justify-self: start;
}
.kst-form__submit:hover { background: #b69230; transform: translateY(-1px); }
.kst-form__submit:disabled { opacity: 0.6; cursor: progress; }
.kst-form__status {
  font-family: 'Raleway', sans-serif;
  font-size: 0.875rem;
  line-height: 1.6;
}
.kst-form__status[data-state="success"] { color: var(--kst-gold, #C7A33C); }
.kst-form__status[data-state="error"] { color: #d97070; }
.kst-form__status[data-state="sending"] { opacity: 0.7; }
