/* Growyo review additions (2026-09-26). Nothing here is Duda's; every selector is
 * scoped to a gy-* class that only runtime.js or Page.astro's legalize() emits, or
 * to a state the port already renders (pager, nav highlight). */

/* Drawer submenu caret: a ~44px touch target WITHOUT resizing the inline caret
 * (sizing the <span> itself makes it wrap and float away from its label). */
#dm .layout-drawer .gy-sub-parent > a .icon { position: relative; }
#dm .layout-drawer .gy-sub-parent > a .icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 44px;
  height: 44px;
  transform: translate(-50%, -50%);
}

/* Desktop nav: the current page is underlined (Duda's effect-bottom2 rule), but on
 * a sub-page (e.g. /lawn-care) nothing in the top bar was marked because the
 * selected item sits inside a closed dropdown. Mark its top-level parent with the
 * same underline. */
.main-navigation.unifiednav .unifiednav__container:not([data-depth]) > .unifiednav__item-wrap:has(.unav-sub .dmNavItemSelected) > .unav-top-item .nav-item-text::after,
.main-navigation.unifiednav .unifiednav__container:not([data-depth]) > .unifiednav__item-wrap:has(.unav-sub .dmNavItemSelected) > .unav-top-item .nav-item-text::before {
  opacity: 1;
  transform: scaleX(1);
}

/* Blog pager: Duda styles only the active page (the button_1 pill); every other
 * number and the live arrow inherit a pale ink that measured 1.97:1 on white, on
 * live too. Give them the body ink. The active pill and the disabled arrow keep
 * their own treatment. */
#dm .mainBlog .pagination-item:not(.button_1) .pagination-link:not(.disabled) { color: #000 !important; }

/* Legal links under the form: one line, cleared below the floated submit, padding
 * (not margin, which collapses) for the gap above. Alignment follows the submit
 * button (runtime.js legalFit measures it). */
#dm form .gy-form-legal {
  clear: both;
  width: 100%;
  padding: 15px 0 0;
  font-size: 14px;
  line-height: 1.4;
  text-align: left;
  color: #000;
  white-space: nowrap;
}
#dm form .gy-form-legal a { color: inherit; text-decoration: underline; }

/* Legal links under the footer copyright: font, size, ink and alignment are
 * copied from the copyright block by runtime.js legalFit. */
#dm .gy-footer-legal { line-height: 1.6; padding-top: 4px; }
#dm .gy-footer-legal a { color: inherit; text-decoration: underline; }

/* Legal pages: Duda's reset zeroes margins on p/ul/h2, and the site's display
 * heading type is too loud for a policy, so set both. */
#dm .gy-legal-row { padding: 20px 40px 60px; }
.dmMobileBody #dm .gy-legal-row { padding: 10px 20px 40px; }
#dm .gy-legal { max-width: 1200px; margin: 0 auto; text-align: left; }
#dm#dm .gy-legal h2 { margin: 32px 0 10px !important; font-size: 24px !important; line-height: 1.3 !important; letter-spacing: normal !important; text-transform: none !important; }
#dm#dm .gy-legal h3 { margin: 22px 0 8px !important; font-size: 19px !important; line-height: 1.3 !important; letter-spacing: normal !important; text-transform: none !important; }
#dm .gy-legal p { margin: 0 0 12px; line-height: 1.7; }
#dm .gy-legal ul { margin: 0 0 14px; padding-left: 24px; list-style: disc; }
#dm .gy-legal li { margin: 0 0 4px; line-height: 1.6; list-style: disc; }
#dm .gy-legal a { overflow-wrap: anywhere; }

/* /blog-search results heading. The borrowed /blog widget is show-blog-title="false",
 * which hides .blog-name, so the heading needs its own display and type. */
#dm .mainBlog h2.gy-search-heading {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  margin: 0 0 24px;
  padding: 0 10px;
  font-size: 24px;
  line-height: 1.3;
  text-align: left;
  color: #000;
  grid-column: 1 / -1;
}
