/* Kphysio universal detail pages
   Loaded only by individual services, blog articles and thematic admin pages. */

.kpd-page {
  --kpd-navy: #082f49;
  --kpd-navy-2: #07556d;
  --kpd-teal: #087f86;
  --kpd-teal-2: #0a999b;
  --kpd-mint: #e5f7f4;
  --kpd-bg: #f6fafb;
  --kpd-surface: #ffffff;
  --kpd-surface-soft: #f2f7f8;
  --kpd-text: #314f60;
  --kpd-muted: #526b79;
  --kpd-line: #d9e6e9;
  --kpd-line-strong: #bed4d9;
  --kpd-warning: #87422f;
  --kpd-warning-bg: #fff7f1;
  --kpd-radius: 20px;
  --kpd-radius-sm: 14px;
  --kpd-shadow: 0 16px 42px rgba(8, 47, 73, 0.075);
  --kpd-shadow-soft: 0 7px 22px rgba(8, 47, 73, 0.045);
  background:
    radial-gradient(circle at 8% 3%, rgba(8, 127, 134, 0.055), transparent 30rem),
    linear-gradient(180deg, #fbfdfd 0%, var(--kpd-bg) 35%, #ffffff 100%);
  color: var(--kpd-text);
  font-family: inherit;
  font-size: 17px;
  line-height: 1.72;
  overflow: clip;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.kpd-page *,
.kpd-page *::before,
.kpd-page *::after {
  box-sizing: border-box;
}

.kpd-page [data-section],
.kpd-page section,
.kpd-page article,
.kpd-page aside {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.kpd-page img {
  max-width: 100%;
}

.kpd-page a {
  text-decoration: none;
}

.kpd-page h1,
.kpd-page h2,
.kpd-page h3,
.kpd-page h4 {
  color: var(--kpd-navy);
  font-family: inherit;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.kpd-page p,
.kpd-page li {
  color: var(--kpd-text);
}

.kpd-page :where(a, button, summary, input, select, textarea):focus-visible {
  outline: 3px solid rgba(8, 127, 134, 0.34);
  outline-offset: 3px;
}

.kpd-container {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 26px 0 76px;
}

.kpd-container--article {
  width: min(1080px, calc(100% - 32px));
}

.kpd-icon {
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
}

.kpd-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-bottom: 18px;
  color: var(--kpd-muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.kpd-breadcrumbs a {
  color: var(--kpd-navy-2);
  font-weight: 750;
}

.kpd-breadcrumbs a:hover {
  color: var(--kpd-teal);
}

.kpd-badge,
.kpd-kicker {
  margin: 0;
  color: var(--kpd-teal);
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.075em;
  line-height: 1.4;
  text-transform: uppercase;
}

.kpd-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 15px;
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--kpd-mint);
  color: var(--kpd-navy-2);
}

/* Hero */
.kpd-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(350px, 0.97fr);
  gap: clamp(28px, 4.5vw, 56px);
  align-items: center;
  padding: clamp(30px, 4.5vw, 50px);
  border: 1px solid var(--kpd-line);
  border-radius: 26px;
  background:
    radial-gradient(circle at 5% 10%, rgba(10, 153, 155, 0.09), transparent 22rem),
    linear-gradient(180deg, #ffffff 0%, #fbfefe 100%);
  box-shadow: var(--kpd-shadow);
}

.kpd-hero--no-image {
  grid-template-columns: minmax(0, 850px);
}

.kpd-hero__copy {
  min-width: 0;
}

.kpd-hero h1 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(2.25rem, 4.6vw, 4.15rem);
  font-weight: 830;
  line-height: 1.045;
  overflow-wrap: anywhere;
}

.kpd-hero h1.kpd-title--long,
.kpd-article-header h1.kpd-title--long {
  font-size: clamp(2.05rem, 4.1vw, 3.55rem);
}

.kpd-hero h1.kpd-title--very-long,
.kpd-article-header h1.kpd-title--very-long {
  font-size: clamp(1.9rem, 3.6vw, 3.05rem);
  line-height: 1.1;
}

.kpd-hero__lead {
  max-width: 650px;
  margin: 19px 0 0;
  color: var(--kpd-text);
  font-size: clamp(1.04rem, 1.5vw, 1.16rem);
  line-height: 1.75;
}

.kpd-hero__media {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--kpd-line);
  border-radius: 22px;
  background: #eaf3f5;
}

.kpd-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
  pointer-events: none;
}

.kpd-hero__media img {
  display: block;
  width: 100%;
  height: clamp(350px, 37vw, 500px);
  object-fit: cover;
  object-position: center;
}

.kpd-image--top img { object-position: center top; }
.kpd-image--bottom img { object-position: center bottom; }
.kpd-image--left img { object-position: left center; }
.kpd-image--right img { object-position: right center; }
.kpd-image--center img { object-position: center; }

.kpd-hero__mini-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin-top: 23px;
}

.kpd-hero__mini-benefits span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--kpd-navy-2);
  font-size: 0.96rem;
  font-weight: 780;
}

.kpd-hero__mini-benefits .kpd-icon {
  color: var(--kpd-teal);
}

.kpd-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 27px;
}

.kpd-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 13px 20px;
  border: 1px solid transparent;
  border-radius: 13px;
  font-size: 0.98rem;
  font-weight: 850;
  line-height: 1.2;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

.kpd-btn:hover,
.kpd-btn:focus-visible {
  transform: translateY(-2px);
}

.kpd-btn--primary {
  background: linear-gradient(135deg, var(--kpd-navy-2), var(--kpd-teal));
  color: #fff;
  box-shadow: 0 12px 25px rgba(8,127,134,.18);
}

.kpd-btn--secondary {
  border-color: var(--kpd-line-strong);
  background: #fff;
  color: var(--kpd-navy-2);
}

/* Facts */
.kpd-facts {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: -18px 22px 0;
  overflow: hidden;
  border: 1px solid var(--kpd-line);
  border-radius: 17px;
  background: rgba(255,255,255,.98);
  box-shadow: var(--kpd-shadow-soft);
}

.kpd-facts--1 { grid-template-columns: minmax(0, 1fr); max-width: 310px; }
.kpd-facts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kpd-facts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.kpd-fact {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 17px 19px;
}

.kpd-fact + .kpd-fact {
  border-left: 1px solid var(--kpd-line);
}

.kpd-fact__icon,
.kpd-section-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--kpd-mint);
  color: var(--kpd-teal);
}

.kpd-fact__label {
  display: block;
  margin-bottom: 2px;
  color: var(--kpd-muted);
  font-size: 0.82rem;
  font-weight: 750;
  letter-spacing: .015em;
}

.kpd-fact strong {
  display: block;
  color: var(--kpd-navy);
  font-size: 0.98rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

/* Service layout */
.kpd-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  margin-top: 36px;
}

.kpd-sidebar {
  min-width: 0;
}

.kpd-toc {
  position: sticky;
  top: 108px;
  padding: 18px 14px;
  border: 1px solid var(--kpd-line);
  border-radius: 17px;
  background: #fff;
  box-shadow: var(--kpd-shadow-soft);
}

.kpd-toc > strong {
  display: block;
  padding: 0 8px 10px;
  color: var(--kpd-navy);
  font-size: 0.91rem;
  font-weight: 850;
}

.kpd-toc ul {
  display: grid;
  gap: 3px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.kpd-toc a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 9px;
  border-radius: 11px;
  color: var(--kpd-text);
  font-size: 0.91rem;
  font-weight: 720;
  line-height: 1.4;
}

.kpd-toc a span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--kpd-surface-soft);
  color: var(--kpd-teal);
}

.kpd-toc a:hover,
.kpd-toc a:focus-visible {
  background: var(--kpd-mint);
  color: var(--kpd-navy-2);
}

.kpd-content,
.kpd-topic-flow {
  display: grid;
  gap: 20px;
  min-width: 0;
}

.kpd-section,
.kpd-important,
.kpd-safety,
.kpd-topic-answer,
.kpd-medical-details,
.kpd-author-card,
.kpd-content-placeholder {
  scroll-margin-top: 108px;
  border: 1px solid var(--kpd-line);
  border-radius: var(--kpd-radius);
  background: var(--kpd-surface);
  box-shadow: var(--kpd-shadow-soft);
}

.kpd-section {
  padding: clamp(26px, 3.5vw, 38px);
}

.kpd-section-heading {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  margin-bottom: 20px;
}

.kpd-section-heading--center {
  justify-content: center;
  text-align: center;
}

.kpd-section-heading--compact {
  margin-bottom: 14px;
}

.kpd-section-heading h2 {
  margin: 2px 0 0;
  font-size: clamp(1.55rem, 2.7vw, 2.1rem);
  font-weight: 820;
  line-height: 1.17;
}

.kpd-lead-text {
  margin: 0;
  font-size: 1.06rem;
  line-height: 1.8;
}

.kpd-intro {
  background:
    radial-gradient(circle at 100% 0, rgba(8,127,134,.08), transparent 18rem),
    #fff;
}

.kpd-section--split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 170px;
  gap: 28px;
  align-items: center;
}

.kpd-visual-symbol {
  display: grid;
  place-items: center;
  width: 150px;
  height: 150px;
  justify-self: center;
  border: 11px solid rgba(8,127,134,.065);
  border-radius: 50%;
  background: var(--kpd-mint);
  color: var(--kpd-teal);
}

.kpd-visual-symbol .kpd-icon {
  width: 68px;
  height: 68px;
  stroke-width: 1.2;
}

.kpd-visual-symbol--heart {
  color: var(--kpd-navy-2);
}

.kpd-check-list {
  display: grid;
  gap: 10px;
  margin: 17px 0 0;
  padding: 0;
  list-style: none;
}

.kpd-check-list--columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px 25px;
}

.kpd-check-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  line-height: 1.58;
}

.kpd-check {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  margin-top: .08em;
  border-radius: 50%;
  background: var(--kpd-mint);
  color: var(--kpd-teal);
}

.kpd-check .kpd-icon {
  width: 13px;
  height: 13px;
  stroke-width: 2.4;
}

.kpd-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.kpd-feature {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--kpd-line);
  border-radius: var(--kpd-radius-sm);
  background: #fbfdfe;
}

.kpd-feature > span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--kpd-mint);
  color: var(--kpd-teal);
}

.kpd-feature p {
  margin: 2px 0 0;
  font-size: 0.96rem;
  font-weight: 720;
  line-height: 1.5;
}

.kpd-process {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
}

.kpd-process__item {
  position: relative;
  min-width: 0;
  padding: 0 18px 0 0;
}

.kpd-process__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 19px;
  right: 8px;
  width: calc(100% - 58px);
  height: 1px;
  background: repeating-linear-gradient(90deg, var(--kpd-line-strong) 0 5px, transparent 5px 10px);
  transform: translateX(50%);
}

.kpd-process__number {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 39px;
  height: 39px;
  margin-bottom: 14px;
  border: 5px solid #fff;
  border-radius: 50%;
  background: var(--kpd-mint);
  color: var(--kpd-navy-2);
  box-shadow: 0 0 0 1px var(--kpd-line);
  font-weight: 900;
}

.kpd-process h3 {
  margin: 0 0 7px;
  font-size: 1.02rem;
  line-height: 1.32;
}

.kpd-process p {
  margin: 0;
  color: var(--kpd-muted);
  font-size: 0.94rem;
  line-height: 1.62;
}

.kpd-safety {
  padding: clamp(25px, 3.2vw, 34px);
  background: linear-gradient(180deg, #f1fbfa, #fff);
}

/* Compact final summary */
.kpd-important {
  padding: 20px 23px;
  background: linear-gradient(135deg, #effaf9 0%, #ffffff 100%);
  box-shadow: none;
}

.kpd-important .kpd-section-icon {
  width: 36px;
  height: 36px;
}

.kpd-important .kpd-section-heading h2 {
  font-size: clamp(1.32rem, 2.3vw, 1.7rem);
}

.kpd-important .kpd-check-list {
  margin-top: 7px;
}

.kpd-important .kpd-check-list li {
  font-size: 0.96rem;
  line-height: 1.5;
}

/* FAQ, related, medical */
.kpd-faq-list {
  display: grid;
  gap: 10px;
}

.kpd-faq-item {
  overflow: hidden;
  border: 1px solid var(--kpd-line);
  border-radius: 13px;
  background: #fff;
}

.kpd-faq-item summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 19px;
  cursor: pointer;
  color: var(--kpd-navy);
  font-size: 1rem;
  font-weight: 800;
  list-style: none;
}

.kpd-faq-item summary::-webkit-details-marker { display: none; }

.kpd-faq-item summary span {
  position: relative;
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
}

.kpd-faq-item summary span::before,
.kpd-faq-item summary span::after {
  content: "";
  position: absolute;
  left: 2px;
  top: 8px;
  width: 13px;
  height: 1.5px;
  border-radius: 2px;
  background: var(--kpd-teal);
  transition: transform .2s ease;
}

.kpd-faq-item summary span::after { transform: rotate(90deg); }
.kpd-faq-item[open] summary span::after { transform: rotate(0); }

.kpd-faq-item > div {
  padding: 0 19px 17px;
}

.kpd-faq-item > div p {
  margin: 0;
}

.kpd-related-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.kpd-related-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 56px;
  padding: 13px 15px;
  border: 1px solid var(--kpd-line);
  border-radius: 13px;
  background: #fbfdfe;
  color: var(--kpd-navy-2);
  font-weight: 750;
}

.kpd-related-link:hover,
.kpd-related-link:focus-visible {
  border-color: rgba(8,127,134,.38);
  background: var(--kpd-mint);
}

.kpd-medical-details {
  overflow: hidden;
}

.kpd-medical-details summary {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 17px 20px;
  cursor: pointer;
  color: var(--kpd-navy);
  font-size: 0.98rem;
  font-weight: 800;
}

.kpd-medical-details__body {
  padding: 0 20px 20px;
  overflow-wrap: anywhere;
}

.kpd-medical-details__body p {
  margin: 0 0 14px;
}

.kpd-disclaimer {
  padding: 15px;
  border: 1px solid #e8cdbf;
  border-radius: 13px;
  background: var(--kpd-warning-bg);
  color: #6f3c2d !important;
}

.kpd-final-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: clamp(26px, 4vw, 38px);
  border-radius: var(--kpd-radius);
  background:
    radial-gradient(circle at 100% 0, rgba(34,201,194,.26), transparent 18rem),
    linear-gradient(135deg, #073d59 0%, #075b72 58%, #0b858c 100%);
  box-shadow: 0 17px 38px rgba(8,47,73,.18);
}

.kpd-final-cta h2 {
  margin: 3px 0 0;
  color: #fff;
  font-size: clamp(1.55rem, 2.8vw, 2.25rem);
  line-height: 1.15;
}

.kpd-final-cta p:not(.kpd-kicker) {
  max-width: 680px;
  margin: 8px 0 0;
  color: rgba(255,255,255,.9);
}

.kpd-final-cta .kpd-kicker { color: #9ff5ef; }

.kpd-final-cta__actions {
  display: flex;
  flex: 0 0 auto;
  gap: 10px;
}

.kpd-btn--light {
  background: #fff;
  color: var(--kpd-navy-2);
}

.kpd-btn--outline-light {
  border-color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.08);
  color: #fff;
}

/* Blog article */
.kpd-article {
  width: min(820px, 100%);
  margin: 0 auto;
}

.kpd-article-header {
  padding: 16px 0 22px;
}

.kpd-article-header h1 {
  max-width: 820px;
  margin: 0;
  font-size: clamp(2.25rem, 4.7vw, 3.85rem);
  line-height: 1.07;
  overflow-wrap: anywhere;
}

.kpd-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 17px;
}

.kpd-article-meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--kpd-muted);
  font-size: 0.94rem;
  font-weight: 680;
}

.kpd-article-meta .kpd-icon { color: var(--kpd-teal); }

.kpd-article-cover {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--kpd-line);
  border-radius: 21px;
  background: #eaf3f5;
  box-shadow: var(--kpd-shadow-soft);
}

.kpd-article-cover img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 8.8;
  object-fit: cover;
  object-position: center;
}

.kpd-article-deck {
  margin: 22px 0 0;
  color: var(--kpd-text);
  font-size: clamp(1.08rem, 1.5vw, 1.18rem);
  line-height: 1.78;
}

.kpd-article-summary,
.kpd-topic-answer {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 22px;
  padding: 18px 20px;
  background: linear-gradient(135deg, var(--kpd-mint), #fff);
}

.kpd-article-summary > span,
.kpd-topic-answer > span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #fff;
  color: var(--kpd-teal);
}

.kpd-article-summary strong {
  display: block;
  color: var(--kpd-navy);
  font-size: 1.02rem;
}

.kpd-article-summary p,
.kpd-topic-answer p {
  margin: 4px 0 0;
}

.kpd-article-toc {
  margin-top: 22px;
  overflow: hidden;
  border: 1px solid var(--kpd-line);
  border-radius: 15px;
  background: #fff;
}

.kpd-article-toc summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 13px 17px;
  cursor: pointer;
  color: var(--kpd-navy);
  font-weight: 820;
  list-style: none;
}

.kpd-article-toc summary::-webkit-details-marker { display: none; }
.kpd-article-toc summary > .kpd-icon { color: var(--kpd-teal); }

.kpd-article-toc__toggle {
  position: relative;
  width: 18px;
  height: 18px;
  margin-left: auto;
}

.kpd-article-toc__toggle::before,
.kpd-article-toc__toggle::after {
  content: "";
  position: absolute;
  left: 2px;
  top: 8px;
  width: 14px;
  height: 2px;
  border-radius: 2px;
  background: var(--kpd-teal);
}

.kpd-article-toc__toggle::after { transform: rotate(90deg); }
.kpd-article-toc[open] .kpd-article-toc__toggle::after { transform: rotate(0); }

.kpd-article-toc nav {
  padding: 0 18px 16px 48px;
}

.kpd-article-toc ol {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
}

.kpd-article-toc a {
  color: var(--kpd-navy-2);
  font-size: 0.96rem;
  font-weight: 700;
}

.kpd-article-body {
  margin-top: 32px;
}

.kpd-rich-content {
  color: var(--kpd-text);
  font-size: 1.07rem;
  line-height: 1.84;
  overflow-wrap: anywhere;
}

.kpd-rich-content > :first-child { margin-top: 0 !important; }
.kpd-rich-content > :last-child { margin-bottom: 0 !important; }
.kpd-rich-content h1 { display: none; }

.kpd-rich-content h2 {
  scroll-margin-top: 105px;
  margin: 2.35rem 0 .9rem;
  font-size: clamp(1.55rem, 3vw, 2.08rem);
  line-height: 1.22;
}

.kpd-rich-content h3 {
  scroll-margin-top: 105px;
  margin: 1.65rem 0 .65rem;
  color: var(--kpd-navy-2);
  font-size: clamp(1.22rem, 2.2vw, 1.48rem);
  line-height: 1.32;
}

.kpd-rich-content h4 {
  margin: 1.4rem 0 .55rem;
  font-size: 1.12rem;
}

.kpd-rich-content p { margin: 0 0 1.15rem; }

.kpd-rich-content ul,
.kpd-rich-content ol {
  margin: .8rem 0 1.4rem;
  padding-left: 1.35rem;
}

.kpd-rich-content li + li { margin-top: .45rem; }

.kpd-rich-content a:not(.kpd-btn):not(.btn) {
  color: var(--kpd-teal);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-color: rgba(8,127,134,.3);
  text-underline-offset: 3px;
}

.kpd-rich-content img,
.kpd-rich-content video,
.kpd-rich-content iframe {
  display: block;
  width: 100%;
  height: auto;
  margin: 1.5rem 0;
  border-radius: 16px;
}

.kpd-rich-content iframe { min-height: 390px; }

.kpd-rich-content figure { margin: 1.5rem 0; }
.kpd-rich-content figcaption { margin-top: .55rem; color: var(--kpd-muted); font-size: .9rem; }

.kpd-rich-content blockquote {
  margin: 1.5rem 0;
  padding: 17px 20px;
  border-left: 4px solid var(--kpd-teal);
  border-radius: 0 14px 14px 0;
  background: var(--kpd-mint);
}

.kpd-table-scroll {
  width: 100%;
  margin: 1.45rem 0;
  overflow-x: auto;
  border: 1px solid var(--kpd-line);
  border-radius: 14px;
  -webkit-overflow-scrolling: touch;
}

.kpd-rich-content table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  background: #fff;
}

.kpd-rich-content th,
.kpd-rich-content td {
  padding: 12px 13px;
  border-bottom: 1px solid var(--kpd-line);
  text-align: left;
  vertical-align: top;
}

.kpd-rich-content th {
  background: var(--kpd-surface-soft);
  color: var(--kpd-navy);
}

.kpd-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 28px 0 0;
  color: var(--kpd-muted);
  font-size: 0.92rem;
}

.kpd-tags span {
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--kpd-surface-soft);
  color: var(--kpd-navy-2);
}

.kpd-page--article .kpd-faq,
.kpd-page--article .kpd-important,
.kpd-page--article .kpd-author-card,
.kpd-page--article .kpd-medical-details,
.kpd-page--article .kpd-related,
.kpd-page--article .kpd-final-cta {
  margin-top: 22px;
}

.kpd-author-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
}

.kpd-author-card__avatar {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--kpd-mint);
  color: var(--kpd-teal);
}

.kpd-author-card h2 {
  margin: 2px 0 4px;
  font-size: 1.25rem;
}

.kpd-author-card p { margin: 0; }

.kpd-more-articles {
  width: min(1080px, 100%);
  margin: 52px auto 0;
}

.kpd-article-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.kpd-article-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--kpd-line);
  border-radius: 17px;
  background: #fff;
  box-shadow: var(--kpd-shadow-soft);
}

.kpd-article-card__image {
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #eaf3f5;
}

.kpd-article-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}

.kpd-article-card:hover .kpd-article-card__image img { transform: scale(1.035); }

.kpd-article-card > div { padding: 17px; }

.kpd-article-card h3 {
  margin: 0 0 8px;
  font-size: 1.08rem;
  line-height: 1.36;
}

.kpd-article-card h3 a { color: var(--kpd-navy); }

.kpd-article-card p {
  display: -webkit-box;
  margin: 0 0 13px;
  overflow: hidden;
  color: var(--kpd-muted);
  font-size: 0.94rem;
  line-height: 1.58;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.kpd-text-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--kpd-teal);
  font-size: 0.93rem;
  font-weight: 850;
}

/* Thematic admin pages */
.kpd-page--topic .kpd-facts {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.kpd-topic-nav {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 22px auto 0;
  padding: 12px 14px;
  overflow: hidden;
  border: 1px solid var(--kpd-line);
  border-radius: 15px;
  background: #fff;
  box-shadow: var(--kpd-shadow-soft);
}

.kpd-topic-nav > strong {
  flex: 0 0 auto;
  color: var(--kpd-navy);
  font-size: 0.92rem;
}

.kpd-topic-nav > div {
  display: flex;
  gap: 8px;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

.kpd-topic-nav a {
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 999px;
  background: var(--kpd-surface-soft);
  color: var(--kpd-navy-2);
  font-size: 0.9rem;
  font-weight: 750;
  white-space: nowrap;
}

.kpd-topic-nav a:hover,
.kpd-topic-nav a:focus-visible {
  background: var(--kpd-mint);
}

.kpd-topic-flow {
  width: min(940px, 100%);
  margin: 24px auto 0;
}

.kpd-page--topic .kpd-topic-answer {
  margin-top: 0;
}

.kpd-topic-content {
  overflow: hidden;
}

.kpd-topic-content .kpd-rich-content {
  font-size: 1.04rem;
}

.kpd-content-placeholder {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 25px;
  background: linear-gradient(135deg, var(--kpd-mint), #fff);
}

.kpd-content-placeholder > span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
  color: var(--kpd-teal);
}

.kpd-content-placeholder h2 {
  margin: 0 0 7px;
  font-size: 1.45rem;
}

.kpd-content-placeholder p { margin: 0; }

/* Normalize the older custom rehabilitation landing markup after embedded CSS is removed. */
.kpd-topic-content .kp-rz-page,
.kpd-topic-content .kp-rz-wrap {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  overflow: visible;
}

.kpd-topic-content .kp-rz-hero,
.kpd-topic-content .kp-rz-kicker,
.kpd-topic-content .kp-rz-points {
  display: none !important;
}

.kpd-topic-content .kp-rz-section,
.kpd-topic-content .kp-rz-section-white,
.kpd-topic-content .kp-rz-trust,
.kpd-topic-content .kp-rz-cta-band {
  min-height: 0;
  margin: 0 0 26px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
}

.kpd-topic-content .kp-rz-section-head {
  max-width: none;
  margin: 0 0 18px;
  text-align: left;
}

.kpd-topic-content .kp-rz-eyebrow {
  color: var(--kpd-teal);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.kpd-topic-content .kp-rz-grid-2,
.kpd-topic-content .kp-rz-service-grid,
.kpd-topic-content .kp-rz-process-grid,
.kpd-topic-content .kp-rz-review-grid,
.kpd-topic-content .kp-rz-trust-wrap,
.kpd-topic-content .kp-rz-location-grid,
.kpd-topic-content .kp-rz-condition-list,
.kpd-topic-content .kp-rz-contact-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.kpd-topic-content .kp-rz-service-grid,
.kpd-topic-content .kp-rz-process-grid,
.kpd-topic-content .kp-rz-trust-wrap {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kpd-topic-content .kp-rz-card,
.kpd-topic-content .kp-rz-service-card,
.kpd-topic-content .kp-rz-process-step,
.kpd-topic-content .kp-rz-review-card,
.kpd-topic-content .kp-rz-trust-card,
.kpd-topic-content .kp-rz-condition,
.kpd-topic-content .kp-rz-contact-item,
.kpd-topic-content .kp-rz-image-panel,
.kpd-topic-content .kp-rz-map-box,
.kpd-topic-content .kp-rz-faq-item {
  min-width: 0;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--kpd-line);
  border-radius: 15px;
  background: #fbfdfe;
  box-shadow: none;
  color: inherit;
}

.kpd-topic-content .kp-rz-icon,
.kpd-topic-content .kp-rz-step-num {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--kpd-mint);
  color: var(--kpd-teal);
}

.kpd-topic-content .kp-rz-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 18px;
  border: 1px solid var(--kpd-line-strong);
  border-radius: 12px;
  background: #fff;
  color: var(--kpd-navy-2) !important;
  font-weight: 800;
}

.kpd-topic-content .kp-rz-btn-primary {
  border-color: transparent;
  background: linear-gradient(135deg, var(--kpd-navy-2), var(--kpd-teal));
  color: #fff !important;
}

.kpd-topic-content .kp-rz-faq-wrap { display: grid; gap: 10px; }

.kpd-topic-content .kp-rz-image-panel img,
.kpd-topic-content .kp-rz-map-box img {
  width: 100%;
  border-radius: 12px;
}

/* Tablet */
@media (max-width: 1040px) {
  .kpd-hero {
    grid-template-columns: minmax(0, 1fr) minmax(310px, .82fr);
    gap: 28px;
  }

  .kpd-layout {
    grid-template-columns: 205px minmax(0, 1fr);
    gap: 18px;
  }

  .kpd-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpd-process { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; }
  .kpd-process__item:not(:last-child)::after { display: none; }
}

@media (max-width: 860px) {
  .kpd-container,
  .kpd-container--article {
    width: min(100% - 22px, 760px);
    padding-top: 16px;
  }

  .kpd-hero {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 28px;
  }

  /* Text remains first on phones and tablets; the image follows the CTA. */
  .kpd-hero__copy { order: 1; }
  .kpd-hero__media { order: 2; }

  .kpd-hero__media img {
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .kpd-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 16px 0 0;
  }

  .kpd-facts--1 { grid-template-columns: 1fr; }
  .kpd-facts--3 .kpd-fact:last-child { grid-column: 1 / -1; }

  .kpd-fact:nth-child(odd) { border-left: 0; }
  .kpd-fact:nth-child(n+3) { border-top: 1px solid var(--kpd-line); }

  .kpd-layout {
    grid-template-columns: 1fr;
    margin-top: 22px;
  }

  .kpd-toc {
    position: static;
    padding: 13px;
  }

  .kpd-toc > strong { padding-bottom: 9px; }

  .kpd-toc ul {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 3px;
    scrollbar-width: thin;
  }

  .kpd-toc li { flex: 0 0 auto; }

  .kpd-toc a {
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid var(--kpd-line);
    border-radius: 999px;
    background: var(--kpd-surface-soft);
    white-space: nowrap;
  }

  .kpd-toc a span { display: none; }
  .kpd-final-cta { align-items: flex-start; flex-direction: column; }
  .kpd-final-cta__actions { width: 100%; }
  .kpd-final-cta__actions .kpd-btn { flex: 1; }
  .kpd-article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Blog covers are intentionally more compact than the full-width article column. */
  .kpd-page--article .kpd-article-cover {
    width: min(calc(100% - 28px), 680px);
    margin-inline: auto;
  }

  .kpd-page--article .kpd-article-cover img {
    aspect-ratio: 16 / 9;
    max-height: 360px;
  }
}

/* Mobile */
@media (max-width: 680px) {
  .kpd-page {
    font-size: 18px;
    line-height: 1.78;
  }

  .kpd-container,
  .kpd-container--article {
    width: calc(100% - 16px);
    padding: 10px 0 54px;
  }

  .kpd-hero {
    gap: 21px;
    padding: 23px 18px 18px;
    border-radius: 20px;
  }

  .kpd-breadcrumbs {
    margin-bottom: 14px;
    font-size: 0.9rem;
  }

  .kpd-badge,
  .kpd-kicker {
    font-size: 0.84rem;
  }

  .kpd-hero h1,
  .kpd-article-header h1 {
    font-size: clamp(2.08rem, 10vw, 3rem);
    line-height: 1.08;
  }

  .kpd-hero h1.kpd-title--long,
  .kpd-article-header h1.kpd-title--long {
    font-size: clamp(1.9rem, 8.8vw, 2.65rem);
  }

  .kpd-hero h1.kpd-title--very-long,
  .kpd-article-header h1.kpd-title--very-long {
    font-size: clamp(1.72rem, 8vw, 2.35rem);
    line-height: 1.13;
  }

  .kpd-hero__lead,
  .kpd-article-deck,
  .kpd-rich-content,
  .kpd-topic-content .kpd-rich-content,
  .kpd-lead-text {
    font-size: 1rem;
    line-height: 1.78;
  }

  .kpd-hero__mini-benefits {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 18px;
  }

  .kpd-actions {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 22px;
  }

  .kpd-btn {
    width: 100%;
    min-height: 54px;
    padding: 14px 17px;
    font-size: 1rem;
  }

  .kpd-hero__media { border-radius: 17px; }
  .kpd-hero__media img { aspect-ratio: 4 / 3; }

  .kpd-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-radius: 15px;
  }

  .kpd-fact {
    align-items: flex-start;
    padding: 14px 12px;
  }

  .kpd-fact__icon {
    width: 36px;
    height: 36px;
  }

  .kpd-fact__label {
    font-size: 0.84rem;
  }

  .kpd-fact strong {
    font-size: 0.93rem;
  }

  .kpd-layout { gap: 14px; }

  .kpd-section,
  .kpd-safety {
    padding: 23px 17px;
    border-radius: 18px;
  }

  .kpd-section-heading {
    gap: 11px;
    margin-bottom: 17px;
  }

  .kpd-section-icon {
    width: 38px;
    height: 38px;
  }

  .kpd-section-heading h2,
  .kpd-rich-content h2 {
    font-size: clamp(1.48rem, 7vw, 1.9rem);
    line-height: 1.22;
  }

  .kpd-rich-content h3 {
    font-size: clamp(1.22rem, 5.8vw, 1.5rem);
  }

  .kpd-section--split {
    grid-template-columns: 1fr;
  }

  .kpd-visual-symbol { display: none; }

  .kpd-check-list--columns,
  .kpd-feature-grid,
  .kpd-related-grid,
  .kpd-process,
  .kpd-article-grid {
    grid-template-columns: 1fr;
  }

  .kpd-feature p,
  .kpd-process p,
  .kpd-important .kpd-check-list li,
  .kpd-article-card p {
    font-size: 0.98rem;
  }

  .kpd-important {
    padding: 18px 16px;
    border-radius: 16px;
  }

  .kpd-important .kpd-check-list {
    gap: 9px;
  }

  .kpd-faq-item summary {
    min-height: 54px;
    padding: 15px 14px;
    font-size: 1rem;
  }

  .kpd-faq-item > div { padding: 0 14px 15px; }

  .kpd-final-cta {
    padding: 24px 18px;
    border-radius: 18px;
  }

  .kpd-final-cta__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .kpd-article-header { padding: 10px 2px 19px; }

  /* Keep the lead image visible but prevent it from dominating the first screen. */
  .kpd-page--article .kpd-article-cover {
    width: calc(100% - 24px);
    margin-inline: auto;
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(11, 63, 86, .08);
  }

  .kpd-page--article .kpd-article-cover img {
    aspect-ratio: 16 / 9;
    max-height: 230px;
    object-fit: cover;
  }

  /* Images inserted inside an article stay readable without becoming full-screen blocks. */
  .kpd-page--article .kpd-rich-content figure {
    width: min(100%, 560px);
    margin-inline: auto;
  }

  .kpd-page--article .kpd-rich-content img {
    width: auto;
    max-width: 100%;
    max-height: 340px;
    margin-inline: auto;
    object-fit: contain;
  }

  .kpd-page--article .kpd-article-card__image {
    aspect-ratio: 16 / 8.5;
    max-height: 190px;
  }

  .kpd-article-meta { gap: 8px 13px; }
  .kpd-article-meta span { font-size: 0.9rem; }
  .kpd-article-summary,
  .kpd-topic-answer { padding: 16px; }
  .kpd-article-toc nav { padding-left: 42px; }
  .kpd-article-body { margin-top: 26px; }
  .kpd-rich-content h2 { margin-top: 2rem; }
  .kpd-rich-content iframe { min-height: 250px; }

  .kpd-topic-nav {
    display: block;
    margin-top: 16px;
    padding: 12px;
  }

  .kpd-topic-nav > strong {
    display: block;
    margin-bottom: 8px;
  }

  .kpd-topic-flow { margin-top: 16px; }

  .kpd-content-placeholder {
    padding: 20px 17px;
  }

  .kpd-topic-content .kp-rz-grid-2,
  .kpd-topic-content .kp-rz-service-grid,
  .kpd-topic-content .kp-rz-process-grid,
  .kpd-topic-content .kp-rz-review-grid,
  .kpd-topic-content .kp-rz-trust-wrap,
  .kpd-topic-content .kp-rz-location-grid,
  .kpd-topic-content .kp-rz-condition-list,
  .kpd-topic-content .kp-rz-contact-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 420px) {
  .kpd-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kpd-fact {
    display: block;
    padding: 13px 10px;
  }

  .kpd-fact__icon {
    margin-bottom: 7px;
  }

  .kpd-fact strong {
    font-size: 0.88rem;
  }

  .kpd-breadcrumbs span:last-child {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .kpd-page--article .kpd-article-cover {
    width: calc(100% - 18px);
  }

  .kpd-page--article .kpd-article-cover img {
    max-height: 205px;
  }

  .kpd-page--article .kpd-article-card__image {
    max-height: 170px;
  }
}

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

/* ============================================================================
   KPHYSIO PREMIUM DETAIL PAGES — 2026-07-20
   Applies to individual services, blog articles and thematic/SEO pages.
   No markup or content changes; visual refinement only.
============================================================================ */
.kpd-page {
  --kpd-navy: #072a40;
  --kpd-navy-2: #08445d;
  --kpd-teal: #078d96;
  --kpd-teal-2: #08a3a5;
  --kpd-mint: #eaf7f5;
  --kpd-bg: #f6f9fa;
  --kpd-surface-soft: #f3f7f8;
  --kpd-line: #d9e5e8;
  --kpd-line-strong: #c5d8dc;
  --kpd-radius: 18px;
  --kpd-shadow: 0 18px 46px rgba(7, 43, 63, .07);
  --kpd-shadow-soft: 0 8px 24px rgba(7, 43, 63, .045);
  background: linear-gradient(180deg, #f8fbfb 0%, #f4f8f9 36%, #ffffff 100%);
}

.kpd-container {
  width: min(1200px, calc(100% - 36px));
  padding-top: clamp(34px, 4vw, 54px);
  padding-bottom: clamp(76px, 8vw, 112px);
}

/* Service and topic hero: a true premium editorial split, using the existing image. */
.kpd-page--service .kpd-hero,
.kpd-page--topic .kpd-hero {
  gap: clamp(30px, 4.5vw, 58px);
  padding: clamp(34px, 4.8vw, 58px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 26px;
  background:
    radial-gradient(circle at 7% 0%, rgba(11, 168, 169, .16), transparent 31%),
    linear-gradient(128deg, #061f31 0%, #083b55 60%, #0a5361 100%);
  box-shadow: 0 26px 64px rgba(6, 37, 53, .13);
}

.kpd-page--service .kpd-hero h1,
.kpd-page--topic .kpd-hero h1 {
  color: #fff;
  font-weight: 760;
  letter-spacing: -.04em;
}

.kpd-page--service .kpd-hero__lead,
.kpd-page--topic .kpd-hero__lead {
  color: rgba(241, 249, 251, .84);
}

.kpd-page--service .kpd-breadcrumbs,
.kpd-page--topic .kpd-breadcrumbs {
  color: rgba(255,255,255,.62);
}

.kpd-page--service .kpd-breadcrumbs a,
.kpd-page--topic .kpd-breadcrumbs a {
  color: rgba(255,255,255,.88);
}

.kpd-page--service .kpd-badge,
.kpd-page--topic .kpd-badge {
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color: #80e4de;
}

.kpd-page--service .kpd-hero__mini-benefits span,
.kpd-page--topic .kpd-hero__mini-benefits span {
  color: rgba(255,255,255,.86);
}

.kpd-page--service .kpd-hero__mini-benefits .kpd-icon,
.kpd-page--topic .kpd-hero__mini-benefits .kpd-icon {
  color: #72ddd7;
}

.kpd-page--service .kpd-btn--primary,
.kpd-page--topic .kpd-btn--primary {
  border-color: rgba(255,255,255,.1);
  background: linear-gradient(135deg, #078b99, #0aa7aa);
  box-shadow: 0 14px 30px rgba(7, 150, 158, .2);
}

.kpd-page--service .kpd-btn--secondary,
.kpd-page--topic .kpd-btn--secondary {
  border-color: rgba(255,255,255,.32);
  background: rgba(255,255,255,.07);
  color: #fff;
}

.kpd-page--service .kpd-hero__media,
.kpd-page--topic .kpd-hero__media {
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 20px;
  box-shadow: 0 22px 52px rgba(0,0,0,.17);
}

.kpd-page--service .kpd-hero__media::after,
.kpd-page--topic .kpd-hero__media::after {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
}

/* Facts become a quiet trust strip. */
.kpd-facts {
  margin-top: -16px;
  border-radius: 16px;
  border-color: #d6e4e7;
  box-shadow: 0 12px 32px rgba(7,43,63,.055);
}

.kpd-fact {
  padding: 18px 20px;
}

.kpd-fact__icon,
.kpd-section-icon {
  background: #edf7f6;
}

/* Main content surfaces: more whitespace, less dashboard-card weight. */
.kpd-section,
.kpd-safety,
.kpd-topic-answer,
.kpd-content-placeholder,
.kpd-medical-details {
  border-color: var(--kpd-line);
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(7,43,63,.045);
}

.kpd-section {
  padding: clamp(26px, 3.4vw, 42px);
}

.kpd-section-heading h2 {
  font-weight: 740;
  letter-spacing: -.032em;
}

.kpd-feature {
  border-color: var(--kpd-line);
  border-radius: 15px;
  background: #fff;
  box-shadow: none;
}

.kpd-process__item {
  border-radius: 15px;
  border-color: var(--kpd-line);
  box-shadow: none;
}

.kpd-process__number {
  background: #083f59;
}

/* TOC/navigation: refined, sticky only where it already exists. */
.kpd-toc,
.kpd-topic-nav,
.kpd-article-toc {
  border-color: var(--kpd-line);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(7,43,63,.04);
}

.kpd-toc a,
.kpd-topic-nav a {
  min-height: 42px;
}

/* Final CTA: strong but restrained. */
.kpd-final-cta {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 20px;
  background:
    radial-gradient(circle at 90% 10%, rgba(12, 177, 175, .16), transparent 30%),
    linear-gradient(125deg, #061f31 0%, #083b55 58%, #0a5361 100%);
  box-shadow: 0 18px 48px rgba(6,37,53,.12);
}

/* Article pages: premium reading experience, same content and images. */
.kpd-page--article .kpd-container--article {
  width: min(1120px, calc(100% - 36px));
}

.kpd-article-header {
  max-width: 900px;
  margin: 0 auto;
  padding-top: clamp(10px, 2vw, 24px);
  text-align: left;
}

.kpd-article-header h1 {
  max-width: 900px;
  font-size: clamp(2.45rem, 5vw, 4.8rem);
  font-weight: 760;
  line-height: 1.03;
  letter-spacing: -.045em;
}

.kpd-article-deck {
  max-width: 780px;
  color: #526d7a;
  font-size: clamp(1.08rem, 1.55vw, 1.25rem);
  line-height: 1.75;
}

.kpd-article-cover {
  overflow: hidden;
  border: 1px solid var(--kpd-line);
  border-radius: 22px;
  box-shadow: 0 20px 52px rgba(7,43,63,.085);
}

.kpd-article-body {
  gap: clamp(28px, 4vw, 46px);
}

.kpd-rich-content {
  font-size: 1.04rem;
  line-height: 1.82;
}

.kpd-rich-content h2 {
  margin-top: 2.25em;
  font-size: clamp(1.65rem, 2.8vw, 2.35rem);
  font-weight: 740;
}

.kpd-rich-content h3 {
  margin-top: 1.8em;
  font-weight: 720;
}

.kpd-rich-content img {
  border-radius: 18px;
}

.kpd-article-summary,
.kpd-important {
  border-radius: 16px;
  box-shadow: none;
}

.kpd-related-link,
.kpd-article-card {
  border-radius: 16px;
  border-color: var(--kpd-line);
  box-shadow: 0 8px 24px rgba(7,43,63,.04);
}

.kpd-article-card__image {
  border-radius: 14px;
  overflow: hidden;
}

/* Thematic/SEO pages often contain a lot of content: keep the reading column calm. */
.kpd-page--topic .kpd-topic-flow {
  gap: 28px;
}

.kpd-page--topic .kpd-topic-content {
  padding: clamp(28px, 4vw, 48px);
}

/* Touch targets and focus. */
.kpd-page :where(.kpd-btn, .kpd-topic-nav a, .kpd-toc a, summary) {
  min-height: 44px;
}

@media (max-width: 900px) {
  .kpd-page--service .kpd-hero,
  .kpd-page--topic .kpd-hero {
    grid-template-columns: 1fr;
  }

  .kpd-page--service .kpd-hero__media img,
  .kpd-page--topic .kpd-hero__media img {
    height: clamp(280px, 58vw, 430px);
  }
}

@media (max-width: 720px) {
  .kpd-container,
  .kpd-page--article .kpd-container--article {
    width: min(100% - 20px, 1200px);
    padding-top: 18px;
  }

  .kpd-page--service .kpd-hero,
  .kpd-page--topic .kpd-hero {
    padding: 26px 20px 20px;
    border-radius: 20px;
  }

  .kpd-page--service .kpd-hero h1,
  .kpd-page--topic .kpd-hero h1,
  .kpd-article-header h1 {
    font-size: clamp(2rem, 10vw, 3.2rem);
  }

  .kpd-facts {
    margin: 12px 0 0;
    border-radius: 16px;
  }

  .kpd-section,
  .kpd-safety,
  .kpd-topic-content {
    padding: 24px 20px;
  }

  .kpd-article-cover {
    border-radius: 18px;
  }
}
