/* Small fixes that GoDaddy's scripts used to apply at runtime. */

/* floating form labels */
form.dm-form input:focus + label,
form.dm-form input.dm-filled + label { font-size: 12px; top: 8px; }

/* quote form on service pages: hidden until "Get a quote" is clicked, then shown in place */
[data-aid="CONTACT_FORM_CONTAINER_REND"][id^="desktop-form-expanded"] { visibility: hidden; pointer-events: none; }
.dm-form-open [data-aid="CONTACT_FORM_CONTAINER_DESKTOP"] { display: block !important; }
.dm-form-open [data-aid="CONTACT_FORM_CONTAINER_MOBILE"],
.dm-form-open button[data-aid="CONTACT_FORM_REVEAL_BUTTON_REND"] { display: none !important; }
.dm-form-open [data-aid="CONTACT_FORM_CONTAINER_REND"][id^="desktop-form-expanded"] {
  visibility: visible; pointer-events: auto; opacity: 1; transform: none;
  position: static; width: auto; height: auto; padding: 0; margin-top: 24px; background: transparent;
}

.dm-form-msg { margin: 16px 0 0; font-family: 'Open Sans', arial, sans-serif; font-size: 16px; color: rgb(27, 27, 27); }

/* ---- sections added by the build (new page copy), styled to match the site ---- */
.dm-widget { --dm-green: rgb(141, 227, 138); --dm-tint: rgb(226, 250, 225); --dm-ink: rgb(21, 21, 21);
  --dm-link: rgb(73, 125, 71); --dm-line: rgba(73, 125, 71, 0.25);
  font-family: 'Open Sans', arial, sans-serif; font-size: 16px; line-height: 1.5; color: rgb(87, 87, 87); }
.dm-widget *, .dm-widget *::before, .dm-widget *::after { box-sizing: border-box; }
.dm-section { padding: 64px 0; background: #fff; }
.dm-section.dm-alt { background: var(--dm-tint); }
.dm-container { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.dm-narrow { max-width: 800px; margin-left: auto; margin-right: auto; }
.dm-center { text-align: center; }

.dm-h1 { font-family: 'Playfair Display', Georgia, serif; font-size: 40px; font-weight: 400;
  line-height: 1.2; letter-spacing: 0.01em; color: var(--dm-ink); margin: 0 0 20px; text-wrap: balance; }
.dm-h2 { font-family: 'Playfair Display', Georgia, serif; font-size: 30px; font-weight: 400;
  line-height: 1.25; letter-spacing: 0.01em; color: var(--dm-ink); margin: 0 0 24px; text-wrap: balance; }
.dm-h2.dm-center { margin-bottom: 40px; }
.dm-h2.dm-center::after { content: ""; display: block; width: 56px; height: 3px; margin: 16px auto 0;
  background: var(--dm-green); }
.dm-h3, .dm-q { font-family: 'Open Sans', arial, sans-serif; font-size: 18px; font-weight: 600;
  line-height: 1.35; letter-spacing: 0.01em; color: var(--dm-ink); margin: 0 0 10px; }
.dm-eyebrow { font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--dm-link);
  margin: 0 0 16px; }

.dm-prose > :first-child { margin-top: 0; }
.dm-prose > :last-child { margin-bottom: 0; }
.dm-prose p { margin: 0 0 16px; }
.dm-prose a, a.dm-link { color: var(--dm-link); text-decoration: underline; text-underline-offset: 3px; }
.dm-prose a:hover, a.dm-link:hover { color: rgb(48, 84, 47); }
.dm-prose strong { font-weight: 700; color: var(--dm-ink); }
.dm-prose.dm-center { margin-bottom: 32px; }

/* buttons */
.dm-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }
.dm-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 56px;
  padding: 8px 32px; background: var(--dm-green); color: rgb(11, 12, 11); border: 2px solid var(--dm-green);
  font-family: 'Open Sans', arial, sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0.214em;
  text-transform: uppercase; text-decoration: none; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.dm-btn:hover { background: rgb(118, 208, 115); border-color: rgb(118, 208, 115); }
.dm-btn-line { background: transparent; border-color: rgb(21, 21, 21); }
.dm-btn-line:hover { background: rgb(21, 21, 21); border-color: rgb(21, 21, 21); color: #fff; }
.dm-btn-dark { background: rgb(21, 21, 21); border-color: rgb(21, 21, 21); color: #fff; }
.dm-btn-dark:hover { background: rgb(48, 84, 47); border-color: rgb(48, 84, 47); }
/* the site's own stylesheet makes every tel: link inherit colour and size; buttons opt back out */
.dm-widget a.dm-btn[href^="tel:"] { color: rgb(11, 12, 11); font-size: 14px; text-decoration: none; }
.dm-widget a.dm-btn.dm-btn-dark[href^="tel:"] { color: #fff; }
.dm-btn:focus-visible, .dm-pills a:focus-visible, .dm-faq summary:focus-visible { outline: 3px solid rgb(21, 21, 21); outline-offset: 3px; }

/* hero: headline and buttons beside one of Dan's photos */
.dm-hero { background: var(--dm-tint); padding: 64px 0 72px; }
.dm-hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 64px; align-items: center; }
.dm-lead { font-size: 18px; line-height: 1.6; margin: 0; }
.dm-hero-media { position: relative; margin: 0 16px 16px 0; }
.dm-hero-media::before { content: ""; position: absolute; inset: 16px -16px -16px 16px; background: var(--dm-green); }
.dm-hero-media img { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }

/* fact tiles under the hero */
.dm-facts { background: #fff; border-bottom: 1px solid var(--dm-line); }
.dm-facts-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dm-facts-list li { display: flex; align-items: center; gap: 14px; padding: 28px 20px; font-size: 14px; line-height: 1.45; }
.dm-facts-list li + li { border-left: 1px solid var(--dm-line); }
.dm-facts-list strong { font-size: 15px; font-weight: 700; color: var(--dm-ink); }
.dm-icon { flex: 0 0 auto; width: 48px; height: 48px; padding: 11px; border-radius: 50%; background: var(--dm-tint); color: var(--dm-link); }

/* running text in two columns */
.dm-columns { columns: 2; column-gap: 56px; }
.dm-columns p { break-inside: avoid; }

/* heading left, text right */
.dm-aside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.9fr); gap: 56px; align-items: start; }
.dm-aside > .dm-h2, .dm-aside > div:first-child { position: sticky; top: 24px; }
.dm-aside .dm-h2 { padding-top: 18px; border-top: 3px solid var(--dm-green); }

/* cards */
.dm-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; }
.dm-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dm-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dm-cols-2 > .dm-card:last-child:nth-child(odd) { grid-column: 1 / -1; }   /* odd one out spans the row */
.dm-card { position: relative; background: #fff; padding: 32px 28px; border-top: 3px solid var(--dm-green);
  box-shadow: 0 1px 2px rgba(21, 21, 21, 0.06), 0 8px 24px rgba(21, 21, 21, 0.05); }
.dm-section:not(.dm-alt) .dm-card { background: var(--dm-tint); box-shadow: none; }
.dm-num { display: block; font-family: 'Playfair Display', Georgia, serif; font-size: 28px; line-height: 1;
  color: var(--dm-link); margin: 0 0 14px; }
.dm-card-link { transition: transform .15s ease, box-shadow .15s ease; }
.dm-card-link:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(21, 21, 21, 0.08), 0 14px 32px rgba(21, 21, 21, 0.1); }
.dm-card-link h3 a { color: inherit; text-decoration: none; }
.dm-card-link h3 a::after { content: ""; position: absolute; inset: 0; }   /* whole card is the link */
.dm-more { display: inline-block; margin-top: 16px; font-size: 13px; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--dm-link); }
.dm-more::after { content: " \2192"; }

/* checklists */
.dm-checks { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; }
.dm-checks li { position: relative; padding: 2px 0 2px 38px; }
.dm-checks li::before { content: ""; position: absolute; left: 0; top: 0; width: 26px; height: 26px; border-radius: 50%;
  background: var(--dm-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23151515' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 12.5 3.2 3.2L17 9'/%3E%3C/svg%3E") center / 18px no-repeat; }
.dm-alt .dm-checks li::before { background-color: #fff; box-shadow: inset 0 0 0 2px var(--dm-green); }
.dm-mark-dot li::before { background-image: none; width: 12px; height: 12px; left: 7px; top: 8px; box-shadow: 0 0 0 5px rgba(141, 227, 138, 0.35); background-color: var(--dm-link); }
.dm-alt .dm-mark-dot li::before { background-color: var(--dm-link); box-shadow: 0 0 0 5px #fff; }

/* numbered steps */
.dm-steps { list-style: none; margin: 0 0 24px; padding: 0; counter-reset: dm-step; }
.dm-steps li { position: relative; counter-increment: dm-step; padding: 0 0 32px 76px; }
.dm-steps li:last-child { padding-bottom: 0; }
.dm-steps li::before { content: counter(dm-step); position: absolute; left: 0; top: 0; width: 48px; height: 48px;
  border-radius: 50%; background: var(--dm-green); color: var(--dm-ink); font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px; line-height: 48px; text-align: center; }
.dm-steps li::after { content: ""; position: absolute; left: 23px; top: 56px; bottom: 8px; width: 2px; background: var(--dm-line); }
.dm-steps li:last-child::after { display: none; }
.dm-steps h3 { padding-top: 11px; }
.dm-steps p { margin: 0; }

/* quote band */
.dm-band { background: var(--dm-green); padding: 48px 0; color: rgb(21, 21, 21); }
.dm-band-in { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.dm-band .dm-h2 { margin: 0 0 8px; }
.dm-band p { margin: 0; }
.dm-band .dm-actions { margin: 0; flex: 0 0 auto; }

/* FAQ accordion */
.dm-faq { border-top: 1px solid var(--dm-line); }
.dm-faq-item { border-bottom: 1px solid var(--dm-line); }
.dm-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 4px; }
.dm-faq summary::-webkit-details-marker { display: none; }
.dm-faq summary::after { content: ""; flex: 0 0 auto; width: 14px; height: 14px; margin-right: 6px;
  border-right: 2px solid var(--dm-link); border-bottom: 2px solid var(--dm-link); transform: rotate(45deg) translate(-3px, -3px); transition: transform .2s ease; }
.dm-faq-item[open] summary::after { transform: rotate(225deg) translate(-3px, -3px); }
.dm-faq .dm-q { margin: 0; }
.dm-faq summary:hover .dm-q { color: var(--dm-link); }
.dm-faq .dm-prose { padding: 0 44px 24px 4px; }

/* area links as pills */
.dm-pills { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.dm-pills a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 20px; border: 1.5px solid var(--dm-link);
  color: var(--dm-link); background: #fff; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; text-decoration: none;
  transition: background-color .15s ease, color .15s ease; }
.dm-pills a:hover { background: var(--dm-link); color: #fff; }

@media (max-width: 1023px) {
  .dm-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .dm-hero-media { order: -1; max-width: 560px; }
  .dm-facts-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dm-facts-list li:nth-child(3) { border-left: 0; }
  .dm-facts-list li:nth-child(n+3) { border-top: 1px solid var(--dm-line); }
  .dm-aside { grid-template-columns: 1fr; gap: 20px; }
  .dm-aside > .dm-h2, .dm-aside > div:first-child { position: static; }
  .dm-cols-3 { grid-template-columns: 1fr; }
  .dm-band-in { flex-direction: column; align-items: flex-start; gap: 24px; }
  .dm-columns { columns: 1; }
}
@media (max-width: 767px) {
  .dm-section { padding: 44px 0; }
  .dm-hero { padding: 36px 0 48px; }
  .dm-h1 { font-size: 30px; }
  .dm-h2 { font-size: 24px; }
  .dm-h2.dm-center { margin-bottom: 28px; }
  .dm-lead { font-size: 16px; }
  .dm-cols-2 { grid-template-columns: 1fr; }
  .dm-card { padding: 26px 22px; }
  .dm-checks { grid-template-columns: 1fr; }
  .dm-facts-list li { padding: 20px 8px; gap: 10px; font-size: 13px; }
  .dm-facts-list strong { font-size: 14px; }
  .dm-icon { width: 40px; height: 40px; padding: 9px; }
  .dm-steps li { padding-left: 62px; }
  .dm-steps li::before { width: 40px; height: 40px; line-height: 40px; font-size: 19px; }
  .dm-steps li::after { left: 19px; top: 48px; }
  .dm-steps h3 { padding-top: 8px; }
  .dm-actions .dm-btn { flex: 1 1 100%; }
  .dm-band { padding: 36px 0; }
  .dm-faq .dm-prose { padding-right: 8px; }
}
@media (min-width: 1536px) {
  .dm-widget a.dm-btn[href^="tel:"] { font-size: 16px; }
  .dm-widget { font-size: 18px; }
  .dm-container { max-width: 1280px; }
  .dm-h1 { font-size: 46px; }
  .dm-h2 { font-size: 34px; }
  .dm-h3, .dm-q { font-size: 20px; }
  .dm-lead { font-size: 20px; }
  .dm-btn { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .dm-card-link, .dm-btn, .dm-pills a, .dm-faq summary::after { transition: none; }
}
