/* 提携医院セクション（フッター直前・全ページ共通） */

:where(.c-015-partner) {
  padding: var(--wp--preset--spacing--4-xl) var(--wp--preset--spacing--base);
  background: var(--wp--preset--color--white);
}

:where(.c-015-partner__inner) {
  max-width: 110rem;
  margin: 0 auto;
}

:where(.c-015-partner__text) {
  max-width: 76rem;
  margin: 0 auto var(--wp--preset--spacing--2-xl);
  text-align: center;
  font-size: var(--wp--preset--font-size--sm);
  line-height: 1.9;
  color: var(--wp--preset--color--text);
  @media (max-width: 768px) {
    text-align: left;
  }
}

:where(.c-015-partner__list) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  gap: var(--wp--preset--spacing--base);
  margin: 0;
  padding: 0;
  list-style: none;
}

:where(.c-015-partner__item) {
  margin: 0;
}

/* grid + place-content:center だと、固有寸法を持たない SVG の max-width:100% が
   トラック幅と循環参照になり 0x0 に潰れるため flex で中央寄せする */
:where(.c-015-partner__link) {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 11rem;
  height: 100%;
  padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--base);
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--gray-lighter);
  border-radius: var(--wp--custom--border-radius--md);
  box-shadow: var(--wp--custom--shadow--xs);
  text-decoration: none;
  transition: box-shadow var(--wp--custom--transition--duration--base) ease,
    transform var(--wp--custom--transition--duration--base) ease,
    border-color var(--wp--custom--transition--duration--base) ease;
}

:where(.c-015-partner__link:hover),
:where(.c-015-partner__link:focus-visible) {
  transform: translateY(-0.4rem);
  border-color: var(--wp--preset--color--primary);
  box-shadow: var(--wp--custom--shadow--md);
}

/* ロゴは元の縦横比を保ったまま枠内に収める（各院でロゴの形状差が大きいため） */
:where(.c-015-partner__logo) {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 6rem;
  object-fit: contain;
}

/* ロゴ未設定時のテキストバナー */
:where(.c-015-partner__name) {
  text-align: center;
  font-size: var(--wp--preset--font-size--sm);
  font-weight: var(--wp--custom--font-weight--bold);
  line-height: 1.6;
  color: var(--wp--preset--color--primary);
}

:where(.c-015-partner__external) {
  position: absolute;
  top: var(--wp--preset--spacing--sm);
  right: var(--wp--preset--spacing--sm);
  font-size: 1.6rem;
  color: var(--wp--preset--color--gray-light);
}

@media (prefers-reduced-motion: reduce) {
  :where(.c-015-partner__link) {
    transition: none;
  }
  :where(.c-015-partner__link:hover),
  :where(.c-015-partner__link:focus-visible) {
    transform: none;
  }
}
