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

/* 117 brand lockup: keep the verified full name legible in the existing
   navigation without changing the page's structure or interaction model. */
.NavigationHero-module__D5roOa__logoLink {
  width: 270px;
}

.NavigationHero-module__D5roOa__logoMark {
  flex-basis: 30px;
  width: 30px;
  height: 30px;
}

.NavigationHero-module__D5roOa__templateLogo {
  max-width: 232px;
  font-size: 20px;
  line-height: 32px;
}

/* Reviews: reserve the same three-line quote area so each card's owner row
   aligns even when a verified review is naturally shorter than the others. */
.Testimonials-module__eCnbca__grid {
  align-items: stretch;
}

.Testimonials-module__eCnbca__card {
  min-height: 180px;
}

.Testimonials-module__eCnbca__quote {
  min-height: 72px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .NavigationHero-module__D5roOa__logoLink {
    width: 216px;
  }

  .NavigationHero-module__D5roOa__logoMark {
    flex-basis: 26px;
    width: 26px;
    height: 26px;
  }

  .NavigationHero-module__D5roOa__templateLogo {
    max-width: 182px;
    font-size: 18px;
  }
}

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) {
  .NavigationHero-module__D5roOa__navCard {
    width: min(350px, calc(100vw - 32px));
    padding-inline: 14px;
    display: flex;
    position: relative;
  }

  .NavigationHero-module__D5roOa__logoLink {
    width: calc(100% - 58px);
    min-width: 0;
    max-width: none;
    flex: 0 0 auto;
  }

  .NavigationHero-module__D5roOa__logoMark {
    flex-basis: 30px;
    width: 30px;
    height: 30px;
  }

  .NavigationHero-module__D5roOa__templateLogo {
    max-width: 242px;
    min-width: 0;
    font-size: 20px;
  }

  .NavigationHero-module__D5roOa__menuButton {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: 44px;
    height: 44px;
    padding: 0;
    display: block !important;
    visibility: visible;
    opacity: 1;
  }

  .NavigationHero-module__D5roOa__menuButton span {
    display: block !important;
    visibility: visible;
    opacity: 1;
    background: var(--paw-orange) !important;
  }


  .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 (max-width: 374px) {
  .NavigationHero-module__D5roOa__navCard {
    width: min(350px, calc(100vw - 32px));
    padding-inline: 12px;
  }

  .NavigationHero-module__D5roOa__logoLink {
    width: calc(100% - 56px);
  }

  .NavigationHero-module__D5roOa__logoMark {
    flex-basis: 28px;
    width: 28px;
    height: 28px;
  }

  .NavigationHero-module__D5roOa__templateLogo {
    max-width: 224px;
    font-size: 19px;
  }
}

@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;
  }
}
