/*
 * Only the bounded retained-service adapter uses this scope. The service-detail
 * stylesheet supplies the approved sd component typography, colors and spacing;
 * these rules accommodate existing rich fields without changing authored copy.
 */
.fa-retained-service-page #main {
  padding-top: 0;
}

.fa-retained-service {
  color: var(--text-primary);
  overflow-wrap: anywhere;
}

.fa-retained-service .sd-hero {
  padding-bottom: var(--space-6xl);
}

.fa-retained-service .sd-hero__sub {
  width: 100%;
}

.fa-retained-service .fa-retained-powered-by--xero {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-xs);
  min-height: var(--space-xl);
  margin-bottom: var(--space-xl);
}

.fa-retained-service .fa-retained-rich.fa-retained-powered-by--xero > p {
  position: relative;
  width: 166px;
  height: var(--space-xl);
  margin: 0;
}

.fa-retained-service .fa-retained-powered-by--xero img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 17px;
  height: 166px;
  max-width: none;
  object-fit: contain;
  transform: translate(-50%, -50%) rotate(-90deg);
}

.fa-retained-service .fa-retained-rich > :first-child {
  margin-top: 0;
}

.fa-retained-service .fa-retained-rich > :last-child {
  margin-bottom: 0;
}

.fa-retained-service .fa-retained-rich :is(p, ul, ol, blockquote) {
  margin-block: 0 var(--space-lg);
}

.fa-retained-service .fa-retained-rich :is(ul, ol) {
  padding-inline-start: 1.5em;
}

.fa-retained-service .fa-retained-rich li + li {
  margin-top: var(--space-xs);
}

.fa-retained-service .fa-retained-rich :is(img, video, iframe) {
  max-width: 100%;
}

.fa-retained-service .fa-retained-rich img {
  height: auto;
}

.fa-retained-service .fa-retained-rich a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.fa-retained-service .fa-retained-image {
  margin: 0;
  min-width: 0;
}

.fa-retained-service .fa-retained-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.fa-retained-service .fa-retained-hero__media {
  width: min(100%, 620px);
  margin: var(--space-4xl) auto 0;
}

.fa-retained-service .fa-retained-hero__mobile,
.fa-retained-service .fa-retained-hero__media--mobile-only {
  display: none;
}

.fa-retained-service .sd-incl__grid {
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fa-retained-service .sd-incl__card {
  min-width: 0;
  align-items: flex-start;
}

.fa-retained-service .sd-incl__card .fa-retained-card__icon {
  width: 60px;
  /* Saved dark SVG artwork needs a light surface on the navy component. */
  padding: var(--space-xs);
  background: var(--surface-page);
  margin-bottom: var(--space-xl);
}

.fa-retained-service .sd-incl__card .fa-retained-card__image {
  width: min(100%, 240px);
}

.fa-retained-service .sd-navy .fa-retained-rich a {
  color: var(--text-on-dark);
}

.fa-retained-service .sd-navy > .fa-container > .fa-retained-link {
  margin-top: var(--space-2xl);
}

.fa-retained-service .fa-retained-values .sd-incl__h {
  max-width: 900px;
}

.fa-retained-service .fa-retained-values .sd-incl__intro {
  max-width: 900px;
  margin-bottom: var(--space-2xl);
}

.fa-retained-service .fa-retained-section {
  padding-block: var(--sp-section);
}

.fa-retained-service .fa-retained-section__inner {
  min-width: 0;
}

.fa-retained-service .sd-why__body {
  gap: var(--space-xl);
}

.fa-retained-service .sd-why__h {
  max-width: 100%;
  flex: none;
}

.fa-retained-service .fa-retained-section--split .fa-retained-section__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: var(--space-6xl);
  align-items: center;
}

.fa-retained-service .fa-retained-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
}

.fa-retained-service .fa-retained-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-xl);
  min-width: 0;
  margin: 0;
  padding: var(--pad-card);
  border: 1px solid var(--divider-on-light);
}

.fa-retained-service .fa-retained-card--highlight {
  outline: 2px solid var(--text-primary);
}

.fa-retained-service .fa-retained-card__title,
.fa-retained-service .fa-retained-form h3 {
  margin: 0;
  font: var(--fw-halbfett) var(--fs-quote)/1.2 var(--font-display);
  letter-spacing: var(--ls-card);
}

.fa-retained-service .fa-retained-card > .fa-retained-image {
  width: 100%;
}

.fa-retained-service .fa-retained-card .fa-retained-rich p {
  font-size: var(--fs-base);
}

.fa-retained-service .fa-retained-logos {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xl);
  align-items: center;
}

.fa-retained-service .fa-retained-logos > :is(a, figure) {
  display: block;
  max-width: 180px;
}

.fa-retained-service .fa-retained-logos .fa-retained-image img {
  width: auto;
  max-width: 180px;
  max-height: 100px;
}

/* All saved artwork in this Xero integration field family is white. Other
   service/client logo fields retain their existing light-section treatment. */
.fa-retained-service .fa-retained-xero-logos .fa-retained-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 180px;
  max-width: 100%;
  min-height: 72px;
  padding: var(--space-md);
  background: var(--surface-dark);
}

.fa-retained-service .fa-retained-xero-logos .fa-retained-image img {
  max-width: 100%;
}

.fa-retained-service .fa-retained-integration {
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
}

.fa-retained-service .fa-retained-link {
  align-self: flex-start;
  max-width: 100%;
  white-space: normal;
}

/* Keep the saved native CTA while presenting the approved service button. */
.fa-retained-service .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  max-width: 100%;
  border: none;
  border-radius: var(--radius-none);
  padding: var(--pad-btn-y) var(--pad-btn-x);
  font: var(--type-button);
  letter-spacing: var(--ls-tight);
  text-decoration: none;
  cursor: pointer;
  white-space: normal;
  box-sizing: border-box;
  box-shadow: var(--shadow-none);
  background: var(--btn-primary-bg);
  color: var(--btn-primary-fg);
  transition: background var(--dur-base) var(--ease-standard),
              color var(--dur-base) var(--ease-standard);
}

.fa-retained-service .wp-block-button__link strong {
  font-weight: inherit;
}

.fa-retained-service .wp-block-button__link:hover {
  background: var(--btn-yellow-bg);
  color: var(--btn-yellow-fg);
  text-decoration: none;
}

.fa-retained-service .wp-block-button__link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.fa-retained-service .fa-retained-faq {
  border-bottom: 1px solid var(--divider-on-light);
}

.fa-retained-service .fa-retained-faq + .fa-retained-faq .as-faq__q {
  padding-top: var(--space-xl);
}

.fa-retained-service .fa-retained-faq .as-faq__q {
  margin: 0;
  list-style: none;
}

.fa-retained-service .fa-retained-faq .as-faq__q::-webkit-details-marker {
  display: none;
}

.fa-retained-service .fa-retained-faq .as-faq__q::marker {
  content: '';
}

.fa-retained-service .fa-retained-faq[open] .as-faq__tri {
  transform: rotate(180deg);
}

.fa-retained-service .fa-retained-faq .as-faq__q:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.fa-retained-service .fa-retained-faq--items-only {
  grid-template-columns: minmax(0, 1fr);
}

.fa-retained-service .fa-retained-faq--items-only .sd-faq__left {
  display: none;
}

.fa-retained-service .fa-retained-crypto-faq .sd-faq__h {
  margin-bottom: var(--space-xl);
}

.fa-retained-service .fa-retained-crypto-faq > .fa-container > .as-faq__list {
  margin-block: var(--space-2xl);
}

.fa-retained-service .fa-retained-form {
  max-width: 900px;
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
}

.fa-retained-service .fa-retained-table {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

.fa-retained-service .fa-retained-table table {
  width: 100%;
  border-collapse: collapse;
}

.fa-retained-service .fa-retained-table dl {
  margin: 0;
}

.fa-retained-service .fa-retained-table dd {
  margin-inline-start: 0;
}

.fa-retained-service .fa-retained-table :is(th, td) {
  padding: var(--space-md);
  border: 1px solid var(--divider-on-light);
  text-align: left;
  overflow-wrap: normal;
  word-break: normal;
}

.fa-retained-service .fa-retained-steps {
  margin: 0;
  padding: 0;
  list-style-position: inside;
}

.fa-retained-service .fa-retained-native > :not(.sd-hero):not(.sd-navy):not(.sd-why):not(.sd-faq) {
  max-width: var(--container-width);
  margin-inline: auto;
  padding-inline: var(--sp-gutter);
}

/* Authored native supporting content keeps its hierarchy and field order,
   while using the same readable body role and rhythm as the service sections. */
.fa-retained-service .fa-retained-native > :is(p, ul, ol, blockquote, .wp-block-media-text):not(:empty) {
  margin-block: 0;
  padding-block: var(--space-6xl);
  font: var(--fw-buch) var(--fs-lead)/1.5 var(--font-body);
  color: var(--text-primary);
}

.fa-retained-service .fa-retained-native > :is(h2, h3, h4, h5, h6):not(:empty) {
  margin-block: 0;
  padding-top: var(--space-6xl);
  font-family: var(--font-display);
  font-weight: var(--fw-halbfett);
  line-height: 1.2;
  letter-spacing: var(--ls-card);
}

.fa-retained-service .fa-retained-native > h2:not(:empty) {
  font-size: var(--fs-section);
}

.fa-retained-service .fa-retained-native > :is(h2, h3, h4, h5, h6):not(:empty) + :is(p, ul, ol, blockquote):not(:empty) {
  padding-top: var(--space-xl);
}

.fa-retained-service .fa-retained-native > :empty {
  margin-block: 0;
  padding-block: 0;
}

.fa-retained-service .fa-retained-native .wp-block-media-text {
  gap: var(--space-4xl);
}

.fa-retained-service .fa-retained-native .wp-block-media-text__content {
  padding: 0;
}

.fa-retained-service .fa-retained-native .wp-block-media-text__content > :first-child {
  margin-top: 0;
}

.fa-retained-service .fa-retained-native .wp-block-media-text__content > :last-child {
  margin-bottom: 0;
}

.fa-retained-service .fa-retained-native .wp-block-media-text__content > :is(h2, h3, h4, h5, h6) {
  font: var(--fw-halbfett) var(--fs-quote)/1.2 var(--font-display);
  letter-spacing: var(--ls-card);
}

.fa-retained-service .fa-retained-native .wp-block-media-text__content li + li {
  margin-top: var(--space-xs);
}

@media (max-width: 1199px) {
  .fa-retained-service .fa-retained-section--split .fa-retained-section__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2xl);
  }

  .fa-retained-service .fa-retained-section--split .fa-retained-section__inner > .fa-retained-image {
    width: min(100%, 620px);
    margin-inline: auto;
  }
}

@media (max-width: 767px) {
  .fa-retained-service .sd-hero {
    padding-top: var(--space-6xl);
    padding-bottom: var(--space-5xl);
  }

  .fa-retained-service .fa-retained-hero__media {
    margin-top: var(--space-2xl);
  }

  .fa-retained-service .fa-retained-hero__media--responsive .fa-retained-hero__desktop {
    display: none;
  }

  .fa-retained-service .fa-retained-hero__mobile,
  .fa-retained-service .fa-retained-hero__media--mobile-only {
    display: block;
  }

  .fa-retained-service .sd-incl__grid,
  .fa-retained-service .fa-retained-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .fa-retained-service .fa-retained-card {
    padding: var(--space-xl);
  }

  .fa-retained-service .fa-retained-table table {
    min-width: 700px;
  }

  .fa-retained-service .fa-retained-native > :is(p, ul, ol, blockquote, .wp-block-media-text):not(:empty) {
    padding-block: var(--space-5xl);
  }

  .fa-retained-service .fa-retained-native > :is(h2, h3, h4, h5, h6):not(:empty) {
    padding-top: var(--space-5xl);
  }

  .fa-retained-service .fa-retained-native > h2:not(:empty) {
    font-size: 36px;
  }

  .fa-retained-service .fa-retained-native > :is(h2, h3, h4, h5, h6):not(:empty) + :is(p, ul, ol, blockquote):not(:empty) {
    padding-top: var(--space-xl);
  }

  .fa-retained-service .fa-retained-native .wp-block-media-text {
    /* Saved Gutenberg columns use inline styles; retain their desktop ratio,
       and override that layout only where the adapted mobile view stacks. */
    grid-template-columns: minmax(0, 1fr) !important;
    gap: var(--space-2xl);
  }

  .fa-retained-service .fa-retained-native .wp-block-media-text > :is(.wp-block-media-text__media, .wp-block-media-text__content) {
    grid-column: 1;
    grid-row: auto;
  }
}
