[hidden], .template-hidden { display: none !important; }

html { scroll-behavior: smooth; }

[data-template-field="opening-hours"] { white-space: pre-line; }

[data-motion="paused"] * { animation-play-state: paused !important; }
[data-motion="active"] * { animation-play-state: running !important; }

/* The footer wordmark is a live business name, so its type scale is measured
   by template.js instead of being tied to a fixed viewport-based clamp. This
   keeps every generated brand name inside the same intentional side gutter. */
.Footer-module__FCqy_a__wordmark {
  width: calc(100% - (2 * clamp(24px, 3vw, 64px)));
}

.Footer-module__FCqy_a__wordmark span {
  width: max-content;
  max-width: none;
  font-size: var(--template-footer-wordmark-size, clamp(132px, 17vw, 354px));
}

/* Keep the transformation-card labels warm, but lighter than the primary orange. */
.Transformations-module__oY_N3a__label {
  color: #9a3e22;
  background: #fff0e8;
}

[data-faq-item] [id^="faq-answer-"] {
  overflow: hidden;
  transition: grid-template-rows 300ms cubic-bezier(.16, 1, .3, 1), opacity 220ms ease;
}

[data-faq-item]:not(.template-faq-open) [id^="faq-answer-"] {
  display: none;
}

.template-form-notice {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid currentColor;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.45;
}

/* Mobile navigation keeps social links inside the opened hamburger menu only. */
@media (max-width: 767px) {
  .Footer-module__FCqy_a__wordmark {
    width: calc(100% - 40px);
  }

  .NavigationHero-module__D5roOa__desktopSocials,
  .NavigationHero-module__D5roOa__desktopActionsDivider {
    display: none;
  }

  /* The existing service CTA is absolutely positioned behind the card's
     content layer. Reveal the same 54px visual footer used by the expanded
     desktop card while keeping the CTA's full 78px hit area intact. */
  .Services-module__P8uqka__card {
    padding-bottom: 56px;
  }

  /* Stack the footer's practical details in reading order before the brand
     wordmark and pet artwork. The desktop two-column arrangement remains in
     the compiled template stylesheet above this breakpoint. */
  .Footer-module__FCqy_a__canvas {
    min-height: 820px;
  }

  .Footer-module__FCqy_a__contactBlock {
    width: calc(100% - 40px);
  }

  .Footer-module__FCqy_a__visit {
    text-align: left;
    align-items: flex-start;
    top: 218px;
    right: auto;
    left: 20px;
  }

  .Footer-module__FCqy_a__wordmark {
    top: 342px;
  }

  .template-mobile-footer-details {
    z-index: 2;
    position: absolute;
    top: 52px;
    right: 20px;
    left: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .template-mobile-footer-details > .Footer-module__FCqy_a__contactBlock {
    position: static;
    width: 100%;
    text-align: left;
    align-items: flex-start;
  }

  .template-mobile-footer-details > .Footer-module__FCqy_a__contact {
    margin-bottom: 28px;
  }

  .template-mobile-footer-details-has-socials > .Footer-module__FCqy_a__visit {
    margin-bottom: 12px;
  }

  .template-mobile-footer-details > .Footer-module__FCqy_a__socialLinks {
    align-self: flex-start;
    margin-top: 0;
  }

  .Footer-module__FCqy_a__canvas.template-footer-mobile-stack {
    min-height: var(--template-footer-canvas-height, 820px);
  }

  .Footer-module__FCqy_a__canvas.template-footer-mobile-stack .Footer-module__FCqy_a__wordmark {
    top: var(--template-footer-wordmark-top, 342px);
  }
}

@media (min-width: 768px) {
  .template-mobile-footer-details {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
