.card {
  display: grid;
  gap: var(--space-16);
  padding: 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  transition:
    box-shadow var(--duration-base) var(--easing-standard),
    border-color var(--duration-base) var(--easing-standard);
}

.card:hover,
.card:focus-within {
  border-color: rgba(11, 31, 58, 0.2);
  box-shadow: var(--shadow-lift);
}

.card__media {
  overflow: hidden;
  border-radius: var(--radius-sm);
  aspect-ratio: 16 / 10;
  background: var(--color-surface);
}

.card--experience .card__media,
.card--destination .card__media {
  aspect-ratio: 16 / 9;
}

.card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card__body {
  display: grid;
  gap: 10px;
}

.card--destination {
  width: min(100%, 336px);
  justify-self: center;
}

.card__title {
  max-width: 22ch;
}

.card--destination .card__text,
.card--experience .card__text {
  -webkit-line-clamp: 2;
}

.benefit-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  background: transparent;
  color: var(--color-ocean-700);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.detail-panel {
  border: 1px solid rgba(11, 31, 58, 0.1);
  border-radius: var(--radius-md);
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.detail-panel__button {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  padding: 16px 18px;
  text-align: left;
}

.detail-panel__content {
  display: grid;
  gap: var(--space-8);
  padding: 0 18px 16px;
}

.detail-panel__list {
  display: grid;
  gap: var(--space-8);
  padding-left: 18px;
  list-style: disc;
}

.card--contact,
.card--belief,
.card--tip,
.card--benefit {
  align-content: start;
}

.card--contact-action {
  gap: 8px;
  padding: 10px 12px;
  align-content: start;
}

.card--contact-action .card__title {
  font-size: 0.95rem;
  max-width: none;
  line-height: 1.2;
}
