/* gy-added (review 2026-10-02) — Growyo pre-launch review fixes.
 *
 * Kept apart from bands.css so the ported/hand-written split stays legible, and
 * linked with a content-hash ?v= from Page.astro so a change is a new URL.
 * Every selector here targets either a gy-added element or a state the runtime
 * sets; the one exception (the tablet header button) is marked. Adapted from
 * client-jrfloreslandscapingservices 21def98 (same template family).
 */

/* ---- Mobile drawer ------------------------------------------------------- */

/* Scroll lock while the drawer is open: the document scrolls <html>, so both
   are locked. */
html.gy-drawer-lock,
body.gy-drawer-lock {
  overflow: hidden !important;
  overscroll-behavior: none;
}

/* Submenu groups — this site's drawer has none today (seven flat links); these
   rules only take effect if a dropdown is ever added. max-height clips the
   CONTENT box, so the <ul>'s own padding is collapsed with it, with !important
   because Duda's sub-pages padding is !important. */
.layout-drawer li.gy-sub-group > ul.unifiednav__container_sub-nav {
  overflow: hidden !important;
  transition: max-height .3s ease-in-out, opacity .3s ease-in-out, padding .3s ease-in-out !important;
}
.layout-drawer li.gy-sub-group:not(.unifiednav__item-wrap_open) > ul.unifiednav__container_sub-nav {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  border-width: 0 !important;
}
#dm .layout-drawer li.gy-sub-group .gy-caret::before { display: inline-block; transition: transform .3s ease; }
#dm .layout-drawer li.gy-sub-group:not(.unifiednav__item-wrap_open) .gy-caret::before { transform: none !important; }
#dm .layout-drawer li.gy-sub-group.unifiednav__item-wrap_open .gy-caret::before { transform: rotate(180deg) !important; }
.layout-drawer .gy-caret { position: relative; cursor: pointer; }
.layout-drawer .gy-caret::after {
  content: "";
  position: absolute;
  left: -14px; right: -14px; top: -14px; bottom: -14px;
}

/* ---- Gallery lightbox ---------------------------------------------------- */

/* PhotoSwipe's base CSS is position:absolute and only its JS promotes it to
   fixed; without that, a lightbox opened after scrolling paints above the
   viewport. Ground solid, controls at live's measured opacity (.75). */
.pswp.gy-pswp {
  position: fixed !important;
  top: 0 !important; left: 0 !important;
  width: 100% !important; height: 100% !important;
  z-index: 2147483000 !important;
}
.pswp.gy-pswp { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
.pswp.gy-pswp .pswp__bg { opacity: 1 !important; }
.pswp.gy-pswp .pswp__top-bar { opacity: 1 !important; }
.pswp.gy-pswp .pswp__button,
.pswp.gy-pswp .pswp__counter { opacity: .75; }
.pswp.gy-pswp .pswp__button:hover { opacity: 1; }
.pswp.gy-pswp .pswp__caption--fake { display: none !important; }

/* ---- Blog search --------------------------------------------------------- */

/* /blog-search: the heading the runtime inserts above the results, in live's
   own type (measured on live's /blog-search?searchTerm=mold 2026-10-02). It is
   the page's <h1>; the term is bold, as on live. */
#dm .gy-search-head {
  margin: 0 0 24px !important;
  text-align: left;
  font-family: Quicksand, "Quicksand Fallback", sans-serif !important;
  font-size: 30px !important;
  line-height: 1.3 !important;
  font-weight: 300 !important;
  color: rgb(43, 43, 43) !important;
}
#dm .gy-search-head strong { font-weight: 700 !important; }
#dm [data-mg-band="m"] .gy-search-head { font-size: 24px !important; }

/* ---- Legal links: footer ------------------------------------------------- */

/* One line directly under the copyright paragraph. The copyright block is
   centred in all three bands (text-align-center on its <p>), so the line is
   centred too. The footer ground is rgb(43,43,43), so white ink, in the
   copyright's own type (Poppins 12px; 10px on phone). */
#dm .gy-footer-legal {
  display: block;
  clear: both;
  padding-top: 0;
  text-align: center;
  font-family: Poppins, "Poppins Fallback", sans-serif;
  font-size: 12px;
  line-height: 1.6;
  white-space: nowrap;
  color: rgb(255, 255, 255);
}
#dm [data-mg-band="m"] .gy-footer-legal { font-size: 10px; }
#dm .gy-footer-legal a,
#dm .gy-footer-legal a:visited { color: rgb(255, 255, 255) !important; text-decoration: none !important; display: inline !important; }
#dm .gy-footer-legal a:hover { color: rgb(244, 215, 143) !important; text-decoration: underline !important; }

/* ---- Legal links: contact form ------------------------------------------- */

/* One line under the submit button, /contact. The button is Duda's FLOATED
   .dmformsubmit, so the line clears it (source order alone leaves it beside the
   button). The cleared float already leaves 20px beneath the button (measured at
   all three bands), so no extra space is added above the line.

   Aligned with the SUBMIT BUTTON, measured 2026-10-02: on desktop and tablet
   the button sits LEFT, its edge 19px in from the form's (869 vs 850 at 1440,
   602 vs 583 at 768), so the line starts on that edge; on phone the button
   spans the column and is centred (42-349 in a 15-375 form), so the line is
   centred. The form sits on white, so the site's dark body ink. */
#dm .gy-form-legal {
  clear: both;
  display: block;
  box-sizing: border-box;
  width: 100%;
  padding-top: 0;
  padding-left: 19px;
  text-align: left;
  font-size: 14px;
  line-height: 1.6;
  white-space: nowrap;
  color: rgb(43, 43, 43);
}
#dm [data-mg-band="m"] .gy-form-legal { padding-left: 0; text-align: center; }
#dm .gy-form-legal a { color: rgb(43, 43, 43) !important; text-decoration: underline !important; display: inline !important; }

/* ---- Legal pages --------------------------------------------------------- */

/* Duda's reset zeroes margin on p/ul/h2, so the rhythm is set explicitly. */
/* The row takes the place of the donor page's body row, which is WHITE and
   pulled up 1-2px over the divider: the hero row above runs ~15px past the
   divider's curve and that white ground is what hides it. Without it a dark
   strip of the hero photo showed under the curve on phone. */
#dm .gy-legal-row { padding: 50px 40px 70px !important; background-color: rgb(255, 255, 255) !important; position: relative; margin-top: -2px !important; }
#dm [data-mg-band="m"] .gy-legal-row,
#dm .dmBody[data-mg-band="m"] .gy-legal-row { padding: 30px 15px 50px !important; }
#dm .gy-legal { max-width: 900px; margin: 0 auto !important; text-align: left; color: rgb(43, 43, 43); }
#dm .gy-legal p { margin: 0 0 14px !important; font-size: 16px; line-height: 1.7; }
#dm .gy-legal .gy-legal-date { font-weight: 700; margin-bottom: 20px !important; }
#dm .gy-legal h2 { margin: 34px 0 12px !important; font-size: 26px !important; line-height: 1.3 !important; font-weight: 700 !important; text-align: left; color: rgb(43, 43, 43); }
#dm .gy-legal h3 { margin: 22px 0 10px !important; font-size: 20px !important; line-height: 1.3 !important; font-weight: 700 !important; text-align: left; color: rgb(43, 43, 43); }
#dm .gy-legal ul { margin: 0 0 14px !important; padding-left: 24px !important; list-style: disc outside !important; }
#dm .gy-legal li { margin: 0 0 6px !important; font-size: 16px; line-height: 1.7; list-style: disc outside !important; }
#dm .gy-legal a { color: rgb(225, 3, 13) !important; text-decoration: underline !important; }
#dm [data-mg-band="m"] .gy-legal h2 { font-size: 22px !important; }

/* ---- One <h1> per page: type pins --------------------------------------- */

/* tools/review-content-fixes.py retags headings so each page has exactly one
   <h1>. A retag changes which of Duda's tag rules applies, so the type each
   element had BEFORE the retag is restated here, per band (measured 2026-10-02
   at 1440 / 768 / 390, identical before and after: font, size, line-height, box
   and document height).
   .gy-was-h1 — an <h2> that was an <h1>: Duda's h1 size (40px; 30px on phone)
                where its h2 rule would give 28px / 24px. Family and weight are
                the same for both tags (Quicksand 400).
   .gy-h1     — the home hero, a <p> that is now the <h1>: its size comes from
                its own size-72 / font-size-72 classes and is unchanged, but the
                family would switch to the heading font, so the paragraph font is
                restated. */
#dm .dmBody h2.gy-was-h1,
#dm .dmBody h2.gy-was-h1 span { font-size: 40px !important; }
#dm .dmBody[data-mg-band="m"] h2.gy-was-h1,
#dm .dmBody[data-mg-band="m"] h2.gy-was-h1 span { font-size: 30px !important; }
#dm .dmBody h1.gy-h1,
#dm .dmBody h1.gy-h1 span { font-family: Poppins, "Poppins Fallback" !important; }

/* ---- Tablet header: the phone button on ONE line ------------------------- */

/* Not a gy-added element: the header's "(507) 993-7791" button. On the tablet
   band its column is 147px and the button 133x55, but the 18px label needs
   ~135px plus padding, so it wrapped to two lines (text box 131x74) and the
   second line spilled out of the pill — on live too. The label is kept on one
   line and stepped down to 15px on this band only; the button's own box is
   unchanged. Desktop (182px button) and phone (icon button) are untouched. */
body.dmTabletBody #dm a.dmButtonLink.u_1377576236 .text {
  white-space: nowrap !important;
  font-size: 15px !important;
}
