/* ============================================================
   Saburi Physical Therapy — custom site overrides
   ------------------------------------------------------------
   This file is loaded AFTER all theme/plugin CSS, so any rule
   here wins. Keep all future handwritten tweaks in this file
   so they survive theme/plugin updates or re-purges.
   ============================================================ */

/* ---------- Dual-address display (Clinic + Office) ----------
   The footer and the Contact Us page now show two addresses. These rules
   give each address a clear visual hierarchy: a small accent-colored label
   ("Clinic", "Office") above the street line, with tighter line-height so
   each block reads as one unit. Applies everywhere the labels appear
   (footer text widget + contact-us icon widget).
   ------------------------------------------------------------ */
.elementor-widget-text-editor p,
.elementor-widget-trx_sc_icons .sc_icons_item_description {
  line-height: 1.55;
}
.elementor-widget-trx_sc_icons .sc_icons_item_description strong,
.elementor-widget-text-editor p strong {
  display: inline-block;
  margin-bottom: 2px;
  color: var(--e-global-color-accent, #78933D);
  font-weight: 600;
  letter-spacing: 0.02em;
}
/* Space the two addresses in the contact-us icon widget so they don't
   crowd one another. */
.elementor-widget-trx_sc_icons .sc_icons_item + .sc_icons_item {
  margin-top: 10px;
}

/* ---------- Lotus ornament below "Awareness" heading ----------
   A small outlined lotus mark sits under the "Awareness is the first
   step in healing" H2 on every page. The SVG is injected directly into
   the HTML (class="site-lotus"), so we only need to center it and give
   it a bit of breathing room from the heading above.
   ----------------------------------------------------------------- */
.site-lotus {
  display: block;
  margin: 22px auto 6px;
  text-align: center;
  line-height: 0;
}
.site-lotus svg {
  display: inline-block;
  width: 170px;
  height: auto;
  max-width: 60%;
}
@media (max-width: 767px) {
  .site-lotus svg { width: 130px; }
}

/* ---------- Try Today / Exceptional experience carousel ----------
   Cards are rendered by a theme Swiper slider. The theme's init JS is
   incomplete in this static export (it depends on trx_addons helpers
   that were never exported), so `site-init.js` wires up Swiper 8 on any
   `.slider_container.swiper-slider-container` and reads the existing
   data- attributes. This CSS is polish only — colors, hover, pagination.
   ----------------------------------------------------------------- */
.elementor-element-847717a .sc_icons_icon,
.elementor-element-847717a .sc_icon_type_ {
  color: #78933D;
}
.elementor-element-847717a .sc_icons_item {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.elementor-element-847717a .sc_icons_item:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(56, 70, 30, 0.08);
}

/* Replace the "Read more" button at the bottom of each card with three
   small grey dots (matches the reference mock). The theme renders a
   link with <span class="link_text">Read more</span> + an empty icon
   span; we hide both, zero out the anchor's chrome, and paint three
   round dots via ::before (single element, box-shadow for dots 2 + 3). */
.elementor-element-847717a .sc_icons_item_more_link {
  display: inline-block;
  margin: 14px auto 0;
  padding: 0;
  width: 28px;
  height: 4px;
  font-size: 0;
  line-height: 0;
  color: transparent;
  background: transparent;
  border: 0;
  text-decoration: none;
  position: relative;
  pointer-events: none;    /* decorative only — full-card link remains clickable */
}
.elementor-element-847717a .sc_icons_item_more_link .link_text,
.elementor-element-847717a .sc_icons_item_more_link .link_icon {
  display: none !important;
}
.elementor-element-847717a .sc_icons_item_more_link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #c9c7ba;
  box-shadow:
    12px 0 0 #c9c7ba,
    24px 0 0 #c9c7ba;
}
/* centre the dot cluster within the card's details column */
.elementor-element-847717a .sc_icons_item_details {
  text-align: center;
}

/* pagination dots — olive outline, filled when active */
.slider_pagination_wrap .swiper-pagination-bullet {
  border: 1px solid rgba(120, 147, 61, 0.4);
  background: transparent;
  opacity: 1;
  width: 10px;
  height: 10px;
  margin: 0 5px !important;
}
.slider_pagination_wrap .swiper-pagination-bullet-active {
  background: #78933D;
  border-color: #78933D;
}

/* ---------- Icon glyph fallbacks (Font Awesome 6) ----------
   The original export referenced two custom icon fonts (`fontello` and
   `trx_addons_icons`) whose font files were not included, so the glyphs
   used to render as empty squares. Font Awesome 6.7.2 is already loaded
   site-wide via the CDN link in every page's <head>, so we re-use it.

   Each rule below overrides the ::before pseudo-element of the original
   icon class and points it at the equivalent Font Awesome glyph. Use
   !important because the upstream theme CSS declares the same selector
   with its own font-family and content value.

   Families:
     - "Font Awesome 6 Free"   weight 900  -> solid icons
     - "Font Awesome 6 Brands" weight 400  -> brand logos
   ----------------------------------------------------------- */

/* Contact-widget glyphs (highest priority — these render on every page) */
.icon-envelope-2::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f0e0" !important;      /* envelope */
  font-style: normal !important;
}
.icon-iphone::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f095" !important;      /* phone */
  font-style: normal !important;
}
.icon-marker::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f3c5" !important;      /* location-dot */
  font-style: normal !important;
}

/* Social icons */
.icon-facebook-1::before {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
  content: "\f39e" !important;      /* facebook-f */
  font-style: normal !important;
}
.icon-instagram::before {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
  content: "\f16d" !important;      /* instagram */
  font-style: normal !important;
}
.icon-dribble-new::before {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
  content: "\f17d" !important;      /* dribbble */
  font-style: normal !important;
}
.icon-comment-light::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 400 !important;
  content: "\f075" !important;      /* comment (regular) */
  font-style: normal !important;
}
.trx_addons_icon-twitter-x::before {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
  content: "\e61b" !important;      /* x-twitter */
  font-style: normal !important;
}

/* UI chrome */
.trx_addons_icon-menu::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f0c9" !important;      /* bars */
  font-style: normal !important;
}
.trx_addons_icon-up::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f077" !important;      /* chevron-up (scroll-to-top) */
  font-style: normal !important;
}
.trx_addons_icon-ellipsis-vert::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f142" !important;      /* ellipsis-vertical */
  font-style: normal !important;
}
.trx_addons_icon-basket::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f07a" !important;      /* cart-shopping */
  font-style: normal !important;
}

/* Service icons (our-services page).
   The original theme shipped custom "new-sr-icon-*" glyphs which we don't
   have. Mapping each to a distinct health/therapy-themed FA icon so at
   least something recognizable renders; swap in more specific ones if the
   service labels don't match. */
.icon-new-sr-icon-1::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f4be" !important;      /* hand-holding-heart (e05c is FA Pro) */
  font-style: normal !important;
}
.icon-new-sr-icon-2::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f54b" !important;      /* shoe-prints (Joint treatment) */
  font-style: normal !important;
}
.icon-new-sr-icon-3::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f206" !important;      /* bicycle (Fitness) */
  font-style: normal !important;
}
.icon-new-sr-icon-4::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f481" !important;      /* notes-medical clipboard (Counseling) */
  font-style: normal !important;
}
.icon-new-sr-icon-5::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f554" !important;      /* person-walking */
  font-style: normal !important;
}
.icon-new-sr-icon-6::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f481" !important;      /* notes-medical */
  font-style: normal !important;
}
.icon-new-sr-icon-7::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f0f1" !important;      /* stethoscope */
  font-style: normal !important;
}
.icon-new-sr-icon-8::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f5bb" !important;      /* spa */
  font-style: normal !important;
}
.icon-new-sr-icon-23::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f0fa" !important;      /* notes-medical (alt: kit-medical) */
  font-style: normal !important;
}

/* Ensure ::before on these classes actually renders even when the upstream
   rule tries to hide it via display:none or size:0. */
.icon-envelope-2::before,
.icon-iphone::before,
.icon-marker::before,
.icon-facebook-1::before,
.icon-instagram::before,
.icon-dribble-new::before,
.icon-comment-light::before,
.trx_addons_icon-twitter-x::before,
.trx_addons_icon-menu::before,
.trx_addons_icon-up::before,
.trx_addons_icon-ellipsis-vert::before,
.trx_addons_icon-basket::before,
[class*="icon-new-sr-icon-"]::before {
  display: inline-block;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-decoration: inherit;
  text-rendering: auto;
}

/* ---------- Homepage: Steps we follow ----------
   The "Steps we follow" 3-step block previously rendered inside 4 col-25
   columns where the 4th column held a clickable arrow. The arrow
   columns were removed (each step is now read-only/static). Here we
   rebalance the 3 surviving columns to fill the row, and neutralize
   the hover effect that used to highlight the step number when the
   row was clickable.
   ----------------------------------------------------------------- */
.elementor-element-4dfc03d5 > .elementor-container > .elementor-column,
.elementor-element-583dd8e1 > .elementor-container > .elementor-column,
.elementor-element-60f70301 > .elementor-container > .elementor-column {
  width: 33.333% !important;
}
.elementor-element-4dfc03d5 .num-hover h2,
.elementor-element-583dd8e1 .num-hover h2,
.elementor-element-60f70301 .num-hover h2 {
  transition: none !important;
  pointer-events: none;
}
.elementor-element-4dfc03d5 .num-hover h2:hover,
.elementor-element-583dd8e1 .num-hover h2:hover,
.elementor-element-60f70301 .num-hover h2:hover {
  color: inherit !important;
  transform: none !important;
}
/* Mobile: the three 33% columns (number · title · description) are far too
   cramped side-by-side. Re-lay each step as a compact two-column grid — the
   big number on the left, the title and description stacked to its right —
   so each step reads like a clean numbered list item. */
@media (max-width: 767px) {
  .elementor-element-4dfc03d5 > .elementor-container,
  .elementor-element-583dd8e1 > .elementor-container,
  .elementor-element-60f70301 > .elementor-container {
    display: grid !important;
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "num title"
      "num desc";
    align-items: center;
    column-gap: 20px;
    row-gap: 4px;
    text-align: left;
  }
  .elementor-element-4dfc03d5 > .elementor-container > .elementor-column,
  .elementor-element-583dd8e1 > .elementor-container > .elementor-column,
  .elementor-element-60f70301 > .elementor-container > .elementor-column {
    width: auto !important;
  }
  .elementor-element-4dfc03d5 > .elementor-container > .elementor-column:nth-child(1),
  .elementor-element-583dd8e1 > .elementor-container > .elementor-column:nth-child(1),
  .elementor-element-60f70301 > .elementor-container > .elementor-column:nth-child(1) {
    grid-area: num;
    align-self: center;
  }
  .elementor-element-4dfc03d5 > .elementor-container > .elementor-column:nth-child(2),
  .elementor-element-583dd8e1 > .elementor-container > .elementor-column:nth-child(2),
  .elementor-element-60f70301 > .elementor-container > .elementor-column:nth-child(2) {
    grid-area: title;
    align-self: end;
  }
  .elementor-element-4dfc03d5 > .elementor-container > .elementor-column:nth-child(3),
  .elementor-element-583dd8e1 > .elementor-container > .elementor-column:nth-child(3),
  .elementor-element-60f70301 > .elementor-container > .elementor-column:nth-child(3) {
    grid-area: desc;
    align-self: start;
  }
  .elementor-element-4dfc03d5 .num-hover h2,
  .elementor-element-583dd8e1 .num-hover h2,
  .elementor-element-60f70301 .num-hover h2 {
    font-size: 42px !important;
    line-height: 1 !important;
    margin: 0 !important;
  }
}

/* ---------- Homepage: Our Services (3 cards) ----------
   The home services block reuses the our-services design but should
   not show the "01.", "02.", "03." numbers (visible by default and on
   hover). Hide the number element entirely.
   ----------------------------------------------------------------- */
.elementor-element-our-services-home .sc_services_item .sc_services_item_number,
.elementor-element-our-services-home .sc_services_item_content_inner_top {
  display: none !important;
}

/* ---------- Homepage: Contact form (Have questions? Get in touch!) ----------
   We keep the theme's original `form-style-6` + `.style-line` underline
   look. Each field is on its own row (Full Name, Email, Phone,
   Message). Only minimal overrides:
     - vertical gap between the four field rows so they don't visually
       collide (theme defaults to almost zero spacing)
     - tall textarea so the message field looks like one to actually
       type into
     - placeholder colour fix (the theme's `--theme-color-alter_text`
       washed out on the cream column)
     - swap the missing fontello arrow on the submit button with a
       Font Awesome paper-plane (FA is loaded site-wide, fontello
       fonts were not exported)
   ----------------------------------------------------------------- */
/* Specificity bump: theme rules use `div.wpcf7 .form-style-6 ...` so we
   match or exceed that depth on every field-level rule below. */
div.wpcf7 .saburi-contact-form > p,
.wpcf7-form .saburi-contact-form > p {
  margin: 0 0 22px 0 !important;
}
div.wpcf7 .saburi-contact-form > p:last-child {
  margin-bottom: 0 !important;
}
div.wpcf7 .saburi-contact-form .style-line { display: block; }

/* Slightly taller message field, but tighter than before. */
div.wpcf7 .saburi-contact-form .saburi-message-row { margin-top: 6px !important; }
div.wpcf7 .saburi-contact-form .saburi-message-row .wpcf7-form-control-wrap,
div.wpcf7 .saburi-contact-form .saburi-message-row .style-line { display: block; }
div.wpcf7 .saburi-contact-form .saburi-message-row textarea,
.wpcf7-form .saburi-contact-form textarea.wpcf7-textarea {
  min-height: 110px !important;
  height: 110px !important;
  resize: vertical !important;
  line-height: 1.55 !important;
  padding: 12px 0 !important;
}

/* Placeholders: the form column background is #F9F7F6, so a soft warm
   grey reads clearly without competing with the typed text colour.
   Theme uses `div.wpcf7 .form-style-6 input[placeholder]::-...-placeholder`
   so we have to match that depth + width to win. */
div.wpcf7 .saburi-contact-form input[placeholder]::placeholder,
div.wpcf7 .saburi-contact-form textarea[placeholder]::placeholder,
div.wpcf7 .form-style-6.saburi-contact-form input[placeholder]::placeholder,
div.wpcf7 .form-style-6.saburi-contact-form textarea[placeholder]::placeholder { color: #8E9189 !important; opacity: 1 !important; }
div.wpcf7 .saburi-contact-form input[placeholder]::-webkit-input-placeholder,
div.wpcf7 .saburi-contact-form textarea[placeholder]::-webkit-input-placeholder,
div.wpcf7 .form-style-6.saburi-contact-form input[placeholder]::-webkit-input-placeholder,
div.wpcf7 .form-style-6.saburi-contact-form textarea[placeholder]::-webkit-input-placeholder { color: #8E9189 !important; opacity: 1 !important; }
div.wpcf7 .saburi-contact-form input[placeholder]::-moz-placeholder,
div.wpcf7 .saburi-contact-form textarea[placeholder]::-moz-placeholder,
div.wpcf7 .form-style-6.saburi-contact-form input[placeholder]::-moz-placeholder,
div.wpcf7 .form-style-6.saburi-contact-form textarea[placeholder]::-moz-placeholder { color: #8E9189 !important; opacity: 1 !important; }
div.wpcf7 .saburi-contact-form input[placeholder]:-ms-input-placeholder,
div.wpcf7 .saburi-contact-form textarea[placeholder]:-ms-input-placeholder { color: #8E9189 !important; opacity: 1 !important; }

/* Submit button icon: theme adds a `.submit-style-in:before` overlay
   using fontello content `\e9a5`. The fontello font wasn't exported,
   so the glyph rendered as a raw character. Replace it with the FA
   paper-plane icon (already loaded site-wide). */
.wpcf7 .wpcf7-submit-style .submit-style-in:before,
.wpcf7-submit-style .submit-style-in:before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  content: "\f1d8" !important;          /* paper-plane */
  font-style: normal !important;
}

/* ---------- Homepage: Testimonials + Core Values shared band ----------
   The original export gives the testimonial wrapper a tinted green-brown
   surface (`#EFF2E7` + `images/h1-section-bg-2.png`). The Core Values
   section had no background of its own, so it bled into whatever
   surrounded it. We give Core Values the SAME paired background colour
   + texture image so the two sections read as one visual family, and
   restore breathing room around the testimonial slider that was
   missing after the trailing spacers were removed.
   ----------------------------------------------------------------- */
.elementor-element-b7827c4 {
  padding-bottom: var(--section-space, 60px) !important;
}

.elementor-element-core-values {
  background-color: #EFF2E7 !important;
  background-image: url("../images/h1-section-bg-2.png") !important;
  background-position: top center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

.elementor-element-46d95ac {
  padding-top: var(--section-space, 60px) !important;
  padding-bottom: var(--section-space, 60px) !important;
}
/* Now that the blog section's trailing spacer section was removed, the
   small spacer between the cards and the View More button is the
   only intentional gap left — keep it tight so the section doesn't
   feel overlong. */
.saburi-home-blog + .elementor-element-spacer,
.saburi-home-blog ~ .elementor-widget-spacer .elementor-spacer-inner {
  --spacer-size: 18px !important;
}

/* ---------- Homepage: From The Blog (3-card row + View More) ----------
   Replaces the original 2-column homepage blog layout with the
   `sc_blogger_default_classic` card style used on the About Us page,
   but rendered as a static 3-up grid (no slider) with a centred
   "View More" pill button below.
   ----------------------------------------------------------------- */
/* Force a 3-column grid on every screen down to mobile. The theme
   normally stacks `.sc_blogger_item_default` siblings with
   `margin-top: 2em` (see blogger.css), which we explicitly zero out
   so grid items don't get an unwanted top offset inside their cell. */
body .saburi-home-blog .saburi-home-blog-grid,
.elementor-page .saburi-home-blog .saburi-home-blog-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  grid-auto-rows: 1fr;
  gap: 30px !important;
  align-items: stretch !important;
  width: 100% !important;
}
.saburi-home-blog .saburi-home-blog-grid .sc_blogger_item,
.saburi-home-blog .saburi-home-blog-grid .sc_blogger_item_default + .sc_blogger_item_default {
  margin: 0 !important;
}
@media (max-width: 767px) {
  body .saburi-home-blog .saburi-home-blog-grid,
  .elementor-page .saburi-home-blog .saburi-home-blog-grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
}
.saburi-home-blog .sc_blogger_item {
  background: #ffffff;
  border: 1px solid rgba(120, 147, 61, 0.12);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(56, 68, 66, 0.05);
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
  min-width: 0;                    /* prevent grid blowout from long titles */
}
.saburi-home-blog .sc_blogger_item:hover {
  background: #EEF3E4;
  border-color: rgba(120, 147, 61, 0.28);
  box-shadow: 0 8px 22px rgba(56, 68, 66, 0.08);
}
.saburi-home-blog .sc_blogger_item_body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
}
/* Image area: identical aspect ratio + height across all cards. */
.saburi-home-blog .post_featured {
  margin: 0;
  position: relative;
  overflow: hidden;
  flex: 0 0 auto;
}
.saburi-home-blog .post_featured img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 8 / 3;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.saburi-home-blog .sc_blogger_item:hover .post_featured img {
  transform: scale(1.04);
}
.saburi-home-blog .post_featured .mask { display: none; }
.saburi-home-blog .post_featured .link {
  position: absolute;
  inset: 0;
  z-index: 2;
}
/* Content area: fixed-position rows so category, title, date all line
   up across the three cards regardless of title length. */
.saburi-home-blog .sc_blogger_item_content {
  padding: 22px 24px 22px;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 168px;               /* match the tallest content block */
}
.saburi-home-blog .post_meta_categories {
  height: 18px;
  line-height: 18px;
  margin: 0 0 10px 0;
  overflow: hidden;
}
.saburi-home-blog .post_meta_categories a {
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #86A96E;
  text-decoration: none;
  font-weight: 600;
}
.saburi-home-blog .sc_blogger_item_title {
  font-family: 'Marcellus', serif;
  font-size: 19px;
  line-height: 1.35;
  margin: 0 0 14px 0;
  color: #2A2F2C;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(19px * 1.35 * 2); /* always reserve 2 lines */
}
.saburi-home-blog .sc_blogger_item_title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.saburi-home-blog .sc_blogger_item_title a:hover { color: #86A96E; }
/* Date: pinned to the bottom edge so it lines up across all cards. */
.saburi-home-blog .sc_blogger_item_meta.post_meta:not(.post_meta_categories) {
  margin: auto 0 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(120, 147, 61, 0.12);
  font-size: 13px;
  color: #8E9189;
  letter-spacing: 0.02em;
}
.saburi-home-blog .sc_blogger_item_meta .post_meta_item { margin: 0; }

/* "View More" CTA — pill button in brand olive, centred under the grid. */
.saburi-home-blog-cta { margin-top: 8px; }
.saburi-home-blog-cta .elementor-button-wrapper { text-align: center; }
.saburi-home-blog-cta .elementor-button {
  display: inline-block;
  padding: 14px 38px;
  background: #86A96E;
  color: #ffffff;
  font-family: 'Marcellus', serif;
  font-size: 15px;
  letter-spacing: 0.06em;
  border-radius: 100px;
  text-decoration: none;
  transition: background 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
  box-shadow: 0 4px 14px rgba(134, 169, 110, 0.22);
}
.saburi-home-blog-cta .elementor-button:hover {
  background: #6F9059;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(134, 169, 110, 0.32);
}

/* ---------- Testimonials — single "spotlight" quote ----------
   Instead of a row of white cards, one testimonial is shown at a time,
   spread across a centred column with a large decorative quote mark,
   the quote in the site serif, and the client's name beneath. Prev/next
   arrows sit at the sides; dots sit below. The band itself is white
   (see the alternating-band rules at the end of this file), so the quote
   floats directly on the surface — no card, no box. */
.saburi-testimonials-spotlight .sc_testimonials_slider {
  position: relative;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 64px;   /* room for the prev/next arrows at the column edges */
}
/* The slider is drag/swipe-driven (no prev/next arrows), so show the grab
   cursor on the whole quote area to signal it's draggable. */
.saburi-testimonials-spotlight .slider_container { overflow: hidden; cursor: grab; }
.saburi-testimonials-spotlight .slider_container:active { cursor: grabbing; }
/* All slides share the height of the tallest quote (Swiper's flex track),
   and each quote is centred vertically within it — so short and long quotes
   both sit balanced in the band without the fragile autoHeight measurement. */
.saburi-testimonials-spotlight .swiper-slide,
.saburi-testimonials-spotlight .slider-slide {
  height: auto !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.saburi-testimonials-spotlight .sc_testimonials_item {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 auto;
  max-width: 840px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* The theme's accent2 style prints a fontello quote icon on the item; that
   icon font was never exported, so it renders as an empty box. Hide it and
   the theme's own (display:none) content mark, then draw our own. */
.saburi-testimonials-spotlight .sc_testimonials_item::before { display: none !important; }
.saburi-testimonials-spotlight .sc_testimonials_item_content { position: relative; }
.saburi-testimonials-spotlight .sc_testimonials_item_content::before {
  content: "\201C" !important;
  display: block !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 84px;
  line-height: 0.5;
  height: 44px;
  margin: 0 0 6px !important;
  text-align: center;
  color: rgba(134, 169, 110, 0.38) !important;
  pointer-events: none;
}
.saburi-testimonials-spotlight .sc_testimonials_item_content p {
  font-family: 'Marcellus', serif;
  font-size: 18px;               /* fixed 18px on desktop/tablet */
  line-height: 1.7;
  color: #2A2F2C;
  margin: 0;
  letter-spacing: 0.005em;
}
.saburi-testimonials-spotlight .sc_testimonials_item_author {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 26px;
}
/* short sage rule above the name */
.saburi-testimonials-spotlight .sc_testimonials_item_author::before {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: #86A96E;
  margin-bottom: 16px;
}
.saburi-testimonials-spotlight .sc_testimonials_item_author_avatar { display: none !important; }
.saburi-testimonials-spotlight .sc_testimonials_item_author_data { padding: 0; }
.saburi-testimonials-spotlight .sc_testimonials_item_author_title {
  font-family: 'Marcellus', serif;
  font-size: 20px;
  line-height: 1.3;
  margin: 0;
  color: #2A2F2C;
}
.saburi-testimonials-spotlight .sc_testimonials_item_author_subtitle {
  font-size: 12px;
  color: #86A96E;
  letter-spacing: 0.08em;
  margin-top: 5px;
  text-transform: uppercase;
}

/* Prev / next navigation arrows — sage-outlined circles pinned to the column
   edges. Shown on desktop + tablet (drag also works); hidden on mobile, where
   the slider is fully drag/swipe-driven. Wired to Swiper by site-init.js. */
.saburi-testimonials-spotlight .saburi-tst-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(120, 147, 61, 0.45);
  background: #ffffff;
  color: #4A5247;
  cursor: pointer;
  z-index: 3;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.saburi-testimonials-spotlight .saburi-tst-arrow::after { display: none !important; } /* kill Swiper default glyph */
.saburi-testimonials-spotlight .saburi-tst-prev { left: 0; }
.saburi-testimonials-spotlight .saburi-tst-next { right: 0; }
.saburi-testimonials-spotlight .saburi-tst-arrow:hover {
  background: #86A96E;
  border-color: #86A96E;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(134, 169, 110, 0.28);
}
.saburi-testimonials-spotlight .saburi-tst-arrow.swiper-button-disabled {
  opacity: 0.35;
  cursor: default;
  box-shadow: none;
  background: #ffffff;
  color: #4A5247;
  border-color: rgba(120, 147, 61, 0.45);
}

/* Pagination dots: shown (and clickable) on desktop + tablet, centred below. */
.saburi-testimonials-spotlight .slider_pagination_wrap {
  position: static;
  margin-top: 30px;
  text-align: center;
}
/* The Read-more toggle (injected by site-init.js) is a mobile-only affordance:
   hidden on desktop/tablet where the full quote always shows. */
.saburi-tst-readmore { display: none; }

/* On mobile the side arrows are hidden (drag/swipe-driven), but the pagination
   dots stay visible so it's clear more testimonials exist. Long quotes are
   clamped to keep the band a comfortable height, with a Read more toggle. */
@media (max-width: 767px) {
  .saburi-testimonials-spotlight .sc_testimonials_slider { padding: 0 8px; }
  .saburi-testimonials-spotlight .sc_testimonials_item_content p { font-size: 16px; line-height: 1.65; }
  .saburi-testimonials-spotlight .saburi-tst-arrow { display: none !important; }
  .saburi-testimonials-spotlight .slider_pagination_wrap { display: block; margin-top: 22px; }

  .saburi-testimonials-spotlight .sc_testimonials_item_content.saburi-tst-clamped p {
    display: -webkit-box;
    -webkit-line-clamp: 8;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .saburi-testimonials-spotlight .sc_testimonials_item_content.saburi-tst-clamped.saburi-tst-open p {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
  }
  .saburi-tst-readmore {
    display: inline-block;
    margin-top: 14px;
    padding: 0;
    border: 0;
    background: none;
    color: #78933D;
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
  }
  .saburi-tst-readmore:hover { color: #5f7531; text-decoration: underline; }
}

/* Core Values cards on the same green-brown band — white pill cards
   with the same hover ring as the testimonial cards. Icons stay in
   the brand olive so they read as a continuation of the section.
   Specificity is bumped (.elementor-61093 prefix + double class +
   !important) so we win against the default theme `.sc_icons_item`
   rules from `qw_extension_icons*.css`. */
.elementor-61093 .elementor-element-core-values .sc_icons_item,
.elementor-element-core-values .sc_icons_slider .sc_icons_item {
  background: #ffffff !important;
  border: 1px solid rgba(120, 147, 61, 0.12) !important;
  border-radius: 14px !important;
  padding: 32px 20px !important;
  text-align: center !important;
  box-shadow: 0 4px 16px rgba(56, 68, 66, 0.05) !important;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease !important;
  height: 100% !important;
  box-sizing: border-box !important;
}
/* Calmer hover — match the About Us card vocabulary on the homepage:
   no upward jump, no heavy shadow swap. Just a soft cream-ivory tint
   in the card body and a subtle olive ring + slightly stronger shadow
   so the user still sees a response. */
.elementor-61093 .elementor-element-core-values .sc_icons_item:hover,
.elementor-element-core-values .sc_icons_slider .sc_icons_item:hover {
  background: #EEF3E4 !important;
  border-color: rgba(120, 147, 61, 0.28) !important;
  box-shadow: 0 8px 22px rgba(56, 68, 66, 0.08) !important;
}
.elementor-element-core-values .sc_icons_item .sc_icons_icon,
.elementor-element-core-values .sc_icons_item .sc_icon_type_,
.elementor-element-core-values .sc_icons_item [class*="icon-new-sr-icon-"] {
  color: #86A96E !important;
  font-size: 42px !important;
  margin-bottom: 14px !important;
  display: block !important;
  line-height: 1 !important;
}
.elementor-element-core-values .sc_icons_item .sc_icons_icon::before,
.elementor-element-core-values .sc_icons_item [class*="icon-new-sr-icon-"]::before {
  font-size: 42px !important;
  line-height: 1 !important;
  color: #86A96E !important;
  margin: 0 !important;
}
.elementor-element-core-values .sc_icons_item .sc_icons_item_title {
  font-family: 'Marcellus', serif !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
  color: #384442 !important;
  margin: 0 !important;
}

/* Per-value icon glyphs (override the generic service-page mappings
   above, which were medical-themed and don't suit the Core Values
   labels). All five glyphs are FA 6 Free Solid (weight 900). */
.elementor-element-core-values .icon-new-sr-icon-1::before {
  content: "\f254" !important;     /* hourglass-half — Patience & Perseverance */
}
.elementor-element-core-values .icon-new-sr-icon-2::before {
  content: "\f3ed" !important;     /* shield-halved — Integrity */
}
.elementor-element-core-values .icon-new-sr-icon-3::before {
  content: "\f140" !important;     /* bullseye — Being Realistic */
}
.elementor-element-core-values .icon-new-sr-icon-4::before {
  content: "\f559" !important;     /* award — Excellence */
}
.elementor-element-core-values .icon-new-sr-icon-23::before {
  content: "\f004" !important;     /* heart — Compassion & Caring */
}

/* ---------- Homepage: About Us section spacing ----------
   The About Us section (Saburi Physical Therapy) was previously buried
   under a stack of empty/decorative spacers + an empty marquee section.
   Those were removed to tighten the layout. The remaining wrapper
   now uses a custom class so we can add proportional vertical padding
   that scales on small screens.
   ----------------------------------------------------------------- */
.saburi-about-section > .elementor-container {
  padding-top: 40px;
  padding-bottom: 40px;
}
@media (max-width: 767px) {
  .saburi-about-section > .elementor-container {
    padding-top: 24px;
    padding-bottom: 24px;
  }
}

/* ---------- Footer: long email / phone overflow on small screens ----------
   The footer prints `pearlin@saburiphysicaltherapy.com` inside a
   centred text-editor widget. On phones the address is wider than the
   column so it spills off the page. Force long URLs / tel-mailto links
   to break by character, and keep the title-heading wrapper as a
   block-level container so wrapped lines stay inside the column.
   ----------------------------------------------------------------- */
.footer_wrap p,
.footer_wrap a { max-width: 100%; }
@media (max-width: 600px) {
  .footer_wrap a[href^="mailto:"],
  .footer_wrap a[href^="tel:"],
  .footer_wrap .sc_layouts_item_details,
  .footer_wrap .title-heading,
  .footer_wrap address,
  .footer_wrap p {
    word-break: break-all;
    overflow-wrap: anywhere;
    white-space: normal;
    display: inline-block;
    max-width: 100%;
  }
  .footer_wrap .title-heading.d-block { display: block; }
}

/* ---------- FAQs page: pin the left title column ----------
   On the /faqs/ page the left column holds "Questions & Answers",
   the H1, a short lead paragraph, and the Contact Us button.
   The right column holds the 15-item accordion. We make the
   left column sticky so it stays visible while the visitor
   scrolls through the Q&A on the right. Only activates on
   screens wide enough for the two-column layout; on tablets/
   phones the columns stack, so sticky would look weird.
   ---------------------------------------------------------- */
@media (min-width: 992px) {
  .elementor-page-44885
    .elementor-element.elementor-element-c0c4bd6
    > .elementor-container
    > .elementor-element.elementor-element-04bd0ad {
    position: sticky;
    top: 100px;                 /* clears the fixed site header */
    align-self: flex-start;     /* stops the column from stretching to row height */
    z-index: 1;
  }
}

/* ==========================================================================
   Conditions We Treat — services page
   ========================================================================== */
.saburi-conditions-section {
  background-color: #EFF2E7;
  background-image: linear-gradient(180deg, #F2F6EB 0%, #E7EEDA 100%);
}
/* Internal spacers — total 70px top + 70px bottom to match the standard "50 + 20"
   rhythm every other section on the site uses between content blocks
   (otherwise sc_height_huge falls back to 8.6rem ≈ 138px). */
.saburi-conditions-section .sc_height_huge .elementor-spacer-inner {
  height: 70px !important;
}
.saburi-conditions-section .sc_height_small .elementor-spacer-inner {
  height: 44px !important;
}
@media (max-width: 1279px) {
  .saburi-conditions-section .sc_height_huge .elementor-spacer-inner { height: 42px !important; }
  .saburi-conditions-section .sc_height_small .elementor-spacer-inner { height: 30px !important; }
}
@media (max-width: 767px) {
  .saburi-conditions-section .sc_height_huge .elementor-spacer-inner { height: 32px !important; }
  .saburi-conditions-section .sc_height_small .elementor-spacer-inner { height: 22px !important; }
}

/* Our Services — "Unveil the ultimate" section sat with 0 bottom padding,
   so its image/content pressed flush against the Conditions band below.
   Give it breathing room (scoped via the explicit class so it only affects
   this section, not the shared 8107f3a id used on other pages). */
.saburi-unveil-section { padding-bottom: var(--section-space) !important; }
/* Unveil section — eyebrow + body copy + button, styled to match the site's
   other intro sections (sage eyebrow, Marcellus heading, DM Sans body). */
.saburi-unveil-section .sc_item_subtitle {
  color: #86A96E !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 13px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  display: block;
  margin-bottom: 14px;
}
.saburi-unveil-section .sc_item_title_text {
  font-family: 'Marcellus', serif;
  color: #2A2F2C;
}
.saburi-unveil-descr {
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #5A6152;
  margin-top: 18px;
  max-width: 480px;
}
/* The original layout pushed the button down with a ~9.75vw spacer; now that
   real copy fills the column, collapse it to a normal text-to-button gap. */
.saburi-unveil-section .elementor-element-5f9486b .elementor-spacer-inner {
  height: 30px !important;
}
/* Left-align the "Book a Session" button so it lines up with the eyebrow,
   heading, and body copy above it. The button widget is a fixed-width flex
   item that the theme centres on the column's cross axis, so pin the column to
   flex-start and keep the wrapper text-aligned left. */
.saburi-unveil-section .elementor-element-ad6e726 > .elementor-widget-wrap {
  justify-content: flex-start !important;
  align-items: flex-start !important;
}
.saburi-unveil-section .elementor-element-b515ffb,
.saburi-unveil-section .elementor-element-b515ffb .sc_title,
.saburi-unveil-section .sc_title_button {
  text-align: left !important;
}

/* ==========================================================================
   Homepage — "Steps we follow" (white) and "Our Services" sat on the same
   white background with a large empty band between them, so they blended.
   Give "Our Services" a soft sage band (matches the hero / site palette) and
   tighten the gap so the two sections read as distinct, intentional blocks.
   ========================================================================== */
.elementor-element-our-services-home {
  background-color: #EFF2E7 !important;
}
/* symmetric vertical padding inside the tinted band — matches the page rhythm */
.elementor-element-our-services-home .sc_height_huge .elementor-spacer-inner {
  height: var(--section-space, 60px) !important;
}
/* ==========================================================================
   SITE-WIDE — CONSISTENT SECTION RHYTHM
   One token controls the vertical breathing room between a section's content
   and its top/bottom edges on EVERY page. Tune the whole site from here.
   ========================================================================== */
:root { --section-space: 100px; }
@media (max-width: 767px) { :root { --section-space: 60px; } }

/* Interior pages (About, Services, FAQs, Contact, Blog, service & post pages)
   use the theme's "huge" spacer widget for their section top/bottom edges.
   Normalise every one of them to the shared token so section spacing matches
   across the whole site. The extra .elementor-element class keeps this ahead
   of the theme's own responsive huge-spacer rules; internal small/tiny/default
   spacers are deliberately left alone. Homepage sections below add per-element
   rules (same token, or 0 for redundant stacked spacers) that win where they
   need to differ. */
.elementor-element.elementor-widget-spacer.sc_height_huge .elementor-spacer-inner {
  height: var(--section-space) !important;
}

/* --------------------------------------------------------------------------
   HOMEPAGE — the alternating two-tone stack (white / sage #EFF2E7):
   insurance(white) · about(sage) · steps(white) · services(sage) ·
   testimonials(white) · blog(sage) · contact(white). No two neighbours share
   a colour, so every section gets the same symmetric --section-space, with the
   old stacked/trimmed spacers flattened.
   -------------------------------------------------------------------------- */

/* Every section's outer (top & bottom) spacer widget -> one uniform value.
   Secondary/stacked spacers that used to pile on top are zeroed so only a
   single, even gap remains. */
body.page-id-61093 .saburi-about-top-spacer .elementor-spacer-inner, /* About top    */
body.page-id-61093 .elementor-element-a10fb2f .elementor-spacer-inner, /* About bottom */
body.page-id-61093 .elementor-element-484e7a1 .elementor-spacer-inner, /* Steps top    */
body.page-id-61093 .elementor-element-722e7571 .elementor-spacer-inner, /* Steps bottom */
body.page-id-61093 .elementor-element-586f478 .elementor-spacer-inner { /* Testimonials top */
  height: var(--section-space) !important;
}

/* Redundant stacked spacers that sat next to the outer ones -> removed */
body.page-id-61093 .elementor-element-3ee3825 .elementor-spacer-inner,  /* Steps top (extra)     */
body.page-id-61093 .elementor-element-b427ccf .elementor-spacer-inner,  /* Steps bottom (extra)  */
body.page-id-61093 .elementor-element-19dbeac .elementor-spacer-inner,  /* Testimonials top (extra) */
body.page-id-61093 .elementor-element-32d66cb .elementor-spacer-inner,  /* Testimonials top (extra) */
body.page-id-61093 .elementor-element-7d166f2 .elementor-spacer-inner,  /* Blog trailing section */
body.page-id-61093 .elementor-element-d835997 .elementor-spacer-inner { /* Blog trailing section */
  height: 0 !important;
}

.saburi-conditions-section .sc_item_subtitle {
  color: #86A96E !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 13px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
}

.saburi-conditions-section .sc_item_title_text {
  font-family: 'Marcellus', serif;
  color: #2A2F2C;
}

.saburi-conditions-section .sc_item_descr {
  color: #6B716C;
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

.saburi-conditions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 8px;
}

.saburi-condition-card {
  position: relative;
  background: #ffffff;
  border: 1px solid #ECEDE6;
  border-radius: 18px;
  padding: 36px 34px 32px;
  box-shadow: 0 2px 12px rgba(48, 60, 40, 0.05);
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
  overflow: hidden;
}

.saburi-condition-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 36px;
  width: 56px;
  height: 4px;
  background: #86A96E;
  border-radius: 0 0 4px 4px;
  transition: width 0.35s ease, background 0.35s ease;
}

.saburi-condition-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 36px rgba(48, 60, 40, 0.10);
  border-color: #C9D6B6;
}

.saburi-condition-card:hover::before {
  width: 96px;
  background: #78933D;
}

.saburi-condition-card-head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px dashed #E2E5DA;
}

.saburi-condition-icon {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #EFF2E7;
  color: #78933D;
  border-radius: 14px;
  font-size: 26px;
  transition: background 0.35s ease, transform 0.35s ease;
}

.saburi-condition-card:hover .saburi-condition-icon {
  background: #DCE6CC;
  transform: rotate(-4deg) scale(1.04);
}

.saburi-condition-icon [class^="icon-"],
.saburi-condition-icon [class*=" icon-"] {
  color: #78933D;
  font-size: 28px;
  line-height: 1;
}

/* Inline SVG icons (Spine / Upper Extremity) sized to match the icon font. */
.saburi-condition-icon svg {
  width: 32px;
  height: 32px;
  display: block;
  fill: none;
  stroke: #78933D;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Filled variant (Upper Extremity joint glyph) with stroked accent marks. */
.saburi-condition-icon svg.saburi-icon-fill { fill: #78933D; stroke: none; }
.saburi-condition-icon svg.saburi-icon-fill .saburi-icon-stroke {
  fill: none;
  stroke: #78933D;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.saburi-condition-title {
  margin: 0;
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -0.005em;
}

.saburi-condition-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 22px;
  row-gap: 10px;
}

.saburi-condition-list li {
  font-family: 'DM Sans', sans-serif;
  color: #4A5247;
  font-size: 15px;
  line-height: 1.5;
  padding-left: 20px;
  position: relative;
}

.saburi-condition-list li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 8px;
  width: 7px;
  height: 7px;
  background: #86A96E;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(134, 169, 110, 0.15);
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.saburi-condition-card:hover .saburi-condition-list li::before {
  background: #78933D;
  box-shadow: 0 0 0 3px rgba(120, 147, 61, 0.18);
}

@media (max-width: 1100px) {
  .saburi-conditions-grid { gap: 22px; }
  .saburi-condition-card { padding: 30px 26px 26px; }
  .saburi-condition-title { font-size: 22px; }
}

@media (max-width: 880px) {
  .saburi-conditions-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .saburi-condition-list { grid-template-columns: 1fr; }
  .saburi-condition-card { padding: 26px 22px; }
  .saburi-condition-card::before { left: 22px; }
  .saburi-condition-icon { width: 48px; height: 48px; font-size: 22px; }
  .saburi-condition-icon [class^="icon-"] { font-size: 24px; }
  .saburi-condition-icon svg { width: 28px; height: 28px; }
  .saburi-condition-title { font-size: 20px; }
}

/* ==========================================================================
   Service Detail page (manual-therapy, exercise-programs, etc.)
   ========================================================================== */
.saburi-sd-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 52px;
  align-items: start;
  max-width: 1180px;
  margin: 0 auto;
}

.saburi-sd-main img.saburi-sd-hero-img {
  width: 100%;
  border-radius: 6px;
  margin-bottom: 28px;
  aspect-ratio: 16/12;
  object-fit: cover;
  display: block;
}
/* Wide hero for the 1920x1080 service-page images — show at native 16:9. */
.saburi-sd-main img.saburi-sd-hero-img--wide {
  aspect-ratio: 16 / 9;
}
.saburi-sd-main p {
  font-family: 'DM Sans', sans-serif;
  font-size: 15.5px;
  line-height: 1.75;
  color: #4A5247;
  margin: 0 0 22px;
}
.saburi-sd-main h2 {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 28px;
  line-height: 1.25;
  margin: 30px 0 16px;
}
.saburi-sd-main h3 {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 21px;
  line-height: 1.3;
  margin: 28px 0 12px;
}
/* Bulleted lists */
.saburi-sd-list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
}
.saburi-sd-list li {
  position: relative;
  padding: 0 0 0 28px;
  margin: 0 0 12px;
  font-family: 'DM Sans', sans-serif;
  font-size: 15.5px;
  line-height: 1.65;
  color: #4A5247;
}
.saburi-sd-list li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #86A96E;
}
.saburi-sd-list li strong { color: #2A2F2C; font-weight: 600; }
/* Two-column variant for short tag-style items */
.saburi-sd-list--cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 32px;
}
@media (max-width: 600px) { .saburi-sd-list--cols { grid-template-columns: 1fr; } }

/* Feature list: bold term + description in soft sage cards */
.saburi-sd-features {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: grid;
  gap: 14px;
}
.saburi-sd-features li {
  position: relative;
  padding: 16px 18px 16px 46px;
  background: #F6F8F1;
  border: 1px solid #E6ECDA;
  border-radius: 8px;
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: #4A5247;
}
.saburi-sd-features li::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 23px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #86A96E;
}
.saburi-sd-features li strong {
  display: block;
  color: #2A2F2C;
  font-family: 'Marcellus', serif;
  font-weight: 400;
  font-size: 16.5px;
  margin-bottom: 3px;
}

/* CTA panel + button */
.saburi-sd-cta-wrap {
  margin: 32px 0 6px;
  padding: 26px 28px;
  background: #EFF2E7;
  border-radius: 10px;
}
.saburi-sd-cta-wrap p { margin: 0 0 18px; color: #3C453A; }
.saburi-sd-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #86A96E;
  color: #ffffff !important;
  text-decoration: none !important;
  border-radius: 999px;
  padding: 13px 30px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  font-size: 14.5px;
  letter-spacing: 0.02em;
  text-align: center;
  transition: background 0.3s ease, transform 0.3s ease;
}
.saburi-sd-cta:hover { background: #78933D; transform: translateY(-1px); }

.saburi-sd-images-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 26px 0;
}
.saburi-sd-images-row img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}
.saburi-sd-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 4px;
  overflow: hidden;
  margin: 26px 0;
  background: #f3f3f3;
}
.saburi-sd-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* sticky right column — pinned to the top of the viewport */
.saburi-sd-aside {
  position: sticky;
  top: 20px;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.saburi-sd-card {
  background: #EFF2E7;
  border-radius: 12px;
  padding: 24px 24px 22px;
  margin: 0;
}
.saburi-sd-card h3 {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 20px;
  margin: 0 0 14px;
  line-height: 1.2;
}

/* form */
.saburi-sd-form p { margin: 0 0 10px; }
.saburi-sd-form .style-line { display: block; }
.saburi-sd-form input[type="text"],
.saburi-sd-form input[type="email"],
.saburi-sd-form textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(56, 68, 66, 0.25);
  background: transparent;
  padding: 8px 0 6px;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: #2A2F2C;
  outline: none;
  border-radius: 0;
  transition: border-color 0.3s ease;
}
.saburi-sd-form input::placeholder,
.saburi-sd-form textarea::placeholder {
  color: #6B716C;
  opacity: 1;
}
.saburi-sd-form input:focus,
.saburi-sd-form textarea:focus {
  border-bottom-color: #78933D;
}
.saburi-sd-form textarea {
  resize: vertical;
  min-height: 44px;
  max-height: 120px;
}
.saburi-sd-consent {
  font-family: 'DM Sans', sans-serif;
  font-size: 12.5px;
  color: #4A5247;
  line-height: 1.45;
  margin: 8px 0 14px !important;
}
.saburi-sd-consent label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
}
.saburi-sd-consent input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border: 1.5px solid #86A96E;
  border-radius: 3px;
  background: #ffffff;
  margin: 2px 0 0;
  cursor: pointer;
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.saburi-sd-consent input[type="checkbox"]:hover { border-color: #78933D; }
.saburi-sd-consent input[type="checkbox"]:checked {
  background: #86A96E;
  border-color: #86A96E;
}
.saburi-sd-consent input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 1px;
  width: 4px;
  height: 8px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.saburi-sd-consent span { display: inline-block; flex: 1; }
.saburi-sd-consent a { color: #78933D; text-decoration: underline; font-weight: 500; }
.saburi-sd-consent a:hover { color: #769D5A; }

.saburi-sd-submit {
  background: #86A96E;
  color: #ffffff !important;
  border: 0;
  border-radius: 999px;
  padding: 10px 24px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.saburi-sd-submit:hover {
  background: #78933D;
  transform: translateY(-1px);
}
.saburi-sd-submit .sc_button_title { color: #ffffff; }

/* contact info */
.saburi-sd-contact-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13.5px;
  color: #4A5247;
  line-height: 1.5;
}
.saburi-sd-contact-row:last-child { margin-bottom: 0; }
.saburi-sd-contact-row .saburi-sd-icn {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #78933D;
}
.saburi-sd-contact-row .saburi-sd-icn [class^="icon-"],
.saburi-sd-contact-row .saburi-sd-icn [class*=" icon-"] {
  color: #78933D;
  font-size: 14px;
  line-height: 1;
}
.saburi-sd-contact-row strong { color: #2A2F2C; font-weight: 600; }
.saburi-sd-contact-row a { color: inherit; }
.saburi-sd-contact-row a:hover { color: #78933D; }

/* Service detail pages — main content area = white, header = cream, footer untouched */
body.saburi-sd-page .post_content.entry-content,
body.saburi-sd-page .post_content.entry-content > .elementor.elementor-44881 {
  background-color: #ffffff !important;
}
/* Header band matches the page-hero (cream / EFF2E7) so they read as one continuous strip */
body.saburi-sd-page header.top_panel,
body.saburi-sd-page header.top_panel > .elementor.elementor-52350,
body.saburi-sd-page header.top_panel > .elementor.elementor-16845,
body.saburi-sd-page header.top_panel .elementor-element-61b5914,
body.saburi-sd-page header.top_panel .elementor-element-e1237df {
  background-color: #EFF2E7 !important;
}
.saburi-sd-section,
.saburi-sd-spacer-section {
  background-color: #ffffff !important;
}
.saburi-sd-section > .elementor-container,
.saburi-sd-spacer-section > .elementor-container {
  background-color: #ffffff;
}
/* Vertical breathing room is handled entirely by the spacer sections above and below
   so the rhythm matches /about-us/ and /faqs/ — the page hero ends, then 70px gap
   (50px sc_height_huge + 20px default), then the content. */
.saburi-sd-section { padding: 0 30px; }
.saburi-sd-section > .elementor-container { max-width: 1240px; margin: 0 auto; }
.saburi-sd-spacer-section { padding: 0; }
/* Match the standard "50 + 20" gap used by every other page below the breadcrumb */
.saburi-sd-spacer-section .sc_height_huge { --spacer-size: 70px !important; }
@media (max-width: 1279px) {
  .saburi-sd-spacer-section .sc_height_huge { --spacer-size: 42px !important; }
}
@media (max-width: 767px) {
  .saburi-sd-spacer-section .sc_height_huge { --spacer-size: 32px !important; }
}
/* Individual blog post pages no longer have a page-title/breadcrumb band, so
   the top spacer sits directly under the site header. Tighten it. */
.saburi-sd-spacer-section:has(+ .saburi-bp-section) .sc_height_huge { --spacer-size: 32px !important; }
@media (max-width: 1279px) {
  .saburi-sd-spacer-section:has(+ .saburi-bp-section) .sc_height_huge { --spacer-size: 22px !important; }
}
@media (max-width: 767px) {
  .saburi-sd-spacer-section:has(+ .saburi-bp-section) .sc_height_huge { --spacer-size: 16px !important; }
}
@media (max-width: 1024px) {
  .saburi-sd-section { padding: 0 24px; }
}
@media (max-width: 720px) {
  .saburi-sd-section { padding: 0 16px; }
}

/* Responsive */
@media (max-width: 1024px) {
  .saburi-sd-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .saburi-sd-aside {
    position: static;
  }
}
@media (max-width: 720px) {
  .saburi-sd-main h2 { font-size: 24px; }
  .saburi-sd-images-row { grid-template-columns: 1fr; }
  .saburi-sd-card { padding: 20px 18px; }
}

/* ==========================================================================
   Blog list / blog post pages — uses brand fonts (Marcellus + DM Sans) and
   the site's existing sage palette (#86A96E / #78933D / #2A2F2C).
   Layout reuses .saburi-sd-grid + .saburi-sd-aside sticky behavior.
   ========================================================================== */
.saburi-bl-section,
.saburi-bp-section {
  background-color: #ffffff !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  padding: 0 30px !important;
}
.saburi-bl-section > .elementor-container,
.saburi-bp-section > .elementor-container {
  max-width: 1240px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  display: block !important;
}
/* Force every level of the elementor flex chain to grant 100% width so the grid
   doesn't get squeezed into a narrow column on the left. */
.saburi-bl-section .elementor-column,
.saburi-bp-section .elementor-column {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important;
}
.saburi-bl-section .elementor-widget-wrap,
.saburi-bp-section .elementor-widget-wrap {
  width: 100% !important;
  max-width: 100% !important;
  flex-wrap: wrap !important;
  display: block !important;
}
.saburi-bl-section .elementor-widget,
.saburi-bp-section .elementor-widget {
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
}
.saburi-bl-section .elementor-widget-container,
.saburi-bp-section .elementor-widget-container {
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
}

.saburi-bl-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 50px;
  align-items: start;
  max-width: 1180px;
  width: 100%;
  margin: 0 auto;
}
.saburi-bl-grid > .saburi-bl-main,
.saburi-bl-grid > .saburi-bp-main { min-width: 0; }
.saburi-bl-grid > .saburi-bl-aside { min-width: 0; }

/* ----- Blog list cards ----- */
.saburi-bl-main { display: flex; flex-direction: column; gap: 22px; }

.saburi-bl-post {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 0;
  background: #F4F7EE;
  border-radius: 8px;
  overflow: hidden;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.saburi-bl-post:hover {
  box-shadow: 0 12px 28px rgba(48, 60, 40, 0.08);
  transform: translateY(-2px);
}
.saburi-bl-post-thumb {
  display: block;
  position: relative;
  overflow: hidden;
  background: #f1f1f1;
}
.saburi-bl-post-thumb img {
  width: 100%;
  height: 100%;
  min-height: 240px;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.saburi-bl-post:hover .saburi-bl-post-thumb img { transform: scale(1.04); }

.saburi-bl-post-body {
  padding: 28px 28px 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.saburi-bl-tag {
  display: inline-flex;
  align-items: center;
  background: #86A96E;
  color: #ffffff;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 999px;
  align-self: flex-start;
}
.saburi-bl-post-title {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 22px;
  line-height: 1.2;
  margin: 2px 0 0;
}
.saburi-bl-post-title a { color: inherit; transition: color 0.25s ease; }
.saburi-bl-post-title a:hover { color: #78933D; }
.saburi-bl-post-excerpt {
  font-family: 'DM Sans', sans-serif;
  color: #6B716C;
  font-size: 14.5px;
  line-height: 1.65;
  margin: 0;
}
.saburi-bl-post-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid rgba(56, 68, 66, 0.12);
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  color: #8E9189;
}
.saburi-bl-post-meta a { color: inherit; transition: color 0.25s ease; }
.saburi-bl-post-meta a:hover { color: #78933D; }
.saburi-bl-post-sep { color: #C9CBC4; }

/* ----- Pagination ----- */
.saburi-bl-pagination {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 30px;
  padding-top: 8px;
}
.saburi-bl-page,
.saburi-bl-page-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid #DEE0DA;
  background: transparent;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: #4A5247;
  transition: all 0.25s ease;
  cursor: pointer;
  padding: 0;
}
.saburi-bl-page:hover:not(.is-disabled),
.saburi-bl-page-next:hover:not(.is-disabled) {
  background: #EFF2E7;
  border-color: #C9D6B6;
  color: #2A2F2C;
}
.saburi-bl-page.is-active {
  background: #2A2F2C;
  border-color: #2A2F2C;
  color: #ffffff;
  cursor: default;
}
.saburi-bl-page-next { font-size: 16px; color: #4A5247; }
.saburi-bl-page-next.is-disabled,
.saburi-bl-page-next:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ----- Recent posts (sticky right) ----- */
.saburi-bl-aside .saburi-bl-card { padding: 26px 24px; }
.saburi-bl-aside .saburi-bl-card h3 {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 20px;
  margin: 0 0 16px;
  line-height: 1.2;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(56, 68, 66, 0.12);
}

.saburi-bl-recent { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.saburi-bl-recent-item {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 12px;
  align-items: flex-start;
}
.saburi-bl-recent-thumb {
  display: block;
  width: 70px;
  height: 70px;
  border-radius: 6px;
  overflow: hidden;
  background: #f1f1f1;
}
.saburi-bl-recent-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.saburi-bl-recent-item:hover .saburi-bl-recent-thumb img { transform: scale(1.06); }
.saburi-bl-recent-body { display: flex; flex-direction: column; gap: 4px; }
.saburi-bl-recent-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: 'DM Sans', sans-serif;
  font-size: 11.5px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #8E9189;
}
.saburi-bl-recent-title {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 14.5px;
  line-height: 1.3;
  transition: color 0.25s ease;
}
.saburi-bl-recent-title:hover { color: #78933D; }

/* ----- Responsive ----- */
@media (max-width: 1100px) {
  .saburi-bl-grid {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 36px;
  }
  .saburi-bl-post { grid-template-columns: 240px minmax(0, 1fr); }
  .saburi-bl-post-body { padding: 22px 22px 20px; }
  .saburi-bl-post-thumb img { min-height: 200px; }
}
@media (max-width: 880px) {
  .saburi-bl-grid { grid-template-columns: 1fr; gap: 36px; }
  .saburi-bl-aside { position: static; }
}
@media (max-width: 720px) {
  .saburi-bl-post {
    grid-template-columns: 1fr;
  }
  .saburi-bl-post-thumb img { aspect-ratio: 8/3; min-height: 0; }
  .saburi-bl-post-body { padding: 20px 18px 18px; }
  .saburi-bl-post-title { font-size: 20px; }
  .saburi-bl-aside .saburi-bl-card { padding: 22px 20px; }
}

/* ----- Individual blog post page (article body) ----- */
.saburi-bp-section { background-color: #ffffff !important; }
.saburi-bp-main { display: flex; flex-direction: column; gap: 0; }
.saburi-bp-hero-img {
  width: 100%;
  border-radius: 8px;
  margin: 0 0 22px;
  aspect-ratio: 8/3;
  object-fit: cover;
  display: block;
}
.saburi-bp-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  font-family: 'DM Sans', sans-serif;
  font-size: 13.5px;
  color: #8E9189;
  margin: 0 0 20px;
}
.saburi-bp-meta .saburi-bl-tag { margin-right: 4px; }
.saburi-bp-meta-comments { color: inherit; transition: color 0.25s ease; }
.saburi-bp-meta-comments:hover { color: #78933D; }

.saburi-bp-content {
  font-family: 'DM Sans', sans-serif;
  color: #4A5247;
  font-size: 15.5px;
  line-height: 1.75;
}
.saburi-bp-content > * + * { margin-top: 16px; }
.saburi-bp-content p { margin: 0; }
.saburi-bp-content h2 {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 26px;
  line-height: 1.25;
  margin-top: 30px !important;
  margin-bottom: 0;
}
.saburi-bp-content h2 + p { margin-top: 12px !important; }
.saburi-bp-content a { color: #78933D; text-decoration: underline; }
.saburi-bp-content a:hover { color: #769D5A; }
.saburi-bp-content ul, .saburi-bp-content ol {
  margin: 16px 0 0;
  padding-left: 22px;
}
.saburi-bp-content li { margin-bottom: 6px; }

@media (max-width: 720px) {
  .saburi-bp-content { font-size: 15px; }
  .saburi-bp-content h2 { font-size: 22px; margin-top: 24px !important; }
}

/* ==========================================================================
   Blog list — 3-column grid (large), responsive down to single column.
   Replaces the previous list/sidebar layout. Recent posts aside removed.
   ========================================================================== */
.saburi-bl-section .saburi-bl-grid,
.saburi-bp-section .saburi-bl-grid {
  display: block;
  max-width: 1180px;
  width: 100%;
  margin: 0 auto;
}
.saburi-bl-section .saburi-bl-main {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: 30px;
  width: 100%;
}
/* Blog-list cards adopt the homepage "From the Blog" card design verbatim:
   white card + olive hairline border, image on top (8:3), a sage uppercase
   category eyebrow, a Marcellus 2-line title, and the date pinned to a
   bordered footer row. The excerpt is hidden so the cards read exactly like
   the homepage teaser cards. */
.saburi-bl-section .saburi-bl-post {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #ffffff !important;
  border: 1px solid rgba(120, 147, 61, 0.12);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(56, 68, 66, 0.05);
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
  grid-template-columns: none !important;
}
.saburi-bl-section .saburi-bl-post:hover {
  background: #EEF3E4 !important;
  border-color: rgba(120, 147, 61, 0.28);
  box-shadow: 0 8px 22px rgba(56, 68, 66, 0.08);
  transform: none;
}
.saburi-bl-section .saburi-bl-post-thumb {
  width: 100%;
  aspect-ratio: 8 / 3;
  flex: 0 0 auto;
}
.saburi-bl-section .saburi-bl-post-thumb img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
}
.saburi-bl-section .saburi-bl-post:hover .saburi-bl-post-thumb img { transform: scale(1.04); }
.saburi-bl-section .saburi-bl-post-body {
  padding: 22px 24px 22px;
  flex: 1 1 auto;
  gap: 0;
  min-height: 168px;
}
/* Category chip -> plain sage uppercase eyebrow (no pill). */
.saburi-bl-section .saburi-bl-tag {
  background: transparent !important;
  color: #86A96E !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 10px;
}
.saburi-bl-section .saburi-bl-post-title {
  font-family: 'Marcellus', serif;
  font-size: 19px;
  line-height: 1.35;
  margin: 0 0 14px;
  color: #2A2F2C;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.saburi-bl-section .saburi-bl-post-title a:hover { color: #86A96E; }
/* Match the homepage teaser card — no excerpt. */
.saburi-bl-section .saburi-bl-post-excerpt { display: none; }
/* Date pinned to a bordered footer row, like the homepage card. */
.saburi-bl-section .saburi-bl-post-meta {
  margin: auto 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(120, 147, 61, 0.12);
  font-size: 13px;
  color: #8E9189;
}
@media (max-width: 1024px) {
  .saburi-bl-section .saburi-bl-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 640px) {
  .saburi-bl-section .saburi-bl-main { grid-template-columns: 1fr; gap: 20px; }
}
.saburi-bl-section .saburi-bl-pagination {
  justify-content: center;
  margin-top: 36px;
}
/* Pagination fix: the card rule sets `display:flex`, which outranks the
   [hidden] attribute's UA `display:none` — so off-page posts stayed visible and
   clicking a page number did nothing. Force hidden posts to actually hide. */
.saburi-bl-section .saburi-bl-post[hidden],
.saburi-bl-main .saburi-bl-post[hidden] { display: none !important; }

/* ==========================================================================
   Individual blog post — article body only.
   The section wrapper now uses standard elementor-section-boxed classes
   (same pattern as the breadcrumb/header/footer), so we only need to style
   the article content here. No section/column/wrapper overrides needed.
   ========================================================================== */

/* ==========================================================================
   Sticky right-center "Enquiry Now" button.
   ========================================================================== */
.saburi-sticky-enquiry {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 9000;
  background: #78933D;
  color: #ffffff;
  border: none;
  font-family: 'Marcellus', serif;
  font-size: 15px;
  letter-spacing: 0.04em;
  cursor: pointer;
  padding: 10px 13px;
  border-radius: 8px 0 0 8px;
  box-shadow: 0 8px 22px rgba(40, 50, 30, 0.25);
  writing-mode: vertical-rl;
  transform-origin: center;
  transition: background-color 0.25s ease, padding-right 0.25s ease, box-shadow 0.25s ease;
}
.saburi-sticky-enquiry:hover,
.saburi-sticky-enquiry:focus {
  background: #5f7c2f;
  outline: none;
  padding-right: 16px;
  box-shadow: 0 12px 28px rgba(40, 50, 30, 0.35);
}
.saburi-sticky-enquiry-text {
  display: inline-block;
  transform: rotate(180deg);
}
@media (max-width: 600px) {
  .saburi-sticky-enquiry {
    font-size: 13px;
    padding: 8px 11px;
  }
}

/* ==========================================================================
   Scroll-to-top button.
   ========================================================================== */
.saburi-scroll-top {
  position: fixed;
  right: 22px;
  bottom: 28px;
  z-index: 8990;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #2A2F2C;
  color: #ffffff;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.25s ease, transform 0.25s ease, background-color 0.25s ease, visibility 0.25s ease;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}
.saburi-scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.saburi-scroll-top:hover { background: #78933D; }
.saburi-scroll-top-arrow { display: inline-block; transform: translateY(-1px); font-family: 'DM Sans', sans-serif; }
@media (max-width: 600px) {
  .saburi-scroll-top { right: 16px; bottom: 18px; width: 40px; height: 40px; }
}

/* ==========================================================================
   Enquiry modal.
   ========================================================================== */
/* ==========================================================================
   Enquiry popup — styled to match the homepage / About CTA form card:
   white card, sage eyebrow, Marcellus title, underlined placeholder-only
   fields (form-style-6), and a full-width green pill submit. The modal is a
   scroll container so the card is always fully reachable in the viewport,
   however short the screen.
   ========================================================================== */
body.saburi-modal-open { overflow: hidden; }
.saburi-enquiry-modal {
  position: fixed;
  inset: 0;
  z-index: 9500;
  display: flex;
  padding: 24px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.saburi-enquiry-modal[hidden] { display: none; }
.saburi-enquiry-overlay {
  position: fixed;
  inset: 0;
  background: rgba(20, 28, 18, 0.55);
  backdrop-filter: blur(2px);
}
.saburi-enquiry-dialog {
  position: relative;
  margin: auto;               /* centers when it fits; scrolls when taller */
  background: #ffffff;
  width: 100%;
  max-width: 520px;
  border-radius: 14px;
  padding: 40px 40px 34px;
  box-shadow: 0 24px 60px rgba(20, 28, 18, 0.35);
}
.saburi-enquiry-close {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: transparent;
  font-size: 26px;
  color: #4A5247;
  cursor: pointer;
  line-height: 1;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.saburi-enquiry-close:hover { background: #EFF2E7; color: #2A2F2C; }
.saburi-enquiry-head { margin-bottom: 24px; }
.saburi-enquiry-eyebrow {
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: #86A96E;
  margin-bottom: 8px;
}
.saburi-enquiry-title {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 27px;
  line-height: 1.18;
  margin: 0 0 6px;
}
.saburi-enquiry-sub {
  font-family: 'DM Sans', sans-serif;
  color: #6B716C;
  font-size: 14.5px;
  line-height: 1.55;
  margin: 0;
}
.saburi-enquiry-form { display: block; }
.saburi-enquiry-field { margin: 0 0 18px; }
/* Underlined, placeholder-only fields — same language as the CTA form. */
.saburi-enquiry-form input,
.saburi-enquiry-form textarea {
  width: 100%;
  padding: 10px 0;
  border: none;
  border-bottom: 1px solid #D8DBD2;
  border-radius: 0;
  background: transparent;
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  color: #2A2F2C;
  transition: border-color 0.2s ease;
}
.saburi-enquiry-form input:focus,
.saburi-enquiry-form textarea:focus {
  outline: none;
  border-bottom-color: #78933D;
}
.saburi-enquiry-form input::placeholder,
.saburi-enquiry-form textarea::placeholder { color: #8E9189; opacity: 1; }
.saburi-enquiry-form textarea { resize: vertical; min-height: 92px; line-height: 1.55; }
.saburi-enquiry-actions { margin-top: 22px; }
.saburi-enquiry-submit {
  display: block;
  width: 100%;
  padding: 14px 24px;
  border-radius: 999px;
  background: #78933D;
  color: #ffffff;
  border: none;
  font-family: 'Marcellus', serif;
  font-size: 16px;
  letter-spacing: 0.04em;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.25s ease;
}
.saburi-enquiry-submit:hover { background: #5f7c2f; }
/* Consent row — centered under the full-width button, with a real tick. */
.saburi-enquiry-consent {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  margin: 0 0 14px;
  font-family: 'DM Sans', sans-serif;
  font-size: 12.5px;
  color: #6B716C;
  cursor: pointer;
}
.saburi-enquiry-consent input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex: none;
  width: 16px;
  height: 16px;
  margin: 0;
  border: 1px solid #C3C7BC;
  border-radius: 4px;
  background: #ffffff;
  position: relative;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.saburi-enquiry-consent input[type="checkbox"]:checked {
  background-color: #78933D;
  border-color: #78933D;
}
.saburi-enquiry-consent input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 2px;
  width: 4px;
  height: 8px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.saburi-enquiry-consent a { color: #78933D; text-decoration: underline; }
/* Form submission status + validation (js/saburi-forms.js), all site forms. */
.saburi-form-status {
  flex-basis: 100%;
  margin: 14px 0 0 !important;
  padding: 10px 14px;
  border-radius: 8px;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}
.saburi-form-status[hidden] { display: none; }
.saburi-form-status.is-success { background: #eef3e3; color: #4f6b22; }
.saburi-form-status.is-error { background: #fbeceb; color: #b3261e; }
input.saburi-field-invalid,
textarea.saburi-field-invalid {
  border-color: #b3261e !important;
  box-shadow: 0 0 0 1px #b3261e !important;
}
label.saburi-field-invalid,
label.saburi-field-invalid a { color: #b3261e !important; }
form [type="submit"][disabled] { opacity: 0.6; cursor: wait; }
/* Honeypot: invisible to people and screen readers, visible to form-filling bots. */
.saburi-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
@media (max-width: 600px) {
  .saburi-enquiry-modal { padding: 16px; }
  .saburi-enquiry-dialog { padding: 30px 24px 26px; border-radius: 12px; }
  .saburi-enquiry-title { font-size: 24px; }
}

/* Contact location text → Google Maps link */
.saburi-map-link {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.saburi-map-link:hover { color: #78933D; }

/* Contact-us icon widget: strip link underlines and bring the phone number
   in line with the address / email styling (theme renders it in serif + dark;
   match the DM Sans grey used by the other contact lines). */
.elementor-element-36007e66 a { text-decoration: none !important; }
.elementor-element-36007e66 .sc_icons_item_more_link .link_text {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  color: #80837D !important;
}
/* Contact-us left column — the icon and its text sat flush against each other
   ("mixed"), and the rows crowded vertically. Lay each row out as a flex line
   with a clear gap between the icon and the text, and space the rows apart. */
.elementor-element-36007e66 .sc_icons_item {
  display: flex !important;
  align-items: center;
  gap: 14px;
}
.elementor-element-36007e66 .sc_icons_icon {
  margin: 0 !important;
  flex: 0 0 auto;
}
.elementor-element-36007e66 .sc_icons_item_details { margin: 0 !important; }
.elementor-element-36007e66 .sc_icons_item + .sc_icons_item { margin-top: 20px !important; }

/* ==========================================================================
   Individual Blog Post — article body only.
   The section/column wrappers use the standard elementor-section-boxed
   pattern (matching the header / footer / breadcrumb), so the parent theme
   handles container width and centering. These rules only style the
   article content sitting inside the widget container.
   ========================================================================== */
.elementor-element-blogpost .elementor-widget-container {
  max-width: 820px;
  margin: 0 auto;
  padding: 16px 0 48px;
}
article.saburi-bp-main {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}
article.saburi-bp-main .saburi-bp-hero-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 8 / 3;
  object-fit: cover;
  border-radius: 10px;
  margin: 0 0 24px;
}
article.saburi-bp-main .saburi-bp-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13.5px;
  color: #8E9189;
  margin: 0 0 22px;
}
article.saburi-bp-main .saburi-bp-meta .saburi-bl-tag {
  display: inline-flex;
  align-items: center;
  background: #86A96E;
  color: #ffffff;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 999px;
  margin-right: 4px;
}
article.saburi-bp-main .saburi-bp-meta-comments {
  color: inherit;
  transition: color 0.2s ease;
}
article.saburi-bp-main .saburi-bp-meta-comments:hover { color: #78933D; }
article.saburi-bp-main .saburi-bl-post-sep { color: #C9CBC4; }

article.saburi-bp-main .saburi-bp-content {
  font-family: 'DM Sans', sans-serif;
  color: #4A5247;
  font-size: 16px;
  line-height: 1.75;
}
article.saburi-bp-main .saburi-bp-content p {
  margin: 0 0 18px;
}
article.saburi-bp-main .saburi-bp-content h2 {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 26px;
  line-height: 1.25;
  margin: 30px 0 12px;
}
article.saburi-bp-main .saburi-bp-content h3 {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 22px;
  line-height: 1.3;
  margin: 26px 0 10px;
}
article.saburi-bp-main .saburi-bp-content a {
  color: #78933D;
  text-decoration: underline;
}
article.saburi-bp-main .saburi-bp-content a:hover { color: #5f7c2f; }
article.saburi-bp-main .saburi-bp-content ul,
article.saburi-bp-main .saburi-bp-content ol {
  margin: 16px 0 18px;
  padding-left: 22px;
}
article.saburi-bp-main .saburi-bp-content li { margin-bottom: 6px; }
article.saburi-bp-main .saburi-bp-content img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 22px 0;
}

@media (max-width: 720px) {
  .elementor-element-blogpost .elementor-widget-container { padding: 8px 0 32px; }
  article.saburi-bp-main .saburi-bp-content { font-size: 15.5px; }
  article.saburi-bp-main .saburi-bp-content h2 { font-size: 22px; margin-top: 26px; }
  article.saburi-bp-main .saburi-bp-content h3 { font-size: 19px; }
}
@media (max-width: 480px) {
  article.saburi-bp-main .saburi-bp-meta { font-size: 12.5px; gap: 10px; }
  article.saburi-bp-main .saburi-bp-meta .saburi-bl-tag { font-size: 10px; padding: 5px 12px; }
}

/* Contact-us / request-a-quote textarea — match shortened CTA height. */
.wpcf7-form .form-style-1 textarea.wpcf7-textarea {
  min-height: 120px !important;
  height: 120px !important;
}

/* ==========================================================================
   Insurance / company logos strip — home page.
   ========================================================================== */
.saburi-insurance-section { background: #ffffff; }
.saburi-insurance-wrap {
  max-width: 1180px;
  margin: 0 auto;
  padding: var(--section-space, 60px) 32px;
  text-align: center;
}
.saburi-insurance-eyebrow {
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  color: #78933D;
  margin: 0 0 10px;
}
.saburi-insurance-title {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 30px;
  line-height: 1.2;
  margin: 0 0 32px;
}
.saburi-insurance-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  align-items: center;
  gap: 28px 36px;
}
.saburi-insurance-grid li {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
}
.saburi-insurance-grid img {
  max-width: 100%;
  max-height: 56px;
  width: auto;
  height: auto;
  object-fit: contain;
  /* Logos are shown in their original brand colors (client request). */
  transition: transform 0.25s ease;
}
.saburi-insurance-grid li:hover img {
  transform: scale(1.04);
}
@media (max-width: 960px) {
  .saburi-insurance-grid { grid-template-columns: repeat(3, 1fr); gap: 22px 28px; }
  .saburi-insurance-title { font-size: 26px; }
}
@media (max-width: 520px) {
  .saburi-insurance-wrap { padding: var(--section-space, 40px) 22px; }
  .saburi-insurance-grid { grid-template-columns: repeat(2, 1fr); }
  .saburi-insurance-title { font-size: 22px; }
}

/* ==========================================================================
   Footer address — highlight Clinic / Office labels.
   Theme typography on the footer text-editor widget can override <strong>
   styling, so we raise specificity and force every visual property. The
   base rule ships a fallback background so the pill always renders, and
   the modifier classes (-clinic / -office) tint each variant.
   ========================================================================== */
.elementor-element-166c85a0 .saburi-foot-label,
strong.saburi-foot-label {
  display: inline-block !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
  background: #2A2F2C !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  margin-bottom: 6px !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
}
.elementor-element-166c85a0 .saburi-foot-label-clinic,
strong.saburi-foot-label-clinic { background: #2A2F2C !important; }
.elementor-element-166c85a0 .saburi-foot-label-office,
strong.saburi-foot-label-office { background: #2A2F2C !important; }

/* ==========================================================================
   Footer socials — moved beneath the phone number (third column).
   The JS in saburi-enquiry.js relocates the existing socials block into
   the phone column; these rules add the spacing for the new position.
   ========================================================================== */
.elementor-element-b7bdd95 .elementor-element-23668252 {
  margin-top: 16px;
}
.elementor-element-b7bdd95 .elementor-element-23668252 .sc_socials {
  text-align: left;
}
/* Hide the address column's now-empty socials slot if JS didn't run yet. */
.elementor-element-1c7347d0 > .elementor-widget-wrap > .elementor-element-23668252:empty {
  display: none;
}

/* ==========================================================================
   About page — the Contact CTA (band + form card) is now styled by the shared
   CTA block further down (search "CTA band + white form card"), matching the
   homepage. The old flat-panel treatment that lived here has been removed.
   ========================================================================== */
/* "Welcome to Saburi / The Journey of Saburi" section had no bottom padding,
   so its copy and image pressed flush against the Core Values band below. */
body.page-id-44879 .elementor-element-4b8f4162 {
  padding-bottom: var(--section-space) !important;
}

/* ==========================================================================
   Sticky-button popup form — keep dialog comfortably inside the viewport.
   ========================================================================== */
.saburi-enquiry-modal {
  padding: 4vh 4vw;
}
.saburi-enquiry-dialog {
  max-width: 560px;
  max-height: calc(100vh - 8vh);
  padding: 32px 32px 28px;
}
@media (max-width: 600px) {
  .saburi-enquiry-modal { padding: 16px; }
  .saburi-enquiry-dialog {
    padding: 24px 20px 22px;
    max-height: calc(100vh - 32px);
  }
}

/* ==========================================================================
   Blog post — FAQ accordion, lists, callouts, and closing CTA.
   ========================================================================== */
.saburi-bp-content ul,
.saburi-bp-content ol {
  margin: 16px 0 0;
  padding-left: 22px;
}
.saburi-bp-content ul li::marker { color: #78933D; }
.saburi-bp-content strong { color: #2A2F2C; }
.saburi-bp-content h3 {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 20px;
  line-height: 1.3;
  margin-top: 24px;
  margin-bottom: 6px;
}
.saburi-bp-content blockquote {
  margin: 22px 0 0;
  padding: 18px 22px;
  background: #EFF2E7;
  border-left: 3px solid #78933D;
  border-radius: 4px;
  font-style: italic;
  color: #4A5247;
}

/* FAQ block within a blog post */
.saburi-bp-faq {
  margin-top: 50px;
  padding-top: 40px;
  border-top: 1px solid rgba(56, 68, 66, 0.12);
}
.saburi-bp-faq-title {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 28px;
  line-height: 1.2;
  margin: 0 0 36px;
  /* The FAQ heading sits inside .saburi-bp-content, so the generic
     `.saburi-bp-content h2 { margin-bottom: 0 }` rule (higher specificity)
     was cancelling the gap. Force the bottom margin so the accordion clears
     the title on every blog post. */
  margin-bottom: 36px !important;
}
.saburi-bp-faq-subtitle {
  font-family: 'DM Sans', sans-serif;
  color: #6B716C;
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 42px;
}
.saburi-bp-faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.saburi-bp-faq-item {
  background: #F4F7EE;
  border: 1px solid rgba(56, 68, 66, 0.08);
  border-radius: 8px;
  overflow: hidden;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.saburi-bp-faq-item[open] {
  border-color: rgba(120, 147, 61, 0.35);
  box-shadow: 0 8px 22px rgba(48, 60, 40, 0.06);
}
.saburi-bp-faq-q {
  list-style: none;
  cursor: pointer;
  padding: 18px 56px 18px 22px;
  position: relative;
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 17px;
  line-height: 1.4;
  transition: color 0.25s ease;
}
.saburi-bp-faq-q::-webkit-details-marker { display: none; }
.saburi-bp-faq-q::after {
  content: "+";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'DM Sans', sans-serif;
  font-size: 26px;
  font-weight: 300;
  line-height: 1;
  color: #78933D;
  transition: transform 0.3s ease;
}
.saburi-bp-faq-item[open] .saburi-bp-faq-q::after {
  content: "−";
}
.saburi-bp-faq-q:hover { color: #78933D; }
.saburi-bp-faq-a {
  padding: 0 22px 20px;
  font-family: 'DM Sans', sans-serif;
  color: #4A5247;
  font-size: 15px;
  line-height: 1.7;
}
.saburi-bp-faq-a > * + * { margin-top: 10px; }
.saburi-bp-faq-a p { margin: 0; }
.saburi-bp-faq-a ul { margin: 0; padding-left: 20px; }

/* Closing CTA card at end of a blog post */
.saburi-bp-cta {
  margin-top: 48px;
  padding: 32px 30px;
  background: linear-gradient(135deg, #EFF2E7 0%, #E4EAD6 100%);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
}
.saburi-bp-cta-eyebrow {
  font-family: 'DM Sans', sans-serif;
  font-size: 11.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #78933D;
  font-weight: 500;
}
.saburi-bp-cta-title {
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  font-size: 24px;
  line-height: 1.25;
  margin: 0;
}
.saburi-bp-cta-text {
  font-family: 'DM Sans', sans-serif;
  color: #4A5247;
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}
.saburi-bp-cta-btn {
  display: inline-block;
  background: #2A2F2C;
  color: #ffffff !important;
  font-family: 'Marcellus', serif;
  font-size: 14.5px;
  letter-spacing: 0.04em;
  padding: 12px 26px;
  border-radius: 999px;
  text-decoration: none !important;
  transition: background-color 0.25s ease, transform 0.25s ease;
  border: none;
  cursor: pointer;
}
.saburi-bp-cta-btn:hover {
  background: #78933D;
  transform: translateY(-1px);
}

@media (max-width: 720px) {
  .saburi-bp-faq { margin-top: 36px; padding-top: 30px; }
  .saburi-bp-faq-title { font-size: 24px; }
  .saburi-bp-faq-q { font-size: 16px; padding: 16px 48px 16px 18px; }
  .saburi-bp-faq-a { padding: 0 18px 18px; font-size: 14.5px; }
  .saburi-bp-cta { padding: 26px 22px; }
  .saburi-bp-cta-title { font-size: 21px; }
}

/* ==========================================================================
   Site header (52350) — the top header row (61b5914) sits transparently over a
   light banner on every page (cream hero on home, cream/white band on inner
   pages), so the theme's light menu text (#menu_main a { color:white }) is
   invisible against it. Force dark menu links on the over-header everywhere;
   the sticky-on-scroll header (55e7547) keeps its own dark-on-white styling.
   ========================================================================== */
.elementor-element-61b5914 .sc_layouts_menu_nav > li > a,
.elementor-element-61b5914 .sc_layouts_menu_nav > li > a > span {
  color: #2A2F2C !important;
}
.elementor-element-61b5914 .sc_layouts_menu_nav > li > a:hover,
.elementor-element-61b5914 .sc_layouts_menu_nav > li.sfHover > a,
.elementor-element-61b5914 .sc_layouts_menu_nav > li.current-menu-item > a {
  color: #78933D !important;
}
.elementor-element-61b5914 .sc_layouts_menu_nav > li.menu-item-has-children > a:after {
  color: #2A2F2C !important;
}

/* Hero slider sits on the light cream banner. The Revolution Slider applies its
   own inline colours via JS, so override with !important: dark heading + a sage
   "Send Enquiry" button (white label) for contrast against the cream. */
#rev_slider_1_1 #slider-1-slide-1-layer-24,
#rev_slider_1_1 #slider-1-slide-1-layer-24 * {
  color: #2A2F2C !important;
}
#rev_slider_1_1 a#slider-1-slide-1-layer-0.rev-btn {
  background-color: #78933D !important;
  color: #ffffff !important;
}
#rev_slider_1_1 a#slider-1-slide-1-layer-0.rev-btn:hover {
  background-color: #2c2c2c !important;
  color: #ffffff !important;
}
/* The supporting tagline (moved from over the photo to under the title) now
   sits on the cream banner, so give it a readable muted-sage tone. */
#rev_slider_1_1 #slider-1-slide-1-layer-1,
#rev_slider_1_1 #slider-1-slide-1-layer-1 * {
  color: #5A6152 !important;
}
/* Keep the tagline within the cream text block so it wraps instead of running
   under the photo on the right. */
#rev_slider_1_1 #slider-1-slide-1-layer-1 {
  max-width: min(480px, calc(100vw - 64px)) !important;
  white-space: normal !important;
}
/* The desktop hero banner is a wide 1920x900 composition (photo in a circle on
   the right) that crops poorly on phones. Swap in the purpose-built portrait
   1080x1920 mobile banner below the slider's mobile breakpoint. Replacing the
   image pixels via `content` keeps Revolution Slider's own cover sizing. */
@media (max-width: 767px) {
  /* Revolution Slider 6 sizes the slide-background <img> as an oversized
     landscape box (to cover the wide desktop crop), so swapping the <img> src
     alone would crop the portrait shot to a thin slice. Instead paint the
     portrait banner as a background on <rs-sbg> — which is exactly the slide
     box (portrait on mobile) — and hide the oversized <img>. */
  #rev_slider_1_1 rs-sbg {
    background-image: url("../images/homepage/hero-section-mobile1080x1920_mobile.jpg") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }
  #rev_slider_1_1 rs-sbg img {
    opacity: 0 !important;
  }
  /* Pre-init fallback (before RS converts the markup) */
  #rev_slider_1_1 img.rev-slidebg {
    content: url("../images/homepage/hero-section-mobile1080x1920_mobile.jpg") !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
  /* The hero copy lives in Revolution Slider's bottom row-zone, so on mobile it
     fell over the photo (lower half) where it's unreadable. The portrait banner
     leaves the top ~third as cream for exactly this text, so re-anchor the zone
     and centre it within that cream band (above the arched photo). */
  #rev_slider_1_1 #rrzb_1.rev_row_zone_bottom {
    top: 22% !important;
    bottom: auto !important;
  }
  /* The mobile header carried a near-black gradient overlay (built for a dark
     hero) that now casts an ugly shade over the cream banner. Drop it, and keep
     the burger/header icons dark so they stay legible on the cream. */
  .elementor-element-e1237df > .elementor-background-overlay {
    display: none !important;
  }
  .elementor-element-e1237df .sc_layouts_menu_mobile_button .trx_addons_icon-menu::before,
  .elementor-element-e1237df .sc_layouts_iconed_text_icon,
  .elementor-element-e1237df a {
    color: #2A2F2C !important;
  }
}

/* ==========================================================================
   Homepage — two-tone alternating section bands
   --------------------------------------------------------------------------
   The page uses ONLY two surface colours — white and sage #EFF2E7 — and they
   alternate straight down the page, computed from the top (first band white):
     Insurance     -> white
     About         -> #EFF2E7
     Steps we follow-> white
     Our Services  -> #EFF2E7
     Testimonials  -> white
     From the Blog -> #EFF2E7
     Contact       -> white
   The page canvas is forced to white so every "white" band is true white
   (this retires the old cream #FEF4EA / green-brown tints), and the sage
   bands are painted on top. Header and footer are intentionally untouched.
   ========================================================================== */
body.home .page_content_wrap { background-color: #ffffff !important; }

/* sage (#EFF2E7) bands */
body.home .elementor-element-d734a42,            /* About */
body.home .elementor-element-our-services-home,  /* Our Services */
body.home .elementor-element-46d95ac {           /* From the Blog */
  background-color: #EFF2E7 !important;
  background-image: none !important;
}

/* white bands — strip any inherited tint/texture so they read as pure white */
body.home .elementor-element-50b36986,           /* Steps we follow */
body.home .elementor-element-b7827c4 {           /* Testimonials */
  background-color: #ffffff !important;
  background-image: none !important;
}

/* --------------------------------------------------------------------------
   Homepage contact CTA — photographic band with a compact floating form card.
   The section carries the get-in-touch photo full-bleed under a soft dark-green
   gradient (depth + legibility); the form is trimmed into a small, clean white
   card floated to the right so it reads light and uncluttered over the image.
   -------------------------------------------------------------------------- */
/* ==========================================================================
   CTA band + white form card. The homepage and the About Us page carry the
   exact same markup, so both are styled together here.
     Homepage IDs:  fabd2e5 (spacer) / ac40b15 (band) / 9bbba85 (form column)
     About Us IDs:  fcee710 (spacer) / 6b79e755 (band) / 2380680c (form column)
   The background url() is relative to this stylesheet, so it resolves for both.
   ========================================================================== */

/* The section directly above the CTA holds nothing but spacer widgets; its
   inner spacers are already zeroed, but the section still adds a gap above the
   photo band. Collapse it so the CTA sits flush under the section above. */
body.home .elementor-element-fabd2e5,
body.page-id-44879 .elementor-element-fcee710 { display: none !important; }

body.home .elementor-element-ac40b15,
body.page-id-44879 .elementor-element-6b79e755 {
  background-color: #232a1e !important;
  background-image: url("../images/homepage/get-in-touch.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  position: relative;
}
/* Re-enable the overlay as a green→transparent wash over the photo. */
body.home .elementor-element-ac40b15 > .elementor-background-overlay,
body.page-id-44879 .elementor-element-6b79e755 > .elementor-background-overlay {
  display: block !important;
  background-image: linear-gradient(110deg,
      rgba(20, 28, 16, 0.82) 0%,
      rgba(38, 54, 30, 0.55) 45%,
      rgba(38, 54, 30, 0.18) 100%) !important;
  background-color: transparent !important;
  opacity: 1 !important;
}
/* Let the band height follow the form: drop the fixed 720px min-height so the
   photo is only as tall as the card (plus a little breathing room), instead of
   the card floating in the middle of a much taller photo. */
body.home .elementor-element-ac40b15 > .elementor-container,
body.page-id-44879 .elementor-element-6b79e755 > .elementor-container {
  min-height: 0 !important;
  padding-top: 48px;
  padding-bottom: 48px;
}

/* Form column -> a compact white card, floated to the right of the section. */
body.home .elementor-element-9bbba85,
body.home .elementor-element-9bbba85 > .elementor-widget-wrap,
body.page-id-44879 .elementor-element-2380680c,
body.page-id-44879 .elementor-element-2380680c > .elementor-widget-wrap {
  background-color: transparent !important;
}
body.home .elementor-element-9bbba85 > .elementor-widget-wrap.elementor-element-populated,
body.page-id-44879 .elementor-element-2380680c > .elementor-widget-wrap.elementor-element-populated {
  background-color: #ffffff !important;
  width: 100%;
  max-width: 430px;
  margin-left: auto;                 /* hug the right edge of the column */
  padding: 34px 34px 20px !important;
  border-radius: 18px;
  box-shadow: 0 26px 60px rgba(16, 24, 12, 0.30);
}
/* Trim the dead space under the submit button: drop the trailing row margin
   and collapse the empty response-output slot below the form. */
body.home div.wpcf7 .saburi-contact-form > p:last-child,
body.page-id-44879 div.wpcf7 .saburi-contact-form > p:last-child { margin-bottom: 0 !important; }
body.home div.wpcf7 .wpcf7-response-output,
body.page-id-44879 div.wpcf7 .wpcf7-response-output { margin: 0 !important; }

/* Heading inside the card: small sage eyebrow + tight Marcellus title. */
body.home .elementor-element-9bbba85 .elementor-widget-trx_sc_title,
body.page-id-44879 .elementor-element-2380680c .elementor-widget-trx_sc_title { margin-bottom: 18px; }
body.home .elementor-element-9bbba85 .sc_title,
body.page-id-44879 .elementor-element-2380680c .sc_title { text-align: left; }
body.home .elementor-element-9bbba85 .sc_item_subtitle,
body.page-id-44879 .elementor-element-2380680c .sc_item_subtitle {
  display: block;
  color: #86A96E !important;
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
body.home .elementor-element-9bbba85 .sc_item_title_text,
body.page-id-44879 .elementor-element-2380680c .sc_item_title_text {
  font-family: 'Marcellus', serif;
  font-size: 27px !important;
  line-height: 1.18 !important;
  color: #2A2F2C !important;
}

/* Trim the form: tighter rows, shorter message field, full-width submit. */
body.home div.wpcf7 .saburi-contact-form > p,
body.page-id-44879 div.wpcf7 .saburi-contact-form > p { margin: 0 0 14px !important; }
body.home div.wpcf7 .saburi-contact-form .saburi-message-row,
body.page-id-44879 div.wpcf7 .saburi-contact-form .saburi-message-row { margin-top: 2px !important; }
body.home div.wpcf7 .saburi-contact-form .saburi-message-row textarea,
body.home .wpcf7-form .saburi-contact-form textarea.wpcf7-textarea,
body.page-id-44879 div.wpcf7 .saburi-contact-form .saburi-message-row textarea,
body.page-id-44879 .wpcf7-form .saburi-contact-form textarea.wpcf7-textarea {
  min-height: 76px !important;
  height: 76px !important;
  padding: 8px 0 !important;
}
body.home .saburi-contact-form input.wpcf7-text,
body.home .saburi-contact-form input.wpcf7-email,
body.page-id-44879 .saburi-contact-form input.wpcf7-text,
body.page-id-44879 .saburi-contact-form input.wpcf7-email {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}
body.home .saburi-contact-form .saburi-consent,
body.home .saburi-contact-form .wpcf7-acceptance,
body.page-id-44879 .saburi-contact-form .saburi-consent,
body.page-id-44879 .saburi-contact-form .wpcf7-acceptance { font-size: 12px; }
body.home .saburi-contact-form .wpcf7-submit,
body.page-id-44879 .saburi-contact-form .wpcf7-submit {
  display: block !important;
  width: 100% !important;
  margin-top: 20px !important;
  padding: 14px 24px !important;
  justify-content: center !important;
  text-align: center !important;
}
/* skin.js wraps the input in an inline-block `.wpcf7-submit-style` span and
   injects a `.submit-style-in` icon layer. That stops the button from spanning
   the row and drops a paper-plane glyph over the centered label. Spread the
   wrapper full-width and drop the icon so the CTA reads as one clean button. */
body.home .saburi-contact-form .wpcf7-submit-style,
body.page-id-44879 .saburi-contact-form .wpcf7-submit-style {
  display: block !important;
  width: 100% !important;
}
body.home .saburi-contact-form .submit-style-in:before,
body.page-id-44879 .saburi-contact-form .submit-style-in:before { content: none !important; }

@media (max-width: 991px) {
  body.home .elementor-element-9bbba85 > .elementor-widget-wrap.elementor-element-populated,
  body.page-id-44879 .elementor-element-2380680c > .elementor-widget-wrap.elementor-element-populated {
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 767px) {
  body.home .elementor-element-ac40b15 > .elementor-container,
  body.page-id-44879 .elementor-element-6b79e755 > .elementor-container {
    padding-top: 44px;
    padding-bottom: 44px;
  }
  body.home .elementor-element-9bbba85 > .elementor-widget-wrap.elementor-element-populated,
  body.page-id-44879 .elementor-element-2380680c > .elementor-widget-wrap.elementor-element-populated {
    max-width: 100%;
    padding: 26px 22px 24px !important;
  }
  body.home .elementor-element-9bbba85 .sc_item_title_text,
  body.page-id-44879 .elementor-element-2380680c .sc_item_title_text { font-size: 24px !important; }
}

/* ==========================================================================
   ALL PAGES — two-tone (white / #EFF2E7) alternating bands
   --------------------------------------------------------------------------
   Same rule as the homepage, extended site-wide: the page canvas is white,
   the header page-title bar (#EFF2E7) is the first band, then content bands
   alternate white → sage → white down each page. Only white and #EFF2E7 are
   used — cream, photo-backed and warm-grey surfaces are retired. Sections are
   targeted by their (globally unique) Elementor ids, so shared body page-id
   classes don't cause cross-page bleed.
   ========================================================================== */

/* White canvas on every page (retires the cream body background). */
.page_content_wrap { background-color: #ffffff !important; }

/* Non-compliant surfaces → back into the two-colour system. */
.saburi-conditions-section { background-color: #ffffff !important; background-image: none !important; }
.saburi-bp-cta { background: #EFF2E7 !important; }

/* ---------- About Us: sage title → white intro → sage Core Values →
     white Featured. (The Contact CTA is now the photo-band + white card
     treatment defined in the shared CTA block above, not a sage panel.) --- */
.elementor-element-671a6a0,
.elementor-element-4b8f4162,
.elementor-element-58d9d4a { background-color: #ffffff !important; background-image: none !important; }
.elementor-element-core-values { background-color: #EFF2E7 !important; background-image: none !important; }

/* ---------- Our Services: sage title → white grid → sage Unveil →
     white Conditions (handled above) ---------- */
.elementor-element-d44f49c,
.elementor-element-ef973b5,
.elementor-element-077427b { background-color: #ffffff !important; background-image: none !important; }
.elementor-element-95f78c3,
.elementor-element-8107f3a { background-color: #EFF2E7 !important; background-image: none !important; }

/* Footer — custom social icons in column 1 (plain markup so the theme JS
   doesn't relocate them), styled to match the footer's round icon look. */
.saburi-fsoc { display: flex; gap: 10px; margin-top: 4px; }
.saburi-fsoc a {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  display: inline-flex; align-items: center; justify-content: center;
  color: #ffffff; font-size: 15px; text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.saburi-fsoc a:hover { background: #ffffff; color: #78933D; border-color: #ffffff; }

/* Footer headline — plain heading (avoids the theme title widget's fixed
   500px width / nowrap that broke phone wrapping). High specificity + !important
   so the theme's footer-heading styles don't win. */
footer.footer_wrap h2.saburi-foot-headline {
  font-family: 'Marcellus', serif !important;
  font-weight: 400 !important;
  color: #ffffff !important;
  font-size: 34px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.005em !important;
  margin: 0 !important;
  max-width: 340px !important;
  width: auto !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}
@media (max-width: 767px) {
  footer.footer_wrap h2.saburi-foot-headline { font-size: 26px !important; max-width: 100% !important; }
}

/* Footer mobile overflow fix: a footer widget carries an intrinsic ~500px width
   that pushes the footer past the phone viewport (so % / vw caps resolve to the
   overflowed 500px, not the real 390). Hide the horizontal overflow and pin the
   text widgets to fixed caps that always fit a phone, and stack the bottom bar. */
@media (max-width: 767px) {
  footer.footer_wrap { overflow-x: hidden !important; }
  footer.footer_wrap .elementor-container,
  footer.footer_wrap .elementor-column,
  footer.footer_wrap .elementor-widget-wrap,
  footer.footer_wrap .sc_layouts_item,
  footer.footer_wrap .elementor-widget-container { min-width: 0 !important; }
  footer.footer_wrap h2.saburi-foot-headline {
    max-width: 300px !important; font-size: 24px !important;
    white-space: normal !important; word-break: break-word !important;
  }
  footer.footer_wrap .saburi-foot-address-text,
  footer.footer_wrap .saburi-foot-quicklinks { max-width: 300px !important; }
  footer.footer_wrap .saburi-foot-address-text p { white-space: normal !important; word-break: break-word !important; }
  /* bottom bar: stack the copyright + credit, centre both under the footer,
     and give them a little breathing room. */
  footer.footer_wrap .elementor-element-108e4b21 .elementor-container {
    flex-wrap: wrap !important;
    justify-content: center !important;
    row-gap: 8px !important;
    text-align: center !important;
  }
  footer.footer_wrap .elementor-element-108e4b21 .elementor-column {
    width: 100% !important;
    max-width: 320px !important;
    margin: 0 auto !important;
  }
  footer.footer_wrap .elementor-element-108e4b21 .elementor-widget-wrap { justify-content: center !important; }
  footer.footer_wrap .elementor-element-7de25e5,
  footer.footer_wrap .elementor-element-7de25e5 p,
  footer.footer_wrap .elementor-element-e5105c1 {
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: break-word;
  }
  footer.footer_wrap .elementor-element-108e4b21 { padding-top: 6px !important; padding-bottom: 10px !important; }
}

/* Footer address — Clinic / Office as pill labels (original dark #2A2F2C). */
.saburi-foot-address-text p { margin: 0 0 16px; }
.saburi-foot-address-text p:last-child { margin-bottom: 0; }
.saburi-foot-address-text .saburi-foot-tag {
  font-weight: 700;
  color: #ffffff;
}

/* ---------- Footer neatness ----------
   Quick Links sat ~18px lower than the other columns (a 20px spacer under its
   title). Tighten it to a small, even gap and give the links calm line spacing;
   add breathing room above the divider line so the footer reads neatly. */
footer.footer_wrap .elementor-element-cc7a6fe { --spacer-size: 6px !important; }
footer.footer_wrap .saburi-foot-quicklinks p { margin: 0 !important; line-height: 2.05 !important; }
footer.footer_wrap .elementor-element-773d009 { margin-top: 34px !important; }

/* Footer address lines: smaller than the label/heading, with a small gap
   below the Clinic: / Office: label. */
.saburi-foot-address-text .saburi-foot-addr {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.55;
}

/* Footer tweaks: quick links match the address size; phone uses the body font;
   the bottom-bar copyright + credit are smaller. */
footer.footer_wrap .saburi-foot-quicklinks a { font-size: 14px !important; }
footer.footer_wrap .elementor-element-1dd2c10,
footer.footer_wrap .elementor-element-1dd2c10 .elementor-heading-title,
footer.footer_wrap .elementor-element-1dd2c10 a {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
}
footer.footer_wrap .elementor-element-7de25e5 p,
footer.footer_wrap .elementor-element-e5105c1 { font-size: 13px !important; }

/* ==========================================================================
   SITE-WIDE COLOUR CONSISTENCY — retire cream/beige, standardise on sage green
   --------------------------------------------------------------------------
   The site should read as one sage-green palette. Any remaining cream/warm
   surface (the fixed header, the theme's "link2/hover2/hover3" colour variants,
   the Elementor global "secondary" colour) is remapped here to the site's sage
   band tint so nothing stays cream. Loaded last, so these win.

   Brand green tokens (single source of truth for every button on the site):
     --brand-green        sage green   (default button / CTA fill)
     --brand-green-hover  deeper olive (hover / focus)
   ========================================================================== */
:root {
  --brand-green: #86A96E;
  --brand-green-hover: #78933D;
  --brand-green-text: #ffffff;

  /* Remap the theme's cream colour variants to the sage band so any element
     using the "link2"/"hover2"/"hover3" style stops rendering cream. */
  --theme-color-text_link2: #EFF2E7 !important;
  --theme-color-text_hover2: #E4EAD6 !important;
  --theme-color-text_hover3: #E4EAD6 !important;
  --theme-color-alter_hover2: #E4EAD6 !important;
  --theme-color-alter_hover3: #E4EAD6 !important;
  --theme-color-extra_hover2: #E4EAD6 !important;
  --theme-color-extra_hover3: #E4EAD6 !important;

  /* Elementor global "secondary" colour was a cream (#FEF4EA) — make it sage. */
  --e-global-color-secondary: #EFF2E7 !important;
}

/* Fixed/sticky header: the per-page inline rule painted it cream (#FEF4EA)
   once the page scrolls. Repaint it with the sage band so the header matches
   the rest of the site on every page. */
.sc_layouts_row_fixed_on,
.sc_layouts_row.sc_layouts_row_fixed_on {
  background-color: #EFF2E7 !important;
}

/* --------------------------------------------------------------------------
   BUTTONS — one green, everywhere.
   Some pages carried grey (Elementor default #69727d) or dark theme buttons.
   Force every real button variant to the brand sage green with a consistent
   olive hover. Text/outline-only links (`sc_button_simple`, bordered buttons,
   the decorative card "read more" dots) are deliberately excluded.
   -------------------------------------------------------------------------- */
.elementor-button:not(.elementor-button-link-plain),
.wp-block-button__link,
.theme_button,
.post_item .more-link,
.sc_button:not(.sc_button_simple):not(.sc_button_bordered),
.sc_form button,
.wpcf7-submit,
button.wpcf7-submit,
input[type="submit"].wpcf7-submit {
  background-color: var(--brand-green) !important;
  border-color: var(--brand-green) !important;
  color: var(--brand-green-text) !important;
}
.elementor-button:not(.elementor-button-link-plain):hover,
.elementor-button:not(.elementor-button-link-plain):focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
.theme_button:hover,
.theme_button:focus,
.post_item .more-link:hover,
.post_item .more-link:focus,
.sc_button:not(.sc_button_simple):not(.sc_button_bordered):hover,
.sc_button:not(.sc_button_simple):not(.sc_button_bordered):focus,
.sc_form button:hover,
.sc_form button:focus,
.wpcf7-submit:hover,
.wpcf7-submit:focus,
button.wpcf7-submit:hover,
input[type="submit"].wpcf7-submit:hover {
  background-color: var(--brand-green-hover) !important;
  border-color: var(--brand-green-hover) !important;
  color: var(--brand-green-text) !important;
}
/* Keep the custom-designed CTA buttons (already green) on the same tokens so
   their hover matches the rest of the site exactly. */
.saburi-home-blog-cta .elementor-button { background: var(--brand-green) !important; }
.saburi-home-blog-cta .elementor-button:hover { background: var(--brand-green-hover) !important; }
.saburi-enquiry-submit { background: var(--brand-green) !important; }
.saburi-enquiry-submit:hover { background: var(--brand-green-hover) !important; }
.saburi-sd-cta { background: var(--brand-green) !important; }
.saburi-sd-cta:hover { background: var(--brand-green-hover) !important; }

/* ============================================================
   Homepage hero — static background image + overlaid content
   ------------------------------------------------------------
   Replaces the old Revolution Slider. A responsive <picture>
   shows banner-1.png (1920×1080) on desktop and swaps to
   banner-1-mobile.png (1080×1920) at ≤767px. No slider, no
   theme/plugin classes — just a full-bleed image with the same
   headline, sub-line and "Send Enquiry" CTA as before.
   ============================================================ */
.saburi-hero {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: 600px;
  height: 100vh;
  height: 100svh;
  display: flex;
  overflow: hidden;
  isolation: isolate;
}
.saburi-hero__media,
.saburi-hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}
.saburi-hero__media img {
  display: block;
  object-fit: cover;
  /* Anchor to the top-right so the person stays in frame and the bright,
     open upper area of the photo sits behind the header. */
  object-position: right top;
}
/* Soft light scrim on the lower-left keeps the dark headline legible over
   the bright clinic photo without dulling the airy, open feel. */
.saburi-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    /* text-side wash on the left (unchanged) */
    linear-gradient(90deg, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.45) 32%, rgba(255,255,255,0) 60%),
    /* mirror a softer white fade on the right so the fade reads balanced */
    linear-gradient(270deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0) 26%),
    /* melt the bottom edge to solid white so the hero transitions cleanly into
       the white companies/insurance section directly below it */
    linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.55) 10%, rgba(255,255,255,0) 34%);
}
.saburi-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  /* Match the site content width + gutter used by every other section
     (the insurance strip: max-width 1180 + 32px padding) so the hero title's
     left edge lines up with the content of the sections below it. */
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: flex-end;   /* bottom-left, matching the old slider layout */
}
.saburi-hero__content {
  max-width: 640px;
  padding: 70px 0;
}
.saburi-hero__title {
  margin: 0;
  font-family: 'Marcellus', serif;
  font-weight: 400;
  color: #2A2F2C;
  line-height: 1.02;
  letter-spacing: -0.5px;
  font-size: clamp(2.75rem, 6vw, 6.25rem);   /* ~44px → 100px, as before */
}
.saburi-hero__subtitle {
  margin: 20px 0 0;
  max-width: 34em;
  font-family: 'Marcellus', serif;
  color: #2A2F2C;
  letter-spacing: 0.2px;
  line-height: 1.6;
  font-size: clamp(0.9375rem, 1.2vw, 1.0625rem);   /* 15px → 17px, sentence case */
}
.saburi-hero__btn {
  display: inline-block;
  margin-top: 32px;
  padding: 0 56px;
  height: 56px;
  line-height: 56px;
  border-radius: 100px;
  background: var(--brand-green-hover);   /* #78933D — original hero fill */
  color: #fff;
  font-family: 'Marcellus', serif;
  font-size: 1rem;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(42, 47, 44, 0.14);
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.saburi-hero__btn:hover,
.saburi-hero__btn:focus-visible {
  background: #2c2c2c;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(42, 47, 44, 0.22);
}

@media (max-width: 1279px) {
  .saburi-hero__inner { padding: 0 32px; }
  .saburi-hero__content { padding-bottom: 56px; }
}

/* Mobile — portrait banner (1080×1920). Subjects sit low in the frame and
   the top is open wall, so pin the image to its top edge and anchor the
   copy to the top over that clear space. */
@media (max-width: 767px) {
  .saburi-hero {
    /* Match the container to the portrait banner's own ratio so object-fit:cover
       shows the WHOLE image (both people, head-to-foot) at every width up to
       767px — no max-height cap, which previously cropped the subjects' legs on
       wider phones (≈377–767px) while narrow phones happened to escape it. */
    height: auto;
    min-height: 0;
    aspect-ratio: 1080 / 1920;
  }
  .saburi-hero__media img { object-position: center top; }
  /* Extend the light wash further down so the copy clears the top of the
     frame and stays readable where it meets the subjects. */
  .saburi-hero__scrim {
    background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.7) 30%, rgba(255,255,255,0.15) 52%, rgba(255,255,255,0) 62%);
  }
  .saburi-hero__inner {
    align-items: flex-start;
    /* The content is a flex child; without this it shrink-wraps and sits on the
       left, so the inner text-align:center only centred text inside a
       left-hugging box. Centre the box itself so the copy is truly centred. */
    justify-content: center;
    padding: 0 24px;
  }
  /* Top padding clears the overlaid header logo/menu. */
  .saburi-hero__content {
    width: 100%;
    max-width: 100%;
    padding: 96px 0 0;
    text-align: center;
  }
  .saburi-hero__title {
    font-size: clamp(2rem, 9vw, 2.75rem);
    letter-spacing: -0.3px;
    line-height: 1.08;
  }
  .saburi-hero__subtitle {
    margin: 14px auto 0;
    font-size: 0.8125rem;
    letter-spacing: 0.4px;
    line-height: 1.55;
    max-width: 30em;
  }
  /* Pin the CTA to the bottom-centre of the hero (the copy stays at the top
     over the open upper area of the portrait banner). */
  .saburi-hero__btn {
    position: absolute;
    left: 50%;
    bottom: 40px;
    transform: translateX(-50%);
    margin: 0;
    padding: 0 44px;
    height: 52px;
    line-height: 52px;
    white-space: nowrap;
    z-index: 3;
  }
  .saburi-hero__btn:hover,
  .saburi-hero__btn:focus-visible {
    transform: translateX(-50%) translateY(-2px);
  }
}

/* ==========================================================================
   Mobile menu close button — replace the fontello glyph with a clean,
   circular X icon that reads well on the dark fullscreen menu.
   ========================================================================== */
.menu_mobile .menu_mobile_close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 20;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #ffffff;
  margin: 0 !important;
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.menu_mobile .menu_mobile_close:hover {
  background-color: #78933D;
  border-color: #78933D;
  color: #ffffff;
}
@media (max-width: 767px) {
  .menu_mobile .menu_mobile_close {
    top: 16px;
    right: 16px;
    width: 34px;
    height: 34px;
  }
}

/* Keep the "Close" label available to screen readers but out of view. */
.menu_mobile .menu_mobile_close .menu_button_close_text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Draw the X with the icon's pseudo-elements instead of the fontello font. */
.menu_mobile .menu_mobile_close .menu_button_close_icon {
  position: relative;
  width: 14px;
  height: 14px;
  font-size: 0;
  color: inherit;
  transform: none;
  transition: transform 0.3s ease;
}
.menu_mobile .menu_mobile_close:hover .menu_button_close_icon {
  transform: rotate(90deg);
}
.menu_mobile .menu_mobile_close .menu_button_close_icon:before,
.menu_mobile .menu_mobile_close .menu_button_close_icon:after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  border-radius: 2px;
  background-color: currentColor;
  font-family: inherit;
}
.menu_mobile .menu_mobile_close .menu_button_close_icon:before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.menu_mobile .menu_mobile_close .menu_button_close_icon:after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* --------------------------------------------------------------------------
   Mobile menu extra-item links ("Send Enquiry", "Our Services") — replace the
   broken fontello arrow glyph with a clean, crisp arrow.
   -------------------------------------------------------------------------- */
.menu_mobile .menu_mobile_widgets_area .widget_custom_html .extra_item a:not([href*="mailto"]) {
  padding-right: 1.4em;
}
.menu_mobile .menu_mobile_widgets_area .widget_custom_html .extra_item a:not([href*="mailto"]):after {
  content: '\2192'; /* → rightwards arrow */
  font-family: inherit;
  font-size: 0.7em;
  line-height: 1;
  right: 0;
  color: var(--theme-color-text_link);
}
.menu_mobile .menu_mobile_widgets_area .widget_custom_html .extra_item a:not([href*="mailto"]):hover:after {
  right: -4px;
}

/* ==========================================================================
   Contact-form checkbox tick — the theme draws the checked state with the
   fontello glyph \e9f6, but the fontello font was never exported, so a ticked
   box rendered as an empty square. Fill the box green and paint a crisp white
   check via an inline SVG. Applies to every wpcf7 checkbox site-wide (contact
   page + homepage / About CTA consent).
   ========================================================================== */
div.wpcf7 input[type="checkbox"]:checked + .wpcf7-list-item-label:before,
.wpcf7 input[type="checkbox"]:checked + label:before,
.wpcf7-checkbox .wpcf7-list-item-checked.wpcf7-list-item-right:before {
  content: '' !important;
  background-color: #78933D !important;
  border-color: #78933D !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.4 6.3l2.2 2.2 4.9-5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 11px 11px !important;
}

/* ==========================================================================
   Contact page (page-id-1453) — spread the submit button full width with a
   centered label, and place the consent checkbox + text on its own centered
   line directly ABOVE the button. The submit comes before the acceptance in
   the DOM, so a reversed flex column stacks them the other way round.
   ========================================================================== */
body.page-id-1453 div.wpcf7 .form-style-1 > p:last-child {
  display: flex !important;
  flex-direction: column-reverse !important;
  align-items: stretch !important;
  text-align: center !important;
}
body.page-id-1453 div.wpcf7 .form-style-1 .wpcf7-submit,
body.page-id-1453 div.wpcf7 .form-style-1 .wpcf7-submit-style {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}
body.page-id-1453 div.wpcf7 .form-style-1 .wpcf7-submit {
  text-align: center !important;
  justify-content: center !important;
  padding: 14px 24px !important;
}
/* Drop the absolutely-positioned paper-plane so the centered label stays clean. */
body.page-id-1453 div.wpcf7 .form-style-1 .submit-style-in:before {
  content: none !important;
}
/* Consent line: full-width block, left-aligned like the other fields,
   sitting above the button. */
body.page-id-1453 div.wpcf7 .form-style-1 [data-name="acceptance"] {
  display: block !important;
  margin: 0 0 16px !important;
  text-align: left !important;
  vertical-align: baseline !important;
}
body.page-id-1453 div.wpcf7 .form-style-1 .wpcf7-acceptance {
  display: block !important;
  margin: 0 !important;
  text-align: left !important;
}
body.page-id-1453 div.wpcf7 .form-style-1 .wpcf7-acceptance .wpcf7-list-item {
  display: inline-block !important;
  margin: 0 !important;
  text-align: left !important;
}

/* ==========================================================================
   Our Services — "Relax & Restore / Unveil the ultimate rest experience" as a
   fixed-background parallax band. The two-column (side image + text) layout is
   replaced by the image used as the section's own fixed background, with the
   copy + button centred over a soft dark scrim. `background-attachment: fixed`
   gives the parallax drift on desktop; mobile browsers ignore fixed cleanly, so
   they fall back to a normal cover.
   ========================================================================== */
.saburi-relax-parallax.elementor-element-8107f3a {
  background-color: #1b2415 !important;
  background-image:
    linear-gradient(rgba(20, 28, 16, 0.62), rgba(20, 28, 16, 0.62)),
    url("../images/unveil-the-ultimate-rest-experience.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
  padding: 0 !important;
}
/* drop the (now redundant) side-image column and let the copy span + centre */
.saburi-relax-parallax .elementor-element-19de8f6 { display: none !important; }
.saburi-relax-parallax > .elementor-container {
  justify-content: center !important;
  align-items: center !important;
  padding-top: 120px !important;
  padding-bottom: 120px !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
  min-height: 0 !important;
}
.saburi-relax-parallax .elementor-element-53181ca {
  width: 100% !important;
  max-width: 760px !important;
  margin: 0 auto !important;
}
.saburi-relax-parallax .elementor-element-53181ca > .elementor-widget-wrap {
  align-items: center !important;
}
.saburi-relax-parallax .elementor-element-53f8623 { width: 100% !important; max-width: 100% !important; }
.saburi-relax-parallax .sc_title,
.saburi-relax-parallax .sc_title_descr { text-align: center !important; }
/* light copy over the dark scrim */
.saburi-relax-parallax.saburi-unveil-section .sc_item_subtitle {
  color: #C8DCB0 !important;
  display: block;
  text-align: center;
}
.saburi-relax-parallax.saburi-unveil-section .sc_item_title_text { color: #ffffff !important; }
.saburi-relax-parallax .saburi-unveil-descr {
  color: rgba(255, 255, 255, 0.9) !important;
  max-width: 620px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
/* re-centre the "Book a Session" button (the base unveil rules left-align it) */
.saburi-relax-parallax.saburi-unveil-section .elementor-element-ad6e726 > .elementor-widget-wrap {
  justify-content: center !important;
  align-items: center !important;
}
.saburi-relax-parallax.saburi-unveil-section .elementor-element-b515ffb,
.saburi-relax-parallax.saburi-unveil-section .elementor-element-b515ffb .sc_title,
.saburi-relax-parallax.saburi-unveil-section .sc_title_button {
  text-align: center !important;
}
@media (max-width: 1024px) {
  .saburi-relax-parallax.elementor-element-8107f3a {
    background-attachment: scroll !important;
  }
  .saburi-relax-parallax > .elementor-container {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
}

/* ==========================================================================
   About Us — "What We Do / Featured services" icon cards. The theme's float
   columns left the cards touching with no gap and swapped the text colour on
   hover (poor contrast). Lay the cards out as a real gapped grid, give each a
   clean rounded white card, and keep the card white on hover (lift only) so the
   title + description stay fully readable.
   ========================================================================== */
.elementor-element-6b9c9c13 .sc_icons_columns_wrap {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  margin: 0 !important;
  width: 100% !important;
}
.elementor-element-6b9c9c13 .sc_icons_columns_wrap > [class*="trx_addons_column-"] {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
.elementor-element-6b9c9c13 .sc_icons_item {
  background: #ffffff !important;
  border: 1px solid rgba(120, 147, 61, 0.14) !important;
  border-radius: 16px !important;
  padding: 34px 24px !important;
  margin: 0 !important;
  text-align: center !important;
  box-shadow: 0 4px 16px rgba(56, 68, 66, 0.05) !important;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
  height: 100% !important;
  box-sizing: border-box !important;
}
.elementor-element-6b9c9c13 .sc_icons_item:hover {
  background: #ffffff !important;                 /* stay white so text stays readable */
  border-color: rgba(120, 147, 61, 0.32) !important;
  box-shadow: 0 12px 30px rgba(56, 68, 66, 0.12) !important;
  transform: translateY(-4px) !important;
}
.elementor-element-6b9c9c13 .sc_icons_icon,
.elementor-element-6b9c9c13 .sc_icons_item [class*="icon-new-sr-icon-"] {
  color: #86A96E !important;
  font-size: 40px !important;
  margin: 0 0 16px !important;
  display: block !important;
  line-height: 1 !important;
}
.elementor-element-6b9c9c13 .sc_icons_icon::before,
.elementor-element-6b9c9c13 .sc_icons_item [class*="icon-new-sr-icon-"]::before {
  font-size: 40px !important;
  color: #86A96E !important;
  line-height: 1 !important;
  margin: 0 !important;
}
.elementor-element-6b9c9c13 .sc_icons_item_title {
  margin: 0 0 8px !important;
}
.elementor-element-6b9c9c13 .sc_icons_item_title,
.elementor-element-6b9c9c13 .sc_icons_item_title a {
  font-family: 'Marcellus', serif !important;
  font-size: 19px !important;
  line-height: 1.3 !important;
  color: #2A2F2C !important;
  transition: color .25s ease !important;
}
.elementor-element-6b9c9c13 .sc_icons_item:hover .sc_icons_item_title,
.elementor-element-6b9c9c13 .sc_icons_item:hover .sc_icons_item_title a { color: #78933D !important; }
.elementor-element-6b9c9c13 .sc_icons_item_description,
.elementor-element-6b9c9c13 .sc_icons_item_description span {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: #6B716C !important;
}
.elementor-element-6b9c9c13 .sc_icons_item:hover .sc_icons_item_description,
.elementor-element-6b9c9c13 .sc_icons_item:hover .sc_icons_item_description span { color: #6B716C !important; }
@media (max-width: 1024px) {
  .elementor-element-6b9c9c13 .sc_icons_columns_wrap { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
  .elementor-element-6b9c9c13 .sc_icons_columns_wrap { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   Round content images site-wide (Elementor image widgets). Brand logos live
   in .sc_layouts_logo, not here, so they stay square.
   ========================================================================== */
.elementor-widget-image img { border-radius: 14px; }

/* ==========================================================================
   Homepage — "Our Services" cards adopt the same rounded tile as the Our
   Services page (both use the sc_services_classic tiles with a background-image
   thumbnail on _content).
   ========================================================================== */
.elementor-element-our-services-home .sc_services_item,
.elementor-element-our-services-home .sc_services_item_content {
  border-radius: 16px !important;
  overflow: hidden !important;
}

/* ==========================================================================
   Our Services — services grid: drop the grey offset panel behind the whole
   list and round each service tile (image + card) like the rest of the cards.
   The section's own background is left untouched.
   ========================================================================== */
/* The column carried a `sc_extra_bg_extra_left` decorative offset panel (drawn
   via ::after) plus a #FCFCFC widget-wrap fill — together they read as a grey
   block behind the entire list. Remove both. */
.elementor-44881 .elementor-element-42595b9 > .elementor-widget-wrap {
  background-color: transparent !important;
}
.elementor-44881 .elementor-element-42595b9.sc_extra_bg_extra_left > .elementor-widget-wrap::after,
.elementor-44881 .elementor-element-42595b9 > .elementor-widget-wrap::after {
  display: none !important;
  content: none !important;
}
/* Round each service tile — the thumbnail is a background-image on _content. */
.elementor-element-a01b993 .sc_services_item,
.elementor-element-a01b993 .sc_services_item_content {
  border-radius: 16px !important;
  overflow: hidden !important;
}

/* ==========================================================================
   FAQs — accordion trim: drop the divider line directly above the accordion
   (the "start line") and the trailing border under the last toggle item (the
   "last line"), so the accordion reads as a clean list with separators only
   BETWEEN questions. Ids are unique to faqs/index.html.
   ========================================================================== */
.elementor-element-b392a99 { display: none !important; }
.elementor-element-9e14a2f .elementor-toggle-item:last-child .elementor-tab-title,
.elementor-element-9e14a2f .elementor-toggle-item:last-child .elementor-tab-content {
  border-block-end: none !important;
  border-bottom: none !important;
}

/* ==========================================================================
   Homepage header + hero — tablet range (768–1279px)
   --------------------------------------------------------------------------
   On tablet the site swaps to the compact header (section e1237df) and the
   hero still uses the landscape banner. Two problems were fixed here:
     1. The tablet header carried a near-black gradient overlay (built for a
        dark hero) that cast an ugly shade over the light banner and made the
        header look like it was "not showing". Drop it and keep the burger
        dark, exactly as the mobile rules already do below 767px.
     2. The hero copy sat bottom-left over a left/right white wash. Per design,
        centre the copy + CTA, crop the banner centre-centre so both people
        stay in frame, and move the white wash to top+bottom so the header
        (top) and the headline (bottom) both read clearly over the photo.
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1279px) {
  /* 1 — kill the dark header overlay + force dark header icons */
  .elementor-element-e1237df > .elementor-background-overlay { display: none !important; }
  .elementor-element-e1237df .sc_layouts_menu_mobile_button .trx_addons_icon-menu::before,
  .elementor-element-e1237df .sc_layouts_iconed_text_icon,
  .elementor-element-e1237df a { color: #2A2F2C !important; }

  /* 2 — the people sit on the centre-RIGHT of the landscape banner while the
     left third is empty window/floor. On the tall tablet viewport a true
     centre crop landed on that empty area, so bias the crop rightwards to keep
     both the therapist and the patient in frame. */
  .saburi-hero__media img { object-position: 72% center; }

  /* white wash on top (header legibility) + bottom (headline legibility and a
     clean melt into the white insurance strip below), clear middle for the photo */
  .saburi-hero__scrim {
    background: linear-gradient(180deg,
        rgba(255,255,255,0.92) 0%,
        rgba(255,255,255,0.45) 16%,
        rgba(255,255,255,0)   34%,
        rgba(255,255,255,0)   48%,
        rgba(255,255,255,0.85) 74%,
        rgba(255,255,255,1)   100%);
  }

  /* centre the copy block + everything in it, anchored to the bottom wash */
  .saburi-hero__inner {
    align-items: flex-end;
    justify-content: center;
  }
  .saburi-hero__content {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 0 64px;
    text-align: center;
  }
  .saburi-hero__subtitle {
    margin-left: auto;
    margin-right: auto;
  }
}

/* ==========================================================================
   Desktop header (>=1280px) — logo left, nav + CTA grouped right.
   --------------------------------------------------------------------------
   The nav was previously yanked out of flow and absolutely centred against the
   header container. That pinned the widget box (not the visible menu) to the
   centre, so the links read ~12px left of true centre, and the theme's 8.5px
   vertical widget margin dropped the nav ~8.5px below the logo/button centre
   line. Back to the original flow layout: the right column is a centred flex
   row, so the nav and the "Let's Talk" button sit on one baseline next to each
   other and the logo stays left. The 1.7vw gap between nav and button comes
   from the theme's own per-widget margin, so nothing extra is needed here.

   Only the vertical centring is asserted, to keep logo / nav / button on a
   single centre line regardless of their differing intrinsic heights. Applies
   to the standard header (61b5914) and the sticky header (55e7547); below
   1280px the compact burger header takes over.
   ========================================================================== */
@media (min-width: 1280px) {
  .elementor-element-61b5914 > .elementor-container,
  .elementor-element-55e7547 > .elementor-container {
    align-items: center;
  }

  .elementor-element-af5d127 > .elementor-widget-wrap,
  .elementor-element-e81fef9 > .elementor-widget-wrap,
  .elementor-element-14b7fe3 > .elementor-widget-wrap,
  .elementor-element-a991d20 > .elementor-widget-wrap {
    display: flex;
    align-items: center;
    align-content: center;
  }

  /* The theme gives header widgets an 8.5px block margin. It is symmetric, so
     it does not shift the flex centring, but zeroing it keeps the nav's own
     box flush with the button's and avoids the row growing taller than the
     72px header bar. */
  .elementor-element-6045eca,
  .elementor-element-39d42a5,
  .elementor-element-e131658,
  .elementor-element-3889059 {
    margin-top: 0;
    margin-bottom: 0;
  }
}

/* ==========================================================================
   Footer redesign — light sage footer (replaces the heavy olive slab)
   --------------------------------------------------------------------------
   The solid #78933D fill read heavier/darker than the (same-green) logo, so
   the footer now sits on the site's soft sage (#EFF2E7) with dark brand ink
   and green links — airy, on-palette, and it lets the logo/content breathe.
   Applies site-wide so every page's footer stays consistent. !important beats
   the per-page inline #78933D fill in each page's wp-custom-css block.
   ========================================================================== */
footer.footer_wrap.footer_custom,
footer.footer_wrap .elementor-element-108e4b21 {
  background-color: #EFF2E7 !important;
  background-image: none !important;
}

/* base text tone */
footer.footer_wrap,
footer.footer_wrap p,
footer.footer_wrap .sc_layouts_item { color: #3a4038 !important; }

/* headline + section headings in dark brand ink */
footer.footer_wrap h2.saburi-foot-headline { color: #2A2F2C !important; }
footer.footer_wrap .sc_item_title_text,
footer.footer_wrap h6.sc_item_title { color: #2A2F2C !important; }

/* links: brand green, hover to dark ink */
footer.footer_wrap .saburi-foot-quicklinks a,
footer.footer_wrap .title-heading a,               /* email */
footer.footer_wrap .elementor-element-1dd2c10 a {  /* phone */
  color: #5f7d2f !important;
  transition: color .2s ease;
}
footer.footer_wrap .saburi-foot-quicklinks a:hover,
footer.footer_wrap .title-heading a:hover,
footer.footer_wrap .elementor-element-1dd2c10 a:hover { color: #2A2F2C !important; }

/* address labels + lines */
footer.footer_wrap .saburi-foot-address-text .saburi-foot-tag { color: #2A2F2C !important; }
footer.footer_wrap .saburi-foot-address-text .saburi-foot-addr { color: #4a5147 !important; }

/* social icons: dark outline on light bg, fill brand green on hover */
footer.footer_wrap .saburi-fsoc a {
  border-color: rgba(42, 47, 44, 0.28) !important;
  color: #2A2F2C !important;
}
footer.footer_wrap .saburi-fsoc a:hover {
  background: #78933D !important;
  border-color: #78933D !important;
  color: #ffffff !important;
}

/* divider line — subtle dark hairline on the light bg */
footer.footer_wrap .elementor-divider-separator {
  border-top-color: rgba(42, 47, 44, 0.14) !important;
  border-block-start-color: rgba(42, 47, 44, 0.14) !important;
}

/* bottom bar: copyright + credit muted dark, credit link green (beats the
   inline color:white on the credit link) */
footer.footer_wrap .elementor-element-7de25e5 p,
footer.footer_wrap .elementor-element-e5105c1 { color: #6b7264 !important; }
footer.footer_wrap .elementor-element-e5105c1 a { color: #5f7d2f !important; }
footer.footer_wrap .elementor-element-e5105c1 a:hover { color: #2A2F2C !important; }

/* ==========================================================================
   Homepage "Our Services" — restore the 3-up grid
   --------------------------------------------------------------------------
   The three cards are inline-block columns (.trx_addons_column-1_3, 33.33%
   each). When index.html was reformatted, newlines between the column <div>s
   introduced inline-block whitespace gaps, so 3×33.33% + gaps overflowed and
   the third card dropped to a second row (2-up, 1-down). Lay the wrapper out
   with flex: whitespace text nodes are ignored, so the three cards sit on one
   row again. Columns keep their 33.33% width and stack on mobile (where the
   theme sets them to width:100%). Scoped to the homepage services section.
   ========================================================================== */
body.home .elementor-element-our-services-home .sc_services_columns_wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
