/* /css/site-overrides.css */
/*
 * Additions on top of the migrated WordPress theme CSS. Visual design unchanged;
 * accessibility and no-JS fallbacks only.
 */

/* Keyboard users can open the Services dropdown (theme opens it on :hover only). */
header#pq-header .pq-bottom-header .navbar .navbar-nav li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  display: block;
}

/* Desktop header stays one row. The theme set the dropdown's position: absolute only inside its
   :hover rule, so a dropdown held open by :focus-within (a clicked or tabbed-to menu link keeps
   focus, and the header persists across client-side navigation) fell into the flex row once the
   pointer left: the header grew to ~340px, the logo squashed, labels wrapped and the
   appointment button clipped until a reload cleared focus. Out of flow whatever opens it. */
@media (min-width: 1024px) {
  header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 999;
  }
  header#pq-header .pq-bottom-header .navbar .navbar-brand,
  header#pq-header .pq-bottom-header .navbar .pq-menu-search-block,
  header#pq-header .pq-bottom-header .navbar .pq-button {
    flex-shrink: 0;
  }
  /* .img-fluid's max-width: 100% let a shrinking flex item squash the fixed-height logo. */
  header#pq-header .pq-bottom-header .navbar .navbar-brand img {
    max-width: none;
  }
  header#pq-header .pq-bottom-header .navbar .navbar-nav > li > a {
    white-space: nowrap;
  }
}

/* Visible focus for keyboard navigation. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #52b87b;
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  background: #fff;
  color: #18100f;
  padding: 10px 16px;
}
.skip-link:focus {
  left: 10px;
  top: 10px;
}

/* Preloader failsafe: SiteBehaviours hides it on hydration; if the page's JavaScript never runs
   (blocked or failed chunk), it still fades out and stops taking clicks after 5s. */
#pq-loading {
  animation: pq-loading-failsafe 0.4s ease 5s forwards;
}
@keyframes pq-loading-failsafe {
  to {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* Preloader never blocks the page for visitors without JavaScript. */
@media (scripting: none) {
  #pq-loading {
    display: none !important;
  }
  .elementor-invisible {
    visibility: visible;
  }
}

/* Header search form is hidden until the search button is pressed (jQuery slideToggle in WordPress). */
.pq-search-form:not(.pq-form-show) {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .animated {
    animation: none !important;
  }
}

/* WordPress core: emoji images saved in content (wp-emoji-styles). */
img.wp-smiley,
img.emoji {
  display: inline !important;
  border: none !important;
  box-shadow: none !important;
  height: 1em !important;
  width: 1em !important;
  margin: 0 0.07em !important;
  vertical-align: -0.1em !important;
  background: none !important;
  padding: 0 !important;
}

/* Links inside body copy are underlined so they are not identified by colour alone (WCAG 1.4.1). */
.nl-postbox-details-article .pq-blog-contain p a:not(.pq-button),
.nl-postbox-details-article .pq-blog-contain li a:not(.pq-button),
.elementor-widget-text-editor p a,
.elementor-widget-text-editor li a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Page banners: a phone-sized copy below 768px (Breadcrumb.tsx sets both URLs; banners without an
   image keep the theme background). */
.pq-breadcrumb[style*="--ss-banner"] {
  background-image: var(--ss-banner);
}
@media (max-width: 767px) {
  .pq-breadcrumb[style*="--ss-banner-sm"] {
    background-image: var(--ss-banner-sm);
  }
}

/* /css/redesign.css */
/*
 * Selective Support — design refresh.
 * Theme palette only (green #52B87B, ink #18100F, navy #161C2A, grey #F4F6F9, text grey #666666,
 * white); tints are those colours at reduced opacity. Same content and markup. Softer surfaces, real cards, clearer hierarchy, consistent radii, motion and states.
 * Everything is scoped to the site wrapper (.elementor-kit-11) so it outranks the theme CSS
 * without !important.
 */

.elementor-kit-11 {
  --ss-green: #52b87b;
  --ss-green-soft: rgba(82, 184, 123, 0.12);
  --ss-green-tint: rgba(82, 184, 123, 0.06);
  --ss-green-line: rgba(82, 184, 123, 0.35);
  --ss-ink: #18100f;
  --ss-navy: #161c2a;
  --ss-grey: #f4f6f9;
  --ss-line: rgba(22, 28, 42, 0.09);
  --ss-muted: #666666;
  --ss-r-sm: 10px;
  --ss-r-md: 16px;
  --ss-r-lg: 22px;
  --ss-shadow: 0 1px 2px rgba(22, 28, 42, 0.04), 0 10px 28px -16px rgba(22, 28, 42, 0.18);
  --ss-shadow-hover: 0 2px 6px rgba(22, 28, 42, 0.06), 0 22px 44px -20px rgba(82, 184, 123, 0.45);
  --ss-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

html {
  scroll-behavior: smooth;
}

/* ---------------------------------------------------------------- Typography */
.elementor-kit-11 h1,
.elementor-kit-11 h2,
.elementor-kit-11 h3,
.elementor-kit-11 h4,
.elementor-kit-11 h5,
.elementor-kit-11 h6 {
  text-wrap: balance;
}
.elementor-kit-11 p,
.elementor-kit-11 li {
  text-wrap: pretty;
}
.elementor-kit-11 .pq-section.pq-style-1 .pq-section-title {
  letter-spacing: -0.015em;
}
/* Section titles were forced to Title Case; show them in sentence case. */
.elementor-kit-11 .pq-section.pq-style-1.text-center .pq-section-title {
  text-transform: none;
}
.elementor-kit-11 .pq-section.pq-style-1.text-center .pq-section-title::first-letter {
  text-transform: uppercase;
}

/* Eyebrow labels: soft pill with a brand dot */
.elementor-kit-11 .pq-section.pq-style-1 .pq-section-sub-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--ss-green-soft);
  color: var(--ss-navy);
  border-radius: 999px;
  padding: 5px 14px 5px 12px;
  font-size: 12px;
  letter-spacing: 0.12em;
}
.elementor-kit-11 .pq-section.pq-style-1 .pq-section-sub-title::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ss-green);
  box-shadow: 0 0 0 4px rgba(82, 184, 123, 0.18);
}

/* ---------------------------------------------------------------- Buttons */
.elementor-kit-11 .pq-button:not(.pq-button-link),
.elementor-kit-11 .elementor-button,
.elementor-kit-11 .nl-error-btn,
.elementor-kit-11 .pq-subscribe-from input[type="submit"] {
  border-radius: var(--ss-r-sm);
  transition:
    background-color 0.25s var(--ss-ease),
    color 0.25s var(--ss-ease),
    transform 0.25s var(--ss-ease),
    box-shadow 0.25s var(--ss-ease);
}
.elementor-kit-11 .pq-button:not(.pq-button-link) {
  padding: 12px 26px;
  box-shadow: 0 8px 20px -12px rgba(82, 184, 123, 0.6);
}
.elementor-kit-11 .pq-button:not(.pq-button-link):hover,
.elementor-kit-11 .elementor-button:hover,
.elementor-kit-11 .nl-error-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 26px -14px rgba(22, 28, 42, 0.55);
}
.elementor-kit-11 .pq-button:not(.pq-button-link):active,
.elementor-kit-11 .elementor-button:active,
.elementor-kit-11 .nl-error-btn:active,
.elementor-kit-11 .pq-subscribe-from input[type="submit"]:active {
  transform: translateY(0) scale(0.98);
}
.elementor-kit-11 .pq-button .ion-plus-round {
  transition: transform 0.3s var(--ss-ease);
}
.elementor-kit-11 .pq-button:hover .ion-plus-round {
  transform: rotate(90deg);
}
/* Text-style "Read more" links */
.elementor-kit-11 .pq-button.pq-button-link .pq-button-text {
  color: var(--ss-green);
}
.elementor-kit-11 .pq-button.pq-button-link i {
  color: var(--ss-green);
}
.elementor-kit-11 .pq-button.pq-button-link:hover .pq-button-text,
.elementor-kit-11 .pq-button.pq-button-link:hover i {
  color: var(--ss-ink);
}

/* ---------------------------------------------------------------- Services grid (home) */
.elementor-kit-11 .service .row {
  row-gap: 24px;
}
.elementor-kit-11 .service .row > [class*="col-"]:not(.col-lg-12) {
  display: flex;
}
.elementor-kit-11 .service .pq-lg-border-right,
.elementor-kit-11 .service .pq-lg-border-bottom {
  border: 0;
}
.elementor-kit-11 .service .pq-fancy-box.pq-style-1 {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 36px 26px 30px;
  background: #fff;
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  box-shadow: var(--ss-shadow);
  transition:
    transform 0.35s var(--ss-ease),
    box-shadow 0.35s var(--ss-ease),
    border-color 0.35s var(--ss-ease);
}
.elementor-kit-11 .service .pq-fancy-box.pq-style-1:hover {
  transform: translateY(-6px);
  box-shadow: var(--ss-shadow-hover);
  border-color: var(--ss-green-line);
}
.elementor-kit-11 .service .pq-fancy-box-icon {
  display: grid;
  place-items: center;
  width: 92px;
  height: 92px;
  border-radius: 28px;
  background: var(--ss-green-soft);
  margin-bottom: 6px;
  transition: background-color 0.35s var(--ss-ease);
}
.elementor-kit-11 .service .pq-fancy-box.pq-style-1 .pq-fancy-box-icon i {
  font-size: 52px;
  line-height: 1;
}
.elementor-kit-11 .service .pq-fancy-box.pq-style-1:hover .pq-fancy-box-icon {
  background: rgba(82, 184, 123, 0.2);
}
.elementor-kit-11 .service .pq-fancy-box-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
}
.elementor-kit-11 .service .pq-fancybox-description {
  flex: 1;
}
.elementor-kit-11 .service .pq-fancy-box-info .pq-button-link {
  margin-top: auto;
}

/* ---------------------------------------------------------------- Check lists */
.elementor-kit-11 .pq-icon-box.pq-style-5 {
  align-items: flex-start;
  margin-bottom: 4px;
}
.elementor-kit-11 .pq-icon-box.pq-style-5 .pq-icon i {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 9px;
  background: var(--ss-green-soft);
  color: var(--ss-green);
  font-size: 14px;
}
.elementor-kit-11 .pq-list-check li i {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 7px;
  background: var(--ss-green-soft);
  color: var(--ss-green);
  font-size: 12px;
  margin-right: 10px;
}

/* ---------------------------------------------------------------- Testimonials */
.elementor-kit-11 .pq-testimonial-box.pq-style-1,
.elementor-kit-11 .pq-testimonial-box.pq-style-1.pq-bg-grey {
  position: relative;
  height: 100%;
  background: #fff !important; /* theme .pq-bg-grey uses !important */
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  box-shadow: var(--ss-shadow);
  padding: 36px 38px 32px;
  overflow: hidden;
}
.elementor-kit-11 .pq-testimonial-box.pq-style-1 .pq-testimonial-content p {
  color: var(--ss-muted);
  font-size: 16px;
  line-height: 1.75;
}
.elementor-kit-11 .pq-testimonial-box.pq-style-1 .pq-testimonial-media .pq-testimonial-icon i {
  opacity: 0.16;
}
.elementor-kit-11 .owl-carousel .owl-stage {
  display: flex;
}
.elementor-kit-11 .owl-carousel .owl-item {
  display: flex;
}
.elementor-kit-11 .owl-carousel .owl-item > .item {
  display: flex;
  width: 100%;
}
.elementor-kit-11 .owl-carousel .owl-item > .item > * {
  width: 100%;
}
.elementor-kit-11 .owl-theme .owl-dots .owl-dot span {
  transition:
    width 0.3s var(--ss-ease),
    background-color 0.3s var(--ss-ease);
}

/* ---------------------------------------------------------------- Blog cards (carousel, blog index, archives, search) */
.elementor-kit-11 .pq-blog-post {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  box-shadow: var(--ss-shadow);
  overflow: hidden;
  transition:
    transform 0.35s var(--ss-ease),
    box-shadow 0.35s var(--ss-ease);
}
.elementor-kit-11 .pq-blog-post:hover {
  transform: translateY(-6px);
  box-shadow: var(--ss-shadow-hover);
}
.elementor-kit-11 .pq-blog-post .pq-post-media img {
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.6s var(--ss-ease);
}
.elementor-kit-11 .pq-blog-post:hover .pq-post-media img {
  transform: scale(1.05);
}
.elementor-kit-11 .pq-blog-post .pq-post-media .pq-post-date {
  left: 16px;
  bottom: 16px;
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 6px 16px -8px rgba(22, 28, 42, 0.45);
  backdrop-filter: blur(4px);
}
.elementor-kit-11 .pq-blog-post .pq-post-media .pq-post-date a,
.elementor-kit-11 .pq-blog-post .pq-post-media .pq-post-date span {
  color: var(--ss-navy);
  font-size: 12px;
  letter-spacing: 0.08em;
}
.elementor-kit-11 .pq-blog-post .pq-blog-contain {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 26px 28px 28px;
}
.elementor-kit-11 .pq-blog-post .pq-blog-contain .pq-blog-title {
  font-size: 21px;
  line-height: 1.35;
  letter-spacing: -0.01em;
  margin-bottom: 10px;
}
.elementor-kit-11 .pq-blog-post .pq-blog-contain .pq-blog-title a {
  color: var(--ss-ink);
  transition: color 0.25s var(--ss-ease);
}
.elementor-kit-11 .pq-blog-post:hover .pq-blog-contain .pq-blog-title a {
  color: var(--ss-green);
}
.elementor-kit-11 .pq-blog-post .pq-blog-info {
  flex: 1;
}
.elementor-kit-11 .pq-blog-post .pq-blog-info p {
  color: var(--ss-muted);
  font-size: 15px;
  line-height: 1.75;
}
.elementor-kit-11 .pq-blog-post .pq-blog-contain > .pq-button {
  align-self: flex-start;
  margin-top: 6px;
}
/* Single post: the article card keeps a flat look */
.elementor-kit-11 .nl-postbox-details-article .pq-blog-post,
.elementor-kit-11 .nl-postbox-details-article .pq-blog-post:hover {
  transform: none;
  border: 0;
  box-shadow: none;
  overflow: visible;
  height: auto;
}
.elementor-kit-11 .nl-postbox-details-article .pq-blog-post .pq-post-media {
  border-radius: var(--ss-r-lg);
  overflow: hidden;
}
.elementor-kit-11 .nl-postbox-details-article .pq-blog-post .pq-post-media img,
.elementor-kit-11 .nl-postbox-details-article .pq-blog-post:hover .pq-post-media img {
  aspect-ratio: auto;
  transform: none;
}
.elementor-kit-11 .nl-postbox-details-article .pq-blog-post .pq-blog-contain {
  padding: 28px 0 0;
}

/* Equal-height cards in listing grids */
.elementor-kit-11 .news-page .row > .col-lg-4 {
  display: flex;
}
.elementor-kit-11 .news-page .nl-postbox-item {
  width: 100%;
}
.elementor-kit-11 .news-page .nl-postbox-item > .pq-blog,
.elementor-kit-11 .news-page .nl-postbox-item > .pq-blog > .row,
.elementor-kit-11 .news-page .nl-postbox-item > .pq-blog > .row > .col-lg-12 {
  height: 100%;
}

/* ---------------------------------------------------------------- Pagination */
.elementor-kit-11 .pq-pagination .page-numbers {
  gap: 8px;
}
.elementor-kit-11 .pq-pagination .page-numbers li .page-numbers,
.elementor-kit-11 .pq-pagination .page-numbers li > a {
  border-radius: var(--ss-r-sm);
  transition:
    background-color 0.25s var(--ss-ease),
    color 0.25s var(--ss-ease);
}

/* ---------------------------------------------------------------- Page banner */
.elementor-kit-11 .pq-breadcrumb {
  isolation: isolate;
}
.elementor-kit-11 .pq-breadcrumb::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(22, 28, 42, 0.62) 0%, rgba(22, 28, 42, 0.28) 45%, rgba(22, 28, 42, 0) 75%),
    linear-gradient(0deg, rgba(22, 28, 42, 0.18), rgba(22, 28, 42, 0));
}
.elementor-kit-11 .pq-breadcrumb .pq-breadcrumb-title h2 {
  letter-spacing: -0.02em;
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb {
  display: inline-flex;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(6px);
}

/* ---------------------------------------------------------------- Services side menu */
.elementor-kit-11 .pq-widget.pq-widget-port .menu li a {
  border: 1px solid var(--ss-line);
  border-radius: 12px;
  transition:
    background-color 0.25s var(--ss-ease),
    color 0.25s var(--ss-ease),
    border-color 0.25s var(--ss-ease),
    padding-left 0.25s var(--ss-ease);
}
.elementor-kit-11 .pq-widget.pq-widget-port .menu li:not(.current-menu-item) a:hover {
  background: var(--ss-green-tint);
  border-color: var(--ss-green-line);
  color: var(--ss-green);
  padding-left: 28px;
}
.elementor-kit-11 .pq-widget.pq-widget-port .menu li.current-menu-item a {
  border-color: var(--ss-green);
  box-shadow: 0 10px 22px -14px rgba(82, 184, 123, 0.75);
}

/* ---------------------------------------------------------------- Content images and icon boxes */
.elementor-kit-11 .elementor-widget-image img {
  border-radius: var(--ss-r-md);
}
.elementor-kit-11 .elementor-widget-image a img {
  transition: transform 0.4s var(--ss-ease);
}
.elementor-kit-11 .elementor-widget-image a:hover img {
  transform: translateY(-3px);
}
.elementor-kit-11 .elementor-view-stacked .elementor-icon {
  border-radius: 16px;
}
.elementor-kit-11 .pq-process-step .pq-process-img img {
  border-radius: var(--ss-r-lg);
}

/* ---------------------------------------------------------------- Long-form text */
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain {
  font-size: 17px;
  line-height: 1.85;
}
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain h2,
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain h3 {
  margin-top: 1.4em;
  letter-spacing: -0.01em;
}
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain iframe {
  max-width: 100%;
  border-radius: var(--ss-r-md);
}
.elementor-kit-11 .nl-sidebar-wrapper .pq-widget_recent_entries {
  background: var(--ss-grey);
  border-radius: var(--ss-r-lg);
  padding: 28px;
}
.elementor-kit-11 .nl-sidebar-wrapper .pq-widget_recent_entries li a {
  transition: color 0.25s var(--ss-ease);
}
.elementor-kit-11 .nl-sidebar-wrapper .pq-widget_recent_entries li a:hover {
  color: var(--ss-green);
}
.elementor-kit-11 .nl-sidebar-wrapper .pq-widget_media_image img {
  border-radius: var(--ss-r-lg);
}

/* ---------------------------------------------------------------- Newsletter band */
.elementor-kit-11 .pq-subscribe-bg {
  position: relative;
  overflow: hidden;
  border-radius: 26px;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 55%),
    radial-gradient(90% 120% at 100% 100%, rgba(22, 28, 42, 0.16) 0%, rgba(22, 28, 42, 0) 60%),
    var(--ss-green);
  box-shadow: 0 24px 50px -28px rgba(82, 184, 123, 0.7);
}
.elementor-kit-11 .pq-subscribe-from input[type="email"] {
  border-radius: var(--ss-r-sm);
}

/* ---------------------------------------------------------------- Footer */
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .pq-footer-social ul li a {
  border-radius: 12px;
  transition:
    background-color 0.25s var(--ss-ease),
    transform 0.25s var(--ss-ease);
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .pq-footer-social ul li a:hover {
  transform: translateY(-2px);
}
.elementor-kit-11 footer#pq-footer a {
  transition: color 0.25s var(--ss-ease);
}

/* ---------------------------------------------------------------- Header */
@media (min-width: 1200px) {
  .elementor-kit-11 header#pq-header .navbar-nav > li > a.nav-links {
    position: relative;
  }
  .elementor-kit-11 header#pq-header .navbar-nav > li > a.nav-links::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 22px;
    height: 2px;
    border-radius: 2px;
    background: var(--ss-green);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s var(--ss-ease);
  }
  .elementor-kit-11 header#pq-header .navbar-nav > li:hover > a.nav-links::after,
  .elementor-kit-11 header#pq-header .navbar-nav > li.current-menu-item > a.nav-links::after,
  .elementor-kit-11 header#pq-header .navbar-nav > li.current-menu-ancestor > a.nav-links::after {
    transform: scaleX(1);
  }
}
.elementor-kit-11 header#pq-header .sub-menu {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 48px -24px rgba(22, 28, 42, 0.35);
}
.elementor-kit-11 header#pq-header.pq-header-sticky {
  box-shadow: 0 10px 30px -22px rgba(22, 28, 42, 0.45);
}

/* ---------------------------------------------------------------- Motion preferences */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .elementor-kit-11 *,
  .elementor-kit-11 *::before,
  .elementor-kit-11 *::after {
    transition-duration: 0.01ms !important;
  }
  .elementor-kit-11 .pq-blog-post:hover,
  .elementor-kit-11 .service .pq-fancy-box.pq-style-1:hover,
  .elementor-kit-11 .pq-button:hover {
    transform: none;
  }
}

/* ---------------------------------------------------------------- Listing grid spacing + banner trail */
.elementor-kit-11 .news-page > .container > .row {
  row-gap: 30px;
}
.elementor-kit-11 .news-page .nl-postbox-item.mb-50 {
  margin-bottom: 0;
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item,
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item a,
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.86);
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item.active {
  color: #fff;
  font-weight: 600;
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item a:hover {
  color: #fff;
}

/* ---------------------------------------------------------------- Pass 2: surfaces with depth */
/* Grey sections get a faint ambient light instead of a flat fill. */
.elementor-kit-11 .pq-bg-grey {
  background:
    radial-gradient(60% 50% at 12% 0%, rgba(82, 184, 123, 0.08) 0%, rgba(82, 184, 123, 0) 70%),
    radial-gradient(50% 45% at 100% 100%, rgba(22, 28, 42, 0.05) 0%, rgba(22, 28, 42, 0) 70%),
    var(--ss-grey) !important; /* theme sets !important on .pq-bg-grey */
}

/* Feature photos on the home and about pages sit on an offset brand-tint plate. */
.elementor-kit-11 .elementor-6 .elementor-widget-image img,
.elementor-kit-11 .elementor-410 .elementor-widget-image img {
  border-radius: var(--ss-r-lg);
  box-shadow:
    18px 18px 0 0 var(--ss-green-soft),
    0 24px 50px -30px rgba(22, 28, 42, 0.45);
}
.elementor-kit-11 .elementor-6 .elementor-widget-image img[width="150"] {
  box-shadow: none; /* small badge images */
}

/* Contact page: info boxes as cards (equal height inside their column containers) */
.elementor-kit-11 .e-con > .elementor-widget-icon-box,
.elementor-kit-11 .e-con-inner > .elementor-widget-icon-box {
  flex-grow: 1;
}
.elementor-kit-11 .elementor .elementor-element.elementor-widget-icon-box > .elementor-widget-container {
  height: 100%;
  background: #fff;
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  box-shadow: var(--ss-shadow);
  transition:
    transform 0.35s var(--ss-ease),
    box-shadow 0.35s var(--ss-ease);
}
.elementor-kit-11 .elementor .elementor-element.elementor-widget-icon-box:hover > .elementor-widget-container {
  transform: translateY(-4px);
  box-shadow: var(--ss-shadow-hover);
}
.elementor-kit-11 .elementor-widget-icon-box .elementor-icon-box-title {
  letter-spacing: -0.01em;
}
.elementor-kit-11 .elementor-widget-icon-box .elementor-icon-box-description a {
  color: var(--ss-green);
  font-weight: 600;
}

/* Embedded forms and booking widgets: framed panel */
.elementor-kit-11 .elementor-widget-html iframe[src*="leadconnectorhq"],
.elementor-kit-11 .calendly-container {
  border-radius: var(--ss-r-md);
}

/* Costs page: plan cards (HTML widgets with h3 + price + button) */
.elementor-kit-11 .elementor-1096 .elementor-widget-html {
  height: 100%;
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html > .elementor-widget-container,
.elementor-kit-11 .elementor-1096 .elementor-widget-html > .elementor-widget-container > div {
  height: 100%;
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html > .elementor-widget-container > div > div {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 30px 28px 28px;
  background: #fff;
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  box-shadow: var(--ss-shadow);
  transition:
    transform 0.35s var(--ss-ease),
    box-shadow 0.35s var(--ss-ease),
    border-color 0.35s var(--ss-ease);
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html > .elementor-widget-container > div > div:hover {
  transform: translateY(-6px);
  border-color: var(--ss-green-line);
  box-shadow: var(--ss-shadow-hover);
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html h3 {
  font-size: 24px;
  letter-spacing: -0.01em;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ss-line);
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html h3 + p {
  font-family: var(--title-fonts);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ss-ink);
  font-variant-numeric: tabular-nums;
  margin-bottom: 8px !important; /* overrides Bootstrap .mb-0 */
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html p {
  font-variant-numeric: tabular-nums;
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html p:not(.mb-0) {
  flex: 1;
  margin-bottom: 20px;
  color: var(--ss-muted);
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html .pq-button {
  width: 100%;
  text-align: center;
}

/* EAP service: Costs / Booking buttons */
.elementor-kit-11 .btns a {
  border-radius: var(--ss-r-sm) !important; /* inline <style> in the widget uses 5px */
  transition:
    background-color 0.25s var(--ss-ease),
    transform 0.25s var(--ss-ease);
}
.elementor-kit-11 .btns a:hover {
  transform: translateY(-2px);
}

/* Header: frosted when sticky */
.elementor-kit-11 header#pq-header.pq-header-sticky .pq-bottom-header {
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: saturate(160%) blur(12px);
}

/* Process steps (about): number badges and image hover */
.elementor-kit-11 .pq-process-step .pq-process-img img {
  transition: transform 0.4s var(--ss-ease);
}
.elementor-kit-11 .pq-process-step:hover .pq-process-img img {
  transform: scale(1.04);
}
.elementor-kit-11 .pq-process-step .pq-process-number span {
  box-shadow: 0 8px 18px -10px rgba(82, 184, 123, 0.8);
}

/* 404 */
.elementor-kit-11 .nl-error-area .nl-error-content {
  padding: 40px 30px 46px;
  border-radius: 28px;
  background: var(--ss-green-tint);
}

@media (max-width: 767px) {
  .elementor-kit-11 .elementor-6 .elementor-widget-image img,
  .elementor-kit-11 .elementor-410 .elementor-widget-image img {
    box-shadow:
      10px 10px 0 0 var(--ss-green-soft),
      0 18px 36px -24px rgba(22, 28, 42, 0.45);
  }
}

/* ---------------------------------------------------------------- Pass 3: responsive UX */
/* Mobile / tablet menu panel: full list without an inner scrollbar, clearer rows */
@media (max-width: 1023px) {
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-collapse {
    max-height: calc(100dvh - 120px);
    overflow-y: auto;
    border-top: 1px solid var(--ss-line);
    border-radius: 0 0 var(--ss-r-lg) var(--ss-r-lg);
    box-shadow: 0 24px 40px -24px rgba(22, 28, 42, 0.35);
    padding: 6px 0 10px;
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav > li + li {
    border-top: 1px solid var(--ss-line);
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li a {
    padding: 14px 22px;
    font-size: 15px;
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li a {
    padding: 11px 34px;
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar-toggler {
    border-radius: var(--ss-r-sm);
    transition: background-color 0.25s var(--ss-ease);
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar-toggler[aria-expanded="true"] {
    background: var(--ss-navy);
  }
}

/* Service pages: on phones the services menu follows the content instead of preceding it. */
@media (max-width: 767px) {
  .elementor-kit-11 .e-con:has(> .elementor-widget-sti-service-list),
  .elementor-kit-11 .e-con:has(> .e-con-inner > .elementor-widget-sti-service-list) {
    order: 2;
  }
}

/* Readable line length for long-form copy */
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain > p,
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain > ul,
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain > ol {
  max-width: 72ch;
}

/* Tablet: two-up service cards keep breathing room */
@media (min-width: 768px) and (max-width: 1199px) {
  .elementor-kit-11 .service .pq-fancy-box.pq-style-1 {
    padding: 32px 22px 26px;
  }
}

/* Phones: comfortable section headings and card padding */
@media (max-width: 767px) {
  .elementor-kit-11 .pq-section.pq-style-1.text-center {
    padding: 0 4px;
  }
  .elementor-kit-11 .pq-blog-post .pq-blog-contain {
    padding: 22px 22px 24px;
  }
  .elementor-kit-11 .pq-testimonial-box.pq-style-1,
  .elementor-kit-11 .pq-testimonial-box.pq-style-1.pq-bg-grey {
    padding: 28px 24px 26px;
  }
  .elementor-kit-11 .pq-subscribe-bg {
    border-radius: var(--ss-r-lg);
  }
  .elementor-kit-11 .pq-breadcrumb .breadcrumb {
    flex-wrap: wrap;
  }
}

/* Larger tap targets for footer and top-bar links on touch screens */
@media (pointer: coarse) {
  .elementor-kit-11 footer#pq-footer .widget_nav_menu li a,
  .elementor-kit-11 .pq-header-contact li a {
    display: inline-block;
    padding-block: 6px;
  }
}

/* Process steps grid sits directly in a widget (no container), so the Bootstrap row's negative
   gutters overflowed the page by 12px on phones. */
.elementor-kit-11 .elementor-widget-sti-about > .elementor-widget-container > .row {
  margin-left: 0;
  margin-right: 0;
}

/* Tablet fixes for layouts that had fixed Elementor column widths */
@media (min-width: 768px) and (max-width: 1024px) {
  /* Service pages: the content column fills the space beside the services menu
     (a fixed tablet width pushed it 105px past the screen on Equine Therapy). */
  .elementor-kit-11 .e-con-inner:has(> .e-con > .elementor-widget-sti-service-list) > .e-con:not(:has(> .elementor-widget-sti-service-list)) {
    --width: auto;
    flex: 1 1 0;
    min-width: 0;
  }
  /* Costs: plans in a 2 × 2 grid instead of four narrow columns */
  .elementor-kit-11 .elementor-1096 .e-con-inner:has(> .e-con > .elementor-widget-html) {
    flex-wrap: wrap;
    row-gap: 24px;
  }
  .elementor-kit-11 .elementor-1096 .e-con-inner:has(> .e-con > .elementor-widget-html) > .e-con {
    --width: calc(50% - 12px);
    flex: 0 0 calc(50% - 12px);
  }
}

/* Long email addresses wrap inside contact cards */
.elementor-kit-11 .elementor-icon-box-description,
.elementor-kit-11 .textwidget a[href^="mailto:"] {
  overflow-wrap: anywhere;
}
.elementor-kit-11 .elementor-1096 .elementor-widget-html .pq-button {
  white-space: normal;
}

@media (min-width: 768px) and (max-width: 1024px) {
  /* Services menu column wide enough for one-line items on tablets */
  .elementor-kit-11 .e-con-inner > .e-con:has(> .elementor-widget-sti-service-list) {
    --width: 250px;
    flex: 0 0 250px;
  }
  .elementor-kit-11 .elementor-widget-sti-service-list.elementor-widget-tablet__width-initial {
    width: 100%;
    max-width: 100%;
  }
  /* Section titles in half-width columns no longer break after every word */
  .elementor-kit-11 .pq-section.pq-style-1 .pq-section-title {
    font-size: clamp(30px, 4.2vw, 40px);
    line-height: 1.2;
  }
}

/* Services menu items: room for the chevron so labels never run under it */
.elementor-kit-11 .pq-widget.pq-widget-port .menu li a {
  padding-right: 40px;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-kit-11 .pq-widget.pq-widget-port .menu li a {
    padding: 12px 36px 12px 16px;
    font-size: 14px;
  }
  .elementor-kit-11 .pq-widget.pq-widget-port .menu li:not(.current-menu-item) a:hover {
    padding-left: 20px;
  }
}

/* ================================================================ Pass 4: homepage redesign
   Home is Elementor document 6. Same text, links and forms; presentation only. Newsletter and
   footer rules apply site-wide (shared footer). */
.elementor-kit-11 {
  /* Vertical rhythm (Pass 11): one section unit, one inner-page block unit, and the room the
     newsletter band needs (it overlaps the last section by 80px, theme .pq-subscribe). */
  --ss-section: clamp(56px, 6.5vw, 88px);
  --ss-block: clamp(40px, 4.5vw, 64px);
  --ss-newsletter-gap: clamp(40px, 4vw, 56px);
  --ss-newsletter-room: calc(80px + var(--ss-newsletter-gap));
  --ss-gutter: clamp(20px, 3vw, 40px);
  --ss-navy-deep: #20365b; /* the hero navy Elementor already used */
}

/* ---------------------------------------------------------------- Hero (desktop, ≥1025px) */
/* Supplied hero photo (public/images/home/01-…png) via the Next image optimizer: subjects sit
   right, the bright left side carries the copy under a soft white wash. Text turns ink. */
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-e449a0d:not(.elementor-motion-effects-element-type-background) {
  position: relative;
  isolation: isolate;
  min-height: clamp(560px, 72vh, 700px);
  width: auto;
  margin: 0 clamp(12px, 1.6vw, 24px);
  border-radius: 0 0 32px 32px;
  overflow: hidden;
  background-color: var(--ss-grey);
  background-image:
    radial-gradient(45% 70% at 0% 100%, rgba(82, 184, 123, 0.16) 0%, rgba(82, 184, 123, 0) 70%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.9) 30%, rgba(255, 255, 255, 0.45) 50%, rgba(255, 255, 255, 0) 64%),
    url("/_next/image/?url=%2Fimages%2Fhome%2Fhome-hero-recovery-coaching-support-coordination.webp&w=1920&q=75");
  background-size: auto, auto, cover;
  background-position: center, center, 62% 30%;
  --padding-top: clamp(64px, 9vh, 104px);
  --padding-bottom: clamp(64px, 9vh, 104px);
}
.elementor-kit-11 .elementor-6 .elementor-element-e449a0d > .e-con-inner {
  align-items: center;
}
.elementor-kit-11 .elementor-6 .elementor-element-f3f81cb {
  max-width: 600px;
  gap: 0;
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-fe1f7bf img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  box-shadow: 0 0 0 6px #fff, 0 18px 36px -18px rgba(22, 28, 42, 0.45);
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-c8a824e {
  margin-top: 28px;
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-c8a824e .elementor-heading-title {
  font-size: clamp(42px, 4vw, 60px);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--ss-ink);
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-c72c618 {
  margin-top: 22px;
  padding-left: 18px;
  border-left: 3px solid var(--ss-green);
  font-size: 22px;
  line-height: 1.4;
  color: var(--ss-navy);
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-c72c618 p {
  margin: 0;
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-e7835fa {
  margin-top: 36px;
}

/* ---------------------------------------------------------------- Hero (tablet and phone, ≤1024px) */
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-06d4ef0:not(.elementor-motion-effects-element-type-background) {
  width: auto;
  margin: 0 12px;
  border-radius: 0 0 28px 28px;
  overflow: hidden;
  background:
    radial-gradient(90% 60% at 0% 100%, rgba(82, 184, 123, 0.14) 0%, rgba(82, 184, 123, 0) 65%),
    var(--ss-grey);
}
.elementor-kit-11 .elementor-6 .elementor-element-06d4ef0 > .e-con-inner {
  padding: 12px 12px clamp(36px, 6vw, 56px);
  gap: 0;
}
.elementor-kit-11 .elementor-6 .elementor-element-0e88c99 img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: 62% 35%;
  border-radius: 20px;
  box-shadow: none;
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-1b26479 {
  margin: -36px 0 0 clamp(16px, 4vw, 32px);
  position: relative;
  z-index: 1;
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-1b26479 img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  box-shadow: 0 0 0 5px var(--ss-grey), 0 12px 24px -12px rgba(22, 28, 42, 0.45);
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-1c062ff > .elementor-widget-container,
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-13a0f2e > .elementor-widget-container,
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-1fd38e6 > .elementor-widget-container {
  margin: 0 clamp(16px, 4vw, 32px);
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-1c062ff {
  margin-top: 20px;
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-1c062ff .elementor-heading-title {
  font-size: clamp(28px, 5.4vw, 44px);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ss-ink);
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-13a0f2e {
  margin-top: 16px;
  font-size: clamp(17px, 2.6vw, 22px);
  color: var(--ss-navy);
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-13a0f2e > .elementor-widget-container {
  padding-left: 14px;
  border-left: 3px solid var(--ss-green);
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-13a0f2e p {
  margin: 0;
}
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-1fd38e6 {
  margin-top: 28px;
}
@media (min-width: 768px) {
  .elementor-kit-11 .elementor-6 .elementor-element-0e88c99 img {
    aspect-ratio: 16 / 9;
    object-position: 62% 30%;
  }
}

/* ---------------------------------------------------------------- Section rhythm */
/* One spacing unit between sections (was 200-230px where two paddings met) and alternating
   surfaces: services grey, why-us white, reviews grey, NDIS help white, blog grey. */
.elementor-kit-11 .elementor-6 .service {
  padding: var(--ss-section) 0;
}
.elementor-kit-11 .elementor-6 .elementor-element-4c2b5a8,
.elementor-kit-11 .elementor-6 .elementor-element-698b4de {
  background:
    radial-gradient(60% 50% at 12% 0%, rgba(82, 184, 123, 0.07) 0%, rgba(82, 184, 123, 0) 70%),
    var(--ss-grey);
}
.elementor-kit-11 .elementor-6 .elementor-element-4c2b5a8 {
  margin-top: calc(var(--ss-section) * -0.5);
  padding-top: calc(var(--ss-section) * 0.5);
}
.elementor-kit-11 .elementor-6 .elementor-element-e449a0d,
.elementor-kit-11 .elementor-6 .elementor-element-06d4ef0 {
  z-index: 2;
}
.elementor-kit-11 .elementor-6 .elementor-element-999f1f1 > .e-con-inner,
.elementor-kit-11 .elementor-6 .elementor-element-698b4de > .e-con-inner,
.elementor-kit-11 .elementor-6 .elementor-element-1270877 > .e-con-inner {
  padding-top: var(--ss-section);
  padding-bottom: var(--ss-section);
}
.elementor-kit-11 .elementor-6 .pq-blog.pq-bg-grey {
  padding-top: var(--ss-section);
}
.elementor-kit-11 .elementor-6 .pq-section.pq-style-1.text-center {
  margin-bottom: clamp(36px, 4.5vw, 56px);
}

/* Section titles: one scale, sentence case everywhere on the page (as the centred ones are) */
.elementor-kit-11 .elementor-6 .pq-section.pq-style-1 .pq-section-title {
  font-size: clamp(32px, 3.4vw, 48px);
  line-height: 1.14;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-transform: none;
}
.elementor-kit-11 .elementor-6 .pq-section.pq-style-1 .pq-section-title::first-letter {
  text-transform: uppercase;
}
.elementor-kit-11 .elementor-6 .pq-section.pq-style-1 .pq-section-sub-title {
  margin-bottom: 14px;
}

/* Body copy in the NDIS section used the editor's Roboto at full black; match the page. */
.elementor-kit-11 .elementor-6 .elementor-element-1270877 .elementor-widget-text-editor {
  font-family: var(--body-fonts, "Montserrat"), sans-serif;
  font-size: 17px;
  line-height: 1.75;
  color: var(--ss-muted);
}
.elementor-kit-11 .elementor-6 .elementor-element-1270877 .elementor-widget-text-editor p {
  margin-bottom: 12px;
}
.elementor-kit-11 .elementor-6 .elementor-element-1270877 .elementor-widget-text-editor strong,
.elementor-kit-11 .elementor-6 .elementor-element-1270877 .elementor-widget-text-editor b {
  color: var(--ss-ink);
}

/* Two-column feature sections: text column centred against the photo */
@media (min-width: 768px) {
  .elementor-kit-11 .elementor-6 .elementor-element-999f1f1 > .e-con-inner,
  .elementor-kit-11 .elementor-6 .elementor-element-1270877 > .e-con-inner {
    align-items: center;
    column-gap: clamp(48px, 5vw, 80px);
  }
}

/* ---------------------------------------------------------------- Service cards */
.elementor-kit-11 .elementor-6 .service .pq-fancy-box.pq-style-1 {
  position: relative;
  align-items: flex-start;
  text-align: left !important; /* the box carries Bootstrap .text-center, which uses !important */
  padding: 32px 28px 26px;
  overflow: hidden;
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box.pq-style-1::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--ss-green);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.45s var(--ss-ease);
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box.pq-style-1:hover::before {
  transform: scaleX(1);
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box-icon {
  width: 68px;
  height: 68px;
  border-radius: 20px;
  margin-bottom: 22px;
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box.pq-style-1 .pq-fancy-box-icon i {
  font-size: 38px;
  transition: color 0.35s var(--ss-ease);
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box.pq-style-1:hover .pq-fancy-box-icon {
  background: var(--ss-green);
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box.pq-style-1:hover .pq-fancy-box-icon i {
  color: #fff;
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box-info {
  align-items: flex-start;
  width: 100%;
  text-align: left;
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box-title {
  font-size: 21px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin-bottom: 12px;
}
.elementor-kit-11 .elementor-6 .service .pq-fancybox-description {
  font-size: 15px;
  line-height: 1.7;
  color: var(--ss-muted);
  margin-bottom: 22px;
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box-info .pq-button-link {
  width: 100%;
  padding-top: 18px;
  border-top: 1px solid var(--ss-line);
}

/* ---------------------------------------------------------------- Why choose us: feature rows */
.elementor-kit-11 .elementor-6 .elementor-element-999f1f1 .pq-icon-box.pq-style-5 {
  align-items: center;
  gap: 4px;
  margin-bottom: 12px;
  padding: 14px 18px;
  background: var(--ss-green-tint);
  border: 1px solid rgba(82, 184, 123, 0.16);
  border-radius: var(--ss-r-md);
  transition:
    border-color 0.3s var(--ss-ease),
    background-color 0.3s var(--ss-ease),
    transform 0.3s var(--ss-ease);
}
.elementor-kit-11 .elementor-6 .elementor-element-999f1f1 .pq-icon-box.pq-style-5:hover {
  border-color: var(--ss-green-line);
  background: #fff;
  transform: translateX(4px);
}
.elementor-kit-11 .elementor-6 .elementor-element-999f1f1 .pq-icon-box.pq-style-5 .pq-icon i {
  background: var(--ss-green);
  color: #fff;
}
.elementor-kit-11 .elementor-6 .elementor-element-999f1f1 .pq-icon-box-description {
  margin: 0;
  color: var(--ss-ink);
  font-weight: 500;
  line-height: 1.55;
}
.elementor-kit-11 .elementor-6 .elementor-element-999f1f1 .elementor-widget-sti-button {
  margin-top: 14px;
}

/* NDIS help check list */
.elementor-kit-11 .elementor-6 .pq-list-check li {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
  font-weight: 500;
}
.elementor-kit-11 .elementor-6 .pq-list-check li i {
  flex: none;
  background: var(--ss-green);
  color: #fff;
}

/* ---------------------------------------------------------------- Reviews */
.elementor-kit-11 .elementor-6 .pq-testimonial-box.pq-style-1 {
  display: flex;
  flex-direction: column;
  padding: 36px 38px 30px;
  transition:
    transform 0.35s var(--ss-ease),
    box-shadow 0.35s var(--ss-ease);
}
.elementor-kit-11 .elementor-6 .pq-testimonial-box.pq-style-1:hover {
  transform: translateY(-4px);
  box-shadow: var(--ss-shadow-hover);
}
.elementor-kit-11 .elementor-6 .pq-testimonial-box .pq-testimonial-star {
  display: inline-flex;
  gap: 4px;
  align-self: flex-start;
  margin-bottom: 20px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(22, 28, 42, 0.04);
}
.elementor-kit-11 .elementor-6 .pq-testimonial-box .pq-testimonial-star i {
  font-size: 14px;
  margin: 0;
}
.elementor-kit-11 .elementor-6 .pq-testimonial-box .pq-testimonial-info {
  flex: 1;
}
.elementor-kit-11 .elementor-6 .pq-testimonial-box.pq-style-1 .pq-testimonial-content p {
  font-size: 18px;
  line-height: 1.7;
  color: rgba(22, 28, 42, 0.82);
}
.elementor-kit-11 .elementor-6 .pq-testimonial-box .pq-testimonial-media {
  align-items: center;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--ss-line);
}
.elementor-kit-11 .elementor-6 .pq-testimonial-box .pq-testimonial-meta h5 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
}
.elementor-kit-11 .elementor-6 .pq-testimonial-box.pq-style-1 .pq-testimonial-media .pq-testimonial-icon i {
  font-size: 34px;
  color: var(--ss-green);
  opacity: 0.35;
}

/* ---------------------------------------------------------------- Resource cards */
.elementor-kit-11 .elementor-6 .pq-blog-post .pq-blog-contain .pq-blog-title {
  font-size: 20px;
  font-weight: 700;
}
.elementor-kit-11 .elementor-6 .pq-blog-post .pq-blog-contain > .pq-button {
  align-self: stretch;
  margin-top: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--ss-line);
}
.elementor-kit-11 .owl-theme .owl-dots {
  margin-top: 28px;
}
.elementor-kit-11 .owl-theme .owl-dots .owl-dot span {
  width: 8px;
  height: 8px;
  margin: 4px;
  border-radius: 999px;
  background: rgba(22, 28, 42, 0.18);
}
.elementor-kit-11 .owl-theme .owl-dots .owl-dot.active span,
.elementor-kit-11 .owl-theme .owl-dots .owl-dot:hover span {
  width: 26px;
  background: var(--ss-green);
}

/* ---------------------------------------------------------------- Newsletter (site-wide) */
.elementor-kit-11 .pq-subscribe-bg {
  padding: clamp(28px, 4vw, 48px) clamp(24px, 4.5vw, 56px);
}
.elementor-kit-11 .pq-subscribe-bg > .row {
  align-items: center;
  row-gap: 22px;
}
.elementor-kit-11 .pq-subscribe-block {
  margin: 0;
}
.elementor-kit-11 .pq-subscribe-block .pq-subscribe-img {
  flex: none;
  width: 68px;
  height: 68px;
  padding: 17px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.16);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24);
}
.elementor-kit-11 .pq-subscribe-block .pq-subscribe-details {
  margin-left: 22px;
  padding-right: 0;
}
.elementor-kit-11 .pq-subscribe-block .pq-subscribe-details h5 {
  margin: 0;
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.elementor-kit-11 .pq-subscribe-from .form-fields {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 18px 36px -20px rgba(22, 28, 42, 0.55);
}
.elementor-kit-11 .pq-subscribe-from .wpcf7-form-control-wrap {
  flex: 1;
  min-width: 0;
}
.elementor-kit-11 .pq-subscribe-from input[type="email"] {
  height: 52px;
  padding: 0 16px;
  background: transparent !important; /* theme .pq-bg-transparent uses !important */
  color: var(--ss-ink);
  font-size: 15px;
}
.elementor-kit-11 .pq-subscribe-from input[type="email"]::placeholder {
  color: rgba(22, 28, 42, 0.5);
}
.elementor-kit-11 .pq-subscribe-from input[type="email"]:focus {
  outline: none;
}
.elementor-kit-11 .pq-subscribe-from .form-fields:focus-within {
  box-shadow:
    0 0 0 3px rgba(255, 255, 255, 0.45),
    0 18px 36px -20px rgba(22, 28, 42, 0.55);
}
.elementor-kit-11 .pq-subscribe-from input[type="submit"] {
  flex: none;
  height: 52px;
  margin: 0;
  padding: 0 28px;
  background: var(--ss-navy);
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.06em;
}
.elementor-kit-11 .pq-subscribe-from input[type="submit"]:hover {
  background: var(--ss-green);
  color: #fff;
}
.elementor-kit-11 .pq-subscribe-from .wpcf7-response-output {
  margin: 12px 0 0;
  color: #fff;
}
@media (max-width: 575px) {
  .elementor-kit-11 .pq-subscribe-from .form-fields {
    flex-direction: column;
    align-items: stretch;
  }
  .elementor-kit-11 .pq-subscribe-from input[type="submit"] {
    width: 100%;
  }
}

/* ---------------------------------------------------------------- Footer main area (site-wide)
   Brand / Useful Links / Contact at 35/30/35 (Recent Posts removed from the footer markup);
   on tablets brand and links share a row with Contact below; one column on phones. The grid
   sits in the same container as the newsletter band, so their edges line up. Newsletter band
   and copyright bar are styled separately. */
.elementor-kit-11 footer#pq-footer .pq-footer-top {
  padding-top: clamp(56px, 6vw, 80px);
  padding-bottom: clamp(40px, 4vw, 56px);
}
.elementor-kit-11 footer#pq-footer .pq-footer-top > .container > .row {
  display: grid;
  grid-template-columns: minmax(0, 35fr) minmax(0, 30fr) minmax(0, 35fr);
  column-gap: clamp(32px, 4vw, 64px);
  row-gap: 44px;
  margin: 0;
}
.elementor-kit-11 footer#pq-footer .pq-footer-top > .container > .row > [class*="col-"] {
  width: auto;
  max-width: none;
  min-width: 0;
  padding: 0;
}
.elementor-kit-11 footer#pq-footer .pq-footer-block,
.elementor-kit-11 footer#pq-footer .pq-footer-block:first-child {
  margin: 0;
}

/* Column headings: one size, one top line, green underline */
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .footer-title {
  margin: 0 0 24px;
  padding-bottom: 14px;
  font-size: 19px;
  line-height: 28px;
  font-weight: 700;
  letter-spacing: -0.005em;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .footer-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: var(--ss-green);
}

/* Shared link reset (the theme indents every footer link 15px and stretches it to 100%) */
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul li a {
  width: auto;
  padding: 0;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul li {
  margin: 0;
}

/* Brand: compact logo (top aligned with the headings), readable mission, social row */
.elementor-kit-11 footer#pq-footer .pq-footer-logo {
  display: block;
  height: 66px;
  width: auto;
  max-width: 100%;
  margin: -4px 0 20px;
  object-fit: contain;
  object-position: left center;
}
.elementor-kit-11 footer#pq-footer .custom-widget p {
  max-width: 34ch;
  margin: 0 0 24px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 15px;
  line-height: 1.8;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .pq-footer-social ul {
  display: flex;
  gap: 10px;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .pq-footer-social ul li {
  float: none;
  margin: 0;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .pq-footer-social ul li a {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  line-height: 1;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 15px;
  transition:
    background-color 0.25s var(--ss-ease),
    box-shadow 0.25s var(--ss-ease),
    transform 0.25s var(--ss-ease);
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .pq-footer-social ul li a:hover,
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .pq-footer-social ul li a:focus-visible {
  background: var(--ss-green);
  box-shadow: none;
  color: #fff;
  transform: translateY(-2px);
}

/* Useful Links: two internal columns, chevrons that nudge on hover */
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu {
  container-type: inline-size;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul.menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 16px;
  row-gap: 12px;
}
@container (max-width: 229px) {
  .elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul.menu {
    grid-template-columns: minmax(0, 1fr);
  }
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul li {
  width: auto;
  display: block;
  margin: 0;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul li a {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
  line-height: 1.5;
  transition: color 0.25s var(--ss-ease);
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul li a::before {
  flex: none;
  margin: 0;
  color: var(--ss-green);
  font-size: 9px;
  transition: transform 0.25s var(--ss-ease);
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul li a:hover,
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul li a:focus-visible {
  color: #fff;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul li a:hover::before,
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 .widget_nav_menu ul li a:focus-visible::before {
  transform: translateX(3px);
}

/* Contact Us: icon tile + content rows */
/* A stray <br> inside the phone link pushed the contact list down a line */
.elementor-kit-11 footer#pq-footer ul.pq-contact br {
  display: none;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact {
  display: grid;
  row-gap: 14px;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li,
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li a {
  display: flex;
  align-items: center;
  min-width: 0;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 15px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li a {
  transition: color 0.25s var(--ss-ease);
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li a:hover,
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li a:focus-visible {
  color: #fff;
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li i {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 40px;
  height: 40px;
  margin-right: 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  color: var(--ss-green);
  font-size: 14px;
  transition: background-color 0.25s var(--ss-ease), color 0.25s var(--ss-ease);
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li a:hover i {
  background: var(--ss-green);
  color: #fff;
}
/* The address is two list items; the second line sits under the first, past the icon */
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li.mb-0 {
  margin-bottom: 0 !important; /* Bootstrap .mb-0 */
}
.elementor-kit-11 footer#pq-footer .pq-footer-style-1 ul.pq-contact li.ms-4 {
  margin: -22px 0 0 54px !important; /* Bootstrap .ms-4 uses !important */
}

/* Tablet: brand and links side by side, contact below */
@media (max-width: 991px) {
  .elementor-kit-11 footer#pq-footer .pq-footer-top > .container > .row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 48px;
  }
}
/* Phone: one column */
@media (max-width: 767px) {
  .elementor-kit-11 footer#pq-footer .pq-footer-top > .container > .row {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 40px;
  }
  .elementor-kit-11 footer#pq-footer .custom-widget p {
    max-width: 42ch;
  }
}
.elementor-kit-11 footer#pq-footer .pq-copyright-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.elementor-kit-11 footer#pq-footer .pq-copyright-footer .pq-copyright {
  color: rgba(255, 255, 255, 0.6);
  font-size: 14px;
}

/* ---------------------------------------------------------------- Home: phones and tablets */
@media (max-width: 1024px) {
  .elementor-kit-11 .elementor-6 .elementor-element-999f1f1 > .e-con-inner,
  .elementor-kit-11 .elementor-6 .elementor-element-1270877 > .e-con-inner {
    row-gap: 40px;
  }
}
@media (max-width: 1399px) {
  .elementor-kit-11 .elementor-6 .service > .container,
  .elementor-kit-11 .elementor-6 .pq-blog > .container,
  .elementor-kit-11 .elementor-6 .elementor-element-999f1f1 > .e-con-inner,
  .elementor-kit-11 .elementor-6 .elementor-element-698b4de > .e-con-inner,
  .elementor-kit-11 .elementor-6 .elementor-element-1270877 > .e-con-inner,
  .elementor-kit-11 footer#pq-footer .container,
  .elementor-kit-11 footer#pq-footer .pq-subscribe > .container {
    padding-left: var(--ss-gutter);
    padding-right: var(--ss-gutter);
  }
}
@media (max-width: 767px) {
  .elementor-kit-11 .elementor-6 .service .pq-fancy-box.pq-style-1 {
    padding: 26px 22px 22px;
  }
  .elementor-kit-11 .elementor-6 .pq-testimonial-box.pq-style-1 {
    padding: 28px 24px 24px;
  }
  .elementor-kit-11 .elementor-6 .pq-testimonial-box.pq-style-1 .pq-testimonial-content p {
    font-size: 16px;
  }
  .elementor-kit-11 .elementor-6 .elementor-element-1270877 .elementor-widget-text-editor {
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .elementor-kit-11 .elementor-6 .pq-testimonial-box.pq-style-1:hover,
  .elementor-kit-11 .elementor-6 .elementor-element-999f1f1 .pq-icon-box.pq-style-5:hover {
    transform: none;
  }
  .elementor-kit-11 .elementor-6 .service .pq-fancy-box.pq-style-1::before {
    transition: none;
  }
}
.elementor-kit-11 .elementor-6 .elementor-element-1270877 .elementor-widget-sti-title,
.elementor-kit-11 .elementor-6 .elementor-element-999f1f1 .elementor-widget-sti-title {
  margin-bottom: 18px;
}
.elementor-kit-11 .elementor-6 .service .pq-fancy-box-title {
  margin-top: 0;
}
.elementor-kit-11 .elementor-6 .pq-list-check li span {
  line-height: 1.55;
}
.elementor-kit-11 .elementor-6 .elementor-element-1270877 .elementor-widget-sti-button {
  margin-top: 16px;
}

/* ================================================================ Pass 5: supplied homepage photography
   Images from public/images/home/ (src/content/home-images.ts). Portraits are 4:5; never
   stretched (object-fit: cover), crops tuned to keep faces in frame. */
.elementor-kit-11 .elementor-6 .elementor-element-0e7994b img,
.elementor-kit-11 .elementor-6 .elementor-element-112bcb5 img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 560px;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 30%;
}
.elementor-kit-11 .elementor-6 .elementor-element-0e7994b .elementor-widget-container,
.elementor-kit-11 .elementor-6 .elementor-element-112bcb5 .elementor-widget-container {
  display: flex;
  justify-content: center;
}
@media (max-width: 767px) {
  .elementor-kit-11 .elementor-6 .elementor-element-0e7994b img,
  .elementor-kit-11 .elementor-6 .elementor-element-112bcb5 img {
    aspect-ratio: 4 / 3;
    object-position: 50% 28%;
  }
}

/* NDIS help: image and copy share one tinted panel instead of floating in white space */
.elementor-kit-11 .elementor-6 .elementor-element-1270877 > .e-con-inner {
  margin-block: var(--ss-section);
  padding: clamp(20px, 4vw, 56px);
  border-radius: 32px;
  background:
    radial-gradient(70% 90% at 100% 0%, rgba(82, 184, 123, 0.12) 0%, rgba(82, 184, 123, 0) 60%),
    linear-gradient(135deg, var(--ss-green-tint) 0%, rgba(22, 28, 42, 0.03) 100%);
  border: 1px solid rgba(82, 184, 123, 0.14);
}
.elementor-kit-11 .elementor-6 .elementor-element-112bcb5 img {
  box-shadow: 0 30px 60px -34px rgba(22, 28, 42, 0.55);
}
@media (max-width: 1024px) {
  .elementor-kit-11 .elementor-6 .elementor-element-1270877 > .e-con-inner {
    margin-inline: var(--ss-gutter);
    width: auto;
  }
}

/* Resource cards: supplied photos are 4:3; same 16:10 frame as the rest, subjects kept in view */
.elementor-kit-11 .elementor-6 .pq-blog-post .pq-post-media img[src*="images%2Fhome"] {
  object-position: 50% 35%;
}

/* ---------------------------------------------------------------- Buttons: one system on the home page */
.elementor-kit-11 .elementor-6 .pq-button:not(.pq-button-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 28px;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.06em;
}
.elementor-kit-11 .elementor-6 .pq-button:not(.pq-button-link) .pq-button-block {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.elementor-kit-11 .elementor-6 .pq-button:not(.pq-button-link) .pq-button-block i {
  margin: 0;
  line-height: 1;
}
.elementor-kit-11 .elementor-6 .pq-button:not(.pq-button-link):hover {
  background: var(--ss-navy);
  color: #fff;
}
.elementor-kit-11 .elementor-6 .pq-button:not(.pq-button-link):hover i,
.elementor-kit-11 .elementor-6 .pq-button:not(.pq-button-link):hover .pq-button-text {
  color: #fff;
}
.elementor-kit-11 .elementor-6 .elementor-element-e7835fa .pq-button,
.elementor-kit-11 .elementor-6 .elementor-element-1fd38e6 .pq-button {
  min-height: 56px;
  padding: 0 32px;
  font-size: 15px;
}
/* Keyboard focus, site-wide */
.elementor-kit-11 a:focus-visible,
.elementor-kit-11 button:focus-visible,
.elementor-kit-11 input:focus-visible {
  outline: 3px solid var(--ss-green);
  outline-offset: 3px;
  border-radius: var(--ss-r-sm);
}
.elementor-kit-11 .pq-subscribe-from input[type="email"]:focus-visible {
  outline: none; /* the white field bar shows focus (:focus-within) */
}
/* Elementor's 50% navy overlay layer on the tablet/phone hero would tint the light card */
.elementor-kit-11 .elementor-6 .elementor-element.elementor-element-06d4ef0::before {
  display: none;
}
/* Feature sections: widgets carried stray Elementor margins (8-12px indents, -33px pulls) */
.elementor-kit-11 .elementor-6 .elementor-element-999f1f1 .elementor-widget > .elementor-widget-container,
.elementor-kit-11 .elementor-6 .elementor-element-1270877 .elementor-widget > .elementor-widget-container {
  margin: 0;
}
@media (max-width: 1024px) {
  .elementor-kit-11 .elementor-6 .elementor-element-999f1f1 > .e-con-inner > .e-con,
  .elementor-kit-11 .elementor-6 .elementor-element-1270877 > .e-con-inner > .e-con {
    --padding-left: 0px;
    --padding-right: 0px;
    padding-left: 0;
    padding-right: 0;
  }
  .elementor-kit-11 .elementor-6 .elementor-element-0e7994b img,
  .elementor-kit-11 .elementor-6 .elementor-element-112bcb5 img {
    max-width: none;
  }
}
@media (min-width: 900px) and (max-width: 1024px) {
  .elementor-kit-11 .elementor-6 .elementor-element-0e88c99 img {
    aspect-ratio: 21 / 9;
    object-position: 62% 32%;
  }
}

/* ================================================================ Pass 7: blog card images shown whole
   Featured images are 1920×1080 artwork with titles set into the picture, so card frames use
   16:9 (the 16:10 frame cut the sides), the hover zoom is dropped (it cropped the edges) and
   the date moves out of the image into the card, where it no longer covers the artwork's
   subtitle. The two supplied 4:3 photos lose a little top and bottom (no text in them). */
.elementor-kit-11 .pq-blog-post:not(.nl-postbox-details-article .pq-blog-post) .pq-post-media img {
  display: block;
  aspect-ratio: 16 / 9;
}
.elementor-kit-11 .pq-blog-post:not(.nl-postbox-details-article .pq-blog-post):hover .pq-post-media img {
  transform: none;
}
.elementor-kit-11 .pq-blog-post:not(.nl-postbox-details-article .pq-blog-post) .pq-post-media .pq-post-date {
  position: static;
  display: inline-flex;
  margin: 24px 28px 0;
  padding: 5px 12px;
  background: var(--ss-green-soft);
  box-shadow: none;
  backdrop-filter: none;
}
.elementor-kit-11 .pq-blog-post:not(.nl-postbox-details-article .pq-blog-post) .pq-blog-contain {
  padding-top: 14px;
}
@media (max-width: 767px) {
  .elementor-kit-11 .pq-blog-post:not(.nl-postbox-details-article .pq-blog-post) .pq-post-media .pq-post-date {
    margin: 20px 22px 0;
  }
}

/* ================================================================ Pass 9: the home page system on every page */

/* Elementor's global kit still carried its install defaults (Roboto, #7A7A7A text, a blue
   primary), which every widget without its own typography fell back to: service copy, Costs
   intro, Elementor buttons. Point the globals at the theme's own fonts and palette. Widgets
   with explicit settings in the page CSS keep them. */
.elementor-kit-11 {
  --e-global-color-primary: #18100f;
  --e-global-color-secondary: #161c2a;
  --e-global-color-text: #666666;
  --e-global-color-accent: #52b87b;
  --e-global-typography-primary-font-family: "Quicksand";
  --e-global-typography-secondary-font-family: "Quicksand";
  --e-global-typography-text-font-family: "Montserrat";
  --e-global-typography-accent-font-family: "Quicksand";
}
.elementor-kit-11 .elementor-widget-text-editor {
  line-height: 1.8;
}
.elementor-kit-11 .elementor-widget-text-editor strong,
.elementor-kit-11 .elementor-widget-text-editor b {
  color: var(--ss-ink);
  font-weight: 600;
}
.elementor-kit-11 .elementor-widget-text-editor a:not(.pq-button) {
  color: var(--ss-green);
  text-underline-offset: 3px;
}

/* ---------------------------------------------------------------- Page banners: inset like the home hero */
.elementor-kit-11 .pq-breadcrumb {
  margin: 0 clamp(12px, 1.6vw, 24px);
  padding: var(--ss-section) 0;
  border-radius: 0 0 32px 32px;
  overflow: hidden;
  background-position: center 40%;
}
.elementor-kit-11 .pq-breadcrumb::before {
  background:
    radial-gradient(45% 90% at 0% 100%, rgba(82, 184, 123, 0.16) 0%, rgba(82, 184, 123, 0) 70%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.82) 30%, rgba(255, 255, 255, 0.3) 55%, rgba(255, 255, 255, 0) 72%);
}
.elementor-kit-11 .pq-breadcrumb .pq-breadcrumb-title h2 {
  margin-bottom: 18px;
  color: var(--ss-ink);
  font-size: clamp(38px, 4.2vw, 58px);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.025em;
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb {
  padding: 7px 16px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 8px 24px -14px rgba(22, 28, 42, 0.35);
  backdrop-filter: none;
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item,
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item a,
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item::before {
  color: var(--ss-muted);
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item a i {
  color: var(--ss-green);
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item a:hover {
  color: var(--ss-green);
}
.elementor-kit-11 .pq-breadcrumb .breadcrumb .breadcrumb-item.active {
  color: var(--ss-navy);
}
@media (max-width: 1024px) {
  .elementor-kit-11 .pq-breadcrumb::before {
    background:
      linear-gradient(90deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.8) 60%, rgba(255, 255, 255, 0.55) 100%);
  }
}

/* ---------------------------------------------------------------- Shared components (as on home) */
.elementor-kit-11 .pq-section.pq-style-1 .pq-section-title {
  font-size: clamp(30px, 3.2vw, 46px);
  line-height: 1.14;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.elementor-kit-11 .pq-section.pq-style-1 .pq-section-sub-title {
  margin-bottom: 14px;
}

/* One button system: theme buttons and Elementor buttons look alike */
.elementor-kit-11 .elementor .pq-button:not(.pq-button-link),
.elementor-kit-11 .elementor .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 28px;
  border-radius: var(--ss-r-sm);
  font-family: var(--title-fonts), sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.elementor-kit-11 .elementor .elementor-button {
  background-color: var(--ss-green);
  color: #fff;
  box-shadow: 0 8px 20px -12px rgba(82, 184, 123, 0.6);
}
.elementor-kit-11 .elementor .pq-button:not(.pq-button-link) .pq-button-block {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.elementor-kit-11 .elementor .pq-button:not(.pq-button-link) .pq-button-block i {
  margin: 0;
  line-height: 1;
}
.elementor-kit-11 .elementor .pq-button:not(.pq-button-link):hover,
.elementor-kit-11 .elementor .elementor-button:hover {
  background-color: var(--ss-navy);
  color: #fff;
}
.elementor-kit-11 .elementor .pq-button:not(.pq-button-link):hover i,
.elementor-kit-11 .elementor .pq-button:not(.pq-button-link):hover .pq-button-text,
.elementor-kit-11 .elementor .elementor-button:hover .elementor-button-text {
  color: #fff;
}

/* Check lists and icon-box points */
.elementor-kit-11 .pq-list-check li {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
  font-weight: 500;
}
.elementor-kit-11 .pq-list-check li span {
  line-height: 1.55;
}
.elementor-kit-11 .pq-list-check li i {
  flex: none;
  background: var(--ss-green);
  color: #fff;
}
.elementor-kit-11 .pq-icon-box.pq-style-5 {
  align-items: center;
  gap: 4px;
  margin-bottom: 12px;
  padding: 14px 18px;
  background: var(--ss-green-tint);
  border: 1px solid rgba(82, 184, 123, 0.16);
  border-radius: var(--ss-r-md);
}
.elementor-kit-11 .pq-icon-box.pq-style-5 .pq-icon i {
  background: var(--ss-green);
  color: #fff;
}
.elementor-kit-11 .pq-icon-box.pq-style-5 .pq-icon-box-description {
  margin: 0;
  color: var(--ss-ink);
  font-weight: 500;
  line-height: 1.55;
}

/* Services index: cards like the home service grid */
.elementor-kit-11 .news-page .row:has(> [class*="col-"] > .pq-fancy-box) {
  row-gap: 24px;
}
.elementor-kit-11 .news-page [class*="col-"]:has(> .pq-fancy-box) {
  display: flex;
}
.elementor-kit-11 .news-page .pq-fancy-box.pq-style-1 {
  position: relative;
  display: flex;
  width: 100%;
  margin: 0 !important; /* Bootstrap .mb-50 */
  padding: 30px 28px 24px;
  text-align: left !important; /* Bootstrap .text-center */
  background: #fff;
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  box-shadow: var(--ss-shadow);
  overflow: hidden;
  transition:
    transform 0.35s var(--ss-ease),
    box-shadow 0.35s var(--ss-ease),
    border-color 0.35s var(--ss-ease);
}
.elementor-kit-11 .news-page .pq-fancy-box.pq-style-1::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--ss-green);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.45s var(--ss-ease);
}
.elementor-kit-11 .news-page .pq-fancy-box.pq-style-1:hover {
  transform: translateY(-6px);
  border-color: var(--ss-green-line);
  box-shadow: var(--ss-shadow-hover);
}
.elementor-kit-11 .news-page .pq-fancy-box.pq-style-1:hover::before {
  transform: scaleX(1);
}
.elementor-kit-11 .news-page .pq-fancy-box-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
.elementor-kit-11 .news-page .pq-fancy-box-title {
  flex: 1;
  margin: 0 0 22px;
  font-size: 21px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.elementor-kit-11 .news-page .pq-fancy-box-title a {
  color: var(--ss-ink);
  transition: color 0.25s var(--ss-ease);
}
.elementor-kit-11 .news-page .pq-fancy-box.pq-style-1:hover .pq-fancy-box-title a {
  color: var(--ss-green);
}
.elementor-kit-11 .news-page .pq-fancy-box-info .pq-button-link {
  width: 100%;
  padding-top: 16px;
  border-top: 1px solid var(--ss-line);
}

/* Contact: the framed white card around the enquiry form rounds like the other cards (the green
   form panel itself is inside the LeadConnector iframe and cannot be styled from here). */
.elementor-kit-11 .elementor-319 > .e-con > .e-con-inner > .e-con {
  border-radius: 28px;
}
/* Info cards: one container carried a 430px minimum height that stretched all three */
.elementor-kit-11 .e-con:has(> .elementor-widget-icon-box) {
  --min-height: 0px;
  min-height: 0;
}

/* ---------------------------------------------------------------- Services dropdown (desktop) */
@media (min-width: 1024px) {
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li.menu-item-has-children {
    position: relative;
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li:hover > .sub-menu,
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li:focus-within > .sub-menu {
    display: grid !important; /* theme responsive.css forces display: block !important */
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 6px;
    width: min(580px, 80vw);
    padding: 10px;
    margin-top: 0;
    border: 1px solid var(--ss-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 30px 60px -28px rgba(22, 28, 42, 0.35);
    animation: ss-menu-in 0.22s var(--ss-ease);
  }
  /* Hover bridge so the panel stays open while the pointer crosses the gap */
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li:hover > .sub-menu::before {
    content: "";
    position: absolute;
    inset: -14px 0 auto;
    height: 14px;
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li {
    width: auto;
    line-height: 1.35;
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 30px 10px 14px;
    border-radius: 10px;
    color: var(--ss-ink);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
    text-transform: none;
    transition:
      background-color 0.2s var(--ss-ease),
      color 0.2s var(--ss-ease);
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li a::after {
    content: "\f054";
    position: absolute;
    right: 12px;
    font-family: "Font Awesome 6 Free";
    font-size: 9px;
    font-weight: 900;
    color: var(--ss-green);
    opacity: 0;
    transform: translateX(-4px);
    transition:
      opacity 0.2s var(--ss-ease),
      transform 0.2s var(--ss-ease);
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li a:hover,
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li a:focus-visible {
    background: var(--ss-green-tint);
    color: var(--ss-green);
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li a:hover::after,
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li a:focus-visible::after {
    opacity: 1;
    transform: none;
  }
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li .sub-menu li.current-menu-item > a {
    background: var(--ss-green-soft);
    color: var(--ss-green);
    font-weight: 600;
  }
}
@keyframes ss-menu-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-kit-11 header#pq-header .pq-bottom-header .navbar .navbar-nav li:hover > .sub-menu {
    animation: none;
  }
  .elementor-kit-11 .news-page .pq-fancy-box.pq-style-1:hover {
    transform: none;
  }
}

/* Inner pages: sections whose Elementor padding is 0 ran text to the screen edge on phones */
@media (max-width: 1024px) {
  .elementor-kit-11 .elementor:not(.elementor-6) > .e-con {
    --padding-left: var(--ss-gutter);
    --padding-right: var(--ss-gutter);
  }
}
/* Services side menu: two-line items keep a tight line height */
.elementor-kit-11 .pq-widget.pq-widget-port .menu li a {
  line-height: 1.4;
  padding-top: 14px;
  padding-bottom: 14px;
}
/* Icon tiles (contact cards and similar) */
.elementor-kit-11 .elementor-icon-box-icon .elementor-icon,
.elementor-kit-11 .elementor-widget-icon .elementor-icon {
  border-radius: 18px;
}
.elementor-kit-11 .elementor-widget-icon-box .elementor-icon {
  border-radius: 20px;
}
.elementor-kit-11 .elementor-widget-icon-box .elementor-icon-box-title {
  font-weight: 700;
}

/* ================================================================ Pass 10: blog listing (index, archives, search) */

/* Shorter banner on listing pages so the posts start sooner */
.elementor-kit-11 main:has(> .news-page) > .pq-breadcrumb {
  padding: clamp(52px, 6vw, 80px) 0;
}
.elementor-kit-11 main:has(> .news-page) > .pq-breadcrumb .pq-breadcrumb-title h2 {
  font-size: clamp(34px, 3.6vw, 50px);
  margin-bottom: 14px;
}

/* Section rhythm: Bootstrap pt-120/pb-120 replaced. The newsletter band overlaps the section
   by 80px, so the bottom padding leaves about 56px between pagination and the band. */
.elementor-kit-11 .news-page {
  padding-top: clamp(48px, 5vw, 72px) !important; /* Bootstrap .pt-120 uses !important */
  padding-bottom: var(--ss-newsletter-room) !important; /* Bootstrap .pb-120 */
}
.elementor-kit-11 .news-page > .container > .row {
  row-gap: clamp(24px, 2.4vw, 30px);
}

/* Grid: 3 / 2 / 1 columns */
@media (min-width: 768px) and (max-width: 991px) {
  .elementor-kit-11 .news-page > .container > .row > .col-lg-4 {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

/* Cards: date pill, title and excerpt clamped so heights stay even, CTA pinned to the base */
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-contain .pq-blog-title {
  font-size: 20px;
  line-height: 1.35;
  font-weight: 700;
  margin-bottom: 10px;
}
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-info p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  overflow: hidden;
  margin-bottom: 0;
}
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-info {
  flex: 1 1 auto;
  margin-bottom: 20px;
}
/* The screen-reader page heading sat in the grid row and added a 30px row gap above the cards */
.elementor-kit-11 .news-page > .container > .row > header {
  position: absolute;
}
@media (max-width: 1024px) {
  .elementor-kit-11 .news-page > .container {
    padding-left: var(--ss-gutter);
    padding-right: var(--ss-gutter);
  }
}
/* Listing CTA matches the home cards: divider and text link, at the bottom of every card */
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-contain > .pq-button.pq-button-flat {
  display: flex;
  align-items: center;
  align-self: stretch;
  min-height: 0;
  margin-top: auto;
  padding: 18px 0 0;
  border-top: 1px solid var(--ss-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ss-green);
  font-size: 14px;
  letter-spacing: 0.06em;
}
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-contain > .pq-button.pq-button-flat .pq-button-block {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-contain > .pq-button.pq-button-flat .pq-button-text,
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-contain > .pq-button.pq-button-flat i {
  margin: 0;
  color: var(--ss-green);
  transition: color 0.25s var(--ss-ease);
}
.elementor-kit-11 .news-page .pq-blog-post .pq-blog-contain > .pq-button.pq-button-flat:hover {
  transform: none;
  background: transparent;
  box-shadow: none;
}
.elementor-kit-11 .news-page .pq-blog-post:hover .pq-blog-contain > .pq-button.pq-button-flat .pq-button-text,
.elementor-kit-11 .news-page .pq-blog-post:hover .pq-blog-contain > .pq-button.pq-button-flat i {
  color: var(--ss-ink);
}
/* Hover: subtle lift and border only */
.elementor-kit-11 .news-page .pq-blog-post:hover {
  transform: translateY(-4px);
  border-color: var(--ss-green-line);
}

/* ---------------------------------------------------------------- Pagination (all listings) */
.elementor-kit-11 .pq-pagination {
  margin-top: clamp(32px, 4vw, 48px);
}
.elementor-kit-11 .pq-pagination .page-numbers {
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.elementor-kit-11 .pq-pagination .page-numbers li {
  margin: 0;
}
.elementor-kit-11 .pq-pagination .page-numbers li .page-numbers {
  display: inline-grid;
  place-items: center;
  min-width: 46px;
  width: auto;
  height: 46px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid var(--ss-line);
  border-radius: 12px;
  background: #fff;
  color: var(--ss-ink);
  font-family: var(--title-fonts), sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  box-shadow: 0 1px 2px rgba(22, 28, 42, 0.04);
  transition:
    background-color 0.2s var(--ss-ease),
    border-color 0.2s var(--ss-ease),
    color 0.2s var(--ss-ease),
    transform 0.2s var(--ss-ease);
}
.elementor-kit-11 .pq-pagination .page-numbers li a.page-numbers:hover {
  background: var(--ss-green-tint);
  border-color: var(--ss-green-line);
  color: var(--ss-green);
  transform: translateY(-1px);
}
.elementor-kit-11 .pq-pagination .page-numbers li a.page-numbers:focus-visible {
  outline: 3px solid var(--ss-green);
  outline-offset: 2px;
}
.elementor-kit-11 .pq-pagination .page-numbers li .page-numbers.current {
  background: var(--ss-green);
  border-color: var(--ss-green);
  color: #fff;
  box-shadow: 0 10px 22px -12px rgba(82, 184, 123, 0.8);
}
.elementor-kit-11 .pq-pagination .page-numbers li .next.page-numbers,
.elementor-kit-11 .pq-pagination .page-numbers li .prev.page-numbers {
  padding: 0 20px;
}
/* The current page and the ellipsis are wrapped in bare <a> elements */
.elementor-kit-11 .pq-pagination .page-numbers li > a:not(.page-numbers) {
  display: inline-flex;
  border: 0;
  background: none;
}
.elementor-kit-11 .pq-pagination .page-numbers li[aria-hidden="true"] a {
  align-items: center;
  height: 46px;
  padding: 0 4px;
  color: var(--ss-muted);
  letter-spacing: 0.1em;
}
@media (max-width: 575px) {
  .elementor-kit-11 .pq-pagination .page-numbers {
    gap: 6px;
  }
  .elementor-kit-11 .pq-pagination .page-numbers li .page-numbers {
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
  }
  .elementor-kit-11 .pq-pagination .page-numbers li .next.page-numbers,
  .elementor-kit-11 .pq-pagination .page-numbers li .prev.page-numbers {
    padding: 0 16px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-kit-11 .news-page .pq-blog-post:hover,
  .elementor-kit-11 .pq-pagination .page-numbers li a.page-numbers:hover {
    transform: none;
  }
}

/* ================================================================ Header: top bar only at the top of the page
   One header, position: sticky with a negative offset equal to the top bar's height
   (--ss-topbar-h, measured by SiteBehaviours). Scrolling moves the top bar out of view with the
   page and the main navigation locks to the top; scrolling back to the top brings it back. The
   header never leaves the document flow, so nothing jumps (the theme switched it to
   position: fixed at 300px, which pulled the page up by the header's height). */
.elementor-kit-11 header#pq-header,
.elementor-kit-11 header#pq-header.pq-header-sticky {
  position: sticky;
  top: calc(-1 * var(--ss-topbar-h, 0px));
  left: auto;
  display: block;
  z-index: 1000;
  box-shadow: none;
  animation: none;
}
/* The theme floats the footer, so the site wrapper ended above it and, at the very bottom of a
   page, the sticky header ran out of its containing block and was pushed up. */
.elementor-kit-11 {
  display: flow-root;
}
.elementor-kit-11 header#pq-header .pq-bottom-header {
  transition:
    background-color 0.3s var(--ss-ease),
    box-shadow 0.3s var(--ss-ease);
}
.elementor-kit-11 header#pq-header.pq-header-sticky .pq-bottom-header {
  box-shadow: 0 10px 30px -22px rgba(22, 28, 42, 0.45);
}

/* ================================================================ Pass 11: vertical rhythm
   Spacing tokens are defined with the Pass 4 variables (--ss-section, --ss-block,
   --ss-newsletter-room). The migrated pages carried WordPress-era spacing: Elementor containers
   at 80-200px each (two met between sections), theme utility classes at 110-210px and the
   newsletter overlap added on top. Authored values are capped, never raised. */

/* Inner pages: Elementor spacer widgets (80-230px of empty height) capped at one block unit. */
.elementor-kit-11 .elementor:not(.elementor-6) .elementor-widget-spacer .elementor-spacer-inner {
  height: min(var(--container-widget-height, var(--spacer-size)), var(--ss-block));
}

/* Inner pages: Elementor container padding capped at one block unit. Elementor maps --padding-top
   and --padding-bottom onto these variables (frontend.min.css .e-con), so smaller authored
   values pass through unchanged. The home page (document 6) has its own section system. */
.elementor-kit-11 .elementor:not(.elementor-6) .e-con {
  --padding-block-start: min(var(--padding-top, 0px), var(--ss-block));
  --padding-block-end: min(var(--padding-bottom, 0px), var(--ss-block));
}
/* Full-width Elementor pages: the page itself clears the newsletter band's 80px overlap and the
   closing section adds nothing on top. Leaving it to each page's last section put a closing
   button (Specialist Support Coordination) and an image (Equine Therapy, phones) under the band. */
.elementor-kit-11 main:has(> .elementor:not(.elementor-6)) {
  padding-bottom: var(--ss-newsletter-room);
}
.elementor-kit-11 main:has(> .elementor:not(.elementor-6)) > .elementor > .e-con:last-child,
.elementor-kit-11 main:has(> .elementor:not(.elementor-6)) > .elementor > .e-con:last-child > .e-con-inner > .e-con:last-child {
  --padding-block-end: 0px;
}

/* Pages without a full-width Elementor layout (Costs, EAP booking, legal pages) sit in a
   pt-120/pb-120 wrapper whose classes no stylesheet defines, so the content's own padding made
   the space and the newsletter band overlapped what ended flush. The wrapper now clears the band
   once and the closing Elementor section adds nothing on top. */
.elementor-kit-11 main > .nl-page-area {
  padding-bottom: var(--ss-newsletter-room);
}
.elementor-kit-11 main > .nl-page-area:not(:has(.elementor)) {
  padding-top: var(--ss-block);
}
.elementor-kit-11 main > .nl-page-area .elementor > .e-con:last-child,
.elementor-kit-11 main > .nl-page-area .elementor > .e-con:last-child > .e-con-inner > .e-con:last-child {
  --padding-block-end: 0px;
}

/* Single post: theme pq-pt-130 / pq-pb-210 */
.elementor-kit-11 .blog-single {
  padding-top: var(--ss-block);
  padding-bottom: var(--ss-newsletter-room) !important; /* theme responsive .pq-pb-210 uses !important */
}
.elementor-kit-11 .blog-single .pq-blog-post {
  margin-bottom: 0;
}
/* Sidebar widgets: theme 45px between them, plus mb-35 */
.elementor-kit-11 .nl-sidebar-wrapper .pq-widget {
  margin-bottom: 24px;
}
.elementor-kit-11 .nl-sidebar-wrapper .pq-widget:last-child {
  margin-bottom: 0;
}
@media (max-width: 991px) {
  /* Stacked under the article on tablets and phones */
  .elementor-kit-11 .blog-single aside.col-lg-4 {
    margin-top: var(--ss-block);
  }
}
/* Long-form copy: headings sit one step closer to the paragraph they follow */
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain h2,
.elementor-kit-11 .nl-postbox-details-article .pq-blog-contain h3 {
  margin-top: 1.1em;
}

/* Listings: the grid's row gap is the only space between card rows */
.elementor-kit-11 .news-page .pq-blog-post {
  margin-bottom: 0;
}

/* 404 and error pages: theme pt-110/pb-110 */
.elementor-kit-11 .nl-error-area {
  padding-top: var(--ss-block) !important;
  padding-bottom: var(--ss-newsletter-room) !important;
}

/* ================================================================ Pass 12: EAP Booking and Contact */

/* EAP Booking (document 588). The embed's own CSS gave the Calendly frame height: 1200px PLUS
   padding-top: 75% (the two add up: ~2,160px on desktop) around a calendar about 660px tall, so
   ~1,400px of blank page followed it. Heights below match Calendly's layouts, which switch on the
   frame width: two columns from ~1000px (660px tall), stacked 700–980px (~1000px), phone ≤600px
   (~900px). The frame scrolls inside if a long list of times opens. Its off-white is now a card,
   on the page's white instead of a #FAFBFD box. */
.elementor-kit-11 .elementor-588 > .e-con {
  --background-color: transparent;
  background-color: transparent !important; /* Elementor page CSS sets #FAFBFD */
}
.elementor-kit-11 .calendly-container {
  height: 700px;
  padding-top: 0;
  margin-top: var(--ss-block);
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  background: #fafafa;
  box-shadow: var(--ss-shadow);
}
@media (max-width: 1199px) {
  .elementor-kit-11 .calendly-container {
    height: 1010px;
  }
}
@media (max-width: 767px) {
  .elementor-kit-11 .calendly-container {
    height: 910px;
  }
}

/* Contact (document 319): info cards on top, then the form and the map as one block, side by
   side on desktop and stacked below. The map was a 655px full-width strip pulled 145px up under
   a 70%-wide form card. */
.elementor-kit-11 .elementor-319 .elementor-widget-icon-box.elementor-element > .elementor-widget-container {
  height: 100%;
  padding: clamp(28px, 3vw, 40px) clamp(20px, 2.4vw, 30px);
  transition:
    border-color 0.25s var(--ss-ease),
    box-shadow 0.25s var(--ss-ease),
    transform 0.25s var(--ss-ease);
}
.elementor-kit-11 .elementor-319 .elementor-widget-icon-box .elementor-icon {
  padding: 18px;
  border-radius: var(--ss-r-md);
}
.elementor-kit-11 .elementor-319 .elementor-widget-icon-box .elementor-icon-box-title {
  font-size: clamp(22px, 2vw, 26px);
  line-height: 1.3;
}
/* Phone and email cards are clickable */
.elementor-kit-11 .elementor-319 .elementor-widget-icon-box:has(a[href^="tel:"], a[href^="mailto:"]) > .elementor-widget-container:hover {
  border-color: var(--ss-green-line);
  box-shadow: var(--ss-shadow-hover);
  transform: translateY(-2px);
}
.elementor-kit-11 .elementor-319 > .elementor-element-128ce4c > .e-con-inner > .e-con {
  align-self: stretch;
}
.elementor-kit-11 .elementor-319 .e-con.elementor-element.elementor-element-128ce4c {
  --padding-bottom: 0px;
}
/* Same gap from the info cards to the form and to the map */
.elementor-kit-11 .elementor-319 {
  --ss-contact-gap: clamp(24px, 3vw, 40px);
}
.elementor-kit-11 .elementor-319 .e-con.elementor-element.elementor-element-221f3ca {
  --padding-top: var(--ss-contact-gap);
}
/* Form card: sized by the form, same card style as the info cards */
.elementor-kit-11 .elementor-319 .e-con.elementor-element.elementor-element-2d1e114 {
  --width: 100%;
  --padding-top: clamp(24px, 3vw, 36px);
  --padding-bottom: clamp(24px, 3vw, 36px);
  --padding-left: clamp(20px, 3vw, 36px);
  --padding-right: clamp(20px, 3vw, 36px);
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  box-shadow: var(--ss-shadow) !important; /* Elementor page CSS: 1px 7px 22px -6px rgba(0,0,0,.5) */
}
.elementor-kit-11 .elementor-319 .elementor-element-2d1e114 .elementor-element-a8613b2 {
  margin-bottom: 4px;
}
/* Map: a card beside (desktop) or below (smaller screens) the form */
.elementor-kit-11 .elementor-319 .e-con.elementor-element.elementor-element-0012171 {
  --margin-top: 0px;
  --padding-top: 0px;
  --padding-left: 0px;
  --padding-right: 0px;
  margin-top: 0;
  width: auto;
  margin-inline: var(--ss-gutter);
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-r-lg);
  overflow: hidden;
  box-shadow: var(--ss-shadow);
}
.elementor-kit-11 .elementor-319 .elementor-element-a082667,
.elementor-kit-11 .elementor-319 .elementor-element-a082667 > .elementor-widget-container,
.elementor-kit-11 .elementor-319 .elementor-element-a082667 .elementor-custom-embed {
  height: 100%;
}
.elementor-kit-11 .elementor-319 .elementor-element.elementor-element-a082667 iframe {
  display: block;
  height: clamp(300px, 45vw, 360px);
}
@media (min-width: 1025px) {
  .elementor-kit-11 .elementor-319 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(20px, 2vw, 32px);
    align-items: stretch;
    width: min(1300px, 100% - 2 * var(--ss-gutter));
    margin-inline: auto;
  }
  .elementor-kit-11 .elementor-319 > .e-con {
    --content-width: 100%;
  }
  .elementor-kit-11 .elementor-319 > .elementor-element-128ce4c {
    grid-column: 1 / -1;
  }
  .elementor-kit-11 .elementor-319 > .elementor-element-221f3ca {
    grid-column: 1;
  }
  .elementor-kit-11 .elementor-319 .e-con.elementor-element.elementor-element-221f3ca {
    --padding-bottom: 0px;
  }
  .elementor-kit-11 .elementor-319 .e-con.elementor-element.elementor-element-0012171 {
    grid-column: 2;
    margin-inline: 0;
    margin-top: var(--ss-contact-gap);
    min-height: 420px;
  }
  .elementor-kit-11 .elementor-319 .elementor-element.elementor-element-a082667 iframe {
    height: 100%;
    min-height: 420px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-kit-11 .elementor-319 .elementor-widget-icon-box > .elementor-widget-container:hover {
    transform: none;
  }
}
