/* Shared defensive fixes after responsive audit, 2026-07-28. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

img {
  max-width: 100%;
}

/* Never split interface headings inside a word. Long titles must resize or
   wrap only at real spaces, which keeps Polish service names readable. */
h1,
h2,
h3,
h4,
h5,
h6,
[class*="__title"] {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.page-veil {
  will-change: opacity;
}

body.is-page-ready .page-veil {
  opacity: 0;
  pointer-events: none;
}

@media (max-width: 820px) {
  .procedure-stage,
  .care-procedures {
    max-width: 100vw;
    overflow-x: clip;
  }

  .procedure-card.is-prev .procedure-card__copy > *,
  .procedure-card.is-next .procedure-card__copy > * {
    visibility: hidden;
  }

  .procedure-card.is-active .procedure-card__copy {
    height: auto;
    min-height: 0;
  }

  .procedure-card.is-active .procedure-card__title {
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    text-wrap: balance;
    font-size: clamp(1.78rem, 7.4vw, 2.65rem);
    line-height: 1.02;
  }

  .procedure-card[data-procedure="regeneracja"].is-active .procedure-card__title,
  .procedure-card[data-procedure="diagnostyka"].is-active .procedure-card__title {
    font-size: clamp(1.58rem, 6.55vw, 2.25rem);
  }
}

@media (min-width: 821px) {
  .service-hero,
  .intro-section,
  .reservation-band,
  .deep-section,
  .faq-section {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-veil {
    transition: none !important;
  }
}

/* Editorial line ornament for the intentionally open centre of service panels. */
.service-ambient-lines {
  display: none;
}

@media (min-width: 1100px) {
  .service-ambient-lines {
    position: absolute !important;
    z-index: 1 !important;
    left: 50%;
    top: 50%;
    display: block;
    width: clamp(170px, 16vw, 310px);
    height: clamp(96px, 10vw, 176px);
    color: rgba(110, 34, 51, 0.42);
    pointer-events: none;
    transform: translate(-50%, -50%);
  }

  .service-ambient-lines i,
  .service-ambient-lines b {
    position: absolute;
    left: 50%;
    display: block;
    height: 1px;
    background: linear-gradient(
      90deg,
      transparent 0%,
      currentColor 18%,
      currentColor 82%,
      transparent 100%
    );
    transform-origin: 50% 50%;
  }

  .service-ambient-lines i:nth-child(1) {
    top: 24%;
    width: 72%;
    animation: service-line-breathe 7.6s ease-in-out infinite;
  }

  .service-ambient-lines i:nth-child(2) {
    top: 50%;
    width: 100%;
    animation: service-line-breathe 9.2s ease-in-out -2.4s infinite;
  }

  .service-ambient-lines i:nth-child(3) {
    top: 76%;
    width: 56%;
    animation: service-line-breathe 6.8s ease-in-out -4.1s infinite;
  }

  .service-ambient-lines b {
    top: 50%;
    width: 26px;
    color: rgba(110, 34, 51, 0.72);
    animation: service-line-travel 8.4s cubic-bezier(0.45, 0, 0.55, 1) infinite;
  }

  body[data-active-panel="1"] .service-ambient-lines,
  body[data-active-panel="3"] .service-ambient-lines {
    color: rgba(139, 118, 99, 0.42);
  }
}

@keyframes service-line-breathe {
  0%,
  100% {
    opacity: 0.22;
    transform: translateX(-50%) scaleX(0.58);
  }
  50% {
    opacity: 0.72;
    transform: translateX(-50%) scaleX(1);
  }
}

@keyframes service-line-travel {
  0%,
  100% {
    opacity: 0;
    transform: translateX(-360%);
  }
  18%,
  82% {
    opacity: 0.86;
  }
  50% {
    transform: translateX(260%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-ambient-lines i,
  .service-ambient-lines b {
    animation: none !important;
  }
}
.seo-breadcrumb {
  position: relative;
  z-index: 3;
  width: min(100% - 48px, 1180px);
  margin: 0 auto;
  padding: 92px 0 18px;
  color: rgba(32, 27, 24, 0.62);
  font: 500 0.72rem/1.45 "Hanken Grotesk", sans-serif;
  letter-spacing: 0.045em;
}

.seo-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.seo-breadcrumb li:not(:last-child)::after {
  content: "/";
  margin-left: 7px;
  opacity: 0.45;
}

.seo-breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.seo-breadcrumb a:hover,
.seo-breadcrumb a:focus-visible {
  color: #6f1d32;
}

.seo-breadcrumb--dark {
  color: rgba(236, 229, 216, 0.72);
}

.seo-breadcrumb--dark [aria-current="page"] {
  color: rgba(236, 229, 216, 0.58);
}

.seo-breadcrumb--dark li:not(:last-child)::after {
  opacity: 0.55;
}

.seo-breadcrumb--dark a:hover,
.seo-breadcrumb--dark a:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media (max-width: 700px) {
  .seo-breadcrumb {
    width: min(100% - 36px, 1180px);
    padding-top: 78px;
    font-size: 0.67rem;
  }
}
/* Prices are atomic typographic units: never leave the currency on its own line. */
.hero-facts span:first-child,
.price-list dd,
.price strong,
.program-card__meta strong,
.training-hero__facts dt {
  white-space: nowrap;
}
