/*
  local-service-template-service-intro — sparkle band + cost quote card.
  Figma cost card: node 563:178 (desktop) / intro band 371:74.
  Version B uses --quote-only (Generic Pricing + Mid Page CTA) without breadcrumbs/media.
*/

.local-service-template-service-intro {
  position: relative;
  isolation: isolate;
  overflow-x: clip;
  overflow-y: visible;
  border-block-end: 1px solid var(--color-border-subtle);
  background-color: var(--color-bg);
  color: var(--color-text-heading);
}

/* ---------- Decorative sparkle watermark ---------- */

.local-service-template-service-intro__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  opacity: 0.5;
  pointer-events: none;
}

/*
  Sparkle plate from Figma:
  Desktop (371:74): ~200% height, anchored to the top.
  Mobile (371:495): wide crop shifted left so the star sits in the band.
*/
.local-service-template-service-intro__bg-img {
  position: absolute;
  max-width: none;
  object-fit: cover;
  inline-size: 411.13%;
  block-size: 100%;
  inset-block-start: 0;
  inset-inline-start: -64.68%;
}

.local-service-template-service-intro__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: var(--header-frame-max);
  margin-inline: auto;
  padding-block: var(--local-service-intro-pad-y-mobile);
  padding-inline: var(--space-md);
}

/* ---------- Cost quote card (Figma 563:178) ---------- */

.local-service-template-service-intro__quote {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-lg);
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: var(--local-service-intro-quote-w-mobile);
  margin-inline: auto;
  padding: var(--local-service-intro-quote-pad-mobile);
  border-block-start: var(--local-service-intro-quote-bar-mobile) solid var(--color-primary);
  background-color: var(--color-bg);
  box-shadow: var(--shadow-local-service-intro-quote-mobile);
}

.local-service-template-service-intro--quote-only .local-service-template-service-intro__quote,
.local-service-template-service-intro__quote--in-migrated {
  margin-block-start: 0;
}

/* Nested in migrated band: no extra section chrome (sparkle + divider live on .local-service-migrated) */
.local-service-migrated__estimate .local-service-template-service-intro__quote--in-migrated {
  max-inline-size: none;
}

.local-service-template-service-intro__quote-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  inline-size: 100%;
}

.local-service-template-service-intro__quote-title {
  margin: 0;
  inline-size: 100%;
  font-family: var(--font-heading);
  font-weight: var(--fw-black);
  font-size: var(--fs-local-service-intro-quote-title-mobile);
  line-height: var(--lh-local-service-intro-quote-title-mobile);
  letter-spacing: var(--ls-local-service-intro);
  text-align: center;
  text-transform: uppercase;
  color: var(--color-text);
}

.local-service-template-service-intro__quote-title-desktop {
  display: none;
}

.local-service-template-service-intro__quote-title-mobile {
  display: inline;
}

.local-service-template-service-intro__quote-text {
  inline-size: 100%;
  max-inline-size: var(--local-service-intro-quote-body-w-mobile);
  font-family: var(--font-body-alt);
  font-weight: var(--fw-regular);
  font-size: var(--fs-local-service-intro-quote-body-mobile);
  line-height: var(--lh-local-service-intro-quote-body-mobile);
  letter-spacing: var(--ls-local-service-intro);
  text-align: start;
  color: var(--color-text);
}

.local-service-template-service-intro__quote-text p {
  margin: 0;
}

.local-service-template-service-intro__quote-text p + p {
  margin-block-start: var(--space-md);
}

.local-service-template-service-intro__quote-text-desktop {
  display: none;
}

.local-service-template-service-intro__quote-text-mobile {
  display: block;
}

.local-service-template-service-intro__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: var(--local-service-intro-quote-cta-w-mobile);
  padding-block: 1.25rem;
  padding-inline: 2.5rem;
  border-radius: var(--radius-pill);
  background-color: var(--color-primary);
  font-family: var(--font-heading);
  font-weight: var(--fw-medium);
  font-size: var(--fs-cta);
  line-height: var(--lh-nav);
  letter-spacing: var(--ls-cta);
  text-decoration: none;
  white-space: nowrap;
  color: var(--color-text-inverse);
  transition: opacity var(--transition-base);
}

.local-service-template-service-intro__cta:hover {
  opacity: 0.92;
}

.local-service-template-service-intro__cta:focus-visible {
  outline: 2px solid var(--color-text);
  outline-offset: 3px;
}

.local-service-template-service-intro__cta-text--desktop {
  display: none;
}

.local-service-template-service-intro__cta-text--mobile {
  display: inline;
}

.local-service-template-service-intro__cta-icon {
  display: block;
  flex-shrink: 0;
  inline-size: 14px;
  block-size: 14px;
}

@media (min-width: 1024px) {
  .local-service-template-service-intro__bg-img {
    inline-size: 100%;
    block-size: 199.5%;
    inset-block-start: -0.01%;
    inset-inline-start: 0;
  }

  .local-service-template-service-intro__inner {
    gap: var(--local-service-intro-stack-gap);
    max-inline-size: calc(var(--local-service-intro-content-max) + (var(--header-pad-x) * 2));
    padding-block: var(--local-service-intro-pad-y);
    padding-inline: var(--header-pad-x);
  }

  .local-service-template-service-intro__quote {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--local-service-intro-row-gap);
    max-inline-size: none;
    padding: var(--local-service-intro-quote-pad);
    border-block-start: 0;
    border-inline-start: var(--local-service-intro-quote-bar) solid var(--color-primary);
    border-start-end-radius: var(--radius-faq);
    border-end-end-radius: var(--radius-faq);
    background-color: var(--color-local-service-intro-quote-bg);
    box-shadow: var(--shadow-local-service-intro-quote);
  }

  .local-service-template-service-intro__quote-copy {
    align-items: flex-start;
    gap: var(--space-lg);
  }

  .local-service-template-service-intro__quote-title {
    font-size: var(--fs-local-service-intro-quote-title);
    line-height: normal;
    letter-spacing: var(--ls-local-service-intro);
    text-align: start;
  }

  .local-service-template-service-intro__quote-title-desktop {
    display: inline;
  }

  .local-service-template-service-intro__quote-title-mobile {
    display: none;
  }

  .local-service-template-service-intro__quote-text {
    max-inline-size: none;
    font-size: var(--fs-local-service-intro-body);
    line-height: var(--lh-local-service-intro-body);
  }

  .local-service-template-service-intro__quote-text-desktop {
    display: block;
  }

  .local-service-template-service-intro__quote-text-mobile {
    display: none;
  }

  .local-service-template-service-intro__cta {
    inline-size: auto;
    max-inline-size: none;
  }

  .local-service-template-service-intro__cta-text--desktop {
    display: inline;
  }

  .local-service-template-service-intro__cta-text--mobile {
    display: none;
  }
}
