.wp-block-cover.hero,
.wp-block-cover.hero:not(.has-text-color),
.hero {
  min-height: clamp(440px, 38vw, 620px);
  align-items: center;
  isolation: isolate;
  color: var(--ink);
}
.wp-block-cover.hero .wp-block-cover__background {
  display: none;
}
.wp-block-cover.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.82) 0%, rgba(255, 255, 255, 0.45) 42%, rgba(255, 255, 255, 0) 72%);
  z-index: 0;
  pointer-events: none;
}
.wp-block-cover.hero .wp-block-cover__image-background {
  z-index: 0;
  /* Avoid CSS filters on the Cover photo — they force a new layer and soften detail. */
  filter: none;
  object-fit: cover;
  object-position: center 42%;
}
.wp-block-cover.hero .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  width: min(620px, 100%);
  text-align: center;
  margin-left: 0;
  color: var(--ink);
}
.hero h1,
.wp-block-cover.hero h1 {
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  line-height: 1.12;
  margin: 0;
  color: var(--ink);
}
.hero-script,
.wp-block-cover.hero .hero-script {
  color: #d40117;
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  margin: 6px 0 0;
}
.hero-subtitle,
.wp-block-cover.hero .hero-subtitle {
  margin: 10px 0 0;
  color: #1a1c18;
  font-weight: 500;
}
.hero-audience,
.wp-block-cover.hero .hero-audience {
  margin: 10px 0 0;
  font-size: 0.95rem;
  color: var(--green-dark);
  font-weight: 700;
}

.section-bg {
  background-color: #f4eee3;
}
.wp-block-cover.struggles,
.struggles {
  position: relative;
  container-type: inline-size;
  container-name: tym-struggles;
  min-height: 0;
  padding: 36px 0 28px;
  overflow-x: clip;
  isolation: isolate;
  /* youlovegodbg — cream wash + left botanical (woman is a separate image). */
  background-color: #f4eee3;
  background-image: var(--tym-img-bg-struggles);
  background-position: left center;
  background-size: cover;
  background-repeat: no-repeat;
}
.wp-block-cover.struggles .wp-block-cover__background {
  display: none;
}
.wp-block-cover.struggles .wp-block-cover__image-background {
  display: none;
}
.wp-block-cover.struggles .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  width: min(1200px, 100%);
  max-width: 1200px;
  margin: auto;
}
.struggles h2,
.services h2,
.approach h2 {
  font-size: clamp(2.1rem, 3.2vw, 3.4rem);
  line-height: 1;
  margin: 0;
  text-align: center;
  font-weight: 600;
}
.struggles-copy { padding: 28px 38px 22px; }
.struggles-copy > h2,
.struggles-copy > .script { text-align: left; }
.struggles-copy > .script { font-size: 3rem; color: var(--earth); }

.struggles-inner > .wp-block-group__inner-container,
.struggles-inner:not(:has(> .wp-block-group__inner-container)),
.wp-block-columns.struggles-inner {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  min-height: 0;
  max-width: 1200px;
  margin: auto;
  gap: 12px 28px;
  align-items: center;
}
.wp-block-columns.struggles-inner { flex-wrap: nowrap; }
.wp-block-columns.struggles-inner > .wp-block-column {
  flex: unset;
  min-width: 0;
}
.struggles-inner { display: block; max-width: none; }

.concern-grid > .wp-block-group__inner-container,
.concern-grid:not(:has(> .wp-block-group__inner-container)),
.wp-block-columns.concern-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  margin-top: 9px;
  gap: 0;
}
.wp-block-columns.concern-grid { flex-wrap: nowrap; }
.wp-block-columns.concern-grid > .wp-block-column { flex: unset; min-width: 0; }
.concern-grid { display: block; }
.concern-grid > .wp-block-group,
.concern-grid > .wp-block-group__inner-container > .wp-block-group,
.wp-block-columns.concern-grid > .wp-block-column {
  text-align: center;
  padding: 0 12px;
  border-right: 1px solid rgba(71, 78, 66, 0.22);
}
.concern-grid > .wp-block-group:last-child,
.concern-grid > .wp-block-group__inner-container > .wp-block-group:last-child,
.wp-block-columns.concern-grid > .wp-block-column:last-child { border: 0; }
.concern-grid img { width: 48px; height: 48px; object-fit: contain; margin: 0 auto 7px; }
.concern-grid h3 { font-weight: 500; font-size: 0.76rem; line-height: 1.3; margin: 0; }
.section-note { color: var(--green); font-size: 1rem; margin: 18px 0 0 35px; }

/* Woman oval + verse = one unit. Live tune start: imgMax 550, verse under image. */
.struggles-visual,
.wp-block-group.struggles-visual {
  position: relative;
  width: 100%;
  max-width: 550px;
  margin: 0 0 0 auto;
  padding: 0;
  background: transparent;
}
.struggles-visual > .wp-block-group__inner-container {
  position: relative;
  display: block;
}
.struggles-visual .struggles-woman,
.struggles-visual .wp-block-image.struggles-woman,
.struggles-visual .wp-block-image {
  margin: 0;
  width: 100%;
}
.struggles-visual .struggles-woman img,
.struggles-visual .wp-block-image img {
  display: block;
  width: 100%;
  height: auto;
}
/* Verse under the oval (tune: top -12, left -5). */
.struggles-visual .renewal-verse,
.struggles-visual .wp-block-group.renewal-verse {
  position: static;
  left: auto;
  top: auto;
  width: 100%;
  max-width: none;
  margin: -12px 0 0 -5px;
  padding: 0;
  text-align: center;
  z-index: 2;
  transform: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  pointer-events: auto;
}
.renewal-verse .renewal-verse-text,
.renewal-verse p.script.renewal-verse-text,
.renewal-verse p.renewal-verse-text {
  font-family: var(--font-script);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: normal;
  color: #b77e73;
  margin: 0;
  padding: 0;
  text-align: center;
  text-shadow: none;
  background: none;
  border: 0;
  transform: rotate(-5deg);
  transform-origin: center center;
}
.renewal-verse .renewal-verse-cite,
.renewal-verse p.renewal-verse-cite {
  display: block;
  margin: 10px 0 0;
  padding: 0;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: normal;
  color: #77776f;
  text-align: center;
  text-shadow: none;
  background: none;
  border: 0;
  transform: none;
}

.services { padding: 22px 7% 20px; background: #fff; }
.service-grid > .wp-block-group__inner-container,
.service-grid:not(:has(> .wp-block-group__inner-container)),
.wp-block-columns.service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  max-width: 1120px;
  /* H3: +20px below "Ways I Can Help" so cards + leaf discs drop together. */
  margin: 40px auto 12px;
}
.wp-block-columns.service-grid { flex-wrap: nowrap; }
.wp-block-columns.service-grid > .wp-block-column { flex: unset; min-width: 0; }
.service-grid { display: block; }
.services .service-card,
.wp-block-group.service-card {
  background: linear-gradient(135deg, #f5f2ec, #fbfaf7);
  border: 0;
  border-radius: 7px;
  padding: 48px 30px 22px;
  text-align: center;
  position: relative;
  min-height: 220px;
  height: auto;
}
.icon-disc {
  position: absolute;
  left: 50%;
  top: -21px;
  transform: translateX(-50%);
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: #e7e5db;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.icon-disc.blush { background: #f2e3df; }
.icon-disc img { width: 40px; height: 40px; object-fit: contain; margin: 0; }
.services .service-card h3 { font-size: 1.35rem; line-height: 1.15; margin: 0 0 10px; }
.services .service-card p { font-size: 0.74rem; line-height: 1.45; margin: 0 auto 12px; max-width: 255px; }
.service-card a,
.explore-link {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--green-dark);
  font-weight: 600;
}
.service-card a.rose { color: var(--red); }
.explore-link { display: block; text-align: center; margin: 8px 0 0; }

.about,
.wp-block-group.about {
  min-height: 320px;
  padding: 0 4%;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: var(--cream);
}
/* Reuses About page-hero photo (bg-approach). Photo on ::before; wash on ::after. */
.about::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--tym-img-bg-about);
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  -webkit-mask-image: none;
  mask-image: none;
  opacity: 1;
  z-index: 0;
  pointer-events: none;
}
.about::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.60));
  z-index: 0;
  pointer-events: none;
}
.about > .wp-block-group__inner-container,
.about:not(:has(> .wp-block-group__inner-container)),
.about .tym-about-grid.wp-block-columns {
  display: grid;
  grid-template-columns: 33% 34% 33%;
  align-items: center;
  min-height: 320px;
  position: relative;
  z-index: 1;
  gap: 0;
}
.about .tym-about-grid.wp-block-columns { flex-wrap: nowrap; }
.about .tym-about-grid > .wp-block-column { flex: unset; min-width: 0; }
.wp-block-group.about-photo {
  width: 200px;
  height: 280px;
  justify-self: center;
  align-self: center;
  overflow: hidden;
  border-radius: 50%;
  z-index: 2;
  background: transparent;
}
.wp-block-group.about-photo > .wp-block-image,
.wp-block-group.about-photo > figure {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  background: transparent;
}
.wp-block-group.about-photo img,
.about-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  max-width: none;
  border-radius: 0;
  aspect-ratio: auto;
}
.about-copy {
  padding: 25px 40px 25px 0;
  z-index: 2;
}
.about-copy h2.script {
  text-align: left;
  font-size: clamp(2.4rem, 4vw, 3.3rem);
  margin: 0;
}
.small-rule {
  height: 1px;
  width: 120px;
  background: var(--gold);
  margin: 8px 0 18px;
  overflow: hidden;
}
.about-copy p { font-size: 0.9rem; line-height: 1.55; }
.button.compact { padding: 10px 25px; margin-top: 5px; }
.hope-card {
  width: 73%;
  min-height: 270px;
  justify-self: start;
  background: #f9f5ed;
  box-shadow: 0 2px 20px rgba(75, 63, 52, 0.08);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 28px 22px;
  border-radius: 18px;
  z-index: 2;
}
.hope-card .quote-mark {
  font-size: 4.5rem;
  line-height: 0.55;
  color: #cfc2ad;
  margin: 0;
}
.hope-quote,
.hope-card .hope-quote {
  font-size: 1.45rem;
  line-height: 1.25;
  margin: 8px 0;
}
.gold-rule {
  width: 28px;
  height: 1px;
  background: var(--gold);
  margin-top: 10px;
  overflow: hidden;
}

.wp-block-cover.approach,
.wp-block-cover.approach.is-light,
.wp-block-cover.approach.is-dark,
.wp-block-cover.approach:not(.has-text-color),
.approach {
  padding: 16px 8% 28px;
  background-color: #e7eade;
  background-image: var(--tym-img-bg-approach);
  background-position: center center;
  /* Full-width art — cover crops/zooms when the section is taller than the photo. */
  background-size: 100% auto;
  background-repeat: no-repeat;
  isolation: isolate;
  border-top: 1px solid rgba(113, 124, 103, 0.14);
  border-bottom: 1px solid rgba(113, 124, 103, 0.12);
  text-align: center;
  color: var(--ink);
}
.wp-block-cover.approach::after { display: none; }
.wp-block-cover.approach .wp-block-cover__background,
.wp-block-cover.approach .wp-block-cover__image-background {
  display: none;
}
.wp-block-cover.approach .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  color: var(--ink);
}
.wp-block-cover.approach h2,
.wp-block-cover.approach h2.wp-block-heading,
.wp-block-cover.approach h3,
.wp-block-cover.approach p,
.approach h2,
.approach h3,
.approach p {
  color: var(--ink);
}
.steps > .wp-block-group__inner-container,
.steps:not(:has(> .wp-block-group__inner-container)),
.wp-block-columns.steps {
  display: grid;
  grid-template-columns: 1fr 55px 1fr 55px 1fr;
  align-items: center;
  max-width: 960px;
  margin: 18px auto 0;
  gap: 0;
  text-align: left;
}
.wp-block-columns.steps { flex-wrap: nowrap; }
.wp-block-columns.steps > .wp-block-column { flex: unset; min-width: 0; }
.steps { display: block; }
.wp-block-group.step {
  display: grid;
  grid-template-columns: 86px 1fr;
  grid-template-rows: 25px auto;
  column-gap: 17px;
  position: relative;
  text-align: left;
}
.wp-block-group.step > .step-number {
  grid-column: 1;
  grid-row: 1;
  justify-self: center;
  margin: 0;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(191, 152, 91, 0.55);
  background: rgba(255, 255, 255, 0.72);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #7b765f;
  font-size: 1rem;
  z-index: 2;
}
.wp-block-group.step > .wp-block-group.step-icon {
  grid-column: 1;
  grid-row: 2;
  width: 84px;
  height: 84px;
  margin: 0;
  border: 1px solid rgba(117, 129, 106, 0.28);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.47);
  display: grid;
  place-items: center;
}
.wp-block-group.step > .wp-block-group.step-icon .wp-block-image,
.wp-block-group.step > .wp-block-group.step-icon figure { margin: 0; }
.wp-block-group.step > .wp-block-group.step-icon img {
  width: 58px;
  height: 58px;
  object-fit: contain;
}
.wp-block-group.step > .wp-block-group:not(.step-icon) {
  grid-column: 2;
  grid-row: 2;
  align-self: center;
  margin: 0;
}
.wp-block-group.step h3 { font-size: 1.18rem; margin: 0; }
.wp-block-group.step p { font-size: 0.78rem; line-height: 1.4; margin: 3px 0; }
.step-arrow {
  color: var(--gold);
  opacity: 0.75;
  text-align: center;
  margin: 0;
  font-size: 1.4rem;
}

.stories,
.wp-block-group.stories {
  position: relative;
  min-height: 255px;
  padding: 36px 8% 42px;
  overflow: hidden;
  isolation: isolate;
  background: #f8f5ef;
  text-align: center;
}
.stories::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--tym-img-bg-stories) right center / cover no-repeat;
  opacity: 1;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 12%, #000 48%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, transparent 12%, #000 48%, #000 100%);
  z-index: -1;
  pointer-events: none;
}
.stories::after {
  display: none;
}
.stories > .wp-block-group__inner-container {
  position: relative;
  z-index: 1;
}
.tym-testimonial-track { max-width: 760px; margin: 16px auto 0; }
.tym-testimonial-slide {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(180, 174, 158, 0.18);
  border-radius: 12px;
  padding: 22px 28px;
  text-align: left;
  margin: 0 0 16px;
  /* Long reviews must remain fully readable — never fixed-height clip. */
  max-height: none;
  overflow: visible;
}
.tym-testimonial-slide .wp-block-quote {
  margin: 0;
}
.tym-testimonial-slide .wp-block-quote p {
  margin: 0 0 0.85em;
}
.tym-testimonial-slide .wp-block-quote p:last-child {
  margin-bottom: 0;
}
.tym-testimonial-name { font-weight: 600; margin: 8px 0 0; }
.tym-testimonial-controls {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 8px;
}
.tym-testimonial-controls button {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: var(--green-dark);
  color: #fff;
  cursor: pointer;
}
@media (prefers-reduced-motion: no-preference) {
  .tym-testimonial-slider.is-enhanced .tym-testimonial-slide { display: none; }
  .tym-testimonial-slider.is-enhanced .tym-testimonial-slide.is-active { display: block; }
}
.wp-block-cover.final-cta,
.wp-block-cover.final-cta.is-light,
.wp-block-cover.content-cta,
.wp-block-cover.content-cta.is-light,
.final-cta {
  min-height: clamp(360px, 34vw, 440px);
  padding: 56px 8%;
  text-align: center;
  color: #fff;
  isolation: isolate;
  background-color: #2b372b;
  background-image: var(--tym-img-bg-mountain);
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
}
.wp-block-cover.final-cta .wp-block-cover__background,
.wp-block-cover.content-cta .wp-block-cover__background {
  display: none;
}
.wp-block-cover.final-cta .wp-block-cover__image-background,
.wp-block-cover.content-cta .wp-block-cover__image-background {
  /* Prefer CSS background sizing above; hide Cover img to avoid object-fit:cover zoom. */
  display: none;
}
.wp-block-cover.final-cta::after,
.wp-block-cover.content-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  /* Lighter veil so the photo reads; keep enough contrast for white type. */
  background:
    radial-gradient(ellipse 65% 50% at 50% 48%, rgba(28, 36, 28, 0.38) 0%, rgba(28, 36, 28, 0.12) 55%, transparent 78%),
    linear-gradient(180deg, rgba(43, 55, 43, 0.08), rgba(34, 47, 36, 0.42));
  z-index: 0;
  pointer-events: none;
}
.wp-block-cover.final-cta .wp-block-cover__inner-container,
.wp-block-cover.content-cta .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  color: #fff;
}
.wp-block-cover.final-cta h2,
.wp-block-cover.final-cta h2.wp-block-heading,
.wp-block-cover.final-cta p,
.wp-block-cover.content-cta h2,
.wp-block-cover.content-cta h2.wp-block-heading,
.wp-block-cover.content-cta p,
.final-cta h2,
.content-cta h2,
.final-cta p,
.content-cta p {
  color: #fff;
}
.wp-block-cover.final-cta h2,
.wp-block-cover.final-cta h2.wp-block-heading,
.final-cta h2 {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}
