@charset "UTF-8";
/* =========================================================
   永寿院 お知らせページ CSS
   構成: ① PC共通スタイル（セクション別） ② スマホ専用スタイル
   ========================================================= */

/* ============================================================
   ① PC共通スタイル
   ============================================================ */

/* ---------- News page head ---------- */
.news-page-head{
  position:relative;
  overflow:hidden;
  background:var(--gray-deep);
  padding:300px 0;
  text-align:center;
}
.news-page-head img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0.45;
}
.news-page-head .inner{
  position:relative;
  z-index:1;
}
.news-page-head .eyebrow{
  justify-content:center;
  color:var(--gold-light);
}
.news-page-head .eyebrow::before{
  background:var(--gold-light);
}
.news-page-head h1{
  font-size:clamp(34px,5vw,52px);
  color:#fff;
  letter-spacing:0.1em;
  margin-top:14px;
}

/* ---------- お知らせ見出し（NEWS／お知らせ）：ふわっと表示 ---------- */
.js-anim-ready .news-page-head .eyebrow,
.js-anim-ready .news-page-head h1{
  opacity:0;
  transform:translateY(50px) scale(0.9);
  transition:
    opacity 1.6s cubic-bezier(0.34, 1.56, 0.64, 1),
    transform 1.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.news-page-head h1{
  transition-delay: 0.1s;
}
.news-page-head .eyebrow.is-visible,
.news-page-head h1.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}

/* ---------- News filter tabs ---------- */
.news-list-section{
  background:var(--white);
  padding:64px 0 96px;
}
.news-filter-tabs{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin-bottom:48px;
}
.news-filter-btn{
  padding:12px 28px;
  border:1px solid var(--gold);
  border-radius:999px;
  background:none;
  color:var(--gold);
  font-size:14.5px;
  font-weight:600;
  letter-spacing:0.04em;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.news-filter-btn:hover{
  background:var(--gold-soft);
}
.news-filter-btn.is-active{
  background:var(--gold);
  color:#fff;
}

/* ---------- News cards（文章が上、写真があれば文章の下） ---------- */
.news-list{
  display:flex;
  flex-direction:column;
  gap:28px;
}
.news-card{
  display:flex;
  flex-direction:column;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  transition:box-shadow .3s ease, transform .3s ease, border-color .3s ease;
}
.news-card:hover{
  box-shadow:0 20px 40px rgba(63,60,54,0.14);
  transform:translateY(-4px);
  border-color:var(--gold-light);
}
.news-card-body{
  padding:44px 48px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.news-card:not(.is-no-photo) .news-card-body{
  padding-bottom:24px;
}
.news-card-meta{
  display:flex;
  align-items:center;
  gap:14px;
}
.news-date{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:20px;
  color:var(--gold);
  letter-spacing:0.08em;
  font-weight:600;
}
.news-tag{
  font-size:15px;
  color:var(--gold-deep, var(--gold));
  background:var(--gold-soft);
  padding:4px 14px;
  letter-spacing:0.06em;
  border-radius:999px;
  font-weight:600;
}
.news-title{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:21px;
  font-weight:700;
  color:var(--gray-deep);
  line-height:1.6;
  letter-spacing:0.02em;
}
.news-desc{
  font-size:17px;
  color:var(--ink-soft);
  line-height:2;
  font-weight:600;
}

/* ---------- 写真（2枚：横並び／1枚：2枚のときの1枚分の大きさで中央） ---------- */
.news-card-photo{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
  padding:0 48px 44px;
}
/* 写真1枚：横幅を広め（約75%）にして中央に配置 */
.news-card:not(.has-2-photos) .news-card-photo{
  grid-template-columns:minmax(0, 75%);
  justify-content:center;
}
.news-card:not(.has-2-photos) .news-card-photo-inner{
  aspect-ratio:16/9;
}
.news-card-photo-inner{
  width:100%;
  aspect-ratio:4/3;
  border-radius:14px;
  overflow:hidden;
}
.news-card-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s ease;
}
.news-card:hover .news-card-photo img{
  transform:scale(1.06);
}


/* ============================================================
   ② スマホ専用スタイル（860px以下）
   ============================================================ */
@media (max-width:860px){

  /* ---- 見出し ---- */
  .news-page-head{
    padding:160px 0;
  }
  .news-list-section{
    padding:40px 0 64px;
  }

  /* ---- 絞り込みボタン：3列にそろえて並べる（件数が増えても崩れない） ---- */
  .news-filter-tabs{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:8px;
    margin-bottom:32px;
  }
  .news-filter-btn{
    padding:10px 6px;
    font-size:13px;
    line-height:1.4;
    min-height:44px;
    word-break:keep-all;
    overflow-wrap:anywhere;
  }

  /* ---- お知らせカード ---- */
  .news-card-body{
    padding:24px 22px;
    gap:12px;
  }
  .news-card:not(.is-no-photo) .news-card-body{
    padding-bottom:12px;
  }
  .news-title{
    font-size:17px;
  }
  .news-desc{
    font-size:14px;
  }

  /* ---- 写真：1枚・2枚とも、文章の下に横幅いっぱいで縦に並べる ---- */
  .news-card .news-card-photo,
  .news-card:not(.has-2-photos) .news-card-photo{
    grid-template-columns:1fr;
    justify-content:stretch;
    gap:12px;
    padding:0 16px 16px;
  }
  .news-card-photo-inner{
    aspect-ratio:16/9;
  }
}