/* Generated from the captured Sweet Homes component stylesheet. */
:root {

  --sh-green: #157063;

  --sh-text: #4A4A4A;

}

body { color: var(--sh-text, #4A4A4A); }



/* ================================================

   SWEET HOMES EDINBURGH, MASTER CSS

   Consolidates: 16113, 15890, 15888, 15887,

   15837, 15836, 15727, 15709 + contrast fixes

   ================================================ */



/* ------------------------------------------------

   1. HIDE OLD NAV (15836)

   ------------------------------------------------ */

.sh-topbar,

.sh-topbar-wrap,

[class*="sh-topbar"] {

    display: none !important;

    visibility: hidden !important;

    height: 0 !important;

    overflow: hidden !important;

}

#site-header,

.header-footer-group,

.header-navigation-wrapper,

.primary-menu-wrapper,

.mobile-menu-wrapper {

    display: none !important;

    height: 0 !important;

    overflow: hidden !important;

}

.wp-block-navigation,

.wp-block-navigation__responsive-container {

    display: none !important;

}

body.sh-topbar-active {

    padding-top: 0 !important;

}



/* ------------------------------------------------

   2. HOMEPAGE LAYOUT (15888)

   ------------------------------------------------ */

.sh-dropdown {

    top: 100% !important;

    padding-top: 8px !important;

}

.elementor-element-64ae086 > .elementor-container {

    padding-top: 80px !important;

}

body.home .elementor-top-section + .elementor-top-section {

    margin-top: 48px;

}

body.home .elementor-top-section + .elementor-top-section[data-settings*='background_background'] {

    margin-top: 0;

}



/* ------------------------------------------------

   3. HERO OVERLAY (15887)

   ------------------------------------------------ */

.elementor-element-7a6f4db .elementor-background-overlay {

    opacity: 0.55 !important;

    background-color: rgba(0, 0, 0, 0.65) !important;

    z-index: 0 !important;

}

.elementor-element-7a6f4db .elementor-container {

    position: relative;

    z-index: 1;

}



/* ------------------------------------------------

   4. MOBILE TAP TARGETS (15837)

   ------------------------------------------------ */

.sh-hamburger {

    min-width: 48px;

    min-height: 48px;

    display: flex;

    align-items: center;

    justify-content: center;

}

.sh-mobile-nav__link,

.sh-mobile-accordion a,

.sh-mobile-phone a {

    min-height: 48px;

    display: flex;

    align-items: center;

    padding-top: 8px;

    padding-bottom: 8px;

}

.sh-nav__link--cta-mobile {

    min-height: 48px;

    display: flex;

    align-items: center;

    justify-content: center;

}

.sh-social a {

    min-width: 48px;

    min-height: 48px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

}



/* ------------------------------------------------

   5. REVIEW CAROUSEL (15890)

   ------------------------------------------------ */

.sh-trust-widgets {

    background: #4A4A4A !important;

}

.sh-tw-platform img {

    height: 48px !important;

    width: auto !important;

}

.sh-tw-plat-name { font-size: 21px !important; }

.sh-tw-plat-score { font-size: 18px !important; }

.sh-tw-link { font-size: 17px !important; }

.sh-ccard-name { font-size: 21px !important; }

.sh-ccard-date { font-size: 16px !important; color: #595959 !important; }

.sh-ccard-text { font-size: 17px !important; }

.sh-ccard-badge img {

    width: 44px !important;

    height: auto !important;

}

.sh-ccard-badge svg {

    width: 36px !important;

    height: 36px !important;

}

.sh-tw-platform svg {

    width: 48px !important;

    height: 48px !important;

}

.sh-ccard-avatar,

div.sh-ccard-avatar,

div.sh-ccard-avatar[style*="background"] {

    color: #F3EBE0 !important;

    -webkit-text-fill-color: #F3EBE0 !important;

    font-weight: 700 !important;

}

.sh-trust-widgets .sh-tw-link {

    color: #a3d9cd !important;

    -webkit-text-fill-color: #a3d9cd !important;

}



/* ------------------------------------------------

   6. KITCHEN PAGE HERO (15890)

   ------------------------------------------------ */

.elementor-16078 .elementor-element.elementor-element-40ef9f9 {

    background-image: url('/wp-content/uploads/2026/01/Kitchen-Fitting-4.webp') !important;

    background-size: cover !important;

    background-position: center center !important;

    min-height: 90vh !important;

    position: relative !important;

    display: flex !important;

}

.elementor-16078 .elementor-element.elementor-element-40ef9f9 > .elementor-background-overlay {

    background-color: rgba(0,0,0,0.58) !important;

}



/* ------------------------------------------------

   7. CITY COLOUR SYSTEM (15727)

   ------------------------------------------------ */

.sh-city-edinburgh .elementor-widget-heading h2,

.sh-city-edinburgh .sh-accent {

    border-bottom-color: var(--sh-green);

}

.sh-city-edinburgh .sh-city-cta,

.sh-city-edinburgh .elementor-button.sh-city-cta {

    background-color: var(--sh-green);

    color: #F3EBE0;

}

.sh-city-edinburgh .sh-city-cta:hover {

    background-color: #0d5549;

}

.sh-city-glasgow .elementor-widget-heading h2,

.sh-city-glasgow .sh-accent {

    border-bottom-color: #d4a843;

}

.sh-city-glasgow .sh-city-cta,

.sh-city-glasgow .elementor-button.sh-city-cta {

    background-color: #d4a843;

    color: #4A4A4A;

}

.sh-city-glasgow .sh-city-cta:hover {

    background-color: #c29a38;

}

.sh-city-stirling .elementor-widget-heading h2,

.sh-city-stirling .sh-accent {

    border-bottom-color: #9b2335;

}

.sh-city-stirling .sh-city-cta,

.sh-city-stirling .elementor-button.sh-city-cta {

    background-color: #9b2335;

    color: #F3EBE0;

}

.sh-city-stirling .sh-city-cta:hover {

    background-color: #832030;

}



/* ------------------------------------------------

   8. COOKIE TABLE (15709)

   ------------------------------------------------ */

.wpconsent-cookie-policy h2,

.entry-content .wpconsent-cookie-policy h2,

.elementor-widget-container .wpconsent-cookie-policy h2 {

    font-size: 1.6em !important;

    font-weight: 600 !important;

    color: #4A4A4A !important;

    margin-top: 2em !important;

    margin-bottom: 0.4em !important;

    padding-bottom: 0.3em !important;

    border-bottom: 2px solid var(--sh-green) !important;

}

.wpconsent-cookie-policy h3,

.entry-content .wpconsent-cookie-policy h3,

.elementor-widget-container .wpconsent-cookie-policy h3 {

    font-size: 1.05em !important;

    font-weight: 600 !important;

    color: #444 !important;

    margin-top: 1.2em !important;

    margin-bottom: 0.3em !important;

}

.wpconsent-cookie-policy p,

.entry-content .wpconsent-cookie-policy p,

.elementor-widget-container .wpconsent-cookie-policy p {

    color: #555 !important;

    font-size: 0.95em !important;

    line-height: 1.6 !important;

    margin-bottom: 0.8em !important;

}

.wpconsent-cookie-policy table,

.entry-content .wpconsent-cookie-policy table,

.elementor-widget-container .wpconsent-cookie-policy table {

    width: 100% !important;

    border-collapse: collapse !important;

    margin: 0.8em 0 1.8em !important;

    font-size: 0.9em !important;

    border: 1px solid #e5e5e5 !important;

    border-radius: 6px !important;

    overflow: hidden !important;

}

.wpconsent-cookie-policy table th,

.entry-content .wpconsent-cookie-policy table th,

.elementor-widget-container .wpconsent-cookie-policy table th {

    background: #f8f9fa !important;

    text-align: left !important;

    padding: 12px 16px !important;

    font-weight: 600 !important;

    color: #4A4A4A !important;

    border-bottom: 2px solid var(--sh-green) !important;

    font-size: 0.95em !important;

}

.wpconsent-cookie-policy table td,

.entry-content .wpconsent-cookie-policy table td,

.elementor-widget-container .wpconsent-cookie-policy table td {

    padding: 10px 16px !important;

    border-bottom: 1px solid #eee !important;

    vertical-align: top !important;

    color: #444 !important;

    line-height: 1.5 !important;

}

.wpconsent-cookie-policy table tr:nth-child(even) td,

.entry-content .wpconsent-cookie-policy table tr:nth-child(even) td,

.elementor-widget-container .wpconsent-cookie-policy table tr:nth-child(even) td {

    background: #fafbfc !important;

}

.wpconsent-cookie-policy table tr:hover td,

.entry-content .wpconsent-cookie-policy table tr:hover td,

.elementor-widget-container .wpconsent-cookie-policy table tr:hover td {

    background: #f0faf9 !important;

}

.wpconsent-cookie-policy table tr:last-child td,

.entry-content .wpconsent-cookie-policy table tr:last-child td,

.elementor-widget-container .wpconsent-cookie-policy table tr:last-child td {

    border-bottom: none !important;

}

.wpconsent-cookie-policy a,

.entry-content .wpconsent-cookie-policy a,

.elementor-widget-container .wpconsent-cookie-policy a {

    color: var(--sh-green) !important;

    text-decoration: none !important;

}

.wpconsent-cookie-policy a:hover,

.entry-content .wpconsent-cookie-policy a:hover,

.elementor-widget-container .wpconsent-cookie-policy a:hover {

    text-decoration: underline !important;

}

@media (max-width: 768px) {

    .wpconsent-cookie-policy table,

    .entry-content .wpconsent-cookie-policy table,

    .elementor-widget-container .wpconsent-cookie-policy table {

        display: block !important;

        overflow-x: auto !important;


    }

    .wpconsent-cookie-policy table th,

    .wpconsent-cookie-policy table td,

    .entry-content .wpconsent-cookie-policy table th,

    .entry-content .wpconsent-cookie-policy table td,

    .elementor-widget-container .wpconsent-cookie-policy table th,

    .elementor-widget-container .wpconsent-cookie-policy table td {

        padding: 8px 10px !important;

        font-size: 0.85em !important;

    }

}



/* ------------------------------------------------

   9. CONTRAST FIXES

   ------------------------------------------------ */



/* Inline green text on white */

[style*="color:#157063"],

[style*="color: #157063"],

[style*="color:rgb(78, 205, 196)"],

[style*="color: rgb(78, 205, 196)"] {

    color: var(--sh-green) !important;

    -webkit-text-fill-color: var(--sh-green) !important;

}



/* Grey subtext */

[style*="color:#888888"],

[style*="color: #888888"] {

    color: #595959 !important;

    -webkit-text-fill-color: #595959 !important;

}






/* Dark section headings */

.elementor-element-12afafb .elementor-heading-title,

.elementor-element-5f477db .elementor-heading-title,

.elementor-element-3b438ce .elementor-heading-title {

    color: #F3EBE0 !important;

    -webkit-text-fill-color: #F3EBE0 !important;

}



/* Mailto link in section 68eadf3 */

.elementor-element-68eadf3 a[href^="mailto"] {

    color: var(--sh-green) !important;

    -webkit-text-fill-color: var(--sh-green) !important;

}



/* Elementor CTA buttons - dark text on orange passes contrast */

.elementor-button.elementor-button-link,

.elementor-button.elementor-button-link .elementor-button-text,

.elementor-button.elementor-button-link span {

    color: #4A4A4A !important;

    -webkit-text-fill-color: #4A4A4A !important;

}



/* Cookie button */

[part="wpconsent-button-accept"],

button.wpconsent-accept-all,

#wpconsent-accept-all {

    background-color: var(--sh-orange, #F07820) !important;

    color: #4A4A4A !important;

    -webkit-text-fill-color: #4A4A4A !important;

}



body,p,li,td,th,input,textarea,select,button{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif!important;}

/* Navbar - darken background so white text passes AA */

.sh-navbar {

    background: #077a7e !important;

}
/* Guide page navbar override - charcoal */
.page-id-16648 .sh-navbar {
    background: #4A4A4A !important;
}



/* Navbar text elements - white on dark green passes */

.sh-stars-badge__label {

    font-size: 14px !important;

    color: #F3EBE0 !important;

    -webkit-text-fill-color: #F3EBE0 !important;

}

.sh-hamburger__label {

    font-size: 14px !important;

    color: #F3EBE0 !important;

    -webkit-text-fill-color: #F3EBE0 !important;

}



/* Mobile CTA - dark text on orange */

a.sh-nav__link--cta-mobile {

    color: #4A4A4A !important;

    -webkit-text-fill-color: #4A4A4A !important;

}



/* Hamburger button - remove semi-transparent bg that reduces contrast */

.sh-hamburger {

    background: rgba(0,0,0,0.2) !important;

}



/* Cookie button - WPConsent settings override needed */

#wpconsent-accept-all,

.wpconsent-accept-all,

[part="wpconsent-button-accept"] {

    background: #F07820 !important;

    color: #F3EBE0 !important;

    -webkit-text-fill-color: #F3EBE0 !important;

}



/* Avatar */

.sh-ccard-avatar {

    color: #F3EBE0 !important;

    -webkit-text-fill-color: #F3EBE0 !important;

}



/* ================================================

   10. CTA SECTION, UNIFORM ACROSS ALL PAGES

   Styled here only. No per-page CTA CSS anywhere.

   ================================================ */

.cta-section{background:#4A4A4A!important;color:#F3EBE0!important;padding:80px 24px!important;text-align:center!important;border-radius:12px!important}

.cta-section h2{color:#F3EBE0!important;-webkit-text-fill-color:#F3EBE0!important;font-size:32px!important;font-weight:700!important;margin-bottom:16px!important}

.cta-section .cta-sub{color:rgba(255,255,255,0.93)!important;-webkit-text-fill-color:rgba(255,255,255,0.93)!important;font-size:18px!important;max-width:640px!important;margin:0 auto 40px!important;line-height:1.7!important}

.cta-section .container{margin:0 auto!important;width:100%!important;max-width:860px!important;}
.cta-options{display:flex!important;gap:24px!important;max-width:860px!important;margin:0 auto!important;justify-content:center!important}
.cta-single{display:flex!important;justify-content:center!important;align-items:center!important;gap:16px!important;flex-wrap:wrap!important;margin:0 auto 24px!important;text-align:center!important;}

.cta-option{background:rgba(255,255,255,0.08)!important;border:1px solid rgba(255,255,255,0.25)!important;border-radius:12px!important;padding:32px!important;flex:1!important;display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important}

.cta-option h3{color:#F3EBE0!important;-webkit-text-fill-color:#F3EBE0!important;font-size:24px!important;font-weight:700!important;margin-bottom:12px!important}

.cta-option p{color:#F3EBE0!important;-webkit-text-fill-color:#F3EBE0!important;font-size:16px!important;line-height:1.6!important;margin-bottom:20px!important}

.cta-email{color:#a3d9cd!important;-webkit-text-fill-color:#a3d9cd!important;font-size:16px!important;font-weight:500!important;text-decoration:none!important;margin-bottom:12px!important;display:inline-block!important}

.cta-button{display:inline-block!important;background:#F07820!important;color:#FFFFFF!important;-webkit-text-fill-color:#FFFFFF!important;padding:14px 28px!important;border-radius:6px!important;font-size:16px!important;font-weight:600!important;text-decoration:none!important;margin-top:auto!important}

.cta-button:hover{background:#C8785E!important}

@media(max-width:767px){.cta-options{flex-direction:column!important}}



/* ------------------------------------------------

   11. SERVICE PAGE TYPOGRAPHY

   Body 18px, h3 13px, h2 2rem locked WT12

   Targets raw HTML sections on elementor_canvas pages

   ------------------------------------------------ */














/* Related services header colour from --sh-green */

body.page-template-elementor_canvas .related-services h3 {

  color: var(--sh-green) !important;

  -webkit-text-fill-color: var(--sh-green) !important;

}



/* ------------------------------------------------

   12. CITY PAGE SKYLINE HERO FIX

   Glasgow + Stirling skyline illustrations:

   full width, pinned to bottom of hero, text on top

   Skyline dimmed via opacity so white text stays readable

   ------------------------------------------------ */

body.sh-city-glasgow .hero,

body.sh-city-stirling .hero {

  position: relative !important;

  flex-wrap: wrap !important;

  background: linear-gradient(

    rgba(0, 0, 0, 0.7),

    rgba(0, 0, 0, 0.7)

  ) !important;

}



body.sh-city-glasgow .hero picture,

body.sh-city-stirling .hero picture {

  position: absolute !important;

  bottom: 0 !important;

  left: 0 !important;

  width: 100% !important;

  height: auto !important;

  z-index: 0 !important;

  pointer-events: none !important;

  opacity: 0.35 !important;

}



body.sh-city-glasgow .hero picture img,

body.sh-city-stirling .hero picture img {

  width: 100% !important;

  height: auto !important;

  object-fit: contain !important;

  object-position: bottom center !important;

  display: block !important;

}



body.sh-city-glasgow .hero > .container,

body.sh-city-stirling .hero > .container {

  position: relative !important;

  z-index: 2 !important;

  width: 100% !important;

}



/* ------------------------------------------------

   13. TENEMENT TRUST-BAR BR TAG FIX

   Stray br tags injected at render time break pill layout

   ------------------------------------------------ */

.trust-bar br {

  display: none !important;

}



/* ------------------------------------------------

   14. CANONICAL SECTION PATTERNS (icon-card + differentiator-grid)

   ------------------------------------------------ */

.icon-card-grid {

  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));

  gap: 20px;

  margin-top: 20px;

}

.icon-card {

  background: #fff;

  border: 1px solid var(--sh-border, #ebebeb);

  border-radius: 12px;

  padding: 20px 15px;

  text-align: center;

  transition: box-shadow 0.2s ease;

}

.icon-card:hover {

  box-shadow: 0 4px 16px rgba(0,0,0,0.08);

}

.icon-box {

  width: 56px;

  height: 56px;

  margin: 0 auto 16px;

  background: var(--sh-green, #157063);

  border-radius: 50%;

  display: flex;

  align-items: center;

  justify-content: center;

}

.icon-box svg {

  width: 28px;

  height: 28px;

  fill: #fff;

}

.icon-card h3 {

  font-size: 18px;

  margin-bottom: 5px;

  color: var(--sh-charcoal, #4A4A4A);

}

.icon-card p {

  font-size: 15px;

  color: var(--sh-text-light, #4A4A4A);

  line-height: 1.6;

}

.differentiator-grid, .diff-grid {

  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));

  gap: 20px;

  margin-top: 20px;

}

.differentiator-card, .diff-card {

  background: var(--sh-warm-grey, #F3EBE0);

  border-radius: 12px;

  padding: 20px 15px;

}

.differentiator-card h3, .diff-card h3 {

  font-size: 18px;

  color: var(--sh-charcoal, #4A4A4A);

  margin-bottom: 8px;

}

.differentiator-card p, .diff-card p {

  font-size: 15px;

  color: var(--sh-text, #4A4A4A);

  line-height: 1.6;

  margin-bottom: 16px;

}

.differentiator-card blockquote, .diff-card blockquote {

  font-style: italic;

  color: var(--sh-text-light, #4A4A4A);

  font-size: 14px;

  border-left: 3px solid var(--sh-green, #157063);

  padding-left: 16px;

  margin: 0;

}

.differentiator-card cite, .diff-card cite {

  font-size: 13px;

  font-style: normal;

  color: var(--sh-text-light, #4A4A4A);

}

.why-sweet-homes, .what-we-build {

  padding: 40px 0;

}

.why-sweet-homes .container, .what-we-build .container {

  max-width: 1200px;

  margin: 0 auto;

  padding: 0 15px;

}

.why-sweet-homes h2, .what-we-build h2 {

  font-size: 32px;

  color: var(--sh-charcoal, #4A4A4A);

  margin-bottom: 5px;

}

@media (max-width: 768px) {

  .icon-card-grid, .differentiator-grid, .diff-grid {

    grid-template-columns: 1fr;

    gap: 13px;

  }

}

/* ================================================

   15. ELEMENTOR INLINE STYLE OVERRIDES

   Targets classless accent-bar divs with inline

   background: #157063 inside known sections.

   Forces them onto var(--sh-green) so a future

   brand colour change propagates everywhere.

   ================================================ */

.why-sweet-homes .container > div[style*="background: #157063"],

.neighbourhoods .container > div[style*="background: #157063"] {

  background: var(--sh-green) !important;

}





/* ================================================

   16. SH-RELATED CARDS

   ================================================ */

.sh-related .related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:15px;}

.sh-related .related-card{display:flex;flex-direction:column;border:1px solid var(--sh-border-light,#E8EDF0);border-radius:12px;padding:24px;text-decoration:none;color:var(--sh-text,#4A4A4A) !important;background:#fff;transition:border-color .2s,box-shadow .2s;}

.sh-related .related-card:hover{border-color:var(--sh-green,#157063);box-shadow:0 4px 16px rgba(0,0,0,.08);}

.sh-related .related-card h3{font-size:18px !important;font-weight:600;color:var(--sh-green,#157063);margin:0 0 8px;}

.sh-related .related-card .card-body{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;flex:1;margin-bottom:16px;}

.sh-related .related-card .cta{font-size:14px;font-weight:600;color:var(--sh-green,#157063);}

@media(max-width:767px){.sh-related .related-grid{grid-template-columns:1fr;}}

/* Hero overlay darkening for light photos */

.hero{position:relative;border-radius:12px;overflow:hidden;}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to right,rgba(0,0,0,0.55) 0%,rgba(0,0,0,0.15) 55%,transparent 100%),linear-gradient(to top,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.2) 40%,transparent 70%);}

.hero .container{z-index:3 !important;}

.hero picture{z-index:0;}



/* ================================================

   17. SH-TRUST-BAR

   ================================================ */

.sh-trust-bar{background:var(--sh-green,#157063);padding:14px 0;border-bottom:none;}

.sh-trust-bar .trust-items{display:flex;flex-wrap:wrap;justify-content:center;gap:20px 32px;}.sh-trust-bar .trust-break{flex-basis:100%;height:0;}

.sh-trust-bar .trust-item{display:flex;align-items:center;gap:7px;font-size:14px;color:#F3EBE0;}

.sh-trust-bar .trust-item svg{width:22px;height:22px;fill:#ffffff;flex-shrink:0;}.sh-trust-bar .trust-tt-logo{height:24px;width:auto;filter:brightness(0) invert(1);display:block;}.sh-trust-bar .trust-item--tt{line-height:0;}

@media(max-width:600px){.sh-trust-bar .trust-items{gap:12px 20px;}.sh-trust-bar .trust-item{font-size:14px;}}



/* ================================================

   18. SH-TESTIMONIALS

   ================================================ */

.sh-testimonials{padding:56px 0;background:#F3EBE0;}

.sh-testimonials h2{font-size:26px !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:20px;}

.sh-testimonials .testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

.sh-testimonials .testimonial{margin:0;background:#fff;border-radius:12px;padding:28px 24px;border:1px solid var(--sh-border,#E5E1DC);display:flex;flex-direction:column;}

.sh-testimonials .testimonial p{font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.7;flex:1;margin:0 0 16px;font-style:italic;}

.sh-testimonials .testimonial cite{font-size:14px;font-style:normal;font-weight:600;color:var(--sh-green,#157063);}

@media(max-width:767px){.sh-testimonials .testimonials-grid{grid-template-columns:1fr;}}



/* == 19: Process Steps == */

.sh-steps .process-steps{list-style:none;margin-top:32px;counter-reset:step-counter;}

.sh-steps .process-steps li{position:relative;padding-left:88px;margin-bottom:36px;}

.sh-steps .process-steps li::before{content:counter(step-counter);counter-increment:step-counter;position:absolute;left:0;top:0;width:60px;height:60px;background:var(--sh-green,#157063);color:#F3EBE0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;}

.sh-steps .process-steps li::after{content:"";position:absolute;left:29px;top:64px;width:2px;height:28px;background:#e0e0e0;}

.sh-steps .process-steps li:last-child::after{display:none;}

.sh-steps .process-steps h3{font-size:19px !important;font-weight:600;color:var(--sh-green,#157063);margin-bottom:6px;}

.sh-steps .process-steps p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;}

@media(max-width:600px){.sh-steps .process-steps li{padding-left:64px;}.sh-steps .process-steps li::before{width:44px;height:44px;font-size:17px;}.sh-steps .process-steps li::after{left:21px;top:48px;}}



/* == 20: Areas == */

.sh-areas{background:var(--sh-green,#157063);padding:60px 0;}

.sh-areas h2{color:#F3EBE0;font-size:clamp(28px,3.5vw,38px) !important;font-weight:700;margin-bottom:12px;text-align:center;}

.sh-areas p{color:rgba(255,255,255,0.85);max-width:680px;margin-bottom:28px;margin-left:auto;margin-right:auto;text-align:center;}

.sh-area-pills{display:flex;flex-wrap:wrap;gap:14px 20px;margin-bottom:24px;justify-content:center;}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap;}
.sh-area-pill{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.35);color:#F3EBE0;padding:10px 24px;border-radius:24px;font-size:15px;font-weight:500;letter-spacing:0.01em;}

.sh-areas-outro{color:rgba(255,255,255,0.8);font-size:14px;margin-bottom:0;text-align:center;}

@media(max-width:767px){.sh-areas{padding:40px 0;}}



/* == 21: SH-INTRO == */

.sh-intro{padding:56px 0 48px;}

.sh-intro h2{font-size:clamp(28px,3.5vw,38px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:16px;}

.sh-intro p{font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.7;max-width:720px;margin-bottom:16px;}



/* == 22: SH-DIFFERENTIATORS == */

.sh-differentiators{padding:56px 0;background:#F3EBE0;}

.sh-differentiators h2{font-size:clamp(28px,3.5vw,38px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:5px;}

.sh-differentiators>div>p{max-width:720px;margin-bottom:20px;color:var(--sh-text,#4A4A4A);}

.sh-differentiators .icon-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

.sh-differentiators .icon-card{background:#fff;border-radius:12px;padding:28px 24px;border:1px solid var(--sh-border,#E5E1DC);}

.sh-differentiators .icon-box{width:48px;height:48px;background:var(--sh-green,#157063);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}

.sh-differentiators .icon-box svg{width:24px;height:24px;fill:#fff;}

.sh-differentiators .icon-card h3{font-size:20px !important;font-weight:600;color:var(--sh-charcoal,#4A4A4A);margin-bottom:8px;}

.sh-differentiators .icon-card p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;}

@media(max-width:767px){.sh-differentiators .icon-card-grid{grid-template-columns:1fr;}}



/* == 23: SH-SERVICES == */

.sh-services{padding:56px 0;}

.sh-services h2{font-size:clamp(28px,3.5vw,38px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:5px;}

.sh-services>div>p{max-width:720px;margin-bottom:20px;color:var(--sh-text,#4A4A4A);}

.sh-services .icon-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

.sh-services .icon-card-grid.two-row{grid-template-columns:repeat(3,1fr);}

.sh-services .icon-card{background:#F3EBE0;border-radius:12px;padding:28px 24px;border:1px solid var(--sh-border-light,#E8EDF0);}

.sh-services .icon-box{width:48px;height:48px;background:var(--sh-green,#157063);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}

.sh-services .icon-box svg{width:24px;height:24px;fill:#fff;}

.sh-services .icon-card h3{font-size:20px !important;font-weight:600;color:var(--sh-charcoal,#4A4A4A);margin-bottom:8px;}

.sh-services .icon-card p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;}

@media(max-width:767px){.sh-services .icon-card-grid,.sh-services .icon-card-grid.two-row{grid-template-columns:1fr;}}



/* == 24: SH-PRICING == */

.sh-pricing{padding:56px 0;background:#F3EBE0;}

.sh-pricing h2{font-size:clamp(28px,3.5vw,38px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:5px;}

.sh-pricing>div>p{max-width:720px;margin-bottom:20px;color:var(--sh-text,#4A4A4A);}

.sh-pricing .pricing-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;border:1px solid var(--sh-border,#E5E1DC);margin-bottom:15px;}

.sh-pricing .pricing-table thead th{text-align:left;padding:14px 20px;font-size:14px;background:var(--sh-charcoal,#4A4A4A);color:#F3EBE0;font-weight:600;}

.sh-pricing .pricing-table td{padding:16px 20px;font-size:15px;border-bottom:1px solid var(--sh-border,#E5E1DC);color:var(--sh-text,#4A4A4A);}

.sh-pricing .pricing-table tr:last-child td{border-bottom:none;}

.sh-pricing .fixed-price-note{background:#fff;border-left:4px solid var(--sh-green,#157063);padding:20px 24px;border-radius:8px;font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;}

@media(max-width:600px){.sh-pricing .pricing-table td,.sh-pricing .pricing-table th{padding:12px 14px;font-size:14px;}}
.sh-pricing-sub-h3{font-size:clamp(18px,2.2vw,22px);color:var(--sh-charcoal,#4A4A4A);margin:40px 0 14px;}
.sh-pricing-note{max-width:720px;font-size:15px;color:var(--sh-text,#4A4A4A);margin-bottom:20px;line-height:1.6;}
.pricing-table--fixture thead th:nth-child(3),.pricing-table--fixture td:nth-child(3){color:var(--sh-text-light,#4A4A4A);font-size:14px;}
.sh-options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:24px;}
.sh-options-card{background:#fff;border:1px solid var(--sh-border,#E5E1DC);border-radius:8px;padding:24px;}
.sh-options-card h4{font-size:16px;font-weight:700;color:var(--sh-charcoal,#4A4A4A);margin-bottom:10px;}
.sh-options-card p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;margin:0;}
.sh-tips-list{list-style:none;padding:0;max-width:720px;margin-bottom:0;}
.sh-tips-list li{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;padding:14px 0 14px 28px;border-bottom:1px solid var(--sh-border,#E5E1DC);position:relative;}
.sh-tips-list li:first-child{border-top:1px solid var(--sh-border,#E5E1DC);}
.sh-tips-list li::before{content:"\2192";position:absolute;left:0;color:var(--sh-green,#157063);font-weight:700;}
.sh-tips-list li strong{color:var(--sh-charcoal,#4A4A4A);}
.sh-pricing-context{max-width:720px;margin-bottom:24px;}
.sh-pricing-context p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;margin-bottom:16px;}
.sh-pricing-context p:last-child{margin-bottom:0;font-style:italic;}
body.page-template-elementor_canvas section.sh-pricing .sh-tips-list li,.sh-pricing .sh-options-card p{font-size:15px;}



/* == 25: SH-FAQ == */

.sh-faq{padding:56px 0;}

.sh-faq h2{font-size:clamp(28px,3.5vw,38px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:20px;}

.sh-faq .faq-item{background:var(--sh-warm-grey,#F3EBE0);border:1px solid var(--sh-border,#E5E1DC);border-radius:8px;padding:20px 24px;margin-bottom:12px;}

.sh-faq .faq-item strong{display:block;font-size:16px;color:var(--sh-charcoal,#4A4A4A);margin-bottom:8px;}

.sh-faq .faq-item p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;margin:0;}



/* == 26: SH-SECONDARY-DIFF (Why Choose Us cards with testimonial quotes) == */

.sh-secondary-diff{padding:56px 0;background:#ffffff;}

.sh-secondary-diff h2{font-size:clamp(28px,3.5vw,38px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:5px;}

.sh-secondary-diff>div>p{max-width:720px;margin-bottom:20px;color:var(--sh-text,#4A4A4A);}

.sh-secondary-diff .differentiator-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}

.sh-secondary-diff .differentiator-card{background:#fff;border-left:4px solid var(--sh-green,#157063);border-radius:8px;padding:28px;}

.sh-secondary-diff .differentiator-card h3{font-size:18px !important;color:var(--sh-green,#157063);margin-bottom:8px;}

.sh-secondary-diff .differentiator-card p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;margin-bottom:12px;}

.sh-secondary-diff .differentiator-card blockquote{background:#f5f5f5;padding:12px 16px;border-radius:4px;font-size:13px;font-style:italic;color:#555;margin:0;border:none;}

.sh-secondary-diff .differentiator-card cite{font-style:normal;font-weight:700;color:var(--sh-green,#157063);font-size:13px;}

@media(max-width:600px){.sh-secondary-diff .differentiator-grid{grid-template-columns:1fr;}}



/* == 27: SH-PORTFOLIO (Project gallery grid) == */

.sh-portfolio{padding:56px 0;}

.sh-portfolio h2{font-size:clamp(28px,3.5vw,38px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:5px;}

.sh-portfolio>div>p{max-width:720px;margin-bottom:20px;color:var(--sh-text,#4A4A4A);}

.sh-portfolio .project-gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:260px;gap:16px;}

.sh-portfolio .project-gallery figure{margin:0;overflow:hidden;border-radius:8px;position:relative;}
.sh-portfolio .project-gallery figure.portrait{grid-row:span 2;}

.sh-portfolio .project-gallery img{width:100%;height:100%;object-fit:cover;display:block;}

.sh-portfolio .project-gallery figcaption{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;font-size:13px;color:#F3EBE0;background:rgba(0,0,0,0.55);margin:0;}
@media(max-width:959px){.sh-portfolio .project-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px;}}
@media(max-width:599px){.sh-portfolio .project-gallery{grid-template-columns:1fr;grid-auto-rows:auto;}.sh-portfolio .project-gallery figure.portrait{grid-row:span 1;height:480px;}.sh-portfolio .project-gallery figure:not(.portrait){height:280px;}}






/* == 28: Background section containment == */
/* Sections with background colour/border need internal padding and border-radius so content does not sit flush against edges. */
.sh-areas>.container,
.sh-testimonials>.container,
.sh-pricing>.container,
.sh-secondary-diff>.container{padding-left:clamp(20px,4vw,48px);padding-right:clamp(20px,4vw,48px);}
.sh-areas,
.sh-testimonials,
.sh-pricing,
.sh-secondary-diff{border-radius:12px;overflow:hidden;}

/* == 29: Intro split layout (text + image) == */
.sh-intro .intro-split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.sh-intro .intro-text h2{margin-bottom:16px;}
.sh-intro .intro-text p{font-size:16px;line-height:1.7;color:var(--sh-text,#4A4A4A);margin-bottom:16px;}
/* AF fix: consistent service-intro photography - ref: design-system.md#container-rounding */
.sh-intro .intro-image{aspect-ratio:3/2;border-radius:12px;overflow:hidden;}
.sh-intro .intro-image picture{display:block;width:100%;height:100%;}
.sh-intro .intro-image img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;border-radius:12px;}
@media(max-width:768px){.sh-intro .intro-split{grid-template-columns:1fr;}.sh-intro .intro-image{order:-1;}}


/* == 29b: Stat callout (opt-in via intro_paras array entry with type=>stat) == */
.sh-intro .stat-callout{background:#FFFFFF;border-left:4px solid #1A3A5C;border-radius:8px;padding:28px 32px;margin:32px 0;max-width:720px;box-shadow:0 2px 12px rgba(26,58,92,0.08);}
.sh-intro .stat-callout .stat-figure-wrap{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:12px;}
.sh-intro .stat-callout .stat-figure{font-size:56px;font-weight:800;line-height:1;color:#1A3A5C;letter-spacing:-1px;}
.sh-intro .stat-callout .stat-caveat{font-size:16px;line-height:1.4;color:#4A4A4A;font-weight:500;flex:1;min-width:200px;}
.sh-intro .stat-callout .stat-support{font-size:15px;color:#4A4A4A;line-height:1.6;margin:0 0 12px;}
.sh-intro .stat-callout .stat-framing{font-size:16px;color:#4A4A4A;line-height:1.7;margin:0 0 12px;}
.sh-intro .stat-callout .stat-source{font-size:13px;color:#6B6B6B;margin:0;}
.sh-intro .stat-callout .stat-source a{color:#1A3A5C;text-decoration:underline;}
.sh-intro .stat-callout .stat-source a:hover{color:#0F2238;}
.sh-intro .stat-callout .stat-testimonial{margin:16px 0 0;padding:12px 0 0;border-top:1px solid #E8E3D8;font-style:italic;}
.sh-intro .stat-callout .stat-testimonial p{margin:0 0 4px;font-size:14px;color:#4A4A4A;line-height:1.5;}
.sh-intro .stat-callout .stat-testimonial cite{font-size:12px;color:#6B6B6B;font-style:normal;}
@media(max-width:600px){.sh-intro .stat-callout{padding:20px 20px;}.sh-intro .stat-callout .stat-figure{font-size:44px;}}

/* == 29c: Trust strip == */
.sh-intro .sh-trust-strip{margin:0 0 24px;padding:16px 20px;background:#FFFFFF;border-radius:8px;border:1px solid #E8E3D8;}
.sh-intro .sh-trust-strip .trust-strip-list{display:flex;flex-wrap:wrap;gap:24px;list-style:none;margin:0;padding:0;align-items:center;justify-content:flex-start;}
.sh-intro .sh-trust-strip .trust-strip-item{display:flex;flex-direction:column;line-height:1.3;}
.sh-intro .sh-trust-strip .trust-strip-item a{color:#1A3A5C;text-decoration:none;display:flex;flex-direction:column;}
.sh-intro .sh-trust-strip .trust-strip-item a:hover .trust-strip-label{text-decoration:underline;}
.sh-intro .sh-trust-strip .trust-strip-label{font-size:14px;font-weight:600;color:#1A3A5C;}
.sh-intro .sh-trust-strip .trust-strip-sub{font-size:12px;color:#6B6B6B;margin-top:2px;}
@media(max-width:600px){.sh-intro .sh-trust-strip .trust-strip-list{gap:12px;flex-direction:column;align-items:flex-start;}}

/* == 29d: Email capture microcopy == */
.sh-email-capture .sh-email-capture__microcopy{margin-top:12px;font-size:12px;color:#6B6B6B;line-height:1.4;text-align:center;}

/* == 29e: CTA practitioner block (named practitioner visual anchor beside phone CTA) == */
.cta-section .cta-practitioner{display:flex!important;align-items:center;gap:16px;max-width:560px;margin:20px auto 24px;padding:16px 20px;background:#FFFFFF!important;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,0.18);}
.cta-section .cta-practitioner__img{width:72px;height:72px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #1A3A5C;}
.cta-section .cta-practitioner__text{display:flex;flex-direction:column;line-height:1.35;text-align:left;}
.cta-section .cta-practitioner__name{font-size:17px!important;font-weight:700!important;color:#1A3A5C!important;-webkit-text-fill-color:#1A3A5C!important;}
.cta-section .cta-practitioner__role{font-size:13px!important;font-weight:500!important;color:#4A4A4A!important;-webkit-text-fill-color:#4A4A4A!important;margin-top:2px;letter-spacing:0.2px;}
.cta-section .cta-practitioner__line{font-size:14px!important;color:#4A4A4A!important;-webkit-text-fill-color:#4A4A4A!important;margin-top:6px;line-height:1.5;}
@media(max-width:600px){.cta-section .cta-practitioner{gap:12px;padding:12px 14px;max-width:100%;}.cta-section .cta-practitioner__img{width:60px;height:60px;}.cta-section .cta-practitioner__name{font-size:16px!important;}}


/* == 30: Global .container horizontal padding for all sh- sections == */
/* Every section rendered by the shortcode system gets consistent side padding. */
/* Sections with background colour (pricing, testimonials, areas, secondary-diff) already */
/* have their own padding via section 28 -- this covers all remaining sections. */
.sh-intro > .container,
.sh-differentiators > .container,
.sh-services > .container,
.sh-steps > .container,
.sh-faq > .container,
.sh-related > .container,
.sh-portfolio > .container,
.sh-trust-bar > .container,
.sh-hero > .container {
    padding-left: clamp(20px, 4vw, 48px);
    padding-right: clamp(20px, 4vw, 48px);
}


/* == 31: Outer page horizontal margins for all Track A slicer pages == */
/* Scoped to container 7e9c4419 -- only fires on Track A pages.        */
/* Gives breathing room between page content and screen edges.          */
.elementor-element-7e9c4419 section.hero,
.elementor-element-7e9c4419 .sh-trust-bar,
.elementor-element-7e9c4419 .sh-intro,
.elementor-element-7e9c4419 .sh-differentiators,
.elementor-element-7e9c4419 .sh-services,
.elementor-element-7e9c4419 .sh-steps,
.elementor-element-7e9c4419 .sh-pricing,
.elementor-element-7e9c4419 .sh-testimonials,
.elementor-element-7e9c4419 .sh-secondary-diff,
.elementor-element-7e9c4419 .sh-portfolio,
.elementor-element-7e9c4419 .sh-areas,
.elementor-element-7e9c4419 .sh-faq,
.elementor-element-7e9c4419 .sh-related,
.elementor-element-7e9c4419 .sh-disruption,
.elementor-element-7e9c4419 .sh-showcase,
.elementor-element-7e9c4419 .sh-cta,
.elementor-element-7e9c4419 .cta-section,
.elementor-element-7e9c4419 .sh-about-hero,
.elementor-element-7e9c4419 .sh-about-why,
.elementor-element-7e9c4419 .sh-about-beliefs,
.elementor-element-7e9c4419 .sh-about-process,
.elementor-element-7e9c4419 .sh-about-services,
.elementor-element-7e9c4419 .sh-about-proof,
.elementor-element-7e9c4419 .sh-about-cta-section {
    margin-left: clamp(4px, 2vw, 20px);
    margin-right: clamp(4px, 2vw, 20px);
    max-width: calc(100% - clamp(8px, 4vw, 40px));
    box-sizing: border-box;
}

/* == 28: T&C page (.sh-tandc-header, .sh-tandc-body) == */

.sh-tandc-header {
    background: #fff;
    border-top: 5px solid #F47B20;
    padding: 56px 20px 40px;
    text-align: center;
}
.sh-tandc-header .container {
    max-width: 760px;
    margin: 0 auto;
}
.sh-tandc-header h1 {
    font-size: clamp(28px,4vw,40px);
    color: #4A4A4A;
    margin: 0 0 8px;
    line-height: 1.2;
}
.sh-tandc-sub {
    font-size: 18px;
    color: #F47B20;
    font-weight: 600;
    margin: 0 0 28px;
    letter-spacing: 0.02em;
}
.sh-tandc-intro {
    text-align: left;
    background: #f8f8f6;
    border-left: 4px solid #F47B20;
    padding: 24px 28px;
    border-radius: 0 6px 6px 0;
}
.elementor .sh-tandc-intro p {
    margin: 0 0 14px;
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: #333;
}
.elementor .sh-tandc-intro p:last-child { margin-bottom: 0; }

.sh-tandc-body {
    background: #fff;
    padding: 48px 20px 64px;
}
.sh-tandc-body .container {
    max-width: 760px;
    margin: 0 auto;
}
.elementor .sh-tandc-body h4 {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #4A4A4A;
    margin: 32px 0 10px;
    padding-bottom: 6px;
    border-bottom: 2px solid #F47B20;
    line-height: 1.3 !important;
}
.elementor .sh-tandc-body h4:first-child { margin-top: 0; }
.elementor .sh-tandc-body h5 {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #333;
    margin: 24px 0 8px;
    line-height: 1.3 !important;
}
.elementor .sh-tandc-body p {
    margin: 0 0 14px;
    font-size: 16px !important;
    line-height: 1.75 !important;
    color: #444;
}
.elementor .sh-tandc-body ul {
    margin: 0 0 18px 0;
    padding-left: 20px;
}
.elementor .sh-tandc-body ul li {
    font-size: 16px !important;
    line-height: 1.75 !important;
    color: #444;
    margin-bottom: 6px;
}
.sh-tandc-body hr {
    border: none;
    border-top: 1px solid #e5e5e5;
    margin: 32px 0;
}
.sh-tandc-body a {
    color: #F47B20;
    text-decoration: none;
}
.sh-tandc-body a:hover { text-decoration: underline; }
.sh-tandc-body strong { color: #4A4A4A; }

@media (max-width: 767px) {
    .sh-tandc-header { padding: 36px 16px 28px; }
    .sh-tandc-intro { padding: 18px 18px; }
    .sh-tandc-body { padding: 32px 16px 48px; }
    .elementor .sh-tandc-body h4 { font-size: 18px !important; }
}


/* ============================================================
   Section 32, Hub page (post 7074)
   ============================================================ */

/* Trending cards grid */
.sh-hub-trending { padding: 48px 0; }
.sh-hub-trending h2 { font-size: 26px !important; margin-bottom: 28px; color: #4A4A4A; }
.hub-trending-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.hub-trending-card {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    padding: 20px;
    text-decoration: none;
    color: inherit;
    display: block;
    transition: box-shadow 0.2s;
}
.hub-trending-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.10); text-decoration: none; }
.hub-trending-card h3 { font-size: 16px; margin: 0 0 8px; color: #4A4A4A; }
.hub-trending-card p { font-size: 14px; color: #555; margin: 0; }

/* Topics grid */
.sh-hub-topics { padding: 48px 0; }
.hub-topics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}
.hub-topic-section h2.hub-topic-heading {
    font-size: 18px;
    font-weight: 700;
    color: #4A4A4A;
    margin: 0 0 10px;
}
.hub-topic-links { list-style: none; padding: 0; margin: 0; }
.hub-topic-links li { margin-bottom: 6px; }
.hub-topic-links li a { font-size: 15px; color: #4A4A4A; text-decoration: none; }
.hub-topic-links li a:hover { color: #e85c19; text-decoration: underline; }

/* CTA band */
.sh-hub-cta {
    background: #4A4A4A;
    color: #F3EBE0;
    padding: 48px 24px;
    text-align: center;
    margin: 48px 0 0;
}
.sh-hub-cta h2 { color: #F3EBE0; font-size: 27px !important; margin-bottom: 12px; }
.sh-hub-cta p { color: #e0e0e0; font-size: 16px; margin-bottom: 24px; }
.sh-hub-cta a.sh-cta-btn {
    display: inline-block;
    background: #F07820;
    color: #4A4A4A !important;
    -webkit-text-fill-color: #4A4A4A !important;
    padding: 14px 32px;
    border-radius: 4px;
    font-weight: 700;
    text-decoration: none;
    font-size: 16px;
}
.sh-hub-cta a.sh-cta-btn:hover { background: #F07820; color:#4A4A4A!important; -webkit-text-fill-color:#4A4A4A!important; }

@media (max-width: 900px) {
    .hub-trending-grid { grid-template-columns: repeat(2, 1fr); }
    .hub-topics-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .hub-trending-grid { grid-template-columns: 1fr; }
    .hub-topics-grid { grid-template-columns: 1fr; }
}

/* Hub topic icon box */
.hub-icon-box {
    width: 44px;
    height: 44px;
    background: var(--sh-green, #157063);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
}
.hub-icon-box svg {
    width: 22px;
    height: 22px;
    fill: #fff;
}

/* == 33: Body text scale for Track A slicer pages (excludes hero/trust bar) == */
/* Selector uses section.sh-X (element+class) giving specificity (0,2,3) to beat the
   body.page-template-elementor_canvas section .container p rule of equal specificity.
   Later position in same stylesheet wins the tie. */
body.page-template-elementor_canvas section.sh-intro p,
body.page-template-elementor_canvas section.sh-intro li,
body.page-template-elementor_canvas section.sh-differentiators p,
body.page-template-elementor_canvas section.sh-differentiators li,
body.page-template-elementor_canvas section.sh-services p,
body.page-template-elementor_canvas section.sh-services li,
body.page-template-elementor_canvas section.sh-steps p,
body.page-template-elementor_canvas section.sh-steps li,
body.page-template-elementor_canvas section.sh-pricing p,
body.page-template-elementor_canvas section.sh-pricing li,
body.page-template-elementor_canvas section.sh-areas p,
body.page-template-elementor_canvas section.sh-areas li,
body.page-template-elementor_canvas section.sh-faq p,
body.page-template-elementor_canvas section.sh-faq li,
body.page-template-elementor_canvas section.sh-related p,
body.page-template-elementor_canvas section.sh-related li,
body.page-template-elementor_canvas section.sh-testimonials p,
body.page-template-elementor_canvas section.sh-testimonials li,
body.page-template-elementor_canvas section.sh-secondary-diff p,
body.page-template-elementor_canvas section.sh-secondary-diff li,
body.page-template-elementor_canvas .cta-section p {
    font-size: 1.6rem !important;
}

/* == 34: Footer review carousel == */
#sh-footer-carousel{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:#4A4A4A;padding:48px 32px;box-sizing:border-box;}
.sh-tw-carousel-wrap{display:flex;align-items:center;gap:14px;}
.sh-tw-arrow{flex-shrink:0;width:42px;height:42px;border-radius:50%;border:none;background:#4A4A4A;color:#F3EBE0;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.2s;}
.sh-tw-arrow:hover{background:#F07820;}
.sh-tw-viewport{flex:1;overflow:hidden;}
#sh-combined-track{display:flex;gap:16px;transition:transform 0.4s ease;will-change:transform;}
.sh-ccard{flex:0 0 calc(33.333% - 11px);background:#fff;border-radius:8px;border-top:4px solid var(--sh-green, #157063);padding:24px;box-sizing:border-box;min-height:270px;position:relative;box-shadow:0 2px 16px rgba(0,0,0,0.2);display:flex;flex-direction:column;}
.sh-ccard-badge{position:absolute;top:16px;right:16px;display:flex;align-items:center;}
.sh-ccard-avatar{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#F3EBE0;font-weight:700;font-size:16px;flex-shrink:0;margin-bottom:12px;}
.sh-ccard-name{font-size:16px;font-weight:700;color:#4A4A4A;margin-bottom:3px;padding-right:26px;}

.sh-ccard-stars{display:flex;gap:2px;margin-bottom:12px;}
.sh-ccard-text{font-size:15px;line-height:1.65;color:#3a3a3a;margin:0;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;}
@media(max-width:768px){.sh-ccard{flex:0 0 100%;}}

/* == 35: Disruption section (Living Through It) == */
.sh-disruption{padding:60px 0;background:#FFFFFF;border-left:4px solid #157063;padding-left:28px;}
.sh-disruption .container{max-width:760px;}
.sh-disruption h2{font-size:32px !important;font-weight:700;color:#4A4A4A;margin-bottom:20px;}
.sh-disruption p{font-size:17px;line-height:1.7;color:#4A4A4A;max-width:720px;margin-bottom:16px;}
/* CTA secondary (mid-intent text link) */
.cta-secondary{margin-top:24px;font-size:15px;color:rgba(255,255,255,0.9);text-align:center;}
.cta-secondary a{color:#F3EBE0;text-decoration:underline;font-weight:500;}
.cta-secondary a:hover{color:rgba(255,255,255,0.85);}
/* CTA veto note (dual-veto paragraph) */
.cta-veto-note{display:block!important;max-width:680px;font-size:16px;line-height:1.7;color:rgba(255,255,255,0.9);margin:0 auto 32px!important;padding:20px 28px;background:rgba(255,255,255,0.1);border-left:3px solid rgba(255,255,255,0.7);border-radius:0 8px 8px 0;text-align:center!important;}

/* == 36: Baked HTML service page headings (sections with no class) == */
/* Theme forces h2{font-size:inherit} and SiteGround strips inline <style> blocks.
   Target classless sections only so slicer .sh-* sections are unaffected. */
body.page-template-elementor_canvas section:not([class]) h2 {
    font-size: 28px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #4A4A4A !important;
    margin-bottom: 20px !important;
}
body.page-template-elementor_canvas section:not([class]) h3 {
    font-size: 20px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    color: #4A4A4A !important;
    margin-bottom: 10px !important;
}
/* FAQ summary h3 inside details, slightly smaller, still readable */
body.page-template-elementor_canvas section:not([class]) details summary h3 {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #4A4A4A !important;
    margin: 0 !important;
    display: inline !important;
}
/* CTA contact section headings */
body.page-template-elementor_canvas section#contact h2 {
    font-size: 30px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #4A4A4A !important;
    margin-bottom: 16px !important;
}
body.page-template-elementor_canvas section#contact h3 {
    font-size: 17px !important;
    font-weight: 600 !important;
    color: #4A4A4A !important;
    margin-bottom: 8px !important;
    margin-top: 24px !important;
}
/* What makes us different section */
body.page-template-elementor_canvas section[aria-label="What makes us different"] h2 {
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #4A4A4A !important;
    margin-bottom: 20px !important;
}
body.page-template-elementor_canvas section[aria-label="What makes us different"] h3 {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #4A4A4A !important;
    margin-bottom: 8px !important;
    margin-top: 24px !important;
}

/* ── Contact section: green background ────────────────────────── */
body.page-template-elementor_canvas section#contact {
    background: #157063;
    padding: 60px 24px;
    border-radius: 12px;
    margin: 0 24px 48px;
}
body.page-template-elementor_canvas section#contact h2,
body.page-template-elementor_canvas section#contact h3,
body.page-template-elementor_canvas section#contact p,
body.page-template-elementor_canvas section#contact a {
    color: #F3EBE0 !important;
}
body.page-template-elementor_canvas section#contact a:hover {
    opacity: 0.85;
}
body.page-template-elementor_canvas section#contact .container {
    max-width: 720px;
}

/* ── Contact page (post 1090) layout resets ──────────────────── */
.page-id-1090 .elementor-section,
.page-id-1090 .elementor-column,
.page-id-1090 .elementor-column-wrap,
.page-id-1090 .elementor-widget-wrap,
.page-id-1090 .elementor-widget,
.page-id-1090 .elementor-widget-container { padding: 0 !important; margin: 0 !important; min-height: unset !important; }
/* Explicit container padding (overrides any Elementor wrapper interference) */
.page-id-1090 .sh-intro > .container,
.page-id-1090 .sh-steps > .container,
.page-id-1090 .sh-areas > .container { padding-left: clamp(20px,4vw,48px) !important; padding-right: clamp(20px,4vw,48px) !important; }
/* Hide duplicate Fluent Form field labels (placeholder inside field is sufficient) */
.page-id-1090 .ff-el-input--label { display: none !important; }
/* Override legacy section#contact margin/radius on slicer CTA */
.page-id-1090 section#contact { margin: 0 !important; border-radius: 0 !important; }

/* === Section 36: CTA reassurance line === */
.cta-reassurance{font-size:14px!important;color:rgba(255,255,255,0.7)!important;-webkit-text-fill-color:rgba(255,255,255,0.7)!important;margin:20px auto 0!important;text-align:center!important;}

/* === Section 36b: CTA trust proof strip (added 2026-04-18, T3) === */
.cta-trust-proof{font-size:14px!important;color:rgba(255,255,255,0.85)!important;-webkit-text-fill-color:rgba(255,255,255,0.85)!important;margin:18px auto 0!important;text-align:center!important;line-height:1.5!important;}
.cta-trust-proof .sh-star{color:#F07820!important;-webkit-text-fill-color:#F07820!important;}
body.page-template-elementor_canvas section#contact .cta-trust-proof{color:#4A4A4A!important;-webkit-text-fill-color:#4A4A4A!important;}

/* === Section 37: Trust micro strip above pricing === */
.sh-trust-micro{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;margin-bottom:20px;padding:14px 20px;background:#fff;border:1px solid #E5E1DC;border-radius:8px;}
.sh-trust-micro span{display:flex;align-items:center;gap:6px;font-size:14px;color:#4A4A4A;font-weight:500;}
.sh-trust-micro svg{flex-shrink:0;}
@media(max-width:600px){.sh-trust-micro{gap:10px 20px;padding:12px 14px;}.sh-trust-micro span{font-size:13px;}}

/* === Section 38: Sticky mobile call button === */
/* sticky-call removed */

/* -- 38 . CTA pull-quote testimonial --------------------------------- */
.cta-pullquote {
    max-width: 640px;
    margin: 24px auto 0;
    padding: 16px 24px;
    background: #f7f5f2;
    border-left: 3px solid var(--sh-green, #157063);
    border-radius: 0 8px 8px 0;
    text-align: left;
}
.cta-pullquote p {
    font-size: 15px;
    line-height: 1.6;
    color: #4A4A4A !important; -webkit-text-fill-color: #4A4A4A !important;
    font-style: italic;
    margin: 0;
}
.cta-pullquote cite {
    display: block;
    margin-top: 8px;
    font-size: 13px;
    color: #666 !important;
    font-style: normal;
}
body.page-template-elementor_canvas section#contact .cta-pullquote p { color: #4A4A4A !important; -webkit-text-fill-color: #4A4A4A !important; }
body.page-template-elementor_canvas section#contact .cta-pullquote cite { color: #666 !important; -webkit-text-fill-color: #666 !important; }
.cta-pullquote::before { content: "\201C"; display: block; font-size: 48px; line-height: 1; color: var(--sh-green, #157063) !important; -webkit-text-fill-color: var(--sh-green, #157063) !important; opacity: 0.35; font-family: Georgia, serif; margin-bottom: 4px; }

/* -- 39 . Before/After slider ---------------------------------------- */
.sh-before-after { padding: 60px 0; background: #fff; }
.sh-before-after h2 { font-size: 28px; font-weight: 700; color: #4A4A4A; margin-bottom: 24px; }
.ba-grid { display: grid; grid-template-columns: 1fr; gap: 32px; max-width: 800px; }
.ba-wrapper { position: relative; overflow: hidden; border-radius: 12px; aspect-ratio: 4/3; cursor: ew-resize; user-select: none; -webkit-user-select: none; }
.ba-after, .ba-before { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.ba-after img, .ba-before img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ba-before { clip-path: inset(0 50% 0 0); z-index: 2; }
.ba-handle { position: absolute; top: 0; bottom: 0; left: 50%; width: 4px; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center; transform: translateX(-50%); pointer-events: auto; }
.ba-handle-line { flex: 1; width: 2px; background: #fff; box-shadow: 0 0 4px rgba(0,0,0,0.3); }
.ba-handle-circle { width: 36px; height: 36px; border-radius: 50%; background: var(--sh-green, #157063); display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,0.2); flex-shrink: 0; }
.ba-caption { font-size: 14px; color: #666; margin-top: 8px; text-align: center; }
@media (max-width: 600px) { .ba-wrapper { aspect-ratio: 3/2; } .ba-handle-circle { width: 30px; height: 30px; } }
/* -- 40 . Article hero (hub articles) -------------------------------- */
.sh-article-hero { background: #4A4A4A; padding: 48px 0 40px; }
.sh-article-hero .container { max-width: 960px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 48px); }
.sh-article-breadcrumb { font-size: 13px; margin-bottom: 20px; }
.sh-article-breadcrumb a { color: rgba(255,255,255,0.6); text-decoration: none; }
.sh-article-breadcrumb a:hover { color: #F3EBE0; }
.sh-article-breadcrumb .bc-sep { color: rgba(255,255,255,0.35); margin: 0 4px; }
.sh-article-breadcrumb span:last-child { color: rgba(255,255,255,0.8); }
.sh-article-hero h1 { color: #F3EBE0; font-size: 36px; font-weight: 700; line-height: 1.25; margin: 0 0 16px; }
.sh-article-deck { color: rgba(255,255,255,0.8); font-size: 18px; line-height: 1.55; margin: 0 0 28px; }
.sh-article-author { display: flex; align-items: center; gap: 12px; }
.sh-article-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.sh-article-author-text { display: flex; flex-direction: column; gap: 2px; }
.sh-article-author-name { color: #F3EBE0; font-size: 15px; font-weight: 600; }
.sh-article-author-meta { color: rgba(255,255,255,0.6); font-size: 13px; }
.sh-article-hero-cta { margin: 0 0 24px; padding: 18px 0 4px; border-top: 1px solid rgba(255,255,255,0.12); }
.sh-article-hero-cta__btn { display: inline-block; padding: 14px 32px; background: #F07820; color: #4A4A4A!important; -webkit-text-fill-color: #4A4A4A!important; font-weight: 700; font-size: 16px; border-radius: 4px; text-decoration: none; transition: background .2s; }
.sh-article-hero-cta__btn:hover { background: #F07820; color: #4A4A4A!important; -webkit-text-fill-color: #4A4A4A!important; text-decoration: none; }
.sh-article-hero-cta__proof { color: rgba(255,255,255,0.85); font-size: 13px; line-height: 1.5; margin: 12px 0 16px; }
.sh-article-hero-cta__proof .sh-star { color: #F07820; }
@media (max-width: 600px) { .sh-article-hero { padding: 32px 0 28px; } .sh-article-hero h1 { font-size: 28px; } .sh-article-deck { font-size: 16px; margin-bottom: 20px; } .sh-article-hero-cta__btn { padding: 12px 24px; font-size: 15px; } }
/* -- 41 . Article body ------------------------------------------------ */
.elementor-section:has(.sh-article-body) { padding: 0 !important; }
.elementor-section:has(.sh-article-body) > .elementor-container { max-width: 100%; }
.sh-article-body { max-width: 1140px; margin: 0 auto; padding: 40px 20px; }
.sh-article-body table { border-collapse: collapse; width: 100%; font-size: 15px; line-height: 1.5; margin: 28px 0; }
.sh-article-body th, .sh-article-body td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #E5E1DC; vertical-align: top; }
.sh-article-body th { background: #F3EBE0; font-weight: 600; font-size: 14px; color: #4A4A4A; }
.sh-article-body tr:last-child td { border-bottom: none; }
.sh-article-body tbody tr:hover { background: #FAFAF8; }
.sh-article-body blockquote { border-left: 3px solid var(--sh-green, #157063); margin: 24px 0; padding: 12px 20px; font-style: italic; color: #555; }
@media (max-width: 600px) { .sh-article-body { padding: 32px 16px 40px; } .sh-article-body table { display: block; overflow-x: auto; } .sh-article-body th, .sh-article-body td { padding: 10px 12px; font-size: 14px; } }
/* -- 42 . Footer ---------------------------------------------------------- */
#sh-global-footer {
      background: #4A4A4A;
      color: #F3EBE0;
      padding: 60px 20px 48px;
      border-top: 1px solid rgba(255,255,255,0.12);
    }

    #sh-global-footer .sh-footer__inner {
      max-width: 1100px;
      margin: 0 auto;
      display: grid;
      gap: 24px;
    }

    /* Center the top two rows */
    #sh-global-footer .sh-footer__top,
    #sh-global-footer .sh-footer__legal {
      text-align: center;
    }

    /* ==========================================================
       FIRST LINE: dot at start and end of every item, wrap-safe
       ========================================================== */

    #sh-global-footer .sh-footer__inline-list {
      list-style: none;
      margin: 0;
      padding: 0;

      display: inline-flex;
      flex-wrap: wrap;
      gap: 10px 0; /* row gap 10px, col gap 0 so dots can overlap */
      align-items: center;
      justify-content: center;
    }

    #sh-global-footer .sh-footer__inline-list li {
      margin: 0;
      position: relative;
      display: inline-block;
      padding: 0 16px; /* controls spacing around each item */
      line-height: 1.5;
      white-space: nowrap;
      font-size: 15px;
      letter-spacing: 0.08em;
      font-weight: 500;
    }

    /* Start dot */
    #sh-global-footer .sh-footer__inline-list li::before {
      content: \"•\";
      position: absolute;
      left: 0;
      top: 50%;
      transform: translate(-50%, -50%);
      opacity: 0.55;
      pointer-events: none;
    }

    /* End dot */
    #sh-global-footer .sh-footer__inline-list li::after {
      content: \"•\";
      position: absolute;
      right: 0;
      top: 50%;
      transform: translate(50%, -50%);
      opacity: 0.55;
      pointer-events: none;
    }

    /* ==========================================================
       Everything below here is your original working styling
       ========================================================== */

    #sh-global-footer .sh-footer__legal-text,
    #sh-global-footer .sh-footer__reg-text {
      margin: 0;
      line-height: 1.5;
      text-align: center;
      font-size: 14px;
    }

    #sh-global-footer .sh-footer__sep {
      margin: 0 10px;
      opacity: 0.6;
    }

    #sh-global-footer a {
      color: #F3EBE0;
      text-decoration: none;
    }

    #sh-global-footer a:hover,
    #sh-global-footer a:focus-visible {
      text-decoration: underline;
    }

    #sh-global-footer .sh-footer__links {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 20px;
    }

    #sh-global-footer .sh-footer__map-link {
      display: inline-block;
    }

    #sh-global-footer .sh-footer__services-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 10px 24px;
    }

    #sh-global-footer .sh-footer__services-list li {
      margin: 0;
      font-size: 14px;
      letter-spacing: 0.02em;
    }

    #sh-global-footer .sh-footer__services-list a {
      opacity: 0.9;
    }

    #sh-global-footer .sh-footer__services-list a:hover {
      opacity: 1;
    }

    @media (max-width: 560px) {
      #sh-global-footer .sh-footer__services-list {
        flex-direction: column;
        gap: 8px;
      }
    }



    /* Areas in 2 columns with opposing alignment */








    /* Bottom single-line reg details */
    #sh-global-footer .sh-footer__reg-text {
      font-size: 12px;
      letter-spacing: 0.06em;
      font-variant-numeric: tabular-nums;
      opacity: 0.9;
    }

    @media (max-width: 560px) {
      #sh-global-footer .sh-footer__inline-list {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
      }

      #sh-global-footer .sh-footer__inline-list li {
        white-space: normal;
        padding: 0;
        font-size: 14px;
        letter-spacing: 0.04em;
        text-align: center;
      }

      #sh-global-footer .sh-footer__inline-list li::before,
      #sh-global-footer .sh-footer__inline-list li::after {
        content: none;
      }
    }

/* -- 43 . Showcase (service brochure) -- */
.sh-showcase{padding:56px 0;}
.sh-showcase__item{margin-bottom:56px;}
.sh-showcase__item:last-child{margin-bottom:0;}
.sh-showcase__item h2{font-size:clamp(24px,3vw,34px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:12px;}
.sh-showcase__body p{max-width:720px;color:var(--sh-text,#4A4A4A);margin-bottom:16px;line-height:1.65;font-size:16px;}
.sh-showcase__gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:20px 0;}
.sh-showcase__gallery figure{margin:0;overflow:hidden;border-radius:8px;}
.sh-showcase__gallery img{width:100%;height:280px;object-fit:cover;display:block;}
.sh-showcase__quote{border-left:3px solid var(--sh-green,#157063);padding:12px 20px;margin:16px 0 0;font-style:italic;color:var(--sh-text,#4A4A4A);max-width:720px;font-size:15px;line-height:1.6;}
@media(max-width:767px){
.sh-showcase__gallery{grid-template-columns:1fr;}
.sh-showcase__gallery img{height:220px;}
.sh-showcase__item{margin-bottom:40px;}
}

/* About CTA portrait */
.sh-about-cta{display:flex;align-items:center;gap:28px;margin-top:32px;}
img.sh-about-cta__portrait{width:240px;height:240px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.sh-about-cta__text{flex:1;}
@media(max-width:767px){
.sh-about-cta{flex-direction:column;text-align:center;}
img.sh-about-cta__portrait{width:140px;height:140px;}
}

/* -- 44 . IHAF body CSS migration (SG strips <style> from body hooks) -- */

/* Content wrapping fix - prevent horizontal scroll */
.elementor { overflow-x: hidden; }

/* Button text contrast - dark on amber (WCAG AA) */
.elementor-widget-button .elementor-button { color: #4A4A4A !important; }
.elementor-widget-button .elementor-button:hover { color: #4A4A4A !important; opacity: 0.92; }

/* Soften image shadows */
.elementor-widget-image img {
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.15) !important;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.elementor-widget-image img:hover {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2) !important;
  transform: translateY(-2px);
}

/* Smooth button transitions */
.elementor-button {
  transition: background-color 0.25s ease, opacity 0.25s ease, transform 0.2s ease !important;
}
.elementor-button:hover { transform: translateY(-1px); }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Subtle text link transitions */
.elementor-text-editor a { transition: color 0.2s ease; }

/* Branded text selection */
::selection { background-color: rgba(21, 112, 99, 0.2); color: inherit; }
::-moz-selection { background-color: rgba(21, 112, 99, 0.2); color: inherit; }

/* Subtle link underline on hover in text blocks */
.elementor-text-editor a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* Scrollbar - subtle brand accent (webkit browsers) */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f8f4ed; }
::-webkit-scrollbar-thumb { background: rgba(21, 112, 99, 0.35); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: rgba(21, 112, 99, 0.55); }

/* Branded keyboard focus ring - only shows for keyboard users */
:focus-visible {
  outline: 2px solid rgba(21, 112, 99, 0.6) !important;
  outline-offset: 2px;
}

/* Gentle fade-in for animated elements */
.elementor-invisible { transition: opacity 0.4s ease; }

/* Prevent text widows on larger screens */
@media (min-width: 768px) {
  .elementor-text-editor p,
  .elementor-text-editor .elementor-widget-container,
  .elementor-widget-text-editor .elementor-widget-container {
    text-wrap: pretty;
  }
}

/* 404 page styles */
.error404 main {
  font-family: "Open Sans", -apple-system, BlinkMacSystemFont, sans-serif;
  max-width: 800px;
  margin: 0 auto;
}
.error404 h1.entry-title {
  font-family: "Open Sans", sans-serif !important;
  color: rgb(43, 43, 43) !important;
  font-size: 36px !important;
  font-weight: 700;
}
.error404 .wp-block-group,
.error404 .widget { margin-bottom: 28px; }
.error404 h2.wp-block-heading,
.error404 main h2 {
  font-family: "Open Sans", sans-serif;
  color: rgb(43, 43, 43);
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 10px;
}
.error404 .wp-block-group a,
.error404 .widget a {
  color: var(--sh-green, #157063);
  text-decoration: none;
  transition: color 0.2s ease;
}
.error404 .wp-block-group a:hover,
.error404 .widget a:hover {
  color: #0d5549;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.error404 .wp-block-group ul,
.error404 .widget ul { list-style: none; padding-left: 0; }
.error404 .wp-block-group li,
.error404 .widget li {
  font-family: "Open Sans", sans-serif;
  padding: 4px 0;
  font-size: 15px;
  color: rgb(43, 43, 43);
}

/* Fluent Forms focus enhancement */
.fluentform .ff-el-form-control:focus,
.fluentform .ff-el-form-control:active,
.ff-el-input:focus,
.ff-el-form-control:focus {
  border-color: rgba(21, 112, 99, 0.5) !important;
  box-shadow: 0 0 0 3px rgba(21, 112, 99, 0.12) !important;
  outline: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.fluentform textarea.ff-el-form-control:focus {
  border-color: rgba(21, 112, 99, 0.5) !important;
  box-shadow: 0 0 0 3px rgba(21, 112, 99, 0.12) !important;
}

/* Link colours across Elementor content -- brand green; CTA buttons excluded */
.elementor-text-editor a:not(.elementor-button):not([class*="sh-"]):not([class*="cta-"]),
.elementor-widget-text-editor a:not(.elementor-button):not([class*="sh-"]):not([class*="cta-"]),
.elementor-widget-container a:not(.elementor-button):not([class*="sh-"]):not([class*="ekit"]):not([class*="cta-"]) {
  color: var(--sh-green, #157063) !important;
}
.elementor-text-editor a:not(.elementor-button):not([class*="sh-"]):not([class*="cta-"]):hover,
.elementor-widget-text-editor a:not(.elementor-button):not([class*="sh-"]):not([class*="cta-"]):hover,
.elementor-widget-container a:not(.elementor-button):not([class*="sh-"]):not([class*="ekit"]):not([class*="cta-"]):hover {
  color: #0d5549 !important;
}

/* Floating email button */
.floating-email-button a {
  background-color: #F3EBE0 !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
  border: 2px solid var(--sh-green, #157063) !important;
}
.floating-email-button a svg { fill: var(--sh-green, #157063) !important; }
.floating-email-button a:hover {
  background-color: var(--sh-green, #157063) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
}
.floating-email-button a:hover svg { fill: #ffffff !important; }

/* Hero overlay - darken so white H2 text is readable */
.elementor-element-64ae086 { position: relative; }
.elementor-element-64ae086::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(45, 30, 60, 0.55);
  z-index: 0;
  pointer-events: none;
}
.elementor-element-64ae086 > .elementor-container { position: relative; z-index: 1; }

/* H2 Period & Modern transparent bg */
.elementor-element-8345491 { background-color: transparent !important; }

/* From the Workshop section - clean left-accent */
.elementor-element-697e569 {
  border: none !important;
  border-left: 4px solid #078c92 !important;
  border-radius: 0 !important;
  background-color: rgba(248, 244, 237, 0.6) !important;
}

/* Content widget spacing */
.elementor-widget:not(:last-child) { margin-bottom: 20px !important; }


/* ================================================
   ABOUT US, page-specific styles (2693, 16646)
   ================================================ */

/* Elementor overflow fix for about pages */
.elementor-16646,.elementor-2693{overflow:visible !important;}

/* Hero */
.sh-about-hero{padding:72px 0 56px;text-align:center;}
.sh-about-hero h1{font-size:clamp(32px,4.5vw,48px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:12px;font-weight:700;letter-spacing:-0.5px;}
.sh-about-hero__tagline{font-size:clamp(18px,2.2vw,22px);color:var(--sh-green,#157063);font-weight:500;margin-bottom:32px;}
.sh-about-hero__intro{max-width:740px;margin:0 auto;}
.sh-about-hero__intro p{font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.75;margin-bottom:16px;}

/* Why */
.sh-about-why{padding:56px 0;background:var(--sh-warm-grey,#F3EBE0);}
.sh-about-why h2{font-size:clamp(26px,3.2vw,36px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:12px;}
.sh-about-why__intro{font-size:17px;color:var(--sh-text,#4A4A4A);line-height:1.7;max-width:720px;margin-bottom:28px;}
.sh-about-why__values{display:flex;flex-direction:column;gap:14px;margin-bottom:28px;max-width:640px;}
.sh-about-why__value{display:flex;align-items:flex-start;gap:14px;}
.sh-about-why__check{flex-shrink:0;width:28px;height:28px;background:var(--sh-green,#157063);color:#F3EBE0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;margin-top:2px;}
.sh-about-why__value p{font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.6;margin:0;}
.sh-about-why__outro{font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.7;max-width:720px;border-left:4px solid var(--sh-green,#157063);padding-left:20px;font-style:italic;}

/* Beliefs */
.sh-about-beliefs{padding:56px 0;}
.sh-about-beliefs h2{font-size:clamp(26px,3.2vw,36px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:32px;}
.sh-about-beliefs__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.sh-about-belief{background:#fff;border:1px solid var(--sh-border,#E5E1DC);border-radius:12px;padding:32px 28px;border-top:4px solid var(--sh-green,#157063);position:relative;}
.sh-about-belief__num{font-size:42px;font-weight:800;color:rgba(21,112,99,0.08);position:absolute;top:16px;right:20px;line-height:1;}
.sh-about-belief h3{font-size:18px !important;font-weight:600;color:var(--sh-charcoal,#4A4A4A);margin-bottom:10px;}
.sh-about-belief p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.65;}
@media(max-width:767px){.sh-about-beliefs__grid{grid-template-columns:1fr;}}

/* Process timeline */
.sh-about-process{padding:56px 0;background:var(--sh-warm-grey,#F3EBE0);}
.sh-about-process h2{font-size:clamp(26px,3.2vw,36px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:32px;}
.sh-about-timeline{list-style:none;margin:0;padding:0;counter-reset:about-step;}
.sh-about-timeline li{position:relative;padding-left:88px;margin-bottom:36px;counter-increment:about-step;}
.sh-about-timeline li::before{content:counter(about-step);position:absolute;left:0;top:0;width:56px;height:56px;background:var(--sh-green,#157063);color:#F3EBE0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;}
.sh-about-timeline li::after{content:"";position:absolute;left:27px;top:60px;width:2px;height:calc(100% - 20px);background:rgba(21,112,99,0.2);}
.sh-about-timeline li:last-child::after{display:none;}
.sh-about-timeline li:last-child{margin-bottom:0;}
.sh-about-timeline h3{font-size:18px !important;font-weight:600;color:var(--sh-green,#157063);margin-bottom:4px;}
.sh-about-timeline p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;margin:0;}
.sh-about-process__outro{margin-top:32px;font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.7;max-width:720px;}
@media(max-width:600px){.sh-about-timeline li{padding-left:64px;}.sh-about-timeline li::before{width:44px;height:44px;font-size:16px;}.sh-about-timeline li::after{left:21px;top:48px;}}

/* Services */
.sh-about-services{padding:56px 0;}
.sh-about-services h2{font-size:clamp(26px,3.2vw,36px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:8px;}
.sh-about-services > .container > p{max-width:720px;color:var(--sh-text,#4A4A4A);margin-bottom:28px;}
.sh-about-services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.sh-about-service-card{background:#F3EBE0;border:1px solid var(--sh-border-light,#E8EDF0);border-radius:12px;padding:28px 24px;}
.sh-about-service-card .icon-box{width:48px;height:48px;background:var(--sh-green,#157063);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.sh-about-service-card .icon-box svg{width:24px;height:24px;stroke:#fff;fill:none;}
.sh-about-service-card h3{font-size:18px !important;font-weight:600;color:var(--sh-charcoal,#4A4A4A);margin-bottom:8px;}
.sh-about-service-card p{font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.6;}
.sh-about-services__outro{margin-top:24px;font-size:16px;color:var(--sh-text,#4A4A4A);font-style:italic;max-width:720px;}
@media(max-width:767px){.sh-about-services__grid{grid-template-columns:1fr;}}
@media(min-width:768px) and (max-width:1024px){.sh-about-services__grid{grid-template-columns:repeat(2,1fr);}}

/* Proof */
.sh-about-proof{padding:56px 0;background:var(--sh-warm-grey,#F3EBE0);}
.sh-about-proof h2{font-size:clamp(26px,3.2vw,36px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:12px;}
.sh-about-proof > .container > p{max-width:720px;color:var(--sh-text,#4A4A4A);line-height:1.7;margin-bottom:24px;}
.sh-about-proof__quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px;}
.sh-about-proof__quote{margin:0;background:#fff;border-radius:12px;padding:24px;border:1px solid var(--sh-border,#E5E1DC);font-size:15px;color:var(--sh-text,#4A4A4A);line-height:1.65;font-style:italic;border-left:4px solid var(--sh-green,#157063);}
.sh-about-proof__cred{font-size:15px;color:var(--sh-text,#4A4A4A);}
.sh-about-proof__cred a{color:var(--sh-green,#157063);text-decoration:underline;}
@media(max-width:767px){.sh-about-proof__quotes{grid-template-columns:1fr;}}

/* CTA */
/* Service card circular photos */
.sh-about-service-card__img{width:80px;height:80px;border-radius:50%;overflow:hidden;margin-bottom:16px;}
.sh-about-service-card__img img{width:100%;height:100%;object-fit:cover;}

/* Proof section, quote + image pairing */
.sh-about-proof__item{display:flex;gap:24px;align-items:flex-start;margin-bottom:24px;}
.sh-about-proof__img{flex-shrink:0;width:200px;height:140px;border-radius:8px;overflow:hidden;}
.sh-about-proof__img img{width:100%;height:100%;object-fit:cover;}
@media(max-width:767px){.sh-about-proof__item{flex-direction:column;}.sh-about-proof__img{width:100%;height:180px;}}

/* Proof mini-gallery strip */
.sh-about-proof__gallery{display:flex;gap:12px;margin-top:32px;overflow-x:auto;padding-bottom:8px;}
.sh-about-proof__thumb{flex-shrink:0;width:120px;height:120px;border-radius:8px;overflow:hidden;display:block;}
.sh-about-proof__thumb img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s;}
.sh-about-proof__thumb:hover img{transform:scale(1.05);}

/* CTA portrait (inside standard cta-section) */
.cta-portrait{margin:0 auto 24px;width:140px;height:140px;border-radius:50%;overflow:hidden;border:4px solid rgba(255,255,255,0.2);}
.cta-portrait img{width:100%;height:100%;object-fit:cover;}
/* Homepage portrait widget (Elementor image widget pd16645) */
.elementor-element-pd16645 img{border-radius:50%;object-fit:cover;}

/* Email capture */
.sh-email-capture{padding:56px 0;background:#f7f7f5;}
.sh-email-capture__inner{display:flex;gap:48px;align-items:center;max-width:960px;margin:0 auto;}
.sh-email-capture__text{flex:1;}
.sh-email-capture__text h2{font-size:clamp(22px,3vw,28px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:12px;}
.sh-email-capture__text p{font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.6;}
.sh-email-capture__form{flex:1;min-width:280px;}
.sh-email-capture__form .ff-el-group{margin-bottom:12px;}
.sh-email-capture__form .ff-el-input--label{font-size:14px;font-weight:500;color:var(--sh-charcoal,#4A4A4A);}
.sh-email-capture__form .ff-el-form-control{border:1px solid #ddd;border-radius:6px;padding:10px 14px;font-size:15px;}
.sh-email-capture__form .ff-btn-submit{background:var(--sh-green,#157063) !important;border-color:var(--sh-green,#157063) !important;color:#fff !important;border-radius:8px;padding:14px 28px;font-size:16px;font-weight:600;width:100%;cursor:pointer;transition:background 0.2s;text-transform:none;}
.sh-email-capture__form .ff-btn-submit:hover{background:#125a4f !important;}
@media(max-width:767px){.sh-email-capture__inner{flex-direction:column;gap:24px;text-align:center;}.sh-email-capture__form{width:100%;}}
.sh-inline-enquiry{padding:56px 0;background:#fff;border:1px solid #eee;border-left:4px solid #F07820;}
.sh-inline-enquiry__inner{display:flex;gap:48px;align-items:center;max-width:960px;margin:0 auto;}
.sh-inline-enquiry__text{flex:1;}
.sh-inline-enquiry__text h2{font-size:clamp(22px,3vw,28px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:12px;}
.sh-inline-enquiry__text p{font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.6;}
.sh-inline-enquiry__form{flex:1;min-width:280px;}
.sh-inline-enquiry__form .ff-el-group{margin-bottom:12px;}
.sh-inline-enquiry__form .ff-el-input--label{font-size:14px;font-weight:500;color:var(--sh-charcoal,#4A4A4A);}
.sh-inline-enquiry__form .ff-el-form-control{border:1px solid #ddd;border-radius:6px;padding:10px 14px;font-size:15px;}
.sh-inline-enquiry__form .ff-btn-submit{background:#F07820 !important;border-color:#F07820 !important;color:#fff !important;border-radius:8px;padding:14px 28px;font-size:16px;font-weight:600;width:100%;cursor:pointer;transition:background 0.2s;text-transform:none;}
.sh-inline-enquiry__form .ff-btn-submit:hover{background:#C8785E !important;}
.sh-inline-enquiry .sh-inline-enquiry__microcopy{margin-top:12px;font-size:12px;color:#6B6B6B;line-height:1.4;text-align:center;}
@media(max-width:767px){.sh-inline-enquiry__inner{flex-direction:column;gap:24px;text-align:center;}.sh-inline-enquiry__form{width:100%;}}
.sh-consultancy-enquiry{padding:56px 0;background:var(--sh-charcoal,#4A4A4A);}
.sh-consultancy-enquiry__inner{display:flex;gap:48px;align-items:center;max-width:960px;margin:0 auto;}
.sh-consultancy-enquiry__text{flex:1;}
.sh-consultancy-enquiry__text h2{font-size:clamp(22px,3vw,28px) !important;color:#fff;margin-bottom:12px;}
.sh-consultancy-enquiry__text p{font-size:16px;color:rgba(255,255,255,0.85);line-height:1.6;}
.sh-consultancy-enquiry__form{flex:1;min-width:280px;}
.sh-consultancy-enquiry__form .ff-el-group{margin-bottom:12px;}
.sh-consultancy-enquiry__form .ff-el-input--label{font-size:14px;font-weight:500;color:#fff;}
.sh-consultancy-enquiry__form .ff-el-form-control{border:1px solid #666;border-radius:6px;padding:10px 14px;font-size:15px;background:#fff;}
.sh-consultancy-enquiry__form .ff-btn-submit{background:#F07820 !important;border-color:#F07820 !important;color:#fff !important;border-radius:8px;padding:14px 28px;font-size:16px;font-weight:600;width:100%;cursor:pointer;transition:background 0.2s;text-transform:none;}
.sh-consultancy-enquiry__form .ff-btn-submit:hover{background:#C8785E !important;}
.sh-consultancy-enquiry .sh-consultancy-enquiry__microcopy{margin-top:12px;font-size:12px;color:rgba(255,255,255,0.65);line-height:1.4;text-align:center;}
@media(max-width:767px){.sh-consultancy-enquiry__inner{flex-direction:column;gap:24px;text-align:center;}.sh-consultancy-enquiry__form{width:100%;}}
.sh-hero-secondary-cta{margin:10px 0 0;text-align:center;font-size:14px;color:rgba(255,255,255,0.85);}
.sh-hero-secondary-cta a{color:#fff;text-decoration:underline;font-weight:600;}
.sh-hero-secondary-cta a:hover{color:#F07820;}
.sh-advice-conversion{padding:40px 0;background:#f7f7f5;border-radius:12px;}
.sh-advice-conversion__crosssell{max-width:760px;margin:0 auto;text-align:center;}
.sh-advice-conversion__crosssell h2{font-size:clamp(20px,2.6vw,26px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:10px;}
.sh-advice-conversion__crosssell p{font-size:16px;color:var(--sh-text,#4A4A4A);line-height:1.6;}
.sh-advice-conversion__crosssell a{color:#F07820;font-weight:600;text-decoration:underline;}

/* Hub links (related reading) */
.sh-hub-links{padding:24px 32px 24px;background:#f7f7f5;border-radius:12px;margin-top:0;}
.sh-hub-links h2{font-size:clamp(20px,2.5vw,24px) !important;color:var(--sh-charcoal,#4A4A4A);margin-bottom:16px;}
.sh-hub-links__list{list-style:none;padding:0;margin:0 0 16px;}
.sh-hub-links__list li{padding:10px 0;border-bottom:1px solid #e8e8e4;}
.sh-hub-links__list li:last-child{border-bottom:none;}
.sh-hub-links__list a{color:var(--sh-green,#157063);font-size:16px;font-weight:500;text-decoration:none;transition:color 0.2s;}
.sh-hub-links__list a:hover{color:#125a4f;text-decoration:underline;}
.sh-hub-links__more{margin-top:8px;}
.sh-hub-links__more a{color:var(--sh-charcoal,#4A4A4A);font-size:14px;font-weight:600;text-decoration:none;}
.sh-hub-links__more a:hover{color:var(--sh-green,#157063);}

/* ── Article sidebar CTA (Placement 2) ── */
.sh-article-sidebar-cta {
    padding: 0 24px;
    margin: 48px auto;
    max-width: 780px;
}
.sh-sidebar-cta__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.sh-sidebar-cta__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 32px 24px;
    border-radius: 12px;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.sh-sidebar-cta__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.sh-sidebar-cta__card--guides {
    background: #f7f7f5;
    border: 1px solid #e0e0de;
}
.sh-sidebar-cta__card--guides .sh-sidebar-cta__label {
    color: var(--sh-green); -webkit-text-fill-color: var(--sh-green);
    font-weight: 600; font-size: 17px;
}
.sh-sidebar-cta__card--visit {
    background: var(--sh-green);
}
.sh-sidebar-cta__card--visit .sh-sidebar-cta__label {
    color: #F3EBE0; -webkit-text-fill-color: #F3EBE0;
    font-weight: 600; font-size: 17px;
}
.sh-sidebar-cta__icon {
    font-size: 28px; margin-bottom: 10px; display: block;
}
@media (max-width: 600px) {
    .sh-sidebar-cta__grid { grid-template-columns: 1fr; }
}


/* ── Guide theme overrides (matches Elementor specificity) ── */
body .elementor .sh-guide,
body .elementor .sh-guide *,
body .elementor .sh-guide p,
body .elementor .sh-guide h1,
body .elementor .sh-guide h2,
body .elementor .sh-guide h3,
body .elementor .sh-guide li,
body .elementor .sh-guide td,
body .elementor .sh-guide th,
body .elementor .sh-guide blockquote,
body .elementor .sh-guide a,
body .elementor .sh-guide span,
.elementor-widget-text-editor .sh-guide p,
.elementor-widget-text-editor .sh-guide h2,
.elementor-widget-text-editor .sh-guide li {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
body .elementor .sh-guide h2,
.elementor-widget-text-editor .sh-guide h2 {
    color: #4A4A4A !important;
}

/* ── Feebeo — Sitewide Background ── */
body,
body.page-template-elementor_canvas,
body.page-template-default,
.site,
.elementor {
    background-color: #F3EBE0 !important;
}

/* ── Feebeo Rounded Containers ── */
.sh-panel,
.sh-trust-bar,
.sh-differentiators,
.sh-disruption,
.sh-email-capture,
.sh-inline-enquiry,
.sh-consultancy-enquiry,
.sh-testimonials,
.sh-areas,
.sh-services,
.sh-intro,
.cta-section {
    border-radius: 12px !important;
    margin-bottom: 24px;
    overflow: hidden;
}


/* ── Tribunal Fix: Elementor body content typography (excludes hero) ── */
body .elementor .elementor-widget-text-editor,
body .elementor .elementor-widget-text-editor p,
body .elementor .elementor-widget-text-editor h2,
body .elementor .elementor-widget-text-editor h3,
body .elementor .elementor-widget-text-editor li,
body .elementor .elementor-widget-text-editor a,
body .elementor .elementor-widget-text-editor span {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
body .elementor .elementor-widget-text-editor h2 {
    font-weight: 600 !important;
}
/* Trust bar base colour fix */
.sh-trust-bar .trust-item,
.sh-trust-bar .trust-badge {
    color: #F3EBE0 !important;
}
/* ── Feebeo Text on Dark Backgrounds (Elementor content) ── */
.sh-trust-bar *,
.cta-section *,
.sh-areas *,
.sh-hub-cta *,
.sh-article-hero * {
    -webkit-text-fill-color: #F3EBE0;
}
.sh-trust-bar a,
.cta-section a,
.sh-areas a {
    -webkit-text-fill-color: #F3EBE0;
}

/* ── Renovation Guide ── */
.sh-guide,
article.sh-guide,
.elementor-widget-text-editor .sh-guide {
    max-width: 780px;
    margin: 0 auto;
    padding: 48px 24px 80px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 18px !important;
    line-height: 1.75;
    color: #4A4A4A !important;
}
.sh-guide__header { text-align: center; margin-bottom: 32px; }
.sh-guide__logo { display: block; margin: 0 auto 24px; width: 200px; height: auto; }
body .elementor .sh-guide.sh-guide .sh-guide__header h1,
.sh-guide__header h1 {
    font-size: 36px !important;
    font-weight: 700;
    color: #4A4A4A;
    margin-bottom: 8px;
    line-height: 1.2;
}
body .elementor .sh-guide.sh-guide p.sh-guide__subtitle,
body .elementor .sh-guide .sh-guide__subtitle {
    font-size: 1.1em !important;
    color: #6b7280 !important;
    margin-bottom: 16px;
}
body .elementor .sh-guide.sh-guide p.sh-guide__meta,
body .elementor .sh-guide .sh-guide__meta,
.elementor-widget-text-editor .sh-guide .sh-guide__meta {
    font-size: 14px !important;
    color: #9ca3af !important;
    letter-spacing: 0.5px;
}
body .elementor .sh-guide.sh-guide h2,
.elementor-widget-text-editor .sh-guide h2,
article.sh-guide h2,
body .elementor .sh-guide h2 {
    font-size: 1.35em !important;
    font-weight: 600 !important;
    color: #4A4A4A !important;
    margin-top: 8px;
    margin-bottom: 16px;
}
body .elementor .sh-guide.sh-guide h3,
body .elementor .sh-guide h3 {
    font-size: 1.1em !important;
    font-weight: 600 !important;
    color: #4A4A4A !important;
    margin-top: 24px;
    margin-bottom: 12px;
}
body .elementor .sh-guide.sh-guide p {
    font-size: 18px !important;
    margin-bottom: 16px;
    color: #4A4A4A !important;
}
.sh-guide strong { color: #4A4A4A !important; font-weight: 600; }
hr.sh-guide__rule,
article.sh-guide hr.sh-guide__rule {
    border: none !important;
    border-top: 2px solid #F07820 !important;
    border-bottom: none !important;
    margin: 40px 0;
    opacity: 0.4;
}
.sh-guide__pull {
    margin: 32px 0;
    padding: 20px 24px;
    border-left: 4px solid #F07820;
    background: #fef7f0;
    border-radius: 0 8px 8px 0;
    font-size: 1.05em;
    font-style: italic;
    color: #4A4A4A;
    font-weight: 500;
    line-height: 1.6;
}
.sh-guide ul {
    margin: 0 0 16px 8px;
    padding: 0;
    list-style: none;
}
.sh-guide ul li {
    padding: 6px 0 6px 24px;
    position: relative;
    color: #4A4A4A !important;
}
.sh-guide ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    width: 8px;
    height: 8px;
    background: #F07820;
    border-radius: 50%;
}
.sh-guide__table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0 24px;
    border-radius: 8px;
    overflow: hidden;
}
.sh-guide__table thead th {
    text-align: left;
    padding: 12px 16px;
    background: #1B2060;
    color: #F3EBE0;
    font-weight: 500;
    font-size: 0.9em;
}
.sh-guide__table thead th:last-child { text-align: right; }
.sh-guide__table tbody td {
    padding: 10px 16px;
    border-bottom: 1px solid #e5e7eb;
}
.sh-guide__table tbody td:last-child { text-align: right; font-weight: 600; color: #4A4A4A; }
.sh-guide__table tbody tr:nth-child(even) { background: #f9fafb; }
.sh-guide__cta {
    text-align: center;
    padding: 40px 24px;
    background: #f9fafb;
    border-radius: 12px;
    margin-top: 8px;
}
.sh-guide__cta h2 { margin-bottom: 20px; }
.sh-guide__cta-link a {
    display: inline-block;
    padding: 14px 36px;
    background: var(--sh-green, #157063) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    text-decoration: none !important;
    border-radius: 8px;
    font-weight: 600;
    font-size: 1.05em;
    text-decoration: none;
    transition: background 0.15s ease;
    margin-top: 12px;
}
.sh-guide__cta-link a:hover { background: #125a50; }
.sh-guide__footer {
    text-align: center;
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid #e5e7eb;
    color: #9ca3af;
    font-size: 0.9em;
}
.sh-guide__version {
    font-size: 0.8em;
    color: #d1d5db;
    margin-top: 4px;
}
@media (max-width: 600px) {
    .sh-guide { padding: 24px 16px 60px; }
    .sh-guide__header h1 { font-size: 28px !important; }
    .sh-guide__pull { padding: 16px 18px; font-size: 0.95em; }
    .sh-guide__table { font-size: 0.9em; }
    .sh-guide__table thead th,
    .sh-guide__table tbody td { padding: 8px 10px; }
}




/* --- Scene panels (3-col illustrations) --- */
.sh-ig-scenes { margin: 36px 0 8px; }
.sh-ig-scenes__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.sh-ig-scene-card {
  background: #fff;
  border: 1px solid rgba(46,59,74,0.10);
  border-radius: 12px;
  overflow: hidden;
}
.sh-ig-scene-svg { width: 100%; height: auto; display: block; }
.sh-ig-scene-body { padding: 18px 20px 22px; }
body .elementor .sh-guide .sh-ig-scene-body h3,
.sh-ig-scene-body h3 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px !important;
  font-weight: 600;
  color: #2E3B4A;
  margin: 0 0 4px;
  letter-spacing: 0;
}
body .elementor .sh-guide .sh-ig-scene-body p,
.sh-ig-scene-body p {
  font-size: 13px !important;
  color: #4A5568;
  line-height: 1.55;
  margin: 0;
}

/* --- Process strip (6-step horizontal) --- */
.sh-ig-process { margin: 36px 0 8px; }
.sh-ig-process__strip {
  display: flex;
  background: #fff;
  border: 1px solid rgba(46,59,74,0.10);
  border-radius: 12px;
  overflow: hidden;
}
.sh-ig-process__step {
  flex: 1;
  padding: 24px 12px 20px;
  text-align: center;
  border-right: 1px solid rgba(46,59,74,0.08);
}
.sh-ig-process__step:last-child { border-right: none; }
.sh-ig-process__num {
  display: block;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 2px;
  color: #C8785E;
  margin-bottom: 10px;
}
.sh-ig-process__step svg {
  width: 48px;
  height: 48px;
  margin: 0 auto 10px;
  display: block;
}
body .elementor .sh-guide .sh-ig-process__step h4,
.sh-ig-process__step h4 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 13px !important;
  font-weight: 600;
  color: #2E3B4A;
  margin: 0;
  letter-spacing: 0;
}

/* --- Featured stat (dark panel) --- */
.sh-ig-stat {
  display: flex;
  align-items: center;
  gap: 20px;
  background: #2E3B4A;
  border-radius: 12px;
  padding: 28px 32px;
  margin: 28px 0 8px;
}
.sh-ig-stat svg { width: 56px; height: 56px; flex-shrink: 0; }
.sh-ig-stat__number {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 1;
  color: #C8785E;
}
.sh-ig-stat__text strong {
  display: block;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #F3EBE0 !important;
  margin-bottom: 2px;
}
.sh-ig-stat__text span {
  font-size: 13px;
  color: rgba(243,235,224,0.65);
  line-height: 1.5;
}

/* --- IG responsive (mobile) --- */
@media (max-width: 767px) {
  .sh-ig-scenes__grid { grid-template-columns: 1fr; }
  .sh-ig-process__strip { flex-direction: column; }
  .sh-ig-process__step {
    border-right: none;
    border-bottom: 1px solid rgba(46,59,74,0.08);
    padding: 18px 16px;
    display: flex;
    align-items: center;
    gap: 14px;
    text-align: left;
  }
  .sh-ig-process__step:last-child { border-bottom: none; }
  .sh-ig-process__num { margin-bottom: 0; min-width: 24px; }
  .sh-ig-process__step svg { width: 36px; height: 36px; margin: 0; flex-shrink: 0; }
  .sh-ig-stat { flex-direction: column; text-align: center; padding: 24px 20px; }
  .sh-ig-stat__number { font-size: 36px; }
}

/* ================================================================
   IG ILLUSTRATED COMPONENTS v2 — Full illustrated editorial sections
   Guide page infographic components with rich SVG illustrations
   Prefix: .sh-ig-  |  Sub-palette: Coral #C8785E, Blue #7A9AB5,
   Sage #8B9E72, Parchment #F3EBE0, Navy #2E3B4A
   ================================================================ */

/* --- Section label --- */
body .elementor .sh-guide .sh-ig-label,
.sh-ig-label {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 600;
  letter-spacing: 2.5px;
  color: #C8785E;
  margin: 0 0 16px !important;
  padding: 0;
}

/* --- Scene panels (3-col illustrated cards) --- */
.sh-ig-scenes { margin: 40px 0 12px; }
.sh-ig-scenes__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.sh-ig-scene-card {
  background: #fff;
  border: 1px solid rgba(46,59,74,0.10);
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow 0.2s ease;
}
.sh-ig-scene-card:hover { box-shadow: 0 6px 24px rgba(46,59,74,0.08); }
.sh-ig-scene-illust { background: #F3EBE0; }
.sh-ig-scene-illust svg { width: 100%; height: auto; display: block; }
.sh-ig-scene-body { padding: 20px 22px 24px; }
body .elementor .sh-guide .sh-ig-scene-body h3,
.sh-ig-scene-body h3 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 17px !important;
  font-weight: 600;
  color: #2E3B4A;
  margin: 0 0 6px !important;
  letter-spacing: 0;
  line-height: 1.3;
}
body .elementor .sh-guide .sh-ig-scene-body p,
.sh-ig-scene-body p {
  font-size: 14px !important;
  color: #4A5568;
  line-height: 1.6;
  margin: 0 !important;
}

/* --- Process strip (6-step horizontal journey) --- */
.sh-ig-process { margin: 40px 0 12px; }
.sh-ig-process__strip {
  display: flex;
  background: #fff;
  border: 1px solid rgba(46,59,74,0.10);
  border-radius: 14px;
  overflow: hidden;
}
.sh-ig-process__step {
  flex: 1;
  padding: 28px 14px 24px;
  text-align: center;
  border-right: 1px solid rgba(46,59,74,0.07);
  transition: background 0.15s ease;
}
.sh-ig-process__step:last-child { border-right: none; }
.sh-ig-process__step:hover { background: rgba(243,235,224,0.4); }
.sh-ig-process__num {
  display: block;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 2.5px;
  color: #C8785E;
  margin-bottom: 14px;
}
.sh-ig-process__icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 12px;
  display: block;
}
body .elementor .sh-guide .sh-ig-process__step h4,
.sh-ig-process__step h4 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600;
  color: #2E3B4A;
  margin: 0 0 3px !important;
  letter-spacing: 0;
}
body .elementor .sh-guide .sh-ig-process__step p,
.sh-ig-process__step p {
  font-size: 12px !important;
  color: #7A8A9A;
  line-height: 1.4;
  margin: 0 !important;
}

/* --- Featured stat (dark Slate Navy panel) --- */
.sh-ig-stat {
  display: flex;
  align-items: center;
  gap: 24px;
  background: #2E3B4A;
  border-radius: 14px;
  padding: 32px 36px;
  margin: 32px 0 12px;
}
.sh-ig-stat__stars { width: 64px; height: 64px; flex-shrink: 0; }
.sh-ig-stat__number {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 52px;
  line-height: 1;
  color: #C8785E;
  flex-shrink: 0;
}
.sh-ig-stat__text strong {
  display: block;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #F3EBE0 !important;
  margin-bottom: 4px;
}
.sh-ig-stat__text span {
  font-size: 14px;
  color: rgba(243,235,224,0.6);
  line-height: 1.55;
}

/* --- IG responsive --- */
@media (max-width: 767px) {
  .sh-ig-scenes__grid { grid-template-columns: 1fr; gap: 16px; }
  .sh-ig-process__strip { flex-direction: column; }
  .sh-ig-process__step {
    border-right: none;
    border-bottom: 1px solid rgba(46,59,74,0.07);
    padding: 20px 18px;
    display: flex;
    align-items: center;
    gap: 16px;
    text-align: left;
  }
  .sh-ig-process__step:last-child { border-bottom: none; }
  .sh-ig-process__num { margin-bottom: 0; min-width: 50px; }
  .sh-ig-process__icon { width: 40px; height: 40px; margin: 0; flex-shrink: 0; }
  .sh-ig-stat {
    flex-direction: column;
    text-align: center;
    padding: 28px 24px;
    gap: 16px;
  }
  .sh-ig-stat__number { font-size: 40px; }
}



/* --- Tenement cutaway --- */
.sh-ig-tenement { margin: 40px 0 12px; }
.sh-ig-tenement__panel {
  background: #fff;
  border: 1px solid rgba(46,59,74,0.10);
  border-radius: 14px;
  overflow: hidden;
  padding: 32px 24px;
}
.sh-ig-tenement__svg {
  width: 100%;
  max-width: 700px;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* --- Red/green flags --- */
.sh-ig-flags { margin: 40px 0 12px; }
.sh-ig-flags__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.sh-ig-flags__col {
  background: #fff;
  border: 1px solid rgba(46,59,74,0.10);
  border-radius: 14px;
  overflow: hidden;
}
.sh-ig-flags__header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(46,59,74,0.06);
}
.sh-ig-flags__header svg { width: 28px; height: 28px; flex-shrink: 0; }
body .elementor .sh-guide .sh-ig-flags__header h3,
.sh-ig-flags__header h3 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 17px !important;
  font-weight: 600;
  margin: 0 !important;
  letter-spacing: 0;
}
.sh-ig-flags__header--red h3 { color: #C8785E; }
.sh-ig-flags__header--green h3 { color: #8B9E72; }
.sh-ig-flags__list {
  list-style: none;
  padding: 8px 20px 20px;
  margin: 0;
}
.sh-ig-flags__list li {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 0;
  border-bottom: 1px solid rgba(46,59,74,0.05);
}
.sh-ig-flags__list li:last-child { border-bottom: none; }
.sh-ig-flags__list li svg { width: 22px; height: 22px; flex-shrink: 0; margin-top: 2px; }
body .elementor .sh-guide .sh-ig-flags__list strong,
.sh-ig-flags__list strong {
  display: block;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600;
  color: #2E3B4A !important;
  margin-bottom: 2px;
}
body .elementor .sh-guide .sh-ig-flags__list span,
.sh-ig-flags__list span {
  font-size: 13px !important;
  color: #4A5568;
  line-height: 1.5;
}
.sh-ig-flags__red { border-top: 3px solid #C8785E; }
.sh-ig-flags__green { border-top: 3px solid #8B9E72; }

@media (max-width: 767px) {
  .sh-ig-flags__grid { grid-template-columns: 1fr; }
  .sh-ig-tenement__panel { padding: 16px 8px; }
}


/* ── Velvet Rope: Password page styling ── */
.sh-velvet-rope {
    max-width: 480px;
    margin: 120px auto 80px;
    text-align: center;
    padding: 48px 32px;
}
.sh-velvet-rope__logo {
    display: block;
    margin: 0 auto 32px;
}
.sh-velvet-rope__heading {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 1.5em !important;
    font-weight: 600 !important;
    color: #4A4A4A !important;
    margin-bottom: 16px;
}
.sh-velvet-rope__text {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 1em;
    color: #6b7280;
    line-height: 1.7;
    margin-bottom: 32px;
}
.sh-velvet-rope__form {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-bottom: 24px;
}
.sh-velvet-rope__input {
    padding: 14px 20px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 1em;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    width: 220px;
    background: #fff;
    color: #4A4A4A;
    outline: none;
    transition: border-color 0.2s;
}
.sh-velvet-rope__input:focus {
    border-color: #077a7e;
}
.sh-velvet-rope__button {
    padding: 14px 32px;
    background: #157063;
    color: #F3EBE0;
    border: none;
    border-radius: 8px;
    font-size: 1em;
    font-weight: 600;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    cursor: pointer;
    transition: background 0.2s;
}
.sh-velvet-rope__button:hover {
    background: #0e5a4f;
}
.sh-velvet-rope__footer {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 0.85em;
    color: #9ca3af;
}
.sh-velvet-rope__footer a {
    color: #157063;
    text-decoration: none;
}
.sh-velvet-rope__footer a:hover {
    text-decoration: underline;
}
/* ── Guide welcome line ── */
.sh-guide__welcome {
    text-align: center;
    font-size: 0.9em;
    color: #6b7280;
    font-style: italic;
    margin-bottom: 8px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
/* ── Velvet Rope: Question gate ── */
.sh-velvet-rope__progress {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 32px;
}
.sh-velvet-rope__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #e5e7eb;
    transition: background 0.3s, transform 0.3s;
}
.sh-velvet-rope__dot--active {
    background: #157063;
    transform: scale(1.3);
}
.sh-velvet-rope__dot--done {
    background: #157063;
}
.sh-velvet-rope__question {
    margin-bottom: 32px;
}
.sh-velvet-rope__q-text {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 1.1em;
    font-weight: 600;
    color: #4A4A4A;
    line-height: 1.6;
    margin-bottom: 24px;
    min-height: 3.2em;
}
.sh-velvet-rope__answers {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 400px;
    margin: 0 auto;
}
.sh-velvet-rope__answer {
    padding: 16px 24px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 0.95em;
    color: #4A4A4A;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    text-align: left;
    line-height: 1.5;
    text-transform: none !important;
    letter-spacing: normal !important;
}
.sh-velvet-rope__answer:hover {
    border-color: #157063;
    background: #f0fdf4;
}
.sh-velvet-rope__unlocked .sh-velvet-rope__q-text {
    font-size: 1.3em;
    color: #157063;
}
@media (max-width: 480px) {
    .sh-velvet-rope { padding: 32px 20px; margin: 80px auto 40px; }
    .sh-velvet-rope__answer { padding: 14px 18px; font-size: 0.9em; }
}

/* ===== Slicer container baseline (added 2026-04-20) =====
   Fixes mobile edge bleed on all .sh-* sections. Every slicer
   shortcode wraps content in <div class="container">, but no
   global .container rule existed — content was flush to viewport
   edge on mobile. Scoped to sh-* sections so theme containers
   elsewhere are untouched. */
section[class^="sh-"] > .container,
section[class*=" sh-"] > .container,
.sh-intro > .container,
.sh-differentiators > .container,
.sh-services > .container,
.sh-steps > .container,
.sh-pricing > .container,
.sh-testimonials > .container,
.sh-secondary-diff > .container,
.sh-areas > .container,
.sh-faq > .container,
.sh-related > .container,
.sh-trust-bar > .container,
.sh-portfolio > .container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px, 4vw, 32px);
  padding-right: clamp(16px, 4vw, 32px);
  box-sizing: border-box;
}
@media (max-width: 767px) {
  section[class^="sh-"] > .container,
  section[class*=" sh-"] > .container {
    padding-left: 14px;
    padding-right: 14px;
  }
}
/* ===== end container baseline ===== */

@media (max-width: 480px) {
  .sh-testimonials .testimonial,
  .sh-differentiators .icon-card,
  .sh-services .icon-card {
    padding: 22px 18px;
  }
}
/* mobile-pad-fix 2026-05-14 - reclaims ~12px text width per card under 480px */

/* AF fix: homepage typography, 48/36/30px Trebuchet headings to the system scale — ref: design-system.md#typography */
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor,
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor p,
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor li,
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor a,
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor span,
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor h2,
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor h3,
body.page-id-14479 .elementor-14479 .elementor-heading-title,
body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry,
body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry * {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor p,
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor li {
  font-size: 18px !important;
  line-height: 1.75 !important;
}
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor h2 {
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-widget-text-editor h3 {
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
}

/* AF fix: hero hard minimum height and oversized mobile type to content-led spacing — ref: design-system.md#typography, design-system.md#spacing */
body.page-id-14479 .elementor-14479 .elementor-element-64ae086 {
  min-height: 0 !important;
  padding: 64px 24px 56px !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-64ae086 > .elementor-container {
  min-height: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-64ae086 .elementor-heading-title {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  color: #F3EBE0 !important;
  -webkit-text-fill-color: #F3EBE0;
  mix-blend-mode: normal !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-3a72c9b .elementor-heading-title {
  font-size: 36px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 1.2px !important;
  text-shadow: none !important;
  text-wrap: balance;
}
body.page-id-14479 .elementor-14479 .elementor-element-8345491 .elementor-heading-title {
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: 1px !important;
  text-shadow: none !important;
  text-wrap: balance;
}
body.page-id-14479 .elementor-14479 .elementor-element-64ae086 .elementor-widget-text-editor a,
body.page-id-14479 .elementor-14479 .elementor-element-64ae086 .elementor-widget-text-editor strong {
  color: #F3EBE0 !important;
  -webkit-text-fill-color: #F3EBE0;
}
body.page-id-14479 .elementor-14479 .elementor-element-64ae086 .elementor-widget-text-editor a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.page-id-14479 .elementor-14479 .elementor-element-3daf5e9 img,
body.page-id-14479 .elementor-14479 .elementor-element-52cce4b .elementor-button,
body.page-id-14479 .elementor-14479 .elementor-element-1a6b420 .elementor-button,
body.page-id-14479 .elementor-14479 .elementor-element-ac34551 .elementor-button {
  border-radius: 8px !important;
  box-shadow: none !important;
}

/* AF fix: enquiry and trust transition from 56px/48px gaps to the 8px spacing rhythm — ref: design-system.md#spacing */
body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry {
  padding: 40px 0 !important;
}
body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry .sh-inline-enquiry__inner {
  gap: 32px !important;
}
body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry h2 {
  margin: 0 0 16px !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  color: #374151 !important;
}
body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry p {
  font-size: 16px !important;
  line-height: 1.75 !important;
  color: #374151 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-1109d16,
body.page-id-14479 .elementor-14479 .elementor-element-1109d16 > .elementor-container {
  min-height: 48px !important;
  margin: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-1109d16 > .elementor-background-overlay {
  background: #f9fafb !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-1109d16 .elementor-element-populated {
  padding: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-674309a {
  padding: 12px 16px !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-674309a .elementor-heading-title,
body.page-id-14479 .elementor-14479 .elementor-element-674309a a {
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  color: #6b7280 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-9436733 {
  gap: 16px 24px !important;
  padding: 24px 32px !important;
  background: #f9fafb !important;
  --overlay-opacity: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-9436733 .elementor-widget-text-editor p,
body.page-id-14479 .elementor-14479 .elementor-element-9436733 .elementor-widget-text-editor span {
  margin: 0 !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: #374151 !important;
}

/* AF fix: Workshop teal/wide copy to orange accent and 780px reading width — ref: design-system.md#colour-palette, design-system.md#horizontal */
body.page-id-14479 .elementor-14479 .elementor-element-697e569 {
  padding: 40px 24px !important;
  border: none !important;
  border-left: 4px solid #F07820 !important;
  border-radius: 0 8px 8px 0 !important;
  background: #fef7f0 !important;
  box-shadow: none !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-697e569 .from-the-workshop {
  max-width: 780px;
  margin: 0 auto;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  color: #374151 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-697e569 .from-the-workshop p {
  margin: 0 0 16px !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 18px !important;
  line-height: 1.75 !important;
  color: #374151 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-697e569 .from-the-workshop h2 {
  margin: 32px 0 16px !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  color: #374151 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-697e569 .from-the-workshop .ftw-right {
  text-align: right;
}
body.page-id-14479 .elementor-14479 .elementor-element-697e569 .from-the-workshop a {
  color: #157063 !important;
  text-underline-offset: 3px;
}
body.page-id-14479 .elementor-14479 .elementor-element-cdd4d87 blockquote {
  margin: 32px 0 !important;
  padding: 20px 24px !important;
  border: none !important;
  border-left: 4px solid #F07820 !important;
  border-radius: 0 8px 8px 0 !important;
  background: #fef7f0 !important;
  box-shadow: none !important;
  color: #374151 !important;
}

/* AF fix: 25/30px rounded shadowed project panels to flat 12px geometry — ref: design-system.md#container-rounding */
body.page-id-14479 .elementor-14479 .elementor-element-e24acd0,
body.page-id-14479 .elementor-14479 .elementor-element-e0d119d,
body.page-id-14479 .elementor-14479 .elementor-element-8a02a92,
body.page-id-14479 .elementor-14479 .elementor-element-209e8fe,
body.page-id-14479 .elementor-14479 .elementor-element-0ecc7ad {
  margin-bottom: 24px !important;
  padding: 32px 24px !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-37e1f81 img,
body.page-id-14479 .elementor-14479 .elementor-element-e24acd0 img,
body.page-id-14479 .elementor-14479 .elementor-element-e0d119d img,
body.page-id-14479 .elementor-14479 .elementor-element-8a02a92 img,
body.page-id-14479 .elementor-14479 .elementor-element-209e8fe img,
body.page-id-14479 .elementor-14479 .elementor-element-0ecc7ad img,
body.page-id-14479 .elementor-14479 .elementor-element-e24acd0 .elementor-element-populated,
body.page-id-14479 .elementor-14479 .elementor-element-e0d119d .elementor-element-populated,
body.page-id-14479 .elementor-14479 .elementor-element-8a02a92 .elementor-element-populated,
body.page-id-14479 .elementor-14479 .elementor-element-209e8fe .elementor-element-populated,
body.page-id-14479 .elementor-14479 .elementor-element-0ecc7ad .elementor-element-populated {
  border-radius: 12px !important;
  box-shadow: none !important;
}

@media (max-width: 600px) {
  body.page-id-14479 .elementor-14479 .elementor-widget-text-editor p,
  body.page-id-14479 .elementor-14479 .elementor-widget-text-editor li {
    font-size: 16px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-64ae086 {
    padding: 24px 16px 72px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-64ae086 .elementor-widget:not(:last-child) {
    margin-bottom: 12px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-3a72c9b {
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 8px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-3a72c9b .elementor-heading-title {
    font-size: 32px !important;
    line-height: 1.15 !important;
    letter-spacing: 1px !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-8345491 {
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 8px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-8345491 .elementor-heading-title {
    font-size: 24px !important;
    line-height: 1.25 !important;
    letter-spacing: 0.8px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-94f65ed {
    --border-radius: 12px;
    --padding-top: 16px;
    --padding-right: 16px;
    --padding-bottom: 16px;
    --padding-left: 16px;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-bad3af5 .elementor-heading-title {
    font-size: 24px !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
  }
  body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry {
    padding: 32px 0 !important;
  }
  body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry .sh-inline-enquiry__inner {
    gap: 16px !important;
  }
  body.page-id-14479 .elementor-14479 .sh-inline-enquiry.sh-inline-enquiry h2 {
    font-size: 24px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-9436733 {
    gap: 12px !important;
    padding: 16px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-697e569 {
    padding: 24px 16px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-697e569 .from-the-workshop p {
    font-size: 16px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-697e569 .from-the-workshop h2 {
    font-size: 24px !important;
    line-height: 1.25 !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-e24acd0,
  body.page-id-14479 .elementor-14479 .elementor-element-e0d119d,
  body.page-id-14479 .elementor-14479 .elementor-element-8a02a92,
  body.page-id-14479 .elementor-14479 .elementor-element-209e8fe,
  body.page-id-14479 .elementor-14479 .elementor-element-0ecc7ad {
    margin-bottom: 24px !important;
    padding: 24px 16px !important;
  }
}

/* AF fix: 80px/wide legacy service summary to 48px rhythm and 780px reading width — ref: design-system.md#spacing, design-system.md#horizontal */
body.page-id-14479 .elementor-14479 .elementor-element-3a0ff06 {
  padding: 48px 24px !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-5d7eeb4 {
  width: 100% !important;
  max-width: 780px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-5d7eeb4 h4 {
  margin: 32px 0 16px !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  color: #374151 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-5d7eeb4 h4:first-of-type {
  margin-top: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-5d7eeb4 p {
  margin: 0 0 16px !important;
  color: #374151 !important;
}

/* AF fix: purple/Trebuchet/30px shadowed guide module to brand colours and flat 12px geometry — ref: design-system.md#typography, design-system.md#colour-palette, design-system.md#container-rounding */
body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 {
  padding: 48px 24px !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article,
body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article * {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article {
  padding: 24px !important;
  box-shadow: none !important;
  overflow: hidden;
}
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 {
  border-radius: 12px 0 0 12px !important;
  background: #1B2060 !important;
  justify-content: center !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-608d153 {
  border-radius: 0 12px 12px 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-d0fa99d {
  margin-top: 24px !important;
  border-radius: 12px 0 0 12px !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-441a4be {
  margin-top: 24px !important;
  border-radius: 0 12px 12px 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article h4,
body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article h5 {
  margin: 32px 0 16px !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article p {
  margin-bottom: 16px !important;
  line-height: 1.75 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 h4,
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 h5,
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 p,
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 strong,
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 span,
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 a:not(.elementor-button),
body.page-id-14479 .elementor-14479 .elementor-element-441a4be h4,
body.page-id-14479 .elementor-14479 .elementor-element-441a4be h5,
body.page-id-14479 .elementor-14479 .elementor-element-441a4be p,
body.page-id-14479 .elementor-14479 .elementor-element-441a4be strong,
body.page-id-14479 .elementor-14479 .elementor-element-441a4be span {
  color: #F3EBE0 !important;
  -webkit-text-fill-color: #F3EBE0;
}
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 a:not(.elementor-button) {
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 .elementor-button {
  background: #F3EBE0 !important;
  color: #157063 !important;
  -webkit-text-fill-color: #157063;
}
body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 .elementor-button {
  border-radius: 8px !important;
  box-shadow: none !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-608d153 .writereview {
  padding: 10px 14px !important;
  border-radius: 8px !important;
  background: #157063 !important;
  color: #F3EBE0 !important;
  -webkit-text-fill-color: #F3EBE0;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
}

/* AF fix: 80px final proof section and 60px heading gap to compact reading rhythm — ref: design-system.md#spacing, design-system.md#horizontal */
body.page-id-14479 .elementor-14479 .elementor-element-8a331aa {
  padding: 48px 24px !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-dd99097 {
  width: 100% !important;
  max-width: 780px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
body.page-id-14479 .elementor-14479 .elementor-element-dd99097 h3 {
  margin: 0 0 16px !important;
}

@media (max-width: 600px) {
  body.page-id-14479 .elementor-14479 .elementor-element-3a0ff06,
  body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2,
  body.page-id-14479 .elementor-14479 .elementor-element-8a331aa {
    padding: 32px 16px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-5d7eeb4 h4,
  body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article h4,
  body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article h5 {
    margin: 24px 0 12px !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 > .e-con-inner {
    gap: 24px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-a6ba0e2 article {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 24px !important;
    border-radius: 12px !important;
  }
  body.page-id-14479 .elementor-14479 .elementor-element-59d7b29 {
    justify-content: flex-start !important;
  }
}
