@charset "utf-8";

:root {
  --darkfont-color: #333;
  --font-color: #fff;
  --lightgray-color: #8D8D8D;
  --background-color: #262626;
  --base-color: #F1F2F3;
  --sub-color: #70706F;
  --border-color: #D9D9D9;
  --subblack-color: #251E1C;

  --default-font: "Noto Serif JP", serif;
  --sub-font: "Noto Sans JP", sans-serif;
}

html {
  scroll-behavior: smooth;
}

body {
  font-size: 62.5%;
}

.wrapper {
  font-family: var(--default-font);
  background-color: var(--background-color);
  /* background-color: var(--base-color); */
  /* background-image: url("../img/clean-textile.png"); */
  /* background-repeat: repeat; */
  letter-spacing: 0.1em;
  color: var(--font-color);
}

#about, #access {
  scroll-margin-top: 10rem;
}

img {
  display: block;
}

a,
button {
  color: var(--white-color);
  letter-spacing: 0.1em;
  transition: all ease-in-out 0.3s;
}

li, address, figcaption {
  letter-spacing: 0.1em;
}

/* 縦書き用クラス */
.upright {
  text-orientation: upright;
  writing-mode: vertical-rl;
  letter-spacing: 0.2em;
}

/* リンクホバー */
@media (hover: hover) and (pointer: fine) {
  a:hover {
    opacity: 0.7;
  }
}

/* 予約ボタン */
.btn {
  width: 225px;
}

.btn a {
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  color: var(--font-color);
  font-size: 1.4rem;
  font-weight: 700;
  padding: 15px 0;
  border: 1px solid var(--font-color);
  border-radius: 30px;
}

/* フェードイン */
.js-fade {
  opacity: 0;
  visibility: hidden;
  transition: all 1.5s;
  transform: translateY(150px);
}

.is-active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}


/* -----------------------------------
固定予約ボタン ポップアップ 全ページ共通
-------------------------------------- */
.sticky-btn {
  position: fixed;
  bottom: 10px;
  right: 10px;
  z-index: 999;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.sticky-btn button {
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  color: var(--font-color);
  font-size: 1.4rem;
  font-weight: 700;
  padding: 15px 0;
  border: 1px solid var(--font-color);
  border-radius: 30px;
  overflow: hidden;
  background-color: rgba(121, 121, 121, 0.4);
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
}

.sticky-btn.show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
@media (hover: hover) and (pointer: fine) {
  button:hover {
    opacity: 0.7;
  }
}

/* ポップアップの背景 */
.popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

/* ポップアップの中身 */
.popup-content {
  background: #fff;
  padding: 30px;
  border-radius: 10px;
  max-width: 700px;
  width: 90%;
  position: relative;
  text-align: left;
  line-height: 1.6;
  color: var(--darkfont-color);
}

/* 閉じるボタン */
.close-btn {
  position: absolute;
  top: 10px;
  right: 15px;
  background: none;
  border: none;
  font-size: 2.4rem;
  cursor: pointer;
  color: var(--darkfont-color);
}
.popup-content h2 {
  font-size: 2.4rem;
  text-align: center;
}
.popup-content ul {
  list-style-position: inside;
  list-style-type: square;
  font-family: var(--sub-font);
  font-size: 1.4rem;
  margin: 5rem 0;
}
.popup-content li:not(:last-child) {
  margin-bottom: 10px;
}

/* 予約リンクボタン */
.popup-reserve-btn {
  display: block;
  width: fit-content;
  margin-top: 20px;
  padding: 12px 50px;
  background-color: #333;
  color: #fff;
  text-decoration: none;
  border-radius: 30px;
  font-size: 1.4rem;
  font-weight: 500;
  margin: 0 auto;
  text-align: center;
}

/* -----------------------------------
ハンバーガーメニュー
-------------------------------------- */
.hamburger {
  position: fixed;
  top: 0;
  right: 0;
  width: 70px;
  height: 70px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 11px;
  border: none;
  z-index: 1001;
  cursor: pointer;
}

.hamburger span {
  height: 2px;
  background: var(--font-color);
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.hamburger span:nth-child(1) {
  width: 28px;
}

.hamburger span:nth-child(2) {
  width: 20px;
}

/* アクティブ */
.hamburger.active span:nth-child(1) {
  width: 28px;
  transform: rotate(45deg) translate(5px, 5px);
  background: var(--darkfont-color);
}

.hamburger.active span:nth-child(2) {
  width: 28px;
  transform: rotate(-45deg) translate(5px, -5px);
  background: var(--darkfont-color);
}

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  /* 半透明の黒 */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
  z-index: 999;
}

.overlay.active {
  opacity: 1;
  visibility: visible;
}

.menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 320px;
  height: 100%;
  display: flex;
  flex-flow: column;
  justify-content: start;
  gap: 20px;
  background: var(--base-color);
  background-image: url("../img/clean-textile.png");
  color: var(--darkfont-color);
  transition: right 0.3s ease;
  z-index: 1000;
  padding: 60px 30px;
  box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);
}

.menu.active {
  right: 0;
}

/* ハンバーガーメニュー内スタイル */
.menu-logo {
  width: 100px;
  flex: 0 0 auto;
  margin: 0 auto;
}

.menu-logo img {
  width: 100%;
  height: auto;
}

.menu ul {
  flex: 1 1 auto;
  min-width: 0;
  list-style: none;
  padding: 0;
  height: 100%;
  border-top: 1px solid var(--border-color);
}

.menu li {
  border-bottom: 1px solid var(--border-color);
}

.menu ul a {
  display: block;
  color: var(--white-color);
  text-decoration: none;
  font-size: 1.4rem;
  font-weight: 700;
  padding: 20px 0;
}
.menu ul a::before {
  content: '・';
}
@media (hover: hover) and (pointer: fine) {
  a:hover {
    opacity: 0.7;
  }
}

/* -----------------------------------
トップ
-------------------------------------- */
.top {
  width: 100%;
  height: 100vh;
}

.top-wrap {
  width: 100%;
  height: 100%;
  padding-top: 70px;
  /* ハンバーガーボタンの高さ */
  display: flex;
  justify-content: space-between;
}

.top-header {
  width: calc(100% - 70%);
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  gap: 5%;
}

.top-header h1 {
  width: 130px;
}

.top-header h1 img {
  width: 100%;
  height: auto;
}

.top-header nav {
  width: 100%;
}

.top-header nav ul {
  margin: 0 auto;
}

.nav-item {
  font-size: 1.6rem;
  font-weight: 700;
}

.nav-item a {
  display: block;
  line-height: 3.5;
}
.nav-item a::before {
  content: '・';
}

.mv {
  width: 70%;
  height: 100%;
  overflow: hidden;
  /* aspect-ratio: 3 / 2; */
}

.mv video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

@media screen and (min-width:961px) {
  .sp-logo {
    display: none;
  }
}

/* .mv iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120%;
  height: 120%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  border: none;
} */
/* iframe[src*="youtube.com"],
iframe[src*="youtube-nocookie.com"] {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120%;
  height: 120%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  border: none;
} */

/* トップヘッダー予約ボタン */
.topBook-btn button {
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  color: var(--font-color);
  font-size: 1.4rem;
  font-weight: 700;
  padding: 15px 0;
  border: 1px solid var(--font-color);
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
}

/* -----------------------------------
共通要素
-------------------------------------- */

.common-upright {
  font-size: 1.6rem;
  font-weight: 700;
}


/* テキスト郡 */
.common-txt {
  display: flex;
  flex-flow: column;
  gap: 100px;
}

.common-title {
  font-size: 6.4rem;
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 30px;
  letter-spacing: 0;
}

/* 英語テキスト */
.common-pEn {
  font-family: var(--sub-font);
  font-size: 1.5rem;
  color: var(--lightgray-color);
}

/* 日本語テキスト */
.common-p {
  font-size: 1.6rem;
  letter-spacing: 0.2em;
  line-height: 2.5;
  font-weight: 500;
}

/* -----------------------------------
京懐石　東山について about
-------------------------------------- */

/* 遅延の順番を指定 */
.about .common-cont.is-active {
  transition-delay: 0s;
}

.about .common-txt.is-active {
  transition-delay: 0.3s;
}

.about-pic.is-active {
  transition-delay: 0.6s;
}

.about {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 5%;
  width: 90%;
  margin-right: auto;
  margin-left: auto;
  margin-top: 25rem;
  margin-bottom: 25rem;
}

.about .common-cont {
  flex: 6;
  display: flex;
  justify-content: space-between;
  gap: 95px;
}

.about .common-title {
  font-size: 4rem;
}

.about .common-title span {
  display: block;
  font-size: 2.8rem;
  margin-bottom: 15px;
}


/* 写真 */
.about-pic {
  flex: 4;
  position: initial;
  height: auto;
}

.about-pic img {
  position: initial;
}

.about-pic img:first-child {
  position: relative;
  z-index: 2;
  width: 55%;
}

.about-pic img:last-child {
  position: relative;
  z-index: 1;
  width: 60%;
  margin-top: -40px;
  margin-right: 0;
  margin-left: auto;
}

/* -----------------------------------
お料理 cuisine
-------------------------------------- */
.cuisine {
  height: auto;
}

.cuisine-bg {
  width: 100%;
  background-image: url("../img/cuisine-bg.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-color: rgba(0, 0, 0, 0.7);
  background-blend-mode: darken;
  padding-top: 25rem;
}

.cuisine-main {
  width: 90%;
  margin-right: auto;
  margin-left: auto;
}

.cuisine .common-cont {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 95px;
}

.cuisine-txtBox {
  display: flex;
  gap: 10%;
}

.cuisine-mainTxt {
  flex: 6;
}

.cuisine-mainTxt h4 {
  font-size: 2rem;
  letter-spacing: 0.2em;
  line-height: 3;
  font-weight: 700;
}

/* 京を味わう */
.cuisine-subtitle {
  flex: 4;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cuisine-subtitle h3 {
  display: flex;
  flex-flow: column;
  gap: 20px;
  font-size: 3.2rem;
  font-weight: 500;
  text-orientation: upright;
  writing-mode: vertical-rl;
  letter-spacing: 0.2em;
}

.cuisine-subtitle h3 span:last-child {
  margin-top: 120px;
}

/* ------コース------ */
.cuisine-course {
  width: 90%;
  display: flex;
  justify-content: space-between;
  gap: 10%;
  margin: 10rem auto 0;
}

.course-box {
  width: calc(100% / 2);
  background-color: var(--subblack-color);
  padding: 55px 0;
  border-radius: 3px;
}

.course-box figure {
  width: 100%;
  margin: 0 auto;
}

.course-pic {
  width: 90%;
  margin-bottom: 30px;
  margin-right: auto;
  margin-left: auto;
}

.course-pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3 / 2;
  border-radius: 3px;
}

.course-box dl {
  padding: 0 15px;
}

.course-box dt,
.course-box dd {
  font-size: 1.8rem;
  text-align: center;
}

.course-box dd {
  margin-top: 10px;
}

.course-box dd.course-nameEn {
  font-family: var(--sub-font);
  font-size: 1.2rem;
}

.course-box dd span {
  font-size: 1.4rem;
}

/* 注意事項 */
/* .attencion {
  width: 90%;
  margin: 30px auto 0;
} */

.attencion {
  width: 90%;
  margin: 30px auto 0;
  font-size: 1.2rem;
}

@media (hover: hover) and (pointer: fine) {
  .course-box:hover {
    opacity: 1;
    background-color: #514947;
  }
}

/* ----------------
料理のカルーセル
------------------- */
.carousel {
  position: relative;
  top: -50%;
  /* cuisine-bgの高さの半分だけ上に戻す */
  transform: translateY(50%);
  /* 自身の高さの半分だけ下にずらす */
  z-index: 1;
  overflow: hidden;
  width: 100vw;
  /* ビューポート幅に合わせる */
  max-width: 100%;
}

.carousel-track {
  width: 100%;
  display: flex;
  justify-content: space-between;
  --slide-gap: 25px;
  /* 余白変更の際はjsも変更 */
  gap: var(--slide-gap);
  will-change: transform;
}

.carousel-item {
  flex: 0 0 calc((100vw - (var(--slide-gap) * 2)) / 3);
}

.carousel-item img {
  width: 100%;
  display: block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}


/* -----------------------------------
料理長 chef
-------------------------------------- */

/* フェードイン遅延の順番を指定 */
.chef-name.is-active {
  transition-delay: 0s;
}

.chef-txt.is-active {
  transition-delay: 0.3s;
}

.chef-pic.is-active {
  transition-delay: 0.6s;
}

.chef {
  background-color: var(--sub-color);
  margin-top: 25rem;
}

.chef-inner {
  width: 90%;
  display: flex;
  justify-content: space-between;
  /* gap: 5%; */
  margin: 0 auto;
  padding: 15rem 0;
}

.chef-name {
  flex: 3;
  display: flex;
  flex-flow: column;
  gap: 50px;
}

.chef-job {
  display: flex;
  justify-content: flex-start;
}

.chef-titleItem1 {
  flex: 0 0 auto;
}

.chef-titleItem2 {
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;

}

.chef-nakamura {
  font-size: 3.6rem;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}

.chef-nakamura span {
  display: block;
  font-family: var(--sub-font);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.2;
}

.chef-namePic img {
  width: 100%;
  height: auto;
}

.chef-item {
  flex: 7;
  display: flex;
  justify-content: space-between;
}

.chef-txt {
  flex: 6;
  padding: 0 50px;
}

.chef-pic {
  flex: 4;
}

.chef-pic img {
  width: 100%;
  height: auto;
}

/* ===================================
トップお知らせ news
====================================== */
.news {
  width: 85%;
  margin: 8rem auto 0;
  padding: 10rem 0;
  background-color: var(--sub-color);
}

.news-title {
  width: 50%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 15%;
}

.news-titleItem1 {
  padding-left: 30px;
}

.news-titleItem2 {
  font-weight: 300;
  line-height: 1.2;
}

.post-container {
  width: 70%;
  display: flex;
  justify-content: center;
  --post-gap: 15%;
  gap: var(--post-gap);
  flex-wrap: wrap;
  margin: 5rem auto 0;
}

.post-card {
  flex: 1;
  transition: ease-in-out 0.3s;
}

.modal-hover {
  transition: ease-in-out 0.3s;
}

.post-title {
  margin-top: 30px;
}

.post-title h4 {
  font-size: 1.6rem;
  font-weight: 400;
}

.post-title time {
  display: block;
  /* font-family: var(--sub-font); */
  font-size: 1.6rem;
  margin-top: 10px;
  opacity: 0.8;
}

.post-thmb {
  width: 100%;
  height: auto;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.6);
}

.post-thmb img {
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.post-more {
  margin: 5rem auto 0;
}

@media (hover: hover) and (pointer: fine) {
  .post-hover:hover {
    opacity: 0.7;
  }
}

/* ======================================
アクセス access
========================================= */
.access {
  width: 90%;
  margin: 15rem auto;
}

.access-title {
  width: 50%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 15%;
}

.access-titleItem2 {
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0;
}

.access-content {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 10%;
  margin-top: 5rem;
}

.access-item {
  flex: 1;
}

.access-item img {
  width: 100%;
  height: auto;
}
.rootTxt {
  margin: 20px 0;
}
.rootTxt address {
  display: block;
  width: fit-content;
  font-size: 1.4rem;
  margin-bottom: 10px;
  margin-right: auto;
  margin-left: auto;
}
.rootTxt p {
  font-size: 1.4rem;
  line-height: 1.8;
  text-align: center;
}
.access-item .btn {
  margin: 30px auto 0;
}

.root:nth-of-type(2) {
  margin: 30px 0;
}

.root h4 {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2;
  border-bottom: 1px solid var(--font-color);
  margin-bottom: 10px;
}

.root div {
  margin-left: 18px;
  margin-bottom: 10px;
}

.root div p:first-child {
  position: relative;
  font-size: 1.8rem;
  font-family: var(--sub-font);
  line-height: 2;
  font-weight: 400;
  margin-bottom: 10px;
}

.root div p:first-child::before {
  position: absolute;
  content: '';
  top: 50%;
  left: -15px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--font-color);
}

.root div p:last-child {
  font-weight: 300;
  font-size: 1.6rem;
  line-height: 1.5;
  font-family: var(--sub-font);
}

/* ==================================
footer
===================================== */
footer {
  width: 100%;
  background-color: #E8E8E8;
  background-image: url("../img/clean-textile.png");
  color: var(--darkfont-color);
}

.ft-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 90%;
  margin: 0 auto;
  padding: 6rem 0;
  color: var(--darkfont-color);
}

/* 東山情報 */
.ft-higashiyama {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex: 2;
}

.ft-logo {
  width: 50%;
}

.ft-logo img {
  width: 120px;
  height: auto;
  margin: 0 auto;
}

.ft-info {
  width: 50%;
  padding-right: 2rem;
}

.ft-higashiyama address {
  width: 100%;
  display: flex;
  flex-flow: column;
  justify-content: center;
  gap: 15px;
  font-size: 1.4rem;
  font-weight: 700;
}

.ft-higashiyama address a {
  display: block;
}

.ft-higashiyama address a span {
  font-size: 1.7rem;
}

.ft-higashiyama address div {
  font-size: 1.2rem;
}

.ft-higashiyama .sns {
  display: flex;
  justify-content: start;
  align-items: center;
  gap: 32px;
  margin-top: 15px;
}

.ft-higashiyama .sns a {
  display: block;
  width: 20px;
  height: 20px;
  overflow: hidden;
}

.ft-higashiyama .sns img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* フッターナビ */
.ft-nav {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  border-left: 1px solid #D9D9D9;
}

.ft-nav li a {
  display: block;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.5;
}
.ft-nav li a::before {
  content: '・';
}

/* コピーライト */
.ft-copy {
  text-align: center;
  padding: 10px 0;
}


/* ===================================
下層ページ共通
====================================== */
/* ヘッダー */
.under_header {
  width: 100%;
  padding: 20px 20px 0;
  z-index: 999;
}

.under_logo {
  display: block;
  width: 100px;
}

.under_logo img {
  width: 100%;
  height: auto;
}

/* --------------------
下層用 固定予約ボタン
----------------------- */
/* .under-btn {
  position: fixed;
  bottom: 10px;
  right: 10px;
  z-index: 999;
  transition: opacity 0.4s ease, transform 0.4s ease;
} */

/* .under-btn a {
  overflow: hidden;
  background-color: rgba(121, 121, 121, 0.5);
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
} */

/* 共通MV */
.under_mv {
  width: 90%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-right: 0;
  margin-left: auto;
}

.under_mvTl {
  width: auto;
}

.under_mvTl h1 {
  font-size: 3.2rem;
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
.under_mvTl h1 .sp-br {
  display: none;
}

.under_mvTl p {
  font-size: 2.4rem;
  line-height: 1.8;
  margin-top: 10px;
}

.under_mvPic {
  width: 70%;
  filter: brightness(0.7);
}

.under_mv .under_mvPic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3 / 1;
}
/* ===================================
下層ページ コース
====================================== */
/* 固定ページ内容 */
.main {
  width: 80%;
  margin: 15rem auto;
}

/* コースサブタイトル */
.page-content h2 {
  font-size: 3.2rem;
  font-weight: 500;
  margin-bottom: 5rem;
}

.page-content h2 span {
  font-size: 2rem;
  opacity: 0.8;
}

/* 季節のタイトル */
.page-content h3 {
  font-size: 3.2rem;
  font-weight: 500;
  margin-bottom: 5rem;
}

.page-content p {
  font-size: 1.6rem;
  line-height: 2;
  font-weight: 500;
  margin-bottom: 30px;
}

.page-content a {
  border-bottom: 1px solid #fff;
}

.page-content .wp-block-button__link.wp-element-button {
  font-size: 1.6rem;
  margin-bottom: 30px;
}

.page-content p:last-child {
  margin-bottom: 0;
}

/* ブロックグループ */
.page-content .wp-block-group {
  margin: 15rem 0;
}

/* 他コース導線ボタン */
.another_course {
  margin-top: 10rem;
}

.another_course p {
  text-align: center;
  font-size: 1.6rem;
  margin-bottom: 20px;
}

.another_course ul {
  display: flex;
  justify-content: center;
  align-items: center;
}

.another_course ul li {
  width: 300px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  padding: 10px 0;
  box-sizing: border-box;
  transition: ease-in-out 0.3s;
}

.another_course ul li:first-child {
  opacity: 0.7;
  background-color: rgba(255, 255, 255, 0.1);
}

.another_course ul li:first-child a {
  pointer-events: none;
}

.another_course ul a {
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  font-size: 1.6rem;
}

@media (hover: hover) and (pointer: fine) {
  .another_course ul li:last-child:hover {
    background-color: rgba(255, 255, 255, 0.4);
  }
}

/* ===================================
お知らせ一覧 news home.php
====================================== */
.news-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.news-item {
  background: none;
}

.news-thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.news-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-content {
  padding: 15px;
}

.news-content h2 {
  font-size: 1.4rem;
  font-weight: 400;
  margin: 0 0 10px;
  color: inherit;
}

.news-content time {
  font-size: 1.2rem;
  color: inherit;
}


/* ===================================
記事詳細 news single.php
====================================== */
/* 固定ページ内容 */
.post-main {
  width: 80%;
  margin: 0 auto 15rem;
}
.post-header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.post-header h5 {
  color: var(--font-color);
  padding-left: 50px;
  font-size: 2rem;
  font-weight: 400;
}

/* コンテンツ スタイル   */
.open-titleBox {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 5%;
  margin-bottom: 5rem;
}

.open-titleInner {
  width: 60%;
}

/* タイトルと画像を1：1に */
/* .open-titleBox div {
  flex: 1;
} */
.open-titlePic {
  width: 40%;
}

.open-titleBox time {
  display: block;
  text-align: left;
  font-size: 2rem;
}

.open-title {
  font-size: 2rem;
  font-weight: 500;
  text-align: left;
  margin-top: 30px;
}

.open-titlePic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3 / 2;
}

.open-txt {
  font-size: 1.6rem;
  text-align: left;
  line-height: 2;
}

/* 他ページ導線ボタン */
.another_single {
  margin-top: 10rem;
}

.another_single p {
  text-align: center;
  font-size: 1.6rem;
  margin-bottom: 20px;
}

.another_single ul {
  display: flex;
  justify-content: center;
  align-items: center;
}

.another_single li {
  width: 300px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  padding: 10px 0;
  box-sizing: border-box;
  transition: ease-in-out 0.3s;
}

.another_single ul a {
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  font-size: 1.6rem;
}

@media (hover: hover) and (pointer: fine) {
  .another_single ul li:hover {
    background-color: rgba(255, 255, 255, 0.4);
  }
}

/* ===================================
404Not Found 404.php
====================================== */
.notfound {
  width: 100%;
  height: auto;
  padding: 10rem 2rem;
}
.notfound_inner {
  width: 100%;
  height: fit-content;
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  gap: 5rem;
}
.notfound h1,
.notfound .notfound_subtitle,
.notfound .notfound_p {
  text-align: center;
}

.notfound h1 {
  font-size: 3.6rem;
}
.notfound_subtitle {
  font-size: 2rem;
  margin-top: 15px;
}
.notfound .notfound_p {
  line-height: 1.2;
}
.notfound a {
  width: 280px;
  display: block;
  color: var(--font-color);
  font-size: 1.4rem;
  text-align: center;
  font-weight: 700;
  padding: 15px 0;
  border: 1px solid var(--font-color);
  border-radius: 30px;
}

