/* Structured service pages */
.plx-single-service {
  background: var(--plx-bg);
}

.plx-service-hero {
  /* Slightly tighter above the fold while preserving breathing room beneath the hero. */
  padding-block: 50px clamp(60px, 6vw, 86px);
}

.plx-service-hero-content {
  max-width: 660px;
}

.plx-service-hero .plx-section-title {
  margin-bottom: 20px;
}

.plx-service-hero-lead {
  margin: 0;
  color: #3f5360;
  font-size: clamp(1rem, 1.25vw, 1.12rem);
  line-height: 2;
}

.plx-service-hero-lead + .plx-service-hero-lead {
  margin-top: 12px;
}

.plx-service-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 30px;
}

.plx-service-hero-media img {
  aspect-ratio: 4 / 3;
  min-height: 320px;
}

.plx-service-section {
  padding-block: clamp(58px, 7vw, 100px);
}

.plx-service-surface,
.plx-service-journey,
.plx-service-faq-section {
  background: #fff;
}

.plx-service-reading {
  display: grid;
  grid-template-columns: minmax(230px, .68fr) minmax(0, 1.32fr);
  gap: clamp(34px, 7vw, 110px);
  align-items: center;
}

.plx-service-section-heading h2,
.plx-service-centered-heading h2,
.plx-service-final-cta h2 {
  margin: 0;
  color: var(--plx-brand);
  font-size: 36px;
  line-height: 1.67;
  font-weight: 600;
}

.plx-service-section-copy > p,
.plx-service-section-copy > .plx-multiline-text,
.plx-service-centered-heading > p,
.plx-service-centered-heading > .plx-multiline-text,
.plx-service-option-card p,
.plx-service-option-card .plx-multiline-text,
.plx-service-journey-step p,
.plx-service-journey-step .plx-multiline-text {
  margin: 0;
  color: #3f5360;
  font-size: 1.02rem;
  line-height: 2;
}

.plx-service-section-copy > p + p,
.plx-service-section-copy > .plx-multiline-text + .plx-multiline-text {
  margin-top: 16px;
}

.plx-service-list {
  display: grid;
  gap: 12px;
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
}

.plx-service-list li {
  position: relative;
  padding-inline-start: 30px;
  color: #2f4554;
  line-height: 1.9;
}

.plx-service-list li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: .73em;
  width: 10px;
  height: 10px;
  border: 1px solid var(--plx-accent);
  border-radius: 999px;
  background: rgba(90,62,102,.09);
}

.plx-service-centered-heading {
  max-width: 810px;
  margin: 0 auto 38px;
  text-align: center;
}

.plx-service-centered-heading > p,
.plx-service-centered-heading > .plx-multiline-text {
  margin-top: 16px;
}

.plx-service-options-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.plx-service-option-card {
  min-height: 240px;
  padding: 30px;
  border: 1px solid rgba(231,222,210,.9);
  border-radius: var(--plx-radius-lg);
  background: rgba(255,255,255,.88);
  box-shadow: 0 18px 48px rgba(31,41,55,.055);
}

.plx-service-option-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 30px;
  border-radius: 999px;
  color: var(--plx-accent-dark);
  background: rgba(90,62,102,.10);
  font-size: .78rem;
  font-weight: 800;
}

.plx-service-option-card h3 {
  margin: 24px 0 12px;
  color: var(--plx-brand);
  font-size: 1.25rem;
  line-height: 1.45;
}

.plx-service-journey {
  overflow: hidden;
}

.plx-service-journey-list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.plx-service-journey-list::before {
  content: "";
  position: absolute;
  inset-inline: 8% 8%;
  inset-block-start: 28px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(90,62,102,.3), transparent);
}

.plx-service-journey-step {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding: 0 14px;
  text-align: center;
}

.plx-service-step-number {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin: 0 auto 20px;
  border: 1px solid rgba(90,62,102,.26);
  border-radius: 999px;
  color: var(--plx-accent-dark);
  background: #fff;
  box-shadow: 0 10px 24px rgba(90,62,102,.08);
  font-weight: 800;
}

.plx-service-journey-step h3 {
  margin: 0 0 10px;
  color: var(--plx-brand);
  font-size: 1.08rem;
  line-height: 1.55;
}

.plx-service-approach {
  background:
    radial-gradient(circle at 86% 0%, rgba(90,62,102,.12), transparent 31%),
    linear-gradient(180deg, #fdfbf7, #f7f2ea);
}

.plx-service-approach-inner {
  display: grid;
  grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr);
  gap: clamp(34px, 7vw, 110px);
  align-items: center;
}

.plx-service-care-alert {
  margin-top: 26px;
  padding: 20px 22px;
  border: 1px solid rgba(90,62,102,.18);
  border-radius: var(--plx-radius-md);
  background: rgba(90,62,102,.055);
  color: var(--plx-brand);
}

.plx-service-care-alert strong {
  display: block;
  line-height: 1.8;
}

.plx-service-list-alert {
  margin-top: 12px;
}

.plx-service-faq-list {
  display: grid;
  gap: 12px;
}

.plx-service-faq-item {
  border: 1px solid rgba(231,222,210,.95);
  border-radius: var(--plx-radius-md);
  background: #fff;
  overflow: hidden;
}

.plx-service-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 24px;
  color: var(--plx-brand);
  cursor: pointer;
  list-style: none;
  font-weight: 600;
  line-height: 1.75;
}

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

.plx-service-faq-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  color: var(--plx-accent);
  background: rgba(90,62,102,.12);
  font-size: 1.25rem;
  font-weight: 400;
  transition: transform .34s cubic-bezier(.22, .78, .22, 1), background-color .34s ease;
}

.plx-service-faq-item[open] .plx-service-faq-icon {
  transform: rotate(45deg);
  background: rgba(90,62,102,.14);
}

.plx-js .plx-service-faq-panel {
  overflow: hidden;
  transition: height .34s cubic-bezier(.22, .78, .22, 1), opacity .24s ease;
}

.plx-js .plx-service-faq-item:not([open]) .plx-service-faq-panel {
  display: none;
}

.plx-service-faq-panel {
  padding-inline: 24px;
  color: #3f5360;
  line-height: 2;
}

.plx-service-faq-answer {
  min-height: 0;
  padding-block-end: 22px;
}

.plx-service-final-cta {
  padding-block: clamp(66px, 7vw, 102px) clamp(78px, 8vw, 116px);
  background: linear-gradient(180deg, var(--plx-bg), #fff);
}

.plx-service-final-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: clamp(30px, 4vw, 52px);
  border: 1px solid rgba(90,62,102,.16);
  border-radius: clamp(24px, 3vw, 34px);
  background:
    radial-gradient(circle at 86% 20%, rgba(90,62,102,.11), transparent 34%),
    linear-gradient(135deg, #f8f4fa, #fff);
  box-shadow: 0 24px 60px rgba(31,41,55,.07);
}

.plx-service-final-cta-text {
  max-width: 760px;
  margin-top: 14px;
  color: #3f5360;
  font-size: 1.02rem;
  line-height: 2;
}
.plx-service-final-cta-text > p { margin: 0; }

.plx-service-final-cta .plx-service-actions {
  flex: 0 0 auto;
  margin-top: 0;
}

.plx-service-final-cta .plx-btn-primary {
  color: #fff;
  background: var(--plx-brand);
  border-color: var(--plx-brand);
}

.plx-service-final-cta .plx-btn-outline {
  color: var(--plx-brand);
  border-color: rgba(31,41,55,.35);
  background: rgba(255,255,255,.6);
}

@media (max-width: 960px) {
  .plx-service-section-heading h2,
  .plx-service-centered-heading h2,
  .plx-service-final-cta h2 {
    font-size: 32px;
  }

  .plx-service-reading,
  .plx-service-approach-inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .plx-service-options-grid { grid-template-columns: 1fr; }
  .plx-service-journey-list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 34px; }
  .plx-service-journey-list::before { display: none; }
  .plx-service-final-cta-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 620px) {
  .plx-service-hero { padding-block: 34px 50px; }
  .plx-service-hero-media img { min-height: 0; }
  .plx-service-actions { align-items: stretch; flex-direction: column; }
  .plx-service-actions .plx-btn { justify-content: center; width: 100%; }
  .plx-service-section { padding-block: 48px; }
  .plx-service-option-card { min-height: 0; padding: 24px; }
  .plx-service-journey-list { grid-template-columns: 1fr; gap: 24px; }
  .plx-service-journey-step { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 14px; padding: 0; text-align: start; }
  .plx-service-step-number { width: 46px; height: 46px; margin: 0; }
  .plx-service-section-heading h2,
  .plx-service-centered-heading h2,
  .plx-service-final-cta h2 {
    font-size: 28px;
  }
  .plx-service-faq-item summary { padding: 18px; }
  .plx-service-faq-panel { padding-inline: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .plx-service-faq-panel,
  .plx-service-faq-answer,
  .plx-service-faq-icon { transition: none; }
}
