/* ==========================================================================
   コラム記事一覧（/column/）・詳細（/column/{slug}/）
   ========================================================================== */

/* --- 一覧: カードグリッド（事例一覧のカードと同じ見た目・絞り込みなし） --- */
.p-column-archive {
  margin-top: min(14rem, 8.75vw);
  padding-bottom: min(10rem, 6.25vw);
}
@media screen and (max-width: 768.9px) {
  .p-column-archive {
    margin-top: 6rem;
  }
}
.p-column-archive__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(4.2rem, 2.625vw);
}
.p-column-archive__empty {
  grid-column: 1 / -1;
  padding: min(6rem, 3.75vw) 0;
  font-size: min(1.8rem, 1.125vw);
  text-align: center;
  color: #868686;
}
@media screen and (max-width: 1024px) {
  .p-column-archive__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .p-column-archive__empty {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 768.9px) {
  .p-column-archive__grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
}

.p-column-card {
  display: block;
  color: inherit;
  text-decoration: none;
  background: #F7F7F7;
  transition: opacity 0.2s ease;
}
.p-column-card:hover {
  opacity: 0.85;
}
.p-column-card__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 356 / 216;
  object-fit: cover;
}
.p-column-card__body {
  padding: min(2.4rem, 1.5vw) min(3.2rem, 2vw) min(3.2rem, 2vw);
}
.p-column-card__date {
  display: block;
  font-size: min(1.5rem, 0.9375vw);
  font-weight: 500;
  letter-spacing: 0.015em;
  color: #868686;
}
.p-column-card__title {
  margin-top: min(0.8rem, 0.5vw);
  font-size: min(2.2rem, 1.375vw);
  font-weight: 700;
  line-height: 1.5;
  color: #262626;
}
.p-column-card__excerpt {
  margin-top: min(1rem, 0.625vw);
  font-size: min(1.5rem, 0.9375vw);
  line-height: 1.8;
  color: #2F2F2F;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media screen and (max-width: 768.9px) {
  .p-column-card__body {
    padding: 1.8rem 2rem 2.4rem;
  }
  .p-column-card__date {
    font-size: 1.2rem;
  }
  .p-column-card__title {
    font-size: 1.8rem;
  }
  .p-column-card__excerpt {
    font-size: 1.3rem;
  }
}

/* --- 一覧: ページネーション（事例一覧と同じ見た目） --- */
.p-column-archive__pagination {
  display: flex;
  justify-content: center;
  gap: min(1rem, 0.625vw);
  margin-top: min(8rem, 5vw);
}
.p-column-archive__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(4.3rem, 2.6875vw);
  height: min(4.3rem, 2.6875vw);
  padding: 0 0.6rem;
  font-size: min(2rem, 1.25vw);
  color: #3E71B7;
  text-decoration: none;
  background: #F4F4F4;
  border-radius: 2px;
}
.p-column-archive__pagination .page-numbers.current {
  color: #fff;
  background: #3E71B7;
}
.p-column-archive__pagination .page-numbers.dots {
  background: transparent;
}
@media screen and (max-width: 768.9px) {
  .p-column-archive__pagination .page-numbers {
    min-width: 3.4rem;
    height: 3.4rem;
    font-size: 1.4rem;
  }
}

.p-column-single {
  padding: min(2rem, 1.25vw) 0 min(10rem, 6.25vw);
}
.p-column-single__contents {
  margin: 0 auto;
  max-width: 90rem;
  width: 100%;
  padding-top: min(7.8rem, 4.875vw);
}

.wp-block-embed__wrapper:has(> iframe) { 
  text-align: center;
}
.wp-block-embed__wrapper iframe { 
  aspect-ratio: 16 / 9;
  height: auto;
}

/* --- 記事タイトル（h1・下線＋アクセント下線） --- */
.p-column-single__title-area {
  position: relative;
  padding-bottom: min(3rem, 1.875vw);
}
.p-column-single__title {
  font-size: min(4.8rem, 2.6666666667vw);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.047em;
  color: #272828;
}
@media screen and (max-width: 768.9px) {
  .p-column-single__title {
    font-size: 2rem;
  }
  .p-column-single__title-area {
    padding-bottom: 2rem;
  }
}
.p-column-single__title-area::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 0.3rem;
  background: #EDEDED;
}
.p-column-single__title-area::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(9.6rem, 6vw);
  height: 0.3rem;
  background: #1D4A9E;
}

/* --- 本文（the_content）--- */
.p-column-single__article {
  margin-top: min(5rem, 3.125vw);
}
@media screen and (max-width: 768.9px) {
  .p-column-single__article {
    margin-top: 3rem;
  }
}

/* h2: 左に縦のアクセントバー＋下に全幅の区切り線 */
.p-column-single__article h2 {
  position: relative;
  margin: 4em 0 0;
  padding: 0 0 min(2rem, 1.25vw) min(2.6rem, 1.625vw);
  font-size: min(3.5rem, 2.1875vw);
  font-weight: 700;
  line-height: 1.5;
  color: #272828;
  border-bottom: 0.2rem solid #EDEDED;
}
.p-column-single__article h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: min(0.8rem, 0.5vw);
  height: min(3.1rem, 1.9375vw);
  background: #1D4A9E;
}
@media screen and (max-width: 768.9px) {
  .p-column-single__article h2 {
    padding: 0 0 1.4rem 1.8rem;
    font-size: 2.4rem;
  }
  .p-column-single__article h2::before {
    width: 0.6rem;
    height: 2rem;
  }
}

/* h3: 左に短い横のアクセントライン */
.p-column-single__article h3 {
  position: relative;
  padding-left: min(4.7rem, 2.9375vw);
  font-size: min(2.8rem, 1.75vw);
  font-weight: 700;
  line-height: 1.5;
  color: #272828;
}
.p-column-single__article h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: min(3rem, 1.875vw);
  height: 0.3rem;
  background: #1D4A9E;
}
@media screen and (max-width: 768.9px) {
  .p-column-single__article h3 {
    padding-left: 3rem;
    font-size: 2.1rem;
  }
  .p-column-single__article h3::before {
    width: 2rem;
  }
}

/* h4: 装飾なしの太字見出し */
.p-column-single__article h4 {
  font-size: min(2.5rem, 1.5625vw);
  font-weight: 700;
  line-height: 1.5;
  color: #272828;
}
@media screen and (max-width: 768.9px) {
  .p-column-single__article h4 {
    font-size: 1.9rem;
  }
}

/* --- 記事内CTA（Lazy Block: sanjin-column-cta、水色背景・電話/フォーム/LINEの3カード） --- */
.p-column-cta {
  margin-top: min(6rem, 3.75vw);
  padding: min(6rem, 3.75vw) min(4rem, 2.5vw) min(5rem, 3.125vw);
  background: #EAF3F8;
  border-radius: min(1.5rem, 0.9375vw);
  text-align: center;
}
.p-column-cta .p-column-cta__heading {
  /* .p-column-single__article h2 の装飾（左アクセントバー・下線・padding）を打ち消す */
  position: static;
  margin: 0;
  padding: 0;
  border-bottom: none;
  font-size: min(3rem, 1.875vw);
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.047em;
  color: #272828;
}
.p-column-cta .p-column-cta__heading::before {
  display: none;
}
.p-column-cta .p-column-cta__lead {
  margin-top: min(1.6rem, 1vw);
  font-size: min(1.8rem, 1.125vw);
  line-height: 1.8;
  color: #262626;
}
.p-column-cta .p-column-cta__lead strong {
  font-size: min(2.2rem, 1.375vw);
  font-weight: 700;
  color: #1D4A9E;
  letter-spacing: 0.047em;
}
.p-column-cta .p-column-cta__main {
  margin-top: min(4rem, 2.5vw);
  text-align: left;
}
/* サイト共通CTAの.c-contact-common__contents__mainは固定幅min(94.2rem,...)・2カラム
   （電話が1/3で全幅、フォーム・LINEが下段2カラム）を持つため、記事本文（最大90rem）内に
   収まる幅にしつつ、PCは電話・フォーム・LINEを3カラム横並びに変更する（SPは元々の縦積みのまま） */
.p-column-cta .c-contact-common__contents__main {
  width: 100% !important;
}
@media screen and (min-width: 769px) {
  .p-column-cta .c-contact-common__contents__main {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .p-column-cta .c-contact-common__item--tell {
    grid-column: auto !important;
    /* 元は2カラム分の幅を想定した左右広めのpaddingだったので、他の2枚と揃える */
    padding: min(1.8rem, 1vw) min(2rem, 0.5vw) min(2.6rem, 1.4444444444vw) !important;
  }
  /* grid-template-columns:1fr は暗黙にminmax(auto,1fr)のため、電話カードの
     電話番号画像・営業時間バッジ（本来は幅の広い2カラム分を想定したサイズ）が
     縮められず3カラムの幅がバラバラになる／はみ出す。min-widthを0にして幅を強制し、
     中の要素も1カラムぶんの幅に収まるサイズへ縮小する */
  .p-column-cta .c-contact-common__item {
    min-width: 0;
  }
  .p-column-cta .c-contact-common__item--tell__number img {
    width: 100%;
    max-width: 19rem;
  }
  .p-column-cta .c-contact-common__item--tell__hours {
    width: 100%;
    max-width: 22rem;
  }
}
/* 3カラム均等幅になった分、文字が収まるようフォントサイズを縮小 */
.p-column-cta .c-contact-common__item__title {
  font-size: min(1.8rem, 1.125vw);
}
.p-column-cta .c-contact-common__item__text {
  font-size: min(1.5rem, 0.9375vw);
}
.p-column-cta .c-contact-common__item--tell__hours__title {
  font-size: min(1.5rem, 0.8333333333vw);
}
.p-column-cta .c-contact-common__item--tell__hours__text {
  font-size: min(1.5rem, 0.8333333333vw);
}
/* フォーム・LINEボタン: .c-article a のリンク色・下線を打ち消し、ボーダーなし・白文字にする */
.p-column-cta .c-btn__03--contact,
.p-column-cta .c-btn__03--line {
  border: none;
  color: #fff;
  text-decoration: none;
}
@media screen and (max-width: 768.9px) {
  .p-column-cta {
    margin-top: 4rem;
    padding: 4rem 2rem 3rem;
    border-radius: 1.2rem;
  }
  .p-column-cta .p-column-cta__heading {
    font-size: 1.8rem;
  }
  .p-column-cta .p-column-cta__lead {
    margin-top: 1.2rem;
    font-size: 1.2rem;
  }
  .p-column-cta .p-column-cta__lead strong {
    font-size: 1.7rem;
  }
  /* PC用に縮小したmin(rem,vw)がSPで極小化しないよう固定値で上書き */
  .p-column-cta .c-contact-common__item__title {
    font-size: 2rem;
  }
  .p-column-cta .c-contact-common__item__text {
    font-size: 1.2rem;
  }
  .p-column-cta .c-contact-common__item--tell__hours__title {
    font-size: 1rem;
  }
  .p-column-cta .c-contact-common__item--tell__hours__text {
    font-size: 1rem;
  }
  .p-column-cta .p-column-cta__main {
    margin-top: 3rem;
  }
}
