@charset "UTF-8";
/*
Theme Name: Atelier Papaver
Author: A.I 2024.11
*/
.scrollanime {
  opacity: 0;
} /*一瞬表示されるのを防ぐ*/
.fadeInDown2 {
  animation-name: fadeInDown2;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}

@keyframes sub_main {
  0% {
    background-position: center top;
    opacity: 0;
  }
  100% {
    background-position: center bottom;
    opacity: 1;
  }
}
@keyframes fadeInDown2 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: translate(0);
  }
}
/*バウンドアニメーション*/
@keyframes fuwafuwa {
  0% {
    transform: translateY(-10px);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-10px);
  }
}
/*上下の動きを指定*/
.updown {
  transform: translateY(-100px);
}

.downup {
  transform: translateY(100px);
}

/*左右の動きを指定*/
.sect02 {
  overflow: hidden;
} /*横スクロールバーを隠す*/
.slide-right {
  transform: translateX(200px);
}

.slide-left {
  transform: translateX(-200px);
}

.mb_20 {
  margin-bottom: 20px;
}

.mb_30 {
  margin-bottom: 30px;
}

.mb_40 {
  margin-bottom: 40px;
}

.mb_50 {
  margin-bottom: 50px;
}

.fw_b {
  font-weight: bold;
}

.pb_50 {
  padding-bottom: 50px;
}

.center {
  text-align: center;
}

.left {
  text-align: left;
}

.bold {
  font-weight: bold;
}

.flex_bw {
  display: flex;
  justify-content: space-between;
}

/*============================
共通
============================*/
html {
  font-size: 62.5%;
  scroll-padding-top: 150px;
  scroll-behavior: smooth;
}

body {
  margin: 0 auto;
  letter-spacing: 1px;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", メイリオ, Meiryo, "ＭＳ Ｐゴシック", "Helvetica Neue", sans-serif;
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  color: #333;
  font-size: 1.6em;
  background-color: #F2F2FC;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    z-index: -99;
  }
}
/*追従メニューバーここから*/
.g-nav {
  width: 100%;
  z-index: 10;
}

.fixed {
  position: fixed;
  top: 0;
  left: 0;
}

/*パーツ*/
.link_btn {
  text-align: left;
  margin-top: 20px;
}
.link_btn a {
  background-color: #3B3228;
  font-size: 18px;
  padding: 12px 60px 12px 40px;
  transition: 0.5s;
  position: relative;
  height: inherit;
  font-family: "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  cursor: pointer;
  color: #fff;
}
.link_btn a:after { /*くのじマーク*/
  width: 12px;
  height: 12px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg) translateY(-52%);
  right: 30px;
  top: 48%;
  position: absolute;
  content: "";
  transition: 0.5s;
}
.link_btn a:hover:after {
  right: 20px;
}

/*メインビジュアルここから*/
header {
  background-color: rgba(246, 246, 254, 0.9);
  position: fixed; /* 絶対的な位置指定 */
  top: 0; /* 画面上端に配置 */
  width: 100%;
  border-top: 7px solid #3B3228;
  box-shadow: 0 1px 10px #ececfd;
  z-index: 1000;
}
header:before {
  content: "";
  position: absolute;
  top: 3px;
  width: 100%;
  height: 1px;
  background-color: #3B3228;
}
header .header_inner {
  text-align: center;
  max-width: 1400px;
  margin: 0 auto;
  padding: 18px 10px 10px 10px;
}
header .header_inner h1 a {
  transition: 0.5s;
}
header .header_inner h1 a:hover {
  opacity: 0.6;
}
header .header_inner h1 a img {
  width: max(12vw, 180px);
  height: auto;
}
header .header_inner .header_menu {
  background: url("img/line_gold1.png") top center no-repeat;
  background-size: contain;
  padding-top: 10px;
}

#main_vis {
  position: relative;
  overflow: hidden;
  margin-top: 160px;
  height: calc(var(--vh, 1vh) * 100 - 165px);
  min-height: 680px;
}
#main_vis .slider {
  height: calc(var(--vh, 1vh) * 100 - 165px);
  display: flex;
  justify-content: center;
  align-items: flex-end;
  overflow: hidden;
}
#main_vis .slider img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center bottom;
     object-position: center bottom;
  min-height: calc(var(--vh, 1vh) * 100 - 165px);
}
#main_vis .key-text {
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -40%);
  background: rgba(255, 255, 255, 0.5);
  padding: 15px;
  max-width: calc(100% - 20px); /* 両サイドに10pxのスペースを確保 */
  margin: 0 auto; /* 中央揃え */
}
#main_vis .key-text .key-inner {
  background: rgba(255, 255, 255, 0.65);
  position: relative;
  padding: 1.8vw 10vw;
  height: max(50%, 275px);
  width: min(100%, 880px);
  text-align: center;
  display: grid;
  align-items: center;
}
#main_vis .key-text .key-inner:before {
  content: "";
  background-image: url(img/top/top_gold_left.png);
  background-size: contain; /* 縦幅に合わせて伸縮 */
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 50%;
  left: 15px;
  transform: translateY(-50%);
  width: 22px;
  height: clamp(170px, 21vw, 245px); /* 縦幅に合わせる */
}
#main_vis .key-text .key-inner:after {
  content: "";
  background-image: url(img/top/top_gold_right.png);
  background-size: contain; /* 縦幅に合わせて伸縮 */
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 50%;
  right: 15px;
  transform: translateY(-50%);
  width: 22px;
  height: clamp(170px, 21vw, 245px); /* 縦幅に合わせる */
}
#main_vis .key-text .key-inner h2 {
  text-align: center;
  font-family: "Cormorant Garamond", "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  font-weight: 600;
  font-style: normal;
  font-size: clamp(40px, 6vw, 55px);
  position: relative;
  line-height: 1.3;
  padding-bottom: 1.25vw;
  color: #484848;
}
#main_vis .key-text .key-inner h2 span {
  font-family: "Cormorant Garamond", "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  font-weight: 600;
  font-style: normal;
  color: #5f5f5f;
  font-size: clamp(16px, 1.8vw, 25px);
  display: block;
}
#main_vis .key-text .key-inner h2:after {
  content: "";
  background: url("img/top/line_gold2.png") top center no-repeat;
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(330px, 52vw, 550px);
  height: 5px;
}
#main_vis .key-text .key-inner .key-01 {
  font-family: "Cormorant Garamond", "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  font-weight: 600;
  font-style: normal;
  font-size: 20px;
  width: 430px;
  text-align: center;
  color: #9F9F9F;
  margin: 0 auto 0.6vw auto;
  line-height: 1.2;
  padding-top: 0.6vw;
}
#main_vis .key-text .key-inner .key-02 {
  font-family: "Cormorant Garamond", "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  font-weight: 600;
  font-style: normal;
  font-size: clamp(16px, 2vw, 18px);
  width: 430px;
  text-align: center;
  color: #333;
  margin: 0 auto 0.6vw auto;
  line-height: 1.2;
  padding-top: 0.6vw;
}
#main_vis .key-text .key-inner .key-02 br {
  display: none;
}

/*メインコンテンツここから*/
.btn_black {
  background-color: #3B3228;
  max-width: 260px;
  font-family: "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  color: #fff;
  padding: 13px 30px;
  position: relative;
  display: block;
  margin: 0 auto;
  text-align: center;
}
.btn_black:before {
  content: "";
  position: absolute; /* 親要素に対する絶対配置 */
  top: 5px; /* 上から5px内側 */
  left: 5px; /* 左から5px内側 */
  right: 5px; /* 右から5px内側 */
  bottom: 5px; /* 下から5px内側 */
  border: 1px solid #fff; /* 線の色を白に */
  pointer-events: none; /* イベントが干渉しないように */
  transition: 0.3s;
}
.btn_black:hover:before {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

main h2 {
  font-family: "Cormorant Garamond", "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  font-weight: 600;
  font-style: normal;
  font-size: clamp(38px, 4.5vw, 55px);
  position: relative;
  line-height: 1.3;
  padding: 20px;
  color: #484848;
  text-align: center;
  margin-bottom: 10px;
}
main h2:after {
  content: "";
  background: url("img/gold_tiala.png") top center no-repeat;
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  width: 165px;
  height: 50px;
}
main h2 span {
  font-size: clamp(17px, 2vw, 20px);
  color: #858585;
  display: block;
}

.contents1 .contents1_inner {
  max-width: 1200px;
  width: 95%;
  margin: 80px auto 110px auto;
}
.contents1 .contents1_inner dl {
  display: flex;
  justify-content: center;
}
.contents1 .contents1_inner dl dt {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 51%;
}
.contents1 .contents1_inner dl dt img {
  max-width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover; /* 画像を容器いっぱいに表示し、余白をカット */
}
.contents1 .contents1_inner dl dd {
  width: 51%;
  background-color: #6B6155;
  padding: 30px;
  color: #fff;
}
.contents1 .contents1_inner dl dd p {
  margin-bottom: 20px;
}
.contents1 .contents1_inner dl:nth-child(odd) {
  flex-direction: row-reverse;
}
.contents1 .contents1_inner dl:nth-child(odd) p:nth-child(3) {
  margin-bottom: 60px;
}

.contents2 .contents2_inner {
  max-width: 1200px;
  width: 95%;
  margin: 80px auto 110px auto;
}
.contents2 .contents2_inner ul {
  display: flex;
  justify-content: center;
  gap: 40px;
}
.contents2 .contents2_inner ul li {
  background-color: #fff;
  padding: 20px 20px 30px 20px;
  font-size: 16px;
  position: relative;
  box-shadow: 1px 1px 6px #ccc;
  max-width: 270px;
}
.contents2 .contents2_inner ul li .category a {
  padding: 5px 10px;
  color: #fff;
  background-color: #887b66;
  text-align: center;
  margin-bottom: 10px;
  display: block;
}
.contents2 .contents2_inner ul li .category-blog a {
  background-color: #3B3228;
}
.contents2 .contents2_inner ul li .info_img {
  width: 100%;
  width: 230px; /* 横幅を親要素に合わせる */
  height: 230px; /* 固定の高さを指定して正方形の枠に */
  overflow: hidden; /* はみ出る部分を隠す */
  display: flex; /* 画像が中央に配置されるように */
  justify-content: center;
  align-items: center;
}
.contents2 .contents2_inner ul li .info_img img {
  width: 100%; /* 横幅を親要素に合わせる */
  height: 100%; /* 高さも親要素に合わせる */
  -o-object-fit: cover;
     object-fit: cover; /* 画像を縦横比を維持したまま、正方形の枠に合わせる */
  -o-object-position: center;
     object-position: center; /* 画像の中心を基準に表示 */
  display: block; /* 余白を防ぐためにブロック要素に */
}
.contents2 .contents2_inner ul li .info_title {
  text-align: center;
  font-weight: bold;
}
.contents2 .contents2_inner ul li a {
  transition: 0.5s;
}
.contents2 .contents2_inner ul li a:hover {
  opacity: 0.7;
}
.contents2 .contents2_inner ul li .top_info_link {
  position: absolute;
  bottom: 5px;
  right: 20px;
  color: #7E7E7E;
  transition: 0.5s;
}
.contents2 .contents2_inner ul li .top_info_link:hover {
  color: #000;
  right: 15px;
  opacity: 1;
}

.palalax_box {
  height: 350px; /* 表示エリアの高さを指定 */
  overflow: hidden; /* はみ出た部分を隠す */
  position: relative; /* 親要素として相対位置を指定 */
}
.palalax_box .palalax_img {
  background-image: url("img/top/top_palalax.jpg"); /* 画像を背景画像として設定 */
  background-size: cover; /* 画像を中央でカバー表示 */
  background-position: center; /* 中心部分を表示 */
  background-attachment: fixed; /* パララックス効果のため固定表示 */
  width: 100%;
  height: 650px; /* 画像の元の高さを指定 */
  position: absolute; /* 親要素を基準に絶対配置 */
  top: 0;
  left: 0;
  z-index: -1; /* コンテンツの後ろに配置 */
}

.contents3 .contents3_inner {
  max-width: 1200px;
  width: 95%;
  margin: 80px auto 110px auto;
}
.contents3 .contents3_inner dl {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 90px;
}
.contents3 .contents3_inner dl dt {
  width: 45%;
}
.contents3 .contents3_inner dl dt img {
  width: 100%;
  height: auto;
}
.contents3 .contents3_inner dl dd {
  width: 65%;
  padding-left: 40px;
}
.contents3 .contents3_inner dl dd h3 {
  font-family: "Cormorant Garamond", "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  font-weight: 600;
  font-style: normal;
  font-size: clamp(35px, 4.8vw, 50px);
  text-align: center;
}
.contents3 .contents3_inner dl dd h3 span {
  display: flex;
  font-family: "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  font-size: 20px;
  color: #5f5f5f;
  display: flex; /* flexboxを使って中央に配置 */
  align-items: center; /* 垂直方向に中央揃え */
  justify-content: center; /* 水平方向に中央揃え */
  padding: 0 0 10px 0; /* 上下の余白を設定 */
  position: relative;
}
.contents3 .contents3_inner dl dd h3 span::before, .contents3 .contents3_inner dl dd h3 span::after {
  content: ""; /* 空の内容を挿入 */
  flex: 1; /* 残りのスペースを均等に埋める */
  height: 1px; /* 線の高さ */
  background-color: #5f5f5f; /* 線の色 */
}
.contents3 .contents3_inner dl dd h3 span::before {
  margin-right: 10px; /* テキストとの間にスペース */
}
.contents3 .contents3_inner dl dd h3 span::after {
  margin-left: 10px; /* テキストとの間にスペース */
}
.contents3 .contents3_inner dl dd .type_text {
  margin-bottom: 40px;
  padding: 0 20px;
}
.contents3 .contents3_inner dl dd .btn_black {
  max-width: 180px;
}

.top_image_box_sp {
  display: none;
}

.contents4 {
  max-width: 1200px;
  width: 95%;
  margin: 80px auto 110px auto;
}
.contents4 .contents4_inner a {
  background-size: cover; /* 画像を中央でカバー表示 */
  background-position: center; /* 中心部分を表示 */
  padding: 30px 50px;
  transition: 0.5s;
  display: flex;
  height: 250px;
  margin-bottom: 60px;
}
.contents4 .contents4_inner a:hover {
  opacity: 0.8;
  transform: translateY(-7px);
}
.contents4 .contents4_inner a dl {
  background-color: rgba(59, 50, 40, 0.65);
  position: relative;
  padding: 30px;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 50px;
}
.contents4 .contents4_inner a dl:before {
  content: "";
  position: absolute;
  top: -7px; /* 上から-7px外側 */
  left: -7px; /* 左から-7px外側 */
  right: -7px; /* 右から-7px外側 */
  bottom: -7px; /* 下から-7px外側 */
  border: 2px solid #977B2E;
  pointer-events: none; /* イベントが干渉しないように */
}
.contents4 .contents4_inner a dl:after {
  content: "";
  position: absolute;
  background: url("img/top/top_banner_gold.png") top center no-repeat;
  bottom: 15px;
  right: 20px;
  width: 95px;
  height: 28px;
}
.contents4 .contents4_inner a dl dd {
  color: #fff;
}
.contents4 .contents4_inner .top_banner_base {
  background-image: url("img/top/banner_base_bg.jpg");
}
.contents4 .contents4_inner .top_banner_creema {
  background-image: url("img/top/banner_creema_bg.jpg");
}

/*常設ボタン*/
#link_fixed {
  position: fixed;
  bottom: 140px;
  z-index: 990;
  right: 1vw; /* ページトップボタンと同じ位置 */
  display: flex;
  flex-direction: column; /* 縦に並べる */
  gap: 20px; /* ボタン間の余白 */
}

.fixed_BASE, .fixed_Creema {
  opacity: 0.95;
  transition: all 0.3s ease-in-out; /* ホバー時のスムーズなアニメーション */
}
.fixed_BASE:hover, .fixed_Creema:hover {
  transform: translateY(-7px);
}
.fixed_BASE img, .fixed_Creema img {
  width: 170px;
  height: 52px;
}

/*ページトップボタン*/
#pagetop {
  text-align: center;
  position: fixed;
  right: 3.5vw;
  bottom: 25px;
  z-index: 990;
}
#pagetop .pagetop_btt {
  cursor: pointer;
  transition: 0.3s;
}
#pagetop .pagetop_btt img {
  width: 85%;
  height: 85%;
}
#pagetop .pagetop_btt:hover {
  transform: translateY(-7px);
}

/*スマホ用常設ボタン*/
#sp_fixed {
  display: none;
}

/*フッターここから*/
footer .footer_wrap {
  background: url("img/footer_bg.jpg") no-repeat top;
  background-size: cover;
}
footer .footer_wrap .footer_inner {
  max-width: 1400px;
  width: 95%;
  margin: 100px auto 0 auto;
  display: flex;
  justify-content: space-around;
  align-items: stretch;
  color: #fff;
  padding: 50px 0;
  gap: 30px;
}
footer .footer_wrap .footer_inner .footer_left {
  width: clamp(330px, 35%, 350px);
  text-align: center;
  border-right: 1px solid #fff;
  padding-right: 15px;
}
footer .footer_wrap .footer_inner .footer_left li {
  padding: 10px;
}
footer .footer_wrap .footer_inner .footer_left .footer_logo {
  border-bottom: 1px solid #fff;
}
footer .footer_wrap .footer_inner .footer_left .footer_logo img {
  width: 100%;
  height: auto;
  max-width: 291px;
}
footer .footer_wrap .footer_inner .footer_left .footer_links {
  display: flex;
  justify-content: space-around;
}
footer .footer_wrap .footer_inner .footer_left .footer_links a img {
  transition: 0.5s;
}
footer .footer_wrap .footer_inner .footer_left .footer_links a img:hover {
  transform: translateY(-7px);
}
footer .footer_wrap .footer_inner .footer_menu {
  width: 190px;
  list-style: none;
  padding: 0;
  margin: 0;
}
footer .footer_wrap .footer_inner .footer_menu li {
  position: relative;
}
footer .footer_wrap .footer_inner .footer_menu li a, footer .footer_wrap .footer_inner .footer_menu li span {
  color: #fff;
  text-decoration: none;
  padding: 0 10px 5px 10px;
  display: block;
}
footer .footer_wrap .footer_inner .footer_menu li a {
  transition: 0.3s;
}
footer .footer_wrap .footer_inner .footer_menu li a:hover {
  background-color: rgba(59, 50, 40, 0.8);
}
footer .footer_wrap .footer_inner .footer_menu li .footer-sub-menu {
  display: block;
  position: absolute;
  left: 0;
  top: 100%;
  background-color: #3B3228;
  list-style: none;
  padding: 10px 0;
  margin: 0;
  min-width: 160px;
  z-index: 1000;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s linear 0.3s, opacity 0.3s ease;
}
footer .footer_wrap .footer_inner .footer_menu li .footer-sub-menu li {
  margin: 0;
}
footer .footer_wrap .footer_inner .footer_menu li .footer-sub-menu li a {
  color: #fff;
  padding: 5px 15px;
  display: block;
  white-space: nowrap;
}
footer .footer_wrap .footer_inner .footer_menu li .footer-sub-menu li a:hover {
  background-color: #201A14;
}
footer .footer_wrap .footer_inner .footer_menu li:hover .footer-sub-menu {
  max-height: 500px;
  visibility: visible;
  opacity: 1;
  transition: opacity 0.3s ease;
}
footer .footer_wrap .footer_inner .footer_map {
  width: clamp(300px, 25vw, 400px); /* 最小幅を指定しておく */
  box-sizing: border-box; /* paddingやborderを含めた幅を計算 */
}
footer .footer_wrap .footer_inner .footer_map iframe {
  width: 100%;
  height: 100%;
  filter: grayscale(100%);
}
footer .footer_wrap .copyright {
  text-align: center;
  color: #fff;
  font-size: 12px;
  font-family: "Noto serif JP", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "HG明朝B", serif;
  padding: 10px;
  background-color: rgba(59, 50, 40, 0.75);
}

/* カレンダー追加 */
.contents4 .contents4_inner .calender_box {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;  
}
#top_calendar .calendars .xo-month caption .month-header button .nav-prev { margin-left: 10px!important; }
.holiday-titles {display: flex!important;justify-content:center; gap: 10px;flex-wrap:nowrap;}
 
#top_calendar .xo-month-wrap {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}