/*
Theme Name:   Hello Elementor Child — Nikki
Template:     hello-elementor
Version:      6.34.0
Description:  Child theme for Concierge Mediation Services.
Author:       Concierge Mediation Services
Text Domain:  hello-elementor-child
*/

/* ============================================================
   GLOBAL: enforce 1440 max-width on full-width sections
   so on >1440 viewports content stays centered, not stretched
   ============================================================ */

.nikki-hero__inner,
.nikki-stats__row,
.nikki-phil__row,
.nikki-about__row,
.nikki-svc,
.nikki-test__row,
.nikki-circle,
.nikki-contact__row,
.nikki-cta__row,
.nikki-aboutHero__row,
.nikki-aboutPartner__row,
.nikki-aboutDiff,
.nikki-aboutDiff__highlight,
.nikki-aboutDiff__grid,
.nikki-aboutPhilo,
.nikki-aboutPhilo__top,
.nikki-aboutPhilo__grid,
.nikki-aboutPhilo__bottom,
.nikki-aboutRes__row,
.nikki-aboutContactCta__row,
.nikki-aboutFinalCta__row,
.nikki-svcHero__row,
.nikki-svcCard1__row,
.nikki-svcCard2__row,
.nikki-svcCard3__row,
.nikki-svcCard4,
.nikki-svcCard4__top,
.nikki-svcCard4__grid,
.nikki-svcContact__row,
.nikki-svcFinalCta__row,
.nikki-succHero,
.nikki-succFeat__row,
.nikki-succStats__row,
.nikki-succGrid,
.nikki-succGrid__top,
.nikki-succGrid__row,
.nikki-succFinalCta__row,
.nikki-contHero,
.nikki-cont__row,
.nikki-contNext,
.nikki-contNext__steps,
.nikki-contFinalCta__row,
.nikki-foot__top,
.nikki-foot__bottom {
  max-width: 1440px;
  margin: 0 auto;
}

/* ============================================================
   FOOTER
   ============================================================ */
.nikki-foot { padding-left: max(80px, calc((100vw - 1280px) / 2)) !important;
              padding-right: max(80px, calc((100vw - 1280px) / 2)) !important; }
.nikki-foot__brand { flex: 0 0 480px !important; max-width: 480px !important; width: 480px !important; }
.nikki-foot__cols  { flex: 0 0 auto !important; }
.nikki-foot__col a { color: #888 !important; text-decoration: none; }
.nikki-foot__col a:hover { color: #C4A47A !important; }
.nikki-foot__bottom { width: 100%; }
@media (max-width: 1023px) {
  .nikki-foot { padding: 60px 40px 32px !important; }
  .nikki-foot__top { flex-direction: column !important; gap: 48px !important; }
  .nikki-foot__brand { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }
  .nikki-foot__cols  { flex-wrap: wrap !important; gap: 40px !important; }
  .nikki-foot__bottom { flex-direction: column !important; gap: 16px !important; align-items: center !important; text-align: center; }
}
@media (max-width: 767px) {
  .nikki-foot { padding: 48px 20px 28px !important; }
}

/* ============================================================
   CONTACT FINAL CTA  (contact page section[3])
   ============================================================ */
@media (max-width: 767px) {
  .nikki-contFinalCta__row {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 40px 20px !important;
    gap: 24px !important;
  }
  .nikki-contFinalCta__btnWrap { align-items: flex-start !important; }
}

/* ============================================================
   CONTACT WHAT-HAPPENS-NEXT  (contact page section[2])
   4-up cards
   ============================================================ */
.nikki-contNext__steps {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-contNext__steps > .nikki-contNext__step {
  flex: 1 1 25% !important;
  width: 25% !important;
  max-width: 25% !important;
}
.nikki-contNext__step__iconBg .elementor-icon-wrapper { line-height: 0 !important; }
.nikki-contNext__step__iconBg .elementor-widget-icon svg,
.nikki-contNext__step__iconBg .elementor-widget-icon i { color: #FFFFFF !important; fill: #FFFFFF !important; }

@media (max-width: 1023px) {
  .nikki-contNext__steps { flex-wrap: wrap !important; gap: 24px !important; }
  .nikki-contNext__steps > .nikki-contNext__step {
    flex: 0 0 calc(50% - 12px) !important;
    width: calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;
  }
}
@media (max-width: 767px) {
  .nikki-contNext { padding: 60px 20px !important; }
  .nikki-contNext__steps { flex-direction: column !important; gap: 16px !important; }
  .nikki-contNext__steps > .nikki-contNext__step {
    flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important;
  }
}

/* ============================================================
   CONTACT SECTION  (contact page section[1])
   Left info ~40% / Right form ~60%
   ============================================================ */
.nikki-cont__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-cont__info { flex: 0 0 38% !important; max-width: 38% !important; width: 38% !important; }
.nikki-cont__form { flex: 1 1 auto !important; max-width: none !important; }

/* round colored icon backgrounds for contact rows */
.nikki-cont__row .nikki-cont__row__iconBg {
  border-radius: 22px !important;
}
.nikki-cont__row .nikki-cont__row__iconBg .elementor-icon-wrapper { line-height: 0 !important; }
.nikki-cont__row .nikki-cont__row__iconBg .elementor-widget-icon svg,
.nikki-cont__row .nikki-cont__row__iconBg .elementor-widget-icon i { color: #FFFFFF !important; fill: #FFFFFF !important; }

@media (max-width: 1023px) {
  .nikki-cont__row { flex-direction: column !important; padding: 60px 40px !important; gap: 40px !important; }
  .nikki-cont__info, .nikki-cont__form {
    flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important;
  }
}
@media (max-width: 767px) {
  .nikki-cont__row { padding: 40px 20px !important; }
  .nikki-cont__form { padding: 28px !important; }
}

/* ============================================================
   CONTACT HERO  (contact page section[0])
   ============================================================ */
@media (max-width: 767px) {
  .nikki-contHero { padding: 60px 20px 48px !important; }
}

/* ============================================================
   SUCCESS FINAL CTA  (success page section[4])
   ============================================================ */
@media (max-width: 767px) {
  .nikki-succFinalCta__row {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 40px 20px !important;
    gap: 24px !important;
  }
  .nikki-succFinalCta__btnWrap { align-items: flex-start !important; }
}

/* ============================================================
   SUCCESS TESTIMONIAL GRID  (success page section[3])
   3-up rows of cards
   ============================================================ */
.nikki-succGrid__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-succGrid__row > .nikki-succGrid__card {
  flex: 1 1 33.333% !important;
  width: 33.333% !important;
  max-width: 33.333% !important;
}
@media (max-width: 1023px) {
  .nikki-succGrid__top {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 24px !important;
  }
  .nikki-succGrid__topRight { align-items: flex-start !important; }
  .nikki-succGrid__topRight .elementor-widget-text-editor p { text-align: left !important; }
  .nikki-succGrid__row { flex-wrap: wrap !important; }
  .nikki-succGrid__row > .nikki-succGrid__card {
    flex: 0 0 calc(50% - 12px) !important;
    width: calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;
  }
}
@media (max-width: 767px) {
  .nikki-succGrid { padding: 48px 20px !important; }
  .nikki-succGrid__row { flex-direction: column !important; }
  .nikki-succGrid__row > .nikki-succGrid__card {
    flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important;
  }
}

/* ============================================================
   SUCCESS STATS BAR  (success page section[2])
   4 cells, hairline borders, last cell no right border
   ============================================================ */
.nikki-succStats__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-succStats__row > .nikki-succStats__cell {
  flex: 0 0 25% !important;
  width: 25% !important;
  max-width: 25% !important;
}
.nikki-succStats__row > .nikki-succStats__cell--last {
  border-right: 0 !important;
}
@media (max-width: 1023px) {
  .nikki-succStats__row { flex-wrap: wrap !important; }
  .nikki-succStats__row > .nikki-succStats__cell {
    flex: 0 0 50% !important; width: 50% !important; max-width: 50% !important;
  }
  .nikki-succStats__row > .nikki-succStats__cell:nth-child(2n) {
    border-right: 0 !important;
  }
  .nikki-succStats__row > .nikki-succStats__cell:nth-child(n+3) {
    border-top: 1px solid #E0E0E0 !important;
  }
}
@media (max-width: 767px) {
  .nikki-succStats__row { flex-direction: column !important; }
  .nikki-succStats__row > .nikki-succStats__cell {
    flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important;
    border-right: 0 !important;
  }
  .nikki-succStats__row > .nikki-succStats__cell + .nikki-succStats__cell {
    border-top: 1px solid #E0E0E0 !important;
  }
}

/* ============================================================
   SUCCESS FEATURED TESTIMONIAL  (success page section[1])
   Left ~52.78% / Right ~47.22% (760 / 680 of 1440)
   ============================================================ */
.nikki-succFeat__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-succFeat__left  { flex: 0 0 52.78% !important; max-width: 52.78% !important; width: 52.78% !important; }
.nikki-succFeat__right { flex: 0 0 47.22% !important; max-width: 47.22% !important; width: 47.22% !important; }

@media (max-width: 1023px) {
  .nikki-succFeat__row { flex-direction: column !important; }
  .nikki-succFeat__left, .nikki-succFeat__right {
    flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important;
  }
  .nikki-succFeat__left  { padding: 60px 40px 40px !important; }
  .nikki-succFeat__right { padding: 0 40px 40px !important; }
}
@media (max-width: 767px) {
  .nikki-succFeat__left  { padding: 40px 20px 32px !important; }
  .nikki-succFeat__right { padding: 0 20px 32px !important; }
}

/* ============================================================
   SUCCESS STORIES HERO  (success page section[0])
   ============================================================ */
@media (max-width: 767px) {
  .nikki-succHero { padding: 60px 20px 48px !important; }
  .nikki-succHero__label { flex-wrap: wrap !important; justify-content: center !important; }
}

/* ============================================================
   SERVICES FINAL CTA  (services page section[6])
   ============================================================ */
@media (max-width: 767px) {
  .nikki-svcFinalCta__row {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 40px 20px !important;
    gap: 24px !important;
  }
  .nikki-svcFinalCta__btnWrap { align-items: flex-start !important; }
}

/* ============================================================
   SERVICES CONTACT STRIP  (services page section[5])
   ============================================================ */
@media (max-width: 767px) {
  .nikki-svcContact__row {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 32px 20px !important;
    gap: 16px !important;
  }
  .nikki-svcContact__right { align-items: flex-start !important; }
  .nikki-svcContact__right .elementor-icon-list-items.elementor-inline-items {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
}

/* ============================================================
   SERVICE 04 — dark transition section
   ============================================================ */
.nikki-svcCard4__grid {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-svcCard4__grid > .nikki-svcCard4__stage {
  flex: 1 1 33.333% !important;
  width: 33.333% !important;
  max-width: 33.333% !important;
}
.nikki-svcCard4__grid > .nikki-svcCard4__stage + .nikki-svcCard4__stage {
  border-left: 0 !important;
}

@media (max-width: 1023px) {
  .nikki-svcCard4__top {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 24px !important;
  }
  .nikki-svcCard4__grid { flex-wrap: wrap !important; }
  .nikki-svcCard4__grid > .nikki-svcCard4__stage {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    border-left: 1px solid rgba(255,255,255,0.0627) !important;
  }
  .nikki-svcCard4__grid > .nikki-svcCard4__stage + .nikki-svcCard4__stage {
    border-top: 0 !important;
  }
}
@media (max-width: 767px) {
  .nikki-svcCard4 { padding: 60px 20px !important; }
}

/* ============================================================
   SERVICE CARDS  (Services page sections 1, 2, 3 — uses .nikki-svcCardN__*)
   Left content (~39%) / Right "What it includes" (~61%)
   Section 02 reverses: content right, list left
   ============================================================ */
.nikki-svcCard1__row,
.nikki-svcCard2__row,
.nikki-svcCard3__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-svcCard1__left,
.nikki-svcCard2__left,
.nikki-svcCard3__left { flex: 0 0 38.89% !important; max-width: 38.89% !important; width: 38.89% !important; }
.nikki-svcCard1__right,
.nikki-svcCard2__right,
.nikki-svcCard3__right { flex: 0 0 61.11% !important; max-width: 61.11% !important; width: 61.11% !important; }

@media (max-width: 1023px) {
  .nikki-svcCard1__row,
  .nikki-svcCard2__row,
  .nikki-svcCard3__row { flex-direction: column !important; }
  .nikki-svcCard1__left, .nikki-svcCard1__right,
  .nikki-svcCard2__left, .nikki-svcCard2__right,
  .nikki-svcCard3__left, .nikki-svcCard3__right {
    flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important;
  }
  .nikki-svcCard1__left, .nikki-svcCard2__left, .nikki-svcCard3__left,
  .nikki-svcCard1__right, .nikki-svcCard2__right, .nikki-svcCard3__right {
    padding: 60px 40px !important;
    border-left: 0 !important; border-right: 0 !important;
    border-top: 1px solid #E0E0E0 !important;
  }
  .nikki-svcCard1__row > :first-child,
  .nikki-svcCard2__row > :first-child,
  .nikki-svcCard3__row > :first-child { border-top: 0 !important; }
}
@media (max-width: 767px) {
  .nikki-svcCard1__left, .nikki-svcCard2__left, .nikki-svcCard3__left,
  .nikki-svcCard1__right, .nikki-svcCard2__right, .nikki-svcCard3__right {
    padding: 40px 20px !important;
  }
}

/* ============================================================
   SERVICES HERO  (services page section[0])
   Desktop ≥1024: 50/50, photo full-bleed right
   ============================================================ */
.nikki-svcHero__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-svcHero__left,
.nikki-svcHero__right {
  width: 50% !important;
  flex: 0 0 50% !important;
  max-width: 50% !important;
}
.nikki-svcHero__right { padding: 0 !important; }
.nikki-svcHero__right .elementor-widget-image,
.nikki-svcHero__right .elementor-widget-image > div,
.nikki-svcHero__right .elementor-widget-image .elementor-widget-container { height: 100% !important; }
.nikki-svcHero__right img {
  width: 100% !important;
  height: 580px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}
@media (max-width: 1023px) {
  .nikki-svcHero__row { flex-direction: column !important; }
  .nikki-svcHero__left, .nikki-svcHero__right {
    width: 100% !important; flex: 0 0 100% !important; max-width: 100% !important;
  }
  .nikki-svcHero__left { padding: 60px 40px !important; }
  .nikki-svcHero__right img { height: 420px !important; }
}
@media (max-width: 767px) {
  .nikki-svcHero__left { padding: 40px 20px !important; }
  .nikki-svcHero__right img { height: 320px !important; }
}

/* ============================================================
   ABOUT FINAL CTA  (about page section[6])
   ============================================================ */
@media (max-width: 767px) {
  .nikki-aboutFinalCta__row {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 40px 20px !important;
    gap: 24px !important;
  }
  .nikki-aboutFinalCta__btnWrap { align-items: flex-start !important; }
}

/* ============================================================
   ABOUT CONTACT CTA  (about page section[5])
   Stacks <768
   ============================================================ */
@media (max-width: 767px) {
  .nikki-aboutContactCta__row {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 32px 20px !important;
    gap: 20px !important;
  }
  .nikki-aboutContactCta__right { align-items: flex-start !important; }
}

/* ============================================================
   ABOUT RESOURCE  (about page section[4])
   Photo left 560 / Content right 880
   ============================================================ */
.nikki-aboutRes__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-aboutRes__left  { flex: 0 0 38.89% !important; max-width: 38.89% !important; width: 38.89% !important; padding: 0 !important; }
.nikki-aboutRes__right { flex: 0 0 61.11% !important; max-width: 61.11% !important; width: 61.11% !important; }

.nikki-aboutRes__left .elementor-widget-image,
.nikki-aboutRes__left .elementor-widget-image > div,
.nikki-aboutRes__left .elementor-widget-image .elementor-widget-container { height: 100% !important; }
.nikki-aboutRes__left img {
  width: 100% !important;
  height: 560px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

@media (max-width: 1023px) {
  .nikki-aboutRes__row { flex-direction: column !important; }
  .nikki-aboutRes__left,
  .nikki-aboutRes__right {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .nikki-aboutRes__left img { height: 420px !important; }
  .nikki-aboutRes__right { padding: 60px 40px !important; }
}
@media (max-width: 767px) {
  .nikki-aboutRes__left img { height: 320px !important; }
  .nikki-aboutRes__right { padding: 40px 20px !important; }
}

/* ============================================================
   ABOUT PHILOSOPHY  (about page section[3])
   ============================================================ */
.nikki-aboutPhilo__grid {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-aboutPhilo__grid > .nikki-aboutPhilo__card {
  flex: 1 1 33.333% !important;
  width: 33.333% !important;
  max-width: 33.333% !important;
}
.nikki-aboutPhilo__grid > .nikki-aboutPhilo__card + .nikki-aboutPhilo__card {
  border-left: 0 !important;
}
.nikki-aboutPhilo__grid + .nikki-aboutPhilo__grid > .nikki-aboutPhilo__card {
  border-top: 0 !important;
}

@media (max-width: 1023px) {
  .nikki-aboutPhilo__top {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 24px !important;
  }
  .nikki-aboutPhilo__grid { flex-wrap: wrap !important; }
  .nikki-aboutPhilo__grid > .nikki-aboutPhilo__card {
    flex: 0 0 50% !important;
    width: 50% !important;
    max-width: 50% !important;
  }
}
@media (max-width: 767px) {
  .nikki-aboutPhilo { padding: 60px 20px !important; }
  .nikki-aboutPhilo__grid { flex-direction: column !important; }
  .nikki-aboutPhilo__grid > .nikki-aboutPhilo__card {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    border-left: 1px solid rgba(255,255,255,0.0627) !important;
  }
  .nikki-aboutPhilo__grid > .nikki-aboutPhilo__card + .nikki-aboutPhilo__card {
    border-top: 0 !important;
  }
}

/* ============================================================
   ABOUT DIFFERENT  (about page section[2])
   ============================================================ */
/* highlight card 5/8 + 3/8 ish (800/480 of 1280) */
.nikki-aboutDiff__highlight {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-aboutDiff__hlLeft  { flex: 0 0 62.5% !important; max-width: 62.5% !important; width: 62.5% !important; }
.nikki-aboutDiff__hlRight { flex: 0 0 37.5% !important; max-width: 37.5% !important; width: 37.5% !important; }

/* 4-col grid */
.nikki-aboutDiff__grid {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-aboutDiff__grid > .nikki-aboutDiff__col {
  flex: 1 1 25% !important;
  width: 25% !important;
  max-width: 25% !important;
}
/* shared borders so adjacent cells don't double */
.nikki-aboutDiff__grid > .nikki-aboutDiff__col + .nikki-aboutDiff__col {
  border-left: 0 !important;
}

@media (max-width: 1023px) {
  .nikki-aboutDiff__highlight { flex-direction: column !important; }
  .nikki-aboutDiff__hlLeft,
  .nikki-aboutDiff__hlRight {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .nikki-aboutDiff__grid { flex-wrap: wrap !important; }
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col {
    flex: 0 0 50% !important;
    width: 50% !important;
    max-width: 50% !important;
  }
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col:nth-child(odd) + .nikki-aboutDiff__col {
    border-left: 0 !important;
  }
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col:nth-child(n+3) {
    border-top: 0 !important;
  }
}
@media (max-width: 767px) {
  .nikki-aboutDiff { padding: 48px 20px !important; }
  .nikki-aboutDiff__grid { flex-direction: column !important; }
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    border-left: 1px solid #E0E0E0 !important;
  }
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col + .nikki-aboutDiff__col {
    border-top: 0 !important;
  }
}

/* ============================================================
   ABOUT PARTNER  (about page section[1])
   2-col 50/50, vertical divider, stacks <1024
   ============================================================ */
.nikki-aboutPartner__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-aboutPartner__left,
.nikki-aboutPartner__right {
  width: 50% !important;
  flex: 0 0 50% !important;
  max-width: 50% !important;
}
@media (max-width: 1023px) {
  .nikki-aboutPartner__row { flex-direction: column !important; }
  .nikki-aboutPartner__left,
  .nikki-aboutPartner__right {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  .nikki-aboutPartner__left { padding: 60px 40px !important; }
  .nikki-aboutPartner__right {
    padding: 60px 40px !important;
    border-left: 0 !important;
    border-top: 1px solid #E0E0E0 !important;
  }
}
@media (max-width: 767px) {
  .nikki-aboutPartner__left,
  .nikki-aboutPartner__right { padding: 40px 20px !important; }
}

/* ============================================================
   ABOUT HERO  (about page section[0])
   Desktop ≥1024: 50/50 columns, photo full-bleed right
   ============================================================ */
.nikki-aboutHero__row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.nikki-aboutHero__left,
.nikki-aboutHero__right {
  width: 50% !important;
  flex: 0 0 50% !important;
  max-width: 50% !important;
}
.nikki-aboutHero__right { padding: 0 !important; }
.nikki-aboutHero__right .elementor-widget-image,
.nikki-aboutHero__right .elementor-widget-image > div,
.nikki-aboutHero__right .elementor-widget-image .elementor-widget-container {
  height: 100% !important;
}
.nikki-aboutHero__right img {
  width: 100% !important;
  height: 620px !important;
  object-fit: cover !important;
  object-position: center 25% !important;
  display: block !important;
}
@media (max-width: 1023px) {
  .nikki-aboutHero__row {
    flex-direction: column !important;
  }
  .nikki-aboutHero__left,
  .nikki-aboutHero__right {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  .nikki-aboutHero__left {
    padding: 60px 40px !important;
  }
  .nikki-aboutHero__right img {
    height: 480px !important;
  }
}
@media (max-width: 767px) {
  .nikki-aboutHero__left {
    padding: 40px 20px !important;
  }
  .nikki-aboutHero__right img {
    height: 360px !important;
  }
}

/* Header: edge-to-edge dark background, but content area aligns with body 1280 grid */
.klev-header {
  padding-left:  max(80px, calc((100vw - 1280px) / 2)) !important;
  padding-right: max(80px, calc((100vw - 1280px) / 2)) !important;
}
@media (max-width: 1023px) {
  .klev-header {
    padding-left:  20px !important;
    padding-right: 20px !important;
  }
}

/* Nav menu: ALWAYS single horizontal row, never wrap, never burger */
.klev-header .elementor-nav-menu {
  display: flex !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}
.klev-header .elementor-nav-menu li,
.klev-header .elementor-nav-menu li a {
  white-space: nowrap !important;
}
.klev-header .elementor-menu-toggle { display: none !important; }
.klev-header .elementor-nav-menu--dropdown { display: none !important; }

/* Active nav link: italic + 500 weight (per Figma link3) */
.klev-header .elementor-nav-menu .current-menu-item > a,
.klev-header .elementor-nav-menu .current_page_item > a,
.klev-header .elementor-nav-menu .current-menu-ancestor > a {
  font-style: italic !important;
  font-weight: 500 !important;
}

/* ============================================================
   HERO  (landing page section[0])
   Desktop ≥1024: 50/50 columns, photo full-bleed right
   Tablet/mobile <1024: stack text on top, photo below
   ============================================================ */

.nikki-hero__inner > .e-con {
  width: 50% !important;
  --width: 50% !important;
  flex: 0 0 50% !important;
}

.nikki-hero__photo img {
  width: 100%;
  height: 720px;
  object-fit: cover;
  object-position: center 25%;  /* keep face/upper body in frame */
  display: block;
}

.nikki-hero__sec-cta a { text-decoration: none; }
.nikki-hero__sec-cta:hover .elementor-heading-title { color: #1B4D4F !important; }

@media (max-width: 1023px) {
  .nikki-hero__inner { flex-wrap: wrap !important; }
  .nikki-hero__inner > .e-con,
  .nikki-hero__left,
  .nikki-hero__photo {
    width: 100% !important;
    --width: 100% !important;
    flex: 0 0 100% !important;
  }
  .nikki-hero__left { padding: 60px 40px !important; }
  .nikki-hero__photo img { height: 480px; }
}

@media (max-width: 599px) {
  .nikki-hero__left { padding: 48px 20px !important; }
  .nikki-hero__photo img { height: 360px; }
}

/* ============================================================
   STATS BAR  (landing page section[1])
   Desktop ≥1024: 4 cells across, vertical dividers
   Tablet 600-1023: 2x2 grid, mixed dividers
   Mobile <600: 1 cell per row, horizontal dividers
   ============================================================ */

.nikki-stats__row > .e-con {
  width: 25% !important;
  --width: 25% !important;
  flex: 0 0 25% !important;
  border-right: 1px solid #E0E0E0;
  border-bottom: none;
}
.nikki-stats__row > .e-con:last-child { border-right: none; }

@media (max-width: 1023px) {
  .nikki-stats__row > .e-con {
    width: 50% !important;
    --width: 50% !important;
    flex: 0 0 50% !important;
    border-right: none !important;
    border-bottom: 1px solid #E0E0E0 !important;
  }
  .nikki-stats__row > .e-con:nth-child(odd) {
    border-right: 1px solid #E0E0E0 !important;
  }
  .nikki-stats__row > .e-con:nth-last-child(-n+2) {
    border-bottom: none !important;
  }
}

@media (max-width: 599px) {
  .nikki-stats__row > .e-con {
    width: 100% !important;
    --width: 100% !important;
    flex: 0 0 100% !important;
    border-right: none !important;
    border-bottom: 1px solid #E0E0E0 !important;
  }
  .nikki-stats__row > .e-con:last-child { border-bottom: none !important; }
}

/* ============================================================
   PHILOSOPHY  (landing page section[2])
   Desktop ≥1024: 780px left + fill right with vertical divider
   <1024: stack, drop divider, normalise paddings
   ============================================================ */

.nikki-phil__row > .nikki-phil__left {
  width: 780px !important;
  --width: 780px !important;
  flex: 0 0 780px !important;
}
.nikki-phil__row > .nikki-phil__right {
  flex: 1 1 auto !important;
}

@media (max-width: 1023px) {
  .nikki-phil__row { flex-wrap: wrap !important; }
  .nikki-phil__row > .nikki-phil__left,
  .nikki-phil__row > .nikki-phil__right {
    width: 100% !important;
    --width: 100% !important;
    flex: 0 0 100% !important;
  }
  .nikki-phil__row > .nikki-phil__right {
    border-left: none !important;
    border-top: 1px solid #E0E0E0 !important;
  }
  .nikki-phil__left { padding: 56px 40px !important; }
  .nikki-phil__right { padding: 56px 40px !important; }
}

@media (max-width: 599px) {
  .nikki-phil__left { padding: 40px 20px !important; }
  .nikki-phil__right { padding: 40px 20px !important; }
}

/* ============================================================
   ABOUT NIKKI  (landing page section[3])
   Desktop ≥1024: 700px text left + 520x560 photo right with quote card overlay
   <1024: stack, quote card flows below photo
   ============================================================ */

.nikki-about__row > .nikki-about__left {
  width: 700px !important;
  --width: 700px !important;
  flex: 0 0 700px !important;
}
.nikki-about__row > .nikki-about__right {
  flex: 1 1 auto !important;
  position: relative;
  min-height: 660px;
}
.nikki-about__photo {
  position: absolute;
  top: 50px;
  right: 0;
  width: 520px;
  height: 560px;
}
.nikki-about__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.nikki-about__quote {
  position: absolute;
  bottom: 50px;
  left: -40px;
  width: 400px !important;
  --width: 400px !important;
  z-index: 2;
  box-shadow: 0 24px 60px -20px rgba(10,10,10,0.18);
}
/* Bigger oversize quote mark line-height fix */
.nikki-about__qmark .elementor-heading-title { line-height: 0.6 !important; margin-bottom: -10px; }

@media (max-width: 1023px) {
  .nikki-about__row { flex-wrap: wrap !important; }
  .nikki-about__row > .nikki-about__left,
  .nikki-about__row > .nikki-about__right {
    width: 100% !important;
    --width: 100% !important;
    flex: 0 0 100% !important;
  }
  .nikki-about__row > .nikki-about__right {
    position: static;
    min-height: 0;
    padding: 0 40px 60px !important;
  }
  .nikki-about__photo {
    position: static;
    width: 100%;
    height: 460px;
    margin-bottom: 24px;
  }
  .nikki-about__quote {
    position: static;
    margin: -80px auto 0;
    width: min(400px, calc(100% - 40px)) !important;
    --width: min(400px, calc(100% - 40px)) !important;
  }
  .nikki-about__left { padding: 56px 40px !important; }
}

@media (max-width: 599px) {
  .nikki-about__left { padding: 48px 20px !important; }
  .nikki-about__row > .nikki-about__right { padding: 0 20px 48px !important; }
  .nikki-about__photo { height: 360px; }
  .nikki-about__quote {
    margin-top: -40px;
    width: calc(100% - 40px) !important;
    --width: calc(100% - 40px) !important;
  }
}

/* ============================================================
   SERVICES DEEP  (landing page section[4])
   Desktop ≥1024: 3 cards in a row
   Tablet 600-1023: stacked vertically
   ============================================================ */

.nikki-svc__cards {
  width: 100%;
}
.nikki-svc__cards > .nikki-svc__card {
  flex: 1 1 0 !important;
  min-width: 0;
}

@media (max-width: 1023px) {
  .nikki-svc { padding: 56px 40px !important; }
  .nikki-svc__cards { flex-wrap: wrap !important; }
  .nikki-svc__cards > .nikki-svc__card {
    flex: 0 0 100% !important;
    width: 100% !important;
    --width: 100% !important;
  }
}

@media (max-width: 599px) {
  .nikki-svc { padding: 40px 20px !important; }
}

/* ============================================================
   TESTIMONIALS  (landing page section[5]) — DARK
   Desktop ≥1024: featured quote left + 2 stacked cards right
   <1024: stack everything
   ============================================================ */

.nikki-test__row > .nikki-test__left {
  flex: 1 1 auto !important;
}
.nikki-test__row > .nikki-test__cards {
  width: 540px !important;
  --width: 540px !important;
  flex: 0 0 540px !important;
}

@media (max-width: 1023px) {
  .nikki-test__row { flex-wrap: wrap !important; }
  .nikki-test__row > .nikki-test__left,
  .nikki-test__row > .nikki-test__cards {
    width: 100% !important;
    --width: 100% !important;
    flex: 0 0 100% !important;
  }
  .nikki-test__left { padding: 56px 40px !important; }
  .nikki-test__cards { padding: 0 40px 56px !important; }
}

@media (max-width: 599px) {
  .nikki-test__left { padding: 40px 20px !important; }
  .nikki-test__cards { padding: 0 20px 40px !important; }
  .nikki-test__card-white,
  .nikki-test__card-cream { padding: 28px !important; }
}

/* ============================================================
   THE CIRCLE  (landing page section[6])
   Desktop ≥1024: 4 cards in a row, photo 320 tall
   Tablet 600-1023: 2x2 grid
   Mobile <600: 1 per row
   ============================================================ */

.nikki-circle__grid > .nikki-circle__card {
  flex: 1 1 0 !important;
  min-width: 0;
}
.nikki-circle__photo-wrap {
  width: calc(100% + 40px);
  margin-left: -20px;
  margin-right: -20px;
}
.nikki-circle__photo img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  display: block;
  border-radius: 4px 4px 0 0;
}

@media (max-width: 1023px) {
  .nikki-circle { padding: 56px 40px !important; }
  .nikki-circle__top {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 24px !important;
  }
  .nikki-circle__top-right { align-items: flex-start !important; }
  .nikki-circle__grid { flex-wrap: wrap !important; }
  .nikki-circle__grid > .nikki-circle__card {
    flex: 0 0 calc(50% - 12px) !important;
    width: calc(50% - 12px) !important;
    --width: calc(50% - 12px) !important;
  }
  .nikki-circle__photo img { height: 280px; }
}

@media (max-width: 599px) {
  .nikki-circle { padding: 40px 20px !important; }
  .nikki-circle__grid > .nikki-circle__card {
    flex: 0 0 100% !important;
    width: 100% !important;
    --width: 100% !important;
  }
  .nikki-circle__photo img { height: 320px; }
}

/* ============================================================
   CONTACT  (landing page section[7])
   Desktop ≥1024: white text-info left + cream-soft form right (540px)
   <1024: stack
   ============================================================ */

.nikki-contact__row > .nikki-contact__left {
  flex: 1 1 auto !important;
}
.nikki-contact__row > .nikki-contact__right {
  width: 540px !important;
  --width: 540px !important;
  flex: 0 0 540px !important;
}

@media (max-width: 1023px) {
  .nikki-contact__row { flex-wrap: wrap !important; }
  .nikki-contact__row > .nikki-contact__left,
  .nikki-contact__row > .nikki-contact__right {
    width: 100% !important;
    --width: 100% !important;
    flex: 0 0 100% !important;
  }
  .nikki-contact__left { padding: 56px 40px !important; }
  .nikki-contact__right { padding: 56px 40px !important; }
}

@media (max-width: 599px) {
  .nikki-contact__left { padding: 40px 20px !important; }
  .nikki-contact__right { padding: 40px 20px !important; }
}

/* ============================================================
   FINAL CTA  (landing page section[8]) — OLIVE BANNER
   Desktop ≥1024: text left + outline button right
   <1024: stack
   ============================================================ */

@media (max-width: 1023px) {
  .nikki-cta__row {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 48px 40px !important;
    gap: 24px !important;
  }
  .nikki-cta__btn-wrap { align-items: flex-start !important; }
}

@media (max-width: 599px) {
  .nikki-cta__row { padding: 40px 20px !important; }
}

/* ============================================================
   POLISH PASS (v1.2.0) — high + medium items
   ============================================================ */

/* --- Hero CTAs: lift on hover --- */
.nikki-hero .elementor-button,
.nikki-hero__sec-cta {
  transition: transform 0.2s ease, opacity 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.nikki-hero .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -8px rgba(10,10,10,0.35);
}
.nikki-hero__sec-cta:hover { transform: translateY(-1px); }

/* --- Stats: more presence (taller cells, bigger numbers) --- */
.nikki-stats__row > .e-con {
  padding: 44px 40px !important;
}
.nikki-stats__row .elementor-heading-title {
  /* desktop number override */
}
.nikki-stats__row > .e-con > .elementor-widget:first-child .elementor-heading-title {
  font-size: 46px !important;   /* up from 36 H2 default */
  line-height: 1 !important;
}

/* --- Section dividers: soften 1px lines from #E0E0E0 to #EDE5D8 (border-warm) --- */
.nikki-stats,
.nikki-contact { border-color: #EDE5D8 !important; }

/* --- Philosophy: turn the floating accent into a left-side quote bar --- */
.nikki-phil__accent-vert { display: none; }
.nikki-phil__left .elementor-widget-heading:last-of-type .elementor-heading-title {
  border-left: 3px solid #778239;
  padding-left: 18px;
  margin-top: 4px;
}

/* --- About quote card: stronger floating shadow --- */
.nikki-about__quote {
  box-shadow: 0 30px 80px -20px rgba(10,10,10,0.28),
              0 8px 24px -8px rgba(10,10,10,0.10) !important;
}

/* --- Mediator photos: keep faces visible, not chest-cropped --- */
.nikki-circle__photo img { object-position: center top !important; }

/* --- Service card titles: gentler weight, tighter LH --- */
.nikki-svc__card .elementor-widget-heading h3 {
  font-weight: 500 !important;
  line-height: 1.35 !important;
}

/* --- Form fields: tighter padding, refined placeholder --- */
.nikki-contact__right .elementor-field-textual {
  padding: 14px 16px !important;
  border-radius: 0 !important;
  font-size: 13px !important;
}
.nikki-contact__right textarea.elementor-field-textual {
  min-height: 120px;
  line-height: 1.6 !important;
}
.nikki-contact__right .elementor-field-textual::placeholder { color: #C4C4C4 !important; }
.nikki-contact__right .elementor-field-group > label {
  margin-bottom: 6px !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.nikki-contact__right .elementor-button.elementor-size-md {
  padding: 18px 28px !important;
  letter-spacing: 0.8px !important;
}
.nikki-contact__right .elementor-button.elementor-size-md:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px -8px rgba(10,10,10,0.4);
  transition: all 0.2s ease;
}

/* --- Section padding rhythm: tighten Stats top/bottom (it's a band, not a section), keep others --- */
/* (Stats already adjusted via cell padding above) */

/* --- FinalCTA button: subtle lift on hover --- */
.nikki-cta .elementor-button { transition: all 0.2s ease; }
.nikki-cta .elementor-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px -8px rgba(0,0,0,0.3);
}

/* --- All h-section CTAs get a baseline transition --- */
.nikki-test .elementor-button,
.nikki-svc .elementor-button,
.nikki-phil .elementor-button,
.nikki-about .elementor-button {
  transition: all 0.2s ease;
}
.nikki-test .elementor-button:hover,
.nikki-svc .elementor-button:hover,
.nikki-phil .elementor-button:hover,
.nikki-about .elementor-button:hover {
  transform: translateY(-1px);
}

/* ============================================================
   POLISH PASS v1.3 — landing-page detail-eye fixes
   ============================================================ */

/* Hero left content: more breathing room between headline and body */
.nikki-hero__left .elementor-widget:not(:first-child) { margin-top: 0; }
.nikki-hero__left > .elementor-element + .elementor-element { margin-top: 8px; }

/* Stats hairline divider: slightly more visible */
.nikki-stats__row > .elementor-element + .elementor-element {
  border-left: 1px solid #D0D0D0 !important;
}

/* Service card numbers: gold + heavier presence (size already 48 in DB; let LH tighten and add letter-spacing) */
.nikki-svc__card .elementor-widget-heading:first-child .elementor-heading-title {
  line-height: 1 !important;
  letter-spacing: -1px !important;
  font-weight: 300 !important;
}

/* Service card titles: slightly larger for hierarchy */
.nikki-svc__card .elementor-widget-heading:nth-of-type(2) .elementor-heading-title {
  font-size: 18px !important;
  line-height: 1.3 !important;
}

/* Black/dark CTAs across landing — consistent rectangular, lift on hover */
.nikki-hero__left .elementor-button,
.nikki-phil__right .elementor-button,
.nikki-about__left .elementor-button,
.nikki-svc__cta .elementor-button {
  border-radius: 0 !important;
  transition: all 0.2s ease !important;
}
.nikki-hero__left .elementor-button:hover,
.nikki-phil__right .elementor-button:hover,
.nikki-about__left .elementor-button:hover,
.nikki-svc__cta .elementor-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px -8px rgba(0,0,0,0.3);
}

/* Footer attribution: ensure 24×1 separator + name align nicely */
.nikki-foot__attr { align-items: center !important; gap: 12px !important; }

/* ============================================================
   POLISH PASS v1.4 — hero eyebrow tagline + CTA phone alignment
   ============================================================ */

/* Eyebrow "#ReadYourBriefandJustShowUp" beside the green divider line */
.nikki-hero__tagline .elementor-heading-title {
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.5px !important;
  line-height: 1 !important;
  color: #8A8A7D !important;
  white-space: nowrap !important;
  margin: 0 !important;
}

/* Keep the phone CTA inline beside the button instead of wrapping below it */
.nikki-hero__sec-cta {
  width: auto !important;
  --width: auto !important;
  flex: 0 0 auto !important;
}

/* ============================================================
   POLISH PASS v1.5 — hero eyebrow: tighten line-to-tagline gap
   ============================================================ */

/* The divider widget was stretching full width and pushing the tagline
   to the far right. Pin it to the line width so the text sits beside it. */
.nikki-hero__eyebrow {
  justify-content: flex-start !important;
}
.nikki-hero__eyebrow .elementor-widget-divider {
  width: 40px !important;
  flex: 0 0 40px !important;
}

/* ============================================================
   POLISH PASS v1.6 — hero phone icon: outline (stroke) not filled
   ============================================================ */
.nikki-hero__sec-cta .elementor-icon svg {
  fill: none !important;
  stroke: #0A0A0A !important;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ============================================================
   POLISH PASS v1.7 — philosophy micro-header: tighten the gap
   before "Why We're Different" (divider was stretching full width)
   ============================================================ */
.nikki-phil__micro {
  justify-content: flex-start !important;
}
.nikki-phil__micro .elementor-widget-divider {
  width: 60px !important;
  flex: 0 0 60px !important;
}

/* ============================================================
   POLISH PASS v1.8 — remove stray green bar before "Why We're
   Different". The quote-bar rule's :last-of-type also matched the
   micro row's last heading; scope it back out here.
   ============================================================ */
.nikki-phil__micro .elementor-widget-heading:last-of-type .elementor-heading-title {
  border-left: 0 !important;
  padding-left: 0 !important;
  margin-top: 0 !important;
}

/* ============================================================
   POLISH PASS v1.9 — philosophy quote: kill the floating accent
   bar (Elementor's --display:flex was beating display:none) and
   keep the green bar beside the quote text, matching the design.
   ============================================================ */
.nikki-phil__accent-vert { display: none !important; }

.elementor-element-01fcd3e .elementor-heading-title {
  border-left: 3px solid #778239 !important;
  padding-left: 18px !important;
  margin-top: 0 !important;
}

/* ============================================================
   POLISH PASS v2.0 — philosophy quote (supersedes v1.9):
   per approved design, the green accent line sits ABOVE the
   quote and the text drops to the next line (no left bar).
   ============================================================ */
.nikki-phil__accent-vert { display: flex !important; }

.elementor-element-01fcd3e .elementor-heading-title {
  border-left: 0 !important;
  padding-left: 0 !important;
  margin-top: 24px !important;
}

/* ============================================================
   POLISH PASS v2.1 — About testimonial card: anchor it to the
   photo's bottom-left instead of the right column's left edge.
   Previously left:-40px made it float in empty space (stretched
   / unbalanced) on wide screens. Right-anchoring keeps the card
   overlapping the photo consistently at any width.
   ============================================================ */
@media (min-width: 1024px) {
  .nikki-about__quote {
    left: auto !important;
    right: 200px !important;
  }
}

/* ============================================================
   POLISH PASS v2.2 — About intro paragraph: cap the line length
   so it doesn't run the full 700px column (looked stretched).
   Tighter measure (~60-67 chars/line) matches the design.
   ============================================================ */
.nikki-about__left .elementor-widget-text-editor {
  max-width: 580px;
}
.nikki-about__left .elementor-widget-text-editor p {
  text-align: left !important;
}

/* ============================================================
   POLISH PASS v2.3 — About intro paragraph (supersedes v2.2):
   v2.2's max-width on the widget didn't constrain inside the
   flex column. Cap the <p> itself so the text wraps tighter,
   matching the design's line length.
   ============================================================ */
.elementor-element-a714469 .elementor-widget-container,
.elementor-element-a714469 .elementor-widget-container p {
  max-width: 560px !important;
}

/* ============================================================
   POLISH PASS v2.4 — services micro-header: tighten gap before
   "Tailored Solutions for Elite Mediators" (divider was
   stretching full width, same pattern as v1.7 philosophy).
   ============================================================ */
.nikki-svc__micro {
  justify-content: flex-start !important;
}
.nikki-svc__micro .elementor-widget-divider {
  width: 60px !important;
  flex: 0 0 60px !important;
}

/* ============================================================
   POLISH PASS v2.5 — service card numbers: gold -> light grey
   (override the global "gold" color on the card number heading)
   ============================================================ */
.nikki-svc__card .elementor-widget-heading:first-child .elementor-heading-title {
  color: #D3D0CA !important;
}

/* ============================================================
   POLISH PASS v2.6 — service card numbers: gold -> light grey.
   v2.5's :first-child selector didn't match; target the number
   headings directly by element ID (beats Elementor's inline
   global-gold color rule).
   ============================================================ */
.elementor-element-c5883e0 .elementor-heading-title,
.elementor-element-1aed85e .elementor-heading-title,
.elementor-element-58dc173 .elementor-heading-title {
  color: #D2D2D2 !important;
}

/* ============================================================
   POLISH PASS v2.7 — Contact intro paragraph: cap line length
   so it wraps tighter (was running the full column width),
   matching the design.
   ============================================================ */
.elementor-element-5f83b2a .elementor-widget-container,
.elementor-element-5f83b2a .elementor-widget-container p {
  max-width: 540px !important;
}

/* ============================================================
   POLISH PASS v2.8 — paragraph width caps, CORRECTED selector.
   This Elementor uses optimized DOM output: the <p> is a direct
   child of .elementor-element-XXX (no .elementor-widget-container
   wrapper), so the v2.3/v2.7 selectors matched nothing. Target
   the <p> directly.
   ============================================================ */
.elementor-element-a714469 p { max-width: 560px !important; }  /* About intro paragraph */
.elementor-element-5f83b2a p { max-width: 540px !important; }  /* Contact intro paragraph */

/* ============================================================
   POLISH PASS v2.9 — contact icon-list: outline SVG icons
   (phone/email/location). Ensure stroke render, no fill.
   ============================================================ */
.elementor-element-ff6750d .elementor-icon-list-icon svg {
  fill: none !important;
  stroke: #778239 !important;
  stroke-width: 2;
}

/* ============================================================
   POLISH PASS v3.0 — contact form card icon: outline send/
   paper-plane (was solid black calendar-check).
   ============================================================ */
.elementor-element-8ad4ba4 svg {
  fill: none !important;
  stroke: #778239 !important;
  stroke-width: 2;
}

/* ============================================================
   ABOUT PAGE v3.1 — hero paragraph: cap width so it wraps
   tighter (was running full column width), matching design.
   ============================================================ */
.elementor-element-fc0d3c4 p { max-width: 400px !important; }

/* ============================================================
   ABOUT PAGE v3.2 — "YOUR PARTNER" micro-row: tighten gap before
   "Professional Freedom" (divider was stretching full width).
   ============================================================ */
.nikki-aboutPartner__label { justify-content: flex-start !important; }
.nikki-aboutPartner__label .elementor-widget-divider {
  width: 60px !important;
  flex: 0 0 60px !important;
}

/* ============================================================
   ABOUT PAGE v3.3 — "Described by clients..." quote: cap width
   for a balanced 2-line wrap (was running long on line 1).
   ============================================================ */
.elementor-element-ac0423b p { max-width: 500px !important; }

/* ============================================================
   ABOUT PAGE v3.5 — "WHY CMS" micro-row: tighten gap before
   "The CMS Advantage" (divider was stretching full width).
   ============================================================ */
.nikki-aboutDiff__label { justify-content: flex-start !important; }
.nikki-aboutDiff__label .elementor-widget-divider {
  width: 60px !important;
  flex: 0 0 60px !important;
}

/* ============================================================
   ABOUT PAGE v3.6 — "What Makes CMS Different" intro paragraph:
   parent uses align-items:flex-start so the text-editor was
   content-width (one long line, overflowing). Cap width to wrap
   to two lines like the design.
   ============================================================ */
.elementor-element-409c234 p { max-width: 820px !important; }

/* ============================================================
   ABOUT PAGE v3.7 — aboutDiff icons -> outline SVG (brain,
   award, trophy, target, heart-handshake). Ensure stroke/no-fill.
   ============================================================ */
.elementor-element-097e15a svg, .elementor-element-40f8a6f svg,
.elementor-element-0db74b4 svg, .elementor-element-94d642f svg,
.elementor-element-8ba7f17 svg {
  fill: none !important;
  stroke: #778239 !important;
  stroke-width: 2;
}

/* ============================================================
   ABOUT PAGE v3.8 — philosophy intro paragraph: cap width to
   wrap to 3 lines (was 2 wide lines), matching design.
   ============================================================ */
.elementor-element-f318448 p { max-width: 500px !important; }

/* ============================================================
   ABOUT PAGE v3.9 — philosophy intro paragraph: align block to
   the right of its column (was left-of-center after width cap).
   ============================================================ */
.nikki-aboutPhilo__topRight { align-items: flex-end !important; }

/* ============================================================
   ABOUT PAGE v4.0 — philosophy belief-card icons -> outline SVG
   (compass, heart-handshake, shield-check, map-pin, sparkles,
   rocket). Ensure stroke/no-fill.
   ============================================================ */
.elementor-element-d4ea8a1 svg, .elementor-element-00bd811 svg,
.elementor-element-dac9c14 svg, .elementor-element-f2e9a2a svg,
.elementor-element-cac07a7 svg, .elementor-element-b898a42 svg {
  fill: none !important;
  stroke: #778239 !important;
  stroke-width: 2;
}

/* ============================================================
   ABOUT PAGE v4.1 — "THE BOTTOM LINE" quote: cap width so line 1
   ends at "figure out" (drops the tail to line 2), matching design.
   ============================================================ */
.elementor-element-aa791d7 .elementor-heading-title { max-width: 1100px !important; }

/* ============================================================
   ABOUT PAGE v4.2 — "Whether you're starting out..." quote: cap
   width to wrap to 3 lines (was 2 wide lines), matching design.
   ============================================================ */
.elementor-element-791f9b6 .elementor-heading-title { max-width: 580px !important; }

/* ============================================================
   ABOUT PAGE v4.3 — contact-CTA phone button: outline phone icon
   in green (icon was solid black). Text stays black.
   ============================================================ */
.elementor-element-5132299 svg,
.elementor-element-5132299 .elementor-button-icon svg {
  fill: none !important;
  stroke: #778239 !important;
  stroke-width: 2;
}

/* ============================================================
   CONTACT PAGE v4.4 — hero intro paragraph: cap width so it
   wraps to 2 centered lines (was one wide line), matching design.
   ============================================================ */
.elementor-element-b452962 p {
  max-width: 680px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* ============================================================
   CONTACT PAGE v4.5 — hero heading: upright (design shows it
   non-italic; global H1 typography is italic site-wide).
   ============================================================ */
.elementor-element-e4aa453 .elementor-heading-title { font-style: normal !important; }

/* ============================================================
   CONTACT PAGE v4.6 — "Nikki Safavi, Founder" upright; contact
   info icons -> outline (white stroke, on the colored circles).
   ============================================================ */
.elementor-element-130739b .elementor-heading-title { font-style: normal !important; }
.elementor-element-b6d7f38 svg, .elementor-element-0edd6a9 svg,
.elementor-element-0520a11 svg, .elementor-element-3d23601 svg {
  fill: none !important;
  stroke: #FFFFFF !important;
  stroke-width: 2;
}

/* ============================================================
   CONTACT PAGE v4.7 — contact info icons: remove the solid
   colored circles; show outline icons in their own colors.
   (Overrides theme line ~149 fill:#FFFFFF !important.)
   ============================================================ */
.nikki-cont__row .nikki-cont__row__iconBg { background-color: transparent !important; }
.nikki-cont__row .nikki-cont__row__iconBg .elementor-widget-icon.elementor-element-b6d7f38 svg { fill: none !important; stroke: #1B4D4F !important; }
.nikki-cont__row .nikki-cont__row__iconBg .elementor-widget-icon.elementor-element-0edd6a9 svg { fill: none !important; stroke: #778239 !important; }
.nikki-cont__row .nikki-cont__row__iconBg .elementor-widget-icon.elementor-element-0520a11 svg { fill: none !important; stroke: #C4A47A !important; }
.nikki-cont__row .nikki-cont__row__iconBg .elementor-widget-icon.elementor-element-3d23601 svg { fill: none !important; stroke: #6F8EA1 !important; }

/* ============================================================
   CONTACT PAGE v4.8 — form: "Send Us a Message" upright (was
   italic); required-mark asterisks match label color (was red).
   ============================================================ */
.elementor-element-162818e .elementor-heading-title { font-style: normal !important; }
.elementor-element-c17839c .elementor-mark-required { color: inherit !important; }

/* ============================================================
   CONTACT PAGE v4.9 — required-mark asterisk is a ::after on the
   field label (Elementor colors it red). Recolor to match label.
   ============================================================ */
.elementor-element-c17839c .elementor-field-group.elementor-mark-required .elementor-field-label:after,
.elementor-element-c17839c .elementor-mark-required .elementor-field-label:after {
  color: inherit !important;
}

/* ============================================================
   CONTACT PAGE v5.1 — tighten label-to-input gap via the field
   group's flex row-gap only (no display change, layout-safe).
   ============================================================ */
.elementor-element-c17839c .elementor-field-group { row-gap: 6px !important; }
.elementor-element-c17839c .elementor-field-group > .elementor-field-label { margin-bottom: 0 !important; }

/* ============================================================
   CONTACT PAGE v5.2 — "What Happens Next" heading upright;
   step-card icons -> outline white SVG (were blank/invisible).
   ============================================================ */
.elementor-element-4e73816 .elementor-heading-title { font-style: normal !important; }
.nikki-contNext__step__iconBg .elementor-widget-icon.elementor-element-275c84c svg,
.nikki-contNext__step__iconBg .elementor-widget-icon.elementor-element-7277451 svg,
.nikki-contNext__step__iconBg .elementor-widget-icon.elementor-element-a960122 svg,
.nikki-contNext__step__iconBg .elementor-widget-icon.elementor-element-dae862b svg {
  fill: none !important;
  stroke: #FFFFFF !important;
  stroke-width: 2;
}

/* ============================================================
   CONTACT PAGE v5.3 — step card 04: its circle background never
   generated (data quirk), so the white rocket was invisible.
   Force the blue circle so the icon shows.
   ============================================================ */
.elementor-element-2efef63 { background-color: #6F8EA1 !important; }

/* ============================================================
   SUCCESS PAGE v5.4 — hero: group+center the micro-header row
   (divider was stretching), and wrap the intro paragraph to
   2 centered lines.
   ============================================================ */
.nikki-succHero__label { justify-content: center !important; }
.nikki-succHero__label .elementor-widget-divider {
  width: 60px !important;
  flex: 0 0 60px !important;
}
.elementor-element-ebe0ed4 p {
  max-width: 580px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================================
   SUCCESS PAGE v5.5 — Featured Testimonial: remove the golden
   line at the top of each testimonial card (card1 + card2).
   ============================================================ */
.elementor-element-65bb2b0 { display: none !important; }

/* ============================================================
   SUCCESS PAGE v5.6 — featured quote: cap width so it wraps
   narrower (more lines), matching the design.
   ============================================================ */
.elementor-element-c9c1fd8 .elementor-heading-title { max-width: 600px !important; }

/* ============================================================
   SUCCESS PAGE v5.7 — grid header: group the "CLIENT VOICES"
   micro-row (divider was stretching); center + narrow the
   "More testimonials coming soon..." line.
   ============================================================ */
.nikki-succGrid__label { justify-content: flex-start !important; }
.nikki-succGrid__label .elementor-widget-divider {
  width: 60px !important;
  flex: 0 0 60px !important;
}
.elementor-element-3e80cc1 p {
  text-align: center !important;
  max-width: 560px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================================
   SUCCESS PAGE v5.8 — "More testimonials" line: right-aligned
   (supersedes v5.7 center), narrower 2-line wrap, pushed to the
   right edge of its column.
   ============================================================ */
.elementor-element-3e80cc1 p {
  text-align: right !important;
  max-width: 420px !important;
  margin-left: auto !important;
  margin-right: 0 !important;
}

/* ============================================================
   SERVICES PAGE v5.9 — hero micro-row: group "OUR SERVICES ---
   Concierge Solutions" (divider was stretching).
   ============================================================ */
.nikki-svcHero__label { justify-content: flex-start !important; }
.nikki-svcHero__label .elementor-widget-divider {
  width: 60px !important;
  flex: 0 0 60px !important;
}

/* ============================================================
   SERVICES PAGE v6.0 — Service Card 1 RESULTS text: cap width
   so it wraps to 2 lines (was running wide), matching design.
   ============================================================ */
.elementor-element-bb2fa04 .elementor-heading-title { max-width: 540px !important; }

/* ============================================================
   SERVICES PAGE v6.1 — svcCard4 cards: outline green icons
   (cards 2/3 used FA6 names that did not render).
   ============================================================ */
.elementor-element-1ec467f svg, .elementor-element-c6bba9d svg, .elementor-element-97fc062 svg {
  fill: none !important;
  stroke: #8B9A4A !important;
  stroke-width: 2;
}

/* ============================================================
   SERVICES PAGE v6.2 — bottom contact bar: outline phone/email
   icons (not filled) + space between the two items.
   ============================================================ */
.elementor-element-0249672 .elementor-icon-list-icon svg {
  fill: none !important;
  stroke: #778239 !important;
  stroke-width: 2;
}
.elementor-element-0249672 .elementor-icon-list-item:not(:last-child) {
  margin-right: 36px !important;
}

/* ============================================================
   RESPONSIVE v6.3 — Contact info items: the .nikki-cont__row
   stacking rule (for the info/form split) also stacked each
   icon+text item, centering the icon. Keep items horizontal
   (icon left of label) on tablet/mobile.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-cont__info .nikki-cont__row {
    flex-direction: row !important;
    align-items: center !important;
    gap: 16px !important;
    text-align: left !important;
  }
}

/* ============================================================
   RESPONSIVE v6.4 — Mobile/tablet hamburger menu. The nav widget
   is 45% wide, so its dropdown opened as a narrow box on the
   right. Make it a clean full-width panel below the fixed header.
   ============================================================ */
@media (max-width: 1024px) {
  .elementor-element-fd5c935b nav.elementor-nav-menu--dropdown {
    position: fixed !important;
    top: 92px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-height: calc(100vh - 92px) !important;
    overflow-y: auto !important;
    background-color: #0A0A0A !important;
    border-top: 1px solid rgba(255,255,255,0.12) !important;
    box-shadow: 0 16px 32px -8px rgba(0,0,0,0.45) !important;
  }
  .elementor-element-fd5c935b .elementor-nav-menu--dropdown .elementor-nav-menu {
    width: 100% !important;
  }
  .elementor-element-fd5c935b .elementor-nav-menu--dropdown a.elementor-item {
    text-align: left !important;
    padding: 18px 28px !important;
    color: #FBF7F0 !important;
    font-style: normal !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    line-height: 1.2 !important;
  }
  .elementor-element-fd5c935b .elementor-nav-menu--dropdown a.elementor-item:hover,
  .elementor-element-fd5c935b .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
  .elementor-element-fd5c935b .elementor-nav-menu--dropdown .current-menu-item > a.elementor-item {
    background-color: rgba(255,255,255,0.07) !important;
    color: #FBF7F0 !important;
  }
}

/* ============================================================
   RESPONSIVE v6.5 — push the hamburger toggle to the right edge
   (it was centered inside the 45%-wide nav widget).
   ============================================================ */
@media (max-width: 1024px) {
  .elementor-element-fd5c935b > .elementor-widget-container {
    display: flex !important;
    justify-content: flex-end !important;
  }
  .elementor-element-fd5c935b .elementor-menu-toggle {
    margin-left: auto !important;
    margin-right: 0 !important;
  }
}

/* ============================================================
   FOOTER v6.6 — quote "The best resolution..." cap width to
   wrap into a narrower 2-line block, matching design.
   ============================================================ */
.elementor-element-b1ea0a6 .elementor-heading-title { max-width: 330px !important; }

/* ============================================================
   FOOTER v6.7 — attribution row: group "Nikki Safavi..." with
   its short divider (divider was stretching, pushing text right).
   ============================================================ */
.nikki-foot__attr { justify-content: flex-start !important; }
.nikki-foot__attr .elementor-widget-divider {
  width: 24px !important;
  flex: 0 0 24px !important;
}

/* ============================================================
   RESPONSIVE v6.8 — Home hero: on stacked (tablet/mobile) layout,
   show the photo BEFORE the text.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-hero__inner { display: flex !important; flex-direction: column !important; }
  .nikki-hero__photo { order: -1 !important; }
  .nikki-hero__left  { order: 0 !important; }
}

/* ============================================================
   RESPONSIVE v6.9 — Home stats: center each stat (number+label)
   on mobile (was left-aligned).
   ============================================================ */
@media (max-width: 767px) {
  .nikki-stats__row > .e-con {
    align-items: center !important;
    text-align: center !important;
  }
  .nikki-stats__row > .e-con .elementor-heading-title { text-align: center !important; }
}

/* ============================================================
   RESPONSIVE v6.10 — Home stats: on 1-per-row mobile, every cell
   except the last needs a bottom divider (the 2x2 logic skipped
   the bottom-row cells, so the line after 10+ was missing).
   ============================================================ */
@media (max-width: 599px) {
  .nikki-stats__row > .e-con:not(:last-child) {
    border-bottom: 1px solid #E0E0E0 !important;
  }
  .nikki-stats__row > .e-con { border-right: none !important; border-left: none !important; }
}

/* ============================================================
   RESPONSIVE v6.11 — Home Philosophy accent: the 3px green
   vertical accent (nikki-phil__accent-vert) was stretched to
   full width on mobile (looked like an empty green button).
   Keep it a thin line.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-phil__accent-vert {
    width: 3px !important;
    max-width: 3px !important;
    flex: 0 0 3px !important;
    align-self: flex-start !important;
  }
}

/* ============================================================
   POLISH v6.12 — eyebrow DOT consistency across all pages.
   The 6px round green dot before each section eyebrow had its
   width:6px set only at the desktop breakpoint in Elementor, so
   on tablet/mobile it reverted to full container width and the
   6px-tall square stretched into a full-width green LINE.
   Pin every __dot to a fixed 6x6 round dot at ALL breakpoints.
   ============================================================ */
.nikki-phil__dot,
.nikki-about__dot,
.nikki-svc__dot,
.nikki-contact__dot,
.nikki-aboutHero__dot {
  width: 6px !important;
  min-width: 6px !important;
  max-width: 6px !important;
  height: 6px !important;
  min-height: 6px !important;
  flex: 0 0 6px !important;
  border-radius: 50% !important;
  align-self: center !important;
}

/* ============================================================
   POLISH v6.13 — "THE CIRCLE" eyebrow accent bar. Same
   desktop-only-width bug as the dots: the 3x16 vertical green
   accent (nikki-circle__bar) reverted to full container width
   on tablet/mobile and rendered as a thick full-width block.
   Pin it to its intended 3x16 vertical bar at ALL breakpoints.
   ============================================================ */
.nikki-circle__bar {
  width: 3px !important;
  min-width: 3px !important;
  max-width: 3px !important;
  flex: 0 0 3px !important;
  align-self: center !important;
}

/* ============================================================
   POLISH v6.14 — SITE-WIDE green marker fix (mobile/tablet).
   Every small green accent (6x6 eyebrow DOTS and 3-4px vertical
   accent BARS) had its width set only at Elementor's desktop
   breakpoint, so on tablet/mobile each reverted to full
   container width and rendered as a full-width green LINE/block.
   These have no CSS class, so pin them by element ID.
   ============================================================ */

/* --- Eyebrow DOTS -> fixed 6x6 round dot at all breakpoints --- */
.elementor-element-ee7d9fc,   /* About / Partner label */
.elementor-element-0fe109e,   /* About / Difference label */
.elementor-element-a9aabd0,   /* About / Resource-network label */
.elementor-element-a35efeb,   /* Services / Hero label */
.elementor-element-14b5a6b,   /* Services / Card 1 label */
.elementor-element-b34c55c,   /* Services / Card 2 label */
.elementor-element-2d50d6f,   /* Services / Card 3 label */
.elementor-element-9ec932e,   /* Services / Card 4 label */
.elementor-element-7fc6063,   /* Success / Hero label */
.elementor-element-7519e5a {  /* Success / Grid label */
  width: 6px !important;
  min-width: 6px !important;
  max-width: 6px !important;
  height: 6px !important;
  min-height: 6px !important;
  flex: 0 0 6px !important;
  border-radius: 50% !important;
  align-self: center !important;
}

/* --- Vertical accent BARS -> keep a thin vertical bar (not full width) --- */
.elementor-element-bace671,   /* About / Partner accent (3x50) */
.elementor-element-451d05d,   /* Services / Card 1 result accent (3x48) */
.elementor-element-5eeeba1,   /* Services / Card 2 result accent (3x48) */
.elementor-element-0eb06f2 {  /* Services / Card 3 result accent (3x48) */
  width: 3px !important;
  min-width: 3px !important;
  max-width: 3px !important;
  flex: 0 0 3px !important;
  align-self: flex-start !important;
}
.elementor-element-40955c3 {  /* About / Philosophy bottom strip (4x60) */
  width: 4px !important;
  min-width: 4px !important;
  max-width: 4px !important;
  flex: 0 0 4px !important;
  align-self: flex-start !important;
}

/* ============================================================
   POLISH v6.15 — Contact info rows: kill excess mobile spacing.
   The generic .nikki-cont__row mobile rules (padding 40-60px,
   for stacking the info+form LAYOUT row) also hit the inner
   PHONE/EMAIL/WEBSITE/HOURS items, padding each by 80px so they
   stood ~124px tall with huge gaps. Scope those inner rows back
   to tight spacing; the parent .nikki-cont__details gap (24px)
   handles the rhythm between them.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-cont__details .nikki-cont__row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    gap: 16px !important;
  }
  .nikki-cont__details { gap: 24px !important; }
}

/* ============================================================
   POLISH v6.16 — Service 04 transition cards: complete borders
   on mobile. Desktop renders the 3 cards as a connected row with
   shared (single) borders, so cards 2 & 3 drop border-left, and
   the tablet rule additionally dropped border-top on stacked
   cards. Flush + faint 6% borders read as "missing lines" once
   stacked. On mobile give every card a full 4-side border and a
   gap so each is a clearly outlined, separate box.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-svcCard4__grid {
    gap: 16px !important;
  }
  .nikki-svcCard4__grid > .nikki-svcCard4__stage,
  .nikki-svcCard4__grid > .nikki-svcCard4__stage + .nikki-svcCard4__stage {
    border: 1px solid rgba(255,255,255,0.14) !important;
  }
}

/* ============================================================
   POLISH v6.17 — About "What Sets Us Apart" cards: complete
   borders on mobile/tablet. Same connected-row pattern as the
   service cards: adjacent cols share borders (border-left:0,
   border-top:0), which leaves stacked cards open on a side once
   they wrap. Give every card a full 4-side border + a gap so
   each is a clean outlined box at tablet and mobile.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-aboutDiff__grid {
    gap: 16px !important;
  }
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col,
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col + .nikki-aboutDiff__col,
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col:nth-child(odd) + .nikki-aboutDiff__col,
  .nikki-aboutDiff__grid > .nikki-aboutDiff__col:nth-child(n+3) {
    border: 1px solid #E0E0E0 !important;
  }
}

/* ============================================================
   POLISH v6.18 — About philosophy outcome cards (01-04, dark
   section). Same connected-grid border sharing as the service
   cards (border-left:0, border-top:0 between cells and between
   the two stacked grid rows). Once stacked on mobile/tablet the
   dropped borders + faint 6% white left cards looking open. Give
   every card a full 4-side border (bumped to 14% so it's
   visible) and a gap so each is a clean outlined box.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-aboutPhilo__grid {
    gap: 16px !important;
  }
  .nikki-aboutPhilo__grid > .nikki-aboutPhilo__card,
  .nikki-aboutPhilo__grid > .nikki-aboutPhilo__card + .nikki-aboutPhilo__card,
  .nikki-aboutPhilo__grid + .nikki-aboutPhilo__grid > .nikki-aboutPhilo__card {
    border: 1px solid rgba(255,255,255,0.14) !important;
  }
}
@media (max-width: 767px) {
  .nikki-aboutPhilo__grid + .nikki-aboutPhilo__grid { margin-top: 16px !important; }
}

/* ============================================================
   POLISH v6.19 — About philosophy: even card spacing on mobile.
   The section is a flex column with a 56px gap between ALL its
   children, so once the two 3-card grids stack the gap between
   card 03 and 04 was 56px (+16 from v6.18 = 72px) while cards
   within a grid sat at 16px. Tighten grid-to-grid to 16px and
   restore the 56px breathing room around the header/footer via
   explicit margins.
   ============================================================ */
@media (max-width: 767px) {
  .nikki-aboutPhilo { gap: 16px !important; }
  .nikki-aboutPhilo__top { margin-bottom: 40px !important; }
  .nikki-aboutPhilo__bottom { margin-top: 40px !important; }
  .nikki-aboutPhilo__grid + .nikki-aboutPhilo__grid { margin-top: 0 !important; }
}

/* ============================================================
   POLISH v6.20 — Footer emblem alignment. The miniLogo block
   (emblem + CMS) centers correctly, but the emblem icon (10px)
   sat flex-start inside its 29px row, so its center landed ~10px
   left of the CMS text / divider center. Center the icon in its
   row so the whole emblem stack lines up.
   ============================================================ */
.nikki-foot__miniRow {
  justify-content: center !important;
  width: 100% !important;
}
.nikki-foot__miniRow > * {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================================
   POLISH v6.21 — Mobile menu gap. The fixed header is only ~85px
   tall, but the dropdown opened at top:92px + margin-top:10px =
   102px, leaving a ~17px strip where the hero photo showed
   through between the header and the menu. Tuck the dropdown
   flush under the header (1px overlap, hidden by its border-top).
   ============================================================ */
@media (max-width: 1024px) {
  .elementor-element-fd5c935b nav.elementor-nav-menu--dropdown {
    top: 84px !important;
    margin-top: 0 !important;
    max-height: calc(100vh - 84px) !important;
  }
}

/* ============================================================
   POLISH v6.22 — Home stats centering across tablet too. v6.9
   centered the stats only at <=767px, so on tablet (768-1023px)
   the numbers + labels stayed left-aligned ("start"). Center the
   whole stat cell — number and label — for every breakpoint at
   tablet and below, regardless of 1-col or 2-col layout.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-stats__row > .e-con {
    align-items: center !important;
    text-align: center !important;
  }
  .nikki-stats__row > .e-con .elementor-widget,
  .nikki-stats__row > .e-con .elementor-widget-container {
    width: 100% !important;
    text-align: center !important;
  }
  .nikki-stats__row > .e-con .elementor-heading-title {
    text-align: center !important;
  }
}

/* ============================================================
   POLISH v6.23 — Success Stories stats centering. The
   nikki-succStats responsive rules only changed the column
   layout/borders; they never centered the cell content, so the
   numbers (100%, 500+, 10+, 62%) and labels stayed left-aligned
   on tablet and mobile. Center each stat cell (number + label)
   at tablet and below, matching the home stats.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-succStats__row > .nikki-succStats__cell {
    align-items: center !important;
    text-align: center !important;
  }
  .nikki-succStats__row > .nikki-succStats__cell .elementor-widget,
  .nikki-succStats__row > .nikki-succStats__cell .elementor-widget-container {
    width: 100% !important;
    text-align: center !important;
  }
  .nikki-succStats__row > .nikki-succStats__cell .elementor-heading-title {
    text-align: center !important;
  }
}

/* ============================================================
   POLISH v6.24 — Success testimonial card rhythm. The grid has
   two .nikki-succGrid__row containers (3 cards each) separated by
   the section's 48px flex gap, while cards INSIDE a row sit 24px
   apart. When the rows stack/wrap on tablet & mobile, that 48px
   shows up as one oversized gap in the middle of the column
   (24/24/48/24/24). Drop the section gap to 24px at <=1023 so
   every card is evenly spaced.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-succGrid { row-gap: 24px !important; }
  .nikki-succGrid__row { row-gap: 24px !important; }
}

/* ============================================================
   POLISH v6.25 — Footer emblem lines (mobile/tablet). On desktop
   the mini emblem is line | compass | line on a single centered
   row. On mobile the row collapsed to ~29px wide with
   flex-wrap:wrap, so the two divider lines wrapped ABOVE and
   BELOW the emblem instead of flanking it. Force the row to
   shrink-to-content, stay on one line, and center — matching the
   desktop layout shown in the design.
   ============================================================ */
@media (max-width: 1023px) {
  .nikki-foot__miniRow {
    flex-wrap: nowrap !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-content: center !important;
    align-items: center !important;
  }
  .nikki-foot__miniRow > * {
    margin-left: 0 !important;
    margin-right: 0 !important;
    flex: 0 0 auto !important;
  }
}

/* ============================================================
   POLISH v6.26 — Footer compass emblem. The icon was Font
   Awesome 'fa-circle-notch' (a loading-spinner notched ring), so
   it read as a broken circle rather than a compass. Swap it for a
   proper compass vector (ring + navigation needle) matching the
   approved design, in brand gold, and enlarge so the detail is
   legible. Applies at every breakpoint.
   ============================================================ */
.nikki-foot__miniRow .elementor-element-a72ffb5 .elementor-icon svg,
.nikki-foot__miniRow .elementor-element-a72ffb5 .elementor-icon i {
  display: none !important;
}
.nikki-foot__miniRow .elementor-element-a72ffb5 .elementor-icon {
  width: 20px !important;
  height: 20px !important;
  font-size: 20px !important;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9.4'%20fill='none'%20stroke='%23C4A47A'%20stroke-width='1.3'/%3E%3Cpath%20fill='%23C4A47A'%20d='M14.19%2014.19%206%2018l3.81-8.19L18%206z'/%3E%3C/svg%3E");
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

/* =====================================================================
   COLOR DRAFT v6.28 — "DEEP TEAL" TRIAL (replaces brand black #0A0A0A)
   ---------------------------------------------------------------------
   COLOR ONLY. No padding / margin / size / structure is touched here.
   FULLY REVERSIBLE: delete this entire block to restore the original
   black (#0A0A0A) exactly as before.
   New colour: #17120E (Deep Teal — dark teal-green).

   Coverage:
   1) Brand primary token  -> recolours the footer, every dark section,
      and the dark buttons/icons that reference it, on ALL pages at once.
      (It also feeds some near-black TEXT/BORDERS; #17120E is visually
      identical to #0A0A0A there, so type/legibility is unchanged.)
   2) Literal-#0A0A0A holdouts that don't use the token: the header bar,
      the default button surface, the contact-form buttons, the About
      button hover, and the mobile dropdown menu.
   ===================================================================== */

/* 1 — brand primary token (the bulk of the dark surfaces, every page) */
body.elementor-kit-5,
.elementor-kit-5 { --e-global-color-primary: #17120E !important; }

/* 2a — header / top nav bar (literal #0A0A0A; no gold here, safe) */
.elementor-element-122d1d19,
.elementor-element-122d1d19 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-color: #17120E !important;
}

/* 2b — default button surface (kit default). NON-important on purpose so
        gold / ghost buttons, which use higher-specificity rules, win. */
.elementor-kit-5 button,
.elementor-kit-5 input[type="button"],
.elementor-kit-5 input[type="submit"],
.elementor-kit-5 .elementor-button {
  background-color: #17120E;
}

/* 2c — contact-form buttons + About button hover (literal #0A0A0A) */
.elementor-element-2ce6c80 .e-form__buttons__wrapper__button-next,
.elementor-element-2ce6c80 .elementor-button[type="submit"],
.elementor-element-5132299 .elementor-button:hover,
.elementor-element-5132299 .elementor-button:focus {
  background-color: #17120E !important;
}

/* 2d — mobile dropdown menu panel (set to #0A0A0A in the v6.21 nav fix) */
.elementor-element-fd5c935b nav.elementor-nav-menu--dropdown {
  background-color: #17120E !important;
}

/* =========================================================================
   ENTRANCE ANIMATIONS  (v6.32 — added 2026-06-19)
   Self-contained, fully reversible. Paired with assets/nk-anim.js.
   Elements are hidden ONLY after the JS adds .nk-anim-on to <html>, so if
   JS is disabled / unsupported / reduced-motion, everything stays visible.
   Only opacity + transform animate => zero layout reflow (no padding/margin
   shift). To revert: delete this block + the nk-anim.js enqueue.
   ========================================================================= */
.nk-anim-on .nk-anim {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.21, 1),
              transform 0.7s cubic-bezier(0.22, 0.61, 0.21, 1);
}
.nk-anim-on .nk-anim.nk-in {
  opacity: 1;
  transform: none;
}
@media print {
  .nk-anim-on .nk-anim { opacity: 1 !important; transform: none !important; }
}

/* =========================================================================
   HIDE "THE CIRCLE / Mediators We Champion" on homepage (2026-06-19)
   Client request. Content stays intact in Elementor (source of truth);
   only hidden on the front end. Reversible: delete this block.
   ========================================================================= */
.elementor-element-c97d877.nikki-circle { display: none !important; }
