/* =====================================================
   Workshop sales page — page-templates/workshop.php
   Loaded only on that template (inc/workshop-page.php), after pages.css.
   Every rule is scoped under .ppc-workshop / body.ppc-workshop-page.
===================================================== */

/* #region TOKENS & BASE */

body.ppc-workshop-page {
  background: #f7f4ef;
}

.ppc-workshop {
  --ws-navy: #1f2f46;
  --ws-navy-dark: #172332;
  --ws-button: #24384e;
  --ws-button-hover: #2d4560;
  --ws-blue: #35679a;
  --ws-cream: #f7f4ef;
  --ws-cream-light: #fbf9f5;
  --ws-cream-warm: #eee8df;
  --ws-gold: #c5a07d;
  --ws-gold-deep: #7a5c3f;
  --ws-ink: #1f2a37;
  --ws-ink-soft: #4b5563;
  --ws-warm-text: #655d54;
  --ws-line: rgba(31, 42, 55, 0.12);
  /* The same hairline weight, for sections that sit on navy. */
  --ws-line-on-dark: rgba(247, 244, 239, 0.18);
  --ws-on-dark: #f7f4ef;
  --ws-on-dark-soft: rgba(247, 244, 239, 0.84);
  --ws-serif: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --ws-sans: "Quicksand", system-ui, sans-serif;
  --ws-radius: 20px;
  --ws-radius-sm: 14px;
  --ws-shadow: 0 4px 18px rgba(31, 42, 55, 0.06), 0 14px 36px rgba(31, 42, 55, 0.05);
  --ws-section-pad: 7rem;
  --ws-gutter: 6vw;

  color: var(--ws-ink);
  font-family: var(--ws-sans);
  overflow-x: clip;
}

.ppc-workshop *,
.ppc-workshop *::before,
.ppc-workshop *::after {
  box-sizing: border-box;
}

.ppc-workshop p {
  font-size: 1.125rem;
  line-height: 1.75;
  margin: 0 0 1.25rem;
}

.ppc-workshop p:last-child {
  margin-bottom: 0;
}

.ppc-workshop :is(h1, h2, h3) {
  font-family: var(--ws-serif) !important;
  font-weight: 400;
  margin: 0;
  text-wrap: balance;
}

.ppc-workshop img {
  display: block;
  height: auto;
  max-width: 100%;
}

/* ShortPixel (production) wraps images in <picture>; remove the wrapper box so
   images size against their frames exactly as they do without it. */
.ppc-workshop picture {
  display: contents;
}

.ppc-workshop figure,
.ppc-workshop blockquote {
  margin: 0;
}

.ppc-workshop ul,
.ppc-workshop ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ppc-workshop a:focus-visible,
.ppc-workshop summary:focus-visible {
  outline: 3px solid var(--ws-blue);
  outline-offset: 4px;
}

.ppc-workshop__container {
  margin-inline: auto;
  max-width: 76rem;
  padding-inline: var(--ws-gutter);
  width: 100%;
}

.ppc-workshop__container--narrow {
  max-width: 50rem;
}

.ppc-workshop__section {
  padding-block: var(--ws-section-pad);
}

.ppc-workshop__eyebrow {
  color: var(--ws-warm-text);
  font-family: var(--ws-sans);
  font-size: 0.875rem !important;
  font-weight: 600;
  letter-spacing: 0.22em;
  line-height: 1.5 !important;
  margin: 0 0 1.25rem;
  text-transform: uppercase;
}

.ppc-workshop__heading {
  color: var(--ws-navy) !important;
  font-size: 2.75rem;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.ppc-workshop__heading--center {
  text-align: center;
}

.ppc-workshop__section-intro {
  color: var(--ws-ink-soft);
  margin-inline: auto !important;
  max-width: 40rem;
  text-align: center;
}

/* Olive divider — same artwork and the same sizing as the site's content
   dividers (hr.ppc-book-rule): 25vw capped at 360px, 35vw from 577 to 768px,
   45vw on phones. The height comes from the artwork's own proportions. */
.ppc-workshop__divider {
  aspect-ratio: 1470 / 112;
  background-image: var(--ppc-olive-divider);
  background-position: left center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  display: block;
  margin: 1.75rem 0;
  max-width: 22.5rem;
  width: 25vw;
}

/* Under a centred heading, like the divider under "My Offerings".
   Spacing follows the homepage Book section: the gap above comes from the
   heading's own bottom margin (1em, so it tracks the heading size) and the
   divider carries only a bottom margin, the way hr.ppc-book-rule does. */
.ppc-workshop__divider--center {
  background-position: center;
  margin-block: 0 1.75rem;
  margin-inline: auto;
}

/* Every divider on the page sits with equal space above and below. The gap
   above a divider is the previous element's bottom margin, the gap below is
   the divider's own, so the two must match. 1.75rem here, 1.5rem at 768 and
   below. (Beats the base .ppc-workshop :is(h1,h2,h3) { margin: 0 }.) */
.ppc-workshop .ppc-workshop__heading--center {
  margin-bottom: 1.75rem;
}

/* The hero rule is styled site-wide from pages.css with !important; the
   subtitle above it has a 1.75rem bottom margin, so match that. Scoped to the
   workshop — the Offerings, About and Contact heroes are untouched. */
.ppc-workshop .ppc-workshop__hero .wp-block-separator.ppc-book-rule {
  margin-bottom: 1.75rem !important;
}

/* #endregion TOKENS & BASE */

/* #region BUTTONS */

.ppc-workshop .ppc-workshop__button {
  align-items: center;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0)),
    var(--ws-button);
  border: 0;
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(24, 39, 56, 0.18);
  color: #f8f4ef !important;
  display: inline-flex;
  font-family: var(--ws-sans);
  font-size: 1rem;
  font-weight: 600;
  justify-content: center;
  letter-spacing: 0.16em;
  line-height: 1.35;
  max-width: 100%;
  min-height: 3.5rem;
  padding: 1rem 2.25rem;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
  transition:
    transform 260ms ease,
    box-shadow 260ms ease,
    background 260ms ease;
}

.ppc-workshop .ppc-workshop__button:hover {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0)),
    var(--ws-button-hover);
  box-shadow: 0 14px 30px rgba(24, 39, 56, 0.24);
  color: #f8f4ef !important;
  transform: translateY(-1px);
}

.ppc-workshop .ppc-workshop__button--light {
  background: var(--ws-cream);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
  color: var(--ws-navy-dark) !important;
}

.ppc-workshop .ppc-workshop__button--light:hover {
  background: #ffffff;
  color: var(--ws-navy-dark) !important;
}

.ppc-workshop .ppc-workshop__button--light:focus-visible {
  outline-color: var(--ws-gold);
}

.ppc-workshop__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2.25rem;
}

.ppc-workshop__actions--center {
  justify-content: center;
  margin-top: 3rem;
}

/* #endregion BUTTONS */

/* #region HERO */

/* Layout, image arc, heading, eyebrow, divider and button come from the site's
   page-section-right pattern (pages.css). Only workshop additions live here. */

/* Navy band — same gradient as the homepage section under the hero (.ppc-section.banner). */
.ppc-workshop__hero .page-section-right__inner.wp-block-columns {
  background:
    radial-gradient(circle at 16% 50%, rgba(108, 136, 160, 0.2), transparent 44%),
    linear-gradient(93deg, #151c29 0%, #1c2736 36%, #263546 62%, #32475e 100%);
}

.ppc-workshop__hero .page-section-right__content.wp-block-column,
.ppc-workshop__hero .page-section-right__image.wp-block-column {
  background: transparent;
}

/* The pattern's cream fade toward the image isn't wanted on navy. */
.ppc-workshop__hero .page-section-right__content.wp-block-column::before {
  content: none;
}

.ppc-workshop__hero .page-section-right__inner-content > .page-section-eyebrow {
  color: var(--color-light-warm);
}

.ppc-workshop__hero .page-section-right__inner-content > .page-section-heading {
  color: rgba(247, 244, 239, 0.94) !important;
}

.ppc-workshop__hero .page-section-right__inner-content > p:not(.page-section-eyebrow) {
  font-size: 1.125rem;
}

.ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__subtitle {
  color: rgba(215, 207, 195, 0.88);
  font-family: var(--ws-serif) !important;
  font-size: 1.375rem !important;
  font-style: italic;
  letter-spacing: 0;
  line-height: 1.4;
  margin: 0 0 1.75rem;
  max-width: 32rem;
}

.ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__supporting {
  color: rgba(247, 244, 239, 0.92);
  font-weight: 500;
  margin-bottom: 0.5rem;
  text-wrap: balance;
}

.ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__meta {
  align-items: center;
  color: var(--color-light-warm);
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  margin-bottom: 0;
}

.ppc-workshop__price {
  color: var(--ws-on-dark);
  font-family: var(--ws-serif);
  font-size: 1.75rem;
  line-height: 1;
}

.ppc-workshop__meta-sep {
  background: var(--ws-gold);
  border-radius: 50%;
  height: 0.3rem;
  width: 0.3rem;
}

/* Both sessions, listed in the hero copy (replaces the floating schedule card). */
.ppc-workshop__hero .page-section-right__inner-content > .ppc-workshop__sessions {
  margin: 0.75rem 0 1rem;
}

.ppc-workshop__session {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: 1.125rem;
  gap: 0.1rem 0.7rem;
  line-height: 1.6;
}

.ppc-workshop__session + .ppc-workshop__session {
  margin-top: 0.2rem;
}

.ppc-workshop__session-date {
  color: rgba(247, 244, 239, 0.92);
  font-weight: 500;
}

.ppc-workshop__session-time {
  color: var(--color-light-warm);
}

/* Cream pill on navy — same treatment as the homepage "Meet Jenny" section (#home-about). */
.ppc-workshop__hero .wp-block-button.primary-button .wp-block-button__link {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.52), rgba(247, 244, 239, 0.94) 48%, rgba(235, 228, 218, 0.98)),
    var(--ppc-cream-soft);
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    inset 0 -1px 0 rgba(138, 129, 120, 0.06),
    0 6px 18px rgba(8, 14, 24, 0.16),
    0 2px 6px rgba(8, 14, 24, 0.08);
  color: #1f2a37 !important;
}

.ppc-workshop__hero .wp-block-button.primary-button .wp-block-button__link:hover,
.ppc-workshop__hero .wp-block-button.primary-button .wp-block-button__link:focus-visible {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(252, 249, 245, 0.98) 45%, rgba(242, 237, 230, 1)),
    #f7f4ef;
  border-color: rgba(255, 255, 255, 0.34);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.82),
    inset 0 -1px 0 rgba(138, 129, 120, 0.05),
    0 10px 26px rgba(8, 14, 24, 0.2),
    0 3px 8px rgba(8, 14, 24, 0.1);
  color: #1a2430 !important;
  transform: translateY(-2px);
}

.ppc-workshop__hero .wp-block-button.primary-button .wp-block-button__link:focus-visible {
  outline: 2px solid rgba(242, 237, 230, 0.75);
  outline-offset: 4px;
}

/* #endregion HERO */

/* #region AFTER THE WORKSHOP */

/* Pages with a last session date carry both versions of the registration parts.
   .ppc-workshop--ended is added by the template, or by ppc-workshop-status.js on
   cached copies. This only hides, so each element keeps its own display value. */
.ppc-workshop:not(.ppc-workshop--ended) .ppc-workshop__ended-only,
.ppc-workshop--ended .ppc-workshop__open-only {
  display: none !important;
}

/* Sits where the session list was, in the session-time colour. */
.ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__ended-message {
  color: var(--color-light-warm);
  margin: 0.75rem 0 0;
  max-width: 32rem;
  text-wrap: balance;
}

/* #endregion AFTER THE WORKSHOP */

/* #region OPENING */

/* Two left-aligned columns: lead, paragraphs, olive divider and italic turn on
   the left; statement, olive divider and closing paragraphs on the right. The
   turn matches the statement's size at every width. They stack
   at 999px and below, with a divider between. */
/* The page alternates between exactly two creams, --ws-cream and
   --ws-cream-warm (plus the navy bands). No third tone. */
.ppc-workshop__intro {
  background: var(--ws-cream-warm);
  padding-block: 5rem;
}

.ppc-workshop__opening {
  display: flex;
  gap: 4.5rem;
  max-width: 72rem;
}

.ppc-workshop__opening-col {
  flex: 1 1 0;
  min-width: 0;
}

.ppc-workshop__opening-col:only-child {
  flex: 0 1 44rem;
}

.ppc-workshop__opening .ppc-workshop__section-intro {
  margin-inline: 0 !important;
  max-width: none;
  text-align: left;
}

.ppc-workshop__intro .ppc-workshop__lead {
  color: var(--ws-navy);
  font-family: var(--ws-serif);
  font-size: 1.625rem;
  line-height: 1.4;
  margin: 0 0 1.25rem;
}

.ppc-workshop__intro .ppc-workshop__turn {
  color: var(--ws-navy);
  font-family: var(--ws-serif);
  font-size: 2.25rem;
  font-style: italic;
  letter-spacing: -0.015em;
  line-height: 1.25;
  margin: 0;
  text-wrap: balance;
}

.ppc-workshop__quote-text p {
  color: var(--ws-navy);
  font-family: var(--ws-serif);
  font-size: 2.25rem;
  font-style: italic;
  letter-spacing: -0.015em;
  line-height: 1.25;
  margin: 0 !important;
  text-wrap: balance;
}

/* #endregion OPENING */

/* #region AGENDA */

.ppc-workshop__agenda {
  background: var(--ws-cream);
}

.ppc-workshop__days {
  align-items: stretch;
  display: flex;
  gap: 2rem;
}

.ppc-workshop__day {
  border-radius: var(--ws-radius);
  flex: 1 1 0;
  min-width: 0;
  padding: 3.25rem 3rem;
}

.ppc-workshop__day--1 {
  background: var(--ws-cream-warm);
  border: 1px solid rgba(31, 42, 55, 0.06);
}

.ppc-workshop__day--2 {
  background:
    radial-gradient(ellipse 80% 60% at 100% 0%, rgba(53, 103, 154, 0.28), transparent 70%),
    linear-gradient(165deg, var(--ws-navy) 0%, var(--ws-navy-dark) 100%);
  box-shadow: 0 24px 50px rgba(23, 35, 50, 0.18);
  color: var(--ws-on-dark-soft);
}

.ppc-workshop__day-label {
  border: 1px solid rgba(122, 92, 63, 0.35);
  border-radius: 999px;
  color: var(--ws-gold-deep);
  display: inline-block;
  font-size: 0.875rem !important;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1 !important;
  margin: 0 0 1.5rem !important;
  padding: 0.6rem 1rem;
  text-transform: uppercase;
}

.ppc-workshop__day--2 .ppc-workshop__day-label {
  border-color: rgba(197, 160, 125, 0.5);
  color: var(--ws-gold);
}

.ppc-workshop__day-title {
  color: var(--ws-navy) !important;
  font-size: 2.25rem;
  letter-spacing: -0.015em;
  line-height: 1.15;
  margin-bottom: 1.5rem !important;
}

.ppc-workshop__day--2 .ppc-workshop__day-title {
  color: var(--ws-on-dark) !important;
}

.ppc-workshop__day p {
  color: inherit;
}

.ppc-workshop__day > .ppc-workshop__list {
  margin-block: 1.75rem 2rem;
}

/* One list style for every list on the page, marked with the short gold dash
   used above each outcome card. */
.ppc-workshop__list li {
  font-size: 1.125rem;
  line-height: 1.6;
  padding: 0.55rem 0 0.55rem 2.25rem;
  position: relative;
}

.ppc-workshop__list li::before {
  background: var(--ws-gold);
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  top: 1.35rem;
  width: 0.85rem;
}

.ppc-workshop__day--2 .ppc-workshop__list li {
  color: var(--ws-on-dark);
}

/* #endregion AGENDA */

/* #region FIT & OUTCOMES */

/* Navy band, the same recipe as the Goal section. */
.ppc-workshop__fit {
  background:
    radial-gradient(ellipse 70% 80% at 50% 0%, rgba(53, 103, 154, 0.22), transparent 70%),
    var(--ws-navy);
  color: var(--ws-on-dark-soft);
}

/* .ppc-workshop__heading forces navy with !important, so this needs to
   outrank it rather than merely follow it. */
.ppc-workshop .ppc-workshop__fit .ppc-workshop__heading {
  color: var(--ws-on-dark) !important;
}

.ppc-workshop__fit-inner {
  align-items: flex-start;
  display: flex;
  gap: 5vw;
}

/* The heading and its divider share the left column, so the flex sizing lives
   on the wrapper — the row must stay two columns. */
.ppc-workshop__fit-heading {
  flex: 0 0 34%;
  min-width: 0;
}

/* 25vw reaches 360px while this column is 355px, so cap it to the column.
   No bottom margin: the section's flex gap spaces it once it stacks. */
.ppc-workshop__fit-heading .ppc-workshop__divider {
  margin-bottom: 0;
  max-width: 100%;
}

.ppc-workshop__fit-list {
  flex: 1 1 auto;
  min-width: 0;
}

.ppc-workshop__fit-list li {
  border-bottom: 1px solid var(--ws-line-on-dark);
  color: var(--ws-on-dark);
  padding-block: 1rem;
}

.ppc-workshop__fit-list li:first-child {
  border-top: 1px solid var(--ws-line-on-dark);
}

.ppc-workshop__fit-list li::before {
  top: 1.85rem;
}

.ppc-workshop__outcomes {
  background: var(--ws-cream);
}

/* The divider above supplies the space; the intro adds none of its own. */
.ppc-workshop__outcomes .ppc-workshop__section-intro {
  margin-block: 0 3rem !important;
}

.ppc-workshop__outcome-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

/* The other cream, like the Day One card and the detail cards. #faf8f4 was a
   third tone. */
.ppc-workshop__outcome {
  background: var(--ws-cream-warm);
  border: 1px solid rgba(31, 42, 55, 0.06);
  border-radius: var(--ws-radius-sm);
  box-shadow: var(--ws-shadow);
  color: var(--ws-ink);
  flex: 1 1 calc(33.333% - 1rem);
  font-size: 1.125rem;
  line-height: 1.6;
  min-width: 15rem;
  padding: 2.25rem 2rem 2rem;
}

.ppc-workshop__outcome::before {
  background: var(--ws-gold);
  content: "";
  display: block;
  height: 2px;
  margin-bottom: 1.25rem;
  width: 2.5rem;
}

/* #endregion FIT & OUTCOMES */

/* #region GOAL */

.ppc-workshop__goal {
  background: var(--ws-cream-warm);
  color: var(--ws-ink-soft);
  text-align: center;
}

/* A real section header now — it carries .ppc-workshop__heading--center, so it
   takes the standard navy heading colour and the shared divider rhythm. */

/* Serif italic, not sans: the self-hosted Quicksand has no italic face, so
   font-style: italic on it would be a synthesised slant. This matches the
   page's other italics (hero subtitle, the opening turn line). */
.ppc-workshop__goal-not {
  color: var(--ws-ink-soft);
  font-family: var(--ws-serif);
  font-size: 1.375rem !important;
  font-style: italic;
  line-height: 1.5;
  margin: 0 auto 2.5rem !important;
  max-width: 38rem;
}

/* Closer in size to the paragraph above it (was 20px vs 44px, now 22 vs 36).
   The hairline that used to sit between the two paragraphs is gone — the
   divider under the heading is the section's separator now. */
.ppc-workshop__goal-statement {
  color: var(--ws-navy);
  font-family: var(--ws-serif);
  font-size: 2.25rem !important;
  letter-spacing: -0.015em;
  line-height: 1.3 !important;
  margin: 0 auto !important;
  max-width: 46rem;
  text-wrap: balance;
}

/* #endregion GOAL */

/* #region FACILITATOR & TESTIMONIAL */

.ppc-workshop__facilitator {
  background: var(--ws-cream);
}

.ppc-workshop__facilitator-inner {
  align-items: center;
  display: flex;
  gap: 6vw;
}

.ppc-workshop__facilitator-media {
  flex: 0 0 38%;
  min-width: 0;
  padding: 0 1.5rem 1.5rem 0;
  position: relative;
}

.ppc-workshop__facilitator-media::before {
  background: var(--ws-cream-warm);
  border-radius: var(--ws-radius);
  bottom: 0;
  content: "";
  left: 1.5rem;
  position: absolute;
  right: 0;
  top: 1.5rem;
}

.ppc-workshop__headshot {
  border-radius: var(--ws-radius);
  box-shadow: 0 24px 48px rgba(31, 42, 55, 0.12);
  position: relative;
  width: 100%;
}

.ppc-workshop__facilitator-copy {
  flex: 1 1 auto;
  min-width: 0;
}

.ppc-workshop__facilitator-tagline {
  color: #3a4757;
  font-family: var(--ws-serif);
  font-size: 1.5rem !important;
  font-style: italic;
  line-height: 1.4 !important;
  margin: 1rem 0 0 !important;
}

.ppc-workshop__credentials {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 2rem;
  margin-block: 2.25rem;
}

.ppc-workshop__credential {
  border-top: 1px solid var(--ws-line);
  display: flex;
  flex: 1 1 calc(50% - 1rem);
  flex-direction: column;
  min-width: 12rem;
  padding-top: 0.9rem;
}

.ppc-workshop__credential-title {
  color: var(--ws-navy);
  font-family: var(--ws-serif);
  font-size: 1.25rem;
  line-height: 1.3;
}

.ppc-workshop__credential-text {
  color: var(--ws-ink-soft);
  font-size: 1rem;
  line-height: 1.5;
  margin-top: 0.2rem;
}

.ppc-workshop .ppc-workshop__text-link {
  border-bottom: 1px solid var(--ws-gold);
  color: var(--ws-blue) !important;
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  padding-block: 0.5rem 0.25rem;
  text-decoration: none !important;
  text-transform: uppercase;
}

.ppc-workshop .ppc-workshop__text-link:hover {
  border-bottom-color: var(--ws-blue);
  color: #2b567f !important;
}

.ppc-workshop__testimonial {
  background: var(--ws-cream-warm);
}

.ppc-workshop__testimonial-card {
  background:
    linear-gradient(152deg, rgba(255, 255, 255, 0.6) 0%, rgba(247, 244, 239, 0.5) 100%);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 24px;
  box-shadow: var(--ws-shadow);
  padding: 4rem 4.5rem;
  text-align: center;
}

.ppc-workshop .ppc-workshop__testimonial-quote,
.ppc-workshop .ppc-workshop__quote-text {
  background: none;
  border: 0;
  margin: 0;
  padding: 0;
}

.ppc-workshop .ppc-workshop__testimonial-quote::before,
.ppc-workshop .ppc-workshop__testimonial-quote::after,
.ppc-workshop .ppc-workshop__quote-text::before,
.ppc-workshop .ppc-workshop__quote-text::after {
  content: none;
}

.ppc-workshop__testimonial-quote p {
  color: var(--ws-navy);
  font-family: var(--ws-serif);
  font-size: 1.5rem !important;
  line-height: 1.55 !important;
}

.ppc-workshop__testimonial-cite {
  color: var(--ws-warm-text);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1.5;
  margin-top: 2rem;
  text-transform: uppercase;
}

.ppc-workshop__testimonial-cite::before {
  background: var(--ws-gold);
  content: "";
  display: block;
  height: 1px;
  margin: 0 auto 1.25rem;
  width: 3rem;
}

/* #endregion FACILITATOR & TESTIMONIAL */

/* #region DETAILS & FAQ */

/* The warm cream, so it doesn't merge with the agenda band above it. */
.ppc-workshop__details {
  background: var(--ws-cream-warm);
}

.ppc-workshop__detail-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-block: 3rem 2.5rem;
}

/* The divider under the heading sets the space above the cards; its 3rem top
   margin would otherwise collapse over the divider's and leave the divider
   with 28px above and 48px below. */
.ppc-workshop__details .ppc-workshop__detail-cards {
  margin-top: 0;
}

/* Painted in the other cream, the way the Day One card is --ws-cream-warm on
   the --ws-cream agenda band. Keeps the page to two tones. */
.ppc-workshop__detail-card {
  background: var(--ws-cream);
  border: 1px solid rgba(31, 42, 55, 0.06);
  border-radius: var(--ws-radius-sm);
  box-shadow: var(--ws-shadow);
  flex: 1 1 0;
  min-width: 15rem;
  padding: 2.25rem 2rem;
}

.ppc-workshop__detail-card p {
  margin-bottom: 0.5rem;
}

.ppc-workshop .ppc-workshop__detail-label {
  border-bottom: 1px solid var(--ws-line);
  color: var(--ws-gold-deep) !important;
  font-family: var(--ws-sans) !important;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  line-height: 1.5;
  margin-bottom: 1.25rem !important;
  padding-bottom: 0.85rem;
  text-transform: uppercase;
}

.ppc-workshop__detail-price {
  color: var(--ws-navy);
  font-family: var(--ws-serif);
  font-size: 2.5rem !important;
  line-height: 1.1 !important;
}

.ppc-workshop__faq {
  background: var(--ws-cream-warm);
}

.ppc-workshop__faq-list {
  border-top: 1px solid rgba(31, 42, 55, 0.16);
  margin-top: 3rem;
}

.ppc-workshop__faq-item {
  border-bottom: 1px solid rgba(31, 42, 55, 0.16);
}

.ppc-workshop__faq-question {
  color: var(--ws-navy);
  cursor: pointer;
  font-family: var(--ws-serif);
  font-size: 1.375rem;
  line-height: 1.4;
  list-style: none;
  padding: 1.5rem 3rem 1.5rem 0;
  position: relative;
}

.ppc-workshop__faq-question::-webkit-details-marker {
  display: none;
}

.ppc-workshop__faq-question::before,
.ppc-workshop__faq-question::after {
  background: var(--ws-blue);
  content: "";
  height: 2px;
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transition: transform 260ms ease;
  width: 1rem;
}

.ppc-workshop__faq-question::after {
  transform: rotate(90deg);
}

.ppc-workshop__faq-item[open] .ppc-workshop__faq-question::after {
  transform: rotate(0deg);
}

.ppc-workshop__faq-question:hover {
  color: var(--ws-blue);
}

.ppc-workshop__faq-answer {
  padding: 0 3rem 1.75rem 0;
}

/* #endregion DETAILS & FAQ */

/* #region FINAL CTA */

.ppc-workshop__final {
  background:
    radial-gradient(ellipse 70% 90% at 50% 100%, rgba(53, 103, 154, 0.2), transparent 70%),
    linear-gradient(180deg, var(--ws-navy) 0%, var(--ws-navy-dark) 100%);
  color: var(--ws-on-dark-soft);
  padding-block: 8rem;
  text-align: center;
}

.ppc-workshop__final-rule {
  background: var(--ws-gold);
  display: block;
  height: 1px;
  margin: 0 auto 2.5rem;
  width: 4rem;
}

.ppc-workshop__final-heading {
  color: var(--ws-on-dark) !important;
  font-size: 3rem;
  letter-spacing: -0.02em;
  line-height: 1.18;
}

.ppc-workshop__final-text {
  color: var(--ws-on-dark-soft);
  font-family: var(--ws-serif);
  font-size: 1.625rem !important;
  font-style: italic;
  line-height: 1.45 !important;
  margin: 1.5rem auto 0 !important;
  max-width: 40rem;
}

.ppc-workshop__final-meta {
  color: var(--ws-gold);
  font-size: 1rem !important;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin: 2.5rem 0 0 !important;
}

.ppc-workshop__final .ppc-workshop__actions {
  margin-top: 1.5rem;
}

/* #endregion FINAL CTA */

/* #region RESPONSIVE */

@media (max-width: 1199px) {
  .ppc-workshop__hero .page-section-right__content .page-section-right__inner-content {
    width: 100% !important;
  }

  .ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__subtitle {
    font-size: 1.3125rem !important;
  }

  /* Price and duration stack once the copy column narrows (no orphaned dot). */
  .ppc-workshop__meta .ppc-workshop__meta-sep {
    display: none;
  }

  .ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__meta > span:last-child {
    flex-basis: 100%;
  }

  .ppc-workshop__day {
    padding: 2.75rem 2.25rem;
  }
}

@media (max-width: 999px) {
  .ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__subtitle {
    font-size: 1.125rem !important;
  }

  .ppc-workshop {
    --ws-section-pad: 5rem;
  }

  .ppc-workshop__heading {
    font-size: 2.375rem;
  }

  .ppc-workshop__quote-text p,
  .ppc-workshop__intro .ppc-workshop__turn {
    font-size: 2.25rem !important;
  }

  /* Kept in step with the paragraph above it. */
  .ppc-workshop__goal-not {
    font-size: 1.3125rem !important;
  }

  .ppc-workshop__goal-statement {
    font-size: 2rem !important;
  }

  .ppc-workshop__intro {
    padding-block: 4rem;
  }

  .ppc-workshop__opening {
    flex-direction: column;
    gap: 2rem;
    max-width: 48rem;
  }

  .ppc-workshop__opening-col,
  .ppc-workshop__opening-col:only-child {
    flex: 0 0 auto;
  }

  .ppc-workshop__days,
  .ppc-workshop__fit-inner,
  .ppc-workshop__facilitator-inner {
    flex-direction: column;
  }

  .ppc-workshop__fit-inner {
    gap: 2.5rem;
  }

  .ppc-workshop__fit-heading {
    flex: 0 0 auto;
  }

  .ppc-workshop__facilitator-inner {
    align-items: stretch;
    gap: 3.5rem;
  }

  .ppc-workshop__facilitator-media {
    align-self: center;
    flex: 0 0 auto;
    max-width: 28rem;
    width: 100%;
  }

  .ppc-workshop__final {
    padding-block: 6rem;
  }

  .ppc-workshop__final-heading {
    font-size: 2.5rem;
  }
}

@media (max-width: 768px) {
  /* The stacked pattern keeps copy at 75% width; the workshop hero carries more
     copy than Offerings, so let it use the full column on phones. */
  .ppc-workshop__hero .page-section-right__content .page-section-right__inner-content {
    width: 100% !important;
  }

  .ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__subtitle {
    font-size: 1.125rem !important;
  }

  /* pages.css sets every <p> to 2.1vw !important here (1rem at <=576px), which
     drops workshop copy below 16px and flattens the opening lead. :where() keeps
     this at plain-<p> specificity (it wins on source order) so every workshop
     class rule with its own !important size still takes precedence. */
  :where(.ppc-workshop) p {
    font-size: 1.0625rem !important;
  }

  .ppc-workshop__intro .ppc-workshop__lead {
    font-size: 1.5rem !important;
  }

  .ppc-workshop__divider {
    margin-block: 1.5rem;
    width: 35vw;
  }

  /* Kept equal above and below — see the note by .ppc-workshop__divider. */
  .ppc-workshop__divider--center {
    margin-block: 0 1.5rem;
  }

  .ppc-workshop .ppc-workshop__heading--center {
    margin-bottom: 1.5rem;
  }

  .ppc-workshop__detail-card {
    flex: 1 1 100%;
  }

  .ppc-workshop__testimonial-card {
    padding: 3rem 2rem;
  }

  .ppc-workshop__testimonial-quote p {
    font-size: 1.3125rem !important;
  }
}

@media (max-width: 576px) {
  .ppc-workshop__session {
    font-size: 1.0625rem;
  }

  .ppc-workshop__hero .page-section-right__inner-content > p.ppc-workshop__subtitle {
    font-size: 1rem !important;
  }

  .ppc-workshop {
    --ws-gutter: 1.25rem;
    --ws-section-pad: 4rem;
  }

  .ppc-workshop__intro {
    padding-block: 3.5rem;
  }

  .ppc-workshop__divider {
    width: 45vw;
  }

  .ppc-workshop p {
    font-size: 1.0625rem;
  }

  .ppc-workshop__actions .ppc-workshop__button {
    width: 100%;
  }

  .ppc-workshop .ppc-workshop__button {
    letter-spacing: 0.12em;
    padding-inline: 1.5rem;
  }

  .ppc-workshop__hero .page-section-right__inner-content > p:not(.page-section-eyebrow) {
    font-size: 1.0625rem;
  }

  .ppc-workshop__heading {
    font-size: 2rem;
  }

  .ppc-workshop__quote-text p,
  .ppc-workshop__intro .ppc-workshop__turn {
    font-size: 1.875rem !important;
  }

  .ppc-workshop__goal-not {
    font-size: 1.1875rem !important;
  }

  .ppc-workshop__goal-statement {
    font-size: 1.75rem !important;
  }

  .ppc-workshop__day {
    border-radius: var(--ws-radius-sm);
    padding: 2.25rem 1.5rem;
  }

  .ppc-workshop__day-title {
    font-size: 1.875rem;
  }

  .ppc-workshop__list li,
  .ppc-workshop__outcome {
    font-size: 1.0625rem;
  }

  .ppc-workshop__outcome {
    flex-basis: 100%;
    min-width: 0;
    padding: 1.75rem 1.5rem;
  }

  .ppc-workshop__credential {
    flex-basis: 100%;
    min-width: 0;
  }

  .ppc-workshop__detail-card {
    min-width: 0;
    padding: 1.75rem 1.5rem;
  }

  .ppc-workshop__testimonial-card {
    padding: 2.5rem 1.5rem;
  }

  .ppc-workshop__faq-question {
    font-size: 1.1875rem;
    padding-right: 2.5rem;
  }

  .ppc-workshop__faq-answer {
    padding-right: 0;
  }

  .ppc-workshop__final {
    padding-block: 4.5rem;
  }

  .ppc-workshop__final-heading {
    font-size: 2rem;
  }

  .ppc-workshop__final-text {
    font-size: 1.375rem !important;
  }
}

@media (max-width: 400px) {
  .ppc-workshop__heading {
    font-size: 1.8125rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ppc-workshop .ppc-workshop__button,
  .ppc-workshop__faq-question::before,
  .ppc-workshop__faq-question::after {
    transition: none;
  }

  .ppc-workshop .ppc-workshop__button:hover {
    transform: none;
  }
}

/* #endregion RESPONSIVE */
