/* Migration overrides. The original Webflow stylesheet is kept as the visual base. */
html { scroll-behavior: smooth; }
body { margin: 0; }
button { font: inherit; }

/* Remove interaction-only hidden states from the Webflow build. */
.info-component,
.padding-section-large,
.story-component,
.testimonial-component,
.faq-component,
.cta-component { opacity: 1 !important; transform: none !important; }

/* Use local image files without Webflow responsive srcsets.
   Keep .image-3 controlled by the original Webflow breakpoints:
   it is the mobile hero and must stay hidden on desktop. */
.image, .lightbox-image, .cta-image { display: block; }

/* Mobile navigation implemented locally, without Webflow JS. */
.navbar-menu-buttton { border: 0; background: transparent; cursor: pointer; }
.dropdown-toggle-2 { border: 0; background: transparent; cursor: pointer; text-align: left; }
.abs-chevron { display: inline-block; width: .5rem; height: .5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-left: .55rem; vertical-align: .2rem; }
.abs-process-menu { display: none; }
.navbar-dropdown-link.is-open .abs-process-menu { display: block; }

/* FAQ */
.faq-question { width: 100%; border: 0; text-align: left; cursor: pointer; }
.faq-answer { height: 0; overflow: hidden; transition: height .28s ease; }
.faq-accordion.is-open .faq-icon { transform: rotate(45deg); }
.faq-icon { transition: transform .2s ease; }

/* Story video */
.lightbox { border: 0; padding: 0; width: 100%; cursor: pointer; background: transparent; position: relative; }
.abs-video-modal { display: none; position: fixed; inset: 0; z-index: 99999; align-items: center; justify-content: center; padding: 24px; }
.abs-video-modal.is-open { display: flex; }
.abs-video-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.78); }
.abs-video-dialog { position: relative; z-index: 1; width: min(960px, 94vw); }
.abs-video-frame { position: relative; padding-top: 56.25%; background: #000; }
.abs-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.abs-video-close { position: absolute; right: 0; top: -48px; border: 0; background: transparent; color: #fff; font-size: 40px; line-height: 1; cursor: pointer; }
body.abs-modal-open { overflow: hidden; }

.abs-generic-page { min-height: 50vh; }

@media screen and (min-width: 992px) {
  .navbar-dropdown-link:hover .abs-process-menu { display: block; }
}

@media screen and (max-width: 991px) {
  .navbar-menu-wrapper { display: none !important; }
  .navbar-menu-wrapper.is-open { display: flex !important; }
  .navbar-menu-buttton { display: block !important; }
  .navbar-menu-wrapper.is-open { position: absolute; left: 0; right: 0; top: 100%; z-index: 1000; background: #fff; flex-direction: column; padding: 1.25rem 5%; box-shadow: 0 12px 24px rgba(0,0,0,.08); }
  .navbar-menu-wrapper.is-open .navbar-menu, .navbar-menu-wrapper.is-open .navbar-button-wrapper { width: 100%; }
  .navbar-menu-wrapper.is-open .navbar-link, .navbar-menu-wrapper.is-open .dropdown-toggle-2 { width: 100%; display: block; padding-top: .7rem; padding-bottom: .7rem; }
  .navbar-menu-wrapper.is-open .abs-process-menu { position: static; box-shadow: none; padding-left: 1rem; }
  .navbar-3 { position: relative; z-index: 1000; }
}


/* v0.2 visual parity fixes */
* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Keep the Process chevron beside the label instead of dropping below it. */
.dropdown-toggle-2.abs-process-toggle {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}
.dropdown-toggle-2.abs-process-toggle .abs-chevron {
  flex: 0 0 auto;
  margin-left: 0;
  vertical-align: 0;
}

/* Recreate the Webflow lightbox overlay/button positioning exactly. */
.story-lightbox-wrapper .lightbox {
  width: 90%;
}
.story-lightbox-wrapper .lightbox-overlay {
  display: block;
}
.story-lightbox-wrapper .lightbox-button {
  display: grid;
}

@media screen and (max-width: 991px) {
  .story-lightbox-wrapper .lightbox { width: 90%; }
}

@media screen and (max-width: 479px) {
  .story-lightbox-wrapper .lightbox { width: 100%; }
}

/* v0.3: match original Webflow responsive source ordering.
   On tablet/mobile Webflow places the question copy before the mountain image. */
@media screen and (max-width: 991px) {
  .info-component .info-content-wrapper { order: -9999; }
}

/* v0.4: native WordPress menu + narrow-mobile overflow fixes */
html, body, .page-wrapper, .main-wrapper {
  width: 100%;
  max-width: 100%;
}
html, body { overflow-x: clip; }
@supports not (overflow: clip) {
  html, body { overflow-x: hidden; }
}

.abs-primary-menu {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.abs-primary-menu > li { position: relative; margin: 0; }
.abs-primary-menu > li > a {
  display: block;
  padding: 1.5rem 1rem 1.5rem 1px;
  color: var(--black);
  font-weight: 500;
  text-decoration: none;
}
.abs-primary-menu > li + li > a { padding-left: 1rem; }
.abs-primary-menu .menu-item-has-children > a {
  position: relative;
  padding-right: 2rem;
}
.abs-primary-menu .menu-item-has-children > a::after {
  content: "";
  position: absolute;
  right: .7rem;
  top: 50%;
  width: .45rem;
  height: .45rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-65%) rotate(45deg);
  transition: transform .2s ease;
}
.abs-primary-menu .menu-item-has-children.is-open > a::after {
  transform: translateY(-35%) rotate(225deg);
}
.abs-primary-menu .sub-menu {
  display: none;
  position: absolute;
  z-index: 1002;
  top: 100%;
  left: .5rem;
  width: 20rem;
  margin: 0;
  padding: 1rem;
  list-style: none;
  background: var(--light-gray);
  border-radius: 1rem;
}
.abs-primary-menu .sub-menu li { margin: 0; }
.abs-primary-menu .sub-menu a { display:block; padding:.55rem .75rem; color:var(--black); text-decoration:none; }
.abs-primary-menu .menu-item-has-children.is-open > .sub-menu { display:block; }

@media screen and (min-width: 992px) {
  .abs-primary-menu .menu-item-has-children:hover > .sub-menu { display:block; }
}

.w-layout-grid > *, .navbar-container > *, .footer-top-component > *, .footer-menu-wrapper > * { min-width: 0; }
img, video, iframe { max-width: 100%; }
.footer-logo { max-width: 100%; height: auto; }

@media screen and (max-width: 991px) {
  .abs-primary-menu { flex-direction: column; align-items: stretch; width:100%; }
  .abs-primary-menu > li > a, .abs-primary-menu > li + li > a { width:100%; padding:.75rem 0; font-size:1.125rem; }
  .abs-primary-menu .menu-item-has-children > a { padding-right:2rem; }
  .abs-primary-menu .menu-item-has-children > a::after { right:.25rem; }
  .abs-primary-menu .sub-menu { display:none; position:static; width:auto; padding:.25rem 0 .75rem 1rem; border-radius:0; background:transparent; }
  .abs-primary-menu .menu-item-has-children.is-open > .sub-menu { display:block; }
  .abs-primary-menu .sub-menu a { padding:.45rem 0; }
}

@media screen and (max-width: 479px) {
  .navbar-container { max-width:100%; min-width:0; }
  .navbar-logo-link { flex:1 1 auto; min-width:0; max-width:calc(100% - 52px); padding-left:0; }
  .navbar-logo { display:block; width:auto; max-width:100%; height:auto; }
  .navbar-menu-buttton { flex:0 0 48px; width:48px; }
  .padding-global, .container-large, .container-medium, .container-small, section, .footer { max-width:100%; min-width:0; }
  .home-services-item, .testimonial-item, .faq-accordion, .cta-component, .story-content-wrapper, .info-content-wrapper { min-width:0; max-width:100%; }
  h1,h2,h3,h4,h5,h6,p,.heading-style-h3,.heading-style-h5,.text-size-medium,.text-block-2,.text-block-4 { overflow-wrap:break-word; word-wrap:break-word; }
  #wpadminbar { min-width:0 !important; max-width:100vw !important; }
}

/* v0.6: keep Webflow desktop max-widths intact.
   v0.5 accidentally replaced the original 80rem containers with 100% width. */
.page-wrapper, .main-wrapper, .navbar-3, .navbar-container, .padding-global,
.container-large, .container-medium, .container-small, .info-component,
.home-services-component, .story-component, .testimonial-component,
.faq-component, .cta-component, .footer-top-component, .footer-menu-wrapper {
  min-width: 0;
}

@media screen and (max-width: 479px) {
  html, body, .page-wrapper, .main-wrapper { overflow-x: hidden !important; }
  .padding-global { width: 100%; box-sizing: border-box; }
  .container-large, .container-medium, .container-small { width: 100%; }
  .info-image-wrapper, .info-content-wrapper, .story-content-wrapper,
  .story-lightbox-wrapper, .faq-title-wrapper, .faq-collection-list-wrapper,
  .testimonial-item, .home-services-item, .cta-content { width: 100%; max-width: 100%; min-width: 0; }
  .navbar-logo-link, .footer-logo-link { min-width: 0; }
  .navbar-logo, .footer-logo { max-width: 100%; height: auto; }
  .faq-question { min-width: 0; }
  .faq-question > span { min-width: 0; overflow-wrap: anywhere; }
}

/* v0.7: homepage is now ordinary Gutenberg content. */
.abs-front-page,
.abs-front-page .abs-home-root,
.abs-front-page .abs-home-root > * {
  margin-top: 0;
  margin-bottom: 0;
}
.abs-home-root { width: 100%; }
.abs-home-root .wp-block-group,
.abs-home-root .wp-block-columns,
.abs-home-root .wp-block-image,
.abs-home-root .wp-block-buttons { margin-block-start: 0; margin-block-end: 0; }
.abs-home-root .wp-block-column { min-width: 0; }
.abs-home-root figure { margin: 0; }

/* Hero: editable Group + Image + Button, visually matching the Webflow hero. */
.abs-home-hero {
  position: relative;
  width: calc(100% - 5rem);
  max-width: 80rem;
  height: 640px;
  margin: .25rem auto 0 !important;
  border-radius: 1rem;
  overflow: hidden;
}
.abs-home-hero > .abs-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.abs-home-hero > .abs-hero-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.abs-home-hero > .wp-block-buttons {
  position: absolute;
  left: 4rem;
  bottom: 11.5rem;
  z-index: 2;
}
.abs-button .wp-block-button__link,
.abs-hero-button .wp-block-button__link,
.abs-cta-button .wp-block-button__link {
  border: .125rem solid var(--primary);
  background: var(--primary);
  color: var(--black);
  border-radius: 10rem;
  padding: .6rem 2rem;
  font-weight: 500;
  text-decoration: none;
}
.abs-button .wp-block-button__link:hover,
.abs-hero-button .wp-block-button__link:hover,
.abs-cta-button .wp-block-button__link:hover {
  border-color: var(--secondary);
  background: var(--secondary);
  color: var(--white);
}

.abs-home-root .info-component,
.abs-home-root .story-component,
.abs-home-root .testimonial-component,
.abs-home-root .faq-component,
.abs-home-root .home-services-component { margin-bottom: 0; }
.abs-info-block h2 { margin-bottom: 1rem; }
.abs-info-block p + p { margin-top: 1.5rem; }

.abs-process-intro { margin-bottom: 3rem !important; }
.abs-process-intro h2 { margin-bottom: .35rem; }
.abs-process-intro .text-block-2 { margin-top: 0; }
.abs-process-label { margin-top: 2.25rem !important; }
.abs-process-grid .home-services-item {
  display: block;
  align-self: start;
}
.abs-process-grid .icon-element { margin-bottom: 1rem; }
.abs-process-grid .icon-element .wp-block-image,
.abs-process-grid .icon-element img { width: 2rem; height: 2rem; object-fit: contain; }
.abs-process-grid h3 { margin-bottom: 1rem; }
.abs-read-more { margin-top: 2rem !important; font-weight: 500; }
.abs-read-more a { color: var(--black); text-decoration: none; }
.abs-read-more a:hover { color: var(--black); }

.abs-story-block h2 { margin-bottom: 2rem; }
.abs-story-block .story-content-wrapper > p + p { margin-top: 1.5rem; }
.abs-story-block .story-content-wrapper > .wp-block-buttons { margin-top: 2rem; }
.abs-story-media { position: relative; width: 90%; margin-left: auto !important; }
.abs-story-media .lightbox-image img { display:block; width:100%; border-radius:1rem; }
.abs-story-media > .wp-block-buttons { position:absolute; left:4%; bottom:4%; z-index:2; }
.abs-video-link .wp-block-button__link {
  background: var(--primary-light);
  color: var(--black);
  border-radius: 10rem;
  padding: .75rem 1.5rem;
  font-weight: 500;
  text-decoration:none;
}
.abs-video-link .wp-block-button__link::after { content:' ▷'; margin-left:.35rem; }

.abs-testimonials-block .testimonial-item { height: 100%; }
.abs-testimonials-block .abs-testimonial-title { margin-bottom: 2rem; }
.abs-testimonials-block .abs-testimonial-author { margin-top: 1.25rem; }

.abs-faq-block .faq-collection-list { display:grid; gap:1rem; }
.abs-faq-item {
  background: var(--light-gray);
  border: 0;
  border-radius: 1rem;
  overflow: hidden;
}
.abs-faq-item summary {
  cursor: pointer;
  list-style: none;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  padding:1.25rem 1.5rem;
  font-size:1.25rem;
  font-weight:500;
  line-height:1.3;
}
.abs-faq-item summary::-webkit-details-marker { display:none; }
.abs-faq-item summary::after {
  content:'+';
  flex:0 0 auto;
  font-size:1.75rem;
  line-height:1;
  font-weight:300;
  transition:transform .2s ease;
}
.abs-faq-item[open] summary::after { transform:rotate(45deg); }
.abs-faq-item > p { padding:0 1.5rem 1.25rem; margin:0; }

.abs-cta-block {
  position:relative;
  overflow:hidden;
  border-radius:1rem;
  padding:8rem 4rem;
  isolation:isolate;
}
.abs-cta-block > .abs-cta-image { position:absolute; inset:0; width:100%; height:100%; z-index:-2; }
.abs-cta-block > .abs-cta-image img { width:100%; height:100%; object-fit:cover; display:block; }
.abs-cta-block::before { content:''; position:absolute; inset:0; z-index:-1; background:#274f4ae6; }
.abs-cta-block .cta-content { max-width:48rem; }
.abs-cta-block .cta-content h2 { margin-bottom:.5rem; }
.abs-cta-block .cta-content > .wp-block-buttons { margin-top:2rem; }

@media screen and (max-width: 991px) {
  .abs-home-hero { width: calc(100% - 5rem); }
  .abs-home-root .info-component .info-content-wrapper { order:-9999; }
  .abs-story-media { width:90%; margin-left:0 !important; }
}

@media screen and (max-width: 767px) {
  .abs-home-hero { width: calc(100% - 2.5rem); }
  .abs-cta-block { padding:4rem 2rem; }
  .abs-faq-item summary { padding:1rem 1.25rem; }
  .abs-faq-item > p { padding:0 1.25rem 1rem; }
}

@media screen and (max-width: 479px) {
  .abs-home-hero {
    width: calc(100% - 2.5rem);
    height:220px;
    margin-top:.25rem !important;
  }
  .abs-home-hero > .abs-hero-image img { object-position:0 0; }
  .abs-home-hero > .wp-block-buttons { display:none; }
  .abs-process-intro { margin-bottom:1.5rem !important; }
  .abs-process-label { margin-top:1.5rem !important; }
  .abs-story-media { width:100%; }
  .abs-cta-block { padding:2rem 1.5rem; }
}

/* v0.9: About Us is ordinary Gutenberg content styled to match Webflow. */
.abs-designed-page,
.abs-about-page,
.abs-about-page > * { margin-top:0; margin-bottom:0; }
.abs-about-page .wp-block-group,
.abs-about-page .wp-block-columns,
.abs-about-page .wp-block-image,
.abs-about-page .wp-block-buttons { margin-block-start:0; margin-block-end:0; }
.abs-about-page .wp-block-column { min-width:0; }
.abs-about-page figure { margin:0; }
.abs-about-page .wp-block-columns.approach-component,
.abs-about-page .wp-block-columns.trust-component {
  display:grid;
  margin-bottom:0;
}
.abs-about-page .approach-component { grid-template-columns:1fr 1fr; }
.abs-about-page .trust-component { grid-template-columns:1fr 1fr; }
.abs-about-page .about-header-component { width:100%; }
.abs-about-page .about-header-component > .abs-about-video-image { width:100%; }
.abs-about-page .abs-about-video-image a { display:block; cursor:pointer; }
.abs-about-page .abs-about-video-image img { display:block; width:100%; border-radius:15px; }
.abs-about-page .approach-list { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.abs-about-page .approach-item { min-width:0; }
.abs-about-page .approach-icon-wrapper .wp-block-image { margin:0; flex:0 0 auto; }
.abs-about-page .approach-icon-wrapper img { width:1rem; height:1rem; display:block; }
.abs-about-page .approach-image-wrapper .wp-block-image,
.abs-about-page .trust-image-wrapper .wp-block-image { width:100%; }
.abs-about-page .approach-image-wrapper img,
.abs-about-page .trust-image-wrapper img { width:100%; border-radius:1rem; display:block; }
.abs-about-page .abs-about-testimonial > p { margin-top:0; }
.abs-about-page .abs-testimonial-disclosure { margin-top:1rem !important; }
.abs-about-page .values-item { margin:0; }
.abs-about-page .values-component { gap:1rem; }
.abs-about-page .abs-about-cta { padding-bottom:1rem; }

@media screen and (max-width: 991px) {
  .abs-about-page .wp-block-columns.approach-component,
  .abs-about-page .wp-block-columns.trust-component { grid-template-columns:1fr; gap:3rem; }
  .abs-about-page .abs-about-trust .trust-content-wrapper { order:-1; }
  .abs-about-page .approach-list { grid-template-columns:1fr; }
}

@media screen and (max-width: 767px) {
  .abs-about-page .approach-list { gap:1.5rem; }
}

@media screen and (max-width: 479px) {
  .abs-about-page .section-about-header { padding-top:0; }
  .abs-about-page .section-about-header .padding-section-large { padding-top:2.5rem; }
  .abs-about-page .abs-about-title { font-size:2.3rem; line-height:1.1; }
  .abs-about-page .approach-list { grid-template-columns:1fr; gap:1.25rem; }
  .abs-about-page .approach-item { display:flex; }
  .abs-about-page .values-item { grid-template-columns:1fr; padding:2rem 1.5rem; }
  .abs-about-page .abs-about-cta { padding-bottom:0; }
}


/* v0.9.2: support WordPress Group inner wrappers on classic themes.
   Some WordPress installs render core/group with .wp-block-group__inner-container.
   Webflow layout classes must therefore apply to that inner container as well. */
.abs-about-page .about-header-component > .wp-block-group__inner-container {
  width: 100%;
}

.abs-about-page .approach-list > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  grid-column-gap: 2rem !important;
  grid-row-gap: 2rem !important;
  padding-top: .5rem;
  padding-bottom: .5rem;
}
.abs-about-page .approach-item > .wp-block-group__inner-container {
  display: flex !important;
  align-items: flex-start !important;
  min-width: 0;
}
.abs-about-page .approach-icon-wrapper > .wp-block-group__inner-container {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}

.abs-about-page .values-component > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-column-gap: 1rem !important;
  grid-row-gap: 1rem !important;
}
.abs-about-page .values-item > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: .75fr 1fr !important;
  grid-column-gap: 4rem !important;
  grid-row-gap: 5rem !important;
  align-items: start !important;
}

/* CTA children can also be wrapped by WordPress. */
.abs-about-page .abs-cta-block > .wp-block-group__inner-container {
  position: static;
  width: 100%;
}
.abs-about-page .abs-cta-block > .wp-block-group__inner-container > .abs-cta-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
  margin: 0;
}
.abs-about-page .abs-cta-block > .wp-block-group__inner-container > .abs-cta-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.abs-about-page .abs-cta-block > .wp-block-group__inner-container > .cta-content {
  position: relative;
  z-index: 1;
  max-width: 48rem;
}

@media screen and (max-width: 991px) {
  .abs-about-page .approach-list > .wp-block-group__inner-container {
    grid-template-columns: 1fr !important;
  }
  .abs-about-page .values-item > .wp-block-group__inner-container {
    grid-template-columns: .5fr 1fr !important;
    grid-column-gap: 2.5rem !important;
  }
}

@media screen and (max-width: 479px) {
  .abs-about-page .values-item > .wp-block-group__inner-container {
    grid-template-columns: 1fr !important;
    grid-row-gap: 1rem !important;
  }
  .abs-about-page .approach-list > .wp-block-group__inner-container {
    grid-template-columns: 1fr !important;
    grid-row-gap: 1.25rem !important;
  }
}

/* v0.9.3: robust Gutenberg layout overrides for About Us.
   WordPress block-library/global styles can override display/layout rules,
   so the Webflow-equivalent layout is enforced on the actual block nodes. */
@media screen and (min-width: 992px) {
  .abs-about-page .approach-component,
  .abs-about-page .wp-block-columns.approach-component {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 6rem !important;
    row-gap: 6rem !important;
    align-items: center !important;
  }

  .abs-about-page .approach-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 2rem !important;
    row-gap: 2rem !important;
    width: 100% !important;
  }

  .abs-about-page .approach-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    min-width: 0 !important;
  }

  .abs-about-page .approach-icon-wrapper {
    display: flex !important;
    flex: 0 0 2.5rem !important;
    justify-content: center !important;
    align-items: center !important;
    width: 2.5rem !important;
    height: 2.5rem !important;
    margin-right: 1rem !important;
  }

  .abs-about-page .approach-item-content {
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  .abs-about-page .trust-component,
  .abs-about-page .wp-block-columns.trust-component {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 6rem !important;
    row-gap: 6rem !important;
    align-items: center !important;
  }

  .abs-about-page .values-component {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  .abs-about-page .values-item {
    display: grid !important;
    grid-template-columns: minmax(0, .75fr) minmax(0, 1fr) !important;
    column-gap: 4rem !important;
    row-gap: 5rem !important;
    align-items: start !important;
    padding: 3rem 4rem !important;
  }
}

/* CTA: force Gutenberg image to behave as the Webflow background layer. */
.abs-about-page .abs-cta-block {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
}
.abs-about-page .abs-cta-block > .abs-cta-image,
.abs-about-page .abs-cta-block > .wp-block-group__inner-container > .abs-cta-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  z-index: -2 !important;
}
.abs-about-page .abs-cta-block .abs-cta-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.abs-about-page .abs-cta-block::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: #274f4ae6 !important;
  z-index: -1 !important;
}
.abs-about-page .abs-cta-block .cta-content {
  position: relative !important;
  z-index: 1 !important;
}

@media screen and (max-width: 991px) {
  .abs-about-page .approach-component,
  .abs-about-page .wp-block-columns.approach-component,
  .abs-about-page .trust-component,
  .abs-about-page .wp-block-columns.trust-component {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 3rem !important;
  }
  .abs-about-page .approach-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .abs-about-page .approach-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
  }
  .abs-about-page .values-item {
    display: grid !important;
    grid-template-columns: minmax(0, .5fr) minmax(0, 1fr) !important;
    column-gap: 2.5rem !important;
  }
}

@media screen and (max-width: 479px) {
  .abs-about-page .values-item {
    grid-template-columns: 1fr !important;
    row-gap: 1rem !important;
  }
}


/* v0.9.4 About Us - native Gutenberg structure. */
.abs-about-page .abs-about-hero-image,
.abs-about-page .abs-about-hero-image img {
  display:block;
  width:100%;
}
.abs-about-page .abs-about-hero-image img { border-radius:15px; }

.abs-about-page .abs-mission-list > .wp-block-group__inner-container {
  display:block !important;
}
.abs-about-page .abs-mission-row {
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:2rem !important;
  margin:0 0 2rem !important;
}
.abs-about-page .abs-mission-row:last-child { margin-bottom:0 !important; }
.abs-about-page .abs-mission-row > .wp-block-column {
  flex:1 1 0 !important;
  min-width:0 !important;
}
.abs-about-page .abs-mission-item {
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:flex-start !important;
  gap:1rem !important;
  margin:0 !important;
}
.abs-about-page .abs-mission-item > .approach-icon-wrapper {
  flex:0 0 2.5rem !important;
  width:2.5rem !important;
  max-width:2.5rem !important;
  height:2.5rem !important;
  min-height:2.5rem !important;
  margin:0 !important;
}
.abs-about-page .abs-mission-item > .approach-item-content {
  flex:1 1 auto !important;
  min-width:0 !important;
}
.abs-about-page .abs-mission-item .approach-icon-wrapper figure,
.abs-about-page .abs-mission-item .approach-icon-wrapper img { margin:0 !important; }
.abs-about-page .abs-mission-item .heading-style-h5 { margin:0 !important; }

.abs-about-page .values-component > .wp-block-group__inner-container {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:1rem !important;
}
.abs-about-page .values-item {
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:flex-start !important;
  gap:4rem !important;
  background-color:var(--light-gray) !important;
  border-radius:1rem !important;
  padding:3rem 4rem !important;
}
.abs-about-page .values-item > .values-title-wrapper {
  flex:0 0 42.857% !important;
  width:42.857% !important;
  max-width:42.857% !important;
}
.abs-about-page .values-item > .approach-content-wrapper {
  flex:0 0 57.143% !important;
  width:57.143% !important;
  max-width:57.143% !important;
}
.abs-about-page .values-item p { margin:0 !important; }

.abs-about-page .abs-cta-cover {
  position:relative;
  border-radius:1rem !important;
  overflow:hidden !important;
  padding:8rem 4rem !important;
  min-height:0 !important;
  align-items:center !important;
  justify-content:flex-start !important;
}
.abs-about-page .abs-cta-cover .wp-block-cover__background {
  background:#274f4a !important;
  opacity:.9 !important;
}
.abs-about-page .abs-cta-cover .wp-block-cover__image-background {
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.abs-about-page .abs-cta-cover .wp-block-cover__inner-container {
  width:100% !important;
  max-width:48rem !important;
  margin:0 !important;
  position:relative !important;
  z-index:2 !important;
}
.abs-about-page .abs-cta-cover h2 { margin-bottom:.5rem !important; }
.abs-about-page .abs-cta-cover .wp-block-buttons { margin-top:2rem !important; }

@media screen and (max-width:991px) {
  .abs-about-page .abs-mission-row {
    flex-direction:column !important;
    gap:1.5rem !important;
  }
  .abs-about-page .abs-mission-row > .wp-block-column {
    flex-basis:100% !important;
    width:100% !important;
  }
  .abs-about-page .abs-mission-row-second:empty { display:none !important; }
  .abs-about-page .values-item { gap:2.5rem !important; }
  .abs-about-page .abs-cta-cover { padding:5rem 3rem !important; }
}

@media screen and (max-width:479px) {
  .abs-about-page .abs-mission-row { gap:1.25rem !important; margin-bottom:1.25rem !important; }
  .abs-about-page .values-item {
    flex-direction:column !important;
    gap:1rem !important;
    padding:2rem 1.5rem !important;
  }
  .abs-about-page .values-item > .values-title-wrapper,
  .abs-about-page .values-item > .approach-content-wrapper {
    flex-basis:100% !important;
    width:100% !important;
    max-width:100% !important;
  }
  .abs-about-page .abs-cta-cover { padding:2rem 1.5rem !important; }
}


/* v0.9.5 About Us: exact Mission/Core Values layout from original Webflow. */
@media screen and (min-width: 992px) {
  .abs-about-page .abs-mission-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-column-gap: 2rem !important;
    grid-row-gap: 2rem !important;
    padding-top: .5rem !important;
    padding-bottom: .5rem !important;
    width: 100% !important;
  }
  .abs-about-page .abs-mission-list > .wp-block-group__inner-container {
    display: contents !important;
  }
  .abs-about-page .abs-mission-item {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  .abs-about-page .abs-mission-item > .wp-block-group__inner-container {
    display: contents !important;
  }
  .abs-about-page .abs-mission-item .approach-icon-wrapper {
    flex: 0 0 2.5rem !important;
    width: 2.5rem !important;
    min-width: 2.5rem !important;
    height: 2.5rem !important;
    margin: 0 1rem 0 0 !important;
  }
  .abs-about-page .abs-mission-item .approach-item-content {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
  }

  .abs-about-page .values-item {
    display: grid !important;
    grid-template-columns: minmax(0, .75fr) minmax(0, 1fr) !important;
    grid-column-gap: 4rem !important;
    grid-row-gap: 5rem !important;
    align-items: start !important;
    padding: 3rem 4rem !important;
  }
  .abs-about-page .values-item > .values-title-wrapper,
  .abs-about-page .values-item > .approach-content-wrapper {
    width: auto !important;
    max-width: none !important;
    flex: none !important;
  }
}

@media screen and (max-width: 991px) {
  .abs-about-page .abs-mission-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    padding-top: .5rem !important;
    padding-bottom: .5rem !important;
  }
  .abs-about-page .abs-mission-list > .wp-block-group__inner-container,
  .abs-about-page .abs-mission-item > .wp-block-group__inner-container {
    display: contents !important;
  }
  .abs-about-page .abs-mission-item {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 0 !important;
  }
  .abs-about-page .abs-mission-item .approach-icon-wrapper {
    flex: 0 0 2.5rem !important;
    width: 2.5rem !important;
    min-width: 2.5rem !important;
    height: 2.5rem !important;
    margin: 0 1rem 0 0 !important;
  }
}


/* v0.9.6 About Us: center the H1 block exactly like the original Webflow page. */
.abs-about-page .section-about-header .text-align-center {
  width: 100% !important;
  text-align: center !important;
}
.abs-about-page .section-about-header .max-width-large {
  width: 100% !important;
  max-width: 48rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.abs-about-page .abs-about-title {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}


/* v0.9.7 About Us: Gutenberg Columns must fully stack on phones.
   Core block styles keep column flex sizing unless it is explicitly reset. */
@media screen and (max-width: 767px) {
  .abs-about-page .values-item.wp-block-columns {
    display: block !important;
    grid-template-columns: none !important;
    padding: 2rem 1.5rem !important;
    gap: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }
  .abs-about-page .values-item.wp-block-columns > .wp-block-column,
  .abs-about-page .values-item > .values-title-wrapper,
  .abs-about-page .values-item > .approach-content-wrapper {
    display: block !important;
    flex: none !important;
    flex-basis: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .abs-about-page .values-item > .approach-content-wrapper {
    margin-top: 1rem !important;
  }
  .abs-about-page .values-item .heading-style-h3,
  .abs-about-page .values-item .text-size-medium,
  .abs-about-page .values-item p {
    position: static !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }
}


/* v0.10 Our Investment Philosophy - Gutenberg implementation of Webflow layout. */
.abs-philosophy-page .section-about-header .text-align-center {
  width: 100% !important;
  text-align: center !important;
}
.abs-philosophy-page .section-about-header .max-width-large {
  width: 100% !important;
  max-width: 48rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.abs-philosophy-page .abs-philosophy-title {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
.abs-philosophy-page .abs-philosophy-approach.wp-block-columns {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
  gap: 6rem !important;
  align-items: center !important;
}
.abs-philosophy-page .abs-philosophy-approach > .wp-block-column {
  flex: none !important;
  min-width: 0 !important;
}
.abs-philosophy-page .approach-image-wrapper figure,
.abs-philosophy-page .approach-image-wrapper img {
  width: 100% !important;
  margin: 0 !important;
}
.abs-philosophy-page .abs-philosophy-values > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1rem !important;
}
.abs-philosophy-page .values-item.wp-block-columns {
  display: grid !important;
  grid-template-columns: minmax(0,.75fr) minmax(0,1fr) !important;
  column-gap: 4rem !important;
  row-gap: 5rem !important;
  align-items: start !important;
  background-color: var(--light-gray) !important;
  border-radius: 1rem !important;
  padding: 3rem 4rem !important;
}
.abs-philosophy-page .values-item > .wp-block-column {
  flex: none !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
}
.abs-philosophy-page .values-item p { margin: 0 !important; }
.abs-philosophy-page .text-block-3 { margin-top: 10px !important; }
.abs-philosophy-page .abs-cta-cover {
  position: relative !important;
  border-radius: 1rem !important;
  overflow: hidden !important;
  padding: 8rem 4rem !important;
  min-height: 0 !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
.abs-philosophy-page .abs-cta-cover .wp-block-cover__background {
  background: #274f4a !important;
  opacity: .9 !important;
}
.abs-philosophy-page .abs-cta-cover .wp-block-cover__image-background {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 1rem !important;
}
.abs-philosophy-page .abs-cta-cover .wp-block-cover__inner-container {
  width: 100% !important;
  max-width: 48rem !important;
  margin: 0 !important;
  position: relative !important;
  z-index: 2 !important;
}
.abs-philosophy-page .abs-cta-cover h2 { margin-bottom: .5rem !important; }
.abs-philosophy-page .abs-cta-cover .wp-block-buttons { margin-top: 2rem !important; }

@media screen and (max-width: 991px) {
  .abs-philosophy-page .abs-philosophy-approach.wp-block-columns {
    grid-template-columns: 1fr !important;
    gap: 3rem !important;
  }
  .abs-philosophy-page .values-item.wp-block-columns {
    grid-template-columns: minmax(0,.5fr) minmax(0,1fr) !important;
    column-gap: 3rem !important;
    row-gap: 4rem !important;
  }
  .abs-philosophy-page .abs-cta-cover { padding: 5rem 3rem !important; }
}
@media screen and (max-width: 767px) {
  .abs-philosophy-page .values-item.wp-block-columns {
    display: block !important;
    grid-template-columns: none !important;
    padding: 2rem 1.5rem !important;
    gap: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }
  .abs-philosophy-page .values-item.wp-block-columns > .wp-block-column,
  .abs-philosophy-page .values-item > .values-title-wrapper,
  .abs-philosophy-page .values-item > .approach-content-wrapper {
    display: block !important;
    flex: none !important;
    flex-basis: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .abs-philosophy-page .values-item > .approach-content-wrapper { margin-top: 1rem !important; }
  .abs-philosophy-page .abs-cta-cover { padding: 4rem 2rem !important; }
}
@media screen and (max-width: 479px) {
  .abs-philosophy-page .abs-cta-cover {
    border-top-left-radius: 3rem !important;
    border-bottom-right-radius: 3rem !important;
    padding: 2rem 1.5rem !important;
  }
}


/* v0.10.1 Philosophy visual parity fixes. */
/* Webflow .image uses a 1rem radius. Gutenberg puts the class on <figure>,
   so apply it to both the wrapper and the actual image. */
.abs-philosophy-page .approach-image-wrapper .wp-block-image,
.abs-philosophy-page .approach-image-wrapper figure,
.abs-philosophy-page .approach-image-wrapper img {
  border-radius: 1rem !important;
}
.abs-philosophy-page .approach-image-wrapper .wp-block-image,
.abs-philosophy-page .approach-image-wrapper figure {
  overflow: hidden !important;
}

/* Prevent Gutenberg's block-gap margins from stacking on top of the
   original Webflow spacing around "Here’s how we do it". */
.abs-philosophy-page .section-about-values .padding-section-large,
.abs-philosophy-page .section-about-values .padding-section-large > .wp-block-group__inner-container,
.abs-philosophy-page .section-about-values .max-width-medium,
.abs-philosophy-page .section-about-values .max-width-medium > .wp-block-group__inner-container,
.abs-philosophy-page .section-about-values .margin-bottom.margin-small,
.abs-philosophy-page .section-about-values .margin-bottom.margin-small > .wp-block-group__inner-container {
  row-gap: 0 !important;
  column-gap: 0 !important;
}
.abs-philosophy-page .section-about-values .margin-bottom.margin-large {
  margin: 0 0 3rem 0 !important;
}
.abs-philosophy-page .section-about-values .margin-bottom.margin-small {
  margin: 0 !important;
}
.abs-philosophy-page .section-about-values .margin-bottom.margin-large + .abs-philosophy-values,
.abs-philosophy-page .section-about-values .abs-philosophy-values {
  margin-top: 0 !important;
}
.abs-philosophy-page .section-about-values .abs-philosophy-values + .text-block-3 {
  margin-top: 10px !important;
}

@media screen and (max-width: 479px) {
  .abs-philosophy-page .section-about-values .margin-bottom.margin-large {
    margin-bottom: 1.5rem !important;
  }
}


/* v0.10.2 Shared two-column information cards.
   About Core Values and Philosophy process rows now use one canonical
   component instead of page-specific spacing rules. */
.abs-about-page .values-component > .wp-block-group__inner-container,
.abs-philosophy-page .values-component > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1rem !important;
}

.abs-about-page .values-component > .wp-block-group__inner-container > .values-item,
.abs-philosophy-page .values-component > .wp-block-group__inner-container > .values-item {
  margin: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.abs-about-page .values-item.wp-block-columns,
.abs-philosophy-page .values-item.wp-block-columns {
  display: grid !important;
  grid-template-columns: minmax(0, .75fr) minmax(0, 1fr) !important;
  column-gap: 4rem !important;
  row-gap: 0 !important;
  align-items: start !important;
  background-color: var(--light-gray) !important;
  border-radius: 1rem !important;
  padding: 3rem 4rem !important;
}

.abs-about-page .values-item.wp-block-columns > .wp-block-column,
.abs-philosophy-page .values-item.wp-block-columns > .wp-block-column {
  flex: none !important;
  flex-basis: auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
}

.abs-about-page .values-item.wp-block-columns p,
.abs-philosophy-page .values-item.wp-block-columns p {
  margin: 0 !important;
}

@media screen and (max-width: 767px) {
  .abs-about-page .values-item.wp-block-columns,
  .abs-philosophy-page .values-item.wp-block-columns {
    display: block !important;
    grid-template-columns: none !important;
    padding: 2rem 1.5rem !important;
  }

  .abs-about-page .values-item.wp-block-columns > .wp-block-column + .wp-block-column,
  .abs-philosophy-page .values-item.wp-block-columns > .wp-block-column + .wp-block-column {
    margin-top: 1rem !important;
  }
}

/* v0.12: Process pages use the original Webflow component classes.
   Keep overrides minimal: only neutralize Gutenberg wrappers/margins and
   reproduce the Webflow node-order rule that cannot be carried over by class. */
.abs-service-page,
.abs-service-page > *,
.abs-service-page .wp-block-group,
.abs-service-page .wp-block-image,
.abs-service-page .wp-block-buttons,
.abs-service-page .wp-block-paragraph {
  margin-block-start: 0;
  margin-block-end: 0;
}
.abs-service-page figure { margin: 0; }
.abs-service-page .service-what-image-wrapper figure,
.abs-service-page .service-info-image-wrapper figure {
  width: 100%;
  overflow: hidden;
  border-radius: 1rem;
}
.abs-service-page .service-what-image-wrapper img,
.abs-service-page .service-info-image-wrapper img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 1rem;
}
.abs-service-page .wp-block-buttons { margin: 0; }
.abs-service-page .abs-button .wp-block-button__link {
  border: .125rem solid var(--primary);
  background: var(--primary);
  color: var(--black);
  border-radius: 10rem;
  padding: .6rem 2rem;
  font-weight: 500;
  text-decoration: none;
}
.abs-service-page .abs-button .wp-block-button__link:hover {
  border-color: var(--secondary);
  background: var(--secondary);
  color: var(--white);
}
.abs-service-page .services-item .icon-element figure { width: auto; }
.abs-service-page .services-item .icon-element img {
  width: 2rem;
  height: 2rem;
  object-fit: contain;
}
.abs-service-page .abs-service-read-more { margin: 0; }
.abs-service-page .abs-service-read-more .arrow-link {
  color: var(--black);
  text-decoration: none;
}
.abs-service-page .abs-service-cta .abs-cta-cover { margin: 0; }

/* Webflow used per-node order IDs for this behavior. */
@media screen and (max-width: 991px) {
  .abs-service-page .service-what-content-wrapper { order: -9999; }
}

/* Prevent Gutenberg's block spacing from adding extra vertical gaps on phone. */
@media screen and (max-width: 479px) {
  .abs-service-page .section-services-header,
  .abs-service-page .section-service-what,
  .abs-service-page .section-service-info,
  .abs-service-page .section-service-more,
  .abs-service-page .section-cta { margin: 0; }
}


/* v0.13: repaired Process Gutenberg tree. The page now contains exactly one
   abs-service-page root; keep it as a normal document-flow container. */
.abs-designed-page > .abs-service-page {
  width: 100%;
  margin: 0 !important;
}

/* Gutenberg 7.x renders core/group with an extra inner-container. Webflow's
   service CSS was authored for the children to sit directly inside each
   wrapper (especially the grid components). Make that compatibility wrapper
   layout-transparent only on the four Process pages. */
.abs-service-page .wp-block-group > .wp-block-group__inner-container {
  display: contents !important;
}

/* v0.15 Contact page + Fluent Forms visual parity. */
.abs-contact-page,
.abs-contact-page > *,
.abs-contact-page .wp-block-group,
.abs-contact-page .wp-block-columns,
.abs-contact-page .wp-block-column,
.abs-contact-page .wp-block-image,
.abs-contact-page .wp-block-paragraph,
.abs-contact-page .wp-block-heading {
  margin-block-start: 0;
  margin-block-end: 0;
}
.abs-contact-page figure { margin: 0; }

/* Gutenberg compatibility: Webflow classes expect children directly inside
   the component wrappers. */
.abs-contact-page .abs-contact-section .wp-block-group > .wp-block-group__inner-container,
.abs-contact-page .abs-contact-faq-section .wp-block-group > .wp-block-group__inner-container {
  display: contents !important;
}

.abs-contact-page .abs-contact-component.wp-block-columns {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
  gap: 6rem !important;
  align-items: start !important;
  width: 100%;
}
.abs-contact-page .abs-contact-component > .wp-block-column {
  flex: none !important;
  min-width: 0 !important;
  width: auto !important;
  margin: 0 !important;
}
.abs-contact-page .abs-contact-content { padding-top: 4rem; }
.abs-contact-page .abs-contact-title {
  margin: 0 !important;
  max-width: 32rem;
  font-size: 4rem;
  font-weight: 500;
  line-height: 1.1;
}
.abs-contact-page .abs-contact-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: start !important;
  gap: 1rem !important;
  margin-top: 5.5rem !important;
  padding: .5rem 0 !important;
}
.abs-contact-page .abs-contact-chip {
  display: flex !important;
  align-items: center !important;
  width: auto !important;
  max-width: 100%;
  background: var(--light-gray) !important;
  border-radius: 999px !important;
  padding: 0 1.5rem 0 0 !important;
  overflow: hidden;
}
.abs-contact-page .abs-contact-chip .contact-icon-wrapper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 2.5rem !important;
  width: 2.5rem !important;
  height: 2.5rem !important;
  margin: 0 1rem 0 0 !important;
  padding: 0 !important;
  border-radius: 999px !important;
  background: var(--primary-light) !important;
  color: var(--primary) !important;
}
.abs-contact-page .abs-contact-icon-image,
.abs-contact-page .abs-contact-icon-image img {
  display: block !important;
  width: 1.25rem !important;
  height: 1.25rem !important;
  color: var(--primary) !important;
}
.abs-contact-page .abs-contact-icon-image img { object-fit: contain; }
.abs-contact-page .abs-contact-chip-text {
  margin: 0 !important;
  padding: .45rem 0 !important;
  line-height: 1.35;
  font-size: 1rem;
}
.abs-contact-page .abs-contact-chip-text a {
  color: var(--black);
  text-decoration: none;
}

.abs-contact-page .abs-contact-form-card {
  background: var(--light-gray) !important;
  border-radius: 1rem !important;
  padding: 3rem 2rem !important;
  min-width: 0 !important;
}
.abs-contact-page .abs-contact-form-card .fluentform,
.abs-contact-page .abs-contact-form-card .fluentform_wrapper,
.abs-contact-page .abs-contact-form-card form { width: 100%; }
.abs-contact-page .abs-stewardship-contact-form .ff-el-group { margin-bottom: 1.5rem !important; }
.abs-contact-page .abs-stewardship-contact-form .ff-t-container {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
  gap: 1.5rem !important;
  margin: 0 !important;
  width: 100% !important;
}
.abs-contact-page .abs-stewardship-contact-form .ff-t-cell {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.abs-contact-page .abs-stewardship-contact-form .ff-el-input--label {
  margin: 0 0 .5rem !important;
}
.abs-contact-page .abs-stewardship-contact-form .ff-el-input--label label {
  color: var(--black) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
}
.abs-contact-page .abs-stewardship-contact-form .ff-el-form-control {
  width: 100% !important;
  min-height: 3rem !important;
  margin: 0 !important;
  padding: .65rem 1rem !important;
  border: 0 !important;
  border-radius: .5rem !important;
  background: var(--white) !important;
  color: var(--black) !important;
  box-shadow: none !important;
  font: inherit !important;
}
.abs-contact-page .abs-stewardship-contact-form textarea.ff-el-form-control {
  min-height: 8rem !important;
  padding-top: .75rem !important;
  resize: vertical;
}
.abs-contact-page .abs-stewardship-contact-form .ff-el-form-control::placeholder {
  color: #111;
  opacity: .42;
}
.abs-contact-page .abs-stewardship-contact-form .ff-btn-submit {
  border: .125rem solid var(--primary) !important;
  background: var(--primary) !important;
  color: var(--black) !important;
  border-radius: 999px !important;
  padding: .6rem 2rem !important;
  min-height: 0 !important;
  font: inherit !important;
  font-weight: 500 !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background-color .2s ease,border-color .2s ease,color .2s ease;
}
.abs-contact-page .abs-stewardship-contact-form .ff-btn-submit:hover {
  border-color: var(--secondary) !important;
  background: var(--secondary) !important;
  color: var(--white) !important;
}
.abs-contact-page .abs-stewardship-contact-form .ff-el-is-error .ff-el-form-control {
  outline: 1px solid #c94d4d !important;
}
.abs-contact-page .abs-stewardship-contact-form .error.text-danger,
.abs-contact-page .abs-stewardship-contact-form .ff-el-is-error .text-danger {
  color: #c94d4d !important;
  font-size: .875rem;
  margin-top: .35rem;
}
.abs-contact-page .ff-message-success {
  background: transparent !important;
  border: 2px solid var(--light-gray) !important;
  border-radius: 2rem 0 2rem 0 !important;
  padding: 1.5rem !important;
  box-shadow: none !important;
}

.abs-contact-page .abs-contact-faq-section { padding-top: 1rem; }
.abs-contact-page .abs-contact-faq .abs-faq-item > p + p { padding-top: 0; margin-top: -.25rem; }

@media screen and (max-width: 991px) {
  .abs-contact-page .abs-contact-component.wp-block-columns {
    grid-template-columns: 1fr !important;
    gap: 3rem !important;
  }
  .abs-contact-page .abs-contact-content { padding-top: 0; }
  .abs-contact-page .abs-contact-list { margin-top: 3rem !important; }
}

@media screen and (max-width: 767px) {
  .abs-contact-page .abs-contact-title { font-size: 2.5rem; }
  .abs-contact-page .abs-contact-form-card { padding: 2rem 1.5rem !important; }
  .abs-contact-page .abs-stewardship-contact-form .ff-t-container {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  .abs-contact-page .abs-stewardship-contact-form .ff-t-cell + .ff-t-cell { margin-top: 1.5rem !important; }
  .abs-contact-page .abs-contact-chip { max-width: 100%; }
}

@media screen and (max-width: 479px) {
  .abs-contact-page .abs-contact-list { margin-top: 2rem !important; }
  .abs-contact-page .abs-contact-chip { padding-right: 1rem !important; }
  .abs-contact-page .abs-contact-chip-text { font-size: .95rem; }
  .abs-contact-page .abs-contact-faq-section { padding-top: 0; }
}

/* v0.15.4: definitive Contact layout.
   Do not use core/columns for the main contact shell. It carries WordPress
   flex-basis/intrinsic sizing rules that repeatedly narrowed the form. */
.abs-contact-page .abs-contact-section,
.abs-contact-page .abs-contact-section .padding-global,
.abs-contact-page .abs-contact-section .container-large,
.abs-contact-page .abs-contact-grid,
.abs-contact-page .abs-contact-grid > .wp-block-group,
.abs-contact-page .abs-contact-form-card {
  box-sizing: border-box !important;
}

.abs-contact-page .abs-contact-section {
  width: 100% !important;
}

.abs-contact-page .abs-contact-section .padding-global {
  width: 100% !important;
}

/* Contact intentionally uses a wider working area than the generic 80rem
   site container, matching the original Webflow contact page. */
.abs-contact-page .abs-contact-section .container-large {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.abs-contact-page .abs-contact-grid {
  display: grid !important;
  width: min(96rem, 100%) !important;
  max-width: none !important;
  margin: 0 !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  column-gap: 6rem !important;
  row-gap: 6rem !important;
  align-items: start !important;
}

.abs-contact-page .abs-contact-grid > .wp-block-group {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}

.abs-contact-page .abs-contact-form-card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  justify-self: stretch !important;
}

.abs-contact-page .abs-contact-form-card > .wp-block-group__inner-container,
.abs-contact-page .abs-contact-form-card .fluentform,
.abs-contact-page .abs-contact-form-card .fluentform_wrapper,
.abs-contact-page .abs-contact-form-card form,
.abs-contact-page .abs-contact-form-card .ff-el-form-control {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

@media screen and (max-width: 991px) {
  .abs-contact-page .abs-contact-grid {
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 3rem !important;
  }

  .abs-contact-page .abs-contact-grid > .wp-block-group,
  .abs-contact-page .abs-contact-form-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }
}

@media screen and (max-width: 767px) {
  .abs-contact-page .abs-contact-section .padding-global {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  .abs-contact-page .abs-contact-grid {
    width: 100% !important;
  }

  .abs-contact-page .abs-contact-form-card {
    padding: 2rem 1.5rem !important;
  }
}


/* v0.15.5: the form card is now plain shortcode output, not core/group.
   Make the rendered card itself the second grid item and let it fill the track. */
.abs-contact-page .abs-contact-grid > .wp-block-group__inner-container {
  display: contents !important;
}
.abs-contact-page .abs-contact-grid .abs-contact-form-card {
  display: block !important;
  grid-column: 2 !important;
  justify-self: stretch !important;
  align-self: start !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.abs-contact-page .abs-contact-grid .abs-contact-form-card > .fluentform,
.abs-contact-page .abs-contact-grid .abs-contact-form-card > .fluentform_wrapper,
.abs-contact-page .abs-contact-grid .abs-contact-form-card .fluentform,
.abs-contact-page .abs-contact-grid .abs-contact-form-card .fluentform_wrapper,
.abs-contact-page .abs-contact-grid .abs-contact-form-card form {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}
@media screen and (max-width: 991px) {
  .abs-contact-page .abs-contact-grid .abs-contact-form-card {
    grid-column: 1 !important;
    width: 100% !important;
  }
}


/* v0.20 disclosure pages */
.abs-legal-page .abs-legal-main { padding-top: 5.5rem; padding-bottom: 4.5rem; }
.abs-legal-page .abs-legal-title {
  max-width: 70rem;
  margin: 0 0 2.5rem;
  font-size: clamp(2.7rem, 5vw, 5.25rem);
  line-height: .98;
  font-weight: 500;
  letter-spacing: -.035em;
}
.abs-legal-page .abs-legal-subtitle {
  margin: 4.5rem 0 1.5rem;
  font-size: clamp(2rem, 3vw, 3.25rem);
  line-height: 1.05;
  font-weight: 500;
}
.abs-legal-page .abs-legal-intro {
  max-width: 75rem;
  margin: 0 0 1.25rem;
  font-size: 1.15rem;
  line-height: 1.55;
}
.abs-legal-page .abs-disclosure-doc {
  max-width: 75rem;
  margin: 2rem 0 0;
  padding: 1.65rem 1.8rem;
  border-radius: 1rem;
  background: var(--light-gray, #f3f3f3);
}
.abs-legal-page .abs-disclosure-doc-title { margin: 0; }
.abs-legal-page .abs-disclosure-doc-title a {
  color: inherit;
  font-size: 1.35rem;
  line-height: 1.3;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: .16em;
}
.abs-legal-page .abs-disclosure-doc-description {
  margin: .85rem 0 0;
  max-width: 68rem;
  font-size: 1rem;
  line-height: 1.55;
}
.abs-legal-page .abs-disclosure-cta { margin-top: 1rem; }

@media screen and (max-width: 767px) {
  .abs-legal-page .abs-legal-main { padding-top: 3rem; padding-bottom: 2.5rem; }
  .abs-legal-page .abs-legal-title { margin-bottom: 1.75rem; font-size: 2.35rem; line-height: 1.03; }
  .abs-legal-page .abs-legal-subtitle { margin-top: 3rem; font-size: 1.85rem; }
  .abs-legal-page .abs-legal-intro { font-size: 1rem; }
  .abs-legal-page .abs-disclosure-doc { margin-top: 1rem; padding: 1.25rem; }
  .abs-legal-page .abs-disclosure-doc-title a { font-size: 1.1rem; }
  .abs-legal-page .abs-disclosure-doc-description { font-size: .95rem; }
}

/* v0.22: match the original Webflow logo scale on phones.
   Desktop sizing is intentionally untouched. */
@media screen and (max-width: 767px) {
  .navbar-logo-link {
    flex: 0 1 auto !important;
    width: auto !important;
    max-width: calc(100% - 64px) !important;
  }
  .navbar-logo {
    display: block !important;
    width: 255px !important;
    max-width: 100% !important;
    height: auto !important;
  }
  .footer-logo-link {
    display: inline-block !important;
    width: auto !important;
    max-width: 100% !important;
  }
  .footer-logo {
    display: block !important;
    width: 265px !important;
    max-width: 100% !important;
    height: auto !important;
  }
}


/* v0.23: keep the desktop footer brand mark at the same scale as the header logo.
   Mobile logo sizing remains controlled by the v0.22 rules above. */
@media screen and (min-width: 768px) {
  .navbar-logo,
  .footer-logo {
    width: 250px !important;
    max-width: 250px !important;
    height: auto !important;
  }
}
