/*
Theme Name: Psychare Child – Harmony
Theme URI: https://harmonyclinicaltherapy.gr
Author: Harmony Clinical Therapy / SlashCreative
Template: psychare
Author URI: https://themeforest.net/user/slashcreative
Description: Child theme customisations for Harmony Clinical Therapy.
License: Themeforest Split Licence
Text Domain: psychare
Version: 1.03
Domain Path: /languages
*/

/* ==========================================================
   HARMONY CLINICAL THERAPY — DESIGN SYSTEM v0.16
   Approved palette + button/responsive foundation
   ========================================================== */

:root {
  /* Approved Harmony palette */
  --harmony-aqua: #78C7CC;
  --harmony-aqua-soft: #EAF6F6;
  --harmony-leaf: #79B89A;
  --harmony-blue: #2F7897;
  --harmony-blue-hover: #286781;

  /* AI Parenting accent */
  --harmony-ai: #B97962;
  --harmony-ai-hover: #9F614D;

  /* Neutrals */
  --harmony-ink: #243438;
  --harmony-text: #42575C;
  --harmony-muted: #6B7C80;
  --harmony-bg: #FAFCFB;
  --harmony-surface: #FFFFFF;
  --harmony-border: #D8E8E8;

  /* Shape & spacing */
  --harmony-radius-sm: 10px;
  --harmony-radius-md: 16px;
  --harmony-radius-pill: 999px;
  --harmony-shadow-soft: 0 10px 30px rgba(36, 52, 56, 0.09);

  /* Buttons */
  --harmony-button-height: 54px;
  --harmony-button-pad-x: 30px;

  /* Shared page layout — v0.8 locked standard */
  --harmony-content-max: 1360px;
  --harmony-page-gutter: 56px;
  --harmony-section-y: clamp(44px, 4.2vw, 64px);
  --harmony-section-y-compact: clamp(36px, 3.4vw, 52px);
  --harmony-heading-font: "Manrope", "Segoe UI", Arial, sans-serif;
}

/* Better keyboard accessibility site-wide */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.elementor-button:focus-visible {
  outline: 3px solid rgba(47, 120, 151, 0.30);
  outline-offset: 3px;
}

/* ----------------------------------------------------------
   Primary buttons — Elementor + Psychare theme
   ---------------------------------------------------------- */
.elementor-button,
a.elementor-button,
.btn--primary,
.btn-site,
.nav__list .button__nav_1 {
  min-height: var(--harmony-button-height);
  padding: 14px var(--harmony-button-pad-x);
  border-radius: var(--harmony-radius-pill);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.elementor-button,
a.elementor-button,
.btn--primary,
.btn-site,
.nav__list .button__nav_1 {
  background-color: var(--harmony-blue);
  border-color: var(--harmony-blue);
  color: #fff;
}

.elementor-button:hover,
a.elementor-button:hover,
.btn--primary:hover,
.btn-site:hover,
.nav__list .button__nav_1:hover {
  background-color: var(--harmony-blue-hover);
  border-color: var(--harmony-blue-hover);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47, 120, 151, 0.20);
  opacity: 1;
}

.elementor-button:active,
a.elementor-button:active,
.btn--primary:active,
.btn-site:active,
.nav__list .button__nav_1:active {
  transform: translateY(0);
  box-shadow: none;
}

/* Secondary/outline buttons */
.btn--secondary,
.nav__list .button__nav_2,
.harmony-button-secondary .elementor-button {
  min-height: var(--harmony-button-height);
  padding: 14px var(--harmony-button-pad-x);
  border-radius: var(--harmony-radius-pill);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 2px solid var(--harmony-blue);
  color: var(--harmony-blue);
  font-weight: 700;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, color 180ms ease;
}

.btn--secondary:hover,
.nav__list .button__nav_2:hover,
.harmony-button-secondary .elementor-button:hover {
  background: var(--harmony-blue);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47, 120, 151, 0.16);
}

/* AI Parenting accent class.
   Later we can apply harmony-ai-button to the menu item or CTA. */
.harmony-ai-button > a,
a.harmony-ai-button,
.harmony-ai-button .elementor-button {
  background: var(--harmony-ai) !important;
  border-color: var(--harmony-ai) !important;
  color: #fff !important;
  border-radius: var(--harmony-radius-pill) !important;
}

.harmony-ai-button > a:hover,
a.harmony-ai-button:hover,
.harmony-ai-button .elementor-button:hover {
  background: var(--harmony-ai-hover) !important;
  border-color: var(--harmony-ai-hover) !important;
  color: #fff !important;
}

/* ----------------------------------------------------------
   Responsive base
   ---------------------------------------------------------- */
@media (max-width: 767px) {
  :root {
    --harmony-button-height: 52px;
    --harmony-button-pad-x: 24px;
  }

  .elementor-button,
  a.elementor-button,
  .btn--primary,
  .btn-site,
  .btn--secondary,
  .nav__list .button__nav_1,
  .nav__list .button__nav_2 {
    font-size: 15px;
    min-height: var(--harmony-button-height);
  }

  /* Utility class for CTA buttons that should span the mobile column. */
  .harmony-mobile-full .elementor-button,
  a.harmony-mobile-full,
  .harmony-mobile-full.btn--primary,
  .harmony-mobile-full.btn-site {
    width: 100%;
    max-width: 100%;
  }
}

/* Reduced-motion accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}


/* ==========================================================
   HARMONY BIOGRAPHY PAGE — v0.12
   Scoped to .harmony-bio so it does not alter other pages.
   ========================================================== */
.harmony-bio {
  --bio-max: var(--harmony-content-max);
  color: var(--harmony-text);
  background: var(--harmony-bg);
  overflow: hidden;
}

.harmony-bio *,
.harmony-bio *::before,
.harmony-bio *::after {
  box-sizing: border-box;
}

.harmony-bio__wrap {
  width: min(var(--bio-max), calc(100% - var(--harmony-page-gutter)));
  margin-inline: auto;
}

.harmony-bio__hero {
  padding: clamp(50px, 4.8vw, 72px) 0;
  background:
    radial-gradient(circle at 8% 12%, rgba(120, 199, 204, .16), transparent 28%),
    linear-gradient(135deg, #ffffff 0%, #f7fbfa 100%);
}

.harmony-bio__hero-grid {
  display: grid;
  grid-template-columns: minmax(320px, .86fr) minmax(0, 1.14fr);
  gap: clamp(38px, 4.3vw, 62px);
  align-items: center;
}

.harmony-bio__photo-card {
  position: relative;
  max-width: 520px;
  margin-inline: auto;
  isolation: isolate;
}

/* Decorative dot field inspired by the approved Psychare layout,
   recoloured to the Harmony aqua used by the photo outline. */
.harmony-bio__photo-card::before {
  content: "";
  position: absolute;
  width: 190px;
  height: 190px;
  left: -74px;
  top: -42px;
  z-index: 0;
  opacity: .72;
  background-image: radial-gradient(circle, rgba(120, 199, 204, .72) 2.1px, transparent 2.4px);
  background-size: 20px 20px;
  pointer-events: none;
}

.harmony-bio__photo-accent {
  position: absolute;
  inset: 24px -22px -24px 24px;
  border: 1px solid rgba(120, 199, 204, .28);
  border-radius: 30px;
  z-index: 1;
}

.harmony-bio__photo {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 26px;
  box-shadow: 0 24px 60px rgba(36, 52, 56, .16);
}

.harmony-bio__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-bio__eyebrow-line {
  width: 62px;
  height: 1px;
  flex: 0 0 62px;
  background: rgba(120, 199, 204, .88);
}

.harmony-bio__eyebrow-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}

.harmony-bio h1,
.harmony-bio h2,
.harmony-bio h3 {
  color: var(--harmony-ink);
  margin-top: 0;
  font-family: var(--harmony-heading-font);
  font-weight: 700;
}

.harmony-bio h1 {
  margin-bottom: 10px;
  font-size: clamp(44px, 5.2vw, 68px);
  line-height: 1.02;
  letter-spacing: -.03em;
}

.harmony-bio__intro-label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 24px;
  color: var(--harmony-blue);
  font-family: var(--harmony-heading-font);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.harmony-bio__intro-label::before {
  content: "";
  flex: 0 0 68px;
  height: 1px;
  background: rgba(120, 199, 204, .85);
}

.harmony-bio p {
  font-size: 17px;
  line-height: 1.78;
  margin: 0 0 18px;
}

/* v0.7 readability trial: justify only the wider long-form biography copy.
   Cards, labels, lists and CTA copy remain left-aligned for scanability. */
.harmony-bio__intro > p,
.harmony-bio__prose > p,
.harmony-bio__approach-card p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}

.harmony-bio__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.harmony-bio__chips span {
  padding: 10px 14px;
  border: 1px solid var(--harmony-border);
  background: var(--harmony-surface);
  color: var(--harmony-blue);
  border-radius: var(--harmony-radius-pill);
  font-size: 13px;
  font-weight: 700;
}

.harmony-bio__section {
  padding: var(--harmony-section-y) 0;
}

.harmony-bio__section--soft {
  background: #f3f8f7;
}

.harmony-bio__section--aqua {
  background: linear-gradient(135deg, #eaf6f6 0%, #f7fbfa 100%);
}

.harmony-bio__section-heading {
  max-width: none;
  margin-bottom: 24px;
}

.harmony-bio__section-heading h2,
.harmony-bio__split h2,
.harmony-bio__training-grid h2,
.harmony-bio__approach-card h2,
.harmony-bio__cta h2 {
  margin-bottom: 14px;
  font-size: clamp(30px, 3.6vw, 44px);
  line-height: 1.13;
  letter-spacing: -.025em;
}

.harmony-bio__cards {
  display: grid;
  gap: 20px;
}

.harmony-bio__cards--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.harmony-bio__card {
  position: relative;
  padding: 30px;
  background: var(--harmony-surface);
  border: 1px solid rgba(216, 232, 232, .95);
  border-radius: 20px;
  box-shadow: 0 12px 36px rgba(36, 52, 56, .06);
}


.harmony-bio__card h3 {
  margin-bottom: 10px;
  font-size: 22px;
  line-height: 1.25;
}

.harmony-bio__card p {
  margin-bottom: 0;
  font-size: 15.5px;
  line-height: 1.7;
}

.harmony-bio__split,
.harmony-bio__training-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(32px, 4.2vw, 58px);
  align-items: start;
}

.harmony-bio__prose {
  padding-left: 30px;
  border-left: 3px solid var(--harmony-aqua);
}

.harmony-bio__lede {
  max-width: 570px;
}

.harmony-bio__training-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 11px;
}

.harmony-bio__training-list li {
  position: relative;
  padding: 16px 20px 16px 48px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(120, 199, 204, .32);
  border-radius: 16px;
  color: var(--harmony-ink);
  font-size: 16px;
  line-height: 1.5;
}

.harmony-bio__training-list li::before {
  content: "✓";
  position: absolute;
  left: 20px;
  top: 15px;
  color: var(--harmony-leaf);
  font-weight: 900;
}

.harmony-bio__approach-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 30px;
  padding: clamp(32px, 4vw, 48px);
  background: var(--harmony-surface);
  border: 1px solid var(--harmony-border);
  border-radius: 26px;
  box-shadow: var(--harmony-shadow-soft);
}

.harmony-bio__approach-mark {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  background: var(--harmony-aqua-soft);
  color: var(--harmony-blue);
  border-radius: 50%;
  font-size: 58px;
  line-height: 1;
  font-family: Georgia, serif;
}

.harmony-bio__cta {
  padding: var(--harmony-section-y-compact) 0;
  background: var(--harmony-ink);
  color: #fff;
}

.harmony-bio__cta .harmony-bio__eyebrow {
  color: var(--harmony-aqua);
}

.harmony-bio__cta h2,
.harmony-bio__cta p {
  color: #fff;
}

.harmony-bio__cta p {
  margin-bottom: 0;
  max-width: 740px;
  opacity: .86;
}

.harmony-bio__cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 42px;
  align-items: center;
}

.harmony-bio__button {
  min-height: 54px;
  padding: 15px 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--harmony-radius-pill);
  background: var(--harmony-aqua);
  border: 2px solid var(--harmony-aqua);
  color: var(--harmony-ink) !important;
  font-size: 15px;
  font-weight: 800;
  text-decoration: none !important;
  white-space: nowrap;
  transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.harmony-bio__button:hover {
  background: #93d4d8;
  border-color: #93d4d8;
  color: var(--harmony-ink) !important;
  transform: translateY(-2px);
}

/* Approved wide-screen rhythm: keep the full-width credentials heading on one line when space allows. */
@media (min-width: 1101px) {
  .harmony-bio__section-heading h2 {
    white-space: nowrap;
  }
}

@media (max-width: 960px) {
  .harmony-bio__hero-grid,
  .harmony-bio__split,
  .harmony-bio__training-grid,
  .harmony-bio__cta-inner {
    grid-template-columns: 1fr;
  }

  .harmony-bio__hero-grid {
    gap: 44px;
  }

  .harmony-bio__photo-card {
    width: min(100%, 440px);
  }

  .harmony-bio__cards--three {
    grid-template-columns: 1fr;
  }

  .harmony-bio__prose {
    padding-left: 22px;
  }

  .harmony-bio__cta-inner {
    align-items: start;
  }

  .harmony-bio__button {
    width: fit-content;
  }
}

@media (max-width: 640px) {
  .harmony-bio__wrap {
    width: min(var(--bio-max), calc(100% - 30px));
  }

  .harmony-bio__hero,
  .harmony-bio__section {
    padding: 44px 0;
  }

  .harmony-bio__photo-accent {
    inset: 16px -10px -16px 16px;
  }

  .harmony-bio__photo-card::before {
    width: 130px;
    height: 130px;
    left: -24px;
    top: -24px;
    background-size: 17px 17px;
  }

  .harmony-bio p {
    font-size: 16px;
  }

  .harmony-bio__intro > p,
  .harmony-bio__prose > p,
  .harmony-bio__approach-card p {
    text-align: left;
  }

  .harmony-bio__card {
    padding: 27px 24px;
  }

  .harmony-bio__approach-card {
    grid-template-columns: 1fr;
  }

  .harmony-bio__approach-mark {
    width: 62px;
    height: 62px;
    font-size: 48px;
  }

  .harmony-bio__button {
    width: 100%;
  }
}

/* ==========================================================
   HARMONY SERVICES PAGE — v0.15
   Scoped to .harmony-services so it does not alter other pages.
   ========================================================== */
.harmony-services {
  --services-max: var(--harmony-content-max);
  color: var(--harmony-text);
  background: var(--harmony-bg);
  overflow: hidden;
}

.harmony-services *,
.harmony-services *::before,
.harmony-services *::after {
  box-sizing: border-box;
}

.harmony-services__wrap {
  width: min(var(--services-max), calc(100% - var(--harmony-page-gutter)));
  margin-inline: auto;
}

.harmony-services__hero {
  padding: clamp(50px, 4.8vw, 72px) 0 clamp(42px, 4vw, 58px);
  background:
    radial-gradient(circle at 88% 18%, rgba(121, 184, 154, .17), transparent 28%),
    radial-gradient(circle at 8% 8%, rgba(120, 199, 204, .18), transparent 26%),
    linear-gradient(135deg, #ffffff 0%, #f7fbfa 100%);
}

.harmony-services__hero-inner {
  display: block;
}

/* Shared section label: aqua dot + line + small uppercase text. */
.harmony-services__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-services__eyebrow-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}

.harmony-services__eyebrow-line {
  width: 62px;
  height: 1px;
  flex: 0 0 62px;
  background: rgba(120, 199, 204, .88);
}

.harmony-services h1,
.harmony-services h2 {
  color: var(--harmony-ink);
  margin-top: 0;
  font-family: var(--harmony-heading-font);
  font-weight: 700;
}

.harmony-services h1 {
  margin-bottom: 0;
  font-size: clamp(44px, 5.2vw, 68px);
  line-height: 1.02;
  letter-spacing: -.035em;
}

.harmony-services__lead {
  margin: clamp(22px, 2.6vw, 34px) 0 0;
  /* Locked desktop rule: short introductory copy may use the full shared
     1360px content width. Do not impose an artificial reading-width cap;
     it should remain on one line whenever the available viewport allows it. */
  max-width: none;
  width: 100%;
  font-size: clamp(18px, 2.1vw, 22px);
  line-height: 1.7;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.harmony-services__section {
  padding: var(--harmony-section-y) 0;
}

.harmony-services__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.harmony-services__card {
  position: relative;
  padding: clamp(30px, 4vw, 44px);
  border: 1px solid var(--harmony-border);
  border-radius: 24px;
  background: var(--harmony-surface);
  box-shadow: var(--harmony-shadow-soft);
}

.harmony-services__card--parenting {
  border-color: rgba(121, 184, 154, .65);
  background: linear-gradient(150deg, #ffffff 0%, rgba(121, 184, 154, .08) 100%);
}

.harmony-services__card h2 {
  margin-bottom: 8px;
  font-size: clamp(25px, 3vw, 34px);
  line-height: 1.15;
}

.harmony-services__meta {
  margin: 0 0 22px;
  color: var(--harmony-blue);
  font-size: 14px;
  font-weight: 700;
}

.harmony-services__card p,
.harmony-services__card li,
.harmony-services__cta p {
  font-size: 16px;
  line-height: 1.72;
}

.harmony-services__card p {
  margin: 0 0 16px;
}

/* Locked site-wide reading style: justify longer body copy only. */
.harmony-services__card > p:not(.harmony-services__meta):not(.harmony-services__duration),
.harmony-services__cta p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}

.harmony-services__card ul {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.harmony-services__card li {
  position: relative;
  padding: 8px 0 8px 24px;
  border-bottom: 1px solid rgba(216, 232, 232, .65);
}

.harmony-services__card li:last-child {
  border-bottom: 0;
}

.harmony-services__card li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 17px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--harmony-leaf);
}

.harmony-services__duration {
  margin-top: 22px !important;
  color: var(--harmony-ink);
}

.harmony-services__process {
  padding: var(--harmony-section-y-compact) 0;
  background: var(--harmony-aqua-soft);
}

.harmony-services__heading {
  max-width: none;
  margin-bottom: 26px;
}

.harmony-services__heading h2,
.harmony-services__cta h2 {
  margin-bottom: 0;
  font-size: clamp(30px, 3.3vw, 44px);
  line-height: 1.15;
}

/* On wide screens the approved process heading sits on one clean line. */
.harmony-services__heading h2 {
  white-space: nowrap;
}

.harmony-services__process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.harmony-services__process-grid div {
  min-height: 118px;
  display: flex;
  align-items: center;
  padding: 26px;
  border: 1px solid rgba(120, 199, 204, .35);
  border-radius: 18px;
  background: rgba(255, 255, 255, .78);
  color: var(--harmony-ink);
  font-size: 17px;
  line-height: 1.5;
}

.harmony-services__cta {
  /* v0.14: restore a clear white break between Process and Contact. */
  padding: clamp(34px, 3.8vw, 52px) 0;
  background: #fff;
  border: 0;
}

.harmony-services__cta-inner {
  /* The Contact panel stays on the same locked 1360px grid, but is now
     an inset card so equal white margins remain visible on both sides. */
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(34px, 5vw, 70px);
  align-items: center;
  padding: clamp(30px, 3.2vw, 42px) clamp(28px, 3.5vw, 48px);
  background: linear-gradient(135deg, rgba(120, 199, 204, .14), rgba(121, 184, 154, .10));
  border: 1px solid rgba(120, 199, 204, .28);
  border-radius: 24px;
  box-shadow: 0 8px 24px rgba(36, 52, 56, .05);
}

.harmony-services__cta p {
  margin: 16px 0 0;
  max-width: 760px;
}

.harmony-services__button {
  min-height: var(--harmony-button-height);
  padding: 14px var(--harmony-button-pad-x);
  border-radius: var(--harmony-radius-pill);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--harmony-blue);
  border: 2px solid var(--harmony-blue);
  color: #fff !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;
  white-space: nowrap;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.harmony-services__button:hover {
  background: var(--harmony-blue-hover);
  border-color: var(--harmony-blue-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47, 120, 151, .18);
}

@media (max-width: 1100px) {
  .harmony-services__heading h2 {
    white-space: normal;
  }
}

@media (max-width: 900px) {
  .harmony-services__hero-inner,
  .harmony-services__grid,
  .harmony-services__process-grid {
    grid-template-columns: 1fr;
  }

  .harmony-services__cta-inner {
    grid-template-columns: 1fr;
  }

  .harmony-services__button {
    width: fit-content;
  }
}

@media (max-width: 767px) {
  .harmony-services__wrap {
    width: min(100% - 30px, var(--services-max));
  }

  .harmony-services__hero {
    padding-top: 58px;
  }

  .harmony-services__card {
    padding: 26px 22px;
    border-radius: 20px;
  }

  .harmony-services__button {
    width: 100%;
  }

  .harmony-services__lead,
  .harmony-services__card > p:not(.harmony-services__meta):not(.harmony-services__duration),
  .harmony-services__cta p {
    text-align: left;
  }

  .harmony-services__eyebrow-line {
    width: 46px;
    flex-basis: 46px;
  }
}


/* ==========================================================
   PSYCHARE PAGE-TEMPLATE COMPATIBILITY — v0.7
   Custom Harmony templates now use Psychare's .main__content
   wrapper. Remove the parent theme's default 80px content
   padding only on these scoped templates.
   ========================================================== */
.page-template-template-harmony-biografiko main.main__content.harmony-bio,
.page-template-template-harmony-services main.main__content.harmony-services {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* v0.8 intro label detail: aqua dot + thin line, echoing the Psychare visual language. */
.harmony-bio__intro-label-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}

/* Move the single service chip slightly farther away from the biography copy. */
.harmony-bio__chips {
  margin-top: 34px;
}

@media (max-width: 640px) {
  .harmony-bio__intro-label {
    gap: 9px;
    margin-bottom: 20px;
    font-size: 12px;
  }

  .harmony-bio__eyebrow {
    gap: 9px;
    font-size: 12px;
  }

  .harmony-bio__eyebrow-line {
    width: 46px;
    flex-basis: 46px;
  }

  .harmony-bio__intro-label::before {
    flex-basis: 46px;
  }

  .harmony-bio__chips {
    margin-top: 28px;
  }
}

/* ==========================================================
   HARMONY ELEMENTOR EDITABLE BRIDGE — v0.16
   Additive only. Existing published PHP templates are untouched.
   Lets native Elementor widgets reuse the locked Harmony biography design.
   ========================================================== */
.harmony-elementor-page {
  background: var(--harmony-bg);
}

/* Elementor Containers are flex by default; the locked Harmony layouts
   use grid at selected levels, so explicitly restore those grids. */
.harmony-bio--elementor .harmony-bio__hero-grid,
.harmony-bio--elementor .harmony-bio__split,
.harmony-bio--elementor .harmony-bio__training-grid,
.harmony-bio--elementor .harmony-bio__cta-inner,
.harmony-bio--elementor .harmony-bio__cards,
.harmony-bio--elementor .harmony-bio__approach-card {
  display: grid !important;
}

.harmony-bio--elementor .harmony-bio__wrap {
  width: min(var(--harmony-content-max), calc(100% - var(--harmony-page-gutter))) !important;
  max-width: none !important;
  margin-inline: auto !important;
}

.harmony-bio--elementor .harmony-bio__hero,
.harmony-bio--elementor .harmony-bio__section,
.harmony-bio--elementor .harmony-bio__cta {
  width: 100% !important;
  max-width: none !important;
}

/* Photo widget bridge. */
.harmony-bio--elementor .harmony-bio__photo-card {
  position: relative;
  max-width: 520px !important;
  margin-inline: auto !important;
  isolation: isolate;
}
.harmony-bio--elementor .harmony-bio__photo-card::after {
  content: "";
  position: absolute;
  inset: 24px -22px -24px 24px;
  border: 1px solid rgba(120, 199, 204, .28);
  border-radius: 30px;
  z-index: 1;
  pointer-events: none;
}
.harmony-bio--elementor .harmony-bio__photo-widget {
  position: relative;
  z-index: 2;
}
.harmony-bio--elementor .harmony-bio__photo-widget img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 26px;
  box-shadow: 0 24px 60px rgba(36, 52, 56, .16);
}

/* Elementor widgets add wrappers between the semantic Harmony containers
   and text nodes; reproduce the approved long-form justification. */
.harmony-bio--elementor .harmony-bio__intro .elementor-widget-text-editor p,
.harmony-bio--elementor .harmony-bio__prose .elementor-widget-text-editor p,
.harmony-bio--elementor .harmony-bio__approach-card .elementor-widget-text-editor p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}

/* Keep normal Elementor widget spacing from fighting the locked rhythm. */
.harmony-bio--elementor .elementor-widget-heading,
.harmony-bio--elementor .elementor-widget-text-editor {
  margin-bottom: 0;
}

/* Eyebrow widgets: line + dot are generated decoratively; text stays editable. */
.harmony-bio--elementor .harmony-bio__eyebrow-widget,
.harmony-bio--elementor .harmony-bio__intro-label-widget {
  display: flex;
  align-items: center;
  gap: 12px;
}
.harmony-bio--elementor .harmony-bio__eyebrow-widget::before,
.harmony-bio--elementor .harmony-bio__intro-label-widget::before {
  content: "";
  width: 62px;
  height: 1px;
  flex: 0 0 62px;
  background: rgba(120, 199, 204, .88);
}
.harmony-bio--elementor .harmony-bio__eyebrow-widget::after,
.harmony-bio--elementor .harmony-bio__intro-label-widget::after {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
  order: 1;
}
.harmony-bio--elementor .harmony-bio__eyebrow-widget .elementor-heading-title,
.harmony-bio--elementor .harmony-bio__intro-label-widget .elementor-heading-title {
  order: 2;
  color: var(--harmony-blue);
  font-family: var(--harmony-heading-font);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

/* Intro label uses the same approved motif under the main title. */
.harmony-bio--elementor .harmony-bio__intro-label-widget {
  margin-bottom: 24px;
}

/* Chip as editable heading/text widget. */
.harmony-bio--elementor .harmony-bio__chip-widget {
  width: fit-content;
  margin-top: 24px;
  padding: 10px 14px;
  border: 1px solid var(--harmony-border);
  background: var(--harmony-surface);
  border-radius: var(--harmony-radius-pill);
}
.harmony-bio--elementor .harmony-bio__chip-widget .elementor-heading-title {
  color: var(--harmony-blue);
  font-family: var(--harmony-heading-font);
  font-size: 13px;
  font-weight: 700;
}

/* Training list is an editable Text Editor widget containing a simple UL. */
.harmony-bio--elementor .harmony-bio__training-list-widget ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 11px;
}
.harmony-bio--elementor .harmony-bio__training-list-widget li {
  position: relative;
  padding: 16px 20px 16px 48px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(120, 199, 204, .32);
  border-radius: 16px;
  color: var(--harmony-ink);
  font-size: 16px;
  line-height: 1.5;
}
.harmony-bio--elementor .harmony-bio__training-list-widget li::before {
  content: "✓";
  position: absolute;
  left: 20px;
  top: 15px;
  color: var(--harmony-leaf);
  font-weight: 900;
}

/* Quote mark widget inside the approach card. */
.harmony-bio--elementor .harmony-bio__approach-mark-widget {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  background: var(--harmony-aqua-soft);
  color: var(--harmony-blue);
  border-radius: 50%;
  font-size: 58px;
  line-height: 1;
  font-family: Georgia, serif;
}

.harmony-bio--elementor .harmony-bio__approach-mark-widget .elementor-heading-title {
  color: inherit;
  font: inherit;
  line-height: 1;
}

/* Elementor button bridge for the CTA. */
.harmony-bio--elementor .harmony-bio__button-widget .elementor-button {
  min-height: 54px;
  padding: 15px 30px;
  border-radius: var(--harmony-radius-pill);
  background: var(--harmony-aqua);
  border: 2px solid var(--harmony-aqua);
  color: var(--harmony-ink) !important;
  font-size: 15px;
  font-weight: 800;
  white-space: nowrap;
}
.harmony-bio--elementor .harmony-bio__button-widget .elementor-button:hover {
  background: #93d4d8;
  border-color: #93d4d8;
  color: var(--harmony-ink) !important;
}

@media (max-width: 960px) {
  .harmony-bio--elementor .harmony-bio__hero-grid,
  .harmony-bio--elementor .harmony-bio__split,
  .harmony-bio--elementor .harmony-bio__training-grid,
  .harmony-bio--elementor .harmony-bio__cta-inner {
    grid-template-columns: 1fr !important;
  }
  .harmony-bio--elementor .harmony-bio__cards--three {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  .harmony-bio--elementor .harmony-bio__wrap {
    width: min(var(--harmony-content-max), calc(100% - 30px)) !important;
  }
  .harmony-bio--elementor .harmony-bio__intro .elementor-widget-text-editor p,
  .harmony-bio--elementor .harmony-bio__prose .elementor-widget-text-editor p,
  .harmony-bio--elementor .harmony-bio__approach-card .elementor-widget-text-editor p {
    text-align: left;
  }
  .harmony-bio--elementor .harmony-bio__photo-card::after {
    inset: 16px -10px -16px 16px;
  }
  .harmony-bio--elementor .harmony-bio__button-widget,
  .harmony-bio--elementor .harmony-bio__button-widget .elementor-button {
    width: 100%;
  }
}


/* ==========================================================
   HARMONY ELEMENTOR EDITABLE — HARDENING v0.17
   Keeps the native Elementor editor editable while matching
   the already-approved biography layout much more closely.
   ========================================================== */

/* The editable template must not inherit Psychare's default page padding. */
.page-template-template-harmony-elementor-editable main.main__content.harmony-elementor-page {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  background: var(--harmony-bg);
}

.page-template-template-harmony-elementor-editable .harmony-elementor-page > .elementor,
.page-template-template-harmony-elementor-editable .harmony-elementor-page .elementor-page,
.page-template-template-harmony-elementor-editable .harmony-elementor-page .elementor-section-wrap {
  width: 100% !important;
  max-width: none !important;
}

/* Elementor's generated widget rules can be more specific than theme CSS;
   use scoped !important values only inside the editable Harmony biography. */
.harmony-bio--elementor .harmony-bio__title-widget .elementor-heading-title {
  margin: 0 0 10px !important;
  color: var(--harmony-ink) !important;
  font-family: var(--harmony-heading-font) !important;
  font-size: clamp(44px, 5.2vw, 68px) !important;
  line-height: 1.02 !important;
  font-weight: 700 !important;
  letter-spacing: -.03em !important;
}

.harmony-bio--elementor .harmony-bio__section-title-widget .elementor-heading-title,
.harmony-bio--elementor .harmony-bio__cta-title-widget .elementor-heading-title {
  margin: 0 0 14px !important;
  color: var(--harmony-ink) !important;
  font-family: var(--harmony-heading-font) !important;
  font-size: clamp(30px, 3.6vw, 44px) !important;
  line-height: 1.13 !important;
  font-weight: 700 !important;
  letter-spacing: -.025em !important;
}

.harmony-bio--elementor .harmony-bio__card-title-widget .elementor-heading-title {
  margin: 0 0 10px !important;
  color: var(--harmony-ink) !important;
  font-family: var(--harmony-heading-font) !important;
  font-size: 22px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}

.harmony-bio--elementor .harmony-bio__body-widget,
.harmony-bio--elementor .harmony-bio__body-widget .elementor-widget-container,
.harmony-bio--elementor .harmony-bio__body-widget p {
  color: var(--harmony-text) !important;
  font-size: 17px !important;
  line-height: 1.78 !important;
}

.harmony-bio--elementor .harmony-bio__card .harmony-bio__body-widget,
.harmony-bio--elementor .harmony-bio__card .harmony-bio__body-widget p {
  font-size: 15.5px !important;
  line-height: 1.7 !important;
  margin-bottom: 0 !important;
}

/* Restore the approved section geometry inside the Elementor editor/front-end. */
.harmony-bio--elementor .harmony-bio__hero-grid {
  grid-template-columns: minmax(320px, .86fr) minmax(0, 1.14fr) !important;
  gap: clamp(38px, 4.3vw, 62px) !important;
  align-items: center !important;
}

.harmony-bio--elementor .harmony-bio__cards--three {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
}

.harmony-bio--elementor .harmony-bio__split,
.harmony-bio--elementor .harmony-bio__training-grid {
  grid-template-columns: .8fr 1.2fr !important;
  gap: clamp(32px, 4.2vw, 58px) !important;
  align-items: start !important;
}

.harmony-bio--elementor .harmony-bio__approach-card {
  grid-template-columns: auto minmax(0, 1fr) !important;
  gap: 30px !important;
  padding: clamp(32px, 4vw, 48px) !important;
}

.harmony-bio--elementor .harmony-bio__cta-inner {
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 42px !important;
  align-items: center !important;
}

/* Explicitly restore card and section surfaces in case Elementor editor defaults win. */
.harmony-bio--elementor .harmony-bio__card {
  padding: 30px !important;
  background: var(--harmony-surface) !important;
  border: 1px solid rgba(216, 232, 232, .95) !important;
  border-radius: 20px !important;
  box-shadow: 0 12px 36px rgba(36, 52, 56, .06) !important;
}

.harmony-bio--elementor .harmony-bio__section--soft {
  background: #f3f8f7 !important;
}
.harmony-bio--elementor .harmony-bio__section--aqua {
  background: linear-gradient(135deg, #eaf6f6 0%, #f7fbfa 100%) !important;
}
.harmony-bio--elementor .harmony-bio__cta {
  background: var(--harmony-ink) !important;
}
.harmony-bio--elementor .harmony-bio__cta-title-widget .elementor-heading-title,
.harmony-bio--elementor .harmony-bio__cta-text-widget,
.harmony-bio--elementor .harmony-bio__cta-text-widget p {
  color: #fff !important;
}
.harmony-bio--elementor .harmony-bio__cta-text-widget {
  opacity: .86;
}

/* Fix order of line + dot + label. Pseudo-elements appear before content,
   so line is ::before and dot is ::after, followed by the editable title. */
.harmony-bio--elementor .harmony-bio__eyebrow-widget,
.harmony-bio--elementor .harmony-bio__intro-label-widget {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
}
.harmony-bio--elementor .harmony-bio__eyebrow-widget .elementor-heading-title,
.harmony-bio--elementor .harmony-bio__intro-label-widget .elementor-heading-title {
  color: var(--harmony-blue) !important;
  font-family: var(--harmony-heading-font) !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  font-weight: 800 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

/* The dot field and aqua outline stay decorative; the actual photo stays editable. */
.harmony-bio--elementor .harmony-bio__photo-card::before {
  z-index: 0;
}
.harmony-bio--elementor .harmony-bio__photo-widget,
.harmony-bio--elementor .harmony-bio__photo-widget .elementor-widget-container {
  width: 100%;
}

@media (max-width: 960px) {
  .harmony-bio--elementor .harmony-bio__hero-grid,
  .harmony-bio--elementor .harmony-bio__split,
  .harmony-bio--elementor .harmony-bio__training-grid,
  .harmony-bio--elementor .harmony-bio__cta-inner,
  .harmony-bio--elementor .harmony-bio__approach-card,
  .harmony-bio--elementor .harmony-bio__cards--three {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================
   HARMONY BIOGRAPHY ELEMENTOR WIDGET — v0.18
   Exact master markup rendered inside one editable Elementor widget.
   ========================================================== */
.elementor-widget-harmony-biography,
.elementor-widget-harmony-biography > .elementor-widget-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.elementor-widget-harmony-biography .harmony-bio {
  width: 100%;
  max-width: none;
}

/* ==========================================================
   v0.19 — Elementor biography widget parity fixes
   Full-bleed sections + tighter approved rhythm + photo radius.
   Scoped to the editable Harmony Elementor page/widget only.
   ========================================================== */

/* The editable page is a true full-width canvas. The Harmony widget
   itself owns the 1360px inner content width. */
.page-template-template-harmony-elementor-editable .harmony-elementor-page {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible;
}

.page-template-template-harmony-elementor-editable .harmony-elementor-page > .elementor,
.page-template-template-harmony-elementor-editable .harmony-elementor-page [data-elementor-type="wp-page"] {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Elementor normally places a newly dropped widget inside a boxed parent
   container. On Harmony editable pages the top-level parent must be full width. */
.page-template-template-harmony-elementor-editable .harmony-elementor-page [data-elementor-type="wp-page"] > .e-con,
.page-template-template-harmony-elementor-editable .harmony-elementor-page [data-elementor-type="wp-page"] > .e-con > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.elementor-widget-harmony-biography,
.elementor-widget-harmony-biography > .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Break the biography out of any residual Elementor boxed container while
   preserving the approved 1360px inner .harmony-bio__wrap. */
.harmony-bio--widget {
  position: relative;
  left: 50%;
  width: 100vw;
  max-width: none !important;
  margin-left: -50vw;
  margin-right: -50vw;
  --harmony-section-y: clamp(36px, 3.2vw, 52px);
  --harmony-section-y-compact: clamp(32px, 2.8vw, 44px);
}

.harmony-bio--widget > section {
  width: 100%;
  max-width: none;
  margin: 0;
}

/* Slightly tighter than the original PHP master because Elementor adds its
   own widget box around the render. This restores the approved visual rhythm. */
.harmony-bio--widget .harmony-bio__hero {
  padding: clamp(42px, 3.5vw, 56px) 0;
}

.harmony-bio--widget .harmony-bio__section {
  padding-top: var(--harmony-section-y);
  padding-bottom: var(--harmony-section-y);
}

.harmony-bio--widget .harmony-bio__cta {
  padding-top: var(--harmony-section-y-compact);
  padding-bottom: var(--harmony-section-y-compact);
}

/* Force the approved rounded photograph even if Elementor/theme image rules
   inject a zero radius later. Keep the outer card overflow visible so the
   dotted field and offset aqua outline are not clipped. */
.harmony-bio--widget .harmony-bio__photo-card {
  overflow: visible !important;
}

.harmony-bio--widget img.harmony-bio__photo {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 26px !important;
  overflow: hidden;
}

@media (max-width: 767px) {
  .harmony-bio--widget {
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
    margin-right: -50vw;
  }

  .harmony-bio--widget .harmony-bio__hero {
    padding: 38px 0;
  }
}


/* ==========================================================
   v0.20 — FINAL ELEMENTOR CANVAS ALIGNMENT FIX
   Force the single Harmony biography widget to own the full
   available page canvas, while keeping every inner block
   centred on the locked 1360px Harmony grid.
   ========================================================== */

/* Elementor can keep a newly dropped widget inside a flex item whose
   width is narrower than the page even when the page template is full width.
   This page contains one Harmony widget, so the Elementor shell itself should
   never constrain or offset it. */
.page-template-template-harmony-elementor-editable .harmony-elementor-page,
.page-template-template-harmony-elementor-editable .harmony-elementor-page > .elementor,
.page-template-template-harmony-elementor-editable .harmony-elementor-page [data-elementor-type="wp-page"],
.page-template-template-harmony-elementor-editable .harmony-elementor-page [data-elementor-type="wp-page"] > .elementor-element,
.page-template-template-harmony-elementor-editable .harmony-elementor-page .e-con.e-parent,
.page-template-template-harmony-elementor-editable .harmony-elementor-page .e-con > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  --width: 100% !important;
  --content-width: 100% !important;
  --container-max-width: 100% !important;
}

.page-template-template-harmony-elementor-editable .harmony-elementor-page .e-con.e-parent {
  flex: 0 0 100% !important;
  align-self: stretch !important;
}

.page-template-template-harmony-elementor-editable .elementor-widget-harmony-biography {
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
}

.page-template-template-harmony-elementor-editable .elementor-widget-harmony-biography > .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* v0.19 used a viewport breakout as a defensive fallback. Once the Elementor
   shell is genuinely full width, the breakout is no longer needed and can
   create the right-shift seen in the editor. Reset it here. */
.page-template-template-harmony-elementor-editable .harmony-bio--widget {
  position: relative !important;
  left: auto !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow: visible !important;
}

.page-template-template-harmony-elementor-editable .harmony-bio--widget > section {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* The approved site-wide content grid. Background sections remain edge-to-edge,
   but text/cards always sit on the same centred 1360px frame. */
.page-template-template-harmony-elementor-editable .harmony-bio--widget .harmony-bio__wrap {
  width: min(1360px, calc(100% - 48px)) !important;
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Match the locked master rhythm exactly; no extra Elementor vertical air. */
.page-template-template-harmony-elementor-editable .harmony-bio--widget .harmony-bio__hero {
  padding-top: clamp(50px, 4.8vw, 72px) !important;
  padding-bottom: clamp(50px, 4.8vw, 72px) !important;
}

.page-template-template-harmony-elementor-editable .harmony-bio--widget .harmony-bio__section {
  padding-top: var(--harmony-section-y) !important;
  padding-bottom: var(--harmony-section-y) !important;
}

.page-template-template-harmony-elementor-editable .harmony-bio--widget .harmony-bio__cta {
  padding-top: var(--harmony-section-y-compact) !important;
  padding-bottom: var(--harmony-section-y-compact) !important;
}

/* Keep the approved photo rounding, decorative dots and offset outline. */
.page-template-template-harmony-elementor-editable .harmony-bio--widget .harmony-bio__photo-card {
  overflow: visible !important;
}

.page-template-template-harmony-elementor-editable .harmony-bio--widget img.harmony-bio__photo {
  border-radius: 26px !important;
}

@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-bio--widget .harmony-bio__wrap {
    width: calc(100% - 30px) !important;
  }
}
\n\n/* ==========================================================\n   v0.21 — EDITABLE SERVICES ELEMENTOR WIDGET\n   Uses the exact locked Harmony Services markup/classes while\n   preserving the full-width Elementor canvas from v0.20.\n   ========================================================== */\n\n.page-template-template-harmony-elementor-editable .elementor-widget-harmony-services,\n.page-template-template-harmony-elementor-editable .elementor-widget-harmony-services > .elementor-widget-container {\n  width: 100% !important;\n  max-width: none !important;\n  flex: 0 0 100% !important;\n  align-self: stretch !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n.page-template-template-harmony-elementor-editable .harmony-services--widget {\n  position: relative !important;\n  width: 100% !important;\n  max-width: none !important;\n  margin: 0 !important;\n  overflow: hidden;\n}\n\n.page-template-template-harmony-elementor-editable .harmony-services--widget > section {\n  width: 100% !important;\n  max-width: none !important;\n  margin-left: 0 !important;\n  margin-right: 0 !important;\n}\n\n.page-template-template-harmony-elementor-editable .harmony-services--widget .harmony-services__wrap {\n  width: min(1360px, calc(100% - 48px)) !important;\n  max-width: 1360px !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n\n/* Keep the same compact locked rhythm as the published Services master. */\n.page-template-template-harmony-elementor-editable .harmony-services--widget .harmony-services__section {\n  padding-top: var(--harmony-section-y) !important;\n  padding-bottom: var(--harmony-section-y) !important;\n}\n\n.page-template-template-harmony-elementor-editable .harmony-services--widget .harmony-services__process {\n  padding-top: var(--harmony-section-y-compact) !important;\n  padding-bottom: var(--harmony-section-y-compact) !important;\n}\n\n@media (max-width: 767px) {\n  .page-template-template-harmony-elementor-editable .harmony-services--widget .harmony-services__wrap {\n    width: calc(100% - 30px) !important;\n  }\n}\n
/* ==========================================================
   HARMONY SERVICE DETAIL PAGE — v0.23
   First locked detail layout: Ατομική Ψυχολογική Υποστήριξη.
   ========================================================== */
.harmony-service-page {
  --service-max: var(--harmony-content-max);
  color: var(--harmony-text);
  background: var(--harmony-bg);
  overflow: hidden;
  font-family: var(--harmony-heading-font);
}

.harmony-service-page *,
.harmony-service-page *::before,
.harmony-service-page *::after {
  box-sizing: border-box;
}

.harmony-service-page__wrap {
  width: min(var(--service-max), calc(100% - var(--harmony-page-gutter)));
  margin-inline: auto;
}

.harmony-service-page__hero {
  position: relative;
  min-height: clamp(430px, 45vw, 610px);
  display: flex;
  align-items: center;
  isolation: isolate;
  background-image: var(--harmony-service-hero-image);
  background-size: cover;
  background-position: center;
}

.harmony-service-page__hero-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(24, 42, 46, .78) 0%, rgba(24, 42, 46, .48) 48%, rgba(24, 42, 46, .16) 100%),
    linear-gradient(0deg, rgba(24, 42, 46, .24), rgba(24, 42, 46, .08));
}

.harmony-service-page__hero-content {
  padding-top: 52px;
  padding-bottom: 72px;
}

.harmony-service-page__hero-eyebrow {
  margin: 0 0 16px;
  color: #dff5f5;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-service-page__hero h1 {
  margin: 0;
  max-width: 1040px;
  color: #fff;
  font-size: clamp(42px, 5.1vw, 70px);
  line-height: 1.04;
  letter-spacing: -.038em;
  font-weight: 700;
  text-wrap: balance;
  text-shadow: 0 4px 22px rgba(0, 0, 0, .18);
}

.harmony-service-page__hero-meta {
  margin: 22px 0 0;
  color: rgba(255, 255, 255, .9);
  font-size: clamp(17px, 1.8vw, 21px);
  line-height: 1.6;
  font-weight: 600;
}

.harmony-service-page__scroll {
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .12);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  transition: transform 180ms ease, background-color 180ms ease;
}

.harmony-service-page__scroll:hover {
  transform: translateX(-50%) translateY(3px);
  background: rgba(120, 199, 204, .30);
}

.harmony-service-page__scroll svg {
  width: 23px;
  height: 23px;
  fill: #fff;
}

.harmony-service-page__section {
  padding: var(--harmony-section-y) 0;
}

.harmony-service-page__intro {
  scroll-margin-top: 110px;
  background: #fff;
}

.harmony-service-page__split {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(48px, 7vw, 100px);
  align-items: start;
}

/* The intro copy deliberately begins one text-line lower than the grid top.
   This reproduces the approved visual spacing without requiring a manual blank line in Elementor. */
@media (min-width: 901px) {
  .harmony-service-page__intro .harmony-service-page__prose {
    padding-top: 49px;
  }
}

.harmony-service-page__heading h2,
.harmony-service-page__cta h2 {
  margin: 0;
  color: var(--harmony-ink);
  font-size: clamp(31px, 3.25vw, 46px);
  line-height: 1.15;
  letter-spacing: -.026em;
  font-weight: 700;
}

.harmony-service-page__heading--wide {
  margin-bottom: 30px;
}

.harmony-service-page__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-service-page__eyebrow-line {
  width: 62px;
  height: 1px;
  flex: 0 0 62px;
  background: rgba(120, 199, 204, .88);
}

.harmony-service-page__eyebrow-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}

.harmony-service-page__prose p {
  margin: 0 0 18px;
  color: var(--harmony-text);
  font-size: 17px;
  line-height: 1.82;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.harmony-service-page__prose p:last-child {
  margin-bottom: 0;
}

.harmony-service-page__topics {
  background:
    radial-gradient(circle at 88% 10%, rgba(121, 184, 154, .12), transparent 30%),
    var(--harmony-aqua-soft);
}

.harmony-service-page__topic-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.harmony-service-page__topic {
  min-height: 96px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px 22px;
  border: 1px solid rgba(120, 199, 204, .34);
  border-radius: 18px;
  background: rgba(255, 255, 255, .82);
  color: var(--harmony-ink);
  box-shadow: 0 8px 20px rgba(36, 52, 56, .04);
}

.harmony-service-page__topic strong {
  font-size: 15px;
  line-height: 1.45;
  font-weight: 700;
}

.harmony-service-page__topic-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: var(--harmony-leaf);
}

.harmony-service-page__online {
  background: #fff;
}

.harmony-service-page__process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.harmony-service-page__process-card {
  padding: clamp(26px, 3vw, 34px);
  border: 1px solid var(--harmony-border);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--harmony-shadow-soft);
}

.harmony-service-page__process-card h3 {
  margin: 0 0 12px;
  color: var(--harmony-ink);
  font-size: 20px;
  line-height: 1.35;
  font-weight: 700;
}

.harmony-service-page__process-card p {
  margin: 0;
  color: var(--harmony-text);
  font-size: 15.5px;
  line-height: 1.72;
}

.harmony-service-page__cta {
  padding: clamp(34px, 3.8vw, 52px) 0;
  background: var(--harmony-bg);
}

.harmony-service-page__cta-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(34px, 5vw, 70px);
  align-items: center;
  padding: clamp(30px, 3.2vw, 42px) clamp(28px, 3.5vw, 48px);
  border: 1px solid rgba(120, 199, 204, .30);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(120, 199, 204, .15), rgba(121, 184, 154, .10));
  box-shadow: 0 8px 24px rgba(36, 52, 56, .05);
}

.harmony-service-page__cta p {
  max-width: 800px;
  margin: 16px 0 0;
  color: var(--harmony-text);
  font-size: 16px;
  line-height: 1.75;
}

.harmony-service-page__button {
  min-height: var(--harmony-button-height);
  padding: 14px var(--harmony-button-pad-x);
  border: 2px solid var(--harmony-blue);
  border-radius: var(--harmony-radius-pill);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--harmony-blue);
  color: #fff !important;
  font-size: 15px;
  line-height: 1.15;
  font-weight: 700;
  text-decoration: none !important;
  white-space: nowrap;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.harmony-service-page__button:hover {
  background: var(--harmony-blue-hover);
  border-color: var(--harmony-blue-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47, 120, 151, .18);
}

/* Elementor full-width bridge for the detail widget. */
.harmony-elementor-page .elementor-element:has(> .elementor-widget-container > .harmony-service-page),
.harmony-elementor-page .elementor-widget-harmony-individual-service,
.harmony-elementor-page .elementor-widget-harmony-individual-service > .elementor-widget-container,
.harmony-elementor-page .elementor-widget-harmony-couple-service,
.harmony-elementor-page .elementor-widget-harmony-couple-service > .elementor-widget-container,
.harmony-elementor-page .elementor-widget-harmony-parent-service,
.harmony-elementor-page .elementor-widget-harmony-parent-service > .elementor-widget-container,
.harmony-elementor-page .elementor-widget-harmony-group-service,
.harmony-elementor-page .elementor-widget-harmony-group-service > .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 1050px) {
  .harmony-service-page__topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .harmony-service-page__split,
  .harmony-service-page__process-grid,
  .harmony-service-page__cta-card {
    grid-template-columns: 1fr;
  }

  .harmony-service-page__hero {
    min-height: 500px;
    background-position: 58% center;
  }

  .harmony-service-page__button {
    width: fit-content;
  }
}

@media (max-width: 767px) {
  .harmony-service-page__wrap {
    width: min(100% - 30px, var(--service-max));
  }

  .harmony-service-page__hero {
    min-height: 470px;
    background-position: 61% center;
  }

  .harmony-service-page__hero-content {
    padding-top: 40px;
    padding-bottom: 86px;
  }

  .harmony-service-page__hero h1 {
    font-size: clamp(38px, 10.5vw, 50px);
  }

  .harmony-service-page__topic-grid {
    grid-template-columns: 1fr;
  }

  .harmony-service-page__topic {
    min-height: 80px;
  }

  .harmony-service-page__prose p {
    text-align: left;
  }

  .harmony-service-page__eyebrow {
    gap: 9px;
    font-size: 12px;
  }

  .harmony-service-page__eyebrow-line {
    width: 46px;
    flex-basis: 46px;
  }

  .harmony-service-page__button {
    width: 100%;
  }
}

/* ==========================================================
   HARMONY SERVICE DETAIL PAGE — v0.23 refinements
   - compact hero/banner
   - hard-reset Elementor shell so all headings/cards sit on the
     locked centred 1360px grid
   - page-specific contact CTA removed from widget; the shared
     site contact banner/footer can follow the service content
   ========================================================== */
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-individual-service,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-individual-service > .elementor-widget-container,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-couple-service,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-couple-service > .elementor-widget-container,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-parent-service,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-parent-service > .elementor-widget-container,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-group-service,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-group-service > .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page {
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page > section {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page .harmony-service-page__wrap {
  width: min(1360px, calc(100% - 48px)) !important;
  max-width: 1360px !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Shorter banner: keeps the photograph strong without consuming the first screen. */
.page-template-template-harmony-elementor-editable .harmony-service-page__hero {
  min-height: clamp(360px, 32vw, 470px) !important;
  background-position: center 40% !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__hero-content {
  padding-top: 34px !important;
  padding-bottom: 58px !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__hero h1 {
  max-width: 980px;
  font-size: clamp(40px, 4.4vw, 64px);
}

.page-template-template-harmony-elementor-editable .harmony-service-page__scroll {
  bottom: 16px;
  width: 44px;
  height: 44px;
}

/* Keep section headings and their cards anchored to the exact same grid. */
.page-template-template-harmony-elementor-editable .harmony-service-page__heading,
.page-template-template-harmony-elementor-editable .harmony-service-page__heading--wide,
.page-template-template-harmony-elementor-editable .harmony-service-page__topic-grid,
.page-template-template-harmony-elementor-editable .harmony-service-page__process-grid {
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__section {
  padding-top: clamp(44px, 3.8vw, 58px) !important;
  padding-bottom: clamp(44px, 3.8vw, 58px) !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__online {
  padding-bottom: clamp(48px, 4vw, 62px) !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page__hero {
    min-height: 420px !important;
    background-position: 58% 40% !important;
  }
}

@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page .harmony-service-page__wrap {
    width: calc(100% - 30px) !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-service-page__hero {
    min-height: 390px !important;
    background-position: 60% 42% !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-service-page__hero-content {
    padding-top: 28px !important;
    padding-bottom: 72px !important;
  }
}


/* ==========================================================
   v0.25 — COUPLE SUPPORT DETAIL PAGE
   Reuses the locked individual-service layout exactly.
   The default couple banner is mirrored so the couple stays
   visually clear on the right while the title remains left.
   ========================================================== */
.page-template-template-harmony-elementor-editable .harmony-service-page--couple .harmony-service-page__hero {
  /* Lower the photograph inside the compact hero so both faces stay fully visible. */
  background-position: center 26% !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page--couple .harmony-service-page__hero {
    background-position: 48% 28% !important;
  }
}

@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page--couple .harmony-service-page__hero {
    background-position: 45% 30% !important;
  }
}


/* ==========================================================
   v0.27 — PARENT COUNSELLING DETAIL PAGE
   Same locked service-detail layout, using the approved family
   sunset photograph supplied by the site owner.
   ========================================================== */
.page-template-template-harmony-elementor-editable .harmony-service-page--parent .harmony-service-page__hero {
  /* Keep the family faces and the sunset visible within the compact banner crop. */
  background-position: center 18% !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page--parent .harmony-service-page__hero {
    background-position: 54% 24% !important;
  }
}

@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page--parent .harmony-service-page__hero {
    background-position: 58% 30% !important;
  }
}


/* ==========================================================
   v0.29 — GROUP SUPPORT DETAIL PAGE
   Same locked service-detail layout, using the approved group
   session photograph already bundled with the Harmony theme.
   ========================================================== */
.page-template-template-harmony-elementor-editable .harmony-service-page--group .harmony-service-page__hero {
  /* Keep the seated group members' heads comfortably inside the compact banner crop. */
  background-position: center 32% !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page--group .harmony-service-page__hero {
    background-position: 52% 34% !important;
  }
}

@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page--group .harmony-service-page__hero {
    background-position: 54% 38% !important;
  }
}

/* ==========================================================
   v0.30 — FREQUENTLY ASKED QUESTIONS
   Native Elementor FAQ page using the locked Harmony 1360px,
   Manrope, compact rhythm and line + dot section language.
   ========================================================== */
.harmony-faq-page {
  --faq-max: var(--harmony-content-max);
  width: 100%;
  max-width: none;
  color: var(--harmony-text);
  background: var(--harmony-bg);
  overflow: hidden;
  font-family: var(--harmony-heading-font);
}

.harmony-faq-page *,
.harmony-faq-page *::before,
.harmony-faq-page *::after {
  box-sizing: border-box;
}

.harmony-faq-page__wrap {
  width: min(var(--faq-max), calc(100% - 48px));
  max-width: var(--faq-max);
  margin-inline: auto;
}

.harmony-faq-page__hero {
  position: relative;
  min-height: clamp(360px, 32vw, 470px);
  display: flex;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 18%, rgba(121, 184, 154, .22), transparent 27%),
    radial-gradient(circle at 70% 100%, rgba(120, 199, 204, .26), transparent 34%),
    linear-gradient(135deg, #eaf6f6 0%, #f7fbfa 58%, #eef8f5 100%);
}

.harmony-faq-page__hero::after {
  content: "?";
  position: absolute;
  right: clamp(28px, 7vw, 120px);
  top: 50%;
  transform: translateY(-53%);
  z-index: -1;
  color: rgba(47, 120, 151, .07);
  font-size: clamp(170px, 18vw, 280px);
  line-height: .8;
  font-weight: 800;
}

.harmony-faq-page__hero-orb {
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  border: 1px solid rgba(120, 199, 204, .34);
}

.harmony-faq-page__hero-orb--one {
  width: 170px;
  height: 170px;
  right: 13%;
  top: -76px;
}

.harmony-faq-page__hero-orb--two {
  width: 86px;
  height: 86px;
  right: 7%;
  bottom: 25px;
  background: rgba(255, 255, 255, .28);
}

.harmony-faq-page__hero-content {
  padding-top: 46px;
  padding-bottom: 62px;
}

.harmony-faq-page__hero-eyebrow {
  margin: 0 0 13px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-faq-page__hero h1 {
  margin: 0;
  color: var(--harmony-ink);
  font-size: clamp(46px, 5.1vw, 72px);
  line-height: 1.04;
  letter-spacing: -.038em;
  font-weight: 700;
}

.harmony-faq-page__hero-text {
  max-width: 850px;
  margin: 18px 0 0;
  color: var(--harmony-text);
  font-size: clamp(17px, 1.55vw, 20px);
  line-height: 1.7;
}

.harmony-faq-page__scroll {
  position: absolute;
  left: 50%;
  bottom: 15px;
  transform: translateX(-50%);
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(47, 120, 151, .32);
  border-radius: 50%;
  background: rgba(255, 255, 255, .72);
  box-shadow: 0 8px 20px rgba(36, 52, 56, .06);
  transition: transform 180ms ease, background-color 180ms ease;
}

.harmony-faq-page__scroll:hover {
  transform: translateX(-50%) translateY(3px);
  background: #fff;
}

.harmony-faq-page__scroll svg {
  width: 22px;
  height: 22px;
  fill: var(--harmony-blue);
}

.harmony-faq-page__section {
  padding: clamp(52px, 4.6vw, 68px) 0 clamp(58px, 5vw, 76px);
  scroll-margin-top: 110px;
  background: #fff;
}

.harmony-faq-page__grid {
  display: grid;
  grid-template-columns: minmax(280px, .68fr) minmax(0, 1.32fr);
  gap: clamp(48px, 6vw, 88px);
  align-items: start;
}

.harmony-faq-page__heading {
  position: sticky;
  top: 120px;
}

.harmony-faq-page__heading h2 {
  margin: 0;
  color: var(--harmony-ink);
  font-size: clamp(32px, 3.35vw, 46px);
  line-height: 1.14;
  letter-spacing: -.028em;
  font-weight: 700;
}

.harmony-faq-page__heading > p:last-child {
  margin: 18px 0 0;
  color: var(--harmony-text);
  font-size: 16.5px;
  line-height: 1.78;
}

.harmony-faq-page__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-faq-page__eyebrow-line {
  width: 62px;
  height: 1px;
  flex: 0 0 62px;
  background: rgba(120, 199, 204, .88);
}

.harmony-faq-page__eyebrow-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}

.harmony-faq-page__accordion {
  display: grid;
  gap: 13px;
  min-width: 0;
}

.harmony-faq-page__item {
  border: 1px solid rgba(216, 232, 232, .98);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 24px rgba(36, 52, 56, .045);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.harmony-faq-page__item:hover {
  border-color: rgba(120, 199, 204, .64);
}

.harmony-faq-page__item[open] {
  border-color: rgba(120, 199, 204, .58);
  box-shadow: 0 12px 30px rgba(36, 52, 56, .07);
}

.harmony-faq-page__item summary {
  position: relative;
  min-height: 72px;
  padding: 22px 70px 22px 26px;
  display: flex;
  align-items: center;
  cursor: pointer;
  list-style: none;
  color: var(--harmony-ink);
  user-select: none;
}

.harmony-faq-page__item summary::-webkit-details-marker {
  display: none;
}

.harmony-faq-page__question {
  font-size: 17px;
  line-height: 1.45;
  font-weight: 700;
}

.harmony-faq-page__toggle {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(120, 199, 204, .62);
  background: var(--harmony-aqua-soft);
}

.harmony-faq-page__toggle::before,
.harmony-faq-page__toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 13px;
  height: 2px;
  border-radius: 999px;
  background: var(--harmony-blue);
  transform: translate(-50%, -50%);
  transition: transform 180ms ease, opacity 180ms ease;
}

.harmony-faq-page__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.harmony-faq-page__item[open] .harmony-faq-page__toggle::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0deg);
}

.harmony-faq-page__answer {
  padding: 0 26px 24px;
  border-top: 1px solid rgba(216, 232, 232, .72);
  background: linear-gradient(180deg, rgba(234, 246, 246, .34), rgba(255, 255, 255, .98));
}

.harmony-faq-page__answer p {
  margin: 18px 0 0;
  color: var(--harmony-text);
  font-size: 16px;
  line-height: 1.78;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.harmony-faq-page__answer p:first-child {
  margin-top: 18px;
}

/* Elementor full-width bridge. */
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-faq,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-faq > .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}

.page-template-template-harmony-elementor-editable .harmony-faq-page > section {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

.page-template-template-harmony-elementor-editable .harmony-faq-page .harmony-faq-page__wrap {
  width: min(1360px, calc(100% - 48px)) !important;
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 900px) {
  .harmony-faq-page__grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .harmony-faq-page__heading {
    position: static;
  }
}

@media (max-width: 900px) and (min-width: 768px) {
  .harmony-faq-page__hero {
    min-height: 420px;
  }
}

@media (max-width: 767px) {
  .harmony-faq-page__wrap,
  .page-template-template-harmony-elementor-editable .harmony-faq-page .harmony-faq-page__wrap {
    width: calc(100% - 30px) !important;
  }

  .harmony-faq-page__hero {
    min-height: 390px;
  }

  .harmony-faq-page__hero-content {
    padding-top: 38px;
    padding-bottom: 72px;
  }

  .harmony-faq-page__hero h1 {
    font-size: clamp(42px, 12vw, 56px);
  }

  .harmony-faq-page__hero::after {
    right: -12px;
    opacity: .65;
  }

  .harmony-faq-page__item summary {
    min-height: 68px;
    padding: 20px 62px 20px 20px;
  }

  .harmony-faq-page__toggle {
    right: 18px;
  }

  .harmony-faq-page__answer {
    padding: 0 20px 22px;
  }

  .harmony-faq-page__answer p {
    text-align: left;
  }

  .harmony-faq-page__eyebrow {
    gap: 9px;
    font-size: 12px;
  }

  .harmony-faq-page__eyebrow-line {
    width: 46px;
    flex-basis: 46px;
  }
}

/* ==========================================================
   v0.32 — GLOBAL INTERNAL BANNER LOCK
   One exact banner rhythm for every Harmony internal page that
   uses the compact banner pattern (service detail pages + FAQ).
   Individual image focal points remain page-specific so faces
   are framed correctly, but banner dimensions/typography/arrow
   are now governed by the same shared values.
   ========================================================== */
:root {
  --harmony-internal-hero-min: clamp(360px, 32vw, 470px);
  --harmony-internal-hero-tablet: 420px;
  --harmony-internal-hero-mobile: 390px;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__hero,
.page-template-template-harmony-elementor-editable .harmony-faq-page__hero {
  min-height: var(--harmony-internal-hero-min) !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__hero-content,
.page-template-template-harmony-elementor-editable .harmony-faq-page__hero-content {
  padding-top: 34px !important;
  padding-bottom: 58px !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__hero h1,
.page-template-template-harmony-elementor-editable .harmony-faq-page__hero h1 {
  max-width: 980px;
  font-size: clamp(40px, 4.4vw, 64px) !important;
  line-height: 1.04 !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__scroll,
.page-template-template-harmony-elementor-editable .harmony-faq-page__scroll {
  bottom: 16px !important;
  width: 44px !important;
  height: 44px !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero {
    min-height: var(--harmony-internal-hero-tablet) !important;
  }
}

@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero {
    min-height: var(--harmony-internal-hero-mobile) !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-service-page__hero-content,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero-content {
    padding-top: 28px !important;
    padding-bottom: 72px !important;
  }
}

/* ==========================================================
   v0.33 — COMPACT INTERNAL BANNERS + SAFE PHOTO FOCAL POINTS
   - Every internal Harmony banner now shares one more compact
     height on desktop/tablet/mobile.
   - Photo banners keep page-specific focal points so reducing
     the height does NOT crop faces/heads.
   ========================================================== */
:root {
  --harmony-internal-hero-min: 360px;
  --harmony-internal-hero-tablet: 330px;
  --harmony-internal-hero-mobile: 300px;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__hero,
.page-template-template-harmony-elementor-editable .harmony-faq-page__hero {
  min-height: var(--harmony-internal-hero-min) !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__hero-content,
.page-template-template-harmony-elementor-editable .harmony-faq-page__hero-content {
  padding-top: 24px !important;
  padding-bottom: 50px !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__hero h1,
.page-template-template-harmony-elementor-editable .harmony-faq-page__hero h1 {
  font-size: clamp(40px, 3.8vw, 58px) !important;
}

.page-template-template-harmony-elementor-editable .harmony-service-page__scroll,
.page-template-template-harmony-elementor-editable .harmony-faq-page__scroll {
  bottom: 12px !important;
  width: 40px !important;
  height: 40px !important;
}

/* Desktop photo focal points: tuned independently for each image. */
.page-template-template-harmony-elementor-editable .harmony-service-page--individual .harmony-service-page__hero {
  background-position: center 18% !important;
}
.page-template-template-harmony-elementor-editable .harmony-service-page--couple .harmony-service-page__hero {
  background-position: center 8% !important;
}
.page-template-template-harmony-elementor-editable .harmony-service-page--parent .harmony-service-page__hero {
  background-position: center 4% !important;
}
.page-template-template-harmony-elementor-editable .harmony-service-page--group .harmony-service-page__hero {
  background-position: center 32% !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero {
    min-height: var(--harmony-internal-hero-tablet) !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-service-page--individual .harmony-service-page__hero {
    background-position: 58% 20% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-service-page--couple .harmony-service-page__hero {
    background-position: 48% 12% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-service-page--parent .harmony-service-page__hero {
    background-position: 54% 8% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-service-page--group .harmony-service-page__hero {
    background-position: 52% 34% !important;
  }
}

@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero {
    min-height: var(--harmony-internal-hero-mobile) !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-service-page__hero-content,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero-content {
    padding-top: 22px !important;
    padding-bottom: 54px !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-service-page__hero h1,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero h1 {
    font-size: clamp(36px, 10vw, 46px) !important;
  }

  /* On narrow screens the full image height is naturally visible;
     retain horizontal subject framing while centring vertically. */
  .page-template-template-harmony-elementor-editable .harmony-service-page--individual .harmony-service-page__hero {
    background-position: 60% 50% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-service-page--couple .harmony-service-page__hero {
    background-position: 45% 50% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-service-page--parent .harmony-service-page__hero {
    background-position: 58% 50% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-service-page--group .harmony-service-page__hero {
    background-position: 54% 50% !important;
  }
}


/* ==========================================================
   v0.34 — BOOKING PAGE + LOCKED BANNER MICRO-ADJUSTMENTS
   - Adds Harmony appointment-request page on the same locked
     360 / 330 / 300px internal banner system.
   - Keeps booking as a request + manual confirmation workflow.
   - Individual and Group photo focal points move slightly upward
     inside the already-locked banner height; no banner size changes.
   ========================================================== */

/* User-approved micro-adjustments only: photo moves slightly upward.
   Heights remain locked and unchanged. */
.page-template-template-harmony-elementor-editable .harmony-service-page--individual .harmony-service-page__hero {
  background-position: center 24% !important;
}
.page-template-template-harmony-elementor-editable .harmony-service-page--group .harmony-service-page__hero {
  background-position: center 40% !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-service-page--individual .harmony-service-page__hero {
    background-position: 58% 26% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-service-page--group .harmony-service-page__hero {
    background-position: 52% 40% !important;
  }
}

.harmony-booking-page {
  --booking-max: var(--harmony-content-max);
  color: var(--harmony-text);
  background: var(--harmony-bg);
  overflow: hidden;
  font-family: var(--harmony-heading-font);
}

.harmony-booking-page *,
.harmony-booking-page *::before,
.harmony-booking-page *::after {
  box-sizing: border-box;
}

.harmony-booking-page__wrap {
  width: min(var(--booking-max), calc(100% - var(--harmony-page-gutter)));
  margin-inline: auto;
}

.harmony-booking-page__hero {
  position: relative;
  min-height: var(--harmony-internal-hero-min) !important;
  display: flex;
  align-items: center;
  isolation: isolate;
  background-image: var(--harmony-booking-hero-image);
  background-size: cover;
  background-position: center 48%;
}

.harmony-booking-page__hero-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(24,42,46,.82) 0%, rgba(24,42,46,.58) 48%, rgba(24,42,46,.20) 100%),
    linear-gradient(0deg, rgba(24,42,46,.22), rgba(24,42,46,.08));
}

.harmony-booking-page__hero-content {
  padding-top: 24px;
  padding-bottom: 50px;
}

.harmony-booking-page__hero-eyebrow {
  margin: 0 0 13px;
  color: #dff5f5;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-booking-page__hero h1 {
  margin: 0;
  max-width: 980px;
  color: #fff;
  font-size: clamp(40px, 3.8vw, 58px);
  line-height: 1.04;
  letter-spacing: -.038em;
  font-weight: 700;
  text-shadow: 0 4px 22px rgba(0,0,0,.18);
}

.harmony-booking-page__hero-meta {
  max-width: 860px;
  margin: 18px 0 0;
  color: rgba(255,255,255,.92);
  font-size: clamp(16px, 1.55vw, 20px);
  line-height: 1.55;
  font-weight: 600;
}

.harmony-booking-page__scroll {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  transition: transform 180ms ease, background-color 180ms ease;
}

.harmony-booking-page__scroll:hover {
  transform: translateX(-50%) translateY(3px);
  background: rgba(120,199,204,.30);
}

.harmony-booking-page__scroll svg {
  width: 22px;
  height: 22px;
  fill: #fff;
}

.harmony-booking-page__section {
  padding: var(--harmony-section-y) 0;
  scroll-margin-top: 110px;
  background:
    radial-gradient(circle at 8% 4%, rgba(120,199,204,.10), transparent 28%),
    #fff;
}

.harmony-booking-page__grid {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(520px, 1.18fr);
  gap: clamp(46px, 6vw, 86px);
  align-items: start;
}

.harmony-booking-page__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-booking-page__eyebrow--form {
  margin-bottom: 12px;
}

.harmony-booking-page__eyebrow-line {
  width: 62px;
  height: 1px;
  flex: 0 0 62px;
  background: rgba(120,199,204,.88);
}

.harmony-booking-page__eyebrow-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}

.harmony-booking-page__info h2,
.harmony-booking-page__form-card h2 {
  margin: 0;
  color: var(--harmony-ink);
  font-size: clamp(31px, 3.2vw, 46px);
  line-height: 1.15;
  letter-spacing: -.026em;
  font-weight: 700;
}

.harmony-booking-page__form-card h2 {
  font-size: clamp(28px, 2.4vw, 38px);
}

.harmony-booking-page__prose {
  margin-top: 26px;
}

.harmony-booking-page__prose p {
  margin: 0 0 18px;
  color: var(--harmony-text);
  font-size: 17px;
  line-height: 1.82;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.harmony-booking-page__prose p:last-child {
  margin-bottom: 0;
}

.harmony-booking-page__availability {
  margin-top: 32px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.harmony-booking-page__availability > div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 16px;
  align-items: center;
  min-height: 68px;
  padding: 15px 18px;
  border: 1px solid rgba(120,199,204,.34);
  border-radius: 16px;
  background: rgba(234,246,246,.52);
}

.harmony-booking-page__availability-label {
  color: var(--harmony-blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.harmony-booking-page__availability strong {
  color: var(--harmony-ink);
  font-size: 15.5px;
  line-height: 1.4;
  font-weight: 700;
}

.harmony-booking-page__form-card {
  padding: clamp(28px, 3.2vw, 42px);
  border: 1px solid rgba(120,199,204,.34);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 16px 44px rgba(36,52,56,.08);
}

.harmony-booking-page__form {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.harmony-booking-page__field {
  min-width: 0;
}

.harmony-booking-page__field--full {
  grid-column: 1 / -1;
}

.harmony-booking-page__field label {
  display: block;
  margin-bottom: 8px;
  color: var(--harmony-ink);
  font-size: 14px;
  line-height: 1.45;
  font-weight: 700;
}

.harmony-booking-page__field input:not([type="checkbox"]),
.harmony-booking-page__field select,
.harmony-booking-page__field textarea {
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 12px 15px;
  border: 1px solid #cfe2e3;
  border-radius: 12px;
  background: #fbfdfd;
  color: var(--harmony-ink);
  font-family: var(--harmony-heading-font);
  font-size: 15px;
  line-height: 1.5;
  box-shadow: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.harmony-booking-page__field textarea {
  min-height: 112px;
  resize: vertical;
}

.harmony-booking-page__field input:not([type="checkbox"]):focus,
.harmony-booking-page__field select:focus,
.harmony-booking-page__field textarea:focus {
  outline: none;
  border-color: var(--harmony-aqua);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(120,199,204,.16);
}

.harmony-booking-page__field small {
  display: block;
  margin-top: 6px;
  color: var(--harmony-muted);
  font-size: 12.5px;
  line-height: 1.45;
}

.harmony-booking-page__optional {
  color: var(--harmony-muted);
  font-weight: 500;
}

.harmony-booking-page__consent label {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 2px 0 0;
  cursor: pointer;
}

.harmony-booking-page__consent input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin: 2px 0 0;
  accent-color: var(--harmony-blue);
}

.harmony-booking-page__consent span {
  color: var(--harmony-text);
  font-size: 13px;
  line-height: 1.58;
  font-weight: 500;
}

.harmony-booking-page__privacy-note {
  grid-column: 1 / -1;
  margin: -2px 0 0;
  padding: 13px 15px;
  border-radius: 12px;
  background: var(--harmony-aqua-soft);
  color: var(--harmony-muted);
  font-size: 12.5px;
  line-height: 1.55;
}

.harmony-booking-page__submit-row {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 2px;
}

.harmony-booking-page__submit {
  min-height: var(--harmony-button-height);
  padding: 14px var(--harmony-button-pad-x);
  border: 2px solid var(--harmony-blue);
  border-radius: var(--harmony-radius-pill);
  background: var(--harmony-blue);
  color: #fff;
  font-family: var(--harmony-heading-font);
  font-size: 15px;
  line-height: 1.15;
  font-weight: 800;
  cursor: pointer;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.harmony-booking-page__submit:hover {
  background: var(--harmony-blue-hover);
  border-color: var(--harmony-blue-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47,120,151,.18);
}

.harmony-booking-page__submit-row p {
  margin: 0;
  color: var(--harmony-muted);
  font-size: 12.5px;
  line-height: 1.5;
}

.harmony-booking-page__notice {
  margin: 20px 0 -4px;
  padding: 14px 16px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.55;
}

.harmony-booking-page__notice strong,
.harmony-booking-page__notice span {
  display: block;
}

.harmony-booking-page__notice--success {
  border: 1px solid rgba(121,184,154,.42);
  background: rgba(121,184,154,.12);
  color: #365e4b;
}

.harmony-booking-page__notice--error {
  border: 1px solid rgba(185,121,98,.34);
  background: rgba(185,121,98,.10);
  color: #774a3b;
}

.harmony-booking-page__hp {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Elementor full-width bridge. */
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-booking,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-booking > .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}

.page-template-template-harmony-elementor-editable .harmony-booking-page > section {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

.page-template-template-harmony-elementor-editable .harmony-booking-page .harmony-booking-page__wrap {
  width: min(1360px, calc(100% - 48px)) !important;
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 1000px) {
  .harmony-booking-page__grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .harmony-booking-page__info {
    max-width: 820px;
  }
}

@media (max-width: 900px) {
  .harmony-booking-page__hero {
    min-height: var(--harmony-internal-hero-tablet) !important;
    background-position: 58% 48%;
  }
}

@media (max-width: 767px) {
  .harmony-booking-page__wrap,
  .page-template-template-harmony-elementor-editable .harmony-booking-page .harmony-booking-page__wrap {
    width: calc(100% - 30px) !important;
  }

  .harmony-booking-page__hero {
    min-height: var(--harmony-internal-hero-mobile) !important;
    background-position: 62% 48%;
  }

  .harmony-booking-page__hero-content {
    padding-top: 22px;
    padding-bottom: 54px;
  }

  .harmony-booking-page__hero h1 {
    font-size: clamp(36px, 10vw, 46px);
  }

  .harmony-booking-page__hero-meta {
    margin-top: 14px;
    font-size: 15px;
  }

  .harmony-booking-page__grid,
  .harmony-booking-page__form {
    grid-template-columns: 1fr;
  }

  .harmony-booking-page__field--full,
  .harmony-booking-page__privacy-note,
  .harmony-booking-page__submit-row {
    grid-column: auto;
  }

  .harmony-booking-page__form-card {
    padding: 24px 20px;
    border-radius: 20px;
  }

  .harmony-booking-page__availability > div {
    grid-template-columns: 92px 1fr;
  }

  .harmony-booking-page__prose p {
    text-align: left;
  }

  .harmony-booking-page__eyebrow {
    gap: 9px;
    font-size: 12px;
  }

  .harmony-booking-page__eyebrow-line {
    width: 46px;
    flex-basis: 46px;
  }

  .harmony-booking-page__submit-row {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }

  .harmony-booking-page__submit {
    width: 100%;
  }
}

/* ==========================================================
   v0.35 — CONTACT PAGE + PROFESSIONAL MAILBOX ROUTING
   - Keeps the locked internal hero heights untouched.
   - Contact form routes to contact@harmonyclinicaltherapy.com.
   ========================================================== */

.harmony-contact-page {
  --contact-max: var(--harmony-content-max);
  color: var(--harmony-text);
  background: var(--harmony-bg);
  overflow: hidden;
  font-family: var(--harmony-heading-font);
}

.harmony-contact-page *,
.harmony-contact-page *::before,
.harmony-contact-page *::after {
  box-sizing: border-box;
}

.harmony-contact-page__wrap {
  width: min(var(--contact-max), calc(100% - var(--harmony-page-gutter)));
  margin-inline: auto;
}

.harmony-contact-page__hero {
  position: relative;
  min-height: var(--harmony-internal-hero-min) !important;
  display: flex;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 83% 26%, rgba(120,199,204,.18), transparent 24%),
    linear-gradient(112deg, #f8fcfb 0%, #edf7f7 54%, #e6f4f4 100%);
}

.harmony-contact-page__hero-decoration,
.harmony-contact-page__hero-decoration::before,
.harmony-contact-page__hero-decoration::after {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(120,199,204,.42);
  content: "";
  pointer-events: none;
}

.harmony-contact-page__hero-decoration {
  right: 8%;
  top: -78px;
  width: 215px;
  height: 215px;
  border-color: rgba(120,199,204,.34);
}

.harmony-contact-page__hero-decoration::before {
  width: 92px;
  height: 92px;
  left: 155px;
  top: 225px;
}

.harmony-contact-page__hero-decoration::after {
  width: 18px;
  height: 18px;
  left: 70px;
  top: 255px;
  border: none;
  background: rgba(120,199,204,.38);
}

.harmony-contact-page__hero-content {
  position: relative;
  z-index: 1;
  padding-top: 22px;
  padding-bottom: 44px;
}

.harmony-contact-page__hero-eyebrow {
  margin: 0 0 13px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-contact-page__hero h1 {
  margin: 0;
  max-width: 980px;
  color: var(--harmony-ink);
  font-size: clamp(44px, 4.2vw, 62px);
  line-height: 1.04;
  letter-spacing: -.038em;
  font-weight: 700;
}

.harmony-contact-page__hero-meta {
  max-width: 820px;
  margin: 17px 0 0;
  color: var(--harmony-text);
  font-size: clamp(16px, 1.45vw, 19px);
  line-height: 1.62;
  font-weight: 500;
}

.harmony-contact-page__scroll {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  width: 38px;
  height: 38px;
  border: 1px solid rgba(47,120,151,.34);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.70);
  transition: transform 180ms ease, background-color 180ms ease;
}

.harmony-contact-page__scroll:hover {
  transform: translateX(-50%) translateY(3px);
  background: #fff;
}

.harmony-contact-page__scroll svg {
  width: 21px;
  height: 21px;
  fill: var(--harmony-blue);
}

.harmony-contact-page__section {
  padding: var(--harmony-section-y) 0;
  scroll-margin-top: 110px;
  background:
    radial-gradient(circle at 9% 5%, rgba(120,199,204,.09), transparent 26%),
    #fff;
}

.harmony-contact-page__grid {
  display: grid;
  grid-template-columns: minmax(0, .84fr) minmax(520px, 1.16fr);
  gap: clamp(46px, 6vw, 86px);
  align-items: start;
}

.harmony-contact-page__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.harmony-contact-page__eyebrow--form {
  margin-bottom: 12px;
}

.harmony-contact-page__eyebrow-line {
  width: 62px;
  height: 1px;
  flex: 0 0 62px;
  background: rgba(120,199,204,.88);
}

.harmony-contact-page__eyebrow-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}

.harmony-contact-page__info h2,
.harmony-contact-page__form-card h2 {
  margin: 0;
  color: var(--harmony-ink);
  font-size: clamp(31px, 3.2vw, 46px);
  line-height: 1.15;
  letter-spacing: -.026em;
  font-weight: 700;
}

.harmony-contact-page__form-card h2 {
  font-size: clamp(28px, 2.4vw, 38px);
}

.harmony-contact-page__prose {
  margin-top: 26px;
}

.harmony-contact-page__prose p {
  margin: 0 0 18px;
  color: var(--harmony-text);
  font-size: 17px;
  line-height: 1.82;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.harmony-contact-page__cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 30px;
}

.harmony-contact-page__card {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-height: 104px;
  padding: 18px 20px;
  border: 1px solid rgba(120,199,204,.34);
  border-radius: 16px;
  background: rgba(234,246,246,.50);
  color: inherit;
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.harmony-contact-page__card:hover {
  transform: translateY(-2px);
  border-color: rgba(47,120,151,.34);
  background: #f7fbfb;
}

.harmony-contact-page__card-kicker {
  color: var(--harmony-blue);
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.harmony-contact-page__card strong {
  color: var(--harmony-ink);
  font-size: 16px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.harmony-contact-page__card > span:last-child {
  color: var(--harmony-muted);
  font-size: 13px;
  line-height: 1.5;
}

.harmony-contact-page__booking-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 22px;
  color: var(--harmony-blue);
  font-size: 15px;
  font-weight: 800;
  text-decoration: none;
}

.harmony-contact-page__booking-link:hover {
  color: var(--harmony-blue-hover);
}

.harmony-contact-page__form-card {
  padding: clamp(28px, 3.2vw, 42px);
  border: 1px solid rgba(120,199,204,.34);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 16px 44px rgba(36,52,56,.08);
}

.harmony-contact-page__form {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.harmony-contact-page__field {
  min-width: 0;
}

.harmony-contact-page__field--full {
  grid-column: 1 / -1;
}

.harmony-contact-page__field label {
  display: block;
  margin-bottom: 8px;
  color: var(--harmony-ink);
  font-size: 14px;
  line-height: 1.45;
  font-weight: 700;
}

.harmony-contact-page__field input:not([type="checkbox"]),
.harmony-contact-page__field select,
.harmony-contact-page__field textarea {
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 12px 15px;
  border: 1px solid #cfe2e3;
  border-radius: 12px;
  background: #fbfdfd;
  color: var(--harmony-ink);
  font-family: var(--harmony-heading-font);
  font-size: 15px;
  line-height: 1.5;
  box-shadow: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.harmony-contact-page__field textarea {
  min-height: 134px;
  resize: vertical;
}

.harmony-contact-page__field input:not([type="checkbox"]):focus,
.harmony-contact-page__field select:focus,
.harmony-contact-page__field textarea:focus {
  outline: none;
  border-color: var(--harmony-aqua);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(120,199,204,.16);
}

.harmony-contact-page__optional {
  color: var(--harmony-muted);
  font-weight: 500;
}

.harmony-contact-page__consent label {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 2px 0 0;
  cursor: pointer;
}

.harmony-contact-page__consent input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin: 2px 0 0;
  accent-color: var(--harmony-blue);
}

.harmony-contact-page__consent span {
  color: var(--harmony-text);
  font-size: 13px;
  line-height: 1.58;
  font-weight: 500;
}

.harmony-contact-page__privacy-note {
  grid-column: 1 / -1;
  margin: -2px 0 0;
  padding: 13px 15px;
  border-radius: 12px;
  background: var(--harmony-aqua-soft);
  color: var(--harmony-muted);
  font-size: 12.5px;
  line-height: 1.55;
}

.harmony-contact-page__submit-row {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 2px;
}

.harmony-contact-page__submit {
  min-height: var(--harmony-button-height);
  padding: 14px var(--harmony-button-pad-x);
  border: 2px solid var(--harmony-blue);
  border-radius: var(--harmony-radius-pill);
  background: var(--harmony-blue);
  color: #fff;
  font-family: var(--harmony-heading-font);
  font-size: 15px;
  line-height: 1.15;
  font-weight: 800;
  cursor: pointer;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.harmony-contact-page__submit:hover {
  background: var(--harmony-blue-hover);
  border-color: var(--harmony-blue-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47,120,151,.18);
}

.harmony-contact-page__submit-row p {
  margin: 0;
  color: var(--harmony-muted);
  font-size: 12.5px;
  line-height: 1.5;
}

.harmony-contact-page__notice {
  margin: 20px 0 -4px;
  padding: 14px 16px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.55;
}

.harmony-contact-page__notice strong,
.harmony-contact-page__notice span {
  display: block;
}

.harmony-contact-page__notice--success {
  border: 1px solid rgba(121,184,154,.42);
  background: rgba(121,184,154,.12);
  color: #365e4b;
}

.harmony-contact-page__notice--error {
  border: 1px solid rgba(185,121,98,.34);
  background: rgba(185,121,98,.10);
  color: #774a3b;
}

.harmony-contact-page__hp {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.page-template-template-harmony-elementor-editable .elementor-widget-harmony-contact,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-contact > .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}

.page-template-template-harmony-elementor-editable .harmony-contact-page > section {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

.page-template-template-harmony-elementor-editable .harmony-contact-page .harmony-contact-page__wrap {
  width: min(1360px, calc(100% - 48px)) !important;
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 1000px) {
  .harmony-contact-page__grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .harmony-contact-page__info {
    max-width: 820px;
  }
}

@media (max-width: 900px) {
  .harmony-contact-page__hero {
    min-height: var(--harmony-internal-hero-tablet) !important;
  }
}

@media (max-width: 767px) {
  .harmony-contact-page__wrap,
  .page-template-template-harmony-elementor-editable .harmony-contact-page .harmony-contact-page__wrap {
    width: calc(100% - 30px) !important;
  }

  .harmony-contact-page__hero {
    min-height: var(--harmony-internal-hero-mobile) !important;
  }

  .harmony-contact-page__hero-content {
    padding-top: 26px;
    padding-bottom: 48px;
  }

  .harmony-contact-page__hero h1 {
    font-size: clamp(36px, 10vw, 46px);
  }

  .harmony-contact-page__hero-meta {
    margin-top: 13px;
    font-size: 15px;
  }

  .harmony-contact-page__hero-decoration {
    right: -70px;
    opacity: .70;
  }

  .harmony-contact-page__grid,
  .harmony-contact-page__form {
    grid-template-columns: 1fr;
  }

  .harmony-contact-page__field--full,
  .harmony-contact-page__privacy-note,
  .harmony-contact-page__submit-row {
    grid-column: auto;
  }

  .harmony-contact-page__form-card {
    padding: 24px 20px;
    border-radius: 20px;
  }

  .harmony-contact-page__prose p {
    text-align: left;
  }

  .harmony-contact-page__eyebrow {
    gap: 9px;
    font-size: 12px;
  }

  .harmony-contact-page__eyebrow-line {
    width: 46px;
    flex-basis: 46px;
  }

  .harmony-contact-page__submit-row {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }

  .harmony-contact-page__submit {
    width: 100%;
  }
}


/* ==========================================================
   AI PARENTING LANDING WIDGET v0.36
   ========================================================== */
.harmony-ai-parenting {
  --ai-accent: #6b46ff;
  --ai-accent-2: #8a63ff;
  --ai-dark: #111828;
  --ai-deep: #172235;
  --ai-card: #ffffff;
  --ai-soft: #f4f8ff;
  --ai-border: #dce7f4;
  --ai-text: #273b44;
  --ai-muted: #5d727a;
  color: var(--ai-text);
}
.harmony-ai-parenting *,
.harmony-ai-parenting *::before,
.harmony-ai-parenting *::after { box-sizing: border-box; }
.harmony-ai-parenting__wrap {
  width: min(100% - 40px, var(--harmony-content-max));
  margin: 0 auto;
}
.harmony-ai-parenting__section {
  padding: clamp(38px, 4.2vw, 58px) 0;
}
.harmony-ai-parenting__hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(138,99,255,0.35), transparent 34%),
    radial-gradient(circle at bottom left, rgba(95,146,255,0.18), transparent 28%),
    linear-gradient(135deg, #101524 0%, #192137 45%, #25195e 100%);
  color: #fff;
  padding: clamp(58px, 7vw, 86px) 0 clamp(46px, 5.5vw, 68px);
}
.harmony-ai-parenting__hero::before,
.harmony-ai-parenting__hero::after {
  content: '';
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}
.harmony-ai-parenting__hero::before {
  width: 340px;
  height: 340px;
  top: -140px;
  right: -100px;
  border: 1px solid rgba(255,255,255,0.12);
}
.harmony-ai-parenting__hero::after {
  width: 240px;
  height: 240px;
  left: -90px;
  bottom: -90px;
  background: rgba(255,255,255,0.04);
}
.harmony-ai-parenting__hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(480px, 0.98fr);
  gap: clamp(28px, 4vw, 52px);
  align-items: center;
  position: relative;
  z-index: 1;
}
.harmony-ai-parenting__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 800;
  color: rgba(255,255,255,0.82);
  margin: 0 0 16px;
}
.harmony-ai-parenting__eyebrow::before {
  content: '';
  display: inline-block;
  width: 58px;
  height: 7px;
  flex: 0 0 58px;
  background:
    radial-gradient(circle at 54px 50%, rgba(255,255,255,0.78) 0 3.5px, transparent 3.6px),
    linear-gradient(rgba(255,255,255,0.45), rgba(255,255,255,0.45)) left center / 44px 1px no-repeat;
}
.harmony-ai-parenting__eyebrow::after {
  content: none;
  display: none;
}
.harmony-ai-parenting__hero h1,
.harmony-ai-parenting__heading h2,
.harmony-ai-parenting__cta-card h2 {
  font-family: var(--harmony-heading-font);
  letter-spacing: -0.03em;
}
.harmony-ai-parenting__hero h1 {
  font-size: clamp(42px, 6vw, 76px);
  line-height: 0.95;
  margin: 0;
  color: #fff;
}
.harmony-ai-parenting__hero-subtitle {
  font-size: clamp(22px, 2.8vw, 34px);
  line-height: 1.15;
  font-weight: 700;
  color: rgba(255,255,255,0.95);
  margin: 18px 0 0;
}
.harmony-ai-parenting__hero-summary {
  max-width: 680px;
  font-size: 18px;
  line-height: 1.8;
  color: rgba(255,255,255,0.84);
  margin: 20px 0 0;
}
.harmony-ai-parenting__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  margin-top: 26px;
}
.harmony-ai-parenting__play-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 14px 26px;
  border-radius: 999px;
  font-weight: 800;
  text-decoration: none;
  background: linear-gradient(135deg, var(--ai-accent) 0%, var(--ai-accent-2) 100%);
  color: #fff;
  box-shadow: 0 12px 28px rgba(72, 54, 175, 0.25);
}
.harmony-ai-parenting__play-btn:hover { color: #fff; transform: translateY(-1px); }
.harmony-ai-parenting__play-btn.is-disabled {
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.82;
}
.harmony-ai-parenting__status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.14);
  color: rgba(255,255,255,0.9);
  font-weight: 700;
}
.harmony-ai-parenting__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
.harmony-ai-parenting__chips li {
  padding: 10px 15px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.92);
  font-weight: 700;
  font-size: 14px;
}
.harmony-ai-parenting__hero-visual {
  position: relative;
}
.harmony-ai-parenting__hero-card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 34px;
  padding: clamp(12px, 1.4vw, 16px);
  box-shadow: 0 18px 46px rgba(9, 12, 22, 0.25);
  backdrop-filter: blur(7px);
}
.harmony-ai-parenting__hero-card img,
.harmony-ai-parenting__preview img,
.harmony-ai-parenting__shot img {
  width: 100%;
  display: block;
  border-radius: 26px;
}
.harmony-ai-parenting__section--soft {
  background: linear-gradient(180deg, #f8fbff 0%, #f4f9fd 100%);
}
.harmony-ai-parenting__section--alt {
  background: #f8fbfd;
}
.harmony-ai-parenting__heading {
  max-width: 1040px;
  margin-bottom: 22px;
}
.harmony-ai-parenting__heading p {
  color: var(--ai-muted);
  font-size: 17px;
  line-height: 1.85;
  margin: 14px 0 0;
}
.harmony-ai-parenting__heading h2 {
  font-size: clamp(34px, 4.8vw, 56px);
  line-height: 1.03;
  margin: 0;
  color: var(--harmony-ink);
}
.harmony-ai-parenting__eyebrow--dark {
  color: var(--harmony-blue);
  margin-bottom: 18px;
}
.harmony-ai-parenting__eyebrow--dark::before {
  content: '';
  display: inline-block;
  width: 58px;
  height: 7px;
  flex: 0 0 58px;
  background:
    radial-gradient(circle at 54px 50%, var(--harmony-aqua) 0 3.5px, transparent 3.6px),
    linear-gradient(rgba(47, 120, 151, 0.35), rgba(47, 120, 151, 0.35)) left center / 44px 1px no-repeat;
}
.harmony-ai-parenting__eyebrow--dark::after {
  content: none;
  display: none;
}
.harmony-ai-parenting__feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.harmony-ai-parenting__feature-card,
.harmony-ai-parenting__step,
.harmony-ai-parenting__info-card,
.harmony-ai-parenting__shot {
  background: #fff;
  border: 1px solid var(--ai-border);
  border-radius: 24px;
  box-shadow: 0 10px 24px rgba(36, 52, 56, 0.06);
}
.harmony-ai-parenting__feature-card {
  padding: 21px 20px;
}
.harmony-ai-parenting__feature-card strong,
.harmony-ai-parenting__step strong,
.harmony-ai-parenting__info-card strong {
  display: block;
  font-size: 19px;
  line-height: 1.25;
  color: var(--harmony-ink);
  margin-bottom: 10px;
}
.harmony-ai-parenting__feature-card p,
.harmony-ai-parenting__step p,
.harmony-ai-parenting__info-card p,
.harmony-ai-parenting__cta-card p {
  margin: 0;
  color: var(--ai-muted);
  line-height: 1.8;
  font-size: 15px;
}
.harmony-ai-parenting__feature-icon {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  margin-bottom: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(107,70,255,0.12) 0%, rgba(90,157,255,0.12) 100%);
  color: var(--ai-accent);
  font-size: 22px;
  font-weight: 800;
}
.harmony-ai-parenting__showcase {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: clamp(20px, 2.6vw, 32px);
  align-items: start;
}
.harmony-ai-parenting__preview {
  background: #fff;
  border: 1px solid var(--ai-border);
  border-radius: 32px;
  padding: 16px;
  box-shadow: 0 14px 28px rgba(36, 52, 56, 0.08);
  position: sticky;
  top: 24px;
}
.harmony-ai-parenting__shot-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.harmony-ai-parenting__shot { padding: 14px; }
.harmony-ai-parenting__shot strong {
  display: block;
  margin-bottom: 12px;
  color: var(--harmony-ink);
  font-size: 16px;
}
.harmony-ai-parenting__steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}
.harmony-ai-parenting__step {
  padding: 20px 18px;
  position: relative;
}
.harmony-ai-parenting__step-num {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  margin-bottom: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, var(--harmony-blue) 0%, var(--ai-accent) 100%);
}
.harmony-ai-parenting__two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.harmony-ai-parenting__info-card { padding: 26px 24px; }
.harmony-ai-parenting__bullet-list {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}
.harmony-ai-parenting__bullet-list li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 10px;
  color: var(--ai-muted);
  line-height: 1.75;
}
.harmony-ai-parenting__bullet-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 11px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}
.harmony-ai-parenting__cta-card {
  background: linear-gradient(135deg, rgba(24, 31, 52, 0.98) 0%, rgba(36, 23, 94, 0.98) 100%);
  color: #fff;
  border-radius: 34px;
  padding: clamp(28px, 4vw, 44px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
}
.harmony-ai-parenting__cta-card h2 {
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.02;
  color: #fff;
  margin: 0 0 14px;
}
.harmony-ai-parenting__cta-card p { color: rgba(255,255,255,0.82); max-width: 760px; }
.harmony-ai-parenting__small-note {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255,255,255,0.68);
}
@media (max-width: 1180px) {
  .harmony-ai-parenting__hero-grid,
  .harmony-ai-parenting__showcase,
  .harmony-ai-parenting__steps,
  .harmony-ai-parenting__feature-grid,
  .harmony-ai-parenting__two-col,
  .harmony-ai-parenting__cta-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .harmony-ai-parenting__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .harmony-ai-parenting__feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .harmony-ai-parenting__cta-card { grid-template-columns: 1fr; }
  .harmony-ai-parenting__preview { position: static; }
}
@media (max-width: 900px) {
  .harmony-ai-parenting__hero-grid,
  .harmony-ai-parenting__showcase,
  .harmony-ai-parenting__steps,
  .harmony-ai-parenting__feature-grid,
  .harmony-ai-parenting__two-col,
  .harmony-ai-parenting__shot-grid { grid-template-columns: 1fr; }
  .harmony-ai-parenting__hero {
    padding-top: 48px;
    padding-bottom: 44px;
  }
  .harmony-ai-parenting__wrap {
    width: min(100% - 28px, var(--harmony-content-max));
  }
  .harmony-ai-parenting__heading h2,
  .harmony-ai-parenting__cta-card h2 {
    font-size: clamp(30px, 8vw, 42px);
  }
  .harmony-ai-parenting__hero-summary { font-size: 16px; }
  .harmony-ai-parenting__status,
  .harmony-ai-parenting__play-btn { width: 100%; justify-content: center; }
}


/* ==========================================================
   v0.38 — AI PARENTING COMPACT HERO + SECTION RHYTHM
   Only AI Parenting is affected here.
   - More compact hero/banner
   - Same small down-arrow language as the locked internal pages
   - Less vertical air between sections
   ========================================================== */
.harmony-ai-parenting__section {
  padding: clamp(28px, 3vw, 42px) 0;
}

.harmony-ai-parenting__hero {
  min-height: 560px;
  padding: 36px 0 54px;
  display: flex;
  align-items: center;
}

.harmony-ai-parenting__hero-grid {
  gap: clamp(24px, 3vw, 40px);
}

.harmony-ai-parenting__hero h1 {
  font-size: clamp(44px, 4.8vw, 66px);
  line-height: .98;
}

.harmony-ai-parenting__hero-subtitle {
  font-size: clamp(21px, 2.2vw, 29px);
  margin-top: 13px;
}

.harmony-ai-parenting__hero-summary {
  max-width: 720px;
  font-size: 16px;
  line-height: 1.62;
  margin-top: 14px;
}

.harmony-ai-parenting__cta-row {
  margin-top: 18px;
  gap: 12px;
}

.harmony-ai-parenting__play-btn {
  min-height: 48px;
  padding: 12px 22px;
}

.harmony-ai-parenting__status {
  min-height: 44px;
  padding: 10px 16px;
}

.harmony-ai-parenting__chips {
  gap: 8px;
  margin-top: 16px;
}

.harmony-ai-parenting__chips li {
  padding: 8px 13px;
  font-size: 13px;
}

.harmony-ai-parenting__hero-card {
  max-width: 650px;
  margin-left: auto;
  border-radius: 28px;
  padding: 10px;
}

.harmony-ai-parenting__hero-card img {
  border-radius: 21px;
}

.harmony-ai-parenting__scroll {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  z-index: 3;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.58);
  background: rgba(255,255,255,.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: transform 180ms ease, background-color 180ms ease;
}

.harmony-ai-parenting__scroll:hover {
  color: #fff;
  background: rgba(255,255,255,.16);
  transform: translateX(-50%) translateY(2px);
}

.harmony-ai-parenting__scroll svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.harmony-ai-parenting__heading {
  margin-bottom: 18px;
}

@media (max-width: 1180px) {
  .harmony-ai-parenting__hero {
    min-height: 520px;
  }
}

@media (max-width: 900px) {
  .harmony-ai-parenting__hero {
    min-height: 0;
    padding: 34px 0 58px;
  }

  .harmony-ai-parenting__section {
    padding: 30px 0;
  }
}

@media (max-width: 767px) {
  .harmony-ai-parenting__hero {
    padding-top: 30px;
    padding-bottom: 58px;
  }

  .harmony-ai-parenting__section {
    padding: 26px 0;
  }
}


/* ==========================================================
   HARMONY ARTICLES / BLOG v0.41
   ========================================================== */
.harmony-articles,
.harmony-single-article {
  color: var(--harmony-text);
  font-family: var(--harmony-heading-font);
}
.harmony-articles *,
.harmony-articles *::before,
.harmony-articles *::after,
.harmony-single-article *,
.harmony-single-article *::before,
.harmony-single-article *::after { box-sizing: border-box; }
.harmony-articles__wrap,
.harmony-single-article__wrap {
  width: min(100% - (2 * var(--harmony-page-gutter)), var(--harmony-content-max));
  margin-inline: auto;
}
.harmony-articles__hero,
.harmony-single-article__hero {
  position: relative;
  min-height: 360px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 86% 12%, rgba(120,199,204,.24), transparent 23%),
    linear-gradient(135deg, #f8fbfb 0%, #eaf6f6 100%);
}
.harmony-articles__hero::before,
.harmony-articles__hero::after,
.harmony-single-article__hero::before,
.harmony-single-article__hero::after {
  content: '';
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}
.harmony-articles__hero::before,
.harmony-single-article__hero::before {
  width: 230px;
  height: 230px;
  right: 7%;
  top: -116px;
  border: 1px solid rgba(120,199,204,.42);
}
.harmony-articles__hero::after,
.harmony-single-article__hero::after {
  width: 112px;
  height: 112px;
  right: 17%;
  bottom: -34px;
  background: rgba(120,199,204,.10);
}
.harmony-articles__hero-content,
.harmony-single-article__hero-content { position: relative; z-index: 1; }
.harmony-articles__eyebrow,
.harmony-single-article__eyebrow {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 16px;
  color: var(--harmony-blue);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .10em;
}
.harmony-articles__eyebrow::before,
.harmony-single-article__eyebrow::before {
  content: '';
  width: 56px;
  height: 1px;
  flex: 0 0 56px;
  background: var(--harmony-aqua);
}
.harmony-articles__eyebrow::after,
.harmony-single-article__eyebrow::after {
  content: '';
  order: -0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex: 0 0 7px;
  background: var(--harmony-aqua);
}
/* Keep the locked visual order: line → dot → label */
.harmony-articles__eyebrow,
.harmony-single-article__eyebrow { flex-direction: row; }
.harmony-articles__eyebrow::before,
.harmony-single-article__eyebrow::before { order: 1; }
.harmony-articles__eyebrow::after,
.harmony-single-article__eyebrow::after { order: 2; }
.harmony-articles__eyebrow-text,
.harmony-single-article__eyebrow-text { order: 3; }
.harmony-articles__hero h1,
.harmony-single-article__hero h1 {
  margin: 0;
  max-width: 1040px;
  color: var(--harmony-ink);
  font-size: clamp(44px, 5.2vw, 70px);
  line-height: 1.01;
  letter-spacing: -.035em;
  font-weight: 700;
}
.harmony-articles__hero-lead,
.harmony-single-article__hero-lead {
  max-width: 900px;
  margin: 17px 0 0;
  color: var(--harmony-text);
  font-size: 18px;
  line-height: 1.75;
}
.harmony-articles__scroll {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(47,120,151,.26);
  background: rgba(255,255,255,.58);
  color: var(--harmony-blue);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  text-decoration: none;
}
.harmony-articles__scroll svg { width: 20px; height: 20px; fill: currentColor; }
.harmony-articles__content { padding: 54px 0 64px; }
.harmony-articles__section-head { margin-bottom: 26px; }
.harmony-articles__section-head h2 {
  margin: 0;
  color: var(--harmony-ink);
  font-size: clamp(32px, 3.2vw, 44px);
  line-height: 1.08;
  letter-spacing: -.025em;
}
.harmony-articles__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.harmony-article-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--harmony-border);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(36,52,56,.055);
  transition: transform .2s ease, box-shadow .2s ease;
}
.harmony-article-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 34px rgba(36,52,56,.09);
}
.harmony-article-card__image-link { display: block; background: var(--harmony-aqua-soft); }
.harmony-article-card__image {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}
.harmony-article-card__image--placeholder {
  aspect-ratio: 16 / 10;
  background:
    radial-gradient(circle at 75% 30%, rgba(120,199,204,.42), transparent 30%),
    linear-gradient(135deg, #eaf6f6 0%, #f8fbfb 100%);
}
.harmony-article-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 23px 22px 22px;
}
.harmony-article-card__meta {
  color: var(--harmony-blue);
  font-size: 12px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 11px;
}
.harmony-article-card h3 {
  margin: 0 0 12px;
  color: var(--harmony-ink);
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -.018em;
}
.harmony-article-card h3 a { color: inherit; text-decoration: none; }
.harmony-article-card__excerpt {
  color: var(--harmony-text);
  font-size: 15px;
  line-height: 1.75;
  margin: 0 0 18px;
}
.harmony-article-card__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  color: var(--harmony-blue);
  font-weight: 800;
  text-decoration: none;
}
.harmony-article-card__more:hover { color: var(--harmony-blue-hover); }
.harmony-articles__empty {
  padding: 32px;
  border: 1px solid var(--harmony-border);
  border-radius: 22px;
  background: var(--harmony-aqua-soft);
  color: var(--harmony-text);
}
.harmony-articles__pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 34px;
}
.harmony-articles__pagination .page-numbers {
  min-width: 42px;
  height: 42px;
  padding: 0 13px;
  border-radius: 999px;
  border: 1px solid var(--harmony-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--harmony-ink);
  text-decoration: none;
  background: #fff;
  font-weight: 700;
}
.harmony-articles__pagination .page-numbers.current {
  background: var(--harmony-blue);
  border-color: var(--harmony-blue);
  color: #fff;
}

/* Single article */
.harmony-single-article__hero { min-height: 360px; }
.harmony-single-article__hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin-top: 18px;
  color: var(--harmony-blue);
  font-size: 14px;
  font-weight: 700;
}
.harmony-single-article__main { padding: 52px 0 62px; }
.harmony-single-article__featured {
  max-width: 1120px;
  margin: 0 auto 38px;
  border-radius: 26px;
  overflow: hidden;
  border: 1px solid var(--harmony-border);
  box-shadow: var(--harmony-shadow-soft);
}
.harmony-single-article__featured img {
  width: 100%;
  max-height: 620px;
  object-fit: cover;
  display: block;
}
.harmony-single-article__content {
  max-width: 900px;
  margin: 0 auto;
  color: var(--harmony-text);
  font-size: 17px;
  line-height: 1.9;
  text-align: justify;
}
.harmony-single-article__content p { margin: 0 0 1.35em; }
.harmony-single-article__content h2,
.harmony-single-article__content h3,
.harmony-single-article__content h4 {
  color: var(--harmony-ink);
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 1.8em 0 .7em;
  text-align: left;
}
.harmony-single-article__content h2 { font-size: clamp(28px, 3vw, 38px); }
.harmony-single-article__content h3 { font-size: 26px; }
.harmony-single-article__content ul,
.harmony-single-article__content ol { padding-left: 1.25em; margin: 0 0 1.4em; }
.harmony-single-article__content blockquote {
  margin: 28px 0;
  padding: 22px 24px;
  border-left: 4px solid var(--harmony-aqua);
  background: var(--harmony-aqua-soft);
  border-radius: 0 18px 18px 0;
  color: var(--harmony-ink);
}
.harmony-single-article__content a { color: var(--harmony-blue); }
.harmony-single-article__footer-nav {
  max-width: 900px;
  margin: 42px auto 0;
  padding-top: 28px;
  border-top: 1px solid var(--harmony-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.harmony-single-article__footer-nav a {
  color: var(--harmony-blue);
  font-weight: 800;
  text-decoration: none;
}
.harmony-single-article__more { padding: 44px 0 62px; background: var(--harmony-aqua-soft); }
.harmony-single-article__more h2 {
  color: var(--harmony-ink);
  font-size: clamp(30px, 3.2vw, 42px);
  margin: 0 0 24px;
}
@media (max-width: 1050px) {
  .harmony-articles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .harmony-articles__hero,
  .harmony-single-article__hero { min-height: 330px; }
  .harmony-articles__wrap,
  .harmony-single-article__wrap { width: min(100% - 36px, var(--harmony-content-max)); }
  .harmony-articles__content { padding: 44px 0 52px; }
  .harmony-single-article__main { padding: 42px 0 50px; }
}
@media (max-width: 700px) {
  .harmony-articles__hero,
  .harmony-single-article__hero { min-height: 300px; }
  .harmony-articles__grid { grid-template-columns: 1fr; }
  .harmony-articles__hero h1,
  .harmony-single-article__hero h1 { font-size: clamp(38px, 12vw, 52px); }
  .harmony-articles__hero-lead,
  .harmony-single-article__hero-lead { font-size: 16px; }
  .harmony-single-article__content { font-size: 16px; text-align: left; }
  .harmony-single-article__footer-nav { align-items: flex-start; flex-direction: column; }
}


/* ==========================================================
   HARMONY HOMEPAGE v0.42
   ========================================================== */
.harmony-home {
  color: var(--harmony-text);
  overflow: hidden;
}
.harmony-home *,
.harmony-home *::before,
.harmony-home *::after { box-sizing: border-box; }
.harmony-home__wrap {
  width: min(100% - 48px, var(--harmony-content-max));
  margin: 0 auto;
}
.harmony-home__section {
  padding: clamp(54px, 5.4vw, 76px) 0;
}
.harmony-home__section--soft { background: var(--harmony-aqua-soft); }
.harmony-home__section--wash { background: #F7FBFA; }
.harmony-home__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 16px;
  text-transform: uppercase;
  letter-spacing: .09em;
  font-size: 13px;
  font-weight: 800;
  color: var(--harmony-blue);
}
.harmony-home__eyebrow::before {
  content: '';
  width: 48px;
  height: 1px;
  background: var(--harmony-aqua);
}
.harmony-home__eyebrow::after {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--harmony-aqua);
  order: 0;
}
.harmony-home__eyebrow span { order: 1; }
.harmony-home__heading {
  max-width: 900px;
  margin-bottom: 30px;
}
.harmony-home__heading h2,
.harmony-home__about h2,
.harmony-home__ai h2,
.harmony-home__cta h2 {
  font-family: var(--harmony-heading-font);
  color: var(--harmony-ink);
  letter-spacing: -0.03em;
}
.harmony-home__heading h2 {
  margin: 0;
  font-size: clamp(34px, 4.2vw, 54px);
  line-height: 1.04;
}
.harmony-home__heading p {
  max-width: 760px;
  margin: 14px 0 0;
  font-size: 17px;
  line-height: 1.8;
}

/* Hero */
.harmony-home__hero {
  position: relative;
  min-height: clamp(600px, 69vh, 760px);
  display: flex;
  align-items: center;
  background-image:
    linear-gradient(90deg, rgba(27, 47, 52, .88) 0%, rgba(27, 47, 52, .75) 38%, rgba(27, 47, 52, .28) 72%, rgba(27, 47, 52, .08) 100%),
    var(--harmony-home-hero);
  background-size: cover;
  background-position: center 50%;
  color: #fff;
}
.harmony-home__hero::after {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 100px;
  background: linear-gradient(to top, rgba(0,0,0,.08), transparent);
  pointer-events: none;
}
.harmony-home__hero-inner {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1480px);
  margin: 0 auto;
  padding: 62px 0 72px;
}
.harmony-home__hero-copy { max-width: 760px; }
.harmony-home__hero .harmony-home__eyebrow { color: rgba(255,255,255,.92); }
.harmony-home__hero .harmony-home__eyebrow::before,
.harmony-home__hero .harmony-home__eyebrow::after { background: rgba(120,199,204,.95); }
.harmony-home__hero h1 {
  margin: 0;
  max-width: 760px;
  font-family: var(--harmony-heading-font);
  font-size: clamp(48px, 6.5vw, 82px);
  line-height: .98;
  letter-spacing: -0.045em;
  color: #fff;
}
.harmony-home__hero-lead {
  max-width: 670px;
  margin: 22px 0 0;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.7;
  color: rgba(255,255,255,.92);
}
.harmony-home__hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}
.harmony-home__btn {
  min-height: 52px;
  padding: 13px 26px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.harmony-home__btn:hover { transform: translateY(-1px); text-decoration: none; }
.harmony-home__btn--primary {
  background: var(--harmony-blue);
  color: #fff;
  box-shadow: 0 10px 28px rgba(0,0,0,.14);
}
.harmony-home__btn--primary:hover { background: var(--harmony-blue-hover); color: #fff; }
.harmony-home__btn--light {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.38);
  color: #fff;
  backdrop-filter: blur(4px);
}
.harmony-home__btn--light:hover { background: rgba(255,255,255,.2); color: #fff; }
.harmony-home__hero-scroll {
  position: absolute;
  left: 50%;
  bottom: 22px;
  z-index: 2;
  transform: translateX(-50%);
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(255,255,255,.08);
  color: #fff;
}
.harmony-home__hero-scroll svg { width: 22px; height: 22px; fill: currentColor; }

/* About */
.harmony-home__about {
  display: grid;
  grid-template-columns: minmax(330px, .8fr) minmax(0, 1.2fr);
  gap: clamp(34px, 5vw, 72px);
  align-items: center;
}
.harmony-home__about-image-wrap {
  position: relative;
  max-width: 520px;
}
.harmony-home__about-image-wrap::before {
  content: '';
  position: absolute;
  inset: 18px -18px -18px 18px;
  border: 1px solid rgba(120,199,204,.72);
  border-radius: 28px;
}
.harmony-home__about-image {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 38%;
  border-radius: 28px;
  display: block;
}
.harmony-home__about h2 {
  margin: 0;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.06;
}
.harmony-home__about-copy p {
  font-size: 17px;
  line-height: 1.85;
  margin: 18px 0 0;
  text-align: justify;
}
.harmony-home__about-copy .harmony-home__btn { margin-top: 24px; }

/* Services */
.harmony-home__services-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.harmony-home__service-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--harmony-border);
  border-radius: 26px;
  box-shadow: 0 12px 26px rgba(36,52,56,.06);
  display: grid;
  grid-template-columns: 43% 57%;
  min-height: 300px;
}
.harmony-home__service-media {
  min-height: 100%;
  overflow: hidden;
}
.harmony-home__service-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.harmony-home__service-card:hover img { transform: scale(1.025); }
.harmony-home__service-body {
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.harmony-home__service-body h3 {
  margin: 0;
  font-family: var(--harmony-heading-font);
  color: var(--harmony-ink);
  font-size: clamp(23px, 2.2vw, 31px);
  line-height: 1.1;
}
.harmony-home__service-body p {
  margin: 14px 0 18px;
  font-size: 15px;
  line-height: 1.75;
}
.harmony-home__more {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  color: var(--harmony-blue);
  text-decoration: none;
}
.harmony-home__more:hover { color: var(--harmony-blue-hover); }

/* Online strip */
.harmony-home__online {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: 34px;
  align-items: center;
}
.harmony-home__online-media img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  border-radius: 28px;
  display: block;
}
.harmony-home__online-copy h2 {
  margin: 0;
  font-family: var(--harmony-heading-font);
  color: var(--harmony-ink);
  font-size: clamp(32px, 4vw, 50px);
  line-height: 1.05;
}
.harmony-home__online-copy p { font-size: 17px; line-height: 1.85; margin: 16px 0 0; }

/* AI Parenting */
.harmony-home__ai-shell {
  border-radius: 34px;
  overflow: hidden;
  background:
    radial-gradient(circle at right top, rgba(110,77,255,.34), transparent 30%),
    linear-gradient(135deg, #111827 0%, #18243c 55%, #24155b 100%);
  color: #fff;
  padding: clamp(30px, 4vw, 48px);
}
.harmony-home__ai {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(480px, 1.08fr);
  gap: 38px;
  align-items: center;
}
.harmony-home__ai .harmony-home__eyebrow { color: rgba(255,255,255,.9); }
.harmony-home__ai .harmony-home__eyebrow::before,
.harmony-home__ai .harmony-home__eyebrow::after { background: rgba(120,199,204,.92); }
.harmony-home__ai h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.03;
}
.harmony-home__ai p {
  margin: 16px 0 0;
  font-size: 17px;
  line-height: 1.8;
  color: rgba(255,255,255,.82);
}
.harmony-home__ai .harmony-home__btn { margin-top: 24px; }
.harmony-home__ai-visual {
  padding: 12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 28px;
}
.harmony-home__ai-visual img { width: 100%; display: block; border-radius: 20px; }

/* Articles */
.harmony-home__articles-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.harmony-home__article {
  overflow: hidden;
  border: 1px solid var(--harmony-border);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 10px 22px rgba(36,52,56,.05);
}
.harmony-home__article-image,
.harmony-home__article-placeholder {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}
.harmony-home__article-placeholder { background: linear-gradient(135deg, #EAF6F6, #F7FBFA); }
.harmony-home__article-body { padding: 22px; }
.harmony-home__article-meta {
  font-size: 13px;
  color: var(--harmony-muted);
  margin-bottom: 8px;
}
.harmony-home__article h3 {
  margin: 0;
  font-size: 22px;
  line-height: 1.25;
  font-family: var(--harmony-heading-font);
}
.harmony-home__article h3 a { color: var(--harmony-ink); text-decoration: none; }
.harmony-home__article p { line-height: 1.7; margin: 12px 0 16px; }
.harmony-home__articles-empty {
  padding: 28px;
  border-radius: 22px;
  border: 1px dashed var(--harmony-border);
  background: #fff;
  color: var(--harmony-muted);
}
.harmony-home__section-actions { margin-top: 26px; }

/* CTA */
.harmony-home__cta {
  border: 1px solid rgba(120,199,204,.5);
  background: linear-gradient(135deg, #EAF6F6 0%, #F7FBFA 100%);
  border-radius: 28px;
  padding: clamp(30px, 4vw, 44px);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 24px;
}
.harmony-home__cta h2 {
  margin: 0;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.05;
}
.harmony-home__cta p { margin: 12px 0 0; line-height: 1.75; font-size: 16px; }

@media (max-width: 1120px) {
  .harmony-home__service-card { grid-template-columns: 1fr; }
  .harmony-home__service-media img { height: 240px; }
  .harmony-home__ai { grid-template-columns: 1fr; }
  .harmony-home__online { grid-template-columns: 1fr; }
}
@media (max-width: 880px) {
  .harmony-home__about,
  .harmony-home__services-grid,
  .harmony-home__articles-grid,
  .harmony-home__cta { grid-template-columns: 1fr; }
  .harmony-home__hero { min-height: 560px; background-position: 58% center; }
  .harmony-home__hero h1 { font-size: clamp(43px, 12vw, 64px); }
  .harmony-home__about-image-wrap { max-width: 460px; margin: 0 auto; }
  .harmony-home__cta .harmony-home__btn { width: 100%; }
}
@media (max-width: 640px) {
  .harmony-home__wrap,
  .harmony-home__hero-inner { width: min(100% - 28px, 1480px); }
  .harmony-home__hero { min-height: 530px; background-position: 62% center; }
  .harmony-home__hero-inner { padding-top: 46px; padding-bottom: 64px; }
  .harmony-home__hero-actions { flex-direction: column; align-items: stretch; }
  .harmony-home__hero-actions .harmony-home__btn { width: 100%; }
  .harmony-home__service-body { padding: 22px; }
  .harmony-home__online-media img { height: 260px; }
}


/* ==========================================================
   HARMONY HOMEPAGE v0.43 — LOCKED BANNER + COMPACT RHYTHM
   - Same 360 / 330 / 300px banner height as all internal pages.
   - Two-slide hero using the original Harmony banner photographs.
   - Independent focal points, arrows, dots and the shared down-arrow.
   - Tighter spacing between homepage sections only.
   ========================================================== */
.page-template-template-harmony-elementor-editable .harmony-home__section {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__heading {
  margin-bottom: 24px;
}
.page-template-template-harmony-elementor-editable .harmony-home__about {
  gap: clamp(30px, 4vw, 56px);
}
.page-template-template-harmony-elementor-editable .harmony-home__service-card {
  min-height: 270px;
}
.page-template-template-harmony-elementor-editable .harmony-home__ai-shell {
  padding: clamp(26px, 3.2vw, 40px);
}
.page-template-template-harmony-elementor-editable .harmony-home__section-actions {
  margin-top: 20px;
}

/* Home slider uses the exact locked internal-banner heights. */
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider {
  position: relative;
  width: 100%;
  height: var(--harmony-internal-hero-min);
  min-height: var(--harmony-internal-hero-min);
  overflow: hidden;
  background: #17282d;
  color: #fff;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.015);
  transition: opacity .75s ease, visibility .75s ease, transform 1.2s ease;
  background-size: cover;
  background-repeat: no-repeat;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  z-index: 2;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide--one {
  background-position: center 48%;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide--two {
  /* Final homepage focal point: shifts the source image upward inside the locked-height banner
     so more of the seated figure/chair remains visible without changing banner dimensions. */
  background-position: center 66%;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(17,28,31,.88) 0%, rgba(17,28,31,.77) 36%, rgba(17,28,31,.34) 67%, rgba(17,28,31,.10) 100%);
}
.page-template-template-harmony-elementor-editable .harmony-home__slide--two::before {
  background: linear-gradient(90deg, rgba(12,18,20,.90) 0%, rgba(12,18,20,.80) 39%, rgba(12,18,20,.28) 70%, rgba(12,18,20,.12) 100%);
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-inner {
  position: relative;
  z-index: 2;
  width: min(1360px, calc(100% - 48px));
  margin: 0 auto;
  padding: 22px 0 48px;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-copy {
  max-width: 710px;
}
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider .harmony-home__eyebrow {
  margin-bottom: 10px;
  color: rgba(255,255,255,.94);
}
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider .harmony-home__eyebrow::before,
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider .harmony-home__eyebrow::after {
  background: rgba(120,199,204,.95);
}
.page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
  margin: 0;
  max-width: 720px;
  color: #fff;
  font-family: var(--harmony-heading-font);
  font-size: clamp(38px, 4.1vw, 58px);
  line-height: 1.02;
  letter-spacing: -.038em;
  font-weight: 750;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide h1 em {
  font-weight: 500;
  font-style: italic;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
  max-width: 640px;
  margin: 12px 0 0;
  color: rgba(255,255,255,.90);
  font-size: 16px;
  line-height: 1.55;
  font-weight: 600;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-actions .harmony-home__btn {
  min-height: 44px;
  padding: 10px 21px;
  font-size: 14px;
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow {
  position: absolute;
  z-index: 5;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 50%;
  background: rgba(20,31,34,.22);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
  backdrop-filter: blur(4px);
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow:hover {
  background: rgba(120,199,204,.28);
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow--prev { left: 18px; }
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow--next { right: 18px; }
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-dots {
  position: absolute;
  z-index: 5;
  left: max(24px, calc((100% - 1360px) / 2));
  bottom: 18px;
  display: flex;
  gap: 9px;
  align-items: center;
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-dot {
  width: 10px;
  height: 10px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 50%;
  background: rgba(255,255,255,.25);
  cursor: pointer;
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-dot.is-active {
  width: 12px;
  height: 12px;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255,255,255,.14);
}
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider .harmony-home__hero-scroll {
  bottom: 10px;
  width: 40px;
  height: 40px;
  z-index: 6;
}

/* Reuse the original portrait on the homepage, but with the locked rounded Harmony treatment. */
.page-template-template-harmony-elementor-editable .harmony-home__about-image-wrap {
  max-width: 440px;
}
.page-template-template-harmony-elementor-editable .harmony-home__about-image {
  aspect-ratio: 4 / 5;
  object-position: center 34%;
  border-radius: 28px;
}

/* Elementor full-width bridge for the homepage widget. */
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-home,
.page-template-template-harmony-elementor-editable .elementor-widget-harmony-home > .elementor-widget-container,
.page-template-template-harmony-elementor-editable .elementor-element:has(> .elementor-widget-container > .harmony-home) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-home__hero-slider {
    height: var(--harmony-internal-hero-tablet);
    min-height: var(--harmony-internal-hero-tablet);
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide--one { background-position: 58% 50%; }
  .page-template-template-harmony-elementor-editable .harmony-home__slide--two { background-position: 58% 45%; }
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1 { font-size: clamp(34px, 7vw, 48px); }
  .page-template-template-harmony-elementor-editable .harmony-home__slider-arrow { display: none; }
  .page-template-template-harmony-elementor-editable .harmony-home__section {
    padding-top: 38px !important;
    padding-bottom: 38px !important;
  }
}
@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-home__hero-slider {
    height: var(--harmony-internal-hero-mobile);
    min-height: var(--harmony-internal-hero-mobile);
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-inner {
    width: calc(100% - 30px);
    padding: 16px 0 44px;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide--one { background-position: 60% 50%; }
  .page-template-template-harmony-elementor-editable .harmony-home__slide--two { background-position: 62% 50%; }
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
    max-width: 94%;
    font-size: clamp(29px, 9vw, 39px);
    line-height: 1.02;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
    max-width: 90%;
    font-size: 13.5px;
    line-height: 1.45;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-actions {
    margin-top: 11px;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-actions .harmony-home__btn {
    min-height: 38px;
    padding: 8px 15px;
    font-size: 12px;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slider-dots {
    left: 15px;
    bottom: 15px;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__hero-slider .harmony-home__hero-scroll {
    bottom: 8px;
    width: 36px;
    height: 36px;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__section {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .page-template-template-harmony-elementor-editable .harmony-home__slide {
    transition: opacity .15s linear;
    transform: none !important;
  }
}


/* ==========================================================
   HARMONY HOMEPAGE v0.44 — FINAL HERO RHYTHM + SECTION ORDER
   - Homepage hero remains locked to internal-banner height.
   - Slide 1 returns to the original warm therapy-space visual.
   - Slide copy enters in sequence for a calmer premium feel.
   - Slider controls are compact, with no oversized circles.
   - Homepage section spacing tightened further.
   ========================================================== */
.page-template-template-harmony-elementor-editable .harmony-home__section {
  padding-top: 34px !important;
  padding-bottom: 34px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__heading {
  margin-bottom: 20px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__about {
  gap: clamp(26px, 3vw, 44px) !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__services-grid,
.page-template-template-harmony-elementor-editable .harmony-home__articles-grid {
  gap: 18px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__online {
  gap: 28px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__online-media img {
  height: 330px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__ai-shell {
  padding: clamp(24px, 3vw, 34px) !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__ai {
  gap: 30px !important;
}

/* Slider: keep the globally locked 360 / 330 / 300 hero height. */
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider {
  height: var(--harmony-internal-hero-min) !important;
  min-height: var(--harmony-internal-hero-min) !important;
  max-height: var(--harmony-internal-hero-min) !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide--one {
  background-position: center 50% !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide--two {
  background-position: center 41% !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-inner {
  padding-top: 30px !important;
  padding-bottom: 40px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-copy {
  max-width: 760px !important;
  transform: translateY(10px);
}
.page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
  max-width: 760px !important;
  font-size: clamp(36px, 3.75vw, 52px) !important;
  line-height: 1.01 !important;
  letter-spacing: -.034em !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide h1 em {
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 400 !important;
  font-style: italic !important;
  letter-spacing: -.018em !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
  margin-top: 10px !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-actions {
  margin-top: 13px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-actions .harmony-home__btn {
  min-height: 40px !important;
  padding: 8px 18px !important;
  font-size: 13px !important;
}

/* Sequential entrance: eyebrow -> title -> lead -> actions. */
.page-template-template-harmony-elementor-editable .harmony-home__slide .harmony-home__eyebrow,
.page-template-template-harmony-elementor-editable .harmony-home__slide h1,
.page-template-template-harmony-elementor-editable .harmony-home__slide-lead,
.page-template-template-harmony-elementor-editable .harmony-home__slide-actions {
  opacity: 0;
  transform: translateY(14px);
}
.page-template-template-harmony-elementor-editable .harmony-home__slide.is-active .harmony-home__eyebrow {
  animation: harmonyHomeTextIn .58s .08s both ease-out;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide.is-active h1 {
  animation: harmonyHomeTextIn .66s .20s both ease-out;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide.is-active .harmony-home__slide-lead {
  animation: harmonyHomeTextIn .62s .34s both ease-out;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide.is-active .harmony-home__slide-actions {
  animation: harmonyHomeTextIn .58s .46s both ease-out;
}
@keyframes harmonyHomeTextIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Compact slider arrows: explicitly neutralise parent-theme button decoration. */
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow {
  all: unset !important;
  box-sizing: border-box !important;
  position: absolute !important;
  z-index: 7 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: rgba(15, 28, 32, .48) !important;
  border: 1px solid rgba(255,255,255,.48) !important;
  color: #fff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  backdrop-filter: blur(3px);
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow::before,
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow::after {
  content: none !important;
  display: none !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow--prev { left: 14px !important; }
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow--next { right: 14px !important; }
.page-template-template-harmony-elementor-editable .harmony-home__slider-arrow svg {
  width: 14px !important;
  height: 14px !important;
  fill: currentColor !important;
  display: block !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-dots {
  bottom: 12px !important;
  gap: 7px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-dot {
  all: unset !important;
  box-sizing: border-box !important;
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  background: rgba(255,255,255,.22) !important;
  cursor: pointer !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slider-dot.is-active {
  width: 9px !important;
  height: 9px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__hero-scroll {
  width: 34px !important;
  height: 34px !important;
  bottom: 10px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__hero-scroll svg {
  width: 16px !important;
  height: 16px !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-home__section {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-copy {
    max-width: 72% !important;
    transform: translateY(8px);
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
    font-size: clamp(32px, 6vw, 44px) !important;
  }
}
@media (max-width: 640px) {
  .page-template-template-harmony-elementor-editable .harmony-home__section {
    padding-top: 26px !important;
    padding-bottom: 26px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-inner {
    width: min(100% - 34px, 1360px) !important;
    padding-top: 26px !important;
    padding-bottom: 38px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-copy {
    max-width: 84% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
    font-size: clamp(29px, 8.2vw, 38px) !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
    font-size: 13px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slider-arrow {
    width: 28px !important;
    height: 28px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slider-arrow--prev { left: 7px !important; }
  .page-template-template-harmony-elementor-editable .harmony-home__slider-arrow--next { right: 7px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .page-template-template-harmony-elementor-editable .harmony-home__slide .harmony-home__eyebrow,
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1,
  .page-template-template-harmony-elementor-editable .harmony-home__slide-lead,
  .page-template-template-harmony-elementor-editable .harmony-home__slide-actions {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}


/* ==========================================================
   HARMONY HOMEPAGE v0.45 — HERO TYPOGRAPHY + SERVICES ONE-LINE
   User-approved refinements only:
   - service heading/intro use the full desktop width and stay on one line when space allows;
   - hero titles are lighter/cleaner, with only the emphasis in italic;
   - hero subtitle rises gently from below on each active slide;
   - slide 2 focal point is raised in the source image so the man sits lower and his full head stays visible.
   ========================================================== */
@media (min-width: 1101px) {
  .page-template-template-harmony-elementor-editable #harmony-home-services .harmony-home__heading {
    max-width: 100% !important;
  }
  .page-template-template-harmony-elementor-editable #harmony-home-services .harmony-home__heading h2 {
    max-width: 100% !important;
    white-space: nowrap !important;
    font-size: clamp(42px, 3.35vw, 52px) !important;
    line-height: 1.05 !important;
  }
  .page-template-template-harmony-elementor-editable #harmony-home-services .harmony-home__heading > p:last-child {
    max-width: 100% !important;
    white-space: nowrap !important;
  }
}

/* Keep the main hero refined rather than heavy: normal/medium title + elegant italic emphasis. */
.page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
  font-weight: 500 !important;
  text-wrap: balance;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide h1 em {
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: italic !important;
  font-weight: 400 !important;
}

/* Give the title/subtitle a little more breathing room without changing the locked banner height. */
.page-template-template-harmony-elementor-editable .harmony-home__slide-copy {
  max-width: 900px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
  max-width: 900px !important;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
  max-width: 820px !important;
  font-weight: 500 !important;
}

/* Slide 2: show the man's full head while keeping the 360/330/300 locked hero height. */
.page-template-template-harmony-elementor-editable .harmony-home__slide--two {
  background-position: center 22% !important;
}

/* Subtitle enters independently from below after the title. */
.page-template-template-harmony-elementor-editable .harmony-home__slide .harmony-home__slide-lead {
  opacity: 0;
  transform: translateY(28px);
  will-change: opacity, transform;
}
.page-template-template-harmony-elementor-editable .harmony-home__slide.is-active .harmony-home__slide-lead {
  animation: harmonyHomeLeadRise .76s .42s both cubic-bezier(.22,.75,.24,1) !important;
}
@keyframes harmonyHomeLeadRise {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1100px) {
  .page-template-template-harmony-elementor-editable #harmony-home-services .harmony-home__heading h2,
  .page-template-template-harmony-elementor-editable #harmony-home-services .harmony-home__heading > p:last-child {
    white-space: normal !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-copy,
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
    max-width: 78% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
    max-width: 72% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide--two {
    background-position: center 20% !important;
  }
}
@media (max-width: 640px) {
  .page-template-template-harmony-elementor-editable .harmony-home__slide-copy,
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
    max-width: 86% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
    max-width: 84% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide--two {
    background-position: 62% 18% !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .page-template-template-harmony-elementor-editable .harmony-home__slide .harmony-home__slide-lead,
  .page-template-template-harmony-elementor-editable .harmony-home__slide.is-active .harmony-home__slide-lead {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.48
   - removes legacy top bar
   - full-width logo + large Harmony navigation
   - AI Parenting uses its own deep accent
   ========================================================== */
.header__nav .header__secondary {
  display: none !important;
}

.header__nav {
  position: sticky !important;
  top: 0;
  z-index: 9990 !important;
  background: rgba(255,255,255,0.98) !important;
  box-shadow: 0 6px 24px rgba(36,52,56,0.07) !important;
  backdrop-filter: blur(10px);
}
.admin-bar .header__nav { top: 32px; }

.header__nav .header__primary {
  min-height: 104px !important;
  background: #fff !important;
  border: 0 !important;
}

.header__nav .header__primary > .wrap,
.header__nav .header__primary > .wrap > .container {
  width: 100% !important;
  max-width: none !important;
  min-height: 104px !important;
  margin: 0 !important;
  padding: 0 24px !important;
}

.header__nav .header__primary > .wrap,
.header__nav .header__primary > .wrap > .container {
  display: flex !important;
  align-items: center !important;
}

.header__nav .nav__logo {
  position: static !important;
  float: none !important;
  flex: 0 0 auto !important;
  margin: 0 34px 0 0 !important;
  padding: 0 !important;
  transform: none !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
}
.header__nav .nav__logo a {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
.header__nav .nav__logo img.main__logo,
.header__nav .nav__logo img.sticky__logo {
  width: auto !important;
  max-width: 235px !important;
  max-height: 84px !important;
  height: auto !important;
  margin: 0 !important;
}

/* The legacy right-side phone / social / Book Online block is replaced by the menu below. */
.header__nav .header__primary .nav__content {
  display: none !important;
}

.header__nav .nav__main {
  position: static !important;
  float: none !important;
  flex: 1 1 auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: right !important;
}
.header__nav .nav__container {
  width: 100% !important;
}
.header__nav .nav__list {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 7px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.header__nav .nav__list > li {
  position: relative !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.header__nav .nav__list > li > a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 50px !important;
  padding: 12px 15px !important;
  border-radius: 999px !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--harmony-ink) !important;
  font-family: var(--harmony-heading-font) !important;
  font-size: 14.5px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease !important;
}
.header__nav .nav__list > li > a:hover,
.header__nav .nav__list > li.current-menu-item > a,
.header__nav .nav__list > li.current-menu-ancestor > a {
  background: var(--harmony-aqua-soft) !important;
  border-color: rgba(120,199,204,.42) !important;
  color: var(--harmony-blue) !important;
}
.header__nav .nav__list > li > a:hover {
  transform: translateY(-1px) !important;
}

.header__nav .nav__list > li.menu-item-has-children > a::after {
  content: "⌄" !important;
  display: inline-block !important;
  margin-left: 7px !important;
  font-size: 13px !important;
  line-height: 1 !important;
  opacity: .72;
}

/* Dropdowns */
.header__nav .nav__list > li > .sub-menu {
  display: block !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  z-index: 10020 !important;
  top: calc(100% + 10px) !important;
  left: 0 !important;
  width: max-content !important;
  min-width: 260px !important;
  margin: 0 !important;
  padding: 10px !important;
  border: 1px solid var(--harmony-border) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 18px 42px rgba(36,52,56,.14) !important;
  transform: translateY(8px) !important;
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease !important;
}
.header__nav .nav__list > li:hover > .sub-menu,
.header__nav .nav__list > li:focus-within > .sub-menu {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}
.header__nav .nav__list .sub-menu li {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.header__nav .nav__list .sub-menu a {
  display: block !important;
  width: 100% !important;
  padding: 11px 13px !important;
  border-radius: 11px !important;
  color: var(--harmony-ink) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 650 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}
.header__nav .nav__list .sub-menu a:hover {
  background: var(--harmony-aqua-soft) !important;
  color: var(--harmony-blue) !important;
}

/* AI Parenting: intentionally the only menu item using a separate app accent. */
.header__nav .nav__list > li.harmony-menu-ai > a {
  background: linear-gradient(135deg, #2e275f 0%, #5844c8 100%) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(70,54,157,.18) !important;
}
.header__nav .nav__list > li.harmony-menu-ai > a:hover,
.header__nav .nav__list > li.harmony-menu-ai.current-menu-item > a,
.header__nav .nav__list > li.harmony-menu-ai.current-menu-ancestor > a {
  color: #fff !important;
  background: linear-gradient(135deg, #27214f 0%, #4c38b9 100%) !important;
}
.header__nav .nav__list > li.harmony-menu-ai .sub-menu a:hover {
  background: #f1efff !important;
  color: #4c38b9 !important;
}

/* Phone + appointment CTA */
.header__nav .nav__list > li.harmony-menu-phone {
  margin-left: 8px !important;
}
.header__nav .nav__list > li.harmony-menu-phone > a {
  min-height: 54px !important;
  padding: 11px 18px !important;
  background: #f7fbfa !important;
  border-color: var(--harmony-border) !important;
  color: var(--harmony-ink) !important;
  font-size: 15px !important;
}
.header__nav .nav__list > li.harmony-menu-phone > a::before {
  content: "☎";
  margin-right: 8px;
  color: var(--harmony-blue);
  font-size: 18px;
}
.header__nav .nav__list > li.harmony-menu-booking > a {
  min-height: 54px !important;
  padding: 13px 22px !important;
  background: var(--harmony-blue) !important;
  border-color: var(--harmony-blue) !important;
  color: #fff !important;
  box-shadow: 0 9px 22px rgba(47,120,151,.18) !important;
}
.header__nav .nav__list > li.harmony-menu-booking > a:hover {
  background: var(--harmony-blue-hover) !important;
  border-color: var(--harmony-blue-hover) !important;
  color: #fff !important;
}

/* Parent theme can inject old border/hover pseudo-elements: neutralise them. */
.header__nav .nav__list > li > a::before,
.header__nav .nav__list > li > a > span::before,
.header__nav .nav__list > li > a > span::after {
  border: 0 !important;
  box-shadow: none !important;
}

/* Keep the already-approved mobile navigation mechanism; just remove the legacy top bar. */
@media (max-width: 1199px) {
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  .header__nav .nav__logo img.main__logo,
  .header__nav .nav__logo img.sticky__logo {
    max-width: 205px !important;
    max-height: 76px !important;
  }
  .header__nav .nav__list { gap: 4px !important; }
  .header__nav .nav__list > li > a { padding-left: 11px !important; padding-right: 11px !important; font-size: 13.5px !important; }
  .header__nav .nav__list > li.harmony-menu-phone { display: none !important; }
}

@media (max-width: 991px) {
  .header__nav .header__primary,
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    min-height: 86px !important;
  }
  .header__nav .nav__logo img.main__logo,
  .header__nav .nav__logo img.sticky__logo {
    max-width: 190px !important;
    max-height: 70px !important;
  }
  .header__nav .nav__main { display: none !important; }
  .header__nav .modern__trigger { display: block !important; }
}

@media (max-width: 782px) {
  .admin-bar .header__nav { top: 46px; }
}

@media (max-width: 480px) {
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .header__nav .nav__logo img.main__logo,
  .header__nav .nav__logo img.sticky__logo {
    max-width: 170px !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.49
   Refinements: filled rectangular nav buttons, separators,
   and a hover-safe dropdown bridge (no disappearing menus).
   ========================================================== */
.header__nav .nav__list {
  gap: 0 !important;
}
.header__nav .nav__list > li {
  display: flex !important;
  align-items: center !important;
}
/* Harmony-colour separators between top-level actions. */
.header__nav .nav__list > li + li::before {
  content: "" !important;
  display: block !important;
  flex: 0 0 1px !important;
  width: 1px !important;
  height: 30px !important;
  margin: 0 7px !important;
  background: rgba(120,199,204,.55) !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Main buttons: filled, larger and softly rectangular instead of pills. */
.header__nav .nav__list > li > a {
  min-height: 54px !important;
  padding: 13px 17px !important;
  border-radius: 8px !important;
  border: 1px solid rgba(120,199,204,.45) !important;
  background: #eff9f9 !important;
  color: var(--harmony-ink) !important;
  box-shadow: none !important;
}
.header__nav .nav__list > li > a:hover,
.header__nav .nav__list > li.current-menu-item > a,
.header__nav .nav__list > li.current-menu-ancestor > a {
  background: #dff2f3 !important;
  border-color: var(--harmony-aqua) !important;
  color: var(--harmony-blue) !important;
  transform: none !important;
}

/* AI Parenting remains the only special-colour navigation button. */
.header__nav .nav__list > li.harmony-menu-ai > a {
  border-radius: 8px !important;
  background: linear-gradient(135deg, #2e275f 0%, #5844c8 100%) !important;
  border-color: #4f3fba !important;
  color: #fff !important;
}
.header__nav .nav__list > li.harmony-menu-ai > a:hover,
.header__nav .nav__list > li.harmony-menu-ai.current-menu-item > a,
.header__nav .nav__list > li.harmony-menu-ai.current-menu-ancestor > a {
  background: linear-gradient(135deg, #27214f 0%, #4c38b9 100%) !important;
  border-color: #4030a4 !important;
  color: #fff !important;
}

/* Phone is a subtle filled Harmony utility button; booking stays strong blue. */
.header__nav .nav__list > li.harmony-menu-phone {
  margin-left: 0 !important;
}
.header__nav .nav__list > li.harmony-menu-phone > a {
  min-height: 54px !important;
  border-radius: 8px !important;
  background: #f3f9f8 !important;
  border-color: #cfe4e3 !important;
}
.header__nav .nav__list > li.harmony-menu-booking > a {
  min-height: 54px !important;
  border-radius: 8px !important;
  background: var(--harmony-blue) !important;
  border-color: var(--harmony-blue) !important;
  color: #fff !important;
}

/* Dropdown fix: remove the 10px hover gap that made the menu disappear. */
.header__nav .nav__list > li.menu-item-has-children {
  padding-bottom: 0 !important;
}
.header__nav .nav__list > li > .sub-menu {
  top: 100% !important;
  margin-top: 0 !important;
  padding-top: 10px !important;
  transform: translateY(5px) !important;
  border-radius: 10px !important;
}
/* Invisible hover bridge gives the pointer a continuous path into the dropdown. */
.header__nav .nav__list > li.menu-item-has-children > .sub-menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -10px;
  height: 12px;
  background: transparent;
}
.header__nav .nav__list > li:hover > .sub-menu,
.header__nav .nav__list > li:focus-within > .sub-menu {
  transform: translateY(0) !important;
}
.header__nav .nav__list .sub-menu a {
  border-radius: 6px !important;
}

@media (max-width: 1520px) {
  .header__nav .nav__list > li + li::before {
    margin-left: 4px !important;
    margin-right: 4px !important;
  }
  .header__nav .nav__list > li > a {
    padding-left: 12px !important;
    padding-right: 12px !important;
    font-size: 13.5px !important;
  }
  .header__nav .nav__logo {
    margin-right: 22px !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.50
   - deep-blue dot separators instead of lines
   - remove phone utility from desktop header; keep booking CTA
   - balanced horizontal spacing and slightly inset logo
   ========================================================== */

/* Slightly inset the whole header so the logo does not touch the viewport edge. */
.header__nav .header__primary > .wrap,
.header__nav .header__primary > .wrap > .container {
  padding-left: 40px !important;
  padding-right: 40px !important;
}

/* Give the logo and the first navigation action the same calm breathing room
   that the final CTA has from the right edge. */
.header__nav .nav__logo {
  margin-right: 34px !important;
}

/* Consistent top-level rhythm. */
.header__nav .nav__list {
  gap: 0 !important;
}
.header__nav .nav__list > li {
  gap: 0 !important;
}

/* Replace v0.49 separators with small deep-blue dots. */
.header__nav .nav__list > li + li::before {
  content: "" !important;
  display: block !important;
  flex: 0 0 6px !important;
  width: 6px !important;
  height: 6px !important;
  margin: 0 10px !important;
  border-radius: 50% !important;
  background: var(--harmony-blue) !important;
  opacity: .82 !important;
  box-shadow: none !important;
}

/* No utility phone button in the final desktop header: the booking action is clearer. */
.header__nav .nav__list > li.harmony-menu-phone {
  display: none !important;
}

/* Keep the final booking CTA visually strong but aligned to the same button system. */
.header__nav .nav__list > li.harmony-menu-booking > a {
  min-height: 54px !important;
  padding-left: 22px !important;
  padding-right: 22px !important;
}

@media (max-width: 1520px) {
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    padding-left: 28px !important;
    padding-right: 28px !important;
  }
  .header__nav .nav__logo {
    margin-right: 24px !important;
  }
  .header__nav .nav__list > li + li::before {
    width: 5px !important;
    height: 5px !important;
    flex-basis: 5px !important;
    margin-left: 7px !important;
    margin-right: 7px !important;
  }
}

@media (max-width: 1199px) {
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.51
   Final spacing refinement:
   - no separator between Contact and Booking
   - Contact -> Booking gap mirrors Logo -> Home gap
   ========================================================== */
.header__nav .nav__list > li.harmony-menu-booking::before {
  display: none !important;
  content: none !important;
}
.header__nav .nav__list > li.harmony-menu-booking {
  margin-left: 34px !important;
}

@media (max-width: 1520px) {
  .header__nav .nav__list > li.harmony-menu-booking {
    margin-left: 24px !important;
  }
}

@media (max-width: 1199px) {
  .header__nav .nav__list > li.harmony-menu-booking {
    margin-left: 18px !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.53
   Final desktop centering refinement only:
   - preserve all locked header styling
   - increase Contact -> Booking breathing room
   - this naturally shifts Home -> Contact slightly left while
     keeping Booking anchored at the right, creating visual balance
   ========================================================== */
@media (min-width: 1521px) {
  .header__nav .nav__list > li.harmony-menu-booking {
    margin-left: 84px !important;
  }
}

@media (min-width: 1200px) and (max-width: 1520px) {
  .header__nav .nav__list > li.harmony-menu-booking {
    margin-left: 54px !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.54
   Microscopic final alignment only:
   - nudge Home -> Contact a few pixels right
   - Booking stays fixed
   - no other header styling changes
   ========================================================== */
@media (min-width: 1521px) {
  .header__nav .nav__list > li:not(.harmony-menu-booking) {
    transform: translateX(5px) !important;
  }
}

@media (min-width: 1200px) and (max-width: 1520px) {
  .header__nav .nav__list > li:not(.harmony-menu-booking) {
    transform: translateX(3px) !important;
  }
}

/* ==========================================================
   HARMONY GLOBAL FOOTER v0.56
   More compact footer + centred standalone mark.
   ========================================================== */
.harmony-global-footer {
  width: 100%;
  clear: both;
  background:
    radial-gradient(circle at 82% 18%, rgba(120,199,204,.16), transparent 24%),
    linear-gradient(135deg, #2c565b 0%, #24464c 52%, #2f6570 100%);
  color: #f5fbfb;
  font-family: var(--harmony-heading-font);
  border-top: 1px solid rgba(120,199,204,.40);
}
.harmony-global-footer * { box-sizing: border-box; }
.harmony-global-footer__wrap {
  width: min(calc(100% - 72px), var(--harmony-content-max));
  margin: 0 auto;
  padding: 30px 0 0;
}
.harmony-global-footer__grid {
  display: grid;
  grid-template-columns: 1.25fr .9fr .9fr 1fr;
  gap: clamp(24px, 2.5vw, 42px);
  align-items: start;
}
.harmony-global-footer__brand,
.harmony-global-footer__column,
.harmony-global-footer__booking { min-width: 0; }

.harmony-global-footer__brand {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.harmony-global-footer__logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 112px;
  height: 112px;
  padding: 0;
  margin: 0 auto;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-decoration: none !important;
}
.harmony-global-footer__logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.harmony-global-footer__logo span {
  color: #fff;
  font-weight: 800;
}
.harmony-global-footer__brand > p {
  max-width: 360px;
  margin: 8px auto 8px;
  color: #dff6f4 !important;
  font-size: 13.5px;
  line-height: 1.55;
  text-align: center;
}
.harmony-global-footer__contact-mini {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 7px;
  font-size: 12.8px;
  line-height: 1.45;
}
.harmony-global-footer a {
  color: #f6fcfb;
  text-decoration: none;
  transition: color .2s ease, opacity .2s ease, transform .2s ease;
}
.harmony-global-footer a:hover { color: #fff; }
.harmony-global-footer__contact-mini a { color: #ffffff; }
.harmony-global-footer__contact-mini span {
  color: var(--harmony-aqua);
  font-size: 17px;
  line-height: 1;
}
.harmony-global-footer__column h2,
.harmony-global-footer__booking h2 {
  margin: 1px 0 11px;
  padding: 0 0 8px;
  position: relative;
  color: #fff;
  font-size: 16px;
  line-height: 1.2;
  font-family: var(--harmony-heading-font);
  font-weight: 800;
}
.harmony-global-footer__column h2::after,
.harmony-global-footer__booking h2::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 2px;
  border-radius: 2px;
  background: var(--harmony-aqua);
}
.harmony-global-footer__column ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.harmony-global-footer__column li + li { margin-top: 4px; }
.harmony-global-footer__column a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #eef9f8;
  font-size: 13px;
  line-height: 1.4;
}
.harmony-global-footer__column a::before {
  content: '';
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border-radius: 50%;
  background: var(--harmony-aqua);
}
.harmony-global-footer__column a span {
  padding: 2px 6px;
  border-radius: 6px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
}
.harmony-global-footer__kicker {
  margin: 0 0 4px;
  color: #a9e7ea !important;
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 10.5px;
  font-weight: 800;
}
.harmony-global-footer__booking > p:not(.harmony-global-footer__kicker) {
  margin: 0;
  color: #f2fbfa;
  font-size: 13px;
  line-height: 1.48;
}
.harmony-global-footer__booking .harmony-global-footer__muted {
  margin-top: 5px !important;
  color: #d8eeee !important;
  font-size: 11.8px !important;
}
.harmony-global-footer__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  margin-top: 10px;
  padding: 9px 18px;
  border-radius: 8px;
  background: var(--harmony-aqua);
  border: 1px solid var(--harmony-aqua);
  color: #183a40 !important;
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(16,42,46,.14);
}
.harmony-global-footer__button:hover {
  background: #91d8dc;
  border-color: #91d8dc;
  transform: translateY(-1px);
}
.harmony-global-footer__bottom {
  min-height: 38px;
  margin-top: 16px;
  border-top: 1px solid rgba(255,255,255,.16);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: #d8eeee;
  font-size: 11.8px;
}
.harmony-global-footer__bottom p { margin: 0; color: #bfe4e6 !important; }
.harmony-global-footer__bottom a { color: #eef9f8; }

/* Harmonize the existing back-to-top control with the footer. */
.back__top {
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(36,52,56,.14) !important;
}
.back__top i { color: var(--harmony-blue) !important; }

@media (max-width: 1100px) {
  .harmony-global-footer__wrap { width: min(calc(100% - 44px), var(--harmony-content-max)); }
  .harmony-global-footer__grid {
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 25px;
  }
  .harmony-global-footer__booking {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1.4fr auto;
    gap: 18px;
    align-items: center;
    padding-top: 15px;
    border-top: 1px solid rgba(255,255,255,.13);
  }
  .harmony-global-footer__booking h2 { margin-bottom: 0; }
  .harmony-global-footer__booking h2::after { display: none; }
  .harmony-global-footer__booking .harmony-global-footer__muted { display: none; }
  .harmony-global-footer__button { margin-top: 0; }
}
@media (max-width: 760px) {
  .harmony-global-footer__wrap {
    width: min(calc(100% - 30px), var(--harmony-content-max));
    padding-top: 20px;
  }
  .harmony-global-footer__grid,
  .harmony-global-footer__booking { grid-template-columns: 1fr; }
  .harmony-global-footer__grid { gap: 20px; }
  .harmony-global-footer__booking { gap: 8px; }
  .harmony-global-footer__logo { width: 100px; height: 100px; }
  .harmony-global-footer__brand > p { margin-top: 7px; }
  .harmony-global-footer__bottom {
    min-height: 50px;
    margin-top: 16px;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    text-align: center;
  }
}


/* ==========================================================
   HARMONY MOBILE MENU v0.59
   Reliable custom mobile navigation for the global header.
   Desktop header remains unchanged.
   ========================================================== */
.harmony-mobile-menu-toggle,
.harmony-mobile-menu-backdrop,
.harmony-mobile-menu-drawer {
  display: none;
}

@media (max-width: 1199px) {
  /* Do not rely on the legacy Psychare mobile trigger. */
  .header__nav .modern__trigger {
    display: none !important;
  }

  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    justify-content: space-between !important;
  }

  .header__nav .nav__logo {
    margin-right: auto !important;
  }

  .harmony-mobile-menu-toggle {
    display: inline-flex !important;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    margin-left: 18px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(120,199,204,.65);
    border-radius: 10px;
    background: #eff9f9;
    color: var(--harmony-ink);
    cursor: pointer;
    position: relative;
    z-index: 10052;
    box-shadow: none;
  }
  .harmony-mobile-menu-toggle:hover,
  .harmony-mobile-menu-toggle:focus-visible {
    background: #dff2f3;
    border-color: var(--harmony-aqua);
  }
  .harmony-mobile-menu-toggle__icon,
  .harmony-mobile-menu-toggle__icon::before,
  .harmony-mobile-menu-toggle__icon::after {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 99px;
    background: var(--harmony-blue);
    transition: transform .2s ease, opacity .2s ease;
  }
  .harmony-mobile-menu-toggle__icon {
    position: relative;
  }
  .harmony-mobile-menu-toggle__icon::before,
  .harmony-mobile-menu-toggle__icon::after {
    content: "";
    position: absolute;
    left: 0;
  }
  .harmony-mobile-menu-toggle__icon::before { top: -7px; }
  .harmony-mobile-menu-toggle__icon::after { top: 7px; }
  .harmony-mobile-menu-toggle[aria-expanded="true"] .harmony-mobile-menu-toggle__icon {
    background: transparent;
  }
  .harmony-mobile-menu-toggle[aria-expanded="true"] .harmony-mobile-menu-toggle__icon::before {
    top: 0;
    transform: rotate(45deg);
  }
  .harmony-mobile-menu-toggle[aria-expanded="true"] .harmony-mobile-menu-toggle__icon::after {
    top: 0;
    transform: rotate(-45deg);
  }

  .harmony-mobile-menu-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 10040;
    background: rgba(20, 34, 38, .42);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
  }
  .harmony-mobile-menu-backdrop.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .harmony-mobile-menu-drawer {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 10050;
    width: min(88vw, 380px);
    height: 100dvh;
    padding: 88px 18px 26px;
    background: #fff;
    box-shadow: -18px 0 44px rgba(36,52,56,.18);
    transform: translateX(104%);
    visibility: hidden;
    transition: transform .24s ease, visibility .24s ease;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .harmony-mobile-menu-drawer.is-open {
    transform: translateX(0);
    visibility: visible;
  }
  .harmony-mobile-menu-drawer__title {
    margin: 0 0 16px;
    padding: 0 4px 14px;
    border-bottom: 1px solid var(--harmony-border);
    font-family: var(--harmony-heading-font);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--harmony-blue);
  }

  .harmony-mobile-menu-drawer .nav__list,
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    width: 100% !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    border: 0 !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li::before {
    display: none !important;
    content: none !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li > a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 13px 15px !important;
    border: 1px solid rgba(120,199,204,.45) !important;
    border-radius: 9px !important;
    background: #eff9f9 !important;
    color: var(--harmony-ink) !important;
    font-family: var(--harmony-heading-font) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    white-space: normal !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li.current-menu-item > a,
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li.current-menu-ancestor > a {
    background: #dff2f3 !important;
    border-color: var(--harmony-aqua) !important;
    color: var(--harmony-blue) !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li.harmony-menu-ai > a {
    background: linear-gradient(135deg, #2e275f 0%, #5844c8 100%) !important;
    border-color: #4f3fba !important;
    color: #fff !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li.harmony-menu-booking > a {
    background: var(--harmony-blue) !important;
    border-color: var(--harmony-blue) !important;
    color: #fff !important;
  }

  .harmony-mobile-submenu-toggle {
    width: 44px;
    height: 44px;
    margin-left: 8px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--harmony-border);
    border-radius: 9px;
    background: #fff;
    color: var(--harmony-blue);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
  }
  .harmony-mobile-submenu-toggle::before {
    content: "⌄";
    transform: translateY(-2px);
    transition: transform .18s ease;
  }
  .harmony-mobile-submenu-toggle[aria-expanded="true"]::before {
    transform: rotate(180deg) translateY(2px);
  }

  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li > .sub-menu {
    grid-column: 1 / -1;
    position: static !important;
    display: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 7px 0 2px !important;
    padding: 7px !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
    border: 1px solid var(--harmony-border) !important;
    border-radius: 9px !important;
    background: #f9fcfb !important;
    box-shadow: none !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li.is-submenu-open > .sub-menu {
    display: block !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list .sub-menu::before {
    display: none !important;
    content: none !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list .sub-menu li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list .sub-menu a {
    display: block !important;
    width: 100% !important;
    padding: 11px 12px !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: var(--harmony-ink) !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    white-space: normal !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list .sub-menu a:hover,
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list .sub-menu a:focus-visible {
    background: var(--harmony-aqua-soft) !important;
    color: var(--harmony-blue) !important;
  }

  body.harmony-mobile-menu-open {
    overflow: hidden !important;
  }
}

@media (max-width: 480px) {
  .harmony-mobile-menu-toggle {
    flex-basis: 46px;
    width: 46px;
    height: 46px;
    margin-left: 10px;
  }
  .harmony-mobile-menu-drawer {
    width: min(92vw, 360px);
    padding-top: 80px;
  }
}


/* ==========================================================
   HARMONY RESPONSIVE STABILITY v0.60
   Tablet + mobile only. Desktop (>=1200px) is intentionally untouched.
   Fixes horizontal overflow/white gutter, activates the Harmony menu on
   tablets, and makes the custom Harmony page layouts shrink predictably.
   ========================================================== */
@media (max-width: 1199px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  /* Keep the whole header on the viewport and switch to the custom drawer. */
  .header__nav,
  .header__nav .header__primary,
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    padding-left: 22px !important;
    padding-right: 22px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }
  .header__nav .nav__main,
  .header__nav .nav__list {
    display: none !important;
  }
  .header__nav .modern__trigger {
    display: none !important;
  }
  .header__nav .nav__logo {
    display: flex !important;
    align-items: center !important;
    flex: 0 1 auto !important;
    min-width: 0 !important;
    margin: 0 auto 0 0 !important;
  }
  .header__nav .nav__logo img.main__logo,
  .header__nav .nav__logo img.sticky__logo {
    width: auto !important;
    max-width: 180px !important;
    max-height: 68px !important;
    height: auto !important;
  }
  .harmony-mobile-menu-toggle {
    flex: 0 0 48px !important;
    margin-left: 18px !important;
  }

  /* Elementor / Harmony canvas: never allow a desktop width to survive
     into a tablet or mobile breakpoint. */
  .page-template-template-harmony-elementor-editable .harmony-elementor-page,
  .page-template-template-harmony-elementor-editable .harmony-elementor-page > .elementor,
  .page-template-template-harmony-elementor-editable .harmony-elementor-page [data-elementor-type="wp-page"],
  .page-template-template-harmony-elementor-editable .harmony-elementor-page [data-elementor-type="wp-page"] > .e-con,
  .page-template-template-harmony-elementor-editable .harmony-elementor-page .e-con.e-parent,
  .page-template-template-harmony-elementor-editable .harmony-elementor-page .e-con > .e-con-inner,
  .page-template-template-harmony-elementor-editable .harmony-elementor-page .elementor-element,
  .page-template-template-harmony-elementor-editable .harmony-elementor-page .elementor-widget,
  .page-template-template-harmony-elementor-editable .harmony-elementor-page .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Custom widget roots. This specifically neutralises the old 100vw /
     negative-margin biography breakout on smaller devices. */
  .page-template-template-harmony-elementor-editable .harmony-home,
  .page-template-template-harmony-elementor-editable .harmony-bio--widget,
  .page-template-template-harmony-elementor-editable .harmony-service-page,
  .page-template-template-harmony-elementor-editable .harmony-faq-page,
  .page-template-template-harmony-elementor-editable .harmony-booking-page,
  .page-template-template-harmony-elementor-editable .harmony-contact-page,
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting,
  .page-template-template-harmony-elementor-editable .harmony-articles,
  .page-template-template-harmony-elementor-editable .harmony-services--widget {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
  }

  .harmony-home img,
  .harmony-bio img,
  .harmony-service-page img,
  .harmony-faq-page img,
  .harmony-booking-page img,
  .harmony-contact-page img,
  .harmony-ai-parenting img,
  .harmony-articles img,
  .harmony-services img {
    max-width: 100% !important;
  }

  /* Stable inner gutters on tablet. */
  .harmony-home__wrap,
  .harmony-bio__wrap,
  .harmony-service-page__wrap,
  .harmony-faq-page__wrap,
  .harmony-booking-page__wrap,
  .harmony-contact-page__wrap,
  .harmony-ai-parenting__wrap,
  .harmony-articles__wrap,
  .harmony-services__wrap {
    width: min(100% - 40px, var(--harmony-content-max)) !important;
    max-width: var(--harmony-content-max) !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Homepage: remove desktop-only minimums that can create horizontal scroll. */
  .page-template-template-harmony-elementor-editable .harmony-home__about,
  .page-template-template-harmony-elementor-editable .harmony-home__online,
  .page-template-template-harmony-elementor-editable .harmony-home__ai,
  .page-template-template-harmony-elementor-editable .harmony-home__cta {
    min-width: 0 !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__ai {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__ai-visual {
    width: 100% !important;
    max-width: 760px !important;
    margin: 0 auto !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__services-grid {
    gap: 16px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__articles-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Footer itself must never establish a wider page canvas. */
  .harmony-global-footer,
  .harmony-global-footer__wrap,
  .harmony-global-footer__grid,
  .harmony-global-footer__booking {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 991px) {
  .header__nav .header__primary,
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    min-height: 78px !important;
  }
  .header__nav .nav__logo img.main__logo,
  .header__nav .nav__logo img.sticky__logo {
    max-width: 165px !important;
    max-height: 62px !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-home__about,
  .page-template-template-harmony-elementor-editable .harmony-home__services-grid,
  .page-template-template-harmony-elementor-editable .harmony-home__online,
  .page-template-template-harmony-elementor-editable .harmony-home__articles-grid,
  .page-template-template-harmony-elementor-editable .harmony-home__cta {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__about-image-wrap {
    width: min(100%, 420px) !important;
    margin: 0 auto !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__online-media img {
    height: clamp(230px, 48vw, 330px) !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__service-card {
    grid-template-columns: minmax(220px, 38%) minmax(0, 62%) !important;
    min-width: 0 !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-inner {
    width: calc(100% - 40px) !important;
    min-width: 0 !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-copy,
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1,
  .page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
    max-width: min(100%, 680px) !important;
  }
}

@media (max-width: 767px) {
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    padding-left: 14px !important;
    padding-right: 14px !important;
    min-height: 72px !important;
  }
  .header__nav .nav__logo img.main__logo,
  .header__nav .nav__logo img.sticky__logo {
    max-width: 145px !important;
    max-height: 56px !important;
  }
  .harmony-mobile-menu-toggle {
    flex-basis: 44px !important;
    width: 44px !important;
    height: 44px !important;
    margin-left: 10px !important;
  }
  .harmony-mobile-menu-drawer {
    width: min(92vw, 360px) !important;
  }

  .harmony-home__wrap,
  .harmony-bio__wrap,
  .harmony-service-page__wrap,
  .harmony-faq-page__wrap,
  .harmony-booking-page__wrap,
  .harmony-contact-page__wrap,
  .harmony-ai-parenting__wrap,
  .harmony-articles__wrap,
  .harmony-services__wrap {
    width: calc(100% - 28px) !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-home__slide-inner {
    width: calc(100% - 28px) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide h1 {
    max-width: 100% !important;
    font-size: clamp(28px, 9.2vw, 39px) !important;
    overflow-wrap: anywhere;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-lead {
    max-width: 100% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-actions {
    width: 100% !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__slide-actions .harmony-home__btn {
    max-width: 100% !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-home__service-card {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__service-media {
    min-height: 210px !important;
    height: 210px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__service-body {
    padding: 22px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__online-media img {
    height: 230px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-home__ai-shell {
    border-radius: 24px !important;
    padding: 20px !important;
  }

  /* Long headings/forms on inner pages must wrap inside the viewport. */
  .harmony-bio h1, .harmony-bio h2, .harmony-bio h3,
  .harmony-service-page h1, .harmony-service-page h2, .harmony-service-page h3,
  .harmony-faq-page h1, .harmony-faq-page h2,
  .harmony-booking-page h1, .harmony-booking-page h2,
  .harmony-contact-page h1, .harmony-contact-page h2,
  .harmony-ai-parenting h1, .harmony-ai-parenting h2,
  .harmony-articles h1, .harmony-articles h2 {
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }
  .harmony-booking-page input,
  .harmony-booking-page select,
  .harmony-booking-page textarea,
  .harmony-contact-page input,
  .harmony-contact-page select,
  .harmony-contact-page textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}


/* ==========================================================
   HARMONY MOBILE/TABLET MENU v0.61
   Independent menu markup + forced Harmony styling.
   Desktop >=1200px remains unchanged.
   ========================================================== */
@media (max-width: 1199px) {
  /* The parent Psychare trigger is not used on Harmony. */
  .header__nav .modern__trigger,
  .header__nav .mobile__trigger,
  .header__nav .menu-trigger,
  .header__nav [class*="mobile-trigger"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .harmony-mobile-menu-toggle {
    display: inline-flex !important;
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    max-width: 48px !important;
    max-height: 48px !important;
    margin: 0 0 0 18px !important;
    padding: 0 !important;
    border: 1px solid #78C7CC !important;
    border-radius: 10px !important;
    background: #EAF6F6 !important;
    background-image: none !important;
    color: #2F7897 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }
  .harmony-mobile-menu-toggle:hover,
  .harmony-mobile-menu-toggle:focus,
  .harmony-mobile-menu-toggle:active {
    background: #DFF2F3 !important;
    border-color: #78C7CC !important;
    color: #2F7897 !important;
  }
  .harmony-mobile-menu-toggle__icon,
  .harmony-mobile-menu-toggle__icon::before,
  .harmony-mobile-menu-toggle__icon::after {
    background: #2F7897 !important;
  }
  .harmony-mobile-menu-toggle[aria-expanded="true"] .harmony-mobile-menu-toggle__icon {
    background: transparent !important;
  }

  .harmony-mobile-menu-drawer {
    display: flex !important;
    background: #FFFFFF !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list {
    display: block !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li {
    display: grid !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li > a {
    background: #F4FBFB !important;
    border-color: #CFE8E8 !important;
    color: #243438 !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li.harmony-menu-ai > a {
    background: linear-gradient(135deg, #2e275f 0%, #5844c8 100%) !important;
    border-color: #4f3fba !important;
    color: #fff !important;
  }
  .harmony-mobile-menu-drawer .harmony-mobile-menu-list > li.harmony-menu-booking > a {
    background: #2F7897 !important;
    border-color: #2F7897 !important;
    color: #fff !important;
  }
}

@media (max-width: 767px) {
  .harmony-mobile-menu-toggle {
    flex-basis: 44px !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    margin-left: 10px !important;
  }
}


/* ==========================================================
   HARMONY MOBILE/TABLET MENU POLISH v0.62
   Only affects widths below 1200px. Desktop is untouched.
   ========================================================== */
@media (max-width: 1199px) {
  .harmony-mobile-menu-drawer {
    position: fixed !important;
  }

  .harmony-mobile-menu-close {
    display: inline-flex !important;
    position: absolute !important;
    top: 20px !important;
    right: 18px !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid #78C7CC !important;
    border-radius: 10px !important;
    background: #EAF6F6 !important;
    background-image: none !important;
    color: #2F7897 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer !important;
    z-index: 2 !important;
  }

  .harmony-mobile-menu-close::before,
  .harmony-mobile-menu-close::after {
    content: "" !important;
    position: absolute !important;
    width: 20px !important;
    height: 2px !important;
    border-radius: 99px !important;
    background: #2F7897 !important;
  }
  .harmony-mobile-menu-close::before { transform: rotate(45deg) !important; }
  .harmony-mobile-menu-close::after  { transform: rotate(-45deg) !important; }

  .harmony-mobile-menu-close:hover,
  .harmony-mobile-menu-close:focus-visible {
    background: #DFF2F3 !important;
    border-color: #78C7CC !important;
  }

  /* Force submenu buttons to Harmony aqua instead of Psychare brown. */
  .harmony-mobile-menu-drawer .harmony-mobile-submenu-toggle,
  .harmony-mobile-menu-drawer button.harmony-mobile-submenu-toggle {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin-left: 8px !important;
    padding: 0 !important;
    border: 1px solid #78C7CC !important;
    border-radius: 9px !important;
    background: #EAF6F6 !important;
    background-color: #EAF6F6 !important;
    background-image: none !important;
    color: #2F7897 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }

  .harmony-mobile-menu-drawer .harmony-mobile-submenu-toggle:hover,
  .harmony-mobile-menu-drawer .harmony-mobile-submenu-toggle:focus,
  .harmony-mobile-menu-drawer .harmony-mobile-submenu-toggle:active {
    background: #DFF2F3 !important;
    background-color: #DFF2F3 !important;
    border-color: #78C7CC !important;
    color: #2F7897 !important;
  }

  .harmony-mobile-menu-drawer .harmony-mobile-submenu-toggle::before {
    color: #2F7897 !important;
  }
}

@media (max-width: 767px) {
  .harmony-mobile-menu-close {
    top: 18px !important;
    right: 14px !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
}


/* ==========================================================
   HARMONY v0.64 — UNIFIED BANNER SYSTEM
   - Every Harmony banner uses the same exact 360 / 330 / 300px height.
   - Decorative line + dot is removed from banner eyebrows only.
   - Down-scroll buttons are removed/hidden across all banners.
   - AI Parenting GR/EN uses the same banner height and keeps only
     the active Google Play action in its banner action row.
   ========================================================== */

/* Exact shared banner height: desktop. */
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider,
.page-template-template-harmony-elementor-editable .harmony-service-page__hero,
.page-template-template-harmony-elementor-editable .harmony-faq-page__hero,
.page-template-template-harmony-elementor-editable .harmony-booking-page__hero,
.page-template-template-harmony-elementor-editable .harmony-contact-page__hero,
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero,
.page-template-template-harmony-elementor-editable .harmony-articles__hero,
.harmony-single-article__hero {
  height: var(--harmony-internal-hero-min) !important;
  min-height: var(--harmony-internal-hero-min) !important;
  max-height: var(--harmony-internal-hero-min) !important;
  overflow: hidden;
}

/* With the down-arrow gone, internal banner copy can sit naturally centred. */
.page-template-template-harmony-elementor-editable .harmony-service-page__hero-content,
.page-template-template-harmony-elementor-editable .harmony-faq-page__hero-content,
.page-template-template-harmony-elementor-editable .harmony-booking-page__hero-content,
.page-template-template-harmony-elementor-editable .harmony-contact-page__hero-content {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

/* Remove line + dot only inside banners; section eyebrows remain unchanged. */
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider .harmony-home__eyebrow::before,
.page-template-template-harmony-elementor-editable .harmony-home__hero-slider .harmony-home__eyebrow::after,
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero .harmony-ai-parenting__eyebrow::before,
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero .harmony-ai-parenting__eyebrow::after,
.page-template-template-harmony-elementor-editable .harmony-articles__hero .harmony-articles__eyebrow::before,
.page-template-template-harmony-elementor-editable .harmony-articles__hero .harmony-articles__eyebrow::after,
.harmony-single-article__hero .harmony-single-article__eyebrow::before,
.harmony-single-article__hero .harmony-single-article__eyebrow::after {
  content: none !important;
  display: none !important;
}

.page-template-template-harmony-elementor-editable .harmony-home__hero-slider .harmony-home__eyebrow,
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero .harmony-ai-parenting__eyebrow,
.page-template-template-harmony-elementor-editable .harmony-articles__hero .harmony-articles__eyebrow,
.harmony-single-article__hero .harmony-single-article__eyebrow {
  gap: 0 !important;
}

/* Hard fallback in case Elementor/page cache still contains an old down-arrow node. */
.harmony-home__hero-scroll,
.harmony-service-page__scroll,
.harmony-faq-page__scroll,
.harmony-booking-page__scroll,
.harmony-contact-page__scroll,
.harmony-ai-parenting__scroll,
.harmony-articles__scroll {
  display: none !important;
}

/* AI Parenting: compact two-column banner on desktop, same height as every other banner. */
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero {
  padding: 18px 0 !important;
  display: flex !important;
  align-items: center !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr) !important;
  gap: clamp(24px, 3vw, 42px) !important;
  align-items: center !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero .harmony-ai-parenting__eyebrow {
  margin: 0 0 8px !important;
  font-size: 12px !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero h1 {
  font-size: clamp(38px, 3.5vw, 52px) !important;
  line-height: .98 !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-subtitle {
  margin-top: 8px !important;
  font-size: clamp(19px, 1.8vw, 24px) !important;
  line-height: 1.12 !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-summary {
  max-width: 700px !important;
  margin-top: 9px !important;
  font-size: 14px !important;
  line-height: 1.48 !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__cta-row {
  margin-top: 11px !important;
  gap: 0 !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__play-btn {
  min-height: 42px !important;
  padding: 9px 18px !important;
  font-size: 13px !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-card {
  width: 100% !important;
  max-width: 520px !important;
  margin-left: auto !important;
  padding: 8px !important;
  border-radius: 22px !important;
}
.page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-card img {
  border-radius: 16px !important;
}

@media (max-width: 900px) {
  .page-template-template-harmony-elementor-editable .harmony-home__hero-slider,
  .page-template-template-harmony-elementor-editable .harmony-service-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-booking-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-contact-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero,
  .page-template-template-harmony-elementor-editable .harmony-articles__hero,
  .harmony-single-article__hero {
    height: var(--harmony-internal-hero-tablet) !important;
    min-height: var(--harmony-internal-hero-tablet) !important;
    max-height: var(--harmony-internal-hero-tablet) !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero {
    padding: 18px 0 !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-grid {
    grid-template-columns: 1fr !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-visual {
    display: none !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-summary {
    max-width: 760px !important;
    font-size: 14px !important;
    line-height: 1.42 !important;
  }
}

@media (max-width: 767px) {
  .page-template-template-harmony-elementor-editable .harmony-home__hero-slider,
  .page-template-template-harmony-elementor-editable .harmony-service-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-booking-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-contact-page__hero,
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero,
  .page-template-template-harmony-elementor-editable .harmony-articles__hero,
  .harmony-single-article__hero {
    height: var(--harmony-internal-hero-mobile) !important;
    min-height: var(--harmony-internal-hero-mobile) !important;
    max-height: var(--harmony-internal-hero-mobile) !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-service-page__hero-content,
  .page-template-template-harmony-elementor-editable .harmony-faq-page__hero-content,
  .page-template-template-harmony-elementor-editable .harmony-booking-page__hero-content,
  .page-template-template-harmony-elementor-editable .harmony-contact-page__hero-content {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero {
    padding: 16px 0 !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero .harmony-ai-parenting__eyebrow {
    margin-bottom: 6px !important;
    font-size: 11px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero h1 {
    font-size: clamp(32px, 9vw, 38px) !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-subtitle {
    margin-top: 6px !important;
    font-size: 18px !important;
  }
  /* Keep the 300px mobile banner clean and uniform; the full explanation begins directly below. */
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__hero-summary {
    display: none !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__cta-row {
    margin-top: 12px !important;
  }
  .page-template-template-harmony-elementor-editable .harmony-ai-parenting__play-btn {
    width: auto !important;
    min-height: 40px !important;
    padding: 8px 15px !important;
    font-size: 12px !important;
  }
}

/* ==========================================================
   HARMONY GLOBAL HEADER v0.75 — STABLE 3-ZONE DESKTOP LAYOUT
   Built from the last safe v0.73 header state.
   Goal:
   - Logo keeps the same left visual anchor.
   - Home -> Contact stays centred at every desktop zoom level.
   - Booking keeps the same right visual anchor.
   - No zoom-percentage guessing / no intermediate breakpoint drift.
   ========================================================== */
@media (min-width: 1280px) {
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .header__nav .header__primary > .wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .header__nav .header__primary > .wrap > .container {
    position: relative !important;
    padding-left: 5vw !important;
    padding-right: 5vw !important;
  }

  /* LEFT — keep logo at the same visual inset as the approved 100% screenshot. */
  .header__nav .nav__logo {
    position: absolute !important;
    left: 5vw !important;
    top: 50% !important;
    z-index: 3 !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
  }

  /* CENTRE — symmetric viewport area means Home -> Contact cannot drift with zoom. */
  .header__nav .nav__main {
    position: absolute !important;
    left: 5vw !important;
    right: 5vw !important;
    top: 0 !important;
    bottom: 0 !important;
    z-index: 2 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    pointer-events: none !important;
    transform: none !important;
  }

  .header__nav .nav__container {
    width: 100% !important;
    pointer-events: none !important;
  }

  .header__nav .nav__list {
    position: static !important;
    width: 100% !important;
    justify-content: center !important;
    pointer-events: none !important;
    transform: none !important;
  }

  .header__nav .nav__list > li {
    pointer-events: auto !important;
  }

  /* The user-approved 100% view needs only a microscopic right nudge. */
  .header__nav .nav__list > li:not(.harmony-menu-booking) {
    transform: translateX(5px) !important;
  }

  /* RIGHT — Booking is independent from the centred navigation group. */
  .header__nav .nav__list > li.harmony-menu-booking {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    z-index: 4 !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
  }
}


/* ==========================================================
   HARMONY HOME PRELOADER v0.68
   Replaces the visual brown-circle loading moment on the homepage
   with three minimal Harmony dots: aqua + deep AI blue + aqua.
   Homepage only; no SEO/content/layout changes.
   ========================================================== */
.harmony-home-preloader {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  opacity: 1;
  visibility: visible;
  transition: opacity .32s ease, visibility .32s ease;
}

.harmony-home-preloader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.harmony-home-preloader__dots {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.harmony-home-preloader__dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #78C7CC;
  animation: harmony-home-dot-pulse .9s ease-in-out infinite;
  transform: translateY(0);
  opacity: .55;
}

.harmony-home-preloader__dot:nth-child(2) {
  background: #172235;
  animation-delay: .14s;
}

.harmony-home-preloader__dot:nth-child(3) {
  animation-delay: .28s;
}

@keyframes harmony-home-dot-pulse {
  0%, 60%, 100% {
    transform: translateY(0);
    opacity: .48;
  }
  30% {
    transform: translateY(-7px);
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .harmony-home-preloader__dot {
    animation: none;
    opacity: 1;
  }
}


/* ==========================================================
   HARMONY SINGLE ARTICLE v0.76
   Scope: single blog posts only.
   Does not modify the global header/footer, pages, homepage or SEO.
   ========================================================== */

.single-post .harmony-single-post {
  --article-ink: #243438;
  --article-blue: #2F7897;
  --article-aqua: #78C7CC;
  --article-aqua-soft: #EAF6F6;
  --article-border: #D8E8E8;
  --article-muted: #66777b;
  width: 100%;
  overflow: hidden;
  background: #fff;
  color: var(--article-ink);
  font-family: "Manrope", sans-serif;
}

.single-post .harmony-single-post *,
.single-post .harmony-single-post *::before,
.single-post .harmony-single-post *::after {
  box-sizing: border-box;
}

.single-post .harmony-post-hero {
  position: relative;
  width: 100%;
  padding: 66px 24px 112px;
  text-align: center;
  background:
    radial-gradient(circle at 82% 12%, rgba(120,199,204,.18), transparent 24%),
    linear-gradient(180deg, #f7fbfa 0%, #eaf6f6 100%);
  border-bottom: 1px solid rgba(120,199,204,.28);
}

.single-post .harmony-post-hero__inner {
  width: min(1040px, calc(100% - 40px));
  margin: 0 auto;
}

.single-post .harmony-post-hero__label {
  margin: 0 0 14px;
  color: var(--article-blue);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.single-post .harmony-post-hero h1 {
  max-width: 980px;
  margin: 0 auto;
  color: var(--article-ink);
  font-family: "Manrope", sans-serif;
  font-size: clamp(34px, 3.2vw, 54px);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.single-post .harmony-post-hero__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px 12px;
  margin-top: 18px;
  color: var(--article-muted);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 600;
}

.single-post .harmony-post-hero__meta-sep {
  color: var(--article-aqua);
}

.single-post .harmony-post-shell {
  width: min(1120px, calc(100% - 48px));
  margin: -66px auto 0;
  padding-bottom: 72px;
  position: relative;
  z-index: 2;
}

.single-post .harmony-post-featured {
  overflow: hidden;
  width: 100%;
  margin: 0 auto 42px;
  border: 1px solid var(--article-border);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(36,52,56,.10);
}

.single-post .harmony-post-featured img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.single-post .harmony-post__content {
  width: min(900px, 100%);
  margin: 0 auto;
  color: #35464a;
  font-family: "Manrope", sans-serif;
  font-size: 17px;
  line-height: 1.82;
  font-weight: 500;
}

.single-post .harmony-post__content > *:first-child {
  margin-top: 0;
}

.single-post .harmony-post__content p {
  margin: 0 0 20px;
  color: #405156;
  font-size: inherit;
  line-height: inherit;
  text-align: justify;
  text-justify: inter-word;
}

.single-post .harmony-post__content p:first-of-type {
  color: #31454a;
  font-size: 18px;
  line-height: 1.78;
}

.single-post .harmony-post__content h2 {
  margin: 48px 0 18px;
  color: var(--article-ink);
  font-family: "Manrope", sans-serif;
  font-size: clamp(26px, 2.1vw, 34px);
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -.025em;
}

.single-post .harmony-post__content h2::after {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  margin-top: 11px;
  border-radius: 99px;
  background: var(--article-aqua);
}

.single-post .harmony-post__content h3 {
  margin: 44px 0 16px;
  color: var(--article-ink);
  font-family: "Manrope", sans-serif;
  font-size: 21px;
  line-height: 1.35;
  font-weight: 750;
}

.single-post .harmony-post__content strong {
  color: #2b3d41;
  font-weight: 750;
}

.single-post .harmony-post__content em {
  color: #44575b;
}

.single-post .harmony-post__content ul,
.single-post .harmony-post__content ol {
  margin: 8px 0 26px;
  padding-left: 26px;
}

.single-post .harmony-post__content li {
  margin: 8px 0;
  padding-left: 4px;
  color: #405156;
}

.single-post .harmony-post__content li::marker {
  color: var(--article-blue);
}

.single-post .harmony-post__content hr {
  height: 1px;
  margin: 42px 0 32px;
  border: 0;
  background: linear-gradient(90deg, transparent, var(--article-border) 12%, var(--article-border) 88%, transparent);
}

/* Bibliography: compact and clearly separated from the main editorial text. */
.single-post .harmony-post__content h3 ~ p {
  margin-bottom: 12px;
  color: #65767a;
  font-size: 13.5px;
  line-height: 1.62;
  text-align: left;
}

/* Author signature after the final divider becomes a calm author card. */
.single-post .harmony-post__content hr + p {
  margin: 0;
  padding: 20px 24px;
  border: 1px solid var(--article-border);
  border-radius: 16px;
  background: #f7fbfa;
  color: var(--article-ink);
  font-size: 15.5px;
  line-height: 1.55;
  text-align: left;
}

.single-post .harmony-post__content hr + p strong {
  color: var(--article-blue);
}

.single-post .harmony-post__content a {
  color: var(--article-blue);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.single-post .harmony-post__content a:hover {
  color: #235f79;
}

/* Keep any theme-injected single-post widgets/adjacent elements from inheriting the article typography. */
.single-post .harmony-single-post + * {
  font-family: inherit;
}

@media (max-width: 991px) {
  .single-post .harmony-post-hero {
    padding: 54px 20px 94px;
  }

  .single-post .harmony-post-shell {
    width: min(100% - 36px, 1040px);
    margin-top: -52px;
    padding-bottom: 60px;
  }

  .single-post .harmony-post-featured {
    margin-bottom: 34px;
    border-radius: 20px;
  }

  .single-post .harmony-post__content {
    font-size: 16.5px;
    line-height: 1.76;
  }
}

@media (max-width: 767px) {
  .single-post .harmony-post-hero {
    padding: 42px 14px 76px;
  }

  .single-post .harmony-post-hero__inner {
    width: min(100% - 12px, 760px);
  }

  .single-post .harmony-post-hero h1 {
    font-size: clamp(29px, 8.2vw, 40px);
    line-height: 1.12;
  }

  .single-post .harmony-post-hero__meta {
    margin-top: 14px;
    font-size: 12px;
  }

  .single-post .harmony-post-shell {
    width: calc(100% - 24px);
    margin-top: -38px;
    padding-bottom: 48px;
  }

  .single-post .harmony-post-featured {
    margin-bottom: 28px;
    border-radius: 16px;
  }

  .single-post .harmony-post__content {
    font-size: 16px;
    line-height: 1.72;
  }

  .single-post .harmony-post__content p,
  .single-post .harmony-post__content p:first-of-type {
    font-size: inherit;
    line-height: inherit;
    text-align: left;
  }

  .single-post .harmony-post__content h2 {
    margin-top: 38px;
    font-size: 26px;
  }

  .single-post .harmony-post__content h3 {
    margin-top: 36px;
    font-size: 20px;
  }

  .single-post .harmony-post__content ul,
  .single-post .harmony-post__content ol {
    padding-left: 22px;
  }

  .single-post .harmony-post__content hr + p {
    padding: 17px 18px;
  }
}


/* ==========================================================
   HARMONY SINGLE ARTICLE v0.78 — GLOBAL ARTICLE BANNER LOCK
   Applies automatically to every current and future blog post.
   Matches the locked site-wide banner heights:
   desktop 360px / tablet 330px / mobile 300px.
   ========================================================== */

.single-post .harmony-post-hero {
  height: 360px !important;
  min-height: 360px !important;
  padding: 0 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.single-post .harmony-post-hero__inner {
  margin: 0 auto !important;
}

.single-post .harmony-post-shell {
  margin-top: -54px !important;
}

@media (max-width: 991px) {
  .single-post .harmony-post-hero {
    height: 330px !important;
    min-height: 330px !important;
    padding: 0 20px !important;
  }

  .single-post .harmony-post-shell {
    margin-top: -46px !important;
  }
}

@media (max-width: 767px) {
  .single-post .harmony-post-hero {
    height: 300px !important;
    min-height: 300px !important;
    padding: 0 14px !important;
  }

  .single-post .harmony-post-hero h1 {
    font-size: clamp(27px, 7.8vw, 36px) !important;
    line-height: 1.10 !important;
  }

  .single-post .harmony-post-shell {
    margin-top: -34px !important;
  }
}


/* ==========================================================
   HARMONY ARTICLE CARDS v0.79 — IMAGE FLUSH-TO-TOP FIX
   Removes the thin rounded/empty cap above featured images.
   Applies to homepage article cards and the Articles grid only.
   ========================================================== */

.harmony-home__article > a:first-child,
.harmony-article-card__image-link {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: var(--harmony-aqua-soft) !important;
}

.harmony-home__article > a:first-child img,
.harmony-home__article-image,
.harmony-article-card__image {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: top !important;
  border: 0 !important;
  border-radius: 0 !important;
}

/* The card itself owns the rounded corners, so the image follows them cleanly
   with no white strip / double-rounded effect above it. */
.harmony-home__article,
.harmony-article-card {
  overflow: hidden !important;
}


/* ==========================================================
   HARMONY SINGLE ARTICLE v0.80 — FINAL HERO + FEATURED IMAGE POLISH
   Scope: single article pages only.
   - Keeps article hero locked to the same site-wide banner heights.
   - Makes the long article title visually more compact.
   - Makes the featured image sit completely inside the rounded frame
     with no white strip / protruding rounded corners.
   ========================================================== */

/* Re-confirm the exact global banner heights for every article. */
.single-post .harmony-post-hero {
  height: 360px !important;
  min-height: 360px !important;
  max-height: 360px !important;
  padding: 0 24px !important;
  overflow: hidden !important;
}

/* Long article titles should not make the banner feel taller than the rest of the site. */
.single-post .harmony-post-hero__inner {
  width: min(1180px, calc(100% - 40px)) !important;
}

.single-post .harmony-post-hero__label {
  margin-bottom: 10px !important;
}

.single-post .harmony-post-hero h1 {
  max-width: 1120px !important;
  font-size: clamp(32px, 2.75vw, 46px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.032em !important;
}

.single-post .harmony-post-hero__meta {
  margin-top: 13px !important;
}

/* Featured image: the image itself owns the visible rounded clipping.
   This removes the white lower strip / protruding frame corners. */
.single-post .harmony-post-featured {
  overflow: hidden !important;
  line-height: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 24px !important;
}

.single-post .harmony-post-featured img,
.single-post .harmony-post-featured .wp-post-image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 23px !important;
  vertical-align: top !important;
  object-fit: cover !important;
}

/* Tablet keeps the same locked family height. */
@media (max-width: 991px) {
  .single-post .harmony-post-hero {
    height: 330px !important;
    min-height: 330px !important;
    max-height: 330px !important;
    padding: 0 20px !important;
  }

  .single-post .harmony-post-hero h1 {
    font-size: clamp(30px, 4.4vw, 42px) !important;
  }

  .single-post .harmony-post-featured,
  .single-post .harmony-post-featured img,
  .single-post .harmony-post-featured .wp-post-image {
    border-radius: 20px !important;
  }
}

/* Mobile keeps the same locked family height. */
@media (max-width: 767px) {
  .single-post .harmony-post-hero {
    height: 300px !important;
    min-height: 300px !important;
    max-height: 300px !important;
    padding: 0 14px !important;
  }

  .single-post .harmony-post-hero__inner {
    width: min(100% - 12px, 760px) !important;
  }

  .single-post .harmony-post-hero h1 {
    font-size: clamp(26px, 7.2vw, 34px) !important;
    line-height: 1.08 !important;
  }

  .single-post .harmony-post-featured,
  .single-post .harmony-post-featured img,
  .single-post .harmony-post-featured .wp-post-image {
    border-radius: 16px !important;
  }
}


/* ==========================================================
   HARMONY BLOG INDEX v0.82 — SAFE ARCHIVE REUSE
   The Posts Page now reuses the already-tested Harmony Articles
   component and the same locked internal-banner variables.
   ========================================================== */

/* v0.90: do NOT set overflow on body.blog.
   On this Psychare build, a body-level overflow context changes the sticky
   header geometry on the Posts Page. The article shell itself already clips
   its content, and the legacy desktop panel is handled separately by v0.89. */

body.blog .harmony-articles {
  width: 100%;
  max-width: none;
  overflow: hidden;
  background: #fff;
}

/* Exact same banner family as the other Harmony internal pages. */
body.blog .harmony-articles__hero {
  height: var(--harmony-internal-hero-min) !important;
  min-height: var(--harmony-internal-hero-min) !important;
  max-height: var(--harmony-internal-hero-min) !important;
}

/* Same title scale used by the compact internal banners. */
body.blog .harmony-articles__hero-content {
  text-align: center;
}
body.blog .harmony-articles__hero h1 {
  max-width: none !important;
  margin-inline: auto !important;
  font-size: clamp(40px, 3.8vw, 58px) !important;
  line-height: 1.04 !important;
}

/* No decorative line/dot in the banner. */
body.blog .harmony-articles__hero .harmony-articles__eyebrow::before,
body.blog .harmony-articles__hero .harmony-articles__eyebrow::after {
  display: none !important;
  content: none !important;
}

/* The custom Harmony mobile drawer must always start fully closed. */
@media (max-width: 1199px) {
  body.blog:not(.harmony-mobile-menu-open) .harmony-mobile-menu-drawer {
    transform: translateX(104%) !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.blog:not(.harmony-mobile-menu-open) .harmony-mobile-menu-backdrop {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

@media (max-width: 900px) {
  body.blog .harmony-articles__hero {
    height: var(--harmony-internal-hero-tablet) !important;
    min-height: var(--harmony-internal-hero-tablet) !important;
    max-height: var(--harmony-internal-hero-tablet) !important;
  }
}

@media (max-width: 767px) {
  body.blog .harmony-articles__hero {
    height: var(--harmony-internal-hero-mobile) !important;
    min-height: var(--harmony-internal-hero-mobile) !important;
    max-height: var(--harmony-internal-hero-mobile) !important;
  }

  body.blog .harmony-articles__hero h1 {
    font-size: clamp(34px, 9vw, 42px) !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.83 — ARTICLES NAV ITEM
   Adds only the new Articles item to the existing locked menu system.
   Header positioning/centering from v0.75 remains untouched.
   ========================================================== */
.header__nav .nav__list > li.harmony-menu-articles.current-menu-item > a,
.header__nav .nav__list > li.harmony-menu-articles.current-menu-ancestor > a {
  background: #dff2f3 !important;
  border-color: var(--harmony-aqua) !important;
  color: var(--harmony-blue) !important;
}


/* ==========================================================
   HARMONY MOBILE DRAWER v0.84 — DESKTOP HARD GUARD
   The off-canvas menu exists in the DOM on every page, but it must
   never participate in desktop layout or create horizontal overflow.
   ========================================================== */

/* On mobile/tablet, aria-hidden is the final source of truth. */
@media (max-width: 1199px) {
  .harmony-mobile-menu-drawer[aria-hidden="true"] {
    transform: translateX(104%) !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .harmony-mobile-menu-backdrop[aria-hidden="true"] {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* On desktop the Harmony off-canvas UI is completely removed from layout,
   regardless of stale classes, browser back/forward cache, or parent-theme CSS. */
@media (min-width: 1200px) {
  .harmony-mobile-menu-toggle,
  .harmony-mobile-menu-backdrop,
  .harmony-mobile-menu-drawer {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .harmony-mobile-menu-drawer {
    position: fixed !important;
    right: 0 !important;
    width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    transform: translateX(110%) !important;
    box-shadow: none !important;
  }

  body.harmony-mobile-menu-open {
    overflow: visible !important;
  }
}


/* ==========================================================
   HARMONY v0.89 — DESKTOP LEGACY PANEL + BLOG HEADER FIX
   - Keeps the Articles page on its real WordPress body classes.
   - Hides only a legacy Psychare panel positively marked by the
     finite v0.87 cleanup script (no MutationObserver).
   - Prevents the legacy panel from creating desktop horizontal overflow.
   ========================================================== */

/* v0.89: no Articles-specific header margin override.
   The global Harmony header rules now apply identically on every page. */

.harmony-legacy-psychare-panel {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  max-width: 0 !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  box-shadow: none !important;
}

/* v0.89 intentionally has no global html/body overflow or positioning guard.
   The approved header keeps exactly the geometry it had before v0.87. */


/* ==========================================================
   HARMONY v0.90 — ARTICLES HEADER VERTICAL ALIGNMENT
   The Posts Page no longer receives body-level overflow-x:hidden.
   This lets the locked global sticky header use the exact same
   containing block / vertical geometry as every other page.
   Article content remains safely clipped by .harmony-articles.
   ========================================================== */
body.blog .harmony-articles {
  overflow-x: hidden !important;
}
\n\n/* ==========================================================\n   HARMONY v0.91 — PRE-PAINT HEADER STABILITY\n   The duplicate Psychare desktop panel is now identified while the DOM\n   is being parsed, before the browser can paint it into the header layout.\n   The existing v0.89 class remains the single visual suppression rule.\n   No header offsets, body overflow, menu sizing or banner geometry change.\n   ========================================================== */\n

/* ==========================================================
   HARMONY GLOBAL HEADER v0.92 — SAFE AESTHETIC REFINEMENT
   - preserves the locked v0.75 three-zone desktop geometry
   - centred Home -> Contact group is NOT moved or resized
   - logo shifts 14px left without changing layout width
   - Booking shifts 14px right, increasing visual breathing room
   - desktop only (>=1280px); tablet/mobile remain untouched
   ========================================================== */
@media (min-width: 1280px) {
  .header__nav .nav__logo {
    left: calc(5vw - 14px) !important;
  }

  .header__nav .nav__list > li.harmony-menu-booking {
    right: -14px !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.93 — FIRST-PAINT HEIGHT LOCK
   The homepage preloader was masking a brief Psychare header reflow that was
   still visible on internal page navigations.  Keep the approved horizontal
   v0.75/v0.92 geometry untouched and lock only the desktop header's vertical
   box to the already-approved 104px height from the very first paint.

   IMPORTANT: no menu widths, gaps, left/right anchors, transforms, booking
   spacing, breakpoints, dropdown geometry, or mobile/tablet rules change here.
   ========================================================== */
@media (min-width: 1200px) {
  .header__nav,
  .header__nav .header__primary,
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    height: 104px !important;
    min-height: 104px !important;
    max-height: 104px !important;
  }

  /* Parent Psychare may animate header dimensions while its sticky script
     initialises. The Harmony header is already intentionally sticky, so those
     geometry transitions are unnecessary and can expose a one-frame jump. */
  .header__nav,
  .header__nav .header__primary,
  .header__nav .header__primary > .wrap,
  .header__nav .header__primary > .wrap > .container {
    transition-property: background-color, box-shadow, opacity !important;
  }
}


/* ==========================================================
   HARMONY GLOBAL HEADER v0.94 — OUTER EDGE BREATHING ROOM
   Keeps the approved v0.75 centre group completely untouched.
   Only the two independent outer anchors change on desktop:
   - Logo sits 46px from the viewport left edge.
   - Booking sits 46px from the viewport right edge.
   This opens the visual gap around the centred navigation without
   changing nav width, gaps, justify-content, transforms or breakpoints.
   ========================================================== */
@media (min-width: 1280px) {
  .header__nav .nav__logo {
    left: 46px !important;
  }

  .header__nav .nav__list > li.harmony-menu-booking {
    right: calc(-5vw + 46px) !important;
  }
}

/* ==========================================================
   HARMONY GLOBAL HEADER v0.95 — LOGO MICRO VERTICAL OFFSET
   Desktop-only aesthetic refinement requested after v0.94.
   Moves ONLY the logo 5px lower while preserving the locked
   three-zone menu geometry, centre group, booking anchor,
   header height, breakpoints and tablet/mobile behaviour.
   ========================================================== */
@media (min-width: 1280px) {
  .header__nav .nav__logo {
    top: calc(50% + 5px) !important;
  }
}


/* ==========================================================
   HARMONY v0.96 — AI PARENTING COPY + BUTTON COLOUR FIXES
   - Force booking/contact submit buttons to Harmony blue.
   - Widen AI Parenting desktop headings so titles/subcopy can sit on one line.
   - Keep only the badge number in the steps cards; titles no longer repeat it.
   ========================================================== */
.harmony-booking-page__submit,
.harmony-contact-page__submit {
  background: var(--harmony-blue) !important;
  border-color: var(--harmony-blue) !important;
  color: #fff !important;
}
.harmony-booking-page__submit:hover,
.harmony-contact-page__submit:hover {
  background: var(--harmony-blue-hover) !important;
  border-color: var(--harmony-blue-hover) !important;
  color: #fff !important;
}

@media (min-width: 1200px) {
  .harmony-ai-parenting__heading {
    max-width: none !important;
  }
  .harmony-ai-parenting__heading h2 {
    font-size: clamp(32px, 3.8vw, 52px) !important;
    max-width: none !important;
  }
  .harmony-ai-parenting__heading p {
    max-width: none !important;
  }
  .harmony-ai-parenting__step strong {
    font-size: 17px !important;
    line-height: 1.28 !important;
  }
}


/* ==========================================================
   HARMONY v0.97 — CLEANER DESKTOP DROPDOWN CHEVRONS
   Replaces the glyph-like dropdown mark with a cleaner chevron.
   ========================================================== */
.header__nav .nav__list > li.menu-item-has-children > a::after {
  content: "" !important;
  display: inline-block !important;
  width: 7px !important;
  height: 7px !important;
  margin-left: 9px !important;
  border-right: 1.8px solid currentColor !important;
  border-bottom: 1.8px solid currentColor !important;
  border-top: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-size: 0 !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  opacity: .75 !important;
  transform: translateY(-1px) rotate(45deg) !important;
  box-shadow: none !important;
}
.header__nav .nav__list > li.menu-item-has-children:hover > a::after,
.header__nav .nav__list > li.menu-item-has-children:focus-within > a::after {
  opacity: 1 !important;
}


/* ==========================================================
   HARMONY v0.98 — MOBILE/TABLET MENU TITLE POLISH
   Only changes the visual treatment of the "ΜΕΝΟΥ" heading.
   Desktop and menu-item layout remain untouched.
   ========================================================== */
@media (max-width: 1199px) {
  .harmony-mobile-menu-drawer__title {
    width: 100% !important;
    margin: 0 0 22px !important;
    padding: 0 4px 18px !important;
    border-bottom: 1px solid var(--harmony-border) !important;
    text-align: center !important;
    font-family: var(--harmony-heading-font) !important;
    font-size: 21px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .11em !important;
    text-transform: uppercase !important;
    color: var(--harmony-blue) !important;
  }
}

@media (max-width: 767px) {
  .harmony-mobile-menu-drawer__title {
    font-size: 19px !important;
    margin-bottom: 20px !important;
    padding-bottom: 16px !important;
  }
}


/* ==========================================================
   HARMONY v1.00 — DISCREET PUBLIC ARTICLE VIEW COUNT
   Adds a small eye + “Χ προβολές” to single-post metadata only.
   ========================================================== */
.single-post .harmony-post-hero__views {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.single-post .harmony-post-hero__views svg {
  display: block;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  color: var(--article-blue);
  opacity: .72;
}

.single-post .harmony-post-hero__views-count {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 767px) {
  .single-post .harmony-post-hero__views svg {
    width: 14px;
    height: 14px;
    flex-basis: 14px;
  }
}


/* ==========================================================
   HARMONY v1.01 — UNIFORM ARTICLE GRID IMAGE HEIGHT
   Scope: Articles listing cards only.
   Locks every featured-image slot to the same 16:9 frame as
   the first published article, regardless of source image ratio.
   Single article featured images remain unchanged.
   ========================================================== */
.harmony-article-card__image-link {
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
}

.harmony-article-card__image {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.harmony-article-card__image--placeholder {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
}


/* ==========================================================
   HARMONY v1.02 — HOMEPAGE ARTICLE CTA ALIGNMENT
   Scope: homepage article cards only.
   Keeps “Διαβάστε περισσότερα” aligned at the bottom of cards
   in the same grid row, regardless of title/excerpt length.
   ========================================================== */
.harmony-home__article {
  display: flex !important;
  flex-direction: column !important;
}

.harmony-home__article-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}

.harmony-home__article-body .harmony-home__more {
  margin-top: auto !important;
}
