/* Client-specific overrides — easytax (survives every mass-convert; linked LAST).
   Operator (2026-07-02): make the orange footer background slightly darker.
   Source footer uses .footer_color background-color #f57f00; darken ~10%. */
#top #footer.footer_color,
#top #footer.footer_color .site-background { background-color: #D76909; }

/* Operator (2026-07-03, extended 2026-07-06): Enfold social icons hover to the
   theme olive-green (#9fae37). Force the hover overlay to BLACK on all sidebar
   social icons (white glyph kept). The mail rule predates the 2nd-round swap that
   replaced the envelope with Facebook / Yelp / Google-Maps; cover all four. */
#top #wrap_all .av-social-link-facebook:hover a,
#top #wrap_all .av-social-link-yelp:hover a,
#top #wrap_all .av-social-link-gmb:hover a,
#top #wrap_all .av-social-link-mail:hover a { background-color: #000000 !important; }
/* Enfold only ships a white-glyph-on-hover rule for KNOWN brands (facebook/yelp);
   our custom `gmb` (Google-Maps) class keeps its grey glyph and vanishes on the
   black hover. Force the glyph white on hover for all three. */
#top #wrap_all .av-social-link-facebook:hover a,
#top #wrap_all .av-social-link-yelp:hover a,
#top #wrap_all .av-social-link-gmb:hover a,
#top #wrap_all .av-social-link-mail:hover a { color: #ffffff !important; }

/* Operator (2026-07-03 SEO batch): visually-hidden keyworded <h1> injected by
   inject-fixes on each content page (Avia renders titles as styled divs/h2 with
   no real H1). Kept off-screen so the pixel-perfect Avia design is untouched. */
.ym-seo-h1{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Operator (2026-07-06 perf pass): WebP served via inject-fixes Fix 23, which wraps
   each <img> in <picture>. Enfold styles the logo and slideshow images with
   DIRECT-CHILD selectors (`.logo a > img`, `.avia-slide-wrap > img`) that stop
   matching once a <picture> sits between; re-assert them through the wrapper so the
   logo reveals (opacity) and slides fill exactly as before. Pixel-identical. */
.logo a > picture{display:inline-block;line-height:0;}
.logo a > picture > img{opacity:1;}
.avia-slideshow .avia-slide-wrap > picture{display:block;width:100%;height:100%;}
.avia-slideshow .avia-slide-wrap > picture > img{width:100%;height:auto;display:block;}

/* Operator (2026-07-06 trust signals): on-page Google-reviews section injected on
   the home page before the footer (inject-fixes Fix 28). Styled to match the site
   accent (#f57f00). Two cards, 2-col → 1-col on mobile; gold stars. */
.ym-reviews-wrap{background:#f7f7f7;padding:64px 0;}
.ym-reviews{max-width:980px;margin:0 auto;text-align:center;}
.ym-reviews-h{font-size:32px;margin:0 0 10px;color:#222;line-height:1.2;}
.ym-reviews-rating{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 34px;flex-wrap:wrap;}
.ym-reviews-rating .ym-rating-num{font-size:26px;font-weight:700;color:#f57f00;line-height:1;}
.ym-reviews-rating .ym-rating-sub{font-size:15px;color:#666;}
.ym-stars{color:#f5a623;font-size:20px;letter-spacing:2px;line-height:1;display:inline-block;}
.ym-reviews-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;text-align:left;}
.ym-review{margin:0;background:#fff;border:1px solid #ececec;border-radius:10px;
  padding:26px 28px;box-shadow:0 2px 10px rgba(0,0,0,.05);display:flex;flex-direction:column;}
.ym-review .ym-stars{font-size:18px;margin-bottom:12px;}
.ym-review-title{font-weight:700;color:#222;margin:0 0 8px;font-size:17px;}
.ym-review-body{color:#444;line-height:1.6;margin:0 0 18px;font-size:15px;}
.ym-review-cite{margin-top:auto;font-style:normal;font-weight:700;color:#222;font-size:15px;}
.ym-review-cite span{font-weight:400;color:#6b6b6b;}
@media only screen and (max-width:767px){
  .ym-reviews-wrap{padding:48px 0;}
  .ym-reviews-h{font-size:26px;}
  .ym-reviews-grid{grid-template-columns:1fr;}
}

/* Operator (2026-07-06): mobile header logo — smaller than desktop. Desktop keeps
   the UNCROPPED square logo (inject-fixes Fix 29 serves the crop only ≤767px); on
   mobile show that cropped wordmark at a reduced height and hug the row to it, and
   vertically CENTER both the logo and the hamburger on the same 64px baseline (the
   burger lives in an absolutely-positioned full-height .main_menu, so it centred to
   a different line than the logo). */
@media only screen and (max-width:767px){
  #top .container_wrap_logo,
  #top .av-logo-container,
  #top .av-logo-container .inner-container,
  #top .logo,
  #top .logo a{height:64px !important;line-height:64px !important;}
  #top .logo img{max-height:46px !important;}
  /* center the logo mark vertically in the row */
  #top .logo a{display:flex !important;align-items:center !important;}
  /* center the hamburger vertically on the same row + keep a right gutter */
  #top #header .main_menu,
  #top #header #avia-menu,
  #top #header .av-burger-menu-main,
  #top #header .av-burger-menu-main > a{
    display:flex !important;align-items:center !important;height:64px !important;}
  #top #header .av-burger-menu-main > a{padding:0 !important;}
  #top #header .main_menu{padding-right:18px !important;}
}

/* Operator (2026-07-06): mobile hero — keep the caption OVERLAID on the photo as a
   single section (don't stack the image below as a separate block) and use a
   FULL-opacity black panel behind the text. Root cause of the stacking: the WebP
   <picture> wrapper (Fix 23) sits between .avia-slide-wrap and <img>, so the shared
   L146 cover rule (`.ym-single-slide .avia-slide-wrap > img`) no longer matched and
   the image fell into flow below the caption. Re-assert the cover on the <picture>
   and overlay the caption on top. Desktop (>1024px) is untouched (approved look). */
@media (max-width:1024px){
  .avia-slideshow.ym-single-slide .avia-slideshow-inner{height:auto !important;padding-bottom:0 !important;}
  .avia-slideshow.ym-single-slide .avia-slide-wrap{position:relative !important;min-height:360px;}
  .avia-slideshow.ym-single-slide .avia-slide-wrap > picture{
    position:absolute !important;top:0;left:0;width:100% !important;height:100% !important;
    z-index:1;display:block;}
  .avia-slideshow.ym-single-slide .avia-slide-wrap > picture > img{
    width:100% !important;height:100% !important;object-fit:cover;object-position:center;display:block;}
  /* Full-width black band, centered in the hero → equal photo above/below (operator
     2026-07-06). 16px side gutters via the caption padding; the box + all its theme
     wrappers go edge-to-edge inside that. */
  .avia-slideshow.ym-single-slide .av-slideshow-caption{
    position:absolute !important;inset:0;height:auto !important;z-index:2;
    display:flex;align-items:center;justify-content:center;padding:0 16px !important;}
  .avia-slideshow.ym-single-slide .caption_container{
    width:100% !important;max-width:none !important;padding:0 !important;margin:0 !important;
    height:auto !important;}
  .avia-slideshow.ym-single-slide .slideshow_caption{width:100% !important;height:auto !important;}
  .avia-slideshow.ym-single-slide .slideshow_inner_caption{
    display:block !important;width:100% !important;max-width:none !important;box-sizing:border-box;
    background:#000 !important;padding:26px 22px !important;}
  .avia-slideshow.ym-single-slide .slideshow_align_caption{display:block !important;text-align:left !important;}
  /* text sizing + spacing: fold the title's translucent chip into the solid panel */
  .avia-slideshow.ym-single-slide .avia-caption-title{
    background:transparent !important;padding:0 !important;margin:0 0 12px !important;
    font-size:22px !important;line-height:1.22 !important;}
  .avia-slideshow.ym-single-slide .avia-caption-content{
    font-size:15px !important;line-height:1.45 !important;margin:0 !important;}
  .avia-slideshow.ym-single-slide .avia-caption-content p{margin:0 !important;}
  .avia-slideshow.ym-single-slide .avia-slideshow-button{margin-top:18px !important;}
}

/* Operator (2026-07-06): make the MOBILE header sticky so the logo + burger stay
   reachable while scrolling. The static build dropped Enfold's sticky JS (the
   `av_always_sticky` class is inert), and `position:sticky` is trapped by
   `#wrap_all{overflow:hidden}` + the av-framed-box body-scroller — so pin with
   `position:fixed` and offset the content by the 92px header height. ≤767px only
   (desktop keeps the left sidebar header). */
@media only screen and (max-width:767px){
  #top #header{position:fixed !important;top:0 !important;left:0 !important;right:0 !important;
    width:100% !important;z-index:9999 !important;background:#ffffff !important;
    box-shadow:0 2px 6px rgba(0,0,0,.12);}
  #top #wrap_all{padding-top:64px !important;}
}

/* Operator (2026-07-06): mobile menu overlay — hover/active link text = brand
   orange (was a generic opacity dim). Covers both the drawer and full-overlay
   skins. */
.ym-mnav-list a:hover,
.ym-mnav-list a:focus{color:#f57f00 !important;opacity:1 !important;}
