/* Local base — Reg Helping homepage clone */
:root {
  /* ---- Exact Site Theme Palette ------------------------------------------- */
  --color-bg: #FFFFFF;
  /* Primary Background */
  --color-bg-alt: #F3F6FA;
  /* Alt Section Background, Header & Footer BG */
  --color-card-bg: #F3F6FA;
  /* Card Fills & Containers */
  --color-primary: #0A2540;
  /* Buttons & Icons Only */
  --color-primary-dark: #14345C;
  /* Button Hover State */
  --color-heading: #1F1B14;
  /* Headings (h1 - h6) */
  --color-body: #5A5347;
  /* Body Copy / Paragraphs */
  --color-link-nav: #4A3818;
  /* Links, Nav, Buttons text */
  --color-muted: #8A7F6B;
  /* Muted Text / Copyright */
  --color-border: #D0D8E4;
  /* Borders & Dividers */

  /* Legacy variables for easy restoration */
  --color-bg-dark-legacy: #1d150b;
  --color-bg-dark-alt-legacy: #2b1d10;

  /* REG theme mapping */
  --reg-ink: #1F1B14;
  --reg-ink-soft: #5A5347;
  --reg-parchment: #F3F6FA;
  --reg-panel: #F3F6FA;
  --reg-deep: #F3F6FA;
  --reg-deep-soft: #F3F6FA;
  --reg-gold: #1B3A5C;
  --reg-gold-bright: #0A2540;
  --reg-gold-deep: #14345C;
  --reg-border: #D0D8E4;

  /* Type — used by body/headings and every var(--reg-font-*) reference */
  --reg-font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --reg-font-body: "Figtree", "Segoe UI", system-ui, sans-serif;

  /* Gutenberg preset mappings */
  --wp--preset--color--theme-0: #1F1B14;
  --wp--preset--color--theme-1: #0A2540;
  --wp--preset--color--theme-2: #F3F6FA;
  --wp--preset--color--theme-3: #5A5347;
  --wp--preset--color--theme-4: #FFFFFF;
  --wp--preset--color--theme-5: #5A5347;
  --wp--preset--color--theme-6: #14345C;
  --wp--preset--color--theme-7: #D0D8E4;
  --wp--preset--color--theme-8: #F3F6FA;
  --wp--preset--color--theme-9: #F3F6FA;
  --wp--preset--color--theme-10: #8A7F6B;
  --reg-accent: #0A2540;

  --guten-screen-xs-max: 767px;
  --guten-screen-sm-min: 768px;
  --guten-screen-sm-max: 1024px;
  --guten-screen-md-min: 1025px;
}

body {
  --gutenverse-font-family-EMO65w: var(--reg-font-display);
  --gutenverse-font-size-EMO65w: 68px;
  --gutenverse-font-weight-EMO65w: 600;
  --gutenverse-font-lineHeight-EMO65w: 1.12em;
  --gutenverse-font-family-xLTRjk: var(--reg-font-body);
  --gutenverse-font-size-xLTRjk: 16px;
  --gutenverse-font-weight-xLTRjk: 600;
  --gutenverse-font-transform-xLTRjk: none;
  --gutenverse-font-lineHeight-xLTRjk: 1.1em;
  --gutenverse-font-spacing-xLTRjk: 0;
  --gutenverse-font-family-0LvC97: var(--reg-font-body);
  --gutenverse-font-size-0LvC97: 17px;
  --gutenverse-font-weight-0LvC97: 400;
  --gutenverse-font-lineHeight-0LvC97: 1.68em;
  --gutenverse-font-family-Ng0naI: var(--reg-font-body);
  --gutenverse-font-size-Ng0naI: 17px;
  --gutenverse-font-weight-Ng0naI: 600;
  --gutenverse-font-lineHeight-Ng0naI: 1.5em;
  margin: 0;
  padding: 0;
  font-family: var(--reg-font-body);
  color: var(--reg-ink);
  background: var(--reg-parchment);
  -webkit-font-smoothing: antialiased;
}

/* All headings use the display face */
h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-gutenverse-heading,
.guten-heading,
.feature-list-title,
.icon-box .title,
.reg-testimonials__name {
  font-family: var(--reg-font-display) !important;
}

/* Golden section labels */
.guten-mv4Qno,
.guten-MUJHQf,
.guten-qxBc60,
.guten-9RqUGb,
.guten-Oorja1,
.guten-Q8FXOP,
.guten-tfHcca,
.guten-iiHfhk,
.guten-lOqQeW,
.guten-fZ54dn,
.guten-RM7dzT,
.guten-cUVZlm,
.guten-SX1Hqt,
h2.guten-2nQyDc,
.reg-testimonials__label,
.reg-moments__label {
  font-family: var(--reg-font-body) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.005em !important;
  color: var(--reg-laurel) !important;
}

h2.wp-block-gutenverse-heading.guten-2nQyDc {
  font-family: var(--reg-font-body) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.005em !important;
  color: var(--reg-laurel) !important;
}

/* Main headings (About, Services, Process, FAQ, etc.) */
h1.guten-Ituqbp,
h1.guten-JVoMmk,
h1.guten-EeauTx,
h2.wp-block-gutenverse-heading,
.guten-QmPQ6d,
.guten-jo3Mhj,
.guten-AhcrSm,
.guten-RAi2vs,
.guten-OPzOdF,
.guten-6Z9XaK,
.guten-m6aszS,
.guten-GzFXLc,
.reg-moments__title {
  font-size: 52px !important;
  line-height: 1.3 !important;
  font-family: var(--reg-font-display) !important;
}

@media only screen and (max-width: 1024px) {

  h1.guten-Ituqbp,
  h1.guten-JVoMmk,
  h1.guten-EeauTx,
  h2.wp-block-gutenverse-heading,
  .guten-QmPQ6d,
  .guten-jo3Mhj,
  .guten-AhcrSm,
  .guten-RAi2vs,
  .guten-OPzOdF,
  .guten-6Z9XaK,
  .guten-m6aszS,
  .guten-GzFXLc,
  .reg-moments__title {
    font-size: 40px !important;
  }
}

@media only screen and (max-width: 767px) {

  h1.guten-Ituqbp,
  h1.guten-JVoMmk,
  h1.guten-EeauTx,
  h2.wp-block-gutenverse-heading,
  .guten-QmPQ6d,
  .guten-jo3Mhj,
  .guten-AhcrSm,
  .guten-RAi2vs,
  .guten-OPzOdF,
  .guten-6Z9XaK,
  .guten-m6aszS,
  .guten-GzFXLc,
  .reg-moments__title {
    font-size: 32px !important;
  }
}

/* Main sub-headings (service cards + process steps) */
.icon-box .title,
.feature-list-title,
.guten-icon-box .title,
.guten-Pzf51E,
.guten-12uyd3 {
  font-size: 24px !important;
  line-height: 1.3 !important;
  font-family: var(--reg-font-display) !important;
}

.guten-fun-fact .title {
  font-family: var(--reg-font-body) !important;
  font-size: 16px !important;
}

.guten-fun-fact .number,
.guten-fun-fact .super {
  font-family: var(--reg-font-display) !important;
}

/* Display stats (About Us): missing Gutenverse tokens were collapsing
   the numbers to inherited body size. Use the site heading scale. */
.guten-fun-fact .fun-fact-inner .content .number-wrapper {
  font-family: var(--reg-font-display) !important;
  font-size: 52px !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
  padding-top: 0.12em;
}

.guten-fun-fact .fun-fact-inner .content .number-wrapper .number {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

.guten-fun-fact .fun-fact-inner .content .number-wrapper .super {
  font-size: 0.55em !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  top: 0 !important;
  vertical-align: super;
}

@media only screen and (max-width: 1024px) {
  .guten-fun-fact .fun-fact-inner .content .number-wrapper {
    font-size: 40px !important;
  }
}

@media only screen and (max-width: 767px) {
  .guten-fun-fact .fun-fact-inner .content .number-wrapper {
    font-size: 32px !important;
  }
}

.guten-icon-box .icon i.fas,
.guten-icon-box .icon i.far {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}

/* Outcome tiles (EU Settlement, Employment Rights, etc.) */
.guten-21CqB1 .icon-box-description,
.guten-OkrBqU .icon-box-description {
  font-family: var(--reg-font-display) !important;
  font-size: 24px !important;
  line-height: 1.3 !important;
  font-weight: 500 !important;
  color: #fff !important;
}

@media only screen and (max-width: 1024px) {
  body {
    --gutenverse-font-size-EMO65w: 50px;
  }
}

@media only screen and (max-width: 767px) {
  body {
    --gutenverse-font-size-EMO65w: 38px;
    --gutenverse-font-size-0LvC97: 16px;
  }
}

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

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

a {
  text-decoration: none;
  color: inherit;
}

.wp-site-blocks>* {
  margin-block-start: 0;
  margin-block-end: 0;
}

.hide-desktop.hide-tablet.hide-mobile {
  display: none !important;
}

/* Footer sticky fix (from WP additional CSS) */
.section-guten-MHZ0lQ,
.guten-section-wrapper.sticky-bottom,
.guten-MHZ0lQ {
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
  inset: auto !important;
  transform: none !important;
  z-index: 1 !important;
}

.section-guten-MHZ0lQ .guten-SlXmpp {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  align-items: center;
  margin-top: 4px;
}

.section-guten-MHZ0lQ .guten-SlXmpp::before {
  content: "Connect with us";
  font-size: var(--gutenverse-font-size-0LvC97);
  color: var(--wp--preset--color--theme-5);
  font-family: var(--gutenverse-font-family-0LvC97);
  margin-right: 10px;
}

.section-guten-MHZ0lQ .guten-SlXmpp .guten-social-icon a,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .guten-social-icon a,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .facebook a {
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 0;
  background: transparent !important;
  border: 1px solid var(--reg-gold-bright, #0A2540) !important;
  color: var(--reg-gold-bright, #0A2540) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.section-guten-MHZ0lQ .guten-SlXmpp .guten-social-icon a i,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .guten-social-icon a i {
  color: inherit !important;
  font-size: 16px;
}

.section-guten-MHZ0lQ .guten-SlXmpp .guten-social-icon a:hover,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .guten-social-icon a:hover,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .facebook a:hover {
  background: var(--reg-gold-bright, #0A2540) !important;
  border-color: var(--reg-gold-bright, #0A2540) !important;
  color: var(--reg-deep, #F3F6FA) !important;
  transform: none;
}

.section-guten-MHZ0lQ .guten-SlXmpp .guten-social-icon a:hover i,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .guten-social-icon a:hover i {
  color: inherit !important;
}

/* Local nav open state helper */
.gutenverse-menu-wrapper.active {
  left: 0 !important;
}

body.nav-open {
  overflow: hidden;
}

/* Sticky site header — fixed on scroll (negative hero overlap breaks pure sticky) */
.section-wrapper[data-id="WtRO6p"] {
  position: relative;
  z-index: 1000;
}

#firmly-header {
  transition: background 0.25s ease, box-shadow 0.25s ease;
}

/* Accordion — override Gutenverse height:0 so answers show */
.accordion-item:not(.active) .accordion-body {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
}

.accordion-item.active .accordion-body {
  display: block !important;
  height: auto !important;
  overflow: visible !important;
}

.accordion-item:not(.active) .accordion-icon-open {
  display: inline-flex;
}

.accordion-item:not(.active) .accordion-icon-closed {
  display: none;
}

.accordion-item.active .accordion-icon-open {
  display: none;
}

.accordion-item.active .accordion-icon-closed {
  display: inline-flex;
}

.accordion-heading {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

/* FAQ section typography */
#questions .guten-accordions .accordion-heading {
  padding: 20px 24px;
  border-bottom: none;
  font-weight: 500 !important;
  background-color: transparent !important;
}

#questions .guten-accordions .accordion-item.active .accordion-heading {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  background-color: #0A2540 !important;
}

#questions .guten-accordions .accordion-text {
  font-family: var(--reg-font-display) !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  color: var(--reg-ink, #1F1B14) !important;
}

#questions .guten-accordions .accordion-item.active .accordion-text {
  color: #FFFFFF !important;
}

#questions .guten-accordions .accordion-content {
  padding: 16px 24px 24px;
}

#questions .guten-accordions .accordion-content p {
  margin: 0;
  font-family: var(--reg-font-body) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  color: var(--reg-ink) !important;
}

#questions .guten-accordions .accordion-item {
  border: 1px solid var(--reg-border);
  border-radius: 8px;
  margin-bottom: 12px;
  overflow: hidden;
}

#questions .guten-accordions .accordion-item:last-child {
  margin-bottom: 0;
}

#questions .guten-RAi2vs {
  text-align: center;
  margin-bottom: 40px;
}

#questions .guten-9RqUGb {
  text-align: center;
  display: block;
  width: 100%;
}

/* FAQ bottom CTA — "Have More Questions?" / "Contact Us for more." */
#questions .guten-Nu4YNS,
#questions .guten-CBx48A {
  font-family: var(--reg-font-body) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  text-align: center;
  color: var(--reg-ink) !important;
  margin: 0;
}

#questions .guten-Nu4YNS {
  margin-top: 32px;
  margin-bottom: 8px;
}

#questions .guten-CBx48A a {
  color: var(--reg-gold) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Process bottom CTA — "Still Have Questions?" / "Check out our FAQ..." */
.guten-rfh2KL,
.guten-YEAjhb {
  font-family: var(--reg-font-body) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--reg-ink) !important;
  margin: 0;
}

.guten-rfh2KL {
  margin-top: 24px;
  margin-bottom: 8px;
}

.guten-YEAjhb a {
  color: var(--reg-gold) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Testimonials — card height forced to equal image height */
.reg-testimonials {
  width: 100%;
  padding: clamp(40px, 6vw, 72px) clamp(16px, 4vw, 40px);
  background: #fff;
}

.reg-testimonials__inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 24px;
  align-items: start;
}

.reg-testimonials__media {
  width: 420px;
  height: 420px;
  border-radius: 0;
  overflow: hidden;
  background: var(--reg-panel);
  isolation: isolate;
}

.reg-testimonials__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 0;
}

/* height:0 + min-height:100% = cannot grow taller than image column */
.reg-testimonials__card {
  position: relative;
  height: 420px !important;
  max-height: 420px !important;
  background: var(--color-bg-alt, var(--reg-parchment, #F3F6FA));
  border: 1px solid var(--reg-border, #D0D8E4);
  border-radius: 8px;
  padding: 28px 32px 56px;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
}

.reg-testimonials__label {
  margin: 0 0 12px;
  flex-shrink: 0;
}

.reg-testimonials__slides {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.reg-testimonials .slide {
  display: none;
}

.reg-testimonials .slide.active {
  display: block;
}

.reg-testimonials[data-enhanced] .slide {
  display: block;
}

.reg-testimonials__quote {
  margin: 0 0 24px;
  font-family: var(--reg-font-body);
  font-size: 20px !important;
  font-weight: 400;
  line-height: 1.5;
  color: #000000 !important;
}

.reg-testimonials__name {
  margin: 0;
  font-family: var(--reg-font-display);
  font-size: 18px !important;
  font-weight: 600;
  color: #000000 !important;
}

.reg-testimonials__nav {
  position: absolute;
  right: 24px;
  bottom: 20px;
  display: flex;
  gap: 10px;
}

.reg-testimonials__nav button {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid #c8c4c0;
  background: transparent;
  color: #5a5652;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.reg-testimonials__nav button:hover {
  border-color: var(--reg-gold-bright, #0A2540);
  color: var(--reg-gold);
  background: #fff;
}

/* Enhanced testimonials carousel (shared section) */
.local-testimonials[data-enhanced] .reg-testimonials__slides {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

.local-testimonials[data-enhanced] .reg-testimonials__viewport {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  overflow: hidden;
}

.local-testimonials[data-enhanced] .reg-testimonials__track {
  display: flex;
  align-items: flex-start;
  width: 100%;
  will-change: transform;
}

.local-testimonials[data-enhanced] .slide {
  display: block !important;
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.local-testimonials[data-enhanced] .slide .reg-testimonials__quote,
.local-testimonials[data-enhanced] .slide .reg-testimonials__name {
  opacity: 1;
  transform: none;
}

.local-testimonials[data-enhanced] .slide:not(.is-active) .reg-testimonials__quote,
.local-testimonials[data-enhanced] .slide:not(.is-active) .reg-testimonials__name {
  opacity: 0;
}

.local-testimonials[data-enhanced] .slide.is-active .reg-testimonials__quote {
  animation: reg-testimonial-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.1s;
}

.local-testimonials[data-enhanced] .slide.is-active .reg-testimonials__name {
  animation: reg-testimonial-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.22s;
}

@keyframes reg-testimonial-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.local-testimonials[data-enhanced] .reg-testimonials__indicators {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.local-testimonials[data-enhanced] .reg-testimonials__dot {
  width: 28px;
  height: 4px;
  padding: 0;
  border: none;
  border-radius: 2px;
  background: #d8d4cf;
  cursor: pointer;
  transition: background 0.3s ease, width 0.3s ease;
}

.local-testimonials[data-enhanced] .reg-testimonials__dot.is-active {
  width: 40px;
  background: var(--reg-gold-bright, #0A2540);
}

.local-testimonials[data-enhanced] .reg-testimonials__dot:hover {
  background: #b8b4af;
}

.local-testimonials[data-enhanced] .reg-testimonials__dot.is-active:hover {
  background: var(--reg-gold-bright, #0A2540);
}

.local-testimonials[data-enhanced] .reg-testimonials__progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: rgba(0, 0, 0, 0.06);
  overflow: hidden;
  border-radius: 0 0 8px 8px;
}

.local-testimonials[data-enhanced] .reg-testimonials__progress-bar {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--reg-gold-bright, #0A2540);
  transform: scaleX(0);
  transform-origin: left center;
}

@media (prefers-reduced-motion: reduce) {
  .local-testimonials[data-enhanced] .reg-testimonials__track {
    transition: none !important;
  }

  .local-testimonials[data-enhanced] .slide.is-active .reg-testimonials__quote,
  .local-testimonials[data-enhanced] .slide.is-active .reg-testimonials__name {
    animation: none;
  }

  .local-testimonials[data-enhanced] .slide .reg-testimonials__quote,
  .local-testimonials[data-enhanced] .slide .reg-testimonials__name {
    opacity: 1;
    transform: none;
  }

  .local-testimonials[data-enhanced] .reg-testimonials__progress-bar {
    transition: none !important;
  }
}

@media (max-width: 900px) {
  .reg-testimonials__inner {
    grid-template-columns: 1fr;
  }

  .reg-testimonials__media {
    width: 100%;
    max-width: 420px;
    height: auto;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
  }

  .reg-testimonials__card {
    height: auto !important;
    max-height: none !important;
    min-height: 280px;
  }

  .reg-testimonials__quote {
    font-size: 20px !important;
  }
}

/* Mobile carousel — fade mode (class toggled by JS at <=767px only) */
.local-testimonials.reg-testimonials--mobile[data-enhanced] .reg-testimonials__slides {
  flex: none;
  min-height: auto;
  gap: 12px;
  overflow: visible;
}

.local-testimonials.reg-testimonials--mobile[data-enhanced] .reg-testimonials__viewport {
  flex: none;
  width: 100%;
  min-height: auto;
  height: auto;
  overflow: visible;
}

.local-testimonials.reg-testimonials--mobile[data-enhanced] .reg-testimonials__track {
  display: block;
  width: 100% !important;
  transform: none !important;
  transition: none !important;
}

.local-testimonials.reg-testimonials--mobile[data-enhanced] .slide {
  flex: none !important;
  width: 100% !important;
  max-width: 100% !important;
  display: none !important;
  padding: 0;
  box-sizing: border-box;
}

.local-testimonials.reg-testimonials--mobile[data-enhanced] .slide.is-active {
  display: block !important;
}

.local-testimonials.reg-testimonials--mobile[data-enhanced] .slide:not(.is-active) .reg-testimonials__quote,
.local-testimonials.reg-testimonials--mobile[data-enhanced] .slide:not(.is-active) .reg-testimonials__name {
  opacity: 0;
  visibility: hidden;
}

.local-testimonials.reg-testimonials--mobile .reg-testimonials__card {
  height: auto !important;
  max-height: none !important;
  overflow: visible;
}

.local-testimonials.reg-testimonials--mobile .reg-testimonials__slides {
  flex: none;
  min-height: auto;
  overflow: visible;
}

/* Desktop / tablet carousel — horizontal slide (768px+) */
@media (min-width: 768px) {
  .local-testimonials[data-enhanced]:not(.reg-testimonials--mobile) .reg-testimonials__slides {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  .local-testimonials[data-enhanced]:not(.reg-testimonials--mobile) .reg-testimonials__viewport {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  .local-testimonials[data-enhanced]:not(.reg-testimonials--mobile) .reg-testimonials__track {
    display: flex !important;
    align-items: flex-start;
  }

  .local-testimonials[data-enhanced]:not(.reg-testimonials--mobile) .slide {
    display: block !important;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }

  .local-testimonials[data-enhanced]:not(.reg-testimonials--mobile) .slide:not(.is-active) .reg-testimonials__quote,
  .local-testimonials[data-enhanced]:not(.reg-testimonials--mobile) .slide:not(.is-active) .reg-testimonials__name {
    visibility: visible;
  }

  .local-testimonials[data-enhanced]:not(.reg-testimonials--mobile) .reg-testimonials__card {
    overflow: hidden;
  }

  .local-testimonials[data-enhanced]:not(.reg-testimonials--mobile) .reg-testimonials__slides {
    overflow: hidden;
  }
}

@media (min-width: 901px) {
  .reg-testimonials__inner {
    grid-template-columns: 420px 1fr;
    align-items: start;
  }

  .reg-testimonials__media {
    width: 420px;
    height: 420px;
    max-width: none;
    max-height: none;
    aspect-ratio: auto;
    margin: 0;
  }

  .reg-testimonials__card {
    height: 420px !important;
    max-height: 420px !important;
    min-height: 420px !important;
  }
}

@media (max-width: 767px) {
  .reg-testimonials {
    padding: 48px 16px;
    overflow-x: clip;
  }

  .reg-testimonials__inner {
    gap: 20px;
  }

  .reg-testimonials__media {
    width: 100%;
    max-width: none;
    aspect-ratio: 4 / 3;
    max-height: 260px;
    margin: 0;
  }

  .reg-testimonials__media img {
    object-fit: cover;
    object-position: center;
  }

  .reg-testimonials__card {
    min-height: 0;
    padding: 20px 16px 36px;
  }

  .reg-testimonials__label {
    margin-bottom: 14px;
  }

  .reg-testimonials__quote {
    font-size: 17px !important;
    line-height: 1.55 !important;
    margin-bottom: 14px;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .reg-testimonials__name {
    font-size: 16px !important;
  }

  .local-testimonials.reg-testimonials--mobile[data-enhanced] .reg-testimonials__indicators {
    justify-content: flex-start;
    gap: 6px;
    flex-wrap: wrap;
  }

  .local-testimonials.reg-testimonials--mobile[data-enhanced] .reg-testimonials__dot {
    width: 24px;
    height: 4px;
  }

  .local-testimonials.reg-testimonials--mobile[data-enhanced] .reg-testimonials__dot.is-active {
    width: 32px;
  }

  .local-testimonials.reg-testimonials--mobile[data-enhanced] .reg-testimonials__progress {
    border-radius: 0;
  }
}

/* Inner-page banners — shared 600px height and image (all pages except home) */
body:not(.home-redesign) .about-classic-hero,
body:not(.home-redesign) .guten-element.guten-4dZ7c2,
body:not(.home-redesign) .guten-element.guten-HVsEWS {
  min-height: 600px !important;
  box-sizing: border-box;
}

body:not(.home-redesign) .about-hero-bg-media::before,
body:not(.home-redesign) .guten-4dZ7c2:not(.background-animated),
body:not(.home-redesign) .guten-4dZ7c2.background-animated>.guten-background-animated .animated-layer,
body:not(.home-redesign) .guten-HVsEWS:not(.background-animated),
body:not(.home-redesign) .guten-HVsEWS.background-animated>.guten-background-animated .animated-layer {
  background-color: var(--color-bg-alt, #F3F6FA) !important;
  background-image: url('/assets/images/banners/banner.webp') !important;
  background-size: cover !important;
  background-position: center 30% !important;
  background-repeat: no-repeat !important;
}

@media (max-width: 991px) {

  body:not(.home-redesign) .about-classic-hero,
  body:not(.home-redesign) .guten-element.guten-4dZ7c2,
  body:not(.home-redesign) .guten-element.guten-HVsEWS {
    min-height: 600px !important;
  }
}

@media (max-width: 640px) {

  body:not(.home-redesign) .about-classic-hero,
  body:not(.home-redesign) .guten-element.guten-4dZ7c2,
  body:not(.home-redesign) .guten-element.guten-HVsEWS {
    min-height: 600px !important;
  }
}

body:not(.home-redesign) .guten-4dZ7c2>.guten-background-overlay,
body:not(.home-redesign) .guten-HVsEWS>.guten-background-overlay,
body.about-redesign .about-hero-dark-overlay {
  display: none !important;
  background: none !important;
  opacity: 0 !important;
}

body:not(.home-redesign) #firmly-header,
body:not(.home-redesign) .guten-element.guten-WtRO6p {
  background: #0A2540 !important;
  background-color: #0A2540 !important;
  background-image: none !important;
  box-shadow: none !important;
  border: none !important;
}

body:not(.home-redesign) .guten-element.guten-4dZ7c2,
body:not(.home-redesign) .guten-element.guten-HVsEWS {
  position: relative;
  margin-top: -111.3px !important;
  padding-top: 260px !important;
  padding-bottom: 130px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  overflow: hidden !important;
  box-sizing: border-box;
}

body:not(.home-redesign) .guten-element.guten-HVsEWS {
  padding-bottom: 120px !important;
}

@media (max-width: 991px) {

  body:not(.home-redesign) .guten-element.guten-4dZ7c2,
  body:not(.home-redesign) .guten-element.guten-HVsEWS {
    margin-top: -91.3px !important;
    padding-top: 200px !important;
    padding-bottom: 100px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  body:not(.home-redesign) .guten-element.guten-HVsEWS {
    padding-bottom: 100px !important;
  }
}

@media (max-width: 640px) {

  body:not(.home-redesign) .guten-element.guten-4dZ7c2,
  body:not(.home-redesign) .guten-element.guten-HVsEWS {
    padding-top: 180px !important;
    padding-bottom: 72px !important;
  }

  body:not(.home-redesign) .guten-element.guten-HVsEWS {
    padding-bottom: 80px !important;
  }
}

/* Inner-page hero layout — matches about-us.php (all pages except home) */
body:not(.home-redesign) .about-hero-content-wrapper {
  position: relative;
  z-index: 4;
  max-width: 1180px;
  margin: 0 auto;
}

/* Legacy stacked classic-hero only — not used by full-bleed .inner-split-hero */
body:not(.home-redesign) .about-classic-hero .inner-hero-layout {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 48px;
}

body:not(.home-redesign) .about-hero-header-box {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

body:not(.home-redesign) .about-hero-main-title {
  font-family: var(--reg-font-display, 'Fraunces', Georgia, serif);
  font-size: clamp(2.3rem, 4vw, 3.4rem);
  font-weight: 700 !important;
  line-height: 1.15;
  color: #ffffff !important;
  margin: 0;
  letter-spacing: -0.01em;
  text-align: left;
  width: auto !important;
  max-width: 100%;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45) !important;
}

body:not(.home-redesign) .about-classic-hero .inner-hero-gold-separator {
  width: 2px;
  height: 140px;
  background: linear-gradient(180deg, rgba(10, 37, 64, 0.1) 0%, #0A2540 50%, rgba(10, 37, 64, 0.1) 100%);
  border-radius: 1px;
  flex-shrink: 0;
  justify-self: center;
  align-self: center;
}

body:not(.home-redesign) .about-hero-body-box {
  display: flex;
  align-items: center;
}

body:not(.home-redesign) .about-hero-lead-text {
  font-size: 1.1rem;
  line-height: 1.75;
  color: #ffffff !important;
  margin: 0;
  font-weight: 500 !important;
  text-align: left;
  width: auto !important;
  max-width: 100%;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45) !important;
}

body:not(.home-redesign) .inner-hero-cards-wrap {
  position: relative;
  z-index: 4;
  max-width: 1240px;
  margin: 40px auto 0;
  width: 100%;
}

@media (max-width: 991px) {
  body:not(.home-redesign) .about-classic-hero .inner-hero-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body:not(.home-redesign) .about-classic-hero .inner-hero-gold-separator {
    display: none;
  }

  body:not(.home-redesign) .about-classic-hero .about-hero-main-title,
  body:not(.home-redesign) .about-classic-hero .about-hero-lead-text {
    text-align: center;
  }

  body:not(.home-redesign) .about-classic-hero .about-hero-header-box {
    align-items: center;
  }
}

.back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 46px;
  height: 46px;
  border-radius: 8px;
  background: var(--reg-gold-deep);
  color: #fff;
  border: none;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  z-index: 50;
  font-size: 18px;
}

.back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 767px) {

  .section-guten-MHZ0lQ,
  .guten-section-wrapper.sticky-bottom {
    position: relative !important;
  }
}

/* Theory of Change — intro cards */
.reg-toc-intro {
  --gold: var(--reg-gold);
  --ink: #000000;
  --ink-soft: #3a3a3a;
  --line: #000000;
  font-family: var(--reg-font-body);
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(12px, 2vw, 20px) clamp(16px, 3.5vw, 32px);
  background: #ffffff;
  overflow-wrap: anywhere;
  word-wrap: break-word;
  box-sizing: border-box;
}

.reg-toc-intro *,
.reg-toc-intro *::before,
.reg-toc-intro *::after {
  box-sizing: border-box;
}

.reg-toc-intro__title {
  margin: 0 0 clamp(40px, 5vw, 56px);
  text-align: center;
}

.reg-toc-intro__title a {
  display: inline;
  font-family: var(--reg-font-display);
  font-size: clamp(24px, 4.2vw, 50px);
  font-weight: 700;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 3px solid var(--gold);
  padding-bottom: 6px;
  line-height: 1.3;
  transition: color 0.2s ease;
}

.reg-toc-intro__title a:hover {
  color: var(--gold);
}

.reg-toc-intro__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
  width: 100%;
}

.reg-toc-intro__card {
  min-width: 0;
  background: #ffffff;
  border: 1px solid var(--line);
  border-top: 4px solid var(--gold);
  padding: clamp(22px, 2.5vw, 28px) clamp(18px, 2vw, 24px) clamp(18px, 2vw, 24px);
  position: relative;
}

.reg-toc-intro__num {
  position: absolute;
  top: 14px;
  right: 18px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--gold);
  line-height: 1;
}

.reg-toc-intro__icon {
  width: 44px;
  height: 44px;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  flex-shrink: 0;
}

.reg-toc-intro__icon svg {
  width: 20px;
  height: 20px;
  stroke: var(--gold);
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.reg-toc-intro__card h3 {
  margin: 0 0 12px;
  font-family: var(--reg-font-display);
  font-size: clamp(15px, 1.4vw, 17px);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink);
  padding-bottom: 10px;
  border-bottom: 1px solid #e5e5e5;
  padding-right: 36px;
  line-height: 1.35;
}

.reg-toc-intro__card p {
  margin: 0;
  font-size: clamp(13.5px, 1.15vw, 14.5px);
  line-height: 1.7;
  color: var(--ink-soft);
}

@media (max-width: 991px) {
  .reg-toc-intro__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .reg-toc-intro__card:last-child {
    grid-column: 1 / -1;
  }

  .reg-toc-intro__title a {
    font-size: clamp(28px, 4.5vw, 40px);
    border-bottom-width: 2.5px;
  }
}

@media (max-width: 767px) {
  .reg-toc-intro__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .reg-toc-intro__card:last-child {
    grid-column: auto;
  }

  .reg-toc-intro__title a {
    font-size: clamp(22px, 6vw, 28px);
    border-bottom-width: 2px;
    padding-bottom: 4px;
  }

  .reg-toc-intro__card {
    padding: 24px 20px 20px;
  }

  .reg-toc-intro__icon {
    width: 40px;
    height: 40px;
    margin-bottom: 14px;
  }

  .reg-toc-intro__icon svg {
    width: 18px;
    height: 18px;
  }

  .reg-toc-intro__card h3 {
    font-size: 15px;
  }

  .reg-toc-intro__card p {
    font-size: 14px;
    line-height: 1.65;
  }
}

@media (max-width: 400px) {
  .reg-toc-intro__title a {
    font-size: 20px;
  }

  .reg-toc-intro__card {
    padding: 20px 16px 18px;
  }

  .reg-toc-intro__num {
    top: 12px;
    right: 14px;
    font-size: 11px;
  }
}

/* Theory of Change — flow grid */
.reg-flow-bleed {
  width: 100% !important;
  max-width: 100% !important;
  background: var(--reg-deep) !important;
  overflow-x: clip !important;
  box-sizing: border-box !important;
}

.reg-flow {
  --gold: var(--reg-gold);
  font-family: var(--reg-font-body) !important;
  width: 100% !important;
  max-width: 1440px !important;
  margin: 0 auto !important;
  padding: clamp(48px, 6vw, 80px) clamp(20px, 3.5vw, 36px) !important;
  background: var(--reg-deep) !important;
  overflow-wrap: anywhere !important;
  word-wrap: break-word !important;
  box-sizing: border-box !important;
}

.reg-flow-bleed *,
.reg-flow-bleed *::before,
.reg-flow-bleed *::after {
  box-sizing: border-box !important;
}

.reg-flow .reg-flow__label {
  color: var(--reg-gold) !important;
  font-family: var(--reg-font-body) !important;
  font-weight: 500 !important;
  font-size: 18px !important;
  margin: 0 0 12px !important;
  line-height: 1.2 !important;
}

.reg-flow .reg-flow__title {
  font-family: var(--reg-font-display) !important;
  font-weight: 500 !important;
  font-size: clamp(24px, 2.8vw, 34px) !important;
  color: var(--reg-ink, #1F1B14) !important;
  margin: 0 0 48px !important;
  max-width: 720px !important;
  line-height: 1.35 !important;
}

.reg-flow .reg-flow__grid {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 1px !important;
  background: rgba(20, 52, 92, 0.2) !important;
  width: 100% !important;
}

.reg-flow .reg-flow__box {
  min-width: 0 !important;
  grid-column: span 3 !important;
  background: var(--reg-deep) !important;
  padding: 32px 24px !important;
  border-top: 2px solid var(--reg-gold-bright, #0A2540) !important;
  transition: background 0.25s ease !important;
}

.reg-flow .reg-flow__box:nth-child(n + 5) {
  grid-column: span 4 !important;
}

.reg-flow .reg-flow__box:hover {
  background: rgba(20, 52, 92, 0.07) !important;
}

.reg-flow .reg-flow__num {
  font-family: var(--reg-font-display) !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--reg-gold) !important;
  margin-bottom: 18px !important;
  line-height: 1.2 !important;
}

.reg-flow .reg-flow__box h3 {
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--reg-font-display) !important;
  font-weight: 600 !important;
  font-size: 22px !important;
  color: var(--reg-ink, #1F1B14) !important;
  line-height: 1.3 !important;
}

.reg-flow .reg-flow__box h3 .sub,
.reg-flow .reg-flow__box .sub {
  display: block !important;
  font-family: var(--reg-font-body) !important;
  font-size: 12px !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  color: var(--reg-gold) !important;
  margin: 6px 0 16px 0 !important;
  padding: 0 !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
}

.reg-flow .reg-flow__box p {
  margin: 0 !important;
  font-family: var(--reg-font-body) !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: #5a534c !important;
  opacity: 1 !important;
}

@media (max-width: 1199px) {
  .reg-flow .reg-flow__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .reg-flow .reg-flow__box,
  .reg-flow .reg-flow__box:nth-child(n + 5) {
    grid-column: auto !important;
  }

  .reg-flow .reg-flow__box:last-child {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 991px) {
  .reg-flow .reg-flow__title {
    max-width: 100% !important;
    font-size: 28px !important;
  }
}

@media (max-width: 767px) {
  .reg-flow .reg-flow__grid {
    grid-template-columns: 1fr !important;
  }

  .reg-flow .reg-flow__box,
  .reg-flow .reg-flow__box:nth-child(n + 5),
  .reg-flow .reg-flow__box:last-child {
    grid-column: auto !important;
  }

  .reg-flow .reg-flow__label {
    font-size: 16px !important;
  }

  .reg-flow .reg-flow__title {
    font-size: 24px !important;
    margin-bottom: 28px !important;
  }

  .reg-flow .reg-flow__box {
    padding: 28px 22px !important;
  }

  .reg-flow .reg-flow__box h3 {
    font-size: 20px !important;
  }

  .reg-flow .reg-flow__box h3 .sub,
  .reg-flow .reg-flow__box .sub {
    margin: 5px 0 14px 0 !important;
  }
}

@media (max-width: 400px) {
  .reg-flow .reg-flow__box {
    padding: 24px 18px !important;
  }

  .reg-flow .reg-flow__label {
    font-size: 15px !important;
  }

  .reg-flow .reg-flow__title {
    font-size: 22px !important;
  }

  .reg-flow .reg-flow__box h3 {
    font-size: 19px !important;
  }
}

/* REG Fundings — lottery / project image */
.page-id-1510 .guten-mNOuyr .guten-image-wrapper img {
  width: 100%;
  border-radius: 0;
  object-fit: cover;
  max-height: 420px;
}

.page-id-1510 .guten-mNOuyr .guten-container {
  align-items: center;
}

/* Contact card stacked phone/email links */
.page-id-69 .guten-icon-box .icon-box-description a {
  color: inherit;
  text-decoration: none;
}

.page-id-69 .guten-icon-box .icon-box-description a:hover {
  color: var(--reg-accent);
}

/* Community moments carousel */
.reg-moments {
  --moments-gap: 20px;
  --moments-card-w: calc((153% - (var(--moments-gap) * 4)) / 4.55);
  width: 100%;
  background: #F7F5F3;
  color: #1D150B;
  padding: 120px 0;
  overflow-x: clip;
  box-sizing: border-box;
}

.reg-moments--about {
  border-bottom: 1px solid rgba(10, 37, 64, 0.08);
}

.reg-moments *,
.reg-moments *::before,
.reg-moments *::after {
  box-sizing: border-box;
}

.reg-moments__inner {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(16px, 3.5vw, 40px);
}

.reg-moments__header {
  max-width: 780px;
  margin: 0 auto 48px;
  text-align: center;
}

.reg-moments__label {
  margin: 0 0 12px;
}

.reg-moments__title {
  margin: 0 0 16px;
  color: #1D150B !important;
  font-weight: 500;
}

.reg-moments__sub {
  margin: 0 auto;
  max-width: 620px;
  font-family: var(--reg-font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: #1D150B;
}

.reg-moments__carousel {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
}

.reg-moments__carousel:focus {
  outline: none;
}

.reg-moments__carousel:focus-visible {
  outline: 2px solid var(--wp--preset--color--theme-1);
  outline-offset: 4px;
}

.reg-moments__viewport {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}

.reg-moments__track {
  display: flex;
  gap: var(--moments-gap);
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
  touch-action: pan-x;
}

.reg-moments__track::-webkit-scrollbar {
  display: none;
}

.reg-moments__track.is-dragging {
  cursor: grabbing;
  scroll-behavior: auto;
  scroll-snap-type: none;
}

.reg-moments__card {
  position: relative;
  flex: 0 0 var(--moments-card-w);
  border-radius: 0;
  overflow: hidden;
  scroll-snap-align: start;
  background: var(--reg-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 30px 0 rgba(45, 45, 45, 0.2);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.reg-moments__card img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center center;
  display: block;
  pointer-events: none;
  user-select: none;
  transition: transform 0.3s ease;
}

.reg-moments__card.is-cover img {
  object-fit: cover;
  object-position: var(--moments-pos, center center);
}

.reg-moments__card::after {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(0deg, rgba(10, 37, 64, 0.82) 0%, rgba(10, 37, 64, 0.44) 48%, transparent 100%);
  pointer-events: none;
}

.reg-moments__caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  padding: 28px 16px 15px;
  background: linear-gradient(0deg, rgba(10, 37, 64, 0.86) 0%, rgba(10, 37, 64, 0.58) 55%, transparent 100%);
  font-family: var(--reg-font-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.45;
  color: var(--wp--preset--color--theme-4);
  text-shadow: 0 1px 4px rgba(10, 37, 64, 0.45);
}

@media (hover: hover) and (pointer: fine) {
  .reg-moments__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px 0 rgba(45, 45, 45, 0.28);
  }

  .reg-moments__card:hover img {
    transform: scale(1.025);
  }
}

.reg-moments__nav {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(10, 37, 64, 0.3);
  background: transparent;
  color: #1D150B;
  cursor: pointer;
  font-size: 28px;
  line-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}

.reg-moments__nav span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  line-height: 1;
  font-size: inherit;
  /* Optical center for ‹ › glyphs (they sit low in the em box) */
  transform: translateY(-0.06em);
}

.reg-moments__nav:hover:not(:disabled) {
  border-color: var(--wp--preset--color--theme-1);
  color: var(--wp--preset--color--theme-1);
  background: transparent;
}

.reg-moments__nav:focus-visible {
  outline: 2px solid var(--wp--preset--color--theme-1);
  outline-offset: 2px;
}

.reg-moments__nav:disabled {
  opacity: 0.35;
  cursor: default;
}

@media only screen and (max-width: 1024px) {
  .reg-moments {
    --moments-card-w: calc((100% - var(--moments-gap)) / 2);
    padding: 80px 0;
  }

  .reg-moments__header {
    margin-bottom: 36px;
  }
}

@media only screen and (max-width: 767px) {
  .reg-moments {
    --moments-gap: 0;
    --moments-card-w: 100%;
    padding: 56px 0 64px;
    overflow-x: clip;
  }

  .reg-moments__inner {
    padding: 0;
  }

  .reg-moments__header {
    margin-bottom: 28px;
    padding: 0 16px;
  }

  .reg-moments__sub {
    font-size: 15px;
    line-height: 1.55;
  }

  .reg-moments__carousel {
    position: relative;
    display: block;
    gap: 0;
    padding: 0 16px;
  }

  .reg-moments__viewport {
    width: 100%;
  }

  .reg-moments__nav {
    position: absolute;
    top: 50%;
    z-index: 3;
    transform: translateY(-50%);
    display: inline-flex;
    flex: none;
    width: 36px;
    height: 36px;
    font-size: 22px;
    background: rgba(243, 246, 250, 0.92);
    border-color: rgba(10, 37, 64, 0.28);
    box-shadow: 0 2px 10px rgba(10, 37, 64, 0.12);
  }

  .reg-moments__nav--prev {
    left: 22px;
  }

  .reg-moments__nav--next {
    right: 22px;
  }

  .reg-moments__track {
    gap: 0;
    scroll-padding-inline: 0;
  }

  .reg-moments__card {
    flex: 0 0 var(--moments-card-w);
    width: var(--moments-card-w);
    height: auto;
    max-height: none;
    aspect-ratio: unset;
    background: transparent;
    scroll-snap-align: start;
    box-shadow: 0 6px 20px rgba(45, 45, 45, 0.14);
    align-items: stretch;
  }

  .reg-moments__card:not(:has(.reg-moments__caption))::after {
    display: none;
  }

  .reg-moments__card img {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: unset;
    object-position: center center;
    display: block;
  }

  .reg-moments__caption {
    font-size: 12px;
    padding: 20px 12px 12px;
  }
}

@media (prefers-reduced-motion: reduce) {

  .reg-moments__track,
  .reg-moments__card,
  .reg-moments__card img {
    scroll-behavior: auto;
    transition: none;
  }
}

/* ==========================================================================
   Community warmth layer
   Added when the site was re-pitched from the inherited "Firmly" law-firm
   theme towards a community-support charity. Everything here is either a
   softening (shape, rhythm) or an accessibility fix; no layout is moved.
   ========================================================================== */

:root {
  --reg-radius-card: 8px;
  --reg-radius-img: 0;
  --reg-radius-pill: 8px;
}

/* --- Shape: photos are square-cornered; buttons and cards use 8px corners
       (see the shape system at the end of this file). --------------------- */
.guten-button-wrapper.guten-element a.guten-button,
.guten-button {
  border-radius: var(--reg-radius-pill) !important;
  padding-inline: 1.9em !important;
  font-family: var(--reg-font-body) !important;
  font-weight: 600 !important;
  letter-spacing: 0.005em !important;
}

.guten-icon-box,
.guten-feature-list .feature-list-item,
.guten-accordions .accordion-item {
  border-radius: var(--reg-radius-card);
}

main section:not(#firmly-header) .guten-image img,
.guten-image.guten-8BJHj1 img {
  border-radius: var(--reg-radius-img);
}

#firmly-header .guten-image img,
.gutenverse-nav-logo img {
  border-radius: 0;
}

/* --- Type: Fraunces is softer and wider than Playfair, so it wants slightly
       tighter tracking and a little more room to breathe. ------------------ */
h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-gutenverse-heading,
.guten-heading {
  letter-spacing: -0.012em;
  text-wrap: balance;
  font-optical-sizing: auto;
}

p,
.gutenverse-text-editor .text-content-inner {
  text-wrap: pretty;
}

/* --- Accessibility fixes -------------------------------------------------

   1. Footer link lists inherited Gutenverse's --guten-txt-color (#575a5f)
      on the near-black footer: 2.66:1, effectively invisible. The footer is
      where the phone numbers, policies and contact routes live, so this is
      the most important text on the site for someone who needs help.        */
.guten-icon-list .list-wrapper .guten-icon-list-item a,
.guten-icon-list-item a,
.guten-icon-list-item .list-text {
  color: var(--reg-parchment);
}

.guten-icon-list .list-wrapper .guten-icon-list-item a:hover,
.guten-icon-list-item a:hover {
  color: var(--reg-gold-bright);
}

/*  2. Visible keyboard focus. The theme shipped none. */
a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--reg-gold-bright);
  outline-offset: 3px;
  border-radius: 4px;
}

/*  3. Honour reduced-motion for the carousels and hover transitions. */
@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

::selection {
  background: var(--reg-gold-bright, #0A2540);
  color: #FFFFFF;
}

::-moz-selection {
  background: var(--reg-gold-bright, #0A2540);
  color: #FFFFFF;
}

hr,
.guten-divider {
  border-color: var(--reg-border);
}

/* --- Footer -------------------------------------------------------------
   The generated CSS pins the footer blurb to `width: 480px !important`
   inside a column that is only 28.2% wide, so it overhangs its column and
   pushes into the contact list. Make it fluid instead.                     */
.guten-JqGuwY,
.guten-WrcBvM {
  width: 100% !important;
  max-width: 46ch;
}

/* Footer column headings: sturdy sans labels sit better here than the
   display serif, and they line up with the links underneath. */
.guten-LddkGO,
.guten-HKUqOz,
.guten-PNbohr {
  font-family: var(--reg-font-body) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  color: var(--reg-gold-bright) !important;
  margin-bottom: 1.25rem !important;
}

/* Links: warm off-white rather than stark white, so the gold headings stay
   the brightest thing in the footer. */
.guten-icon-list .list-wrapper .guten-icon-list-item a,
.guten-icon-list-item a,
.guten-icon-list-item .list-text {
  color: #F3F6FA;
}

.guten-icon-list-item {
  line-height: 1.9;
}

.guten-icon-list .list-wrapper .guten-icon-list-item a:hover,
.guten-icon-list-item a:hover {
  color: var(--reg-gold-bright);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* The footer blurb is the one place body copy sits on the dark ground. */
.guten-JqGuwY {
  color: #D0D8E4 !important;
}

/* Footer logo — larger on all pages; overrides generated Gutenverse sizing */
.section-guten-MHZ0lQ .guten-8BJHj1 img {
  width: 340px !important;
  max-width: 100%;
  height: auto;
}

/* Copyright — nudge a little left from the far right (desktop only) */
@media (min-width: 1025px) {
  .section-guten-MHZ0lQ .guten-FELit3 {
    padding-right: 48px;
  }
}

/* ==========================================================================
   Footer — mobile layout (≤767px only; desktop/tablet unchanged)
   ========================================================================== */

@media (max-width: 767px) {
  .section-guten-MHZ0lQ .guten-qXR5Mf>.guten-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0;
  }

  .section-guten-MHZ0lQ .guten-8UA2oC,
  .section-guten-MHZ0lQ .guten-Nlaz3N,
  .section-guten-MHZ0lQ .guten-ZZD2i3,
  .section-guten-MHZ0lQ .guten-XcZkYn {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .section-guten-MHZ0lQ .guten-element.guten-qXR5Mf {
    margin-top: 0;
    padding: 40px 20px 32px;
  }

  /* Brand block — logo, blurb, social */
  .section-guten-MHZ0lQ .guten-8UA2oC>.guten-column-wrapper {
    align-items: center;
    text-align: center;
    padding-bottom: 28px;
    margin-bottom: 28px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .section-guten-MHZ0lQ .guten-8BJHj1 img {
    width: min(300px, 88vw) !important;
    height: auto;
  }

  .section-guten-MHZ0lQ .guten-JqGuwY,
  .section-guten-MHZ0lQ .guten-WrcBvM {
    max-width: 100% !important;
    text-align: center !important;
    font-size: 15px;
    line-height: 1.65;
  }

  .section-guten-MHZ0lQ .guten-JqGuwY .text-content-inner p {
    margin: 0;
  }

  .section-guten-MHZ0lQ .guten-SlXmpp {
    justify-content: center;
    flex-wrap: nowrap;
    align-items: center;
    margin-top: 16px;
    gap: 10px;
  }

  .section-guten-MHZ0lQ .guten-SlXmpp::before {
    width: auto;
    margin-right: 0;
    margin-bottom: 0;
    flex-shrink: 0;
    white-space: nowrap;
  }

  /* Talk to us — light text, left-aligned (mobile only) */
  .section-guten-MHZ0lQ .guten-qXR5Mf>.guten-container>.guten-Nlaz3N.guten-column>.guten-column-wrapper,
  .section-guten-MHZ0lQ .guten-qXR5Mf>.guten-container>.guten-ZZD2i3.guten-column>.guten-column-wrapper,
  .section-guten-MHZ0lQ .guten-qXR5Mf>.guten-container>.guten-XcZkYn.guten-column>.guten-column-wrapper {
    justify-content: flex-start !important;
    align-items: flex-start !important;
  }

  .section-guten-MHZ0lQ .guten-Nlaz3N>.guten-column-wrapper {
    padding: 0 0 24px;
    margin-bottom: 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    align-items: flex-start !important;
    text-align: left !important;
  }

  .section-guten-MHZ0lQ .guten-LddkGO {
    text-align: left !important;
    width: 100%;
    margin-bottom: 1rem !important;
    color: #FFFFFF !important;
  }

  .section-guten-MHZ0lQ .guten-phgIKP,
  .section-guten-MHZ0lQ .guten-phgIKP .list-wrapper {
    width: 100% !important;
    align-items: flex-start !important;
    text-align: left !important;
  }

  .section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item {
    width: 100% !important;
    justify-content: flex-start !important;
  }

  .section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    gap: 10px;
    width: auto !important;
    color: rgba(255, 255, 255, 0.92) !important;
  }

  .section-guten-MHZ0lQ .guten-phgIKP .list-text {
    overflow-wrap: anywhere;
    word-break: break-word;
    text-align: left !important;
    color: rgba(255, 255, 255, 0.92) !important;
  }

  .section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item i,
  .section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item svg {
    color: rgba(255, 255, 255, 0.85) !important;
    fill: rgba(255, 255, 255, 0.85) !important;
  }

  .section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item a:hover,
  .section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item a:hover .list-text {
    color: #FFFFFF !important;
  }

  /* Quick Links + Policies — stacked rows */
  .section-guten-MHZ0lQ .guten-ZZD2i3>.guten-column-wrapper {
    padding: 0 0 24px;
    margin-bottom: 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    align-items: flex-start;
  }

  .section-guten-MHZ0lQ .guten-XcZkYn>.guten-column-wrapper {
    padding: 0;
    align-items: flex-start;
  }

  .section-guten-MHZ0lQ .guten-ZZD2i3,
  .section-guten-MHZ0lQ .guten-XcZkYn {
    padding-left: 0;
    padding-right: 0;
  }

  .section-guten-MHZ0lQ .guten-HKUqOz,
  .section-guten-MHZ0lQ .guten-PNbohr {
    text-align: left !important;
    width: 100%;
    font-size: 16px !important;
    margin-bottom: 0.85rem !important;
  }

  .section-guten-MHZ0lQ .guten-UHzElW .list-wrapper,
  .section-guten-MHZ0lQ .guten-kHEc1T .list-wrapper {
    width: 100%;
  }

  .section-guten-MHZ0lQ .guten-UHzElW .guten-icon-list-item a,
  .section-guten-MHZ0lQ .guten-kHEc1T .guten-icon-list-item a {
    text-align: left;
    justify-content: flex-start;
  }

  .section-guten-MHZ0lQ .guten-icon-list-item {
    line-height: 1.75;
  }

  .section-guten-MHZ0lQ .guten-UHzElW .list-text,
  .section-guten-MHZ0lQ .guten-kHEc1T .list-text {
    font-size: 14px;
  }

  /* Copyright bar */
  .section-guten-MHZ0lQ .guten-pGhQ7A>.guten-container {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .section-guten-MHZ0lQ .guten-tIWWtZ,
  .section-guten-MHZ0lQ .guten-PRmuGF {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
  }

  .section-guten-MHZ0lQ .guten-element.guten-pGhQ7A {
    padding: 24px 20px 28px;
  }

  .section-guten-MHZ0lQ .guten-pQ9rbA {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    text-align: center !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    overflow-wrap: break-word;
    word-break: break-word;
  }

  .section-guten-MHZ0lQ .guten-FELit3 {
    text-align: center !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
}

/* ==========================================================================
   Inner-page banners — mobile only: text at bottom, image visible above
   (all pages except home; desktop unchanged)
   ========================================================================== */

@media (max-width: 767px) {

  body:not(.home-redesign) .about-classic-hero,
  body:not(.home-redesign) .guten-element.guten-4dZ7c2,
  body:not(.home-redesign) .guten-element.guten-HVsEWS {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: stretch !important;
    padding-top: 100px !important;
    padding-bottom: 36px !important;
    min-height: 600px !important;
    box-sizing: border-box !important;
  }

  body:not(.home-redesign) .about-hero-bg-media::before,
  body:not(.home-redesign) .guten-4dZ7c2:not(.background-animated),
  body:not(.home-redesign) .guten-4dZ7c2.background-animated>.guten-background-animated .animated-layer,
  body:not(.home-redesign) .guten-HVsEWS:not(.background-animated),
  body:not(.home-redesign) .guten-HVsEWS.background-animated>.guten-background-animated .animated-layer {
    background-position: center 22% !important;
  }

  body:not(.home-redesign) .about-hero-content-wrapper {
    position: relative;
    z-index: 4;
    width: 100%;
    margin: 0 !important;
  }

  body:not(.home-redesign) .inner-hero-layout {
    align-items: flex-end;
  }

  body:not(.home-redesign) .about-hero-body-box {
    align-items: flex-end;
  }
}

/* ==========================================================================
   Scrolled header — solid black bar (beats page-specific gradient overlays)
   ========================================================================== */

body.is-header-scrolled #firmly-header,
body.is-header-scrolled #firmly-header.guten-element.guten-WtRO6p {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1000;
  margin-bottom: 0 !important;
  background: #0A2540 !important;
  background-color: #0A2540 !important;
  background-image: none !important;
  box-shadow: 0 1px 10px rgba(10, 37, 64, 0.35) !important;
}

body.is-header-scrolled #firmly-header .gutenverse-menu>li>a,
body.is-header-scrolled #firmly-header .gutenverse-menu>ul>li>a {
  color: #ffffff !important;
}

/* Mobile/tablet menu only: keep current page highlighted after scroll */
@media (max-width: 1024px) {

  body.is-header-scrolled #firmly-header .gutenverse-menu>li.current-menu-item>a,
  body.is-header-scrolled #firmly-header .gutenverse-menu>ul>li.current-menu-item>a,
  body.is-header-scrolled #firmly-header .gutenverse-menu>li.current-menu-ancestor>a,
  body.is-header-scrolled #firmly-header .gutenverse-menu>ul>li.current-menu-ancestor>a {
    color: #FFFFFF !important;
  }
}

body.is-header-scrolled #firmly-header .gutenverse-hamburger-menu {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
}

/* ==========================================================================
   Header nav — laptop only (1025–1550px): keep all page links on one line
   ========================================================================== */

@media (min-width: 1025px) and (max-width: 1550px) {
  #firmly-header>.guten-container {
    flex-wrap: nowrap;
    align-items: center;
  }

  #firmly-header .guten-qO7Qdd {
    width: 26% !important;
    flex: 0 0 26% !important;
    max-width: 26% !important;
  }

  #firmly-header .guten-5I4wDX {
    width: 74% !important;
    flex: 1 1 74% !important;
    max-width: 74% !important;
    min-width: 0;
  }

  #firmly-header .guten-h0NLF7 img {
    width: 200px !important;
    max-width: 100%;
    height: auto;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper,
  #firmly-header #guten-awQZMn .gutenverse-menu-container,
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu {
    width: 100%;
    min-width: 0;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu {
    flex-wrap: nowrap;
    justify-content: flex-end;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li,
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>ul>li {
    flex: 0 0 auto;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li>a,
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>ul>li>a {
    white-space: nowrap;
    font-size: 13px !important;
    margin-left: 8px !important;
    margin-right: 8px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li:first-child>a,
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>ul>li:first-child>a {
    margin-left: 0 !important;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li:last-child>a,
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>ul>li:last-child>a {
    margin-right: 0 !important;
  }
}

/* ==========================================================================
   Header + Footer — tablet only (768–1024px)
   Mobile (≤767) and laptop/desktop (≥1025) unchanged
   ========================================================================== */

@media (min-width: 768px) and (max-width: 1024px) {

  /* Header — balanced logo + hamburger row */
  #firmly-header.guten-element.guten-WtRO6p,
  section.guten-element.guten-WtRO6p#firmly-header {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  #firmly-header>.guten-container {
    flex-wrap: nowrap;
    align-items: center;
  }

  #firmly-header .guten-qO7Qdd {
    width: 70% !important;
    flex: 1 1 70% !important;
    max-width: 70% !important;
  }

  #firmly-header .guten-5I4wDX {
    width: 30% !important;
    flex: 0 0 30% !important;
    max-width: 30% !important;
  }

  #firmly-header .guten-h0NLF7 img,
  #firmly-header .guten-h0NLF7 .gutenverse-image-box-filled,
  body.home-redesign .guten-h0NLF7 img {
    width: 260px !important;
    max-width: 100% !important;
    height: auto !important;
  }

  #firmly-header #guten-awQZMn .gutenverse-hamburger-wrapper {
    justify-content: flex-end;
    width: 100%;
  }

  /* Left slide-out menu — larger logo (tablet only; was 100px) */
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-nav-identity-panel .gutenverse-nav-site-title .gutenverse-nav-logo img {
    width: 300px !important;
    max-width: 85% !important;
    height: auto !important;
    object-fit: contain !important;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-nav-identity-panel .gutenverse-nav-site-title .gutenverse-nav-logo {
    margin-top: 28px !important;
    margin-bottom: 18px !important;
  }

  /* Footer — 2×2 grid */
  .section-guten-MHZ0lQ .guten-qXR5Mf>.guten-container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 32px 0 !important;
  }

  .section-guten-MHZ0lQ .guten-element.guten-qXR5Mf {
    padding: 52px 32px 40px !important;
  }

  .section-guten-MHZ0lQ .guten-8UA2oC,
  .section-guten-MHZ0lQ .guten-Nlaz3N,
  .section-guten-MHZ0lQ .guten-ZZD2i3,
  .section-guten-MHZ0lQ .guten-XcZkYn {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
    box-sizing: border-box !important;
  }

  .section-guten-MHZ0lQ .guten-8UA2oC>.guten-column-wrapper,
  .section-guten-MHZ0lQ .guten-ZZD2i3>.guten-column-wrapper {
    padding: 0 24px 16px 0 !important;
  }

  .section-guten-MHZ0lQ .guten-Nlaz3N>.guten-column-wrapper,
  .section-guten-MHZ0lQ .guten-XcZkYn>.guten-column-wrapper {
    padding: 0 0 16px 24px !important;
  }

  .section-guten-MHZ0lQ .guten-8BJHj1 img {
    width: 250px !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .section-guten-MHZ0lQ .guten-JqGuwY,
  .section-guten-MHZ0lQ .guten-WrcBvM {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 0.94rem !important;
    line-height: 1.65 !important;
  }

  /* Talk to us / Quick Links / Policies — titles + links centered together */
  .section-guten-MHZ0lQ .guten-Nlaz3N>.guten-column-wrapper,
  .section-guten-MHZ0lQ .guten-ZZD2i3>.guten-column-wrapper,
  .section-guten-MHZ0lQ .guten-XcZkYn>.guten-column-wrapper {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }

  .section-guten-MHZ0lQ .guten-LddkGO,
  .section-guten-MHZ0lQ .guten-HKUqOz,
  .section-guten-MHZ0lQ .guten-PNbohr {
    text-align: center !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .section-guten-MHZ0lQ .guten-Nlaz3N .guten-phgIKP,
  .section-guten-MHZ0lQ .guten-ZZD2i3 .guten-UHzElW,
  .section-guten-MHZ0lQ .guten-XcZkYn .guten-kHEc1T {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }

  .section-guten-MHZ0lQ .guten-Nlaz3N .guten-phgIKP .list-wrapper,
  .section-guten-MHZ0lQ .guten-ZZD2i3 .guten-UHzElW .list-wrapper,
  .section-guten-MHZ0lQ .guten-XcZkYn .guten-kHEc1T .list-wrapper {
    width: auto !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }

  .section-guten-MHZ0lQ .guten-Nlaz3N .guten-icon-list-item,
  .section-guten-MHZ0lQ .guten-ZZD2i3 .guten-icon-list-item,
  .section-guten-MHZ0lQ .guten-XcZkYn .guten-icon-list-item {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }

  .section-guten-MHZ0lQ .guten-Nlaz3N .guten-icon-list-item a,
  .section-guten-MHZ0lQ .guten-ZZD2i3 .guten-icon-list-item a,
  .section-guten-MHZ0lQ .guten-XcZkYn .guten-icon-list-item a {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    width: auto !important;
  }

  .section-guten-MHZ0lQ .guten-Nlaz3N .list-text,
  .section-guten-MHZ0lQ .guten-ZZD2i3 .list-text,
  .section-guten-MHZ0lQ .guten-XcZkYn .list-text {
    text-align: center !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .section-guten-MHZ0lQ .guten-element.guten-pGhQ7A {
    padding: 24px 32px !important;
  }

  .section-guten-MHZ0lQ .guten-pGhQ7A>.guten-container {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px !important;
  }

  .section-guten-MHZ0lQ .guten-FELit3 {
    padding-right: 0 !important;
  }
}

/* ==========================================================================
   Footer navy theme (white text on #0A2540)
   ========================================================================== */
.section-guten-MHZ0lQ,
.guten-MHZ0lQ {
  background-color: #0A2540 !important;
  color: #FFFFFF !important;
}

.section-guten-MHZ0lQ p,
.section-guten-MHZ0lQ h3,
.section-guten-MHZ0lQ h6,
.section-guten-MHZ0lQ a,
.section-guten-MHZ0lQ .list-text,
.section-guten-MHZ0lQ .text-content-inner p,
.section-guten-MHZ0lQ .gutenverse-text-editor,
.section-guten-MHZ0lQ .guten-icon-list-item a {
  color: #FFFFFF !important;
}

/* Talk to us icons — override Gutenverse theme-1 navy (#0A2540) */
.section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item i,
.section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item svg,
.section-guten-MHZ0lQ .guten-icon-list-item i,
.section-guten-MHZ0lQ .guten-icon-list-item svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}

.section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item:hover i,
.section-guten-MHZ0lQ .guten-phgIKP .guten-icon-list-item:hover svg,
.section-guten-MHZ0lQ .guten-icon-list-item:hover i,
.section-guten-MHZ0lQ .guten-icon-list-item:hover svg {
  color: #D0D8E4 !important;
  fill: #D0D8E4 !important;
}

.section-guten-MHZ0lQ .guten-icon-list-item a:hover {
  color: #D0D8E4 !important;
}

.section-guten-MHZ0lQ .guten-qXR5Mf.guten-element {
  border-bottom-color: rgba(255, 255, 255, 0.2) !important;
}




#firmly-header .gutenverse-menu>li>a,
#firmly-header .gutenverse-menu>ul>li>a,
#firmly-header .gutenverse-menu li a,
.guten-nav-menu .gutenverse-menu-wrapper .gutenverse-menu>ul>li>a,
.guten-nav-menu .gutenverse-menu-wrapper .gutenverse-menu li a,
body.is-header-scrolled #firmly-header .gutenverse-menu>li>a,
body.is-header-scrolled #firmly-header .gutenverse-menu>ul>li>a {
  color: #FFFFFF !important;
  font-weight: 600 !important;
  text-shadow: none !important;
}

#firmly-header .gutenverse-menu>li>a:hover,
#firmly-header .gutenverse-menu>ul>li>a:hover,
.guten-nav-menu .gutenverse-menu-wrapper .gutenverse-menu>ul>li:hover>a {
  color: #D0D8E4 !important;
}

#firmly-header .gutenverse-menu>li.current-menu-item>a,
#firmly-header .gutenverse-menu>ul>li.current-menu-item>a,
#firmly-header .gutenverse-menu>li.current-menu-ancestor>a,
#firmly-header .gutenverse-menu>ul>li.current-menu-ancestor>a {
  color: #FFFFFF !important;
  font-weight: 700 !important;
  border-bottom-color: #FFFFFF !important;
}

#firmly-header .gutenverse-hamburger-menu,
#firmly-header .gutenverse-hamburger-menu i,
#firmly-header .gutenverse-hamburger-menu svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
}

/* Mobile header only — reduce top/bottom padding by 5px (20 → 15) */
@media only screen and (max-width: 767px) {

  #firmly-header.guten-element.guten-WtRO6p,
  section.guten-element.guten-WtRO6p#firmly-header {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
  }
}

/* Mobile menu only — close (X) icon white on navy drawer */
@media only screen and (max-width: 1024px) {

  #firmly-header .gutenverse-nav-identity-panel .gutenverse-close-menu,
  #firmly-header .gutenverse-nav-identity-panel .gutenverse-close-menu i,
  #firmly-header .gutenverse-nav-identity-panel .gutenverse-close-menu svg {
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
  }
}

/* ==========================================================================
   Testimonials Text Color Override — Solid Black / Dark Text
   ========================================================================== */
.reg-testimonials__quote,
.reg-testimonials__name,
.reg-testimonials .slide .reg-testimonials__quote,
.reg-testimonials .slide .reg-testimonials__name,
.local-testimonials .slide .reg-testimonials__quote,
.local-testimonials .slide .reg-testimonials__name,
.reg-testimonials__slides .reg-testimonials__quote,
.reg-testimonials__slides .reg-testimonials__name,
body.home-redesign .reg-testimonials__quote,
body.home-redesign .reg-testimonials__name,
body.about-redesign .reg-testimonials__quote,
body.about-redesign .reg-testimonials__name,
body.services-redesign .reg-testimonials__quote,
body.services-redesign .reg-testimonials__name,
body.testimonials-redesign .reg-testimonials__quote,
body.testimonials-redesign .reg-testimonials__name {
  color: #000000 !important;
}

.reg-testimonials__name,
.local-testimonials .slide .reg-testimonials__name {
  color: #000000 !important;
  font-weight: 700 !important;
}

/* ==========================================================================
   CTA Section Text Color White
   ========================================================================== */
.guten-kfSQim,
.guten-kfSQim p,
.guten-kfSQim .text-content-inner p,
.guten-TyVpx3 .text-content-inner p,
body.home-redesign .guten-kfSQim,
body.home-redesign .guten-kfSQim p,
body.home-redesign .guten-kfSQim .text-content-inner p {
  color: #ffffff !important;
}


/* ==========================================================================
   Header / Footer — navy #0A2540 background, white text
   ========================================================================== */

/* Header Navbar */
#firmly-header,
.guten-element.guten-WtRO6p,
body #firmly-header,
body.home-redesign #firmly-header,
body.about-redesign #firmly-header,
body.services-redesign #firmly-header,
body.testimonials-redesign #firmly-header,
body.fundings-redesign #firmly-header,
body.theory-redesign #firmly-header,
body.samudaripen-redesign #firmly-header,
body.contact-redesign #firmly-header,
body.is-header-scrolled #firmly-header {
  background: #0A2540 !important;
  background-color: #0A2540 !important;
  background-image: none !important;
  box-shadow: 0 1px 10px rgba(10, 37, 64, 0.35) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
}

#firmly-header .gutenverse-menu>li>a,
#firmly-header .gutenverse-menu>ul>li>a,
#firmly-header .gutenverse-menu li a,
.guten-nav-menu .gutenverse-menu-wrapper .gutenverse-menu>ul>li>a,
.guten-nav-menu .gutenverse-menu-wrapper .gutenverse-menu li a,
body.is-header-scrolled #firmly-header .gutenverse-menu>li>a,
body.is-header-scrolled #firmly-header .gutenverse-menu>ul>li>a {
  color: #FFFFFF !important;
  font-weight: 600 !important;
  text-shadow: none !important;
}

#firmly-header .gutenverse-menu>li>a:hover,
#firmly-header .gutenverse-menu>ul>li>a:hover,
.guten-nav-menu .gutenverse-menu-wrapper .gutenverse-menu>ul>li:hover>a {
  color: #D0D8E4 !important;
}

#firmly-header .gutenverse-menu>li.current-menu-item>a,
#firmly-header .gutenverse-menu>ul>li.current-menu-item>a,
#firmly-header .gutenverse-menu>li.current-menu-ancestor>a,
#firmly-header .gutenverse-menu>ul>li.current-menu-ancestor>a {
  color: #FFFFFF !important;
  font-weight: 700 !important;
  border-bottom-color: #FFFFFF !important;
}

#firmly-header .gutenverse-hamburger-menu,
#firmly-header .gutenverse-hamburger-menu i,
#firmly-header .gutenverse-hamburger-menu svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
}

/* Mobile/tablet drawer: navy so white link text stays readable */
@media only screen and (max-width: 1024px) {

  #firmly-header #guten-awQZMn.guten-nav-menu .gutenverse-menu-wrapper,
  #firmly-header #guten-awQZMn.break-point-tablet.guten-nav-menu .gutenverse-menu-wrapper,
  #firmly-header #guten-awQZMn.break-point-mobile.guten-nav-menu .gutenverse-menu-wrapper {
    background-color: #0A2540 !important;
  }

  #firmly-header .gutenverse-nav-identity-panel .gutenverse-close-menu,
  #firmly-header .gutenverse-nav-identity-panel .gutenverse-close-menu i,
  #firmly-header .gutenverse-nav-identity-panel .gutenverse-close-menu svg {
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
  }
}

/* Footer */
.section-guten-MHZ0lQ,
.guten-MHZ0lQ {
  background: #0A2540 !important;
  background-color: #0A2540 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #FFFFFF !important;
}

.section-guten-MHZ0lQ h3,
.section-guten-MHZ0lQ h6,
.section-guten-MHZ0lQ .gutenverse-heading {
  color: #FFFFFF !important;
}

.section-guten-MHZ0lQ p,
.section-guten-MHZ0lQ .text-content-inner p {
  color: rgba(255, 255, 255, 0.88) !important;
}

.section-guten-MHZ0lQ a,
.section-guten-MHZ0lQ .list-text,
.section-guten-MHZ0lQ .guten-icon-list-item a {
  color: #FFFFFF !important;
}

.section-guten-MHZ0lQ .guten-icon-list-item a:hover {
  color: #D0D8E4 !important;
}

.section-guten-MHZ0lQ .guten-FELit3,
.section-guten-MHZ0lQ .guten-FELit3 h6 {
  color: rgba(255, 255, 255, 0.7) !important;
}

.section-guten-MHZ0lQ .guten-SlXmpp::before {
  color: rgba(255, 255, 255, 0.7) !important;
}

.section-guten-MHZ0lQ .guten-SlXmpp .guten-social-icon a,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .guten-social-icon a,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .facebook a {
  border-color: rgba(255, 255, 255, 0.45) !important;
  color: #FFFFFF !important;
  background: transparent !important;
}

.section-guten-MHZ0lQ .guten-SlXmpp .guten-social-icon a:hover,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .guten-social-icon a:hover,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .facebook a:hover {
  background: #FFFFFF !important;
  border-color: #FFFFFF !important;
  color: #0A2540 !important;
}

.section-guten-MHZ0lQ .guten-SlXmpp .guten-social-icon a:hover i,
.section-guten-MHZ0lQ .guten-SlXmpp.fill .guten-social-icon a:hover i {
  color: #0A2540 !important;
}

/* Buttons: #0A2540 Fill, white text (was brown-on-gold) */
.guten-button,
.about-redesign-btn,
.services-redesign-cta .guten-button,
.hero-btn-primary {
  background-color: #0A2540 !important;
  color: #FFFFFF !important;
  border-color: #0A2540 !important;
}

.guten-button:hover,
.about-redesign-btn:hover,
.services-redesign-cta .guten-button:hover,
.hero-btn-primary:hover {
  background-color: #14345C !important;
  color: #FFFFFF !important;
  border-color: #14345C !important;
}

.guten-button span,
.about-redesign-btn span,
.hero-btn-primary span,
.services-redesign-cta .guten-button span,
.services-redesign-cta .guten-button i,
.guten-wPBBOa.guten-button-wrapper .guten-button span,
.guten-wPBBOa.guten-button-wrapper .guten-button i,
.guten-wPBBOa.guten-button-wrapper .guten-button svg,
.guten-tcxSsl.guten-button-wrapper .guten-button span,
.guten-tcxSsl.guten-button-wrapper .guten-button i,
.guten-tcxSsl.guten-button-wrapper .guten-button svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
  font-weight: 700 !important;
}

/* Home full-bleed hero CTAs — white primary / outline secondary on photos */
body.home-redesign .hero-btn-primary {
  background-color: #FFFFFF !important;
  color: #0A2540 !important;
  border-color: #FFFFFF !important;
}

body.home-redesign .hero-btn-primary:hover,
body.home-redesign .hero-btn-primary:focus-visible {
  background-color: #F3F6FA !important;
  color: #0A2540 !important;
  border-color: #F3F6FA !important;
}

body.home-redesign .hero-btn-primary span,
body.home-redesign .hero-btn-primary i {
  color: #0A2540 !important;
  fill: #0A2540 !important;
}

body.home-redesign .hero-btn-secondary {
  background-color: transparent !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
}

body.home-redesign .hero-btn-secondary:hover,
body.home-redesign .hero-btn-secondary:focus-visible {
  background-color: rgba(255, 255, 255, 0.12) !important;
  color: #FFFFFF !important;
  border-color: #FFFFFF !important;
}

body.home-redesign .hero-btn-secondary span,
body.home-redesign .hero-btn-secondary i {
  color: #FFFFFF !important;
}

/* ==========================================================================
   How it works — heading + 3 steps: navy number circles joined by a line
   (includes/home-process.php — used on index.php and services.php)
   ========================================================================== */
.reg-steps {
  background: #F3F6FA;
  padding: clamp(64px, 8vw, 104px) 24px;
  box-sizing: border-box;
}

.reg-steps__inner {
  max-width: 1240px;
  margin: 0 auto;
}

.reg-steps__title {
  margin: 0 0 clamp(40px, 5vw, 64px);
  text-align: left;
  font-family: var(--reg-font-display, "Fraunces", serif) !important;
  font-size: 52px;
  font-weight: 600;
  line-height: 1.12;
  color: var(--reg-ink, #1F1B14);
}

.reg-steps__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 48px);
}

.reg-step {
  position: relative;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Line from each circle across its column */
.reg-step::after {
  content: "";
  position: absolute;
  top: 28px;
  left: 72px;
  right: 0;
  height: 1px;
  background: #B4C0D0;
}

.reg-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0 0 clamp(28px, 3vw, 40px);
  border-radius: 50%;
  background: #0A2540;
  font-family: var(--reg-font-display, "Fraunces", serif) !important;
  font-size: 26px;
  font-weight: 500;
  line-height: 1;
  font-variant-numeric: lining-nums;
  color: #FFFFFF;
}

.reg-step__title {
  margin: 0 0 16px;
  font-family: var(--reg-font-display, "Fraunces", serif) !important;
  font-size: clamp(24px, 2.2vw, 32px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--reg-ink, #1F1B14);
}

.reg-step__text {
  margin: 0;
  max-width: 38ch;
  font-family: var(--reg-font-body, "Figtree", sans-serif);
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--reg-ink-soft, #5A5347);
}

@media (max-width: 1024px) {
  .reg-steps__title {
    font-size: 40px;
  }
}

/* Phones: stacked, no connecting lines */
@media (max-width: 767px) {
  .reg-steps {
    padding: 56px 20px;
  }

  .reg-steps__title {
    font-size: 32px;
    line-height: 1.15;
  }

  .reg-steps__list {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .reg-step::after {
    display: none;
  }

  .reg-step__num {
    width: 48px;
    height: 48px;
    margin-bottom: 18px;
    font-size: 22px;
  }

  .reg-step__title {
    font-size: 24px;
  }

  .reg-step__text {
    max-width: none;
    font-size: 16px;
  }
}

/* ==========================================================================
   Header — Donate button (last menu item, see $nav_items in config.php)
   ========================================================================== */
#firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li.menu-item--donate>a,
body.is-header-scrolled #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li.menu-item--donate>a {
  display: inline-flex;
  align-items: center;
  padding: 11px 24px !important;
  margin-left: 14px !important;
  font-size: 19px !important;
  background: #c69a4e;
  border: none !important;
  border-radius: 8px;
  color: #0A2540 !important;
  font-weight: 700 !important;
  line-height: 1.2;
  transition: background 0.2s ease;
}

#firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li.menu-item--donate>a:hover,
#firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li.menu-item--donate>a:focus-visible {
  background: #e4c98a;
  color: #0A2540 !important;
}

@media (min-width: 1025px) and (max-width: 1550px) {
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li.menu-item--donate>a {
    padding: 10px 17px !important;
    margin-left: 10px !important;
    font-size: 15.6px !important;
  }
}

@media (min-width: 1025px) {
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li.menu-item--donate>a {
    min-height: 52px;
    align-self: center;
    box-sizing: border-box;
  }
}

/* Narrow laptops: tighter link spacing so the larger Donate button doesn't push the menu into the logo */
@media (min-width: 1025px) and (max-width: 1199px) {
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li:not(:first-child):not(.menu-item--donate)>a {
    margin-left: 5px !important;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li:not(:last-child)>a {
    margin-right: 5px !important;
  }
}

@media (max-width: 1024px) {
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li.menu-item--donate>a,
  body.is-header-scrolled #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li.menu-item--donate>a {
    display: flex;
    justify-content: center;
    margin: 16px 0 0 !important;
    padding: 17px 24px !important;
    font-size: 19px !important;
    height: auto !important;
    min-height: 60px;
  }
}

/* Header nav — wide screens (≥1551px): keep all links, including Donate, on one line */
@media (min-width: 1551px) {
  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu {
    flex-wrap: nowrap;
    justify-content: flex-end;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li {
    flex: 0 0 auto;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li>a {
    white-space: nowrap;
    margin-left: 12px !important;
    margin-right: 12px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #firmly-header #guten-awQZMn .gutenverse-menu-wrapper .gutenverse-menu>li:last-child>a {
    margin-right: 0 !important;
  }
}

/* ==========================================================================
   Photo slider (home and About) — photos only, one photo per slide.
   Markup: includes/home-moments.php; script: home-main.js / main.js
   ========================================================================== */
body.page .reg-moments.reg-moments--single {
  background: #FFFFFF !important;
  --moments-gap: 0px;
  --moments-card-w: 100%;
  padding: clamp(48px, 6vw, 80px) 0;
}

/* Same 1240px content width as the other sections, plus 24px side padding */
body.page .reg-moments--single .reg-moments__inner {
  position: relative;
  max-width: calc(1240px + 48px);
  padding: 0 24px;
}

@media (max-width: 767px) {
  body.page .reg-moments--single .reg-moments__inner {
    padding: 0 20px;
  }
}

body.page .reg-moments--single .reg-moments__track {
  gap: 0;
}

body.page .reg-moments--single .reg-moments__card {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  /* Matches the slider photos (1160 × 600) so each one fills the full width */
  aspect-ratio: 1160 / 600 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  scroll-snap-align: start;
}

body.page .reg-moments--single .reg-moments__card::after {
  display: none;
}

body.page .reg-moments--single .reg-moments__card img {
  width: 100% !important;
  height: 100% !important;
  /* Whole photo at its real shape — no cropping */
  object-fit: contain !important;
  object-position: center center !important;
}

/* Dots — sit on the photo, bottom centre */
body.page .reg-moments--single .reg-moments__controls {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  z-index: 3;
  display: flex;
  justify-content: center;
  margin: 0;
  padding: 0 16px;
  pointer-events: none;
}

body.page .reg-moments--single .reg-moments__dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2px;
  pointer-events: auto;
}

body.page .reg-moments--single .reg-moments__dot {
  position: relative;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

body.page .reg-moments--single .reg-moments__dot::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.45);
  transform: translate(-50%, -50%);
  transition: width 0.25s ease, background 0.25s ease;
}

body.page .reg-moments--single .reg-moments__dot:hover::before {
  background: rgba(255, 255, 255, 0.9);
}

body.page .reg-moments--single .reg-moments__dot.is-active::before {
  width: 22px;
  background: #FFFFFF;
}

/* Phones: slightly smaller dots so all 13 fit on one line over the photo */
@media (max-width: 767px) {
  body.page .reg-moments--single .reg-moments__controls {
    bottom: 10px;
  }

  body.page .reg-moments--single .reg-moments__dots {
    gap: 0;
  }

  body.page .reg-moments--single .reg-moments__dot {
    width: 20px;
    height: 20px;
  }

  body.page .reg-moments--single .reg-moments__dot::before {
    width: 7px;
    height: 7px;
  }

  body.page .reg-moments--single .reg-moments__dot.is-active::before {
    width: 16px;
  }
}

body.page .reg-moments--single .reg-moments__dot:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 0;
  border-radius: 999px;
}

@media (prefers-reduced-motion: reduce) {
  body.page .reg-moments--single .reg-moments__dot::before {
    transition: none;
  }
}


/* ==========================================================================
   Shape system (matches the home page)
   Photos, image tiles and logos have square corners; buttons and cards have
   8px corners; small round icons stay circular. This block must stay last:
   several page stylesheets force `border-radius: 0 !important`, and these
   selectors only win on equal specificity because site.css loads after them.
   ========================================================================== */

/* Buttons */
body.page .back-to-top,
body.page .guten-button,
body.page .guten-button-wrapper .guten-button,
body.fundings-redesign .guten-2BEJu4.guten-button-wrapper.guten-element a.guten-button,
body.fundings-redesign .fundings-page-cta.guten-2BEJu4.guten-button-wrapper.guten-element a.guten-button,
body.theory-redesign .theory-intro-btn,
body.page .notfound-links__list a {
  border-radius: 8px !important;
}

/* Cards and the small icon boxes inside them */
body.about-redesign .about-story-quote-card,
body.about-redesign .about-pillar-card,
body.about-redesign .pillar-icon-wrapper,
body.about-redesign .about-stats-classic-box,
body.about-redesign .values-step-card,
body.about-redesign .values-step-card .step-badge,
body.about-redesign .values-step-card .step-icon-box,
body.about-redesign .values-footer-note,
body.contact-redesign .contact-detail-card,
body.theory-redesign .theory-intro-card,
body.theory-redesign .theory-intro-card__icon,
body.theory-redesign .theory-intro-card__num,
body.services-redesign .reg-testimonials__card,
body.testimonials-redesign .reg-testimonials__card {
  border-radius: 8px !important;
}

body.about-redesign .about-story-quote-card {
  overflow: hidden;
}

/* Embedded map: rounded like the home page map */
body.contact-redesign .gutenverse-maps,
body.contact-redesign .guten-tAmXZo,
body.contact-redesign .guten-tAmXZo.guten-element {
  border-radius: 8px !important;
  overflow: hidden;
}
