/* ==========================================================================
   Homepage Service Overview: cards that expand in place (native <details>).
   Design System tokens only (--bc-*). Loaded by the homepage only.
   ========================================================================== */

.cp-services {
  padding-block: var(--bc-space-7);
  background: var(--bc-paper);
}

.cp-services__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--bc-space-4);
  align-items: start; /* an opened card never stretches its neighbours */
}

.cp-service {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--bc-surface);
  border: 1px solid var(--bc-line);
  border-radius: var(--bc-radius-lg);
  box-shadow: var(--bc-shadow-sm);
  transition: box-shadow 0.2s ease-out;
}

.cp-service__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--bc-paper-alt);
}

.cp-service__body { padding: var(--bc-space-4); }

.cp-service__title {
  margin: 0 0 var(--bc-space-2);
  font-family: var(--bc-font-display);
  font-weight: 600;
  font-size: var(--bc-text-xl);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: var(--bc-ink);
}
.cp-service__title a { color: var(--bc-accent-dark); }
.cp-service__title a:hover { color: var(--bc-ink); }

.cp-service__lead { margin: 0 0 var(--bc-space-2); }

/* Disclosure control: 48px target, obvious state */
.cp-service__more summary {
  display: flex;
  align-items: center;
  gap: var(--bc-space-2);
  min-height: 48px;
  cursor: pointer;
  list-style: none;
  font-weight: 600;
  color: var(--bc-accent-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cp-service__more summary::-webkit-details-marker { display: none; }
.cp-service__more summary:hover { color: var(--bc-ink); }

.cp-service__chev { flex: none; transition: transform 0.2s ease-out; }
.cp-service__more[open] .cp-service__chev { transform: rotate(180deg); }

.cp-service__label--close { display: none; }
.cp-service__more[open] .cp-service__label--open { display: none; }
.cp-service__more[open] .cp-service__label--close { display: inline; }

/* Remainder of the original copy; no clipping, no max-height */
.cp-service__rest { padding-top: var(--bc-space-2); }
.cp-service__rest p { margin: 0 0 var(--bc-space-4); }
.cp-service__rest .bc-btn { margin-top: var(--bc-space-2); }

.cp-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (hover: hover) {
  .cp-service:hover { box-shadow: var(--bc-shadow); }
}

@media (min-width: 640px) {
  .cp-services { padding-block: var(--bc-space-8); }
  .cp-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bc-space-5); }
  .cp-service__body { padding: var(--bc-space-5); }
}

@media (min-width: 960px) {
  .cp-services { padding-block: var(--bc-space-9); }
  .cp-services__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cp-service__title { font-size: var(--bc-text-2xl); }
}

@media (prefers-reduced-motion: reduce) {
  .cp-service, .cp-service__chev { transition: none; }
}

/* Two-card variant (sections that hold exactly two items) */
@media (min-width: 960px) {
  .cp-services__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
