.newsHeader {
  max-width: 1133px;
  margin: 0 auto;
  padding: 3rem 4% 2rem;
}
.newsHeader .ttl.serif {
  font-weight: 400;
}
.newsHeader .meta {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.newsHeader .meta .date {
  padding-right: 1em;
  margin-right: 1em;
  border-right: 1px solid #707070;
}
.newsHeader .meta .category .cat {
  display: inline-block;
  padding: 0 .5em;
  margin-right: 1em;
  border: 1px solid #707070;
  border-radius: 4px;
}
@media print, screen and (min-width: 768px) {
  .newsHeader .ttl {
    font-size: 1.75rem;
  }
  .newsHeader .meta {
    padding-bottom: 3em;
  }
  .newsHeader .meta .date {
    font-size: 12px;
  }
  .newsHeader .meta .category {
    font-size: 14px;
  }
}
@media screen and (max-width: 767px) {
  .newsHeader .ttl {
    font-size: 1.5rem;
  }
  .newsHeader .meta {
    padding-bottom: 1em;
  }
  .newsHeader .meta .date {
    font-size: .875rem;
  }
  .newsHeader .meta .category {
    font-size: .92rem;
  }
}

.newsDetail {
  max-width: 1133px;
  margin: 0 auto;
}
.newsDetail p, .newsDetail li {
  line-height: 2;
}
.newsDetail p {
  margin-bottom: 1.5em;
}
.newsDetail h3, .newsDetail h4, .newsDetail h5, .newsDetail h6 {
  padding: 1em 0 .5em;
}
.newsDetail ul {
  padding-left: 1.5em;
  padding-bottom: 1.5em;
  list-style: disc;
}
.newsDetail ul ul {
  list-style: circle;
}
.newsDetail a {
  text-decoration: underline;
}
.newsDetail .kome {
  display: block;
  font-size: 0.875rem;
  padding-left: 1em;
  text-indent: -1em;
}
.newsDetail .fullImage {
  padding: 1em 0 2.5em;
}
@media print, screen and (min-width: 768px) {
  .newsDetail {
    padding: 0 4% 40px;
  }
  .newsDetail h2 {
    font-size: 1.5rem;
    padding-bottom: .5em;
  }
  .newsDetail h3 {
    font-size: 1.35rem;
  }
  .newsDetail h4 {
    font-size: 1.25rem;
  }
  .newsDetail h5 {
    font-size: 1.15rem;
  }
  .newsDetail h6 {
    font-size: 1rem;
  }
  .newsDetail a:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 767px) {
  .newsDetail {
    padding: 0 4% 4%;
  }
  .newsDetail h2 {
    font-size: 1.45rem;
    padding-bottom: .5em;
  }
  .newsDetail h3 {
    font-size: 1.3rem;
  }
  .newsDetail h4 {
    font-size: 1.2rem;
  }
  .newsDetail h5 {
    font-size: 1.14rem;
  }
  .newsDetail h6 {
    font-size: 1;
  }
}

.newsBtnLink {
  text-align: center;
}
.newsBtnLink a {
  position: relative;
  display: inline-block;
  padding: .5em 3em;
  font-weight: bold;
  border: 1px solid #707070;
  border-radius: 20em;
  background: #fff;
  transition: background .15s linear;
}
.newsBtnLink a:after {
  content: "";
  display: block;
  position: absolute;
  right: 1em;
  top: 50%;
  width: .6em;
  height: .6em;
  margin-top: -0.3em;
  box-sizing: border-box;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  transform: rotate(45deg);
  transition: right .15s linear;
}
@media print, screen and (min-width: 768px) {
  .newsBtnLink {
    padding-top: 3rem;
  }
  .newsBtnLink a:hover {
    background: #f2f2f2;
  }
  .newsBtnLink a:hover:after {
    right: .8em;
  }
}
@media screen and (max-width: 767px) {
  .newsBtnLink {
    padding-top: 2rem;
  }
  .newsBtnLink a {
    display: block;
  }
}

.newsAsideLink {
  background: #f8f8f8;
}
.newsAsideLink + .shareBtn {
  margin-top: 0;
}
.newsAsideLink .newsBtnLink {
  padding-top: 0;
}
@media print, screen and (min-width: 768px) {
  .newsAsideLink {
    padding: 2.5em 4%;
    margin-top: 40px;
  }
}
@media screen and (max-width: 767px) {
  .newsAsideLink {
    padding: 8% 4%;
    margin-top: 6%;
  }
}

/* シェアボタンを横並びにするコンテナ（共通・スマホ用） */
.custom-share-buttons {
  display: flex;
  gap: 12px;
  margin: -40px 0 20px 0; /* スマホ用の上マージン（-40px） */
  align-items: center;
  justify-content: flex-end; /* ★全体を右寄せにする★ */
}

/* PC用の調整（画面幅が768px以上の場合に適用） */
@media screen and (min-width: 768px) {
  .custom-share-buttons {
    margin-top: -110px; /* スマホよりさらに70px高くする（-40 - 70 = -110） */
  }
}
/* ボタン共通のスタイル */
.custom-share-buttons .share-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s ease;
  border: none;   /* コピーボタン(buttonタグ)のリセット */
  cursor: pointer;/* コピーボタン(buttonタグ)のリセット */
  padding: 0;     /* コピーボタン(buttonタグ)のリセット */
}

.custom-share-buttons .share-btn:hover {
  opacity: 0.7;
}

/* SVGアイコン自体のサイズ（少し大きくして視認性アップ） */
.custom-share-buttons .share-btn svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

/* リンクコピー用アイコンは線で描画するためfillを消す */
.custom-share-buttons .share-copy svg {
  fill: none;
}

/* 各SNSのブランドカラー */
.custom-share-buttons .share-fb {
  background-color: #1877f2;
}
.custom-share-buttons .share-line {
  background-color: #06c755;
}
.custom-share-buttons .share-copy {
  background-color: #777777; /* リンクコピーのグレー */
}
/* LINEだけアイコンサイズを拡大して文字の視認性を上げる */
.custom-share-buttons .share-line svg {
  width: 25px;
  height: 25px;
}
