/*
Theme Name:   Counterspiral Care Child
Template:     generatepress
Version: v1784155571383
*/
@import url("../generatepress/style.css");

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   COUNTERSPIRAL CARE — CHILD THEME
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

:root {
  --plum:    #4A3A52;
  --plum-2:  #6B5478;
  --sage:    #7FA093;
  --sage-2:  #9BBFB5;
  --sage-d:  #5E8278;
  --blush:   #E9C8C0;
  --gold:    #D6A85C;
  --ink:     #2C2333;
  --mute:    #6B5E77;
  --bg:      #FAF7F5;
  --line:    #E4DCE8;
  --line-2:  #D0C4DA;
  --shadow-sm: 0 2px 16px rgba(74,58,82,0.07);
}

/* ─── Typography ──────────────────────────────────── */
body {
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6 {
  font-family: "Fraunces", Georgia, serif;
  color: var(--ink);
  line-height: 1.18;
  font-weight: 700;
}
p { margin: 0 0 1em; }
a { color: var(--plum); text-decoration: none; }
a:hover { color: var(--plum-2); }

/* ─── Header ──────────────────────────────────────── */
#masthead.site-header {
  padding: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  background-color: #fff !important;
}
.inside-header.grid-container,
.inside-header {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 26px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  min-height: 68px !important;
  height: 68px !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  gap: 0 !important;
}
.site-logo, .custom-logo-link {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
  margin-right: 32px !important;
}
.site-logo img, .custom-logo, .header-image.is-logo-image {
  height: 44px !important;
  width: auto !important;
  max-width: 160px !important;
  display: block !important;
}
.main-navigation {
  display: flex !important;
  align-items: center !important;
  flex: 1 !important;
}
.main-navigation ul.menu {
  display: flex !important;
  align-items: center !important;
  gap: 22px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-wrap: nowrap !important;
}
.main-navigation li a {
  color: var(--mute) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  display: block !important;
  white-space: nowrap !important;
  transition: color 0.18s !important;
}
.main-navigation li:not(.btn) a:hover { color: var(--plum) !important; }
.main-navigation li.btn {
  margin-left: 12px !important;
  display: flex !important;
  align-items: center !important;
}
.main-navigation li.btn > a {
  display: inline-flex !important;
  align-items: center !important;
  background: var(--gold) !important;
  color: #2c2333 !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  padding: 9px 20px !important;
  border-radius: 100px !important;
  white-space: nowrap !important;
  height: auto !important;
  line-height: 1.3 !important;
  transition: background 0.18s, transform 0.15s !important;
}
.main-navigation li.btn > a:hover {
  background: #b8902e !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 18px rgba(214,168,92,0.35) !important;
}
.main-navigation li a { background: none !important; box-shadow: none !important; }
.main-navigation li:not(.btn) a { color: var(--mute) !important; }
.main-navigation li:not(.btn) a:hover { color: var(--plum) !important; background: none !important; }
.main-navigation li.btn a { color: #2c2333 !important; }
#site-navigation, #mobile-menu-control-wrapper { height: auto !important; min-height: 0 !important; }
.site-header.has-inline-mobile-toggle .inside-header, .one-container .inside-header {
  padding-top: 0 !important; padding-bottom: 0 !important;
}

/* ─── GP Resets ───────────────────────────────────── */
.entry-title, .page-title { display: none !important; }
.entry-content, .inside-article, .site-main { margin: 0 !important; padding: 0 !important; }
body.page .site.grid-container, body.page #page.site {
  max-width: 100% !important; width: 100% !important;
  margin-left: 0 !important; margin-right: 0 !important;
  padding-left: 0 !important; padding-right: 0 !important;
}
body.page .site-content, body.page #content, body.page #primary.content-area,
body.page .site-main, body.page article.page, body.page .inside-article, body.page .entry-content {
  max-width: 100% !important; width: 100% !important; margin: 0 !important; padding: 0 !important;
}
.inside-article { background: transparent !important; padding: 0 !important; }

/* ─── Body bg ─────────────────────────────────────── */
body.page:not(.home) { background-color: var(--plum) !important; }

/* ─── Buttons ─────────────────────────────────────── */
.cs-btn-gold, a.cs-btn-gold {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--gold); color: #2c2333; font-weight: 700;
  padding: 16px 36px; border-radius: 100px; font-size: 1rem;
  font-family: "Inter", sans-serif; text-decoration: none;
  transition: background 0.18s, transform 0.15s, box-shadow 0.18s;
  border: none; cursor: pointer; line-height: 1.3;
}
.cs-btn-ghost, a.cs-btn-ghost {
  display: inline-flex; align-items: center; gap: 9px;
  background: #fff; color: #6a5277; border: 1.5px solid #e0d6dd;
  padding: 14px 30px; border-radius: 100px; font-size: 0.95rem;
  font-family: "Inter", sans-serif; text-decoration: none;
  transition: all 0.18s; cursor: pointer;
}
.cs-btn-plum, a.cs-btn-plum {
  display: inline-flex; align-items: center;
  background: var(--plum); color: #fff; font-weight: 700;
  padding: 14px 26px; border-radius: 100px; font-size: 0.95rem;
  font-family: "Inter", sans-serif; text-decoration: none;
  transition: all 0.18s; border: none; cursor: pointer;
}

/* ─── Stat bar ────────────────────────────────────── */
.cs-stat { transition: transform 0.2s ease !important; }
.cs-stat:hover { transform: translateY(-3px) !important; }

/* ─── FAQ ─────────────────────────────────────────── */
.cs-faq-wrap { border-top: 1px solid var(--line) !important; }
.cs-fitem { border-bottom: 1px solid var(--line) !important; }
.cs-fq {
  width: 100% !important; background: transparent !important;
  border: none !important; cursor: pointer !important;
  display: flex !important; align-items: center !important;
  justify-content: space-between !important;
  padding: 18px 0 !important; text-align: left !important;
  font-family: "Fraunces", serif !important; font-size: 1rem !important;
  font-weight: 600 !important; color: var(--ink) !important;
  transition: color 0.15s !important;
}
.cs-fq:hover, .cs-fitem.open .cs-fq { color: var(--plum) !important; }
.cs-fpl {
  width: 26px !important; height: 26px !important; min-width: 26px !important;
  background: var(--line) !important; border-radius: 50% !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; font-size: 1.1rem !important;
  color: var(--plum) !important; transition: background 0.15s, transform 0.2s !important;
  flex-shrink: 0 !important; margin-left: 16px !important;
}
.cs-fitem.open .cs-fpl {
  background: var(--plum) !important; color: #fff !important;
  transform: rotate(45deg) !important;
}
.cs-fa { overflow: hidden !important; transition: max-height 0.32s ease !important; }
.cs-fa p {
  color: var(--mute) !important; font-size: 0.95rem !important;
  line-height: 1.7 !important; margin: 0 0 16px !important;
}
.cs-fa p:last-child { margin-bottom: 18px !important; }

/* ─── Match tool ──────────────────────────────────── */
.cs-opt {
  border: 2px solid var(--line-2) !important; background: #fff !important;
  border-radius: 12px !important; padding: 14px 18px !important;
  cursor: pointer !important; transition: border-color 0.15s, background 0.15s !important;
  color: var(--ink) !important; font-weight: 500 !important;
}

/* ─── Contact Form 7 ──────────────────────────────── */
.cs-form-row { margin-bottom: 20px; }
.cs-form-row label {
  display: block; font-size: 0.9rem; font-weight: 600;
  color: var(--ink); margin-bottom: 6px; font-family: "Inter", sans-serif;
}
.cs-form-row label span.required { color: var(--sage-d); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
.wpcf7 textarea, .wpcf7 select {
  width: 100% !important; padding: 13px 16px !important;
  border: 1.5px solid var(--line) !important; border-radius: 10px !important;
  font-family: "Inter", sans-serif !important; font-size: 0.95rem !important;
  color: var(--ink) !important; background: #fff !important;
  box-sizing: border-box !important; outline: none !important;
  transition: border-color 0.18s, box-shadow 0.18s !important;
}
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus {
  border-color: var(--plum) !important;
  box-shadow: 0 0 0 3px rgba(74,58,82,0.08) !important;
}
.wpcf7 textarea { resize: vertical !important; min-height: 110px !important; }
.cs-form-footer { margin-top: 28px; }
.wpcf7 input[type="submit"] {
  display: inline-flex !important; align-items: center !important;
  background: #d6a85c !important; color: #2c2333 !important;
  font-family: "Inter", sans-serif !important; font-size: 1rem !important;
  font-weight: 700 !important; padding: 16px 36px !important;
  border-radius: 100px !important; border: none !important;
  cursor: pointer !important; letter-spacing: 0.01em !important;
  transition: background 0.18s, transform 0.18s, box-shadow 0.18s !important;
}
.wpcf7 input[type="submit"]:hover {
  background: #b8902e !important; transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(214,168,92,0.45) !important;
}
.wpcf7-mail-sent-ok { background: rgba(127,160,147,0.15) !important; color: var(--sage-d) !important; border: none !important; padding: 12px 16px !important; border-radius: 10px !important; }
.wpcf7-validation-errors, .wpcf7-mail-sent-ng { background: rgba(233,200,192,0.3) !important; color: #8b3a3a !important; border: none !important; padding: 12px 16px !important; border-radius: 10px !important; }
.wpcf7-not-valid-tip { color: #c0392b !important; font-size: 0.8rem !important; margin-top: 4px !important; display: block !important; }

/* ─── Animations ──────────────────────────────────── */
.cs-will-animate {
  opacity: 0; transform: translateY(22px);
  transition: opacity 0.55s cubic-bezier(0.22,0.84,0.44,1), transform 0.55s cubic-bezier(0.22,0.84,0.44,1);
}
.cs-will-animate.cs-in-view { opacity: 1; transform: translateY(0); }

/* ─── Match engine card ───────────────────────────── */
.cs-m-head { background: linear-gradient(150deg,var(--plum),#382a40); color: #fff; padding: 30px 36px; position: relative; overflow: hidden; }
.cs-m-head::after { content: ""; position: absolute; top: -50px; right: -30px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle,rgba(255,255,255,0.08),transparent 70%); }
.cs-result-cta { background: linear-gradient(150deg,var(--plum),#382a40); border-radius: 18px; padding: 26px; text-align: center; color: #fff; margin-top: 22px; }
.cs-values-card { background: linear-gradient(150deg,var(--plum),#382a40); color: #fff; border-radius: 24px; padding: 50px 44px; box-shadow: var(--shadow-sm); position: relative; overflow: hidden; }
.cs-cta-box { background: linear-gradient(150deg,var(--plum),#382a40); border-radius: 24px; padding: 64px; text-align: center; box-shadow: var(--shadow-sm); position: relative; overflow: hidden; }
.cs-mini-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.3rem; flex-shrink: 0; }
.cs-mini-icon.sage { background: linear-gradient(135deg,var(--sage),var(--sage-2)); }
.cs-mini-icon.plum { background: linear-gradient(135deg,var(--plum),var(--plum-2)); }
.cs-mini-icon.blush { background: linear-gradient(135deg,var(--blush),var(--gold)); }

/* =====================================================================
   COUNTERSPIRAL DESIGN FIXES  v4  — comprehensive
   ===================================================================== */

/* ══════════════════════════════════════════════════════════════════════
   1. HEADER — tighten, right-size logo, button, nav
   ══════════════════════════════════════════════════════════════════════ */

/* Header container */
#masthead.site-header {
  padding: 0 !important;
  border-bottom: 1px solid var(--line) !important;
}
.inside-header.grid-container,
.inside-header {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 26px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  min-height: 68px !important;
  height: 68px !important;
  /* kill any grid */
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  gap: 0 !important;
}

/* Logo */
.site-logo, .custom-logo-link {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
  margin-right: 32px !important;
}
.site-logo img, .custom-logo, .header-image.is-logo-image {
  height: 44px !important;
  width: auto !important;
  max-width: 160px !important;
  display: block !important;
}

/* Nav */
.main-navigation {
  display: flex !important;
  align-items: center !important;
  flex: 1 !important;
}
.main-navigation ul.menu {
  display: flex !important;
  align-items: center !important;
  gap: 22px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-wrap: nowrap !important;
}
.main-navigation li a {
  color: var(--mute) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  display: block !important;
  white-space: nowrap !important;
  transition: color 0.18s !important;
}
.main-navigation li:not(.btn) a:hover { color: var(--plum) !important; }

/* "Find Your Match" pill — tightly sized */
.main-navigation li.btn {
  margin-left: 12px !important;
  display: flex !important;
  align-items: center !important;
}
.main-navigation li.btn > a {
  display: inline-flex !important;
  align-items: center !important;
  background: var(--gold) !important;
  color: #2c2333 !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  padding: 9px 20px !important;
  border-radius: 100px !important;
  white-space: nowrap !important;
  height: auto !important;
  line-height: 1.3 !important;
  box-shadow: none !important;
  border: none !important;
  transition: background 0.18s, transform 0.15s !important;
}
.main-navigation li.btn > a:hover {
  background: #c49738 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 18px rgba(214,168,92,0.35) !important;
}

/* Kill any GP padding on the header wrapper */
.site-header.has-inline-mobile-toggle .inside-header,
.one-container .inside-header {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
/* GP sometimes adds min-height on the nav wrapper */
#mobile-menu-control-wrapper, #site-navigation {
  height: auto !important;
  min-height: 0 !important;
}
.section, .cs-section { padding: 62px 0 !important; }

/* ══════════════════════════════════════════════════════════════════════
   3. HERO BANNERS — plum bg, white text, eyebrow sage
   ══════════════════════════════════════════════════════════════════════ */
.elementor-4 .elementor-element-4laustm,
.elementor-5 .elementor-element-taqk2jf,
.elementor-7 .elementor-element-tu0orno,
.elementor-3 .elementor-element-7di0u1w,
.elementor-311 .elementor-element-k3q3nw4,
.elementor-2 .elementor-element-w1tpl9j { background-color: var(--plum) !important; }
.elementor-4 .elementor-element-4laustm .elementor-heading-title,
.elementor-5 .elementor-element-taqk2jf .elementor-heading-title,
.elementor-7 .elementor-element-tu0orno .elementor-heading-title,
.elementor-3 .elementor-element-7di0u1w .elementor-heading-title,
.elementor-311 .elementor-element-k3q3nw4 .elementor-heading-title,
.elementor-2 .elementor-element-w1tpl9j .elementor-heading-title { color: #fff !important; }
.elementor-4 .elementor-element-4laustm p,
.elementor-5 .elementor-element-taqk2jf p,
.elementor-7 .elementor-element-tu0orno p,
.elementor-3 .elementor-element-7di0u1w p,
.elementor-311 .elementor-element-k3q3nw4 p,
.elementor-2 .elementor-element-w1tpl9j p { color: rgba(255,255,255,0.82) !important; }
.elementor-4 .elementor-element-4laustm .elementor-widget-heading:first-child .elementor-heading-title,
.elementor-5 .elementor-element-taqk2jf .elementor-widget-heading:first-child .elementor-heading-title,
.elementor-7 .elementor-element-tu0orno .elementor-widget-heading:first-child .elementor-heading-title,
.elementor-3 .elementor-element-7di0u1w .elementor-widget-heading:first-child .elementor-heading-title,
.elementor-311 .elementor-element-k3q3nw4 .elementor-widget-heading:first-child .elementor-heading-title,
.elementor-2 .elementor-element-w1tpl9j .elementor-widget-heading:first-child .elementor-heading-title {
  color: var(--sage-2) !important;
  font-family: "Inter", sans-serif !important;
  font-size: 0.75rem !important; font-weight: 600 !important;
  letter-spacing: 0.12em !important; text-transform: uppercase !important;
}

/* ── About page duplicate heading ── */
.elementor-7 .elementor-element-a7l1ipm .elementor-widget-heading .elementor-heading-title { font-size: 1.6rem !important; }

/* ── Card system ── */
.elementor-311 .elementor-element-6kciv85 > .elementor-widget-wrap,
.elementor-311 .elementor-element-fodumhg > .elementor-widget-wrap,
.elementor-311 .elementor-element-qygx8dk > .elementor-widget-wrap {
  background: #fff !important; border: 1px solid var(--line) !important;
  border-radius: 20px !important; box-shadow: var(--shadow-sm) !important;
  padding: 26px 26px 30px !important; display: flex !important;
  flex-direction: column !important; gap: 0 !important;
  transition: transform 0.22s, box-shadow 0.22s !important; align-self: stretch !important;
}
.elementor-311 .elementor-element-6kciv85:hover > .elementor-widget-wrap,
.elementor-311 .elementor-element-fodumhg:hover > .elementor-widget-wrap,
.elementor-311 .elementor-element-qygx8dk:hover > .elementor-widget-wrap {
  transform: translateY(-4px) !important; box-shadow: 0 18px 45px rgba(74,58,82,0.14) !important;
}
.elementor-311 .elementor-element-6kciv85 .elementor-widget,
.elementor-311 .elementor-element-fodumhg .elementor-widget,
.elementor-311 .elementor-element-qygx8dk .elementor-widget { margin: 0 !important; padding: 0 !important; }
.elementor-311 .elementor-element-6kciv85 .elementor-heading-title,
.elementor-311 .elementor-element-fodumhg .elementor-heading-title,
.elementor-311 .elementor-element-qygx8dk .elementor-heading-title {
  font-family: "Fraunces", serif !important; font-size: 1.15rem !important;
  font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 8px !important;
}
.elementor-311 .elementor-element-6kciv85 .elementor-text-editor p,
.elementor-311 .elementor-element-fodumhg .elementor-text-editor p,
.elementor-311 .elementor-element-qygx8dk .elementor-text-editor p {
  color: var(--mute) !important; font-size: 0.92rem !important; line-height: 1.6 !important; margin: 0 !important;
}
.elementor-4 .elementor-element-3y2jd8w > .elementor-widget-wrap,
.elementor-4 .elementor-element-7lbiu6v > .elementor-widget-wrap,
.elementor-4 .elementor-element-jx0rt0n > .elementor-widget-wrap,
.elementor-4 .elementor-element-8glcr7y > .elementor-widget-wrap,
.elementor-4 .elementor-element-2yftqmx > .elementor-widget-wrap,
.elementor-4 .elementor-element-494lvms > .elementor-widget-wrap,
.elementor-4 .elementor-element-pgkf4wq > .elementor-widget-wrap,
.elementor-4 .elementor-element-ksqm1ar > .elementor-widget-wrap,
.elementor-4 .elementor-element-n5cju8u > .elementor-widget-wrap {
  background: #fff !important; border: 1px solid var(--line) !important;
  border-radius: 20px !important; box-shadow: var(--shadow-sm) !important;
  padding: 26px 26px 30px !important; display: flex !important;
  flex-direction: column !important; gap: 0 !important;
  transition: transform 0.22s, box-shadow 0.22s !important; align-self: stretch !important;
}
.elementor-4 .elementor-element-3y2jd8w:hover > .elementor-widget-wrap,
.elementor-4 .elementor-element-7lbiu6v:hover > .elementor-widget-wrap,
.elementor-4 .elementor-element-jx0rt0n:hover > .elementor-widget-wrap,
.elementor-4 .elementor-element-8glcr7y:hover > .elementor-widget-wrap,
.elementor-4 .elementor-element-2yftqmx:hover > .elementor-widget-wrap,
.elementor-4 .elementor-element-494lvms:hover > .elementor-widget-wrap,
.elementor-4 .elementor-element-pgkf4wq:hover > .elementor-widget-wrap,
.elementor-4 .elementor-element-ksqm1ar:hover > .elementor-widget-wrap,
.elementor-4 .elementor-element-n5cju8u:hover > .elementor-widget-wrap {
  transform: translateY(-4px) !important; box-shadow: 0 18px 45px rgba(74,58,82,0.14) !important;
}
.elementor-4 .elementor-element-3y2jd8w .elementor-widget,
.elementor-4 .elementor-element-7lbiu6v .elementor-widget,
.elementor-4 .elementor-element-jx0rt0n .elementor-widget,
.elementor-4 .elementor-element-8glcr7y .elementor-widget,
.elementor-4 .elementor-element-2yftqmx .elementor-widget,
.elementor-4 .elementor-element-494lvms .elementor-widget,
.elementor-4 .elementor-element-pgkf4wq .elementor-widget,
.elementor-4 .elementor-element-ksqm1ar .elementor-widget,
.elementor-4 .elementor-element-n5cju8u .elementor-widget { margin: 0 !important; padding: 0 !important; }
.elementor-4 .elementor-element-3y2jd8w .elementor-heading-title,
.elementor-4 .elementor-element-7lbiu6v .elementor-heading-title,
.elementor-4 .elementor-element-jx0rt0n .elementor-heading-title,
.elementor-4 .elementor-element-8glcr7y .elementor-heading-title,
.elementor-4 .elementor-element-2yftqmx .elementor-heading-title,
.elementor-4 .elementor-element-494lvms .elementor-heading-title,
.elementor-4 .elementor-element-pgkf4wq .elementor-heading-title,
.elementor-4 .elementor-element-ksqm1ar .elementor-heading-title,
.elementor-4 .elementor-element-n5cju8u .elementor-heading-title {
  font-family: "Fraunces", serif !important; font-size: 1.1rem !important;
  font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 8px !important;
}
.elementor-4 .elementor-element-3y2jd8w .elementor-text-editor p,
.elementor-4 .elementor-element-7lbiu6v .elementor-text-editor p,
.elementor-4 .elementor-element-jx0rt0n .elementor-text-editor p,
.elementor-4 .elementor-element-8glcr7y .elementor-text-editor p,
.elementor-4 .elementor-element-2yftqmx .elementor-text-editor p,
.elementor-4 .elementor-element-494lvms .elementor-text-editor p,
.elementor-4 .elementor-element-pgkf4wq .elementor-text-editor p,
.elementor-4 .elementor-element-ksqm1ar .elementor-text-editor p,
.elementor-4 .elementor-element-n5cju8u .elementor-text-editor p {
  color: var(--mute) !important; font-size: 0.9rem !important; line-height: 1.6 !important; margin: 0 !important;
}
.elementor-5 .elementor-element-gc0ycog > .elementor-widget-wrap,
.elementor-5 .elementor-element-oko58uj > .elementor-widget-wrap,
.elementor-5 .elementor-element-3bv4df7 > .elementor-widget-wrap {
  background: #fff !important; border: 1px solid var(--line) !important;
  border-radius: 20px !important; box-shadow: var(--shadow-sm) !important;
  padding: 30px 26px 34px !important; display: flex !important;
  flex-direction: column !important; gap: 0 !important; align-self: stretch !important;
}
.elementor-5 .elementor-element-gc0ycog .elementor-widget,
.elementor-5 .elementor-element-oko58uj .elementor-widget,
.elementor-5 .elementor-element-3bv4df7 .elementor-widget { margin: 0 !important; padding: 0 !important; }
.elementor-3 .elementor-element-xw28gkr > .elementor-widget-wrap,
.elementor-3 .elementor-element-w4t4dnw > .elementor-widget-wrap,
.elementor-3 .elementor-element-zlo3r2e > .elementor-widget-wrap,
.elementor-3 .elementor-element-rymem0l > .elementor-widget-wrap,
.elementor-3 .elementor-element-vrcyfix > .elementor-widget-wrap,
.elementor-3 .elementor-element-ir0l7a7 > .elementor-widget-wrap,
.elementor-3 .elementor-element-ygd3l3v > .elementor-widget-wrap {
  background: #fff !important; border: 1px solid var(--line) !important;
  border-radius: 20px !important; box-shadow: var(--shadow-sm) !important;
  padding: 0 !important; overflow: hidden !important;
  display: flex !important; flex-direction: column !important; gap: 0 !important;
  transition: transform 0.22s, box-shadow 0.22s !important; align-self: stretch !important;
}
.elementor-3 .elementor-element-xw28gkr:hover > .elementor-widget-wrap,
.elementor-3 .elementor-element-w4t4dnw:hover > .elementor-widget-wrap,
.elementor-3 .elementor-element-zlo3r2e:hover > .elementor-widget-wrap,
.elementor-3 .elementor-element-rymem0l:hover > .elementor-widget-wrap,
.elementor-3 .elementor-element-vrcyfix:hover > .elementor-widget-wrap,
.elementor-3 .elementor-element-ir0l7a7:hover > .elementor-widget-wrap,
.elementor-3 .elementor-element-ygd3l3v:hover > .elementor-widget-wrap {
  transform: translateY(-4px) !important; box-shadow: 0 18px 45px rgba(74,58,82,0.14) !important;
}
.elementor-3 .cs-team-photo-widget img, .elementor-3 .elementor-widget-image img {
  width: 100% !important; height: 240px !important;
  object-fit: cover !important; object-position: top center !important;
  display: block !important; border-radius: 0 !important;
}
.elementor-3 .elementor-element-xw28gkr .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-w4t4dnw .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-zlo3r2e .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-rymem0l .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-vrcyfix .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-ir0l7a7 .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-ygd3l3v .elementor-widget:not(.elementor-widget-image) { padding: 0 20px !important; margin: 0 !important; }
.elementor-3 .elementor-element-xw28gkr .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-w4t4dnw .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-zlo3r2e .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-rymem0l .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-vrcyfix .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-ir0l7a7 .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-ygd3l3v .elementor-widget:nth-child(2) { padding-top: 18px !important; }
.elementor-3 .elementor-element-xw28gkr .elementor-widget:last-child,
.elementor-3 .elementor-element-w4t4dnw .elementor-widget:last-child,
.elementor-3 .elementor-element-zlo3r2e .elementor-widget:last-child,
.elementor-3 .elementor-element-rymem0l .elementor-widget:last-child,
.elementor-3 .elementor-element-vrcyfix .elementor-widget:last-child,
.elementor-3 .elementor-element-ir0l7a7 .elementor-widget:last-child,
.elementor-3 .elementor-element-ygd3l3v .elementor-widget:last-child { padding-bottom: 20px !important; }
.elementor-3 .elementor-element-xw28gkr .elementor-heading-title,
.elementor-3 .elementor-element-w4t4dnw .elementor-heading-title,
.elementor-3 .elementor-element-zlo3r2e .elementor-heading-title,
.elementor-3 .elementor-element-rymem0l .elementor-heading-title,
.elementor-3 .elementor-element-vrcyfix .elementor-heading-title,
.elementor-3 .elementor-element-ir0l7a7 .elementor-heading-title,
.elementor-3 .elementor-element-ygd3l3v .elementor-heading-title {
  font-family: "Fraunces", serif !important; font-size: 1.1rem !important;
  font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 3px !important;
}
.elementor-3 .elementor-element-xw28gkr .elementor-text-editor p,
.elementor-3 .elementor-element-w4t4dnw .elementor-text-editor p,
.elementor-3 .elementor-element-zlo3r2e .elementor-text-editor p,
.elementor-3 .elementor-element-rymem0l .elementor-text-editor p,
.elementor-3 .elementor-element-vrcyfix .elementor-text-editor p,
.elementor-3 .elementor-element-ir0l7a7 .elementor-text-editor p,
.elementor-3 .elementor-element-ygd3l3v .elementor-text-editor p {
  color: var(--mute) !important; font-size: 0.85rem !important; line-height: 1.55 !important; margin: 0 0 8px !important;
}

/* cs-step */
/* cs-step block removed */
.cs-step-icon {
  width: 48px !important; height: 48px !important; border-radius: 13px !important;
  background: linear-gradient(135deg, var(--sage), var(--sage-d)) !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; color: #fff !important;
  font-size: 1.2rem !important; flex-shrink: 0 !important;
}
.cs-step-num {
  position: static !important; width: 34px !important; height: 34px !important;
  min-width: 34px !important; background: var(--plum) !important; color: #fff !important;
  border-radius: 9px !important; font-family: "Fraunces", serif !important;
  font-size: 0.9rem !important; font-weight: 700 !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; line-height: 1 !important; flex-shrink: 0 !important;
}
@media (min-width: 781px) {
  .main-navigation li:not(.btn) a {
    position: relative !important;
    transition: color 0.18s ease !important;
  }
  .main-navigation li:not(.btn) a::after {
    content: '' !important; position: absolute !important;
    bottom: -3px !important; left: 0 !important; right: 0 !important;
    height: 2px !important; background: var(--sage) !important;
    transform: scaleX(0) !important; transition: transform 0.2s ease !important;
    border-radius: 2px !important;
  }
  .main-navigation li:not(.btn) a:hover::after { transform: scaleX(1) !important; }
}
a.cs-btn-gold, .cs-btn-gold {
  transition: background 0.18s, transform 0.15s, box-shadow 0.18s !important;
}
a.cs-btn-gold:hover, .cs-btn-gold:hover {
  background: #c49738 !important; transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(214,168,92,0.38) !important;
}
a.cs-btn-ghost:hover, .cs-btn-ghost:hover {
  background: var(--plum) !important; color: #fff !important; transform: translateY(-2px) !important;
}
a.cs-btn-plum:hover, .cs-btn-plum:hover {
  background: var(--plum-2) !important; transform: translateY(-2px) !important;
}
.elementor-button:hover { opacity: 0.88 !important; transform: translateY(-2px) !important; }
@media (max-width: 780px) {
  .inside-header { height: 60px !important; min-height: 60px !important; padding: 0 18px !important; }
  .site-logo img, .custom-logo { height: 36px !important; }
  .menu-toggle {
    display: flex !important; align-items: center !important;
    justify-content: center !important; width: 38px !important; height: 38px !important;
    background: transparent !important; border: none !important; cursor: pointer !important;
  }
  .menu-toggle .gp-icon svg { fill: var(--plum) !important; width: 22px !important; height: 22px !important; }
  .menu-toggle .mobile-menu { display: none !important; }
  #site-navigation:not(.toggled) .inside-navigation { display: none !important; }
  #site-navigation.toggled {
    position: fixed !important; inset: 0 !important;
    width: 100vw !important; height: 100vh !important;
    background: var(--plum) !important; z-index: 9999 !important;
    display: flex !important; flex-direction: column !important;
    justify-content: center !important; align-items: center !important;
    padding: 80px 30px 40px !important; overflow-y: auto !important;
  }
  #site-navigation.toggled .inside-navigation {
    display: flex !important; flex-direction: column !important;
    align-items: center !important; width: 100% !important; padding: 0 !important;
  }
  #site-navigation.toggled .inside-navigation ul.menu {
    display: flex !important; flex-direction: column !important;
    gap: 4px !important; align-items: center !important;
    width: 100% !important; padding: 0 !important; margin: 0 !important; list-style: none !important;
  }
  #site-navigation.toggled .inside-navigation ul.menu li a {
    display: block !important; color: rgba(255,255,255,0.9) !important;
    font-size: 1.2rem !important; font-weight: 600 !important;
    padding: 13px 24px !important; text-align: center !important;
    border-radius: 12px !important; transition: background 0.15s !important;
  }
  #site-navigation.toggled .inside-navigation ul.menu li:not(.btn) a:hover {
    background: rgba(255,255,255,0.12) !important; color: #fff !important;
  }
  #site-navigation.toggled .inside-navigation ul.menu li.btn a {
    background: var(--gold) !important; color: var(--plum) !important;
    border-radius: 30px !important; margin-top: 10px !important;
    font-size: 0.9rem !important; padding: 12px 28px !important;
  }
  #site-navigation.toggled .menu-toggle {
    position: fixed !important; top: 16px !important; right: 16px !important;
    width: 40px !important; height: 40px !important;
    background: rgba(255,255,255,0.15) !important; border-radius: 50% !important;
    z-index: 10001 !important;
  }
  #site-navigation.toggled .menu-toggle .gp-icon svg { fill: #fff !important; width: 18px !important; height: 18px !important; }
  .elementor-section.elementor-top-section { padding-top: 48px !important; padding-bottom: 48px !important; }
  .section, .cs-section { padding: 44px 0 !important; }
}
@media (max-width: 480px) {
  .elementor-section.elementor-top-section { padding-top: 38px !important; padding-bottom: 38px !important; }
  .section, .cs-section { padding: 34px 0 !important; }
}

/* ═══ Full-bleed + session fixes ═══ */
.entry-title, .page-title { display: none !important; }
.entry-content, .inside-article, .site-main { margin: 0 !important; padding: 0 !important; }
body.page .site.grid-container, body.page #page.site {
  max-width: 100% !important; width: 100% !important;
  margin-left: 0 !important; margin-right: 0 !important;
  padding-left: 0 !important; padding-right: 0 !important;
}
body.page .site-content, body.page #content, body.page #primary.content-area,
body.page .site-main, body.page article.page, body.page .inside-article, body.page .entry-content {
  max-width: 100% !important; width: 100% !important; margin: 0 !important; padding: 0 !important;
}
.inside-article { background: transparent !important; padding: 0 !important; }
body.page:not(.home) { background-color: var(--plum) !important; }
#masthead.site-header { background-color: #fff !important; }
.elementor-311 .elementor-element.elementor-element-k3q3nw4,
.elementor-4 .elementor-element.elementor-element-4laustm,
.elementor-5 .elementor-element.elementor-element-taqk2jf,
.elementor-7 .elementor-element.elementor-element-tu0orno,
.elementor-3 .elementor-element.elementor-element-7di0u1w,
.elementor-2 .elementor-element.elementor-element-w1tpl9j {
  background-color: var(--plum) !important;
  padding-top: 52px !important; padding-bottom: 52px !important;
  padding-left: 0 !important; padding-right: 0 !important;
  width: 100% !important;
}
.elementor-311 .elementor-element-k3q3nw4 .elementor-widget-wrap,
.elementor-4 .elementor-element-4laustm .elementor-widget-wrap,
.elementor-5 .elementor-element-taqk2jf .elementor-widget-wrap,
.elementor-7 .elementor-element-tu0orno .elementor-widget-wrap,
.elementor-3 .elementor-element-7di0u1w .elementor-widget-wrap,
.elementor-2 .elementor-element-w1tpl9j .elementor-widget-wrap { padding: 0 !important; }
.elementor-311 .elementor-element-k3q3nw4 .elementor-heading-title,
.elementor-4 .elementor-element-4laustm .elementor-heading-title,
.elementor-5 .elementor-element-taqk2jf .elementor-heading-title,
.elementor-7 .elementor-element-tu0orno .elementor-heading-title,
.elementor-3 .elementor-element-7di0u1w .elementor-heading-title,
.elementor-2 .elementor-element-w1tpl9j .elementor-heading-title {
  color: #fff !important; font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
  line-height: 1.18 !important; max-width: 820px !important;
  margin-left: auto !important; margin-right: auto !important;
}
.elementor-3 .elementor-element.elementor-element-7di0u1w { padding-top: 44px !important; padding-bottom: 44px !important; }
body.page-id-2 .elementor-element-w1tpl9j { display: none !important; }
.elementor-6 .elementor-element.elementor-element-bp0 {
  background-color: var(--plum) !important;
  padding-top: 52px !important; padding-bottom: 52px !important;
  padding-left: 0 !important; padding-right: 0 !important;
}
.elementor-6 .elementor-element-bp0 .elementor-widget-wrap { padding: 0 !important; }
.elementor-6 .elementor-element-bp0 .elementor-heading-title {
  color: #fff !important; font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
  line-height: 1.18 !important; max-width: 820px !important;
  margin-left: auto !important; margin-right: auto !important;
}
.elementor-6 .elementor-element-bp0 p { color: rgba(255,255,255,0.82) !important; }
.elementor-4 .elementor-element.elementor-element-9mt2l13 { padding-top: 72px !important; padding-bottom: 12px !important; }
.elementor-4 .elementor-element.elementor-element-0zgiog0 { padding-top: 12px !important; padding-bottom: 12px !important; }
.elementor-4 .elementor-element.elementor-element-t2ebokk { padding-top: 12px !important; padding-bottom: 72px !important; }
.elementor-5 .elementor-element.elementor-element-e4zjjt3 { padding-top: 72px !important; padding-bottom: 0 !important; }
.elementor-5 .elementor-element.elementor-element-r3q8vfo { padding-top: 20px !important; padding-bottom: 56px !important; }
.elementor-5 .elementor-element.elementor-element-z4el21q { padding-top: 72px !important; padding-bottom: 24px !important; }
.elementor-5 .elementor-element.elementor-element-doj566i { padding-top: 0 !important; padding-bottom: 12px !important; }
.elementor-5 .elementor-element.elementor-element-v8ydd1z { padding-top: 0 !important; padding-bottom: 72px !important; }
a[style*="#d6a85c"] { transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important; }
a[style*="#d6a85c"]:hover { background: #b8902e !important; transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(214,168,92,0.45) !important; }
a[style*="border:1.5px solid #e0d"]:hover { background: rgba(74,58,82,0.06) !important; border-color: #4a3a52 !important; transform: translateY(-2px) !important; }
a[style*="background:#4a3a52"]:hover { background: #6b5478 !important; transform: translateY(-2px) !important; }
.main-navigation li.btn > a:hover { background: #b8902e !important; transform: translateY(-2px) !important; }
.elementor-button:hover { transform: translateY(-2px) !important; filter: brightness(0.9) !important; }

/* ════════════════════════════════════════════════════════════════════
   COMPREHENSIVE PAGE FIXES — Restored from previous session
   ════════════════════════════════════════════════════════════════════ */

/* ── Fees: hide duplicate second section ─────────────────────────── */
.elementor-5 .elementor-element.elementor-element-cz5icnh { display: none !important; }

/* ── Hero inner div gradient override (JS strips inline bg, CSS fallback) */
.elementor-311 .elementor-element-k3q3nw4 .elementor-widget-container > div,
.elementor-4 .elementor-element-4laustm .elementor-widget-container > div,
.elementor-5 .elementor-element-taqk2jf .elementor-widget-container > div,
.elementor-7 .elementor-element-tu0orno .elementor-widget-container > div,
.elementor-3 .elementor-element-7di0u1w .elementor-widget-container > div,
.elementor-2 .elementor-element-w1tpl9j .elementor-widget-container > div,
.elementor-6 .elementor-element-bp0 .elementor-widget-container > div {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* ── About page: hide duplicate hero heading in a7l1ipm ─────────── */
.elementor-7 .elementor-element-a7l1ipm .elementor-heading-title { font-size: 1.6rem !important; }

/* ── How It Works: section 2 (u0h1kb7) white bg padding ─────────── */
.elementor-311 .elementor-element.elementor-element-u0h1kb7 { background-color: #fff !important; }

/* ── FAQ card white box treatment ────────────────────────────────── */
.cs-fitem {
  background: #fff !important;
  border-radius: 14px !important;
  margin-bottom: 10px !important;
  overflow: visible !important;
  border: 1px solid var(--line) !important;
  border-top: none !important;
  border-bottom: none !important;
}
.cs-fq { padding: 20px 24px !important; }
.cs-fpl { width: 28px !important; height: 28px !important; min-width: 28px !important; }
.cs-fa { padding: 0 24px !important; }
.cs-fa p { padding-bottom: 20px !important; }

/* ── Homepage stats bar ──────────────────────────────────────────── */
.elementor-1 .elementor-element.elementor-element-18okdz9 { padding-top: 28px !important; padding-bottom: 28px !important; }

/* ── Homepage: steps section kicker ─────────────────────────────── */
.elementor-1 .elementor-element.elementor-element-vswbzy5 { padding-bottom: 0 !important; }
.elementor-1 .elementor-element.elementor-element-dyjpctt { padding-top: 32px !important; }

/* ── Homepage step card columns: column padding ──────────────────── */
.elementor-1 .elementor-element.elementor-element-t8jl4w2,
.elementor-1 .elementor-element.elementor-element-8fugu6s,
.elementor-1 .elementor-element.elementor-element-4xpd0t4 {
  padding: 0 10px !important;
}

/* ── Homepage step cards: white card on widget-wrap ─────────────── */
.elementor-1 .elementor-element-t8jl4w2 > .elementor-widget-wrap,
.elementor-1 .elementor-element-8fugu6s > .elementor-widget-wrap,
.elementor-1 .elementor-element-4xpd0t4 > .elementor-widget-wrap {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 20px !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 26px 26px 30px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  transition: transform 0.22s, box-shadow 0.22s !important;
  align-self: stretch !important;
}
.elementor-1 .elementor-element-t8jl4w2:hover > .elementor-widget-wrap,
.elementor-1 .elementor-element-8fugu6s:hover > .elementor-widget-wrap,
.elementor-1 .elementor-element-4xpd0t4:hover > .elementor-widget-wrap {
  transform: translateY(-4px) !important;
  box-shadow: 0 18px 45px rgba(74,58,82,0.14) !important;
}
.elementor-1 .elementor-element-t8jl4w2 .elementor-widget,
.elementor-1 .elementor-element-8fugu6s .elementor-widget,
.elementor-1 .elementor-element-4xpd0t4 .elementor-widget { margin: 0 !important; padding: 0 !important; }

/* ── "What we help with" chips section ───────────────────────────── */
.elementor-1 .elementor-element.elementor-element-f31zceb { padding-top: 72px !important; padding-bottom: 40px !important; }

/* ── Homepage values card section ────────────────────────────────── */
.elementor-1 .elementor-element.elementor-element-zkbx63h { padding: 0 !important; }

/* ── Fees pricing cards section ──────────────────────────────────── */
.elementor-5 .elementor-element.elementor-element-01rsdei { padding-bottom: 32px !important; }
.elementor-5 .elementor-element.elementor-element-4x5osb9 { padding-top: 0 !important; padding-bottom: 0 !important; }
.elementor-5 .elementor-element.elementor-element-nrca935 { padding-top: 20px !important; }

/* ── Fees pricing card columns: white card treatment ─────────────── */
.elementor-5 .elementor-element-gc0ycog > .elementor-widget-wrap,
.elementor-5 .elementor-element-oko58uj > .elementor-widget-wrap,
.elementor-5 .elementor-element-3bv4df7 > .elementor-widget-wrap {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 20px !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 30px 26px 34px !important;
  display: flex !important; flex-direction: column !important;
  gap: 0 !important; align-self: stretch !important;
}

/* ── Homepage reviews sections ───────────────────────────────────── */
.elementor-1 .elementor-element.elementor-element-edpc43i { padding-bottom: 24px !important; }
.elementor-1 .elementor-element.elementor-element-84mxm7f { padding-top: 0 !important; padding-bottom: 0 !important; }
.elementor-1 .elementor-element.elementor-element-6i1d9nu { padding-top: 16px !important; }

/* ── Review cards: white card on columns ─────────────────────────── */
.elementor-1 .elementor-element-84mxm7f .elementor-column > .elementor-widget-wrap {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 24px !important;
}

/* ── Homepage FAQ section ────────────────────────────────────────── */
.elementor-1 .elementor-element.elementor-element-0839bhw { padding-top: 72px !important; padding-bottom: 72px !important; }

/* ── Homepage CTA section ────────────────────────────────────────── */
.elementor-1 .elementor-element.elementor-element-1x2m7zr { padding-top: 88px !important; padding-bottom: 88px !important; }

/* ── Team page: "Not sure who to choose" side panel ─────────────── */
.elementor-3 .elementor-element-oa85eiu { padding-top: 0 !important; padding-bottom: 0 !important; }

/* ── Mobile: stat bar pills ──────────────────────────────────────── */
.cs-stat {
  transition: transform 0.2s ease !important;
  will-change: transform;
}
.cs-stat:hover { transform: translateY(-3px) !important; }

/* ── Mobile menu: ensure GP nav toggle shows ─────────────────────── */
@media (max-width: 780px) {
  .menu-toggle { display: flex !important; }
  .gp-icon { display: flex !important; }
}

/* ── Specialties card columns: column gap padding ───────────────── */
.elementor-4 .elementor-element-3y2jd8w,
.elementor-4 .elementor-element-7lbiu6v,
.elementor-4 .elementor-element-jx0rt0n,
.elementor-4 .elementor-element-8glcr7y,
.elementor-4 .elementor-element-2yftqmx,
.elementor-4 .elementor-element-494lvms,
.elementor-4 .elementor-element-pgkf4wq,
.elementor-4 .elementor-element-ksqm1ar,
.elementor-4 .elementor-element-n5cju8u { padding: 0 10px !important; }

/* ── Team card columns: column gap padding ───────────────────────── */
.elementor-3 .elementor-element-xw28gkr,
.elementor-3 .elementor-element-w4t4dnw,
.elementor-3 .elementor-element-zlo3r2e,
.elementor-3 .elementor-element-rymem0l,
.elementor-3 .elementor-element-vrcyfix,
.elementor-3 .elementor-element-ir0l7a7,
.elementor-3 .elementor-element-ygd3l3v { padding: 0 12px !important; }

/* ── Homepage How-It-Works step col padding ──────────────────────── */
.elementor-311 .elementor-element-6kciv85,
.elementor-311 .elementor-element-fodumhg,
.elementor-311 .elementor-element-qygx8dk { padding: 0 10px !important; }

/* ── Keep entry-title hidden ─────────────────────────────────────── */
.entry-title, .page-title, .post-title { display: none !important; }

/* ── GP site title (if showing) ──────────────────────────────────── */
.site-title a { color: var(--plum) !important; font-family: "Fraunces", serif !important; }

/* widget-wrap padding managed per-component above */

/* ── How It Works second section: tight padding ──────────────────── */
.elementor-311 .elementor-element.elementor-element-u0h1kb7 {
  padding-top: 72px !important;
  padding-bottom: 24px !important;
  background-color: var(--bg) !important;
}

/* ── About: values card section ──────────────────────────────────── */
.elementor-7 .elementor-element.elementor-element-a7l1ipm {
  padding-top: 0 !important;
  padding-bottom: 72px !important;
}

/* ── About: story section ────────────────────────────────────────── */
.elementor-7 .elementor-element.elementor-element-hqmpgbs {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
  background-color: var(--bg) !important;
}

/* ── Homepage: hero card animation - no blinking ──────────────────── */
@keyframes float-gentle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
.cs-hero-card { animation: float-gentle 6s ease-in-out infinite !important; }
.cs-hero-card-inner { will-change: transform; }

/* ── cs-reveal: replace with plain div (no animation class that blinks) */
.cs-reveal-right { opacity: 1 !important; transform: none !important; }

/* ── Scroll reveal animations ────────────────────────────────────── */
.cs-will-animate {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.55s cubic-bezier(0.22,0.84,0.44,1), transform 0.55s cubic-bezier(0.22,0.84,0.44,1);
}
.cs-will-animate.cs-in-view { opacity: 1; transform: translateY(0); }

/* ── Homepage hero gradient background ───────────────────────────── */
.elementor-1 .elementor-element-a175c3h {
  background: linear-gradient(160deg, #fbf8f6 0%, #f1ebf0 100%) !important;
}

/* ── Homepage hero: cs-hero grid centered ─────────────────────────── */
.cs-hero { max-width: 1120px !important; margin: 0 auto !important; }

/* ── Specialties: therapy approaches section ─────────────────────── */
.elementor-4 .elementor-element.elementor-element-35419nx {
  padding-top: 72px !important; padding-bottom: 72px !important;
  background-color: var(--bg) !important;
}

/* ── Specialties: therapy approach cards ─────────────────────────── */
.elementor-4 .elementor-element-qwz7y86 { padding-top: 0 !important; padding-bottom: 72px !important; }

/* ── Fees: benefits cards (RP + RSW) ─────────────────────────────── */
.elementor-5 .elementor-element-doj566i .elementor-column > .elementor-widget-wrap,
.elementor-5 .elementor-element-v8ydd1z .elementor-column > .elementor-widget-wrap {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 20px 22px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
}

/* ── Find Your Match: match tool card ────────────────────────────── */
.elementor-2 .elementor-element.elementor-element-eg3mz4h { padding-top: 56px !important; }

/* ── Freeconsult: sections below hero ───────────────────────────── */
.elementor-6 .elementor-element.elementor-element-bp1 {
  padding-top: 72px !important; padding-bottom: 72px !important;
  background-color: var(--bg) !important;
}
.elementor-6 .elementor-element.elementor-element-bp2 {
  padding-top: 72px !important; padding-bottom: 72px !important;
}

/* ── Freeconsult: contact form section ───────────────────────────── */
.elementor-6 .elementor-element.elementor-element-bp3 {
  padding-top: 56px !important; padding-bottom: 88px !important;
  background-color: var(--bg) !important;
}

/* ── Navigation active item highlight ────────────────────────────── */
.main-navigation li.current-menu-item:not(.btn) > a { color: var(--plum) !important; }

/* ── WP admin bar offset ─────────────────────────────────────────── */
.admin-bar #masthead { top: 32px !important; }
@media screen and (max-width: 782px) {
  .admin-bar #masthead { top: 46px !important; }
}

/* ── Print: hide admin bar ───────────────────────────────────────── */
@media print { #wpadminbar { display: none !important; } }

/* ════════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVENESS — Complete restoration
   ════════════════════════════════════════════════════════════════════ */

/* ── Tablet (≤ 1024px) ───────────────────────────────────────────── */
@media (max-width: 1024px) {
  .inside-header { padding: 0 20px !important; }
  .main-navigation ul.menu { gap: 16px !important; }
  .main-navigation li a { font-size: 0.82rem !important; }
  .main-navigation li.btn > a { padding: 8px 16px !important; font-size: 0.78rem !important; }
}

/* ── Mobile nav show/hide ─────────────────────────────────────────── */
@media (max-width: 780px) {
  .main-navigation { display: none !important; }
  .main-navigation.toggled { display: block !important; }
  .menu-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important; height: 40px !important;
    background: transparent !important;
    border: none !important; cursor: pointer !important;
  }
  .menu-toggle .gp-icon svg { fill: var(--plum) !important; width: 24px !important; height: 24px !important; }
  .menu-toggle .mobile-menu { display: none !important; }

  /* Hero text sizing on mobile */
  .elementor-311 .elementor-element-k3q3nw4 .elementor-heading-title,
  .elementor-4 .elementor-element-4laustm .elementor-heading-title,
  .elementor-5 .elementor-element-taqk2jf .elementor-heading-title,
  .elementor-7 .elementor-element-tu0orno .elementor-heading-title,
  .elementor-3 .elementor-element-7di0u1w .elementor-heading-title,
  .elementor-2 .elementor-element-w1tpl9j .elementor-heading-title,
  .elementor-6 .elementor-element-bp0 .elementor-heading-title {
    font-size: clamp(1.5rem, 6vw, 2.2rem) !important;
  }

  /* Step cards stack on mobile */
  .elementor-311 .elementor-element-6kciv85,
  .elementor-311 .elementor-element-fodumhg,
  .elementor-311 .elementor-element-qygx8dk,
  .elementor-1 .elementor-element-t8jl4w2,
  .elementor-1 .elementor-element-8fugu6s,
  .elementor-1 .elementor-element-4xpd0t4 { padding: 0 0 16px 0 !important; }

  /* Specialty cards stack */
  .elementor-4 .elementor-element-3y2jd8w,
  .elementor-4 .elementor-element-7lbiu6v,
  .elementor-4 .elementor-element-jx0rt0n,
  .elementor-4 .elementor-element-8glcr7y,
  .elementor-4 .elementor-element-2yftqmx,
  .elementor-4 .elementor-element-494lvms,
  .elementor-4 .elementor-element-pgkf4wq,
  .elementor-4 .elementor-element-ksqm1ar,
  .elementor-4 .elementor-element-n5cju8u { padding: 0 0 16px 0 !important; }

  /* Team cards stack */
  .elementor-3 .elementor-element-xw28gkr,
  .elementor-3 .elementor-element-w4t4dnw,
  .elementor-3 .elementor-element-zlo3r2e,
  .elementor-3 .elementor-element-rymem0l,
  .elementor-3 .elementor-element-vrcyfix,
  .elementor-3 .elementor-element-ir0l7a7,
  .elementor-3 .elementor-element-ygd3l3v { padding: 0 0 20px 0 !important; }

  /* Fees pricing cards stack */
  .elementor-5 .elementor-element-gc0ycog,
  .elementor-5 .elementor-element-oko58uj,
  .elementor-5 .elementor-element-3bv4df7 { padding: 0 0 16px 0 !important; }

  /* CTA box padding on mobile */
  .cs-cta-box { padding: 48px 24px !important; }
  .cs-values-card { padding: 36px 24px !important; }

  /* Section padding on mobile */
  .elementor-section.elementor-top-section,
  .elementor-4 .elementor-element.elementor-element-9mt2l13,
  .elementor-4 .elementor-element.elementor-element-0zgiog0,
  .elementor-4 .elementor-element.elementor-element-t2ebokk {
    padding-top: 48px !important; padding-bottom: 48px !important;
  }

  /* Team photo height on mobile */
  .elementor-3 .elementor-widget-image img { height: 200px !important; }
}

@media (max-width: 480px) {
  .inside-header { height: 56px !important; min-height: 56px !important; padding: 0 16px !important; }
  .site-logo img { height: 34px !important; }
  .elementor-section.elementor-top-section { padding-top: 36px !important; padding-bottom: 36px !important; }
  .cs-cta-box { padding: 36px 20px !important; }
}

/* ════════════════════════════════════════════════════════════════════
   CRITICAL FIX: widget-wrap padding must NOT be globally 0
   The card rules above set it correctly per card.
   Revert the global widget-wrap: 0 rule with a selector-specific approach.
   ════════════════════════════════════════════════════════════════════ */

/* Reset: widget-wrap inside hero sections only should be 0 */
/* (already set above in hero section rules) */

/* Non-card widget-wrap: let GP manage padding, just ensure consistency */
/* Actually DO NOT set widget-wrap: 0 globally — remove that via setcss */

/* ── CS pain/chip chips on homepage ─────────────────────────────── */
.cs-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 16px !important;
  background: #fff !important;
  border: 1.5px solid var(--line) !important;
  border-radius: 100px !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  white-space: nowrap !important;
  transition: all 0.15s !important;
}
.cs-chip:hover { border-color: var(--plum) !important; color: var(--plum) !important; }

/* ── Team name heading colour ────────────────────────────────────── */
.elementor-3 .elementor-element-xw28gkr .elementor-heading-title,
.elementor-3 .elementor-element-w4t4dnw .elementor-heading-title,
.elementor-3 .elementor-element-zlo3r2e .elementor-heading-title,
.elementor-3 .elementor-element-rymem0l .elementor-heading-title,
.elementor-3 .elementor-element-vrcyfix .elementor-heading-title,
.elementor-3 .elementor-element-ir0l7a7 .elementor-heading-title,
.elementor-3 .elementor-element-ygd3l3v .elementor-heading-title {
  color: var(--ink) !important;
  font-family: "Fraunces", serif !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  margin-bottom: 2px !important;
}

/* ── Links inside match tool results ────────────────────────────── */
.cs-result-cta a, .cs-cta-box a { color: #fff !important; }

/* ── Eyebrow text (kicker labels) general ───────────────────────── */
.eyebrow {
  font-family: "Inter", sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--sage-2) !important;
}

/* ── On light bg sections, eyebrow is sage-d ───────────────────── */
.elementor-section:not([style*="4a3a52"]):not([style*="4A3A52"]) .eyebrow {
  color: var(--sage-d) !important;
}

/* ── Ensure GP header is always opaque white ────────────────────── */
#masthead { background: #fff !important; }
.site-header { background: #fff !important; }

/* ── No sidebar layout ───────────────────────────────────────────── */
.content-area { width: 100% !important; }
.sidebar-primary { display: none !important; }

/* ── Footer ──────────────────────────────────────────────────────── */
.site-footer {
  background: var(--ink) !important;
  color: rgba(255,255,255,0.7) !important;
  padding: 24px 26px !important;
  font-size: 0.82rem !important;
  text-align: center !important;
}
.site-footer a { color: var(--sage-2) !important; }
.site-footer a:hover { color: #fff !important; }

/* ── GP breadcrumbs hide ─────────────────────────────────────────── */
.breadcrumb-trail { display: none !important; }

/* ── Logo size consistency ───────────────────────────────────────── */
.site-logo { flex-shrink: 0 !important; }

/* ════════════════════════════════════════════════════════════════════
   PAGE-BY-PAGE FIXES — From screenshot review session
   ════════════════════════════════════════════════════════════════════ */

/* ── ABOUT PAGE: Un-hide values card (Elementor inline display:none) */
.elementor-element-llg9d7f { display: block !important; }

/* ── ABOUT PAGE: Restore a7l1ipm section padding so values card shows */
.elementor-7 .elementor-element.elementor-element-a7l1ipm {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
}

/* ── HOW IT WORKS: "Your first session" info cards — white card style */
.elementor-311 .elementor-element-8rn3hdv > .elementor-widget-wrap,
.elementor-311 .elementor-element-r4ttitl > .elementor-widget-wrap,
.elementor-311 .elementor-element-jutzcvc > .elementor-widget-wrap,
.elementor-311 .elementor-element-0g6uyak > .elementor-widget-wrap {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 20px 22px 22px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  align-self: stretch !important;
}

/* ── HOW IT WORKS: "Your first session" section background */
.elementor-311 .elementor-element.elementor-element-6bjxmji,
.elementor-311 .elementor-element.elementor-element-2gqu4xr {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
  background-color: var(--bg) !important;
}

/* ── HOW IT WORKS: Section padding for "What to expect" heading */
.elementor-311 .elementor-element.elementor-element-703eab6 {
  padding-top: 72px !important;
  padding-bottom: 32px !important;
  background-color: var(--bg) !important;
}

/* ── ABOUT: Story section (hqmpgbs) — ensure proper padding */
.elementor-7 .elementor-element.elementor-element-9hgctwc,
.elementor-7 .elementor-element.elementor-element-7p8qnwt {
  padding-top: 0 !important;
}
.elementor-7 .elementor-element.elementor-element-9hgctwc {
  padding-top: 72px !important;
  padding-bottom: 0 !important;
}

/* ── FAQ white card treatment (global, for all pages) ──────────────── */
.cs-fitem {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  margin-bottom: 12px !important;
  overflow: visible !important;
  box-shadow: var(--shadow-sm) !important;
}
.cs-fq { padding: 20px 24px !important; }
.cs-fa { padding: 0 24px !important; }
.cs-fa p { padding-bottom: 20px !important; margin: 0 !important; color: var(--mute) !important; }

/* ── cs-step: correct layout (number top-left, icon top-right, then title below) */
/* cs-step block removed */
.cs-step-num {
  width: 34px !important; height: 34px !important; min-width: 34px !important;
  background: var(--plum) !important; color: #fff !important;
  border-radius: 9px !important; font-family: "Fraunces", serif !important;
  font-size: 0.9rem !important; font-weight: 700 !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; line-height: 1 !important; flex-shrink: 0 !important;
}
.cs-step-icon {
  width: 48px !important; height: 48px !important;
  background: linear-gradient(135deg, var(--sage), var(--sage-d)) !important;
  border-radius: 13px !important; display: flex !important;
  align-items: center !important; justify-content: center !important;
  font-size: 1.4rem !important; flex-shrink: 0 !important;
}

/* ── Team card: allow content to breathe, don't clip text */
.elementor-3 .elementor-element-xw28gkr > .elementor-widget-wrap,
.elementor-3 .elementor-element-w4t4dnw > .elementor-widget-wrap,
.elementor-3 .elementor-element-zlo3r2e > .elementor-widget-wrap,
.elementor-3 .elementor-element-rymem0l > .elementor-widget-wrap,
.elementor-3 .elementor-element-vrcyfix > .elementor-widget-wrap,
.elementor-3 .elementor-element-ir0l7a7 > .elementor-widget-wrap,
.elementor-3 .elementor-element-ygd3l3v > .elementor-widget-wrap {
  overflow: visible !important;
}

/* ── Team card: name heading visible, not clipped */
.elementor-3 .elementor-element-xw28gkr .elementor-heading-title,
.elementor-3 .elementor-element-w4t4dnw .elementor-heading-title,
.elementor-3 .elementor-element-zlo3r2e .elementor-heading-title,
.elementor-3 .elementor-element-rymem0l .elementor-heading-title,
.elementor-3 .elementor-element-vrcyfix .elementor-heading-title,
.elementor-3 .elementor-element-ir0l7a7 .elementor-heading-title,
.elementor-3 .elementor-element-ygd3l3v .elementor-heading-title {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
}

/* ── Homepage hero: ensure gradient bg persists on page bg */
.elementor-1 .elementor-element-a175c3h {
  background: linear-gradient(160deg, #fbf8f6 0%, #f1ebf0 100%) !important;
}

/* ── GP nav gold btn: not hidden on mobile from earlier fix */
@media (max-width: 780px) {
  .main-navigation li.btn { display: none !important; }
}


/* ════════════════════════════════════════════════════════════════════
   HERO SECTION ID UPDATE — pages were re-saved in Elementor
   New IDs discovered from live page inspection
   ════════════════════════════════════════════════════════════════════ */

/* How It Works hero: oerinlg */
.elementor-311 .elementor-element.elementor-element-oerinlg,
.elementor-311 .elementor-section.elementor-element-oerinlg {
  background-color: var(--plum) !important;
  padding-top: 52px !important; padding-bottom: 52px !important;
  padding-left: 0 !important; padding-right: 0 !important;
  width: 100% !important;
}
.elementor-311 .elementor-element-oerinlg .elementor-widget-wrap { padding: 0 !important; }
.elementor-311 .elementor-element-oerinlg .elementor-heading-title {
  color: #fff !important; font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
  line-height: 1.18 !important; max-width: 820px !important;
  margin-left: auto !important; margin-right: auto !important;
}
.elementor-311 .elementor-element-oerinlg p { color: rgba(255,255,255,0.82) !important; }
.elementor-311 .elementor-element-oerinlg .eyebrow { color: var(--sage-2) !important; }
.elementor-311 .elementor-element-oerinlg .elementor-widget-container { text-align: center !important; }
.elementor-311 .elementor-element-oerinlg .elementor-widget-container > div {
  background: transparent !important; padding: 0 !important;
}

/* Specialties hero: 0hax2d2 */
.elementor-4 .elementor-element.elementor-element-0hax2d2,
.elementor-4 .elementor-section.elementor-element-0hax2d2 {
  background-color: var(--plum) !important;
  padding-top: 52px !important; padding-bottom: 52px !important;
  padding-left: 0 !important; padding-right: 0 !important;
  width: 100% !important;
}
.elementor-4 .elementor-element-0hax2d2 .elementor-widget-wrap { padding: 0 !important; }
.elementor-4 .elementor-element-0hax2d2 .elementor-heading-title {
  color: #fff !important; font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
  line-height: 1.18 !important; max-width: 820px !important;
  margin-left: auto !important; margin-right: auto !important;
}
.elementor-4 .elementor-element-0hax2d2 p { color: rgba(255,255,255,0.82) !important; }
.elementor-4 .elementor-element-0hax2d2 .eyebrow { color: var(--sage-2) !important; }
.elementor-4 .elementor-element-0hax2d2 .elementor-widget-container { text-align: center !important; }
.elementor-4 .elementor-element-0hax2d2 .elementor-widget-container > div {
  background: transparent !important; padding: 0 !important;
}

/* About hero: 0kphyil */
.elementor-7 .elementor-element.elementor-element-0kphyil,
.elementor-7 .elementor-section.elementor-element-0kphyil {
  background-color: var(--plum) !important;
  padding-top: 52px !important; padding-bottom: 52px !important;
  padding-left: 0 !important; padding-right: 0 !important;
  width: 100% !important;
}
.elementor-7 .elementor-element-0kphyil .elementor-widget-wrap { padding: 0 !important; }
.elementor-7 .elementor-element-0kphyil .elementor-heading-title {
  color: #fff !important; font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
  line-height: 1.18 !important; max-width: 820px !important;
  margin-left: auto !important; margin-right: auto !important;
}
.elementor-7 .elementor-element-0kphyil p { color: rgba(255,255,255,0.82) !important; }
.elementor-7 .elementor-element-0kphyil .eyebrow { color: var(--sage-2) !important; }
.elementor-7 .elementor-element-0kphyil .elementor-widget-container { text-align: center !important; }
.elementor-7 .elementor-element-0kphyil .elementor-widget-container > div {
  background: transparent !important; padding: 0 !important;
}

/* Fees hero: cvgauey */
.elementor-5 .elementor-element.elementor-element-cvgauey,
.elementor-5 .elementor-section.elementor-element-cvgauey {
  background-color: var(--plum) !important;
  padding-top: 52px !important; padding-bottom: 52px !important;
  padding-left: 0 !important; padding-right: 0 !important;
  width: 100% !important;
}
.elementor-5 .elementor-element-cvgauey .elementor-widget-wrap { padding: 0 !important; }
.elementor-5 .elementor-element-cvgauey .elementor-heading-title {
  color: #fff !important; font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
  line-height: 1.18 !important; max-width: 820px !important;
  margin-left: auto !important; margin-right: auto !important;
}
.elementor-5 .elementor-element-cvgauey p { color: rgba(255,255,255,0.82) !important; }
.elementor-5 .elementor-element-cvgauey .eyebrow { color: var(--sage-2) !important; }
.elementor-5 .elementor-element-cvgauey .elementor-widget-container { text-align: center !important; }
.elementor-5 .elementor-element-cvgauey .elementor-widget-container > div {
  background: transparent !important; padding: 0 !important;
}

/* Meet the Team hero: t4jggct */
.elementor-3 .elementor-element.elementor-element-t4jggct,
.elementor-3 .elementor-section.elementor-element-t4jggct {
  background-color: var(--plum) !important;
  padding-top: 44px !important; padding-bottom: 44px !important;
  padding-left: 0 !important; padding-right: 0 !important;
  width: 100% !important;
}
.elementor-3 .elementor-element-t4jggct .elementor-widget-wrap { padding: 0 !important; }
.elementor-3 .elementor-element-t4jggct .elementor-heading-title {
  color: #fff !important; font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
  line-height: 1.18 !important; max-width: 820px !important;
  margin-left: auto !important; margin-right: auto !important;
}
.elementor-3 .elementor-element-t4jggct p { color: rgba(255,255,255,0.82) !important; }
.elementor-3 .elementor-element-t4jggct .eyebrow { color: var(--sage-2) !important; }
.elementor-3 .elementor-element-t4jggct .elementor-widget-container { text-align: center !important; }
.elementor-3 .elementor-element-t4jggct .elementor-widget-container > div {
  background: transparent !important; padding: 0 !important;
}


/* ── Remove GeneratePress footer credit ─────────────────────────── */
.site-footer .copyright-bar a[href*="generatepress"],
.site-footer .copyright-bar a[href*="generatepress"] + *,
.site-info .copyright-bar { font-size: 0 !important; }
.site-info .copyright-bar .copyright {
  font-size: 0.82rem !important;
  color: rgba(255,255,255,0.5) !important;
}
/* Hide the "Built with GeneratePress" part but keep copyright */
.site-footer .copyright-bar {
  display: flex !important;
  align-items: center !important;
}
/* Nuclear option - hide the whole generated text node via attribute */
.site-info a[href="https://generatepress.com"] { display: none !important; }
/* Also hide the bullet separator before it */
.site-footer .copyright-bar { color: transparent !important; font-size: 0 !important; }
.site-footer .copyright-bar .copyright {
  color: rgba(255,255,255,0.5) !important;
  font-size: 0.82rem !important;
}


/* ════════════════════════════════════════════════════════════════════
   PDF REVIEW FIXES — systematic comparison vs original design
   ════════════════════════════════════════════════════════════════════ */

/* ── 1. cs-step layout: number top-left, icon top-right, title below ─ */
/* The HTML widget inside step cards contains:
   cs-step (flex row: num + icon) then heading + text as separate widgets
   This is correct — just need the heading to have proper top spacing    */

/* cs-step block removed */
.cs-step-num {
  width: 32px !important; height: 32px !important; min-width: 32px !important;
  background: var(--plum) !important; color: #fff !important;
  border-radius: 8px !important;
  font-family: "Fraunces", serif !important;
  font-size: 0.85rem !important; font-weight: 700 !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; flex-shrink: 0 !important;
}
.cs-step-icon {
  width: 46px !important; height: 46px !important;
  background: linear-gradient(135deg, var(--sage), var(--sage-d)) !important;
  border-radius: 13px !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; font-size: 1.3rem !important;
  flex-shrink: 0 !important; line-height: 1 !important;
}

/* The heading widget that sits below cs-step inside step cards */
.elementor-311 .elementor-element-6kciv85 .elementor-widget-heading .elementor-heading-title,
.elementor-311 .elementor-element-fodumhg .elementor-widget-heading .elementor-heading-title,
.elementor-311 .elementor-element-qygx8dk .elementor-widget-heading .elementor-heading-title,
.elementor-1 .elementor-element-t8jl4w2 .elementor-widget-heading .elementor-heading-title,
.elementor-1 .elementor-element-8fugu6s .elementor-widget-heading .elementor-heading-title,
.elementor-1 .elementor-element-4xpd0t4 .elementor-widget-heading .elementor-heading-title {
  font-family: "Fraunces", serif !important;
  font-size: 1.18rem !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  margin: 0 0 6px !important;
  line-height: 1.3 !important;
}

/* Step card description text */
.elementor-311 .elementor-element-6kciv85 .elementor-widget-text-editor,
.elementor-311 .elementor-element-fodumhg .elementor-widget-text-editor,
.elementor-311 .elementor-element-qygx8dk .elementor-widget-text-editor,
.elementor-1 .elementor-element-t8jl4w2 .elementor-widget-text-editor,
.elementor-1 .elementor-element-8fugu6s .elementor-widget-text-editor,
.elementor-1 .elementor-element-4xpd0t4 .elementor-widget-text-editor {
  font-size: 0.95rem !important;
  color: var(--mute) !important;
  line-height: 1.6 !important;
}
.elementor-311 .elementor-element-6kciv85 .elementor-widget-text-editor p,
.elementor-311 .elementor-element-fodumhg .elementor-widget-text-editor p,
.elementor-311 .elementor-element-qygx8dk .elementor-widget-text-editor p,
.elementor-1 .elementor-element-t8jl4w2 .elementor-widget-text-editor p,
.elementor-1 .elementor-element-8fugu6s .elementor-widget-text-editor p,
.elementor-1 .elementor-element-4xpd0t4 .elementor-widget-text-editor p {
  color: var(--mute) !important;
  font-size: 0.95rem !important;
  margin: 0 !important;
}

/* ── 2. Values card section needs padding ───────────────────────── */
.elementor-1 .elementor-element.elementor-element-zkbx63h {
  padding-top: 88px !important;
  padding-bottom: 88px !important;
}

/* Values card: ensure correct dimensions and layout */
.cs-values-card {
  background: linear-gradient(150deg, var(--plum), #382a40) !important;
  border-radius: 24px !important;
  padding: 50px 44px !important;
  box-shadow: var(--shadow) !important;
  position: relative !important;
  overflow: hidden !important;
  color: #fff !important;
}
.cs-values-card h2 { color: #fff !important; margin-bottom: 8px !important; }
.cs-values-card .eyebrow { color: var(--sage-2) !important; }
.cs-values-card p { color: #d9cfe0 !important; }

/* vgrid: 2-col layout for values items */
.vgrid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 22px !important;
  margin-top: 30px !important;
}
.vitem {
  display: flex !important;
  gap: 13px !important;
  align-items: flex-start !important;
}
.vitem .vk {
  width: 34px !important; height: 34px !important; min-width: 34px !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,0.12) !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important;
  font-size: 1.1rem !important; flex-shrink: 0 !important;
}
.vitem b { color: #fff !important; font-family: "Fraunces", serif !important; display: block !important; margin-bottom: 3px !important; }
.vitem p { color: #d9cfe0 !important; font-size: 0.9rem !important; margin: 0 !important; }

/* ── 3. Homepage fees section spacing consolidation ─────────────── */
/* Heading + cards + disclaimer should flow as one tight unit */
.elementor-1 .elementor-element.elementor-element-01rsdei {
  padding-top: 88px !important;
  padding-bottom: 32px !important;
}
.elementor-1 .elementor-element.elementor-element-4x5osb9 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.elementor-1 .elementor-element.elementor-element-nrca935 {
  padding-top: 16px !important;
  padding-bottom: 88px !important;
}

/* Price cards proper styling */
.elementor-1 .elementor-element-4x5osb9 .elementor-column > .elementor-widget-wrap {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 18px !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 30px !important;
  text-align: center !important;
  align-self: stretch !important;
  display: flex !important; flex-direction: column !important;
}

/* ── 4. Reviews section spacing ─────────────────────────────────── */
.elementor-1 .elementor-element.elementor-element-edpc43i {
  padding-top: 88px !important;
  padding-bottom: 24px !important;
}
.elementor-1 .elementor-element.elementor-element-84mxm7f {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.elementor-1 .elementor-element.elementor-element-6i1d9nu {
  padding-top: 16px !important;
  padding-bottom: 88px !important;
}

/* Review quote cards */
.elementor-1 .elementor-element-84mxm7f .elementor-column > .elementor-widget-wrap {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 18px !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 28px !important;
  align-self: stretch !important;
  display: flex !important; flex-direction: column !important;
}

/* ── 5. Homepage: "From where do I start" heading section spacing ── */
.elementor-1 .elementor-element.elementor-element-vswbzy5 {
  padding-top: 88px !important;
  padding-bottom: 0 !important;
}
.elementor-1 .elementor-element.elementor-element-dyjpctt {
  padding-top: 36px !important;
  padding-bottom: 88px !important;
}

/* ── 6. Specialties chips proper styling ────────────────────────── */
.cs-chip, .chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 10px 18px !important;
  background: #fff !important;
  border: 1px solid var(--line-2) !important;
  border-radius: 100px !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  color: var(--text, var(--ink)) !important;
  box-shadow: var(--shadow-sm) !important;
  transition: all 0.15s !important;
  white-space: nowrap !important;
}
.cs-chip:hover, .chip:hover {
  border-color: var(--sage) !important;
  color: var(--sage-d) !important;
  transform: translateY(-2px) !important;
}

/* ── 7. eyebrow styling consistent with design ──────────────────── */
.eyebrow {
  font-weight: 600 !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--sage-d) !important;
  margin-bottom: 14px !important;
  display: block !important;
}

/* On plum/dark backgrounds, eyebrow is sage-2 */
.elementor-element-oerinlg .eyebrow,
.elementor-element-0hax2d2 .eyebrow,
.elementor-element-0kphyil .eyebrow,
.elementor-element-cvgauey .eyebrow,
.elementor-element-t4jggct .eyebrow,
.elementor-element-bp0 .eyebrow,
.elementor-element-k3q3nw4 .eyebrow,
.elementor-element-4laustm .eyebrow,
.elementor-element-taqk2jf .eyebrow,
.elementor-element-tu0orno .eyebrow,
.elementor-element-7di0u1w .eyebrow,
.cs-values-card .eyebrow { color: var(--sage-2) !important; }

/* ── 8. CTA box on bottom of pages ──────────────────────────────── */
.cs-cta-box {
  background: linear-gradient(160deg, #4a3a52, #2a2032) !important;
  color: #fff !important;
  border-radius: 28px !important;
  padding: 64px 48px !important;
  text-align: center !important;
  box-shadow: var(--shadow) !important;
  position: relative !important;
  overflow: hidden !important;
}
.cs-cta-box h2, .cs-cta-box h3 { color: #fff !important; }
.cs-cta-box p { color: #d9cfe0 !important; }

/* ── 9. FAQ proper card styling (confirmed working, just reinforce) ─ */
.cs-faq-wrap { max-width: 780px !important; margin: 30px auto 0 !important; }
.cs-fitem {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  margin-bottom: 12px !important;
  overflow: visible !important;
  box-shadow: var(--shadow-sm) !important;
}
.cs-fq {
  width: 100% !important;
  text-align: left !important;
  padding: 20px 24px !important;
  background: none !important;
  border: none !important;
  font-family: "Fraunces", serif !important;
  font-size: 1.06rem !important;
  color: var(--ink) !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 14px !important;
}
.cs-fpl {
  flex: none !important;
  width: 26px !important; height: 26px !important;
  border-radius: 50% !important;
  background: #f0eaf3 !important;
  color: var(--plum-2, var(--plum)) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.2rem !important;
  transition: transform 0.2s !important;
}
.cs-fa { padding: 0 24px !important; }
.cs-fa p { padding: 0 0 20px !important; color: var(--mute) !important; font-size: 0.95rem !important; }

/* ── 10. Match tool card proper styling ─────────────────────────── */
.cs-m-head {
  background: linear-gradient(150deg, var(--plum), #382a40) !important;
  color: #fff !important;
  padding: 30px 36px !important;
  position: relative !important;
  overflow: hidden !important;
  border-radius: 0 !important;
}
.cs-m-head h3, .cs-m-head .cs-m-title { color: #fff !important; font-size: 1.5rem !important; margin-bottom: 4px !important; }
.cs-m-head p, .cs-m-head .cs-m-subtitle { color: #d9cfe0 !important; font-size: 0.95rem !important; }
.cs-progress { height: 6px !important; background: rgba(255,255,255,0.18) !important; border-radius: 10px !important; margin-top: 18px !important; overflow: hidden !important; }

/* ── 11. Disclaimer text (disc class) ───────────────────────────── */
.disc {
  font-size: 0.74rem !important;
  color: var(--soft, #8a7f93) !important;
  text-align: center !important;
  margin-top: 18px !important;
  font-style: italic !important;
}

/* ── 12. Team cards - ensure no text clipping ───────────────────── */
.elementor-3 .elementor-element-xw28gkr > .elementor-widget-wrap,
.elementor-3 .elementor-element-w4t4dnw > .elementor-widget-wrap,
.elementor-3 .elementor-element-zlo3r2e > .elementor-widget-wrap,
.elementor-3 .elementor-element-rymem0l > .elementor-widget-wrap,
.elementor-3 .elementor-element-vrcyfix > .elementor-widget-wrap,
.elementor-3 .elementor-element-ir0l7a7 > .elementor-widget-wrap,
.elementor-3 .elementor-element-ygd3l3v > .elementor-widget-wrap {
  overflow: visible !important;
}

/* Team card text editors - proper spacing */
.elementor-3 .elementor-element-xw28gkr .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-w4t4dnw .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-zlo3r2e .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-rymem0l .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-vrcyfix .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-ir0l7a7 .elementor-widget:not(.elementor-widget-image),
.elementor-3 .elementor-element-ygd3l3v .elementor-widget:not(.elementor-widget-image) {
  padding: 0 18px !important;
}
.elementor-3 .elementor-element-xw28gkr .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-w4t4dnw .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-zlo3r2e .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-rymem0l .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-vrcyfix .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-ir0l7a7 .elementor-widget:nth-child(2),
.elementor-3 .elementor-element-ygd3l3v .elementor-widget:nth-child(2) { padding-top: 16px !important; }
.elementor-3 .elementor-element-xw28gkr .elementor-widget:last-child,
.elementor-3 .elementor-element-w4t4dnw .elementor-widget:last-child,
.elementor-3 .elementor-element-zlo3r2e .elementor-widget:last-child,
.elementor-3 .elementor-element-rymem0l .elementor-widget:last-child,
.elementor-3 .elementor-element-vrcyfix .elementor-widget:last-child,
.elementor-3 .elementor-element-ir0l7a7 .elementor-widget:last-child,
.elementor-3 .elementor-element-ygd3l3v .elementor-widget:last-child { padding-bottom: 18px !important; }

/* ── 13. Button styles matching original design ─────────────────── */
/* Gold button */
a[style*="#d6a85c"], a[style*="d6a85c"],
.cs-btn-gold {
  background: #d6a85c !important;
  color: #2c2333 !important;
  font-weight: 700 !important;
  border-radius: 100px !important;
  box-shadow: 0 12px 28px rgba(214,168,92,.38) !important;
  transition: transform .15s, box-shadow .15s !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 15px 30px !important;
  font-size: 1rem !important;
  border: none !important;
  cursor: pointer !important;
  text-decoration: none !important;
}
a[style*="#d6a85c"]:hover, a[style*="d6a85c"]:hover,
.cs-btn-gold:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 16px 34px rgba(214,168,92,.48) !important;
}

/* Ghost button */
a[style*="border:1.5px solid #e0d"],
.cs-btn-ghost {
  background: #fff !important;
  color: var(--plum-2, #6a5277) !important;
  border: 1.5px solid var(--line-2, #e0d6dd) !important;
  border-radius: 100px !important;
  box-shadow: var(--shadow-sm) !important;
  transition: all .15s !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 14px 28px !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  text-decoration: none !important;
}
a[style*="border:1.5px solid #e0d"]:hover,
.cs-btn-ghost:hover {
  background: var(--plum) !important;
  color: #fff !important;
  transform: translateY(-2px) !important;
}

/* ── 14. Lead text styling ──────────────────────────────────────── */
.lead {
  font-size: 1.1rem !important;
  color: var(--mute) !important;
  max-width: 760px !important;
  line-height: 1.7 !important;
}
.center .lead { margin-left: auto !important; margin-right: auto !important; }

/* ── 15. Section headings alignment ─────────────────────────────── */
.elementor-widget-heading .elementor-heading-title {
  font-family: "Fraunces", Georgia, serif !important;
  line-height: 1.16 !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
}

/* ── 16. Homepage: Specialties/chips section proper bg ──────────── */
.elementor-1 .elementor-element.elementor-element-f31zceb {
  background-color: linear-gradient(180deg, #faf7f5, #f3edf0) !important;
}

/* ── 17. Ensure body text colour consistent with design ─────────── */
.elementor-widget-text-editor p { color: var(--mute) !important; }
.elementor-widget-text-editor a { color: var(--plum-2, #6a5277) !important; text-decoration: underline !important; }


/* ── Values card: correct WP class names (cs-vals-grid, cs-val-item) */
.cs-vals-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 22px !important;
  margin-top: 30px !important;
  position: relative !important;
}
.cs-val-item {
  display: flex !important;
  gap: 13px !important;
  align-items: flex-start !important;
}
.cs-val-icon {
  width: 34px !important; height: 34px !important; min-width: 34px !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,0.12) !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important;
  font-size: 1.1rem !important; flex-shrink: 0 !important;
  line-height: 1 !important;
}
.cs-val-item b {
  color: #fff !important;
  font-family: "Fraunces", serif !important;
  display: block !important; margin-bottom: 3px !important;
}
.cs-val-item p {
  color: #d9cfe0 !important;
  font-size: 0.9rem !important;
  margin: 0 !important;
}

/* ── Footer: hide GP completely ───────────────────────────────────── */
.site-footer .site-info {
  display: none !important;
}


/* ════════════════════════════════════════════════════════════════════
   MISSING COMPONENT STYLES — all cs-* classes
   ════════════════════════════════════════════════════════════════════ */

/* ── Hero pill badge ─────────────────────────────────────────────── */
.cs-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: #fff !important;
  border: 1px solid var(--line-2, #e0d6dd) !important;
  border-radius: 100px !important;
  padding: 7px 16px !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  color: var(--plum-2, #6a5277) !important;
  box-shadow: var(--shadow-sm) !important;
  margin-bottom: 22px !important;
}
.cs-dot {
  width: 8px !important; height: 8px !important;
  border-radius: 50% !important;
  background: var(--sage) !important;
  box-shadow: 0 0 0 4px rgba(127,160,147,.2) !important;
  display: inline-block !important; flex-shrink: 0 !important;
}

/* ── Hero grid: 2-column layout ──────────────────────────────────── */
.cs-hero-grid {
  display: grid !important;
  grid-template-columns: 1.08fr 0.92fr !important;
  gap: 50px !important;
  align-items: center !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 0 26px !important;
}

/* ── Hero card ───────────────────────────────────────────────────── */
.cs-hero-card {
  background: #fff !important;
  border: 1px solid var(--line, #ece4e9) !important;
  border-radius: 24px !important;
  padding: 8px !important;
  box-shadow: var(--shadow, 0 22px 60px rgba(74,58,82,.12)) !important;
  position: relative !important;
}
.cs-hero-card-inner {
  background: linear-gradient(165deg, #f6f1f4, #fbf8f6) !important;
  border-radius: 18px !important;
  padding: 30px 28px !important;
}
.cs-hero-tagline {
  font-family: "Fraunces", serif !important;
  font-size: 1.5rem !important;
  color: var(--plum, #4a3a52) !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  margin-bottom: 18px !important;
}
.cs-hero-badge {
  position: absolute !important;
  bottom: -18px !important; right: -12px !important;
  background: var(--plum) !important;
  color: #fff !important;
  border-radius: 14px !important;
  padding: 12px 18px !important;
  box-shadow: var(--shadow) !important;
  font-size: 0.82rem !important;
}

/* ── Mini feature items inside hero card ─────────────────────────── */
.cs-mini-feat {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 0 !important;
  border-top: 1px solid var(--line, #ece4e9) !important;
}
.cs-mini-b {
  font-family: "Fraunces", serif !important;
  font-size: 0.98rem !important;
  color: var(--ink) !important;
  display: block !important;
  font-weight: 600 !important;
}
.cs-mini-s {
  color: var(--mute) !important;
  font-size: 0.84rem !important;
}

/* ── Quote/review cards ──────────────────────────────────────────── */
.cs-quote-card {
  background: #fff !important;
  border: 1px solid var(--line, #ece4e9) !important;
  border-radius: 18px !important;
  padding: 28px !important;
  box-shadow: var(--shadow-sm) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.cs-stars {
  color: var(--gold, #d6a85c) !important;
  font-size: 1rem !important;
  margin-bottom: 12px !important;
  letter-spacing: 2px !important;
}
.cs-quote-text {
  font-size: 0.98rem !important;
  color: var(--text, #2c2533) !important;
  font-style: italic !important;
  line-height: 1.6 !important;
  flex: 1 !important;
}
.cs-quote-who {
  margin-top: 16px !important;
  font-size: 0.86rem !important;
  color: var(--mute) !important;
  font-weight: 600 !important;
}

/* ── Match tool wrapper ──────────────────────────────────────────── */
.cs-matcher-wrap {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 24px !important;
  box-shadow: var(--shadow) !important;
  overflow: hidden !important;
  margin-top: 8px !important;
  max-width: 860px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ── Reveal animations ───────────────────────────────────────────── */
.cs-reveal-left {
  opacity: 0 !important;
  transform: translateX(-22px) !important;
  transition: opacity 0.55s cubic-bezier(0.22,0.84,0.44,1), transform 0.55s cubic-bezier(0.22,0.84,0.44,1) !important;
}
.cs-reveal-left.cs-in-view { opacity: 1 !important; transform: none !important; }
.cs-reveal-right {
  opacity: 0 !important;
  transform: translateX(22px) !important;
  transition: opacity 0.55s cubic-bezier(0.22,0.84,0.44,1), transform 0.55s cubic-bezier(0.22,0.84,0.44,1) !important;
}
.cs-reveal-right.cs-in-view { opacity: 1 !important; transform: none !important; }

/* ── chips container ─────────────────────────────────────────────── */
.cs-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 28px !important;
  justify-content: center !important;
}

/* ── Homepage hero section bg ────────────────────────────────────── */
.elementor-1 .elementor-element-a175c3h {
  background: radial-gradient(1100px 540px at 82% -8%, rgba(127,160,147,.18), transparent 60%),
    radial-gradient(900px 500px at -5% 115%, rgba(233,200,192,.32), transparent 58%),
    linear-gradient(160deg, #fbf8f6 0%, #f1ebf0 100%) !important;
  padding: 70px 0 90px !important;
}


/* ════════════════════════════════════════════════════════════════════
   DEFINITIVE FIXES — appended last to override all conflicts
   ════════════════════════════════════════════════════════════════════ */

/* ── 1. FAQ: default CLOSED state. JS (faq.js) overrides maxHeight inline ──
   When faq.js sets panel.style.maxHeight = null on close,
   this CSS value of 0 applies. When open, JS sets scrollHeight inline.   */
.cs-fa {
  max-height: 0;
  overflow: hidden !important;
  transition: max-height 0.35s ease !important;
  padding: 0 !important;
}
/* When open, JS sets maxHeight inline — also restore padding */
.cs-fitem.open .cs-fa {
  padding: 0 0 4px !important;
}
.cs-fa p {
  padding: 0 0 18px !important;
  margin: 0 !important;
  color: var(--mute, #6b5e77) !important;
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
}
/* FAQ item borders — clean lines only */
.cs-faq-wrap {
  max-width: 780px !important;
  margin: 0 auto !important;
}
.cs-fitem {
  background: #fff !important;
  border-radius: 14px !important;
  margin-bottom: 12px !important;
  overflow: visible !important;
  box-shadow: 0 2px 12px rgba(74,58,82,0.06) !important;
  border: 1px solid var(--line, #e4dce8) !important;
}
.cs-fq {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  padding: 20px 24px !important;
  background: none !important;
  border: none !important;
  font-family: "Fraunces", serif !important;
  font-size: 1.06rem !important;
  font-weight: 600 !important;
  color: var(--ink, #2c2333) !important;
  cursor: pointer !important;
  text-align: left !important;
  transition: color 0.15s !important;
}
.cs-fq:hover { color: var(--plum, #4a3a52) !important; }
.cs-fitem.open .cs-fq { color: var(--plum, #4a3a52) !important; }
.cs-fpl {
  flex: none !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  background: #f0eaf3 !important;
  color: var(--plum, #4a3a52) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.2rem !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  transition: transform 0.2s, background 0.15s !important;
  flex-shrink: 0 !important;
}
.cs-fitem.open .cs-fpl {
  transform: rotate(45deg) !important;
  background: var(--plum, #4a3a52) !important;
  color: #fff !important;
}
.cs-fa p:last-child { padding-bottom: 20px !important; }

/* ── 2. Match tool options: correct flex layout ─────────────────────── */
.cs-opt {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 14px 16px !important;
  border: 1.5px solid var(--line-2, #d0c4da) !important;
  border-radius: 12px !important;
  background: #fff !important;
  cursor: pointer !important;
  transition: border-color 0.15s, background 0.15s, transform 0.12s !important;
  font-size: 0.93rem !important;
  font-weight: 500 !important;
  color: var(--text, #2c2533) !important;
  text-align: left !important;
  width: 100% !important;
  font-family: inherit !important;
}
.cs-opt:hover {
  border-color: var(--sage, #7fa093) !important;
  background: #f7faf8 !important;
  transform: translateY(-1px) !important;
}
.cs-opt.sel {
  border-color: var(--sage-d, #5e8278) !important;
  background: linear-gradient(135deg, #eef5f1, #f7faf8) !important;
  box-shadow: 0 0 0 3px rgba(127,160,147,.15) !important;
}
/* Emoji span */
.cs-em {
  font-size: 1.25rem !important;
  flex: none !important;
  line-height: 1 !important;
  width: 28px !important;
  text-align: center !important;
}
.cs-em img { width: 1.25rem !important; height: 1.25rem !important; }
/* Checkmark circle — pushed to the right */
.cs-chk {
  margin-left: auto !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  border: 1.5px solid var(--line-2, #d0c4da) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: transparent !important;
  font-size: 0.65rem !important;
  flex-shrink: 0 !important;
  transition: background 0.15s, border-color 0.15s !important;
  background: transparent !important;
}
.cs-opt.sel .cs-chk {
  background: var(--sage-d, #5e8278) !important;
  border-color: var(--sage-d, #5e8278) !important;
  color: #fff !important;
}
/* Options grid */
.cs-opts-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 10px !important;
  margin-bottom: 6px !important;
}

/* ── 3. Match tool card header ───────────────────────────────────────── */
.cs-m-head {
  background: linear-gradient(150deg, var(--plum, #4a3a52), #382a40) !important;
  color: #fff !important;
  padding: 28px 32px !important;
  position: relative !important;
  overflow: hidden !important;
}
.cs-m-title {
  font-family: "Fraunces", serif !important;
  font-size: 1.45rem !important;
  color: #fff !important;
  font-weight: 600 !important;
  margin-bottom: 4px !important;
}
.cs-m-sub { color: #d9cfe0 !important; font-size: 0.93rem !important; }
.cs-m-prog {
  height: 5px !important;
  background: rgba(255,255,255,0.18) !important;
  border-radius: 10px !important;
  margin-top: 16px !important;
  overflow: hidden !important;
}
.cs-m-prog span {
  display: block !important;
  height: 100% !important;
  background: linear-gradient(90deg, var(--sage-2, #9bbfb5), var(--gold, #d6a85c)) !important;
  border-radius: 10px !important;
  transition: width 0.4s ease !important;
}
.cs-m-body { padding: 28px 32px !important; }
.cs-q-num {
  font-size: 0.76rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--sage-d, #5e8278) !important;
  margin-bottom: 8px !important;
}
.cs-q-title {
  font-family: "Fraunces", serif !important;
  font-size: 1.35rem !important;
  color: var(--ink, #2c2333) !important;
  font-weight: 600 !important;
  margin-bottom: 6px !important;
}
.cs-q-sub {
  color: var(--mute, #6b5e77) !important;
  font-size: 0.9rem !important;
  margin-bottom: 18px !important;
}
.cs-m-foot {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-top: 20px !important;
  gap: 12px !important;
}
.cs-m-foot .hint {
  font-size: 0.82rem !important;
  color: var(--mute, #6b5e77) !important;
}
.cs-lnk {
  background: none !important;
  border: none !important;
  color: var(--mute, #6b5e77) !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  font-size: 0.9rem !important;
  padding: 6px !important;
  font-family: inherit !important;
}
.cs-lnk:hover { color: var(--plum, #4a3a52) !important; }

/* ── 4. Match results cards ──────────────────────────────────────────── */
.cs-match-card {
  display: flex !important;
  gap: 16px !important;
  align-items: flex-start !important;
  border: 1.5px solid var(--line-2, #d0c4da) !important;
  border-radius: 16px !important;
  padding: 20px !important;
  margin-bottom: 12px !important;
  background: #fff !important;
  position: relative !important;
  transition: box-shadow 0.2s !important;
}
.cs-match-card.top {
  border-color: var(--sage-d, #5e8278) !important;
  background: linear-gradient(135deg, #f3f8f5, #fff) !important;
  box-shadow: 0 10px 28px rgba(95,129,116,.14) !important;
}
.cs-match-ava {
  width: 58px !important;
  height: 58px !important;
  border-radius: 14px !important;
  object-fit: cover !important;
  flex: none !important;
}
.cs-match-ava-init {
  width: 58px !important;
  height: 58px !important;
  border-radius: 14px !important;
  flex: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: "Fraunces", serif !important;
  font-size: 1.4rem !important;
  color: #fff !important;
  font-weight: 600 !important;
}
.cs-match-meta { flex: 1 !important; min-width: 0 !important; }
.cs-match-nm {
  font-family: "Fraunces", serif !important;
  font-size: 1.1rem !important;
  color: var(--ink) !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin-bottom: 2px !important;
}
.cs-match-pron {
  font-family: "Inter", sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  color: var(--plum-2, #6a5277) !important;
  background: #f0eaf3 !important;
  padding: 2px 8px !important;
  border-radius: 100px !important;
}
.cs-match-cred {
  font-size: 0.84rem !important;
  color: var(--mute) !important;
  margin-bottom: 8px !important;
}
.cs-match-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 5px !important;
  margin-bottom: 8px !important;
}
.cs-mt {
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  background: #eef5f1 !important;
  color: var(--sage-d) !important;
  padding: 3px 9px !important;
  border-radius: 100px !important;
}
.cs-mt.m { background: #f0eaf3 !important; color: var(--plum-2, #6a5277) !important; }
.cs-match-why {
  font-size: 0.84rem !important;
  color: var(--sage-d) !important;
  font-weight: 500 !important;
}
.cs-match-why::before { content: "✦ " !important; color: var(--gold) !important; }
.cs-scorebox {
  text-align: center !important;
  flex: none !important;
  width: 72px !important;
}
.cs-score-pct {
  font-family: "Fraunces", serif !important;
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  color: var(--sage-d) !important;
  line-height: 1 !important;
}
.cs-scorebox.top .cs-score-pct { color: var(--plum) !important; }
.cs-score-bar {
  height: 5px !important;
  background: var(--line) !important;
  border-radius: 10px !important;
  margin-top: 7px !important;
  overflow: hidden !important;
}
.cs-score-bar span {
  display: block !important;
  height: 100% !important;
  background: linear-gradient(90deg, var(--sage), var(--sage-d)) !important;
  border-radius: 10px !important;
}
.cs-score-lbl {
  font-size: 0.64rem !important;
  color: var(--mute) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-top: 5px !important;
  font-weight: 600 !important;
}
.cs-best-flag {
  position: absolute !important;
  top: -10px !important;
  left: 20px !important;
  background: var(--gold) !important;
  color: #2c2333 !important;
  font-size: 0.66rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 3px 10px !important;
  border-radius: 100px !important;
  box-shadow: var(--shadow-sm) !important;
}
.cs-result-cta {
  background: linear-gradient(150deg, var(--plum), #382a40) !important;
  border-radius: 16px !important;
  padding: 24px !important;
  text-align: center !important;
  color: #fff !important;
  margin-top: 20px !important;
}
.cs-result-cta h4 {
  font-family: "Fraunces", serif !important;
  color: #fff !important;
  font-size: 1.2rem !important;
  margin-bottom: 6px !important;
}
.cs-result-cta p { color: #d9cfe0 !important; font-size: 0.9rem !important; margin-bottom: 16px !important; }
.cs-result-big {
  font-family: "Fraunces", serif !important;
  font-size: 1.5rem !important;
  color: var(--ink) !important;
  margin-bottom: 16px !important;
}

/* ── 5. Ensure GeneratePress footer stays hidden ─────────────────────── */
.site-footer .site-info { display: none !important; }


/* ── FAQ: OPEN STATE via .cs-fitem.open class (set by functions.php inline JS) ── */
.cs-fitem.open .cs-fa {
  max-height: 800px !important;
  padding-bottom: 4px !important;
}
.cs-fitem.open .cs-fq { color: var(--plum, #4a3a52) !important; }
.cs-fitem.open .cs-fpl {
  transform: rotate(45deg) !important;
  background: var(--plum, #4a3a52) !important;
  color: #fff !important;
}


/* ════════════════════════════════════════════════════════════════════
   5-ISSUE FIX — Step cards, titles, about redundancy, FAQ padding
   ════════════════════════════════════════════════════════════════════ */

/* ── ISSUE 1: Step card cs-step layout fix ───────────────────────── */
/* cs-step contains: span.cs-step-num + div.cs-step-icon + h3 + p
   Layout: num top-left, icon top-right, then h3+p below full-width */
.cs-step {
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  grid-template-rows: auto auto !important;
  gap: 0 !important;
  margin-bottom: 18px !important;
  padding: 0 !important;
  align-items: start !important;
}
.cs-step .cs-step-num {
  grid-column: 1 !important;
  grid-row: 1 !important;
  margin-right: 0 !important;
}
.cs-step .cs-step-icon {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
.cs-step h3 {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  margin-top: 16px !important;
  margin-bottom: 8px !important;
  font-family: "Fraunces", serif !important;
  font-size: 1.18rem !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
}
.cs-step p {
  grid-column: 1 / -1 !important;
  grid-row: 3 !important;
  color: var(--mute) !important;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

/* Also fix for Specialties page cs-step (same structure) */
.elementor-4 .cs-step h3,
.elementor-1 .cs-step h3 { font-size: 1.1rem !important; }

/* ── ISSUE 2: Page hero titles centered ─────────────────────────── */
/* All inner-page hero section headings should be centered */
.elementor-element-oerinlg .elementor-heading-title,
.elementor-element-0hax2d2 .elementor-heading-title,
.elementor-element-0kphyil .elementor-heading-title,
.elementor-element-cvgauey .elementor-heading-title,
.elementor-element-t4jggct .elementor-heading-title,
.elementor-element-bp0 .elementor-heading-title,
.elementor-element-k3q3nw4 .elementor-heading-title,
.elementor-element-4laustm .elementor-heading-title,
.elementor-element-taqk2jf .elementor-heading-title,
.elementor-element-tu0orno .elementor-heading-title,
.elementor-element-7di0u1w .elementor-heading-title {
  text-align: center !important;
}
/* Also center all p tags in hero sections */
.elementor-element-oerinlg p,
.elementor-element-0hax2d2 p,
.elementor-element-0kphyil p,
.elementor-element-cvgauey p,
.elementor-element-t4jggct p,
.elementor-element-bp0 p,
.elementor-element-k3q3nw4 p,
.elementor-element-4laustm p,
.elementor-element-taqk2jf p,
.elementor-element-tu0orno p,
.elementor-element-7di0u1w p {
  text-align: center !important;
}
/* Center eyebrow labels in heroes */
.elementor-element-oerinlg .elementor-widget-container,
.elementor-element-0hax2d2 .elementor-widget-container,
.elementor-element-0kphyil .elementor-widget-container,
.elementor-element-cvgauey .elementor-widget-container,
.elementor-element-t4jggct .elementor-widget-container,
.elementor-element-bp0 .elementor-widget-container,
.elementor-element-k3q3nw4 .elementor-widget-container,
.elementor-element-4laustm .elementor-widget-container,
.elementor-element-taqk2jf .elementor-widget-container,
.elementor-element-tu0orno .elementor-widget-container,
.elementor-element-7di0u1w .elementor-widget-container {
  text-align: center !important;
}

/* ── ISSUE 3: About page — hide redundant a7l1ipm section ───────── */
/* Section a7l1ipm repeats the hero heading "Anti-oppressive care..." */
/* Already handled by JS (fixAbout), but add CSS fallback */
.elementor-7 .elementor-element-a7l1ipm { display: none !important; }

/* Find Your Match: hero banner hidden via existing w1tpl9j rule above */

/* ── ISSUE 5: FAQ answer padding — add side padding so text breathes */
.cs-fa {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.cs-fa p {
  padding: 0 24px 20px !important;
  margin: 0 !important;
}


/* ── Find Your Match: hide ONLY the purple hero banner (not the nav) ─ */
body.page-id-2 .elementor-element.elementor-element-pkhmyji { display: none !important; }
/* Remove extra top padding since hero is gone */
body.page-id-2 .elementor-element.elementor-element-eg3mz4h { padding-top: 40px !important; }


/* ============ Elementor-era additions (restored) ============ */
.cs-center-icon .elementor-icon{margin-left:auto !important;margin-right:auto !important;}
.cs-has-mega > a .hfe-menu-toggle,.cs-has-mega > a .sub-arrow,.cs-has-mega > a .elementor-menu-toggle{display:none !important;}
.cs-has-mega > a.hfe-menu-item{padding-right:20px !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0L10 0L5 6Z' fill='%23a07d86'/%3E%3C/svg%3E") !important;background-repeat:no-repeat !important;background-position:right 2px center !important;background-size:9px 6px !important;}
.cs-has-mega:hover > a.hfe-menu-item{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 6L10 6L5 0Z' fill='%236b2f3d'/%3E%3C/svg%3E") !important;}
.cs-mega-wrap{position:fixed;left:0;right:0;top:129px;display:none;z-index:100000;}
body.admin-bar .cs-mega-wrap{top:161px;}
.cs-has-mega.cs-open .cs-mega-wrap{display:block;}
.cs-mega-wrap a[href]:hover{background:#f9edf0 !important;border-radius:10px;}
.cs-mega-promo > .elementor-widget-wrap,.cs-mega-promo > .elementor-element-populated{background:linear-gradient(160deg,#6b2f3d,#3f1c25) !important;border-radius:16px !important;padding:26px !important;}
.cs-mega-promo a[href]:hover{background:transparent !important;}
.cs-mega-promo .elementor-heading-title,.cs-mega-promo .elementor-widget-text-editor,.cs-mega-promo .elementor-widget-text-editor *{color:#ffffff !important;}
.cs-mega-promo .elementor-icon{color:#ebc4cf !important;}
.cs-mega-promo .elementor-icon svg{fill:#ebc4cf !important;}
.cs-mega-promo .elementor-button{background:#ffffff !important;color:#6b2f3d !important;}
.cs-mega-promo .elementor-button .elementor-button-text,.cs-mega-promo .elementor-button .elementor-button-content-wrapper{color:#6b2f3d !important;}
.elementor-element-49bbe06 .elementor-widget-icon-box{margin-top:0 !important;}

/* ============ Homepage design-match pass 1 ============ */
/* Compact header */
.elementor-location-header .elementor-section.elementor-top-section{padding-top:14px !important;padding-bottom:14px !important;}

/* Eyebrow pill */
.cs-eyebrow-pill{display:inline-flex !important;align-items:center;gap:9px;background:#fff;border:1px solid #ecdbe0;border-radius:100px;padding:8px 16px;font-size:.82rem;font-weight:700;color:#964256;box-shadow:0 8px 22px rgba(107,47,61,.08);width:fit-content !important;max-width:100% !important;align-self:flex-start !important;}
.cs-eyebrow-pill::before{content:"";width:9px;height:9px;border-radius:50%;background:#964256;box-shadow:0 0 0 4px rgba(150,66,86,.16);flex:none;}
.cs-eyebrow-plain{font-weight:700;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#ebc4cf;}

/* Hero image frame + floating badges */
.cs-hero-media{position:relative !important;}
.cs-hero-photo img{border:8px solid #fff !important;border-radius:28px !important;box-shadow:0 30px 70px rgba(107,47,61,.20) !important;}
.cs-price-num{position:absolute !important;top:18px;right:-8px;z-index:6;margin:0 !important;background:#6b2f3d;color:#fff !important;font-family:'Newsreader',serif !important;font-weight:700 !important;font-size:1.5rem !important;line-height:1;padding:14px 18px 2px;border-radius:16px 16px 0 0;box-shadow:0 16px 34px rgba(107,47,61,.3);}
.cs-price-sub{position:absolute !important;top:60px;right:-8px;z-index:6;margin:0 !important;background:#6b2f3d;color:#f2d7de !important;font-size:.76rem !important;padding:0 18px 14px;border-radius:0 0 16px 16px;box-shadow:0 16px 34px rgba(107,47,61,.3);text-align:center;}
.cs-quote-card{position:absolute !important;bottom:22px;left:-24px;z-index:6;max-width:236px;background:#fff !important;border-radius:18px;padding:16px 20px !important;box-shadow:0 18px 40px rgba(107,47,61,.18);font-family:'Newsreader',serif !important;font-size:1.05rem !important;color:#3a2028 !important;line-height:1.35;}

/* Empathy cards */
.cs-empathy-card{background:#fff !important;border:1px solid #f0e2e6 !important;border-radius:18px !important;padding:26px !important;box-shadow:0 10px 30px rgba(107,47,61,.06) !important;}

/* "Do you ever feel" / "What healing" panels */
.cs-feel-col{background:linear-gradient(160deg,#ebc4cf,#f6eeea) !important;border-radius:24px !important;padding:40px !important;}
.cs-heal-col{background:#fff !important;border:1px solid #f0e2e6 !important;border-radius:24px !important;padding:40px !important;box-shadow:0 12px 34px rgba(107,47,61,.06) !important;}


/* ---- Hero badge corrections (target the inner-section wrappers) ---- */
.cs-price-num,.cs-price-sub{position:static !important;background:transparent !important;box-shadow:none !important;padding:0 !important;top:auto !important;right:auto !important;}
.cs-price-badge{position:absolute !important;top:16px;right:-10px;width:auto !important;z-index:6;background:#6b2f3d !important;border-radius:16px !important;box-shadow:0 16px 34px rgba(107,47,61,.3) !important;padding:12px 20px !important;text-align:center;}
.cs-price-badge > .elementor-widget-wrap,.cs-price-badge .elementor-widget-wrap{padding:0 !important;background:transparent !important;}
.cs-price-num,.cs-price-num .elementor-heading-title{color:#fff !important;font-family:'Newsreader',serif !important;font-weight:700 !important;font-size:1.5rem !important;line-height:1.1 !important;margin:0 !important;}
.cs-price-sub,.cs-price-sub *{color:#e7c9d1 !important;font-size:.76rem !important;margin:0 !important;}


/* ---- Hero media: top-align so badges overlap the image corners ---- */
.cs-hero-media > .elementor-widget-wrap{align-content:flex-start !important;}
.cs-quote-card{bottom:auto !important;top:calc(100% - 150px);}


/* ---- Homepage pass 2: match cards + hero ring ---- */
.cs-match-card{background:rgba(255,255,255,.08) !important;border:1px solid rgba(255,255,255,.14) !important;border-radius:16px !important;padding:16px 18px !important;box-shadow:none !important;}
.cs-match-card .elementor-icon-box-title,.cs-match-card .elementor-icon-box-title *{color:#ffffff !important;}
.cs-match-card .elementor-icon-box-description{color:#e7c9d1 !important;}
.cs-match-card .elementor-icon-box-icon{background:rgba(235,196,207,.2) !important;border-radius:11px !important;}
.cs-match-card .elementor-icon-box-icon .elementor-icon,.cs-match-card .elementor-icon-box-icon i,.cs-match-card .elementor-icon-box-icon svg{color:#ebc4cf !important;fill:#ebc4cf !important;}

@keyframes cs-spin{to{transform:rotate(360deg);}}
.cs-hero-ring{position:absolute !important;top:-18px;left:-22px;width:88px !important;height:88px !important;min-height:0 !important;border-radius:50% !important;background:conic-gradient(from 210deg,#6b2f3d,#964256,#ebc4cf,#6b2f3d) !important;box-shadow:0 12px 28px rgba(107,47,61,.22);z-index:7;animation:cs-spin 26s linear infinite;}
.cs-hero-ring::after{content:"";position:absolute;inset:14px;border-radius:50%;background:#f6eeea;}
.cs-hero-ring .elementor-widget-container{height:100%;}


/* ---- Hero image: portrait crop to match design (4:5) ---- */
.cs-hero-photo img{aspect-ratio:4/5 !important;object-fit:cover !important;height:auto !important;width:100% !important;display:block;}


/* ---- Header: compact height + CTA button to match design ---- */
header .elementor-section.elementor-top-section{padding-top:12px !important;padding-bottom:12px !important;min-height:0 !important;}
header .elementor-widget-image img{max-height:52px;width:auto;}
header a.elementor-button,header .elementor-button{padding:11px 22px !important;font-size:15px !important;font-weight:700 !important;background-color:transparent !important;background-image:linear-gradient(135deg,#964256,#6b2f3d) !important;color:#fff !important;box-shadow:0 12px 26px rgba(107,47,61,.26) !important;border:none !important;border-radius:100px !important;}
header .elementor-button .elementor-button-text,header .elementor-button span{color:#fff !important;}

/* cachebust 1784155450895 */

/* CS hero ring on photo */
.cs-hero-ring{display:none !important;}
.cs-hero-photo{position:relative !important;}
.cs-hero-photo::before{content:"";position:absolute;top:-20px;left:-24px;width:88px;height:88px;border-radius:50%;background:conic-gradient(from 210deg,#6b2f3d,#964256,#ebc4cf,#6b2f3d);box-shadow:0 12px 28px rgba(107,47,61,.22);z-index:5;pointer-events:none;}
.cs-hero-photo::after{content:"";position:absolute;top:-6px;left:-10px;width:60px;height:60px;border-radius:50%;background:#f8eef1;z-index:6;pointer-events:none;}

/* CS empathy+feel+heal refinements */
.cs-empathy-card .elementor-icon{background:#f3e2e8 !important;}
.cs-empathy-card .elementor-icon,.cs-empathy-card .elementor-icon i{color:#964256 !important;}
.cs-empathy-card .elementor-icon svg{fill:#964256 !important;}
.cs-feel-col .elementor-icon-list-item{background:rgba(255,255,255,.6) !important;border-radius:12px !important;padding:11px 16px !important;margin-bottom:10px !important;}
.cs-heal-col .elementor-icon-list-icon i{display:none !important;}
.cs-heal-col .elementor-icon-list-icon::after{content:"\2192";color:#964256;font-weight:700;font-size:1.05rem;line-height:1.5;}

/* CS 60sec intro readable */
.elementor-element-53dddc3,.elementor-element-53dddc3 p{color:#ecd3da !important;}

/* CS specialty pills */
.cs-pill-list .elementor-icon-list-items{flex-wrap:wrap !important;justify-content:center !important;gap:12px !important;}
.cs-pill-list .elementor-icon-list-item{background:#fff !important;border-radius:100px !important;padding:11px 20px !important;box-shadow:0 8px 22px rgba(107,47,61,.08) !important;margin:0 !important;}
.cs-pill-list .elementor-icon-list-item:hover{box-shadow:0 12px 26px rgba(107,47,61,.16) !important;}

/* CS final CTA intro readable */
.elementor-element-27e5607,.elementor-element-27e5607 p{color:#ecd3da !important;}

/* CS footer col1 left-align */
.elementor-element-cs789697,.elementor-element-cs789697 .elementor-widget-container{text-align:left !important;}

/* CS design-match: fonts, footer width, group band */
h1,h2,h3,h4,h5,h6,.elementor-heading-title,.elementor-widget-heading .elementor-heading-title,.site-title a{font-family:"Newsreader",Georgia,serif !important;}
.site-footer{padding:0 !important;}
.cs-story-imgband img{height:360px !important;object-fit:cover !important;width:100% !important;}

/* CS card gaps refinement */
.cs-empathy-card{background:transparent !important;box-shadow:none !important;padding:0 !important;border-radius:0 !important;}
.cs-empathy-card > .elementor-element-populated{background:#fff !important;border-radius:18px !important;box-shadow:0 10px 30px rgba(107,47,61,.06) !important;padding:26px !important;margin:9px !important;}
.cs-testimonials .elementor-column > .elementor-widget-wrap{margin-left:10px !important;margin-right:10px !important;}
.cs-match-card{margin-bottom:14px !important;}

/* CS price badge compact */
.cs-price-badge{max-width:180px !important;padding:18px 19px !important;}

/* CS kicker labels sans-serif */
.elementor-element-94ff210 .elementor-heading-title,.elementor-element-7e772ef .elementor-heading-title,.elementor-element-8b3f287 .elementor-heading-title,.elementor-element-b3f81a0 .elementor-heading-title,.elementor-element-c8e2d5f .elementor-heading-title,.elementor-element-da2207a .elementor-heading-title,.elementor-element-6afed00 .elementor-heading-title{font-family:"Mulish",sans-serif !important;letter-spacing:2.25px !important;font-weight:700 !important;}
.cs-eyebrow-pill .elementor-heading-title{font-family:"Mulish",sans-serif !important;}

/* CS explore link + cta width */
.elementor-element-d4dccfb a.elementor-button{background:transparent !important;background-image:none !important;padding:0 !important;border-radius:0 !important;box-shadow:none !important;}
.elementor-element-d4dccfb a.elementor-button,.elementor-element-d4dccfb a.elementor-button .elementor-button-text{color:#964256 !important;}
.elementor-element-d251938 .elementor-heading-title{max-width:560px !important;margin-left:auto !important;margin-right:auto !important;}

/* CS 60sec heading width */
.elementor-element-b699a38 .elementor-heading-title{max-width:420px !important;}

/* CS story name badge */
.elementor-element-b32ac9c{position:relative !important;}
.elementor-element-b32ac9c::before{content:"Sarah Stapleton";position:absolute;left:18px;bottom:22px;width:206px;box-sizing:border-box;background:#6b2f3d;color:#fff;font-family:"Newsreader",serif;font-weight:700;font-size:16px;line-height:1.35;padding:14px 20px 5px;border-radius:14px 14px 0 0;z-index:6;box-shadow:0 14px 30px rgba(107,47,61,.28);}
.elementor-element-b32ac9c::after{content:"Founder & Clinical Director";position:absolute;left:18px;bottom:-14px;width:206px;box-sizing:border-box;background:#6b2f3d;color:#e7c9d1;font-family:"Mulish",sans-serif;font-size:12px;line-height:1.35;white-space:nowrap;padding:5px 20px 14px;border-radius:0 0 14px 14px;z-index:6;box-shadow:0 14px 30px rgba(107,47,61,.28);}

/* CS footer headings sans */
.elementor-element-cs789698 .elementor-heading-title,.elementor-element-cs7896919 .elementor-heading-title{font-family:"Mulish",sans-serif !important;letter-spacing:1.5px !important;font-weight:700 !important;}

/* CS hero button fixes */
.elementor-element-1e30e96 a.elementor-button,.elementor-element-1e30e96 .elementor-button-content-wrapper,.elementor-element-1e30e96 .elementor-button-text{white-space:nowrap !important;}
.elementor-element-f41e387 a.elementor-button{padding-left:30px !important;padding-right:30px !important;}

/* CS topright + phone */
header a.elementor-button{padding-top:13px !important;padding-bottom:13px !important;}
header .menu-item a[href^="tel:"]{font-weight:700 !important;color:#3a2028 !important;}

/* CS round-N hero+sections fixes */
.elementor-element-1e30e96 a.elementor-button{background-image:linear-gradient(135deg,#964256,#6b2f3d) !important;box-shadow:0 16px 34px rgba(107,47,61,.3) !important;}
.elementor-element-a477e13 .elementor-heading-title{max-width:680px !important;margin-left:auto !important;margin-right:auto !important;}
.cs-feel-col > .elementor-element-populated{background:transparent !important;}
.cs-match-card .elementor-icon{background:rgba(255,255,255,.1) !important;border-radius:10px !important;}
.cs-story-imgband img{border:8px solid #fff !important;box-shadow:0 24px 55px rgba(107,47,61,.16) !important;}
.elementor-element-cs789698 .elementor-heading-title,.elementor-element-cs7896919 .elementor-heading-title{text-align:left !important;}

/* CS quote shadow */
.cs-quote-card{box-shadow:0 18px 40px rgba(107,47,61,.18) !important;}

/* CS nav right-align */
.elementor-element-h187566 .hfe-nav-menu__layout-horizontal{justify-content:flex-end !important;}
.elementor-element-h187566 ul.hfe-nav-menu{margin-left:auto !important;margin-right:0 !important;}


/* CS match check bullets filled circle */
.elementor-element-4c8d077 .elementor-icon-list-icon{background:#964256;border-radius:50%;width:22px;height:22px;min-width:22px;display:inline-flex;align-items:center;justify-content:center;margin-right:9px;}
.elementor-element-4c8d077 .elementor-icon-list-icon i{color:#fff !important;font-size:12px;line-height:1;}
.elementor-element-4c8d077 .elementor-icon-list-icon i::before{content:"\2713" !important;font-family:Arial,"Mulish",sans-serif !important;font-weight:700;}


/* CS price-sub color fix */
.elementor-element-dc656f5,.elementor-element-dc656f5 p{color:#e7c9d1 !important;}


/* CS therapy-styles hub */
.cs-th-hero{position:relative;overflow:hidden}
.cs-th-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 460px at 80% -10%,rgba(150,66,86,.45),rgba(0,0,0,0) 62%);pointer-events:none;z-index:0}
.cs-th-hero > .elementor-container{position:relative;z-index:1}
.cs-th-col{transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 8px 26px rgba(107,47,61,.06)}
.cs-th-col:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(107,47,61,.12)}
.cs-th-card .elementor-icon{background:#f3e2e8;width:48px;height:48px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px}
.cs-th-card .elementor-icon i{color:#964256}
.cs-th-card .elementor-icon-box-description::after{content:"Learn more →";display:block;margin-top:16px;color:#964256;font-weight:700;font-family:"Mulish",sans-serif}
.cs-th-card:hover .elementor-icon-box-description::after{text-decoration:underline}


/* CS specialty hero + image */
.cs-hero-dark{background-image:radial-gradient(900px 460px at 82% -10%,rgba(150,66,86,.5),rgba(0,0,0,0) 62%),linear-gradient(165deg,#6b2f3d,#3f1c25) !important}
.cs-spec-imgband .elementor-widget-image{margin-top:-52px;position:relative;z-index:2}
.cs-spec-imgband img{border-radius:16px;border:9px solid #fff;box-shadow:0 26px 60px rgba(58,32,40,.26);display:block;width:100%}


/* CS profile hero */
.cs-profile-hero{position:relative;overflow:hidden}
.cs-profile-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 460px at 85% -10%,rgba(150,66,86,.45),rgba(0,0,0,0) 62%);pointer-events:none;z-index:0}
.cs-profile-hero > .elementor-container{position:relative;z-index:1}
.cs-profile-photo img{border-radius:18px;box-shadow:0 24px 55px rgba(20,10,15,.32);display:block;width:100%}


/* CS page-hero (HTML-block standalone pages) */
.cs-page-hero{background:radial-gradient(900px 460px at 80% -10%,rgba(150,66,86,.5),rgba(0,0,0,0) 62%),linear-gradient(165deg,#6b2f3d,#3f1c25) !important;padding:74px 26px 84px !important;text-align:center;position:relative;overflow:hidden}
.cs-page-hero .cs-container{max-width:1180px;margin:0 auto;text-align:center;position:relative;z-index:1}
.cs-page-hero h1{color:#ffffff !important}
.cs-page-hero .cs-eyebrow{color:#e7b7c3 !important}
.cs-page-hero .cs-hero-sub{color:#f1dee3 !important}


/* CS page-hero full-bleed + body bg */
html body{background:#faf6f4 !important}
.cs-page-hero{width:100vw !important;max-width:100vw !important;margin-left:calc(50% - 50vw) !important;margin-right:calc(50% - 50vw) !important}


/* CS interior body light + no hscroll */
html body.page:not(.home){background:#faf6f4 !important}
html{overflow-x:hidden}
