/* ==================================================================
   仁淀病院 ドクター紹介（独立新機能）
   写真は「縦長 3:4 フレーム」に object-fit:cover で表示。
   縦長の証明写真でも頭が切れない。
   ================================================================== */

.nd-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px 24px;
  margin:0 0 1.5em;
}
.nd-cols-1{grid-template-columns:1fr}
.nd-cols-2{grid-template-columns:repeat(2,1fr)}
.nd-cols-3{grid-template-columns:repeat(3,1fr)}
.nd-cols-4{grid-template-columns:repeat(4,1fr)}
.nd-cols-5{grid-template-columns:repeat(5,1fr)}
.nd-cols-6{grid-template-columns:repeat(6,1fr)}

.nd-card{
  display:flex;
  flex-direction:column;
}

/* カードをクリックで個別ページへ遷移 */
.nd-card__link{
  display:block;
  color:inherit;
  text-decoration:none !important;
}
.nd-card__link:hover,
.nd-card__link:focus{
  text-decoration:none !important;
}
.nd-card--link{
  transition:transform .15s ease;
}
.nd-card--link:hover{
  transform:translateY(-3px);
}
.nd-card--link:hover .nd-card__photo{
  box-shadow:0 6px 18px rgba(49,86,163,.22);
}
.nd-card--link:hover .nd-card__name{
  color:#3156A3;
}
.nd-card__link:focus-visible{
  outline:2px solid #3156A3;
  outline-offset:3px;
  border-radius:12px;
}

/* 写真フレーム：縦長 3:4 */
.nd-card__photo{
  position:relative;
  width:100%;
  aspect-ratio:3 / 4;
  overflow:hidden;
  border-radius:10px;
  background:#eef1f6;
  box-shadow:0 2px 10px rgba(49,86,163,.10);
}
/* aspect-ratio 非対応ブラウザのフォールバック */
@supports not (aspect-ratio:1 / 1){
  .nd-card__photo{height:0;padding-top:133.333%;}
}

.nd-card__img,
.nd-card__photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;            /* トリミングせず枠いっぱいに */
  object-position:top center;  /* 頭側を優先 → 頭が切れない */
  display:block;
}

.nd-card__noimg{
  position:absolute;
  inset:0;
  background:#dfe4ee;
}

/* テキスト */
.nd-card__info{
  padding:12px 4px 0;
  text-align:center;
}
.nd-card__sub{
  margin:0 0 3px;
  font-size:13px;
  font-weight:700;
  color:#F36C21;            /* セカンダリ（ダークオレンジ） */
  letter-spacing:.02em;
}
.nd-card__name{
  margin:0;
  font-size:18px;
  line-height:1.4;
  font-weight:700;
  color:#333;
}
.nd-card__reading{
  display:block;
  margin-top:3px;
  font-size:12px;
  font-weight:400;
  color:#6d6d6d;
}
.nd-card__profile{
  padding:10px 4px 0;
  font-size:13px;
  line-height:1.75;
  color:#333;
  text-align:left;
}

/* レスポンシブ（プロジェクト基準: 1250 / 990 / 767） */
@media (max-width:1250px){
  .nd-cols-4,.nd-cols-5,.nd-cols-6{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:990px){
  .nd-cols-3,.nd-cols-4,.nd-cols-5,.nd-cols-6{grid-template-columns:repeat(2,1fr)}
  .nd-grid{gap:24px 18px}
}
@media (max-width:767px){
  .nd-grid{gap:20px 14px}
  .nd-card__name{font-size:16px}
  .nd-card__sub{font-size:12px}
}

/* ==================================================================
   個別ページ（single-niyodo_doctor.php）
   写真は縦長3:4フレームで頭を切らずに表示。
   ================================================================== */
.nd-single__inner{
  display:flex;
  gap:36px;
  max-width:960px;
  margin:34px auto 54px;
  padding:0 15px;
  align-items:flex-start;
}
.nd-single__photo{
  flex:0 0 320px;
  max-width:320px;
  position:relative;
  aspect-ratio:3 / 4;
  overflow:hidden;
  border-radius:12px;
  background:#eef1f6;
  box-shadow:0 4px 16px rgba(49,86,163,.12);
}
@supports not (aspect-ratio:1 / 1){
  .nd-single__photo{height:0;padding-top:133.333%;}
}
.nd-single__img,
.nd-single__photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top center;  /* 頭側を優先 → 頭が切れない */
  display:block;
}
.nd-single__body{
  flex:1 1 auto;
  min-width:0;
}
.nd-single__sub{
  margin:0 0 6px;
  font-size:15px;
  font-weight:700;
  color:#F36C21;
  letter-spacing:.02em;
}
.nd-single__name{
  margin:0 0 20px;
  font-size:26px;
  font-weight:700;
  line-height:1.4;
  color:#333;
}
.nd-single__reading{
  display:block;
  margin-top:6px;
  font-size:14px;
  font-weight:400;
  color:#6d6d6d;
}
.nd-single__profile{
  font-size:15px;
  line-height:1.9;
  color:#333;
}
.nd-single__profile p{margin:0 0 1em;}
.nd-single__career{
  margin-top:26px;
  padding-top:22px;
  border-top:1px solid #e5e9f2;
}
.nd-single__section-title{
  margin:0 0 12px;
  font-size:18px;
  font-weight:700;
  line-height:1.5;
  color:#3156A3;
}
.nd-single__career-body{
  font-size:15px;
  line-height:1.9;
  color:#333;
}
.nd-single__career-body p{margin:0 0 1em;}
.nd-single__back{margin-top:30px;}
.nd-single__back a{
  display:inline-block;
  color:#3156A3;
  font-weight:600;
  text-decoration:none;
}
.nd-single__back a:hover{text-decoration:underline;}

@media (max-width:767px){
  .nd-single__inner{
    flex-direction:column;
    align-items:center;
    gap:24px;
  }
  .nd-single__photo{
    flex-basis:auto;
    width:72%;
    max-width:260px;
  }
  .nd-single__body{
    width:100%;
    text-align:center;
  }
  .nd-single__name{font-size:22px;}
  .nd-single__profile{text-align:left;}
}
