/* DSH refinements: preserve the approved composition, artwork and type families.
 * These are theme defaults; Elementor's per-widget styles remain editable.
 */
.dsh-site {
  --dsh-muted: #536d85;
  --dsh-link: #0277a8;
  --dsh-focus: #0758e8;
  --dsh-motion: 180ms cubic-bezier(.22, 1, .36, 1);
}
.dsh-site.dsh-dark {
  --dsh-muted: #afc3d6;
  --dsh-link: #70caff;
  --dsh-focus: #70caff;
}
.dsh-site :is(h1, h2, h3) { text-wrap: balance; }
.dsh-site :focus-visible {
  outline: 3px solid var(--dsh-focus);
  outline-offset: 4px;
}
.dsh-site .dsh-prose { max-width: 72ch; }
.dsh-site .dsh-prose :is(p, li) { overflow-wrap: break-word; }
.dsh-site .dsh-prose a {
  color: var(--dsh-link);
  text-decoration: underline;
  text-underline-offset: .2em;
}

/* Keep bright cyan in the artwork; use its deeper family tone for small text. */
.dsh-site .dsh-news-heading > a,
.dsh-site .dsh-home-news .dsh-news-link { color: var(--dsh-link); }
.dsh-site .dsh-news-image > span { color: #0277a8; }
.dsh-site .dsh-news-heading > a,
.dsh-site .dsh-home-news .dsh-news-link,
.dsh-site .dsh-detail-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  text-underline-offset: .2em;
  text-decoration-thickness: 1px;
}
.dsh-site .dsh-home-news .dsh-news-link { justify-content: flex-start; }
.dsh-site .dsh-service-card .dsh-detail-link {
  --accent: var(--dsh-card-action, var(--dsh-link));
  color: var(--dsh-link);
  min-height: 44px;
}
.dsh-site .dsh-card-navy .dsh-detail-link { color: #d2e5ff; }
.dsh-site.dsh-dark .dsh-service-card .dsh-detail-link { --accent: var(--dsh-link); }
.dsh-site:not(.dsh-dark) .dsh-card-price del { color: #61728b; }
.dsh-site .dsh-card-navy .dsh-card-price del { color: #b9c9ec; }
.dsh-site .dsh-card-price strong,
.dsh-site .dsh-detail-price strong { font-variant-numeric: tabular-nums; }

/* Same green and blue action families, with legible white labels. */
.dsh-service-card { --dsh-card-action: #1465ca; }
.dsh-card-green { --dsh-card-action: #087f5b; }
.dsh-card-purple { --dsh-card-action: #7131d9; }
.dsh-card-navy { --dsh-card-action: #1465ca; }
.dsh-site .dsh-service-card .dsh-card-cta {
  background: linear-gradient(105deg, var(--dsh-card-action), color-mix(in srgb, var(--dsh-card-action) 90%, #102e49));
}
.dsh-site .dsh-service-card .dsh-saving { background: var(--dsh-card-action); }
.dsh-site .dsh-button-green { background: linear-gradient(105deg, #087f5b, #086c50); }
.dsh-site:not(.dsh-dark) .dsh-card-green .dsh-eyebrow { color: #087954; }
.dsh-site .dsh-service-card .dsh-card-highlights { align-content: start; }
.dsh-site .dsh-home-news article { display: flex; flex-direction: column; }
.dsh-site .dsh-home-news article > div { display: flex; flex-direction: column; flex: 1; }
.dsh-site .dsh-home-news .dsh-news-link { margin-top: auto; }

/* Quiet feedback, without moving the layout or keeping hover lifts on touch. */
.dsh-site :is(.dsh-button, .elementor-button, .dsh-category-card, .dsh-service-card) {
  transition: border-color var(--dsh-motion), box-shadow var(--dsh-motion), transform var(--dsh-motion);
}
.dsh-site .dsh-service-card:hover,
.dsh-site .dsh-button:hover { transform: none; }
.dsh-site .dsh-service-card:focus-within { border-color: #77a5df; }
.dsh-site .dsh-faq-list details[open] { border-bottom-color: #85acd9; }
.dsh-site .dsh-faq-list summary { border-radius: 8px; }
.dsh-site .dsh-faq-list summary span { transition: transform var(--dsh-motion); }
.dsh-site :is(.dsh-button, .elementor-button):active { transform: translateY(1px); }
@media (hover: hover) and (pointer: fine) {
  .dsh-site .dsh-service-card:hover { transform: translateY(-3px); }
  .dsh-site .dsh-category-card:hover { border-color: #8fb5db; box-shadow: 0 8px 22px #163a5d12; }
  .dsh-site :is(.dsh-button, .elementor-button):hover { transform: translateY(-2px); }
  .dsh-site :is(.dsh-news-link, .dsh-news-heading > a, .dsh-detail-link):hover { text-decoration: underline; }
  .dsh-site .dsh-faq-list summary:hover { color: var(--dsh-link); }
}

/* Gallery targets stay visually restrained but are easier to operate. */
.dsh-site :is(.dsh-gallery-expand, .dsh-gallery-prev, .dsh-gallery-next, .dsh-lightbox-close) {
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
}
.dsh-site .dsh-gallery-expand {
  top: 13px;
  right: 12px;
  border: 4px solid transparent;
  background-clip: padding-box;
  box-shadow: none;
}
.dsh-site .dsh-pagination { flex-wrap: wrap; }
.dsh-site .dsh-pagination :is(a, span) { min-width: 44px; min-height: 44px; display: grid; place-items: center; }
.dsh-site .dsh-search-label:focus-within,
.dsh-site .dsh-directory-search-label:focus-within { box-shadow: 0 0 0 3px #bde5ff; }
.dsh-site .dsh-result-count:focus { outline-offset: 5px; }

@media (max-width: 1024px) {
  .dsh-site:not(.dsh-dark) .dsh-mobile-tabs .is-active,
  .dsh-site:not(.dsh-dark) .dsh-mobile-tabs [aria-expanded=true] { color: #0277a8; }
  .dsh-site .dsh-gallery { grid-template-columns: 44px minmax(0, 1fr); }
  .dsh-site .dsh-gallery-thumbs button { min-width: 44px; min-height: 44px; }
  .dsh-site .dsh-service-card .dsh-detail-link { font-size: 14px; }
  .dsh-site .dsh-search-label input,
  .dsh-site .dsh-sort select,
  .dsh-site .dsh-directory-sort select { font-size: 16px; min-height: 48px; }
  .dsh-site .dsh-sort select { max-width: 100%; }
  .dsh-site .dsh-search-submit { min-height: 48px; font-size: 14px; }
  .dsh-site .dsh-sort { min-width: 0; gap: 10px; }
  .dsh-site .dsh-category-explore { min-height: 44px; }
  .dsh-site .dsh-footer-grid > div > a:not(:first-child) { min-height: 44px; margin-bottom: 0; padding-block: 10px; font-size: 14px; }
  .dsh-site .dsh-footer .dsh-social a { width: 44px; height: 44px; }
  .dsh-site .dsh-footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
  .dsh-site .dsh-promise-cards p,
  .dsh-site .dsh-home-news p,
  .dsh-site .dsh-counsel-intro p { font-size: 14px; line-height: 1.65; }
}
@media (max-width: 767px) {
  .home .dsh-home-hero .elementor-widget-text-editor p { font-size: 14px; line-height: 22px; }
  .home .dsh-home-featured .elementor-widget-text-editor p { font-size: 14px; line-height: 23px; }
  .dsh-site .dsh-service-card .dsh-card-heading p { font-size: 14px; line-height: 22px; }
  .dsh-site .dsh-service-card .dsh-card-highlights { font-size: 14px; line-height: 22px; }
  .dsh-site .dsh-card-featured .dsh-detail-link { min-height: 44px; font-size: 14px; }
  .dsh-site .dsh-card-featured .dsh-card-actions { gap: 8px; }
  .dsh-site .dsh-counsel-footnote { font-size: 12px; line-height: 19px; color: var(--dsh-muted); }
  .dsh-site .dsh-counsel-tags { font-size: 11px; line-height: 17px; }
  .dsh-site .dsh-trust-strip strong { font-size: 13px; line-height: 20px; }
  .dsh-site .dsh-trust-strip small { font-size: 12px; line-height: 18px; }
  .dsh-site .dsh-trust-strip > div { align-items: flex-start; }
  .dsh-site .dsh-category-card p { font-size: 14px; line-height: 22px; }
  .dsh-site .dsh-category-explore { font-size: 12px; }
  .dsh-site .dsh-faq-list summary,
  .dsh-site .dsh-faq-list details > div { font-size: 14px; line-height: 23px; }
  .dsh-site .dsh-detail-actions { flex-wrap: wrap; gap: 10px; }
  .dsh-site .dsh-detail-actions > a { min-height: 48px; font-size: 13px; }
  .dsh-site .dsh-footer p { font-size: 14px; line-height: 24px; }
}
@media (max-width: 430px) {
  .dsh-site .dsh-detail-actions { flex-direction: column; }
  .dsh-site .dsh-detail-actions > a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .dsh-site :is(.dsh-button, .elementor-button, .dsh-category-card, .dsh-service-card),
  .dsh-site .dsh-faq-list summary span { transition: none; }
  .dsh-site :is(.dsh-button, .elementor-button, .dsh-service-card):is(:hover, :active) { transform: none; }
}
