
/* tsd-accessibility-fixes */

/* Fix 1: Links must be distinguishable beyond color alone - add underline */
a:not([class]),
.elementor-widget-text-editor a,
.elementor-post__excerpt a,
.wp-block-paragraph a {
    text-decoration: underline !important;
}

/* Fix 2: Ensure sufficient focus outline for keyboard navigation */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
[tabindex]:focus {
    outline: 3px solid #2563eb !important;
    outline-offset: 2px !important;
}

/* Fix 3: Ensure skip-to-content link is available for screen readers */
.skip-to-content {
    position: absolute;
    top: -100%;
    left: 0;
    background: #000;
    color: #fff;
    padding: 8px 16px;
    z-index: 99999;
    font-size: 14px;
}
.skip-to-content:focus {
    top: 0;
}

/* Fix 4: Non-composited animations - prefer transform/opacity for animations */
* {
    will-change: auto;
}

/* Fix 5: Improve contrast for any light-gray text on white/light backgrounds */
.elementor-widget-text-editor p,
.elementor-widget-heading .elementor-heading-title {
    color: inherit;
}

/* tsd-layout-fixes */
.ts-gwork-grid { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 14px; max-width: 1080px; margin: 0 auto;}.ts-gwork-grid > * { flex: 0 1 calc((100% - 28px) / 3); max-width: calc((100% - 28px) / 3); min-width: 260px;}@media (max-width: 768px) { .ts-gwork-grid { gap: 10px; } .ts-gwork-grid > * { flex: 0 1 calc((100% - 10px) / 2); max-width: calc((100% - 10px) / 2); min-width: 0; }}@media (max-width: 460px) { .ts-gwork-grid > * { flex: 0 1 100%; max-width: 100%; }}.ts-prune-bad { grid-column: 1 / -1 !important; max-width: 680px; margin-left: auto !important; margin-right: auto !important; width: 100%;}.ts-tip-box { text-align: left !important; }.ts-tip-box > h3 { text-align: center !important; }.ts-tip-list { text-align: left !important; max-width: 820px; margin: 0 auto !important; padding-left: 1.15em; list-style: disc;}.ts-tip-list li { display: list-item !important; text-align: left !important; margin-bottom: .6em; line-height: 1.7;}.ts-tip-list li > strong { display: inline !important; margin-right: .25em; }.ts-tip-list li > a { display: inline !important; white-space: normal; }[id^="cat-"] { display: block !important;}[id^="cat-"] > * { max-width: 900px; margin-left: auto !important; margin-right: auto !important;}[id^="cat-"] > h2,[id^="cat-"] > h3 { text-align: center !important; max-width: 900px;}[id^="cat-"] details,[id^="cat-"] .ts-faq-item { max-width: 900px; margin-left: auto !important; margin-right: auto !important;}a.ts-svc-card,a.ts-svc-card * { text-decoration: none !important;}a.ts-svc-card h3,a.ts-svc-card p { text-decoration: none !important;}a.ts-svc-card p a:not(.ts-cta-link) { text-decoration: underline !important;}.ts-svc-grid { align-items: stretch; }.ts-svc-grid > * { height: 100%; }.ts-svc-mini,a.ts-svc-mini,a.ts-svc-mini * { text-decoration: none !important; }.ts-species-grid { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 18px; }.ts-species-grid > * { flex: 0 1 calc((100% - 72px) / 5); min-width: 220px; }@media (max-width: 900px) { .ts-species-grid > * { flex: 0 1 calc((100% - 36px) / 3); } }@media (max-width: 560px) { .ts-species-grid > * { flex: 0 1 100%; } }
/* tsd-perf-anim */
.ts-btn-p::after,.tsh-cta::after,.tsh-mcall::after,.tsd-fab a::after,.tsf-cta::after,.ts-svc-grid a::after,.ts-btn::after,a.ts-svc-card .ts-card-cta,.ts-svc-grid a.ts-svc-card span.ts-card-cta,.ts-stat::before{animation-iteration-count:3!important}.ts-hero h1,.ts-page-top h1,.ts-hero-inner h1{animation:none!important;opacity:1!important;transform:none!important}@media(prefers-reduced-motion:reduce){.ts-btn-p::after,.tsh-cta::after,.tsh-mcall::after,.tsd-fab a::after,.tsf-cta::after,.ts-svc-grid a::after,.ts-btn::after,a.ts-svc-card .ts-card-cta,.ts-svc-grid a.ts-svc-card span.ts-card-cta,.ts-stat::before,.ts-hero-inner::before,.ts-page-top::before{animation:none!important}}
/* tsd-ui-consistency */

/* ---------- 1. one container width sitewide ---------- */
.ts-wrap{max-width:1600px !important;margin-left:auto !important;margin-right:auto !important}
@media(max-width:1640px){.ts-wrap{max-width:calc(100% - 40px) !important}}
/* BAND ALIGNMENT 2026-07-26: header/content/footer were three different widths. Section gutter removed so content uses the same box as the footer; footer escapes its Elementor 20px gutter above 1640. */
section:has(> .ts-wrap){padding-left:0 !important;padding-right:0 !important}
@media(min-width:1641px){.tsf-wrap{margin-left:-20px !important;margin-right:-20px !important}}
.tsf-wrap{max-width:1600px !important}
@media(max-width:1640px){.tsf-wrap{max-width:calc(100% - 40px) !important}}
/* MOBILE GUTTER FIX 2026-07-25 */
@media(max-width:768px){
  section:has(> .ts-wrap){padding-left:0 !important;padding-right:0 !important}
  .ts-wrap{max-width:100% !important;margin-left:0 !important;margin-right:0 !important;padding-left:18px !important;padding-right:18px !important}
  body section:not([class]) > .ts-wrap.ts-wrap.ts-wrap{padding-left:20px !important;padding-right:20px !important}
  .tsf-bottom{flex-wrap:wrap !important;row-gap:10px !important}
  .tsf-bottom > *{width:100% !important;min-width:0 !important}
  .tsf-bottom nav{flex-wrap:wrap !important}
  /* HERO WIDTH 2026-07-25: hero text column was 267px on a 390px phone (ast-container 20 + hero 14 + hero-inner 20 per side). Hero now goes edge to edge with a single 16px gutter. */
  .ts-hero{margin-left:-20px !important;margin-right:-20px !important}
  .ts-hero{padding-left:0 !important;padding-right:0 !important}
  .ts-hero-inner{max-width:100% !important;padding-left:16px !important;padding-right:16px !important}
}

/* ---------- 2. one in-content link colour (never green) ---------- */
.ts-wrap p a:not(.ts-cta-link):not([class*=btn]):not([class*=chip]):not([class*=pill]),
.ts-wrap li a:not(.ts-cta-link):not([class*=btn]),
.ts-wrap td a:not(.ts-cta-link),
.ts-svc-card p a:not(.ts-cta-link){
  color:#92400e !important;
  text-decoration:underline !important;
  text-decoration-thickness:1px !important;
  text-underline-offset:2px !important;
}
.ts-wrap p a:not(.ts-cta-link):hover,
.ts-wrap li a:not(.ts-cta-link):hover,
.ts-svc-card p a:not(.ts-cta-link):hover{color:#d4a017 !important}

/* on dark green bands the darker gold is unreadable — use bright gold */
.tsgb-band .ts-wrap p a:not(.ts-cta-link),
.tsgb-band .ts-wrap li a:not(.ts-cta-link),
.tsd-on-dark p a:not(.ts-cta-link),
.tsd-on-dark li a:not(.ts-cta-link){color:#f5c518 !important}
.tsgb-band .ts-wrap p a:not(.ts-cta-link):hover,
.tsd-on-dark p a:not(.ts-cta-link):hover{color:#fbbf24 !important}

/* ---------- 3 + 4. stars and the Google Review label, always gold ---------- */
.tsd-stars, .tsd-stars *{color:#f5c518 !important;letter-spacing:2px !important}
.tsd-goldlabel{color:#f5c518 !important;font-weight:700 !important}

/* ---------- 5. testimonial: stars above the quote ---------- */
.tsd-testimonial{display:flex !important;flex-direction:column !important;align-items:center !important;text-align:center !important;gap:10px !important}
.tsd-testimonial .tsd-stars{order:-1 !important;font-size:1.5rem !important;line-height:1 !important;margin:0 0 4px !important}
.tsd-testimonial p{margin:0 !important}
@media(max-width:768px){
  .tsd-testimonial{gap:8px !important}
  .tsd-testimonial .tsd-stars{font-size:1.35rem !important}
}

/* tsd-gold-links */

:root{ --tsd-link:#8a6a00; --tsd-link-hover:#6d5400; --tsd-link-dark:#fbbf24; --tsd-link-dark-hover:#fcd34d; }

/* ---------- every editorial link, light backgrounds ---------- */
main a:not([class*="btn"]):not([class*="button"]):not(.ts-cta-link):not([class*="chip"]):not([class*="pill"]):not([class*="logo"]),
article a:not([class*="btn"]):not([class*="button"]):not(.ts-cta-link),
.entry-content a:not([class*="btn"]):not([class*="button"]):not(.ts-cta-link),
.ts-wrap p a:not(.ts-cta-link):not([class*="btn"]),
.ts-wrap li a:not(.ts-cta-link):not([class*="btn"]),
.ts-wrap td a:not(.ts-cta-link),
.elementor-widget-text-editor a:not([class*="btn"]):not([class*="elementor-button"]),
.elementor-widget-theme-post-content a:not([class*="btn"]):not([class*="elementor-button"]),
#tsd-interlinks a:not([class*="btn"]),
#tsd-interlinks li a,
.tsd-interlinks a:not([class*="btn"]),
.ts-svc-card p a:not(.ts-cta-link){
  color: var(--tsd-link) !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 2px !important;
}
main a:not([class*="btn"]):not([class*="button"]):not(.ts-cta-link):hover,
article a:not([class*="btn"]):not([class*="button"]):hover,
.entry-content a:not([class*="btn"]):not([class*="button"]):hover,
.elementor-widget-text-editor a:not([class*="btn"]):hover{
  color: var(--tsd-link-hover) !important;
}

/* ---------- dark bands need the bright gold for contrast ---------- */
.tsgb-band a:not([class*="btn"]):not(.ts-cta-link),
.tsd-on-dark a:not([class*="btn"]):not(.ts-cta-link),
.ts-dark a:not([class*="btn"]):not(.ts-cta-link),
[data-tsd-dark] a:not([class*="btn"]):not(.ts-cta-link){
  color: var(--tsd-link-dark) !important;
}
.tsgb-band a:not([class*="btn"]):hover,
.tsd-on-dark a:not([class*="btn"]):hover,
[data-tsd-dark] a:not([class*="btn"]):hover{
  color: var(--tsd-link-dark-hover) !important;
}

/* ---------- never repaint interface chrome ---------- */
header a, footer a, nav a,
.elementor-button, a.elementor-button,
[class*="breadcrumb"] a, .skip-link,
a[class*="logo"], a img { color: inherit !important; text-decoration: none !important; }
header a, footer a, nav a { text-decoration: none !important; }

/* tsd-heading-visual */

.ts-wrap h3.tsd-vis-h4, main h3.tsd-vis-h4, article h3.tsd-vis-h4{
  font-size:1.2rem !important; font-weight:800 !important; color:#062918 !important;
}
.ts-wrap h2.tsd-vis-h3, main h2.tsd-vis-h3, article h2.tsd-vis-h3{
  font-size:1.4rem !important; font-weight:700 !important; color:#06752e !important;
}

/* tsd-area-fixes */
html body a.ts-svc-card,html body a.ts-svc-card *,html body a.ts-svc-mini,html body a.ts-svc-mini *,html body a.ts-svc-card .ts-card-cta{text-decoration:none !important;}html body a.ts-svc-card p a:not(.ts-cta-link){text-decoration:underline !important;}html body .ts-svc-grid{display:flex !important;flex-wrap:wrap;justify-content:center;gap:18px;}html body .ts-svc-grid>*{flex:0 1 calc((100% - 36px)/3);min-width:250px;}@media(max-width:900px){html body .ts-svc-grid>*{flex:0 1 calc((100% - 18px)/2);}}@media(max-width:560px){html body .ts-svc-grid>*{flex:0 1 100%;}}html body .ts-species-grid{display:flex !important;flex-wrap:wrap;justify-content:center;gap:18px;}html body .ts-species-grid>*{flex:0 1 calc((100% - 72px)/5);min-width:220px;}@media(max-width:900px){html body .ts-species-grid>*{flex:0 1 calc((100% - 36px)/3);}}@media(max-width:560px){html body .ts-species-grid>*{flex:0 1 100%;}}html body .ts-wrap.ts-blog-body{margin-left:auto !important;margin-right:auto !important;}html body .ts-price-table{margin-left:auto !important;margin-right:auto !important;max-width:900px;}html body .ts-price-table td:last-child,html body .ts-price-table th:last-child{text-align:right;}
/* tsd-layout-v3 */
html body .ts-svc-grid{display:flex!important;flex-wrap:wrap;align-items:stretch!important;justify-content:center;gap:14px}html body .ts-svc-grid>.tsd-testimonial,html body .ts-svc-grid>.ts-svc-mini,html body .ts-svc-grid>.ts-svc-card{align-self:stretch!important;height:auto!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important}a.ts-svc-mini,a.ts-svc-mini *,a.ts-svc-card,a.ts-svc-card *{text-decoration:none!important}.ts-why-grid{align-items:center!important}@media(max-width:900px){.ts-why-grid{align-items:start!important}}.ts-wrap>ul{display:inline-block;text-align:left;max-width:640px;margin:0 auto 1.2em;padding-left:0;list-style:none}.ts-wrap>ul>li{margin:0 0 .5em;line-height:1.7}.ts-wrap>ul>li>strong{display:inline-block;min-width:110px}html body .ts-gwork-grid{display:flex!important;flex-wrap:wrap;justify-content:center;gap:14px;max-width:1080px;margin:0 auto}.ts-tip-box{text-align:left!important}.ts-tip-box>h3{text-align:center!important}.ts-tip-list li{display:list-item!important;text-align:left!important}html body .ts-blog-body ul:not([class]),html body .ts-wrap ul:not([class]){display:block!important;list-style:disc!important;padding-left:1.3em!important;margin:0 auto 1.4em!important;max-width:820px;text-align:left!important}html body .ts-blog-body ul:not([class])>li,html body .ts-wrap ul:not([class])>li{display:list-item!important;width:auto!important;flex:none!important;margin:0 0 .55em!important;line-height:1.7}html body table th{color:#14532d!important;background:#f0ede6!important}html body .ts-price-header span{color:#14532d!important}html body .ts-price-row.ts-price-header{background:#e8e4d9!important}