/* Shared title layout safety: keep large headings readable and unclipped. */
:where(
  h1,
  h2,
  .hero h1 span,
  .service-left h1 span,
  .restaurant-left h1 span,
  .section-title,
  .hero-sub,
  .pricing-header h2,
  .service-industries h2,
  .service-flow h2,
  .service-features h2,
  .service-integrations h2,
  .service-stats h2,
  .restaurant-flow h2,
  .restaurant-features h2,
  .restaurant-integrations h2,
  .restaurant-stats h2,
  .service-lead h2,
  .service-cta h2,
  .restaurant-cta h2,
  .callflow-section h2,
  .trial-section h2,
  .section-head h2,
  .missed-call-copy h2
) {
  max-width: 100%;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
  letter-spacing: 0 !important;
}

:where(
  .hero h1,
  .service-left h1,
  .hero h1 span,
  .service-left h1 span,
  .restaurant-left h1,
  .restaurant-left h1 span,
  .trial-hero h1,
  main > h1
) {
  line-height: 1.12 !important;
}

:where(.hero h1 span, .service-left h1 span, .restaurant-left h1 span) {
  display: block;
  min-width: 0;
}

:where(.title-accent, .section-title .title-accent, h1 .title-accent, h2 .title-accent, h3 .title-accent, h1 > span, h2 > span) {
  display: inline;
  background: linear-gradient(90deg, #E6C8FF 0%, #C986FF 48%, #A855FF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

:where(
  .section-title,
  .pricing-header h2,
  .service-industries h2,
  .service-flow h2,
  .service-features h2,
  .service-integrations h2,
  .service-stats h2,
  .restaurant-flow h2,
  .restaurant-features h2,
  .restaurant-integrations h2,
  .restaurant-stats h2,
  .service-lead h2,
  .service-cta h2,
  .restaurant-cta h2,
  .callflow-section h2,
  .trial-section h2,
  .section-head h2,
  .missed-call-copy h2
) {
  line-height: 1.16 !important;
}

:where(
  .hero > div:first-child,
  .hero-inner,
  .service-left,
  .restaurant-left,
  .trial-hero,
  .section-head,
  .pricing-header,
  .service-lead,
  .service-cta,
  .restaurant-cta,
  .contact-box,
  .cta-box,
  main
) {
  min-width: 0;
  overflow: visible !important;
}

:where(
  .pricing-section,
  .pricing-header,
  .pricing-card,
  .plan-name,
  .price-row,
  .setup-fee,
  .plan-summary,
  .pricing-button-stack,
  .usage-box,
  .shared-plan-features,
  .shared-plan-features h3,
  .shared-plan-features p,
  .shared-feature-kicker,
  .shared-feature-list,
  .pricing-feature,
  .plan-calculator,
  .calculator-copy,
  .calculator-results
) {
  text-align: center;
}

:where(.pricing-grid, .basic-pricing-grid) {
  justify-content: center;
  scroll-margin-top: 110px;
}

:where(.pricing-card) {
  align-items: center;
}

:where(.pricing-card > *, .pricing-button-stack, .pricing-btn-primary, .pricing-btn-secondary) {
  width: 100%;
}

:where(.plan-name, .setup-fee, .plan-summary, .usage-box) {
  margin-left: auto;
  margin-right: auto;
}

:where(.price-row) {
  justify-content: center;
}

@media (max-width: 760px) {
  :where(.hero h1, .service-left h1, .restaurant-left h1, .trial-hero h1, main > h1) {
    font-size: clamp(40px, 11vw, 58px) !important;
    line-height: 1.14 !important;
  }

  :where(
    .section-title,
    .pricing-header h2,
    .service-industries h2,
    .service-flow h2,
    .service-features h2,
    .service-integrations h2,
    .service-stats h2,
    .restaurant-flow h2,
    .restaurant-features h2,
    .restaurant-integrations h2,
    .restaurant-stats h2,
    .service-lead h2,
    .service-cta h2,
    .restaurant-cta h2,
    .callflow-section h2,
    .trial-section h2,
    .section-head h2,
    .missed-call-copy h2
  ) {
    font-size: clamp(30px, 9vw, 42px) !important;
    line-height: 1.18 !important;
  }
}

html[lang="fr"] :where(.hero h1, .service-left h1, .restaurant-left h1) {
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}

html[lang="fr"] :where(.hero h1 span, .service-left h1 span, .restaurant-left h1 span) {
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}

@media (max-width: 760px) {
  html[lang="fr"] :where(.hero h1, .service-left h1, .restaurant-left h1) {
    font-size: clamp(34px, 9.5vw, 52px) !important;
    line-height: 1.16 !important;
  }
}
