/* ==========================================
   C-CARD2 — image-forward card, text group bottom-anchored via flex
   ADD to stylesheet — new component, no existing rule to replace
   Background omitted — set per-instance in Elementor
   ========================================== */

/* Image — pulled OUT of the flex flow so it can sit full-bleed behind everything */

/* Optional readability scrim behind the text group — remove if contrast is fine without it */

/* 2nd, 3rd, 4th widgets stay in NORMAL flow (no position: absolute) —
   flexbox stacks + bottom-anchors them as a group */

/* =============================================
   NEWS-CARD — same structure as .content-card, no border, rounded image
   ADD to stylesheet — new component, no existing rule to replace
   ========================================== */

/* ==========================================
   C-CARD — image spotlight card w/ heading, body, CTA button
   ADD to stylesheet — new component, no existing rule to replace
   Background is intentionally omitted — set per-instance in Elementor
   ========================================== */

.c-card {
  width: 100%;
  max-width: 340px;
  aspect-ratio: 9 / 16;
  position: relative;
  overflow: hidden;
  border-radius: 26px;
  margin: 0 auto;
}

/* Lock the widget-wrap padding to a single fixed value so it can't
   diverge at Elementor's own responsive breakpoints. This overrides
   Elementor's per-card, per-breakpoint padding setting (data-id
   scoped, e.g. .elementor-element-62a7b2d > .elementor-widget-wrap)
   — set this in Elementor's UI to the same 60/20/20/20 for every
   breakpoint too, or clear the tablet/mobile overrides entirely,
   so this rule is the only thing controlling it going forward. */
.c-card > .elementor-widget-wrap {
  padding: 60px 20px 20px 20px !important;
}

/* Elementor resets each card's background-overlay position to
   0px 0px at its own 1024px breakpoint, wiping out the custom
   per-image position set on desktop. Pin each card's overlay to
   its desktop value unconditionally (no media query) so it can't
   be reset. Add one line per card, copying its data-id + desktop
   background-position from the Styles panel (filter "background"
   on that card's .elementor-background-overlay, look at the rule
   WITHOUT a @media wrapper). */

/* Add the class "c-card-row" (Elementor: select the inner
   section/container that holds the 3 c-card columns → Advanced tab
   → CSS Classes → c-card-row) to the row wrapping the cards. This
   gives us a direct, unambiguous selector instead of relying on
   :has() matching or out-specificity-ing Elementor's own generated
   rules. */
.c-card-row,
.c-card-row > .elementor-container {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: flex-start !important;
  gap: 24px !important;
}

.c-card-row .elementor-column {
  flex: 0 0 340px !important;
  width: 340px !important;
  max-width: 340px !important;
  margin: 0 !important;
}

@media (max-width: 1100px) {
  .c-card-row .elementor-column {
    flex: 0 0 100% !important;
    width: 100% !important;
  }
}

/* 1st widget: image */

/* 2nd widget: heading */

/* 3rd widget: body copy */

/* 4th widget: CTA — Elementor Button widget */

.c-card .elementor-button {
  padding: 10px 28px;
  margin: 0;
  background: rgba(255, 255, 255, 0.19);
  border-radius: 41px;
  outline: 1px solid var(--brown-deep);
  outline-offset: -1px;
}
.c-card .elementor-button-text {
  color: var(--brown-deep);
  font-family: 'League Spartan', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
}
/* =============================================
   G-CARD — pillar card (glass panel, 3 text widgets)
   ADD to stylesheet — new component, no existing rule to replace
   ========================================== */

.g-card {
  width: 100%;
  max-width: 400px;
  padding: 20px 28px;
  background: rgba(255, 255, 255, 0.6);
  box-shadow: 0 12px 12px rgba(0, 0, 0, 0.12);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

/* Elementor wraps each widget in .elementor-widget-wrapper > .elementor-widget-container
   — target by position within the column rather than adding a class per widget */

/* 1st widget: eyebrow label */

/* 2nd widget: heading */

/* 3rd widget: body copy */

.cta-banner.elementor-section > .elementor-container,
.cta-banner > .elementor-container {
  max-width: 1000px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.cta-banner p {
  max-width: 820px !important;
}

/* content-card CTA — kill all internal spacing, apply padding at outer level only */
.content-card .card-cta {
  padding: 0 28px 24px !important;
  margin-top: 10px !important;
  margin-bottom: 0 !important;
}

.content-card .card-cta .elementor-widget-container,
.content-card .card-cta .elementor-widget-container > *,
.content-card .card-cta p,
.content-card .card-cta a,
.content-card .card-cta span {
  padding: 0 !important;
  margin: 0 !important;
}
h3 a,
h3 a:hover,
h3 a:visited {
  text-decoration: none !important;
}
.old-card {
  background: var(--off-white);
  border-radius: 24px;
}
.old-card > .elementor-widget-wrap {
     border-radius: 24px;
   }
/* =============================================
   DESIGN TOKENS
   ============================================= */
:root {
  --bg-dark:          #1A1A1A;
  --bg-dark-2:        #0D0D0D;
  --bg-card:          #2C2C2C;
  --bg-cream:         #F5EDE3;
  --bg-white:         #FEFCF9;
  --off-white:        #F5EBDE;
  --cream-warm:       #EDE0D0;
  --gold:             #D4A96A;
  --gold-light:       #C4A882;
  --gold-muted:       rgba(184,132,92,0.25);
  --copper:           #B8845C;
  --copper-dark:      #7D5542;
  --brown-deep:       #3D2B1F;
  --border-gold:      rgba(184,132,92,0.2);
  --border-light:     rgba(255,255,255,0.08);
  --text-dark:        #1A1A1A;
  --text-body:        #4A3F37;
  --text-muted:       #8B7E74;
  --text-muted-light: rgba(255,255,255,0.5);

  /* Warm saturated beige — sits between --cream-warm (#EDE0D0, nearly
     neutral) and --gold (#D4A96A). Carries visible warmth without
     reading as gold, so it stays distinct from the gold accents. */
  --beige-rich:       #E6CFAE;

  /* Eyebrow / card-tag — ONE colour per background type.
     Set these two and every eyebrow on the site follows.
     --eyebrow          greyish-brown, for all light backgrounds
     --eyebrow-on-dark  beige (NOT gold), for dark + image backgrounds */
  --eyebrow:          #7A6E64;
  --eyebrow-on-dark:  var(--beige-rich);

  /* Darker sibling of --eyebrow, same hue family. For eyebrows sitting on
     mid-tone light backgrounds (e.g. the .content-card gradient) where
     --eyebrow doesn't separate enough from the card behind it. */
  --eyebrow-strong:   #554C44;
}

/* =============================================
   TYPOGRAPHY — MASTER CONTROL
   Base: Lora (everything)
   Headings: League Spartan (h1–h6 only)
   ============================================= */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: "League Spartan", sans-serif !important;
  line-height: 1.15 !important;
}

h1,
.hero-centred h1,
.hero-centred .elementor-heading-title,
.hero-split h1,
.hero-split .elementor-heading-title {
  font-size: clamp(40px, 4.5vw, 56px) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

h2,
.section-heading h2,
.cta-banner h2,
.cta-banner .elementor-heading-title,
.editorial h2 {
  font-size: clamp(28px, 3.5vw, 56px) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

h3,
.content-card h3,
.content-card .elementor-heading-title,
.dark-card h3,
.dark-card .elementor-heading-title,
.hub-card h3,
.hub-card .elementor-heading-title,
.tier-card h3,
.tier-card .elementor-heading-title,
.editorial h3 {
  font-size: 22px !important;
  font-weight: 600 !important;
  text-transform: none !important;
}

h4,
.step h4,
.step .elementor-heading-title,
.editorial__pillar h4,
.editorial__pillar .elementor-heading-title {
  font-size: 18px !important;
  font-weight: 600 !important;
  text-transform: none !important;
}

@media (max-width: 768px) {
  .elementor-page h1:not(.hero-centred h1):not(.hero-split h1) {
    font-size: 40px !important;
  }
  .elementor-page h2:not(.section-heading h2):not(.cta-banner h2):not(.editorial h2):not(.quote-block h2) {
    font-size: 32px !important;
  }
}

/* =============================================
   GLOBAL ELEMENTOR RESETS
   ============================================= */
.hero-centred .elementor-widget-wrap,
.hero-split .elementor-widget-wrap,
.cards-section .elementor-widget-wrap,
.tiers-section .elementor-widget-wrap,
.dark-cards-section .elementor-widget-wrap,
.hub-section .elementor-widget-wrap,
.stats-strip .elementor-widget-wrap,
.stats-section .elementor-widget-wrap,
.editorial .elementor-widget-wrap,
.steps-section .elementor-widget-wrap,
.cta-banner .elementor-widget-wrap,
.mission-strip .elementor-widget-wrap,
.quote-block .elementor-widget-wrap,
.logos-section .elementor-widget-wrap,
.package-section .elementor-widget-wrap,
.point-cards-section .elementor-widget-wrap {
  --widgets-spacing: 0px !important;
}

.hero-centred.elementor-section,
.hero-split.elementor-section,
.cards-section.elementor-section,
.tiers-section.elementor-section,
.dark-cards-section.elementor-section,
.hub-section.elementor-section,
.stats-strip.elementor-section,
.stats-section.elementor-section,
.editorial.elementor-section,
.steps-section.elementor-section,
.cta-banner.elementor-section,
.mission-strip.elementor-section,
.quote-block.elementor-section,
.logos-section.elementor-section,
.package-section.elementor-section,
.point-cards-section.elementor-section {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Hide WordPress page titles */
.entry-title,
.page-title,
.elementor-page-title,
.elementor-heading-title.entry-title {
  display: none !important;
}

/* Global link color (non-button) */
a:not(.elementor-button):not(.elementor-button-link) {
  color: #BD997D;
}

/* =============================================
   SHARED — EYEBROW (unified across all sections)
   Size/spacing only — color is set per-section
   ============================================= */
.eyebrow,
.eyebrow p,
.card-tag,
.card-tag p {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  display: block;
  margin-bottom: 10px !important;
  line-height: 1.4 !important;
}

/* Default eyebrow colour for ALL light backgrounds.
   !important is deliberate: without it, Elementor's per-widget generated
   colour (.elementor-element-xxxx) outranks this and pages where someone
   picked a colour in the Elementor UI drift off-palette (this is why the
   home page eyebrow rendered black). Only the --dark variants below may
   override this. */
.eyebrow,
.eyebrow p,
.card-tag,
.card-tag p {
  color: var(--eyebrow) !important;
}

/* =============================================
   SHARED — SECTION HEADING
   ============================================= */
.section-heading {
  text-align: center;
  margin-bottom: 44px;
}

.section-heading h2 {
  color: var(--text-dark) !important;
  margin: 8px 0 !important;
}

.section-heading p {
  font-size: 15px !important;
  color: var(--text-muted) !important;
  max-width: 820px;
  margin: 8px auto 0 !important;
  line-height: 1.8 !important;
}

.section-heading--dark h2 { color: white !important; }

.section-heading--dark p {
  color: rgba(255,255,255,0.75) !important;
  margin: 8px auto 0 !important;
}

.section-heading--dark .eyebrow,
.section-heading--dark .eyebrow p,
.section-heading--dark .card-tag,
.section-heading--dark .card-tag p {
  color: var(--eyebrow-on-dark) !important;
}

.section-heading--dark .eyebrow p {
  padding: 0 !important;
  margin: 0 auto !important;
}

.section-heading--left { text-align: left !important; }
.section-heading--left p { margin: 8px 0 0 !important; max-width: 820px; }

/* =============================================
   SHARED — BUTTONS
   ============================================= */
.btn-outline .elementor-button,
.btn-outline .elementor-button:visited {
  color: white !important;
  background: #000 !important;
}

/* =============================================
   SHARED — CARD CTA
   ============================================= */
.card-cta,
.card-cta p {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--copper) !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  transition: color 0.2s !important;
  display: block;
  margin-top: 12px;
}
/* =============================================
   T1 — CENTRED CREAM HERO
   ============================================= */
.hero-centred {
  background: linear-gradient(180deg, #966D4F 0%, #E5D8C4 100%) !important;
  padding: 120px 32px 80px !important;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.hero-centred .eyebrow p{
  color: white !important;
}
.hero-centred::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center top, rgba(148,97,69,0.10) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.hero-centred > .elementor-container {
  max-width: 1000px !important;
  margin: 0 auto !important;
  position: relative;
  z-index: 1;
}
.hero-centred__back-link p,
.hero-centred__back-link a {
  font-family: "League Spartan", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: rgba(255,255,255,0.8) !important;
  display: inline-block !important;
  margin-bottom: 16px !important;
  transition: color 0.2s !important;
  text-decoration: none !important;
}
.hero-centred__back-link a:hover { color: white !important; }
.hero-centred h1,
.hero-centred .elementor-heading-title {
  font-family: "League Spartan", sans-serif !important;
  text-transform: uppercase !important;
  color: white !important;
  margin: 14px 0 18px !important;
}
.hero-centred h1 strong { color: var(--copper); font-weight: 700; }
.hero-centred__sub p {
  font-family: "DIW Futura", sans-serif !important;
  font-size: 16px !important;
  color: var(--text-body) !important;
  max-width: 800px;
  line-height: 1.85 !important;
}
body .hero-centred .hero-centred__sub,
body .hero-centred .hero-centred__sub p,
body .hero-centred p.hero-sub,
body .hero-centred .elementor-widget-container p {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 800px !important;
  width: 100% !important;
  display: block !important;
}
.hero-centred__btns > .elementor-container {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
}
.hero-centred__btns .elementor-column {
  width: auto !important;
  flex: 0 0 auto !important;
  padding: 0 8px !important;
}
.hero-centred__btns a.elementor-button,
.hero-centred__btns .elementor-button-content-wrapper {
  font-family: "League Spartan", sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  border-radius: 46px !important;
  padding: 17px 39px !important;
}
.hero-centred__btns .btn-solid,
.hero-centred__btns .btn-solid a {
  background: var(--text-dark) !important;
  color: white !important;
  border: none !important;
}

@media (max-width: 768px) {
  .hero-centred { padding: 100px 16px 56px !important; }
  
}
/* =============================================
   T2 — SPLIT HERO WITH IMAGE
   ============================================= */
.hero-split {
  background: linear-gradient(180deg, #966D4F 0%, #E5D8C4 100%) !important;
  padding: 72px 0 80px !important;
  position: relative;
  overflow: hidden;
}

.hero-split::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center top, rgba(148,97,69,0.10) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}

.hero-split > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
  align-items: stretch !important;
  position: relative;
  z-index: 1;
}

.hero-split .eyebrow,
.hero-split .eyebrow p {
  color: white !important;
  margin-bottom: 12px !important;
    font-size: 14px !important;
}

.hero-split h1,
.hero-split .elementor-heading-title {
  color: white !important;
  margin-bottom: 18px !important;
}

.hero-split h1 strong { color: var(--copper); font-weight: 700; }

.hero-split p {
  font-size: 16px !important;
  color: var(--text-body) !important;
  max-width: 480px;
  line-height: 1.85 !important;
  margin-bottom: 28px !important;
}

.hero-split__btns > .elementor-container {
  display: flex !important;
  justify-content: flex-start !important;
  flex-wrap: wrap !important;
}

.hero-split__btns .elementor-column {
  width: auto !important;
  flex: 0 0 auto !important;
  padding: 0 8px 0 0 !important;
}

.hero-split .elementor-column:has(.elementor-widget-image) {
  margin-top: -72px !important;
  margin-bottom: -80px !important;
  height: auto !important;
}

.hero-split .elementor-column:has(.elementor-widget-image) > .elementor-widget-wrap {
  height: 100% !important;
  display: flex !important;
}

.hero-split .elementor-widget-image,
.hero-split .elementor-widget-image .elementor-widget-container {
  height: 100% !important;
  width: 100% !important;
}

.hero-split .elementor-widget-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  clip-path: circle(45%);
  transform: scale(1.3) !important;
  transform-origin: 0px 50px !important;
}

@media (max-width: 768px) {
  .hero-split .elementor-widget-image { display: none !important; }
}

/* =============================================
   T3 — STANDARD CONTENT CARD
   ============================================= */
.cards-section {
  padding: 48px 32px !important;
}

.cards-section--dark { background: var(--bg-dark) !important; }

.cards-section > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
}

.cards-section .elementor-inner-section > .elementor-container {
  align-items: stretch !important;
  display: flex !important;
  gap: 24px !important;
}

.content-card {
  background: linear-gradient(180deg, #DDC1A9 0%, #F5EBE1 100%);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.3s;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  padding: 16px !important;
}

.content-card.elementor-column,
.content-card.elementor-column > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  height: auto !important;
}

.content-card--dark {
  background: var(--bg-card) !important;
}

.content-card--dark .elementor-widget-wrap { padding: 28px 8px !important; }

.content-card .elementor-widget-image {
  height: 200px;
  overflow: hidden;
  flex-shrink: 0;
}

.content-card .elementor-widget-image .elementor-widget-container {
  height: 220px !important;
  overflow: hidden !important;
}

.content-card .elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

.content-card .card-tag,
.content-card .card-tag p {
  padding: 0 14px !important;
  margin-bottom: 6px !important;
  color: var(--eyebrow-strong) !important;
}

.content-card--dark .card-tag,
.content-card--dark .card-tag p { color: var(--eyebrow-on-dark) !important; }

.content-card h3,
.content-card .elementor-heading-title {
  color: var(--text-dark) !important;
  margin-bottom: 8px !important;
  padding: 0 28px !important;
}

.content-card--dark h3,
.content-card--dark .elementor-heading-title { color: white !important; }

.content-card .elementor-widget-text-editor:not(.card-tag):not(.card-cta) { flex: 1 !important; }

.content-card .elementor-widget-text-editor:not(.card-tag):not(.card-cta) p {
  font-size: 14px !important;
  color: var(--text-dark) !important;
  line-height: 1.8 !important;
  margin: 0 !important;
  padding: 0 28px !important;
}

.content-card--dark .elementor-widget-text-editor:not(.card-tag):not(.card-cta) p {
  color: rgba(255,255,255,0.55) !important;
}

.content-card .card-cta,
.content-card .card-cta p {
  padding: 0 28px 24px !important;
  margin-top: 10px !important;
}

.content-card--dark .card-cta,
.content-card--dark .card-cta p { color: var(--gold) !important; }

.content-card .elementor-widget-spacer {
  margin: -32px !important;
  width: calc(100% + 64px) !important;
}

.content-card .elementor-widget-spacer + .card-tag { margin-top: 48px !important; }

/* ---------------------------------------------
   .content-card--about — modifier
   Distributes the widgets evenly down the card instead of stacking them
   at the top. Add alongside .content-card in Elementor:
   Advanced → CSS Classes → "content-card content-card--about"
   --------------------------------------------- */

/* The widget-wrap is the real flex container (see the .content-card
   .elementor-column rule above), so space-between has to go there, not
   on the column itself. */
.content-card--about.elementor-column > .elementor-widget-wrap {
  justify-content: space-between !important;
}

/* Required: the base .content-card rule gives the body text flex: 1, so it
   swallows every pixel of free space and space-between has nothing left to
   distribute. Reset it to natural height for this variant only. */

/* Image must not stretch when it stops being the only fixed-height item. */

.cards-section .elementor-inner-section .elementor-column.content-card { margin: 0 12px !important; }
.cards-section .elementor-inner-section .elementor-column.content-card:first-child { margin-left: 0 !important; }
.cards-section .elementor-inner-section .elementor-column.content-card:last-child { margin-right: 0 !important; }

@media (max-width: 768px) {
  .cards-section { padding: 40px 16px !important; }
  .content-card { padding: 8px !important; }
}

/* =============================================
   T4 — PRICING / TIER CARD
   ============================================= */
.tiers-section {
  background: white;
  padding: 80px 32px !important;
}

.tiers-section > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
}

.tiers-section .elementor-inner-section > .elementor-container {
  align-items: stretch !important;
  display: flex !important;
}

.tiers-section .elementor-inner-section .elementor-column {
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
}

.tiers-section .elementor-inner-section .elementor-column > .elementor-widget-wrap {
  height: 100% !important;
  flex: 1 !important;
}

.tier-card {
  background: linear-gradient(180deg, #DDC1A9 0%, #F5EBE1 100%);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.3s;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
  margin: 10px !important;
}

.tier-card.elementor-column,
.tier-card.elementor-column > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  height: auto !important;
}

.tier-card__header {
  padding: 20px 24px !important;
  border-bottom: 1px solid var(--cream-warm);
  border-radius: 16px 16px 0 0;
}

.tier-card--featured .tier-card__header {
  background: var(--brown-deep) !important;
  border-bottom-color: var(--border-gold) !important;
}

.tier-card__tag,
.tier-card__tag p {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--eyebrow) !important;
  display: block;
  margin-bottom: 6px !important;
  line-height: 1.4 !important;
}

.tier-card--featured .tier-card__tag,
.tier-card--featured .tier-card__tag p { color: var(--eyebrow-on-dark) !important; }

.tier-card h3,
.tier-card .elementor-heading-title {
  font-size: 26px !important;
  color: var(--text-dark) !important;
  margin-bottom: 4px !important;
}

.tier-card--featured h3,
.tier-card--featured .elementor-heading-title { color: white !important; }

.tier-card__meta,
.tier-card__meta p {
  font-size: 13px !important;
  color: var(--text-body) !important;
  display: block;
  margin-bottom: 4px !important;
  margin-top: 0 !important;
}

.tier-card--featured .tier-card__meta,
.tier-card--featured .tier-card__meta p { color: rgba(255,255,255,0.45) !important; }

.tier-card__price,
.tier-card__price p {
  font-family: "League Spartan", sans-serif !important;
  font-size: 34px !important;
  font-weight: 700 !important;
  color: var(--copper) !important;
  display: block;
  margin-top: 8px !important;
  margin-bottom: 0 !important;
  line-height: 1.2 !important;
}

.tier-card--featured .tier-card__price,
.tier-card--featured .tier-card__price p { color: var(--gold) !important; }

.tier-card__body {
  padding: 24px 36px 32px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

.tier-card__body .elementor-widget-wrap { padding: 0 !important; }

.tier-card__body p {
  font-size: 14px !important;
  color: var(--text-body) !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid var(--cream-warm);
  line-height: 1.5 !important;
  margin: 0 !important;
}

.tier-card__body p:last-of-type { border-bottom: none; }

.tier-card--featured .tier-card__body p {
  color: rgba(255,255,255,0.7) !important;
  border-bottom-color: var(--border-light) !important;
}

.tier-card__ideal,
.tier-card__ideal p {
  font-size: 12px !important;
  color: var(--text-muted) !important;
  font-style: italic !important;
  display: block;
  margin-top: 14px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--cream-warm) !important;
  margin-bottom: 0 !important;
}

.tier-card--featured .tier-card__ideal,
.tier-card--featured .tier-card__ideal p {
  color: rgba(255,255,255,0.35) !important;
  border-top-color: var(--border-light) !important;
}

.tiers-section .elementor-inner-section .elementor-column.tier-card { margin: 0 12px !important; }
.tiers-section .elementor-inner-section .elementor-column.tier-card:first-child { margin-left: 0 !important; }
.tiers-section .elementor-inner-section .elementor-column.tier-card:last-child { margin-right: 0 !important; }

@media (max-width: 768px) {
  .tiers-section { padding: 56px 16px !important; }

  /* Direct override — bypasses the .tiers-section .elementor-inner-section
     ancestor chain in case it isn't matching the real DOM structure,
     and ensures margin isn't zeroed out by the shared mobile-stacking
     rule further down the file. */
  .tier-card.elementor-column {
    width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 0 20px 0 !important;
  }
}

/* =============================================
   T5 — DARK FEATURE CARD
   ============================================= */
.dark-cards-section {
  background: var(--bg-dark) !important;
  padding: 80px 32px !important;
}

.dark-cards-section > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
}

.dark-cards-section .section-heading { margin-bottom: 38px !important; }

.dark-cards-section .elementor-inner-section > .elementor-container {
  align-items: stretch !important;
  display: flex !important;
}

.dark-card {
  background: var(--bg-card) !important;
  border-radius: 12px;
  padding: 32px 32px !important;
  transition: all 0.3s;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.dark-card.elementor-column,
.dark-card.elementor-column > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  height: auto !important;
}

.dark-card > .elementor-container { align-items: flex-start !important; }
.dark-card .elementor-widget-wrap { padding: 0 !important; }

.dark-card__icon,
.dark-card__icon p {
  font-size: 20px !important;
  color: var(--copper) !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  border-radius: 50% !important;
  background: var(--gold-muted) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.dark-card h3,
.dark-card .elementor-heading-title {
  color: white !important;
  margin-bottom: 4px !important;
}

.dark-card p {
  font-size: 14px !important;
  color: rgba(255,255,255,0.5) !important;
  line-height: 1.75 !important;
  margin: 0 !important;
}

.dark-card__sub,
.dark-card__sub p {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--copper) !important;
  display: block;
  margin-top: 4px !important;
  margin-bottom: 0 !important;
}

.dark-card__stat-num,
.dark-card__stat-num p {
  font-family: "League Spartan", sans-serif !important;
  font-size: 44px !important;
  font-weight: 700 !important;
  color: var(--gold) !important;
  line-height: 1 !important;
  display: block;
  margin: 4px 0 2px !important;
}

.dark-card__stat-pct,
.dark-card__stat-pct p {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--copper) !important;
  display: block;
  margin-bottom: 6px !important;
  margin-top: 0 !important;
}

.dark-cards-section .elementor-inner-section .elementor-column.dark-card { margin: 0 12px !important; }
.dark-cards-section .elementor-inner-section .elementor-column.dark-card:first-child { margin-left: 0 !important; }
.dark-cards-section .elementor-inner-section .elementor-column.dark-card:last-child { margin-right: 0 !important; }

@media (max-width: 768px) {
  .dark-cards-section { padding: 56px 16px !important; }

  /* Fix: on narrow screens the icon + heading/text inner row was
     staying side-by-side instead of stacking, and the text widgets
     refused to shrink below their own content width — pushing the
     whole card (and page) wider than the viewport, hence the
     horizontal scrollbar and cut-off text. */
  .dark-card > .elementor-container {
    flex-direction: column !important;
    flex-wrap: wrap !important;
  }
  .dark-card > .elementor-container > .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }
  .dark-card,
  .dark-card > .elementor-container,
  .dark-card .elementor-widget-wrap,
  .dark-card .elementor-widget-container {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: break-word !important;
  }
}

/* =============================================
   T6 — NUMBERED HUB CARD
   ============================================= */
.hub-section {
  background: var(--bg-cream);
  padding: 80px 32px !important;
}

.hub-section > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
}

.hub-section .elementor-inner-section > .elementor-container {
  align-items: stretch !important;
  display: flex !important;
}

.hub-card {
  background: var(--cream-warm);
  border-radius: 16px;
  transition: all 0.3s;
  text-align: center;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.hub-card.elementor-column,
.hub-card.elementor-column > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  height: auto !important;
}

.hub-card .elementor-widget-wrap {
  padding: 32px 32px !important;
  text-align: center !important;
}

.hub-card__num .elementor-widget-container {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  min-height: 64px !important;
  border-radius: 50% !important;
  background: var(--gold-muted) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 16px !important;
}

.hub-card .hub-card__num p {
  font-family: "League Spartan", sans-serif !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--copper) !important;
}

.hub-card h3,
.hub-card .elementor-heading-title {
  color: var(--text-dark) !important;
  margin-bottom: 8px !important;
}

.hub-card p {
  font-size: 14px !important;
  color: var(--text-muted) !important;
  line-height: 1.8 !important;
  margin: 0 !important;
}

.hub-card .elementor-widget-text-editor:not(.hub-card__num):not(.card-cta) { flex: 1 !important; }

.hub-card .card-cta,
.hub-card .card-cta p { padding: 0 !important; }

.hub-section .elementor-inner-section .elementor-column.hub-card { margin: 0 12px !important; }
.hub-section .elementor-inner-section .elementor-column.hub-card:first-child { margin-left: 0 !important; }
.hub-section .elementor-inner-section .elementor-column.hub-card:last-child { margin-right: 0 !important; }

@media (max-width: 768px) {
  .hub-section { padding: 56px 16px !important; }
}

/* =============================================
   T7 — STATS STRIP (QUICK FACTS)
   ============================================= */
.stats-strip {
  background: rgba(237, 224, 208, 0.43) !important;
  border-top: 1px solid var(--border-gold);
}

.stats-strip > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
  align-items: stretch !important;
}

.stats-strip__item {
  text-align: center;
  border-right: 1px solid var(--border-gold);
}

.stats-strip__item:last-child { border-right: none; }

.stats-strip__item .elementor-widget-wrap {
  padding: 28px 28px !important;
  justify-content: center;
  text-align: center !important;
}

.stats-strip__num,
.stats-strip__num p {
  font-family: "League Spartan", sans-serif !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  color: var(--copper-dark) !important;
  line-height: 1 !important;
  display: block;
  margin-bottom: 4px !important;
  margin-top: 0 !important;
}

.stats-strip__label,
.stats-strip__label p {
  font-size: 12px !important;
  color: var(--text-body) !important;
  line-height: 1.5 !important;
  display: block;
  margin: 0 !important;
}

/* =============================================
   T7 — STATS SECTION (BORDERED)
   ============================================= */
.stats-section {
  background: var(--bg-dark-2) !important;
  padding: 64px 32px !important;
  border-top: 1px solid var(--border-gold);
}

.stats-section > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
}

.stats-bordered {
  border: 1px solid var(--border-gold);
  border-radius: 12px;
  overflow: hidden;
}

.stats-bordered > .elementor-container { align-items: stretch !important; }

.stats-bordered__item {
  text-align: center;
}

.stats-bordered__item .elementor-widget-wrap {
  padding: 32px 28px !important;
  justify-content: center;
  text-align: center !important;
}

.stats-bordered__num,
.stats-bordered__num p {
  font-family: "League Spartan", sans-serif !important;
  font-size: 48px !important;
  font-weight: 700 !important;
  color: var(--gold) !important;
  line-height: 1 !important;
  display: block;
  margin-bottom: 8px !important;
  margin-top: 0 !important;
}

.stats-bordered__label,
.stats-bordered__label p {
  font-size: 13px !important;
  color: var(--text-muted-light) !important;
  line-height: 1.55 !important;
  display: block;
  margin: 0 !important;
}

.stats-bordered-date .elementor-widget-container {
  display: inline-block;
  width: auto;
}

.stats-bordered-date p {
  display: inline-block;
  margin: 0 !important;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  background: var(--gold-muted);
  color: var(--gold);
  padding: 2px 8px;
  border-radius: 8px;
}

@media (max-width: 768px) {
  .stats-section { padding: 56px 16px !important; }
  .stats-strip__item {
    border-right: none;
    border-bottom: 1px solid var(--border-gold);
  }
  .stats-strip__item:last-child { border-bottom: none; }
}

/* =============================================
   T8 — TWO-COLUMN EDITORIAL
   ============================================= */
.editorial {
  background: var(--bg-white);
  padding: 60px 32px !important;
}

.editorial > .elementor-container {
  max-width: 1100px !important;
  margin: 0 auto !important;
  align-items: center !important;
}

.editorial--dark { background: var(--bg-dark) !important; }

.editorial--dark h2,
.editorial--dark h2.elementor-heading-title,
.editorial--dark .elementor-widget-heading h2,
.editorial--dark .elementor-widget-heading .elementor-heading-title,
.editorial--dark h3,
.editorial--dark .elementor-heading-title { color: white !important; }

.editorial--dark .elementor-widget-text-editor p { color: rgba(255,255,255,0.6) !important; }

.editorial--dark .card-tag,
.editorial--dark .card-tag p,
.editorial--dark .eyebrow,
.editorial--dark .eyebrow p { color: var(--eyebrow-on-dark) !important; }

.editorial--dark .editorial__tagline p,
.editorial--dark .editorial__tagline .elementor-widget-text-editor p { color: var(--gold) !important; }

.editorial h2,
.editorial h3,
.editorial .elementor-heading-title {
  color: var(--text-dark) !important;
  margin-bottom: 16px !important;
}

.editorial p {
  font-size: 15px !important;
  color: var(--text-body) !important;
  line-height: 1.85 !important;
  margin-bottom: 12px !important;
}

.editorial p:last-of-type { margin-bottom: 0 !important; }

.editorial .elementor-widget-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
}

.editorial__details {
  border: 1px solid var(--cream-warm);
  border-radius: 12px;
  overflow: hidden;
  margin: 20px 0 !important;
}

.editorial__details > .elementor-container,
.editorial__details .elementor-widget-wrap { padding: 0 !important; }

.editorial__details-row {
  background: var(--bg-cream);
  border-bottom: 1px solid var(--cream-warm);
}
.editorial__details-row:last-child { border-bottom: none; }

.editorial__details-row > .elementor-container {
  padding: 0 !important;
  align-items: center !important;
}

.editorial__details-row .elementor-widget-wrap { padding: 12px 22px !important; }

.editorial__details-label,
.editorial__details-label p {
  font-size: 13px !important;
  color: var(--text-body) !important;
  display: block;
  margin: 0 !important;
}

.editorial__details-value,
.editorial__details-value p {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--copper) !important;
  display: block;
  margin: 0 !important;
  text-align: right;
}

.editorial__pillars > .elementor-container {
  flex-wrap: wrap !important;
  align-items: stretch !important;
}

.editorial__pillar {
  padding: 16px !important;
  background: var(--bg-cream);
  border-radius: 10px;
  border-left: 3px solid var(--copper);
  margin: 6px !important;
  flex: 1 1 calc(50% - 12px) !important;
}

.editorial__pillar .elementor-widget-wrap { padding: 0 !important; }

.editorial__pillar h4,
.editorial__pillar .elementor-heading-title {
  color: var(--text-dark) !important;
  margin-bottom: 4px !important;
}

.editorial__pillar h4:first-of-type,
.editorial__pillar .elementor-heading-title:first-of-type {
  margin-bottom: -20px !important;
}

.editorial__pillar p {
  font-size: 12px !important;
  color: var(--text-muted) !important;
  margin: 0 !important;
  line-height: 1.6 !important;
}

.editorial__tagline,
.editorial__tagline p {
  font-size: 14px !important;
  color: var(--gold) !important;
  font-weight: 600 !important;
  font-style: italic !important;
  display: block;
  margin-top: 16px !important;
  margin-bottom: 0 !important;
}

@media (max-width: 768px) {
  .editorial { padding: 56px 16px !important; }
  .editorial__pillar { flex: 1 1 100% !important; }
}

/* =============================================
   T9 — NUMBERED STEPS ROW
   ============================================= */
.steps-section {
  background: var(--bg-white);
  padding: 80px 32px !important;
}

.steps-section > .elementor-container {
  max-width: 1100px !important;
  margin: 0 auto !important;
}

.step { text-align: center; position: relative; }

.step .elementor-widget-wrap {
  padding: 0 20px !important;
  text-align: center !important;
  align-items: center !important;
}

.step__num,
.step__num p {
  font-family: "League Spartan", sans-serif !important;
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  min-height: 52px !important;
  border-radius: 50% !important;
  background: var(--gold-muted) !important;
  border: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 16px !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--eyebrow-strong) !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
}

.step h4,
.step .elementor-heading-title {
  color: var(--text-dark) !important;
  margin-bottom: 8px !important;
}

.step p {
  font-size: 14px !important;
  color: var(--text-muted) !important;
  line-height: 1.8 !important;
  margin: 0 !important;
}

.step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 26px;
  left: calc(50% + 40px);
  right: calc(-50% + 40px);
  height: 1px;
  background: var(--border-gold);
}

@media (max-width: 768px) {
  .steps-section { padding: 56px 16px !important; }
  .step:not(:last-child)::after { display: none; }
}

/* =============================================
   T10 — CTA BANNER
   ============================================= */
.cta-banner {
  padding: 64px 32px !important;
  text-align: center;
  background: linear-gradient(0deg, #72503E 0%, #D1B190 100%) !important;
  padding: 120px 32px 80px !important;
}

.cta-banner > .elementor-container {
  max-width: 700px !important;
  margin: 0 auto !important;
}

.cta-banner h2,
.cta-banner .elementor-heading-title {
  color: white !important;
  margin-bottom: 12px !important;
}

.cta-banner p {
  font-size: 16px !important;
  color: white !important;
  max-width: 520px;
  margin: 0 auto 24px !important;
  line-height: 1.8 !important;
}

.cta-banner__btns > .elementor-container {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
}

.cta-banner__btns .elementor-column {
  width: auto !important;
  flex: 0 0 auto !important;
  padding: 0 8px !important;
}

@media (max-width: 768px) {
  .cta-banner { padding: 56px 16px !important; }
}

/* =============================================
   T11 — MISSION STRIP
   ============================================= */
.mission-strip {
  background: linear-gradient(258deg, rgba(137,84,44,0.7) 0%, rgba(187,128,80,0.7) 100%) !important;
  padding: 40px 32px !important;
  text-align: center;
  border-top: 1px solid var(--border-gold);
  border-bottom: 1px solid var(--border-gold);
}

.mission-strip > .elementor-container {
  max-width: 900px !important;
  margin: 0 auto !important;
}

.mission-strip p strong,
.mission-strip p b {
  color: var(--copper-dark) !important;
}

/* Deliberately NOT folded into the --eyebrow token: this sits on the
   brown mission-strip gradient, where the greyish-brown would disappear.
   Needs to read dark against a mid-brown background. */
.mission-strip__label,
.mission-strip__label p {
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
  color: var(--brown-deep) !important;
  display: block;
  margin-bottom: 12px !important;
  margin-top: 0 !important;
}

.mission-strip__sub {
  font-size: clamp(16px, 1.8vw, 20px) !important;
  font-weight: 400 !important;
  color: rgba(255,255,255,1) !important;
  line-height: 1.65 !important;
  margin: 0 !important;
}

/* =============================================
   T11 — QUOTE BLOCK
   ============================================= */
.quote-block {
  background: var(--bg-dark) !important;
  padding: 48px 72px !important;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.quote-block::before {
  content: '\201C';
  font-size: 200px;
  color: var(--gold-muted);
  position: absolute;
  top: -40px;
  left: 24px;
  line-height: 1;
  opacity: 0.4;
  pointer-events: none;
  z-index: 0;
}

.quote-block > .elementor-container {
  max-width: 800px !important;
  margin: 0 auto !important;
  position: relative;
  z-index: 1;
}

.quote-block p {
  font-size: clamp(18px, 2vw, 24px) !important;
  font-weight: 400 !important;
  font-style: italic !important;
  color: rgba(255,255,255,0.85) !important;
  line-height: 1.55 !important;
  margin-bottom: 16px !important;
}

.quote-block__author,
.quote-block__author p {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  display: block;
  margin: 0 !important;
}

@media (max-width: 768px) {
  .quote-block { padding: 40px 24px !important; }
}

/* =============================================
   T12 — LOGO GRID
   ============================================= */
.logos-section {
  background: var(--bg-cream);
  padding: 64px 32px !important;
}

.logos-section > .elementor-container {
  max-width: 1100px !important;
  margin: 0 auto !important;
}

.logo-item {
  border: 1px dashed var(--border-gold);
  border-radius: 8px;
  transition: all 0.2s;
}

.logo-item:hover {
  border-color: var(--copper);
  border-style: solid;
}

.logo-item .elementor-widget-wrap {
  padding: 16px !important;
  justify-content: center !important;
  align-items: center !important;
}

.logo-img img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.6;
  transition: all 0.2s;
}

.logo-item:hover .logo-img img {
  filter: grayscale(0%);
  opacity: 1;
}

@media (max-width: 768px) {
  .logos-section { padding: 56px 16px !important; }
}

/* =============================================
   T13 — PACKAGE CARD
   ============================================= */
.package-section {
  background: transparent !important;
  padding: 80px 32px !important;
}

.package-section > .elementor-container {
  max-width: 1100px !important;
  margin: 0 auto !important;
}

.package-section .elementor-inner-section > .elementor-container {
  align-items: stretch !important;
  display: flex !important;
}

.package-card {
  background: linear-gradient(180deg, #DDC1A9 0%, #F5EBE1 100%);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.3s;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
  margin: 10px !important;
}

.package-card.elementor-column,
.package-card.elementor-column > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  height: auto !important;
}

.package-card > .elementor-widget-wrap { padding: 0 !important; }

.package-card .eyebrow {
  padding: 32px 0 0 !important;
  margin-bottom: 8px !important;
}

.package-card h3,
.package-card .elementor-heading-title {
  font-size: 26px !important;
  color: var(--text-dark) !important;
  padding: 0 !important;
  margin-bottom: 6px !important;
}

.spec-heading > .elementor-container { padding: 24px 36px 14px !important; }
.spec-heading .elementor-widget-wrap { padding: 0 !important; }

.spec-heading p {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--text-muted) !important;
  margin: 0 !important;
}

.package-card .editorial__pillars > .elementor-container {
  padding: 0 36px !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
}

.package-card .editorial__pillar {
  background: var(--bg-cream) !important;
  border-left: none !important;
  border: 1px solid var(--cream-warm) !important;
  border-radius: 10px !important;
  margin: 0 !important;
  padding: 16px 18px !important;
  flex: 1 1 50% !important;
}

.package-card .editorial__pillar h4:first-of-type,
.package-card .editorial__pillar .elementor-heading-title:first-of-type {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--text-muted) !important;
  margin-bottom: 4px !important;
}

.package-card .editorial__pillar .elementor-widget-heading + .elementor-widget-heading h4 {
  font-family: "League Spartan", sans-serif !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  color: var(--copper) !important;
  line-height: 1 !important;
  margin-bottom: 4px !important;
  text-transform: none !important;
}

.package-card .editorial__pillar .editorial__details-label p {
  font-size: 12px !important;
  color: var(--text-muted) !important;
  margin: 0 !important;
}

.tier-spec > .elementor-container { padding: 0 36px !important; }
.tier-spec .elementor-widget-wrap { padding: 0 !important; }

.tier-spec ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.tier-spec li {
  font-size: 13.5px !important;
  color: var(--text-body) !important;
  padding: 6px 0 6px 20px !important;
  position: relative;
  line-height: 1.55 !important;
}

.tier-spec li::before {
  content: '\2713';
  position: absolute;
  left: 0;
  top: 7px;
  color: var(--copper);
  font-weight: 700;
  font-size: 12px;
}

.tier-addons > .elementor-container {
  padding: 18px 36px 32px !important;
  margin-top: 18px !important;
  border-top: 1px solid var(--cream-warm);
}

.tier-addons .elementor-widget-wrap { padding: 0 !important; }

.tier-addons p {
  font-size: 12.5px !important;
  color: var(--text-muted) !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}

.package-section .elementor-inner-section .elementor-column.package-card { margin: 0 14px !important; }
.package-section .elementor-inner-section .elementor-column.package-card:first-child { margin-left: 0 !important; }
.package-section .elementor-inner-section .elementor-column.package-card:last-child { margin-right: 0 !important; }

@media (max-width: 768px) {
  .package-section { padding: 56px 16px !important; }
  .package-card .editorial__pillars > .elementor-container { flex-wrap: wrap !important; }
  .package-card .editorial__pillar { flex: 1 1 100% !important; }

  /* Direct override — bypasses the .package-section .elementor-inner-section
     ancestor chain so stacking can't be broken again by a class rename or a
     DOM structure change. Also covers the 767px/768px gap between Elementor's
     own breakpoint and ours. Mirrors the .tier-card fix above. */
  .package-card.elementor-column {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    margin: 0 0 20px 0 !important;
  }

  /* .package-card-row is the inner section holding the two package cards.
     Stack its container directly, so we don't depend on the
     .package-section .elementor-inner-section chain either. */
  .package-card-row > .elementor-container {
    flex-direction: column !important;
    flex-wrap: wrap !important;
  }
}

/* =============================================
   T14 — DONATION TIER CARD
   ============================================= */
.donation-tier-card {
  background: white !important;
  border-radius: 14px !important;
  padding: 20px 24px !important;
  margin-bottom: 12px !important;
  transition: all 0.2s !important;
}

.donation-tier-card.elementor-column,
.donation-tier-card.elementor-column > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
}

.donation-tier-card > .elementor-widget-wrap { padding: 0 !important; }

/* =============================================
   T15 — DONATE CARD
   ============================================= */
.donate-card {
  background: var(--bg-cream) !important;
  border-radius: 16px !important;
  padding: 40px !important;
  box-sizing: border-box;
}

.donate-card.elementor-column > .elementor-widget-wrap {
  background: var(--bg-cream) !important;
  border-radius: 16px !important;
  padding: 40px !important;
  box-sizing: border-box;
}

.donate-card.elementor-column {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

.donate-card h2,
.donate-card .elementor-heading-title,
.donate-card.elementor-column > .elementor-widget-wrap h2,
.donate-card.elementor-column > .elementor-widget-wrap .elementor-heading-title {
  font-size: 22px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  color: var(--text-dark) !important;
  margin-bottom: 12px !important;
  line-height: 1.2 !important;
}

.donate-card p,
.donate-card.elementor-column > .elementor-widget-wrap p {
  font-size: 15px !important;
  color: var(--text-muted) !important;
  line-height: 1.7 !important;
  margin-bottom: 16px !important;
}

@media (max-width: 768px) {
  .donate-card,
  .donate-card.elementor-column > .elementor-widget-wrap {
    padding: 28px 24px !important;
  }
}

/* =============================================
   T16 — POINT CARDS (light + dark)
   ============================================= */
.point-cards-section {
  background: var(--bg-cream) !important;
  padding: 80px 32px !important;
}

.point-cards-section.dark {
  background: var(--bg-dark) !important;
}

.point-cards-section > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
}

.point-cards-section .section-heading { margin-bottom: 38px !important; }

.point-cards-section.dark .section-heading h2,
.point-cards-section.dark .section-heading .elementor-heading-title {
  color: white !important;
}

.point-cards-section.dark .section-heading p {
  color: rgba(255,255,255,0.6) !important;
}

.point-cards-section.dark .section-heading .eyebrow,
.point-cards-section.dark .section-heading .eyebrow p {
  color: var(--eyebrow-on-dark) !important;
}

.card-grid > .elementor-container > .elementor-column.point-card {
  padding: 0 12px !important;
}

.point-card > .elementor-widget-wrap {
  background: white !important;
  border-radius: 16px !important;
  padding: 36px 32px !important;
  transition: all 0.3s;
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  box-sizing: border-box;
}

.point-card.dark > .elementor-widget-wrap {
  background: var(--bg-card) !important;
  border-radius: 12px !important;
}

.point-card__icon.elementor-widget {
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  flex: 0 0 56px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, var(--gold-muted), rgba(184,132,92,0.08)) !important;
  margin: 0 0 20px 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.point-card__icon .elementor-widget-container {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.point-card__icon p {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  color: var(--text-dark) !important;
  line-height: 1 !important;
}

.point-card h3,
.point-card .elementor-heading-title {
  font-size: 22px !important;
  font-weight: 500 !important;
  color: var(--text-dark) !important;
  margin-bottom: 10px !important;
  line-height: 1.2 !important;
}

.point-card.dark h3,
.point-card.dark .elementor-heading-title {
  color: white !important;
  font-size: 20px !important;
}

.point-card .elementor-widget-text-editor:not(.point-card__icon) p {
  font-size: 14px !important;
  color: var(--text-muted) !important;
  line-height: 1.75 !important;
  margin: 0 !important;
}

.point-card.dark .elementor-widget-text-editor:not(.point-card__icon) p {
  color: rgba(255,255,255,0.5) !important;
}

@media (max-width: 768px) {
  .point-cards-section { padding: 56px 16px !important; }
  .point-card > .elementor-widget-wrap { padding: 28px 24px !important; }
}

/* =============================================
   T17 — CAMPAIGN CARD
   ============================================= */

/* =============================================
   MOBILE CARD STACKING (shared)
   ============================================= */
@media (max-width: 768px) {
  .cards-section .elementor-inner-section .elementor-container,
  .hub-section .elementor-inner-section .elementor-container,
  .dark-cards-section .elementor-inner-section .elementor-container,
  .tiers-section .elementor-inner-section .elementor-container,
  .package-section .elementor-inner-section .elementor-container {
    flex-direction: column !important;
  }

  .cards-section .elementor-inner-section .elementor-column,
  .hub-section .elementor-inner-section .elementor-column,
  .dark-cards-section .elementor-inner-section .elementor-column,
  .tiers-section .elementor-inner-section .elementor-column,
  .package-section .elementor-inner-section .elementor-column {
    width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 0 20px 0 !important;
  }

  body .hub-section .elementor-inner-section .elementor-column.hub-card,
  body .hub-section .elementor-inner-section .elementor-column.hub-card:first-child,
  body .hub-section .elementor-inner-section .elementor-column.hub-card:last-child,
  body .cards-section .elementor-inner-section .elementor-column.content-card,
  body .cards-section .elementor-inner-section .elementor-column.content-card:first-child,
  body .cards-section .elementor-inner-section .elementor-column.content-card:last-child,
  body .dark-cards-section .elementor-inner-section .elementor-column.dark-card,
  body .dark-cards-section .elementor-inner-section .elementor-column.dark-card:first-child,
  body .dark-cards-section .elementor-inner-section .elementor-column.dark-card:last-child,
  body .package-section .elementor-inner-section .elementor-column.package-card,
  body .package-section .elementor-inner-section .elementor-column.package-card:first-child,
  body .package-section .elementor-inner-section .elementor-column.package-card:last-child {
    margin: 0 0 20px 0 !important;
  }
}

/* =============================================
   SITE HEADER & NAV
   ============================================= */
.site-header {
  position: sticky !important;
  top: 0 !important;
  width: 100% !important;
  z-index: 1000 !important;
  background-color: black;
  opacity: 0.9;
}

.site-header.dynamic-header {
  background-color: #000 !important;
}

.site-header.dynamic-header .header-inner {
  background-color: rgba(0, 0, 0, 0.7);
  max-width: 100%;
  padding-left: 48px;
  padding-right: 48px;
}

.site-header .site-navigation {
  flex: 1;
  display: flex;
  justify-content: center;
}

.site-header .site-navigation > ul {
  gap: 12px;
}

.site-header .site-navigation .menu li {
  font-family: "League Spartan", sans-serif;
  text-transform: uppercase;
  text-shadow: 0px 0px 10px rgba(0,0,0,0.28);
  color: #ffffff !important;
}

.site-header a {
  font-family: "League Spartan", sans-serif;
  font-size: 18px !important;
  position: relative;
  text-decoration: none;
  padding-bottom: 5px;
  color: #ffffff !important;
}

.site-header a::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #BD997D;
  bottom: 0;
  left: 0;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease-in-out;
}

.site-header a:hover::after { transform: scaleX(1); }

.site-header .site-navigation .menu-item-has-children { position: relative; }

.site-header .site-navigation .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1001;
  background-color: rgba(0,0,0,0.98);
  width: 250px;
  padding: 10px 0;
  border-radius: 0 0 5px 5px;
}

.site-header .site-navigation .menu-item-has-children:hover > .sub-menu { display: block; }
.site-header .site-navigation .sub-menu li { border: none !important; position: relative; }
.site-header .site-navigation .sub-menu li a { white-space: nowrap; padding: 8px 15px; display: block; }
.site-header .site-navigation .sub-menu .sub-menu { position: absolute; top: -10px; left: 100%; }

.site-navigation ul.menu li.menu-item-has-children:after {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  width: auto;
  height: auto;
}

.site-navigation .sub-menu li.menu-item-has-children:after { content: "▶"; right: 15px; }

#menu-item-8896 .sub-menu { min-width: 330px; }

#menu-item-12174 .sub-menu { min-width: 320px; }

/* Mobile menu toggle icon */
.site-navigation-toggle .site-navigation-toggle-icon,
.site-navigation-toggle .site-navigation-toggle-icon::before,
.site-navigation-toggle .site-navigation-toggle-icon::after {
  fill: #ffffff !important;
}

/* Mobile nav dropdown */
@media (max-width: 1024px) {
  .site-navigation-dropdown ul.menu,
  nav.site-navigation-dropdown > ul.menu { background: rgba(0,0,0,0.95) !important; }
  .site-navigation-dropdown ul.menu li a { background: transparent !important; }
  .site-navigation-dropdown li { background: transparent !important; }
  .site-navigation-dropdown a { color: #ffffff !important; }
  .site-navigation-dropdown .sub-menu { background: rgba(0,0,0,0.9) !important; }
  .site-navigation-dropdown .sub-menu .sub-menu { background: rgba(0,0,0,0.95) !important; }
}

/* =============================================
   MISC — NON-ELEMENTOR BUTTONS
   ============================================= */
[type="submit"]:not(.elementor-button),
button:not(.elementor-button):not(.site-navigation-toggle) {
  border: none !important;
}

[type="submit"]:not(.elementor-button):hover,
button:not(.elementor-button):not(.site-navigation-toggle):hover {
  background: #bd997d !important;
}

/* =============================================
   STAFF
   ============================================= */

/* =============================================
   EVENT REGISTRATION
   ============================================= */
.single-event_listing .event_registration.registration { display: none !important; }
body.postid-9852 .event_registration.registration { display: block !important; }

/* =============================================
   CUSTOM HOVER COLUMN
   ============================================= */

/* =============================================
   POPUP
   ============================================= */

/* =============================================
   T7 — STATS SECTION (BORDERED) — v3
   Paste at bottom of file — same selectors as original T7,
   must stay LAST in the file to win the cascade
   ============================================= */
.stats-section {
  background: var(--bg-white) !important;
  padding: 100px 32px !important;
  border-top: none !important;
}

.stats-section > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
}

.stats-section .section-heading {
  margin-bottom: 56px !important;
  text-align: center !important;
}

.stats-section .section-heading .eyebrow,
.stats-section .section-heading .eyebrow p,
.stats-section .section-heading h2,
.stats-section .section-heading .elementor-heading-title {
  text-align: center !important;
  width: 100% !important;
}

.stats-bordered {
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.stats-bordered > .elementor-container {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: stretch !important;
}

.stats-bordered__item {
  flex: 1 1 300px !important;
  max-width: 320px !important;
  margin: 12px !important;
  border-radius: 16px !important;
  background: rgba(237, 224, 208, 0.43) !important;
  box-sizing: border-box !important;
}

.stats-bordered__item .elementor-widget-wrap {
  padding: 24px 30px !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
}

.stats-bordered__num,
.stats-bordered__num p {
  font-family: "League Spartan", sans-serif !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  color: var(--copper-dark) !important;
  margin-bottom: 0 !important;
}

.stats-bordered__label,
.stats-bordered__label p {
  color: var(--text-body) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

.stats-bordered-date .elementor-widget-container {
  display: inline-block !important;
  width: auto !important;
}

.stats-bordered-date p {
  border: 1px solid var(--copper) !important;
  background: transparent !important;
  color: var(--copper) !important;
  border-radius: 999px !important;
  padding: 2px 10px !important;
}

@media (max-width: 768px) {
  .stats-section { padding: 64px 16px !important; }
  .stats-bordered__item,
  .stats-bordered__item:last-child {
    border-right: none !important;
    border-bottom: none !important;
  }
}
/* =============================================
   T11 — QUOTE BLOCK — v2
   Paste at bottom of file (after stats patches)
   ============================================= */
.quote-block {
  background:
    linear-gradient(288deg, rgba(137, 84, 44, 0.68) 0%, rgba(205, 157, 118, 0.68) 100%),
    radial-gradient(ellipse 223% 229% at 91% -175%, rgba(223, 136, 68, 0.2) 0%, rgba(234, 164, 110, 0.2) 68%, rgba(177, 134, 108, 0.2) 100%) !important;
  background-size: cover !important;
  background-position: center !important;
  padding: 80px 48px !important;
  border-radius: 26px !important;
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* Removed the decorative giant quotation-mark glyph — not present in the new design */
.quote-block::before {
  content: none !important;
}

.quote-block > .elementor-container {
  max-width: 990px !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 24px !important;
  position: relative;
  z-index: 1;
}

.quote-block p {
  font-family: "DIW Futura", sans-serif !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  font-style: italic !important;
  color: white !important;
  line-height: 30px !important;
  letter-spacing: 0.5px !important;
  max-width: 990px;
  margin: 0 !important;
}

.quote-block__author,
.quote-block__author p {
  font-family: 'League Spartan', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--copper-dark) !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  .quote-block { padding: 56px 24px !important; }
}

.outcome-carousel-wrap {
  position: relative;
}

.outcome-carousel-track {
  position: relative;
}

.outcome-carousel-wrap .outcome-carousel-track > .elementor-container {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 8px;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.outcome-carousel-wrap .outcome-carousel-track > .elementor-container::-webkit-scrollbar {
  display: none;
}

.outcome-carousel-wrap .outcome-carousel-track > .elementor-container > .outcome-card {
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  flex: 0 0 var(--card-w, 300px) !important;
  min-width: 240px;
  scroll-snap-align: start;
}

@media (max-width: 767px) {
  .outcome-carousel-wrap .outcome-card {
    flex-basis: 82vw !important;
  }
}
.outcome-carousel-wrap .carousel-arrow {
  position: absolute;
  top: calc(50% - 300px); /* adjust the 40px to nudge up/down */
  transform: translateY(-50%);
  z-index: 6;
  border: none;
  background: transparent;
  padding: 8px;
  font-size: 64px;
  line-height: 1;
  color: var(--text-dark);
  cursor: pointer;
  transition: opacity 0.2s;
}
.outcome-carousel-wrap .carousel-arrow:hover { opacity: 0.6; }
.outcome-carousel-wrap .carousel-next { right: -8px; }
.outcome-carousel-wrap .carousel-prev { left: -8px; }
.outcome-carousel-wrap .carousel-arrow.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.outcome-carousel-wrap .carousel-fade {
  position: absolute;
  top: calc(50% - 300px); /* match your carousel-arrow offset */
  transform: translateY(-50%);
  height: 600px; /* adjust to match your card height */
  width: 60px;
  pointer-events: none;
  z-index: 5;
  transition: opacity 0.2s;
}
.outcome-carousel-wrap .carousel-fade-left {
  left: 0;
  background: linear-gradient(to right, var(--bg-white), rgba(255,255,255,0));
}
.outcome-carousel-wrap .carousel-fade-right {
  right: 0;
  background: linear-gradient(to left, var(--bg-white), rgba(255,255,255,0));
}

/* =============================================
   UTILITY — FULL BLEED WIDTH OVERRIDE
   Add this class alongside any section class
   (e.g. class="hero-split full-bleed") to blow
   past that section's max-width constraint.
   Must stay LAST in the file to win the cascade.
   ============================================= */
.full-bleed.elementor-section {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.full-bleed > .elementor-container {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 !important;
}
.outcome-carousel-wrap .carousel-fade.is-hidden { opacity: 0; }
#menu-item-12608 > .sub-menu,
#menu-item-12610 > .sub-menu {
    left: auto !important;
    right: 100% !important;
    top: 0 !important;
}
.site-logo .custom-logo {
    width: 150px !important;
    height: auto !important;
}

/* Mosaic gallery override — scoped to .mosaic-gallery wrapper */
.mosaic-gallery .gallery {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: 300px 300px 500px;
  gap: 0;
  width: 100%;
}

.mosaic-gallery .gallery .gallery-item {
  margin: 0 !important;
  width: auto !important;
  float: none !important;
  overflow: hidden;
  border-radius: 0;
  position: relative !important;
  height: 100% !important;
  padding: 0 !important;
}

.mosaic-gallery .gallery .gallery-item .gallery-icon {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  position: static !important;
}

.mosaic-gallery .gallery .gallery-item .gallery-icon a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  position: relative !important;
}

.mosaic-gallery .gallery .gallery-item .gallery-icon img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

.mosaic-gallery .gallery .gallery-item:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / span 2; }
.mosaic-gallery .gallery .gallery-item:nth-child(2) { grid-column: 3 / 5; grid-row: 1; }
.mosaic-gallery .gallery .gallery-item:nth-child(3) { grid-column: 5 / 7; grid-row: 1; }
.mosaic-gallery .gallery .gallery-item:nth-child(4) { grid-column: 3 / 5; grid-row: 2; }
.mosaic-gallery .gallery .gallery-item:nth-child(5) { grid-column: 5 / 7; grid-row: 2; }
.mosaic-gallery .gallery .gallery-item:nth-child(6) { grid-column: 1 / 5; grid-row: 3; }
.mosaic-gallery .gallery .gallery-item:nth-child(7) { grid-column: 5 / 7; grid-row: 3; }

@media (max-width: 900px) {
  .mosaic-gallery .gallery {
    grid-template-columns: repeat(2, 1fr);
  }
  .mosaic-gallery .gallery .gallery-item {
    grid-column: auto !important;
    grid-row: auto !important;
  }
}

@media (max-width: 500px) {
  .mosaic-gallery .gallery {
    grid-template-columns: 1fr;
  }
}

/* ==========================================
   CONTENT-CARD2 — same layout as .content-card,
   background omitted — set per-instance in Elementor
   ADD to bottom of stylesheet
   ========================================== */

/* ==========================================
   CONTENT-CARD2 — specificity fix
   Elementor's own .elementor-column rule (display/overflow/flex)
   has equal specificity and was winning on load order.
   ADD to bottom of stylesheet
   ========================================== */

/* =============================================
   T18 — RENT-GALLERY (single-image, full-width, autoscrolling)
   Forces a WP/Elementor image-gallery widget to show one image at a
   time, full width, with no caption label, and auto-advances through
   the photos on its own (pauses on hover/focus). Add "rent-gallery"
   as an Elementor CSS class on the Image Gallery widget. Pure CSS,
   no JS — so there's no manual swipe/click-through, just the
   automatic slide.
   ============================================= */
.rent-gallery .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* Fixed slide height (16:9) — a nowrap flex row auto-sizes to its
   TALLEST child no matter what align-items is set to, and one of the
   three photos is a 4:3 crop, so without this the row rendered ~130px
   taller than the 16:9 photos and left empty space under them.
   Locking every slide to one ratio and cropping with object-fit
   removes that gap. */

/* .elementor-image-gallery is the fixed-size "viewport" (one slide
   wide, clips everything outside it). .gallery is the "track" that
   actually holds all 3 slides side by side and gets pushed left by
   the animation below — 3 slides = 300% track width, each slide =
   100% / 3 of the track. If a rent-gallery ever has a different
   number of images, the 300% / 33.3333% / keyframe % values all need
   to change to match (100 / N %). */
.rent-gallery .elementor-image-gallery {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

.rent-gallery .gallery {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: 300% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  animation: rent-gallery-autoscroll 18s ease-in-out infinite alternate !important;
}

/* Pause on hover/focus so a visitor can actually look at a slide or
   click into the lightbox without it sliding away underneath them. */
.rent-gallery .elementor-image-gallery:hover .gallery {
  animation-play-state: paused !important;
}

@keyframes rent-gallery-autoscroll {
  0%,   28%  { transform: translateX(0%); }         /* slide 1, hold */
  33%,  61%  { transform: translateX(-33.3333%); }  /* slide 2, hold */
  66%, 100%  { transform: translateX(-66.6666%); }  /* slide 3, hold */
}

@media (prefers-reduced-motion: reduce) {
  .rent-gallery .gallery {
    animation: none !important;
    transform: translateX(0%) !important;
  }
}

.rent-gallery .gallery-item {
  flex: 0 0 33.3333% !important;
  width: 33.3333% !important;
  max-width: 33.3333% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.rent-gallery .gallery-icon {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.rent-gallery .gallery-icon a,
.rent-gallery .gallery-icon img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  margin: 0 !important;
  padding: 0 !important;
}

.rent-gallery .gallery-caption,
.rent-gallery figcaption.wp-caption-text {
  display: none !important;
}

/* =============================================
   MOBILE — TIGHTER SECTION SPACING
   Reduces vertical padding on the section wrappers for mobile only,
   so sections sit closer together. Same selectors/specificity as the
   per-section mobile rules above; pasted last so it wins the cascade.
   ADD to bottom of stylesheet.
   ============================================= */
@media (max-width: 768px) {
  .cards-section { padding: 24px 16px !important; }
  .tiers-section { padding: 32px 16px !important; }
  .dark-cards-section { padding: 32px 16px !important; }
  .hub-section { padding: 32px 16px !important; }
  .stats-section { padding: 40px 16px !important; }
  .editorial { padding: 32px 16px !important; }
  .steps-section { padding: 32px 16px !important; }
  .cta-banner { padding: 32px 16px !important; }
  .mission-strip { padding: 24px 16px !important; }
  .quote-block { padding: 32px 24px !important; }
  .logos-section { padding: 32px 16px !important; }
  .package-section { padding: 32px 16px !important; }
  .point-cards-section { padding: 32px 16px !important; }
}

@media (max-width: 1024px) {
  /* Link hit area shrinks to its text; the rest of the row is the toggle */
  .site-navigation-dropdown .menu-item-has-children > a {
    display: inline-block !important;
  }

  .site-navigation-dropdown .menu-item-has-children {
    position: relative !important;
    cursor: pointer !important;
  }

  /* Decorative chevron, right-aligned at every level */
  .site-navigation-dropdown .menu-item-has-children::after {
    content: '';
    position: absolute;
    top: 28px;
    right: 20px;
    width: 8px;
    height: 8px;
    border-right: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    pointer-events: none;
  }

  .site-navigation-dropdown .menu-item-has-children.elementor-active::after {
    transform: rotate(225deg);
  }
}
@media (max-width: 1024px) {
  .site-navigation-dropdown .sub-menu > li > a {
    padding-left: 44px !important;
  }
  .site-navigation-dropdown .sub-menu .sub-menu > li > a {
    padding-left: 68px !important;
  }
	  .site-navigation-dropdown .sub-menu .sub-menu .sub-menu > li > a {
    padding-left: 92px !important;
  }
}
@media (max-width: 1024px) {
  .site-navigation-dropdown ul.menu {
    max-height: calc(100vh - 120px) !important;
    max-height: calc(100dvh - 120px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }
}
.content-card .elementor-widget-button {
  padding: 0 28px 24px !important;
  margin-top: 10px !important;
}
@media (max-width: 768px) {
  .card-grid > .elementor-container {
    flex-direction: column !important;
  }
  .card-grid > .elementor-container > .elementor-column.point-card {
    width: 100% !important;
    flex: 0 0 100% !important;
    padding: 0 !important;
    margin: 0 0 20px 0 !important;
  }
  .card-grid > .elementor-container > .elementor-column.point-card:last-child {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  body .tiers-section .elementor-inner-section .elementor-column.tier-card,
  body .tiers-section .elementor-inner-section .elementor-column.tier-card:first-child,
  body .tiers-section .elementor-inner-section .elementor-column.tier-card:last-child {
    width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 0 20px 0 !important;
  }
}
@media (max-width: 768px) {
  .space-card-spec .elementor-column > .elementor-widget-wrap {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    --widgets-spacing: 0px !important;
  }
  .space-card-spec .elementor-widget:not(:last-child) {
    margin-bottom: 0 !important;
  }
}
.content-card .card-tag {
  margin-bottom: 12px !important;
}
.content-card .card-tag p {
  margin-bottom: 0 !important;
}

/* =============================================
   HEADER MENU ON LAPTOP SCREENS (added 2026-09-29)
   The theme shows the full menu from 993px wide and the hamburger below that.
   At the normal 18px size the eight menu items wrap onto two rows on screens
   narrower than 1440px, so we step the menu text down on those screens to keep
   it on one row.
   ============================================= */
@media (min-width: 993px) and (max-width: 1099px) {
  .site-header .site-navigation .menu > li > a {
    font-size: 12px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
    letter-spacing: 0 !important;
  }
  .site-header .site-navigation > ul { gap: 2px !important; }
}
@media (min-width: 1100px) and (max-width: 1199px) {
  .site-header .site-navigation .menu > li > a {
    font-size: 13px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
    letter-spacing: 0 !important;
  }
  .site-header .site-navigation > ul { gap: 2px !important; }
}
@media (min-width: 1200px) and (max-width: 1439px) {
  .site-header .site-navigation .menu > li > a {
    font-size: 15px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .site-header .site-navigation > ul { gap: 4px !important; }
}

/* =============================================
   PILLAR CARDS ON TABLETS (added 2026-09-29)
   On screens up to 1024px the three pillar cards in the "Dance for systems change"
   section sat against the left side, since each card has a 400px maximum width.
   We centre the cards so they line up under the section heading.
   ============================================= */
@media (max-width: 1024px) {
  .card-grid--dark > .elementor-container {
    flex-wrap: wrap !important;
    justify-content: center !important;
  }
  body .elementor-section.card-grid--dark > .elementor-container > .elementor-column.g-card {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* HEADER SIZE: thinner header on all screens. Logo sits the same distance from top and bottom; hamburger centred on phones and tablets. */
.site-header{padding-top:0 !important;padding-bottom:0 !important;}
.site-header .header-inner{height:72px !important;min-height:0 !important;align-items:center !important;}
.site-header .site-branding,.site-header .site-logo{display:flex !important;align-items:center !important;margin:0 !important;padding:0 !important;}
.site-header .site-logo .custom-logo-link{display:flex !important;align-items:center !important;line-height:0 !important;height:auto !important;padding:0 !important;}
.site-header .site-logo img{display:block !important;height:44px !important;width:auto !important;max-width:none !important;}
.site-header .site-navigation{align-self:center !important;}
@media (max-width:992px){.site-header .header-inner{height:60px !important;}.site-header .site-logo img{height:36px !important;}.site-header .site-navigation-toggle-holder{padding-top:0 !important;padding-bottom:0 !important;display:flex !important;align-items:center !important;}}
