T@charset "utf-8";
/* CSS Document */

/* これはいらないかも */
html,body { height:100%; }
*{ font-family: "source-han-sans-japanese", "Noto Sans JP", "游ゴシック体", YuGothic, "YuGothic M", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, "ヒラギノ角ゴ Pro W3", sans-serif; }
*, *:before, *:after {
box-sizing: border-box;  /* paddingやborderに依存しないwidth,height指定 */
}
html { font-size: 62.5%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; } /* スマホで勝手に文字が大きくなるのを制御　-webkit-text-size-adjust:100% scroll-behavior:簡易的なスムーズスクロール */
body {
margin: 0;
padding: 0;
font-size: 1.5rem; /* 15px */
font-style: normal;
font-weight: 500;
color: #231815;
line-height: 1.65em;
background: #fff;
letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  body {
  line-height: 1.6em;
  font-size: 1.4rem; /* 14px */
  }
}
/* スマホの時は有効、PCのみ無効に */
a[href*="tel:"] {
pointer-events: none;
}
@media only screen and (max-width: 1024px) {
  a[href*="tel:"] {
  pointer-events: initial;
  }
}
/* 	ふわっと切り替え */
a {
text-decoration: none;
color: #1c1416;
transition: 0.5s;
}
a:hover {
text-decoration: none;
color: #1c1416;
opacity: 0.7;
}
/* Pタグで改行するとlightheightが効かないのを防ぐ */
br { line-height: 1; }
h1 { margin: 0px; }

/* パソコンで見たときは"pc"のclassがついた方が表示される */
.pc { display: block!important; }
.sp { display: none !important; }
/* スマートフォンで見たときは"sp"のclassがついた方が表示される */
@media screen and (max-width: 960px) {
  .pc { display: none !important; }
  .sp { display: block!important; }
}
.br-pc { display: block; }
.br-sp { display: none; }
@media screen and (max-width: 520px) {
  .br-pc { display: none; }
  .br-sp { display: block; }
}
.br-pc02 { display: block; }
.br-sp02 { display: none; }
@media screen and (max-width: 960px) {
  .br-pc02 { display: none; }
  .br-sp02 { display: block; }
}
/* PCでは */
.notel {
pointer-events: none;
color: #292929;
}

/************　image fade up　************/

.fade-up {
opacity: 0;
transform: translate(0,40px); 
transition: .8s;
}
.mv01 {
opacity: 1.0;
transform: translate(0,0); 
}

/*************************************************/
/*    slider
/*************************************************/

.full {
width: 100%;
height: 100vh;
position: relative;
overflow: hidden; 
}
.full div {
background-repeat: no-repeat;
background-size: cover;
background-position: center;
height: 100vh;
margin: 0;
}
.slick__bg01 { background-image: url("../images/visual_pink_sp.webp"); }
.slick__bg02 { background-image: url("../images/visual_green_sp.webp"); }
.slick__bg03 { background-image: url("../images/visual_blue_sp.webp"); }
/* webp対応 */
.webp .slick__bg01 { background-image: url("../images/visual_pink_sp.webp"); }
.webp .slick__bg02 { background-image: url("../images/visual_green_sp.webp"); }
.webp .slick__bg03 { background-image: url("../images/visual_blue_sp.webp"); }
/* webp非対応 */
.no-webp .slick__bg01 { background-image: url("../images/visual_pink_sp.jpg"); }
.no-webp .slick__bg02 { background-image: url("../images/visual_green_sp.jpg"); }
.no-webp .slick__bg03 { background-image: url("../images/visual_blue_sp.jpg"); }

@media screen and (min-width: 961px) {
  .slick__bg01 { background-image: url("../images/visual_pink.webp"); }
  .slick__bg02 { background-image: url("../images/visual_green.webp"); }
  .slick__bg03 { background-image: url("../images/visual_blue.webp"); }
  /* webp対応 */
  .webp .slick__bg01 { background-image: url("../images/visual_pink.webp"); }
  .webp .slick__bg02 { background-image: url("../images/visual_green.webp"); }
  .webp .slick__bg03 { background-image: url("../images/visual_blue.webp"); }
  /* webp非対応 */
  .no-webp .slick__bg01 { background-image: url("../images/visual_pink.jpg"); }
  .no-webp .slick__bg02 { background-image: url("../images/visual_green.jpg"); }
  .no-webp .slick__bg03 { background-image: url("../images/visual_blue.jpg"); }
}
/* video */
.video_wrapper {
position: relative;
width: 100vw;
height: 100vh;
overflow: hidden;
border-bottom: 2px solid #fff;
}
.video_wrapper > video {
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
min-width: 100%;
min-height: 100%;
}
.add-anime {
animation: zoom-anime 10s linear 0s normal both;
}
.add-anime-none {
animation: none !important;
}
@keyframes zoom-anime {
  0% {
      transform: scale(1);
  }
  100% {
      transform: scale(1.15); 
  }
}

/*************************************************/
/*    container
/*************************************************/

.container {
margin: 45px auto 0px;
width: 100%;
}
.container02 {
margin: 30px auto 0px;
width: 100%;
}

@media screen and (min-width: 429px) and (max-width: 960px) {
  .container02 {
  margin: 65px auto 0px;
  }
}
@media screen and (min-width: 961px) {
  .container02 {
  display: flex;
  }
}
@media screen and (min-width: 1190px) {
  .container02 {
  margin-top: 90px;
  }
}
@media screen and (min-width: 1500px) {
  .left_cont {
  width: 60%;
  }
}
@media screen and (min-width: 1501px) and (max-width: 1722px) {
  .container02.reverse .wrpside.short {
  margin: 0px 2% 0px 0px;
  width: 77%;
  min-width: 462px;
  }
}
  
/*************************************************/
/*    top
/*************************************************/

h1.h1,
.top_txt03 {
position: absolute;
top: 280px;
left: 30px;
font-size: 1.5rem;
line-height: 150%;
font-weight: 400;
}
.top_txt03 {
top: 390px;
left: 53%;
padding-right: 15px;
font-size: 1.35rem;
}
.top_txt03 span.padttop {
display: block;
padding-top: 20px;
}
h2.h2_ttl,
h2.h2_ttl span.color02,
span.r_first,
span.r_last {
font-family: "Noto Serif JP", serif;
padding: 10px 20px 0px 20px;
font-size: 3.0rem;
font-weight: 800;
color: #1e3ea0;
line-height: 130%;
}
.t_blocks {
position: relative;
display: flex;
margin-top: 30px;
width: 100%;
}
.block01,
.block03 {
display: none;
}
.block02 {
display: flex;
justify-content: flex-end;
width: 100%;
background-position: top right;
background-image: url("../images/top_background.webp");
background-size: cover;
background-repeat: no-repeat;
overflow: hidden;
}
/* webp対応 */
.webp .block02 { background-image: url("../images/top_background.webp"); }
/* webp非対応 */
.no-webp .block02 { background-image: url("../images/top_background.jpg"); }
.block02 img.main_img {
width: 100%;
max-width: 665px;
height: auto;
margin: 150px 0px 0px 60px;
vertical-align: top; /* 画像の下の余白を消す */
}
.top_txt01 {
position: absolute;
top: 35px;
left: 30px;
font-size: 4.1rem;
line-height: 120%;
font-weight: 500;
}
.top_txt02 {
position: absolute;
top: 160px;
left: 30px;
font-size: 2.3rem;
line-height: 140%;
font-weight: 500;
}
.top_circle {
position: absolute;
left: 0px;
bottom: 18%;
width: 43%;
max-width: 187px;
}
.top_circle .svg_img01 {
position: relative;
}
.top_circle .svg_img01 img {
position: absolute;
top: 30%;
left: -25%;
width: 100%;
height: auto;
animation: rotation 15s linear infinite;
}
/* アニメーション */
@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.top_circle .svg_img02 {
position: relative;
}
.top_circle .svg_img02 img {
position: absolute;
top: 0;
left: 0;
width: 46%;
height: auto;
transform: translate(16%, 146%);
}

@media screen and (min-width: 429px) {
  h1.h1 {
  top: 320px;
  font-size: 1.8rem;
  }
  .t_blocks {
  margin-top: 50px;
  }
  .top_txt01 {
  top: 50px;
  font-size: 5rem;
  line-height: 120%;
  }
  .top_txt02 {
  top: 190px;
  font-size: 2.7rem;
  line-height: 130%;
  }
  .top_txt03 {
  top: 450px;
  padding-right: 20px;
  font-size: 1.6rem;
  }
}
@media screen and (min-width: 961px) {
  h1.h1,
  .top_txt01,
  .top_txt02 {
  left: 50%;
  }
  h1.h1 {
  top: 425px;
  margin-left: -393px;
  font-size: 1.9rem;
  line-height: 180%;
  }
  .t_blocks {
  margin-top: 65px;
  }
  .block01,
  .block03 {
  display: block;
  width: 16%;
  background: #ffe6e8;
  }
  .block02 {
  margin: 0px 7px;
  width: 68%;
  }
  .top_txt01 {
  top: 85px;
  margin-left: -400px;
  font-size: 6rem;
  }
  .top_txt02 {
  top: 260px;
  margin-left: -393px;
  font-size: 2.9rem;
  line-height: 160%;
  }
  .top_txt03 {
  top: 700px;
  left: auto;
  right: 50%;
  margin-right: -400px;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 220%;
  }
  .top_txt03 span.padttop {
  padding-top: 40px;
  }
  .block02 img.main_img {
  margin: 190px 0px 0px 0px; 
  }
}
@media screen and (min-width: 1190px) {
  .top_txt03 {
  margin-right: -500px;
  }
}
@media screen and (min-width: 1500px) {
  h1.h1 {
  top: 480px;
  margin-left: -587px;
  font-size: 1.9rem;
  line-height: 200%;
  }
  .block01,
  .block03 {
  flex-grow: 1;
  width: auto;
  background: #ffe6e8;
  }
  .block02 {
  flex-basis: 1035px;
  margin: 0px 7px;
  }
  
  .top_txt01 {
  top: 70px;
  margin-left: -589px;
  font-size: 7.5rem;
  line-height: 130%;
  }
  .top_txt02 {
  top: 300px;
  margin-left: -587px;
  font-size: 3.2rem;
  line-height: 150%;
  }
  .top_txt03 {
  top: 710px;
  margin-right: -610px;
  font-size: 1.7rem;
  letter-spacing: 0.01em;
  line-height: 200%;
  }
  .top_circle {
  left: 50%;
  bottom: 51%;
  margin-left: -325px;
  }
  .top_circle .svg_img01 {
  
  }
  .top_circle .svg_img01:before,
  .top_circle .svg_img01:after {
  content: "";
  position: absolute;
  top: 29px;
  left: -77px;
  width: 166px;
  height: 166px;
  border-radius: 200px;
  background: #dec0bb; /* beige */
  z-index: -10;
  }
  .top_circle .svg_img01:after {
  top: 41px;
  left: -120px;
  width: 177px;
  height: 177px;
  background: #f9b8cc; /* pink */
  }
  .top_circle .svg_img02 img {
  width: 90px;
  transform: translate(-4%, 130%);
  }
}

/*--------------------------------------
  charm
--------------------------------------*/

h2.h2_charm {
margin: -15px auto 0px;
padding: 47px 15px 41px;
width: 90%;
max-width: 440px;
font-size: 2.2rem;
font-weight: 600;
color: #393939;
text-align: center;
background-position: center center;
background-image: url(../images/grade_bg.svg);
background-size: cover;
background-repeat: no-repeat;
}
h3.h3_charm {
font-size: 2.1rem;
font-weight: 600;
text-align: center;
line-height: 150%;
}
.charm_logo {
margin: 50px auto 0px;
width: 50%;
max-width: 250px;
}
.charm_logo img {
width: 100%;
height: auto;
}
.charm_wrp {
margin: 60px auto 0px;
width: 80%;
max-width: 1380px;
}
.charm_bk {
position: relative;
margin-bottom: 60px;
padding: 35px 0px 0px 0px;
width: 100%;
}
.charm_bk:before {
content: "";
position: absolute;
top: 0px;
left: 50%;
width: 49px;
height: 50px;
background-image: url(../images/charm_01.svg);
background-size: 100% 100%;
background-repeat: no-repeat;
transform: translate(-50%,-50%); /* positionに対して要素を中央に配置させる */
}
.charm_bk.blk02:before { background-image: url(../images/charm_02.svg); }
.charm_bk.blk03:before { background-image: url(../images/charm_03.svg); }
.charm_txt {
font-family: yu-gothic-pr6n, sans-serif;
margin: 10px 0px 0px 0px;
font-size: 1.5rem;
font-weight: bold;
text-align: center;
color: #393939;
}
@media screen and (min-width: 429px) {
  h2.h2_charm {
  padding: 64px 15px 56px;
  font-size: 2.7rem;
  }
  .charm_logo {
  margin-top: 80px;
  }
}
@media screen and (min-width: 961px) {
  h2.h2_charm {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -21px;
  padding: 0px 15px;
  width: 585px;
  max-width: inherit;
  height: 212px;
  background-size: 100%;
  font-size: 3.0rem;
  }
  h3.h3_charm {
  font-size: 2.5rem;
  }
  .charm_logo {
  margin-top: 100px;
  max-width: 275px;
  }
  .charm_wrp {
  width: 90%;
  display: flex;
  justify-content: center;
  }
  .charm_txt {
  margin-top: 20px;
  font-size: 1.7rem;
  line-height: 160%;
  }
  .charm_bk {
  margin-bottom: 50px;
  padding-top: 50px;
  }
  .charm_bk:before {
  width: 60px;
  height: 65px;
  }
}
@media screen and (min-width: 1190px) {
  .charm_logo {
  margin-top: 120px;
  }
  .charm_wrp {
  margin-top: 100px;
  width: 80%;
  }
}
@media screen and (min-width: 1500px) {
  h2.h2_charm {
  font-size: 3.6rem;
  }
  h3.h3_charm {
  font-size: 3.2rem;
  }
  .charm_logo {
  margin-top: 165px;
  }
  .charm_wrp {
  margin-top: 110px;
  }
  .charm_txt {
  margin-top: 35px;
  font-size: 1.8rem;
  line-height: 200%;
  }
  .charm_bk {
  padding-top: 70px;
  }
  .charm_bk:before {
  width: 69px;
  height: 72px;
  }
}

/*--------------------------------------
  product
--------------------------------------*/

h2.h2_product {
position: relative;
padding: 15px 0px 105px;
font-size: 2.7rem;
font-weight: 600;
text-align: center;
line-height: 125%;
}
.product_cont.green h2.h2_product { padding-bottom: 93px; }
h2.h2_product:after {
content: "";
position: absolute;
bottom: -55px;
left: 50%;
width: 200px;
height: 106px;
background-image: url(../images/product_illust_blue.webp);
background-size: 100% 100%;
background-repeat: no-repeat;
transform: translate(-50%,-50%); /* positionに対して要素を中央に配置させる */
}
.product_cont.green h2.h2_product:after {
bottom: -53px;
height: 89px;
background-image: url(../images/product_illust_green.webp);
}
.product_cont.pink h2.h2_product:after {
bottom: -56px;
height: 102px;
background-image: url(../images/product_illust_pink.webp);
}
/* webp対応 */
.webp h2.h2_product:after { background-image: url("../images/product_illust_blue.webp"); }
.webp .product_cont.green h2.h2_product:after { background-image: url(../images/product_illust_green.webp); }
.webp .product_cont.pink h2.h2_product:after { background-image: url(../images/product_illust_pink.webp); }
/* webp非対応 */
.no-webp h2.h2_product:after { background-image: url("../images/product_illust_blue.jpg"); }
.no-webp .product_cont.green h2.h2_product:after { background-image: url(../images/product_illust_green.jpg); }
.no-webp .product_cont.pink h2.h2_product:after { background-image: url(../images/product_illust_pink.jpg); }
.product_wrp {
margin: 50px 0px 0px;
width: 100%;
}
.product_img {
width: 100%;
}
.product_img img {
width: 100%; /* コンテナの幅に合わせる */
height: 100%; /* コンテナの高さに合わせる */
object-fit: cover; /* 画像をコンテナ内に埋め込み、アスペクト比を維持しトリミングする */
vertical-align: top; /* 画像の下の余白を消す */
}
.product_cont {
padding-top: 30px;
width: 100%;
background: #edfcff;
}
.product_cont.green { background: #f4f6d9; }
.product_cont.pink { background: #fff3f3; }
.prodnm_en {
font-family: lato, sans-serif;
margin: 0px auto;
width: 50%;
font-weight: 800;
font-style: normal;
font-size: 1.8rem;
color: #008aa6;
text-align: center;
letter-spacing: 0.25em;
transform: scaleX(1.07); /* 文字の横幅を拡大 */
}
.product_cont.green .prodnm_en,
.recipe_cont.green .prodnm_en {
color: #a6be20;
}
.product_cont.pink .prodnm_en,
.recipe_cont.pink .prodnm_en {
color: #f44268;
}
.prodnm_en.ja {
position: relative;
margin-top: 28px;
width: 100%;
font-size: 1.6rem;
font-weight: 600;
letter-spacing: 0.15em;
transform: scaleX(1); /* 文字の横幅を拡大 */
}
.prodnm_en.ja:after {
content:"";
width: 50px;
height: 1px;
display: inline-block;
background-color: #008aa6;
position: absolute;
top: -14px;
left: calc(50% - 25px)
}
.product_cont.green .prodnm_en.ja:after,
.product_cont.green .prodnm_en.ja:before,
.recipe_cont.green .prodnm_en.ja:after,
.recipe_cont.green .prodnm_en.ja:before{
background-color: #a6be20;
}
.product_cont.pink .prodnm_en.ja:after,
.product_cont.pink .prodnm_en.ja:before,
.recipe_cont.pink .prodnm_en.ja:after,
.recipe_cont.pink .prodnm_en.ja:before {
background-color: #f44268;
}
.recipe_cont .prodnm_en.ja {
margin-top: 20px;
}
.recipe_cont .prodnm_en.ja:after {
top: -10px;
}
.product_txt {
position: relative;
font-family: yu-gothic-pr6n, sans-serif;
padding: 20px 35px 50px;
font-size: 1.5rem;
font-weight: bold;
text-align: center;
color: #393939;
}
@media screen and (min-width: 961px) {
  h2.h2_product,
  .product_cont.green h2.h2_product,
  .product_cont.pink h2.h2_product {
  padding: 15px 0px 0px;
  font-size: 4.0rem;
  }
  h2.h2_product:after,
  .product_cont.green h2.h2_product:after,
  .product_cont.pink h2.h2_product:after {
  content: none;
  }
  .product_wrp {
  display: flex;
  }
  .product_wrp.green {
  flex-direction: row-reverse;
  }
  .product_img {
  display: flex;
  width: 45.5%;
  }
  .product_cont {
  width: 54.5%;
  height: 600px;
  }
  .prodnm_en.ja {
  margin-top: 10px;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  transform: scaleX(1);
  }
  .prodnm_en.ja:before {
  content: '';
  width: 50px;
  height: 1px;
  display: inline-block;
  background-color: #008aa6;
  position: absolute;
  top: calc(50% - 2px);
  right: calc(50% + 90px);
  }
  .prodnm_en.ja:after {
  top: calc(50% - 2px);
  left: calc(50% + 90px);
  }
  .recipe_cont .prodnm_en.ja {
  margin-top: 5px;
  }
  .recipe_cont .prodnm_en.ja:after {
  top: 11px;
  }
  .product_txt {
  padding: 20px 35px 120px;
  }
  .product_txt:after {
  content: "";
  position: absolute;
  bottom: -140px;
  left: 50%;
  width: 300px;
  height: 159px;
  background-image: url(../images/product_illust_blue.jpg);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  transform: translate(-50%,-50%); /* positionに対して要素を中央に配置させる */
  }
  .product_cont.green .product_txt:after {
  height: 133px;
  background-image: url(../images/product_illust_green.webp);
  }
  .product_cont.pink .product_txt:after {
  height: 153px;
  background-image: url(../images/product_illust_pink.webp);
  }
  /* webp対応 */
  .webp .product_cont.green .product_txt:after { background-image: url(../images/product_illust_green.webp); }
  .webp .product_cont.pink .product_txt:after { background-image: url(../images/product_illust_pink.webp); }
  /* webp非対応 */
  .no-webp .product_cont.green .product_txt:after { background-image: url(../images/product_illust_green.jpg); }
  .no-webp .product_cont.pink .product_txt:after { background-image: url(../images/product_illust_pink.jpg); }
}
@media screen and (min-width: 1080px) {
  .product_wrp {
  margin: 100px 0px 0px;
  }
  .product_img {
  width: 53%;
  }
  .product_cont {
  padding-top: 50px;
  width: 47%;
  height: 650px;
  }
  .product_txt {
  line-height: 170%;
  }
}
@media screen and (min-width: 1300px) {
  .product_cont {
  padding-top: 80px;
  }
  .product_txt {
  font-size: 1.6rem;
  line-height: 190%;
  }
  .recipe_cont .prodnm_en.ja:after {
  left: calc(50% + 110px);
  }
  .recipe_cont .prodnm_en.ja:before {
  right: calc(50% + 110px);
  }
}
@media screen and (min-width: 1500px) {
  h2.h2_product {
  padding-top: 25px !important;
  font-size: 4.5rem;
  line-height: 135%;
  }
  .product_wrp {
  margin: 110px 0px 0px;
  }
  .product_img {
  width: 55.5%;
  }
  .product_cont {
  width: 44.5%;
  height: 800px;
  }
  .prodnm_en {
  font-size: 2.0rem;
  font-weight: 700;
  }
  .product_txt {
  padding: 30px 35px 300px;
  font-size: 1.7rem;
  }
  .product_txt:after {
  bottom: -40px;
  width: 401px;
  height: 212px;
  }
  .product_cont.green .product_txt:after { bottom: -10px; height: 178px; }
  .product_cont.pink .product_txt:after { bottom: -60px; height: 204px; }
}
@media screen and (min-width: 1650px) {
  .product_img {
  width: 50%;
  }
  .product_cont {
  width: 50%;
  }
}

/*--------------------------------------
  event
--------------------------------------*/

h2.h2_event {
position: relative;
margin-top: 60px;
padding: 30px 0px 0px 0px;
font-size: 2.3rem;
font-weight: 500;
color: #393939;
text-align: center;
line-height: 105%;
}
h2.h2_event:before {
content: "Event";
position: absolute;
top: -4px;
left: 50%;
font-size: 4.5rem;
font-family: lato, sans-serif;
font-weight: 500;
font-style: normal;
color: #db1784;
letter-spacing: 0.05em;
transform: translate(-50%,-50%); /* positionに対して要素を中央に配置させる */
}
.event_bg {
position: relative;
padding: 0px 0px 50px;
width: 100%;
background: #f6f2f2;
}
/* slider-event */
.slider-event {
margin: 20px auto 0px !important;
width: 100%;
}
.slider-img {
position: relative;
margin: 0px 15px;
}
.slider-img img {
width: 100%;
height: auto;
}
/* プログレスバー */
.slider-dots {
margin: -5px 0px 0px 0px;
padding: 0;
width: 100%;
text-align: center;
list-style: none;
}
.slider-dots li {
display: inline-block;
width: calc(
    20% - 9px
); /* プログレスバーの横幅はスライドの枚数に合わせて調整してください */
margin: 0 2px;
}
.slider-dots button {
position: relative;
width: 100%;
height: 4px;
border: 0;
background-color: #ccc;
font-size: 0;
}
 .slider-dots button:after {
position: absolute;
top: 0;
left: 0;
content: "";
display: block;
width: 0%;
height: 100%;
}
.slick-active button:after {
background-color: #db1784;
animation: progress 5.5s linear forwards;
}
@keyframes progress {
  from {
    width: 0%;
  }
  to {
    width: 100%;
  }
}
/* テキストを重ねる */
.textphoto {
position: absolute;
right: 0px;
bottom: 15px;
margin:	0;
padding: 7px 15px;
font-size: 1.2rem;
font-weight: 400;
text-align: right;
color: #fff;
background: rgba(0,0,0,0.8); 
}

@media screen and (min-width: 429px) {
  .textphoto {
  bottom: 20px;
  padding: 15px 20px 15px 60px;
  font-size: 1.4rem;
  }
}
@media screen and (min-width: 961px) {
  h2.h2_event {
  margin-top: 100px;
  padding: 40px 0px 0px 0px;
  font-size: 3.0rem;
  }
  h2.h2_event:before {
  top: -6px;
  font-size: 5.5rem;
  letter-spacing: 0.1em;
  }
  .event_bg {
  padding: 0px 0px 100px;
  }
  .slider-event {
  margin: 60px auto 0px !important;
  }
  .textphoto {
  bottom: 40px;
  padding: 20px 25px 20px 80px;
  font-size: 1.5rem;
  }
  .slider-dots {
  margin: 5px auto 0px;
  width: 96%;
  }
  .slider-dots button {
  height: 7px;
  }
}
@media screen and (min-width: 1300px) {
  h2.h2_event {
  margin-top: 150px;
  padding: 47px 0px 0px 0px;
  }
  .event_bg {
  padding: 0px 0px 130px;
  }
  .slider-event {
  margin: 80px auto 0px !important;
  }
  .slider-img {
  margin: 0px;
  }
  .textphoto {
  bottom: 60px;
  padding: 30px 60px 30px 115px;
  font-size: 1.7rem;
  }
  .slider-dots {
  margin: 10px auto 0px;
  }
}

/*--------------------------------------
  recipe
--------------------------------------*/

h2.h2_recipe {
font-family: lato, sans-serif;
margin: -15px 0px 30px;
font-size: 4.3rem;
font-weight: 500;
font-style: normal;
color: #db1784;
text-align: center;
letter-spacing: 0.05em;
}
h3.h3_recipe {
font-family: lato, sans-serif;
padding: 10px 0px 7px;
font-size: 2.2rem;
font-weight: 800;
font-style: normal;
color: #027f98;
letter-spacing: 0.07em;
}
h3.h3_recipe.green { color: #96b000; }
h3.h3_recipe.pink { color: #ec335a; }
h4.h4_recipe {
font-size: 1.5rem;
font-weight: 600;
color: #393939;
}
.recipe_wrp {
margin: 0px auto 30px;
width: 90%;
}
.recipe_ttl {
font-family: lato, sans-serif;
padding: 10px 0px 0px;
font-size: 1.8rem;
font-weight: 800;
font-style: normal;
color: #008aa6;
text-align: center;
letter-spacing: 0.2em;
transform: scaleX(1.10); /* 文字の横幅を拡大 */
}
.recipe_ttl.green { color: #a4be0e; }
.recipe_ttl.pink { color: #f44268; }
.recipe_img {
margin-top: 15px;
width: 100%;
}
.recipe_img img {
width: 100%;
height: auto;
}
.recipe_txt {
padding: 0px 0px 5px;
font-size: 1.4rem;
color: #0c9dba;
}
.recipe_txt.green { color: #829807; }
.recipe_txt.pink { color: #eb5c7b; }
ul.recipe_mate {
margin: 5px 0px 30px 0px;
}
ul.recipe_mate li {
margin-left: 1em;
padding: 0px 0px 2px;
font-size: 1.4rem;
font-weight: 400;
line-height: 140%;
text-indent: -1em;
color: #393939;
}
@media screen and (min-width: 961px) {
  h2.h2_recipe {
  margin-top: -18px;
  font-size: 5.5rem;
  letter-spacing: 0.1em;
  }
  h3.h3_recipe {
  font-size: 2.4rem;
  }
  .recipe_wrp {
  display: flex;
  justify-content: center;
  margin: 60px auto 50px;
  width: 100%;
  }
  .recipe_cont {
  padding: 0px 20px; 
  }
  .recipe_txt {
  font-size: 1.5rem;
  font-weight: 500;
  }
}
@media screen and (min-width: 1300px) {
  h3.h3_recipe {
  padding: 15px 0px 12px;
  font-size: 2.7rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  }
  h4.h4_recipe {
  font-size: 1.6rem;
  }
  .recipe_cont {
  padding: 0px 35px; 
  }
  .recipe_ttl {
  padding: 35px 0px 5px;
  font-size: 2.2rem;
  font-weight: 700;
  }
  ul.recipe_mate li {
  padding: 0px 0px 4px;
  font-weight: 500;
  }
}

/*--------------------------------------
  top contact
--------------------------------------*/

h2.h2_contact {
font-size: 2.3rem;
font-weight: 600;
text-align: center;
color: #fff;
text-shadow: 0px 0px 7px #642949;
}
.contact_bg {
position: relative;
padding: 90px 20px 1px;
width: 100%;
background-position: center center;
background-image: url(../images/contact_bg_sp.webp);
background-size: cover;
background-repeat: no-repeat;
}
/* webp対応 */
.webp .contact_bg { background-image: url("../images/contact_bg_sp.webp"); }
/* webp非対応 */
.no-webp .contact_bg { background-image: url("../images/contact_bg_sp.jpg"); }
.contact_bg:before {
content: "";
position: absolute;
top: 55px;
left: 50%;
width: 360px;
height: 32px;
background-image: url(../images/contact_ttl.svg);
background-size: 100% 100%;
background-repeat: no-repeat;
mix-blend-mode: multiply;
transform: translate(-50%,-50%); /* positionに対して要素を中央に配置させる */
}
.contact_txt {
padding-top: 10px;
font-size: 1.4rem;
text-align: center;
color: #fff;
text-shadow: 0px 0px 7px #642949;
}
a.bn_contact {
display: block;
margin: 25px 0px 50px;
text-align: center;
}
a.bn_contact span.conta {
position: relative;
padding: 10px 70px;
font-size: 2.1rem;
font-weight: 600;
color: #393939;
text-align: center;
background: #fff;
border-radius: 100px;
transition: 0.5s;
}
a.bn_contact span.conta:after {
content: "";
position: absolute;
top: 50%;
right: 30px;
width: 12px;
height: 20px;
background-image: url(../images/contact_arrow.png);
background-size: 100% 100%;
background-repeat: no-repeat;
mix-blend-mode: multiply;
transform: translate(-50%,-50%); /* positionに対して要素を中央に配置させる */
}
a.bn_contact:hover span.conta {
color: #fff;
background: #af1163;
}
a.bn_contact span.conta:after:hover {
background-image: url(../images/contact_arrow_hover.png);
}
@media screen and (min-width: 961px) {
  h2.h2_contact {
  font-size: 3.2rem;
  letter-spacing: 0.05em;
  }
  .contact_bg {
  padding: 150px 20px 1px;
  background-image: url(../images/contact_bg_pc.webp);
  }
  /* webp対応 */
  .webp .contact_bg { background-image: url("../images/contact_bg_pc.webp"); }
  /* webp非対応 */
  .no-webp .contact_bg { background-image: url("../images/contact_bg_pc.jpg"); }
  .contact_bg:before {
  top: 95px;
  width: 500px;
  height: 44px;
  }
  .contact_txt {
  padding-top: 25px;
  font-size: 1.6rem;
  letter-spacing: 0.05em;
  }
  a.bn_contact {
  margin: 35px 0px 80px;
  }
  a.bn_contact:hover {
  opacity: 1;
  }
  a.bn_contact span.conta {
  padding: 10px 100px;
  font-size: 2.3rem;
  }
}
@media screen and (min-width: 1300px) {
  h2.h2_contact {
  font-size: 4.0rem;
  font-weight: 500;
  }
  .contact_bg {
  padding: 205px 20px 1px;
  }
  .contact_bg:before {
  top: 130px;
  width: 668px;
  height: 59px;
  }
  .contact_txt {
  padding-top: 30px;
  font-size: 1.7rem;
  line-height: 160%;
  }
  a.bn_contact {
  margin: 50px 0px 150px;
  }
  a.bn_contact span.conta {
  padding: 15px 150px;
  font-size: 2.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  }
  a.bn_contact span.conta:after {
  width: 16px;
  height: 26px;
  }
}




.cont_company_logo {
margin: 0px auto;
padding: 15px 0px 5px;
width: 30%;
max-width: 160px;
}
.cont_company_logo img {
width: 100%;
height: auto;
}
dl.company {
display: flex;
flex-wrap: wrap;
margin: 0px auto;
width: 90%;
max-width: 900px;
border: 1px solid #b7b7b7;
border-radius: 20px;
}
dl.company dt {
margin: 0px;
padding: 15px 10px 15px 15px;
width: 30%;
font-size: 1.5rem;
color: #393939;
background: #e9e9e9;
border-top: 1px solid #b7b7b7;
}
dl.company dd {
margin: 0px;
padding: 15px 10px 15px 15px;
width: 70%;
font-size: 1.5rem;
color: #393939;
border-top: 1px solid #b7b7b7;
}
dl.company dt:first-of-type,
dl.company dd:first-of-type {
border-top: none;
}
dl.company dt:first-of-type {
border-top-left-radius: 20px;
}
dl.company dt:last-of-type {
border-bottom-left-radius: 20px;
}
@media screen and (min-width: 961px) {
  .cont_company_logo {
  padding: 15px 0px 10px;
  }
  dl.company dt {
  padding: 25px 0px;
  width: 25%;
  font-size: 1.7rem;
  text-align: center;
  }
  dl.company dd {
  padding: 25px 10px 25px 25px;
  width: 75%;
  font-size: 1.7rem;
  }
}

/*--------------------------------------
  pricacy
--------------------------------------*/

.visual_privacy {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 130px;
background: #bf337c;
background-image: linear-gradient(-45deg, #bf337c 49%, #de83b5 50%, #bf337c 51%); /* stripe */
background-size: 8px 8px;
}
h1.h1_privacy {
padding: 0px;
font-size: 2.7rem;
font-weight: 600;
color: #fff;
}
.cate_top {
margin: 10px auto 5px;
width: 25%;
max-width: 153px;
}
.cate_top img {
width: 100%;
height: auto;
}
.privacy_read {
margin: 0px;
padding: 20px 40px;
font-size: 1.5rem;
font-weight: 400;
}
.privacy_cont {
margin: 20px auto;
width: 90%;
max-width: 800px;
}
dl.privacy {
margin: 0px auto;
padding: 20px 0px 0px;
width: 90%;
max-width: 900px;
}
dl.privacy dt {
margin: 0px;
padding: 10px 10px 10px 15px;
font-size: 1.5rem;
color: #fff;
background: #bf337c;
border-radius: 5px;
}
dl.privacy dd {
margin: 0px;
padding: 15px 10px 25px 15px;
font-size: 1.5rem;
font-weight: 400;
}
ul.privacy_list {
margin: 15px 0px 0px 25px;
}
ul.privacy_list li {
list-style-type: disc;
padding-bottom: 7px;
}
ul.privacy_list li:last-of-type {
padding-bottom: 0px;
}
@media screen and (min-width: 768px) and (max-width: 960px) {
  .cate_top {
  margin: 10px auto 5px;
  width: 15%;
  }
}
@media screen and (min-width: 961px) {
  h1.h1_privacy {
  font-size: 4.0rem;
  }
  .visual_privacy {
  height: 200px;
  }
  .cate_top {
  margin: 13px auto 10px;
  width: 30%;
  }
  .privacy_read {
  margin: 0px auto;
  padding: 50px 40px;
  width: 80%;
  max-width: 900px;
  text-align: center;
  line-height: 230%;
  }
}
@media screen and (min-width: 1190px) {
   h1.h1_privacy {
  font-size: 4.5rem;
  }
  .visual_privacy {
  height: 300px;
  }
  .cate_top {
  width: 30%;
  }
}


/*************************************************/
/*    contact
/*************************************************/

h1.h1_cate {
font-size: 3.5rem;
font-weight: 500;
color: #fff;
text-shadow: 0px 0px 10px #784961;
}
.visual_contact {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 200px;
background-image: url("../images/contact_bg_sp.webp");
background-size: cover;
background-repeat: no-repeat;
}
/* webp対応 */
.webp .visual_contact { background-image: url("../images/contact_bg_sp.webp"); }
/* webp非対応 */
.no-webp .visual_contact { background-image: url("../images/contact_bg_sp.jpg"); }
.contact_read {
margin: 25px 30px;
font-size: 1.6rem;
text-align: center;
color: #231815;
line-height: 170%;
}
.contact_syasen {
margin: 0px auto;
padding: 25px 0px 20px;
width: 100%;
background-image: linear-gradient(-45deg, #fff4fa 49%, #e1b3ce 50%, #fff4fa 51%); /* stripe */
background-size: 8px 8px;
}
.thanks_read {
padding: 90px 40px 70px;
font-size: 1.8rem;
text-align: center;
line-height: 250%;
}
.recaptcha_bg {
margin: 10px auto 0px;
padding: 15px 10px;
width: 100%;
min-width: 335px;
max-width: 500px;
font-size: 1.2rem;
text-align: center;
line-height: 140%;
color: #6f6f6f;
background: #e5e5e5;
border-radius: 3px;
}
.recaptcha_bg a {
color: #e60012;
text-decoration: underline;
}
.recaptcha_bg a:hover {
color: #fd404e;
text-decoration: none;
}
/* rechaptureロゴ非表示 */
.grecaptcha-badge { visibility: hidden; }

@media screen and (max-width: 960px) {
  .thanks_read {
  padding: 30px 40px 0px;
  text-align: left;
  line-height: 200%;
  }
}
@media screen and (min-width: 834px) {
  h1.h1_cate {
  font-size: 4.5rem;
  }
  .visual_contact {
  height: 300px;
  }
  .contact_read {
  padding: 20px 0px;
  line-height: 200%;
  }
  .contact_syasen {
  padding: 100px 0px 100px;
  }
}
@media screen and (min-width: 1190px) {
  h1.h1_cate {
  font-size: 5.5rem;
  }
  .visual_contact {
  height: 450px;
  background: url("../images/contact_bg_pc.webp") center center repeat;
  }
  /* webp対応 */
  .webp .visual_contact { background-image: url("../images/contact_bg_pc.webp"); }
  /* webp非対応 */
  .no-webp .visual_contact { background-image: url("../images/contact_bg_pc.jpg"); }
  .contact_read {
  padding: 20px 0px;
  font-size: 1.8rem;
  line-height: 200%;
  font-weight: 500;
  }
  .recaptcha_bg {
  margin: 35px auto 0px;
  padding: 20px 10px;
  font-size: 1.4rem;
  }
}

/*************************************************/
/*    scroll
/*************************************************/

.sponly {
display: block !important;
}
.sponly.flex {
display: flex !important;
}
.pconly {
display: none !important;
}

.start.fixed {
position: fixed;
bottom: 100px;
left: auto;
z-index: +1;
}
.start.fixed.none {
opacity: 0;
z-index: -1;
}
.pagetop-btn {
position: fixed;
display: flex;
align-items: center;
justify-content: center;
width: 65px;
height: 65px;
background: #9e0052;
border-radius: 35px;
right: 15px;
transition: .8s;
opacity: 0.8;
filter: drop-shadow(0px 4px 4px rgba(65,123,147,0.2));
}
.pagetop-btn img {
width: 100%;
height: auto;
}
@media screen and (min-width: 834px) {
  .sponly,
  .sponly.flex {
  display: none !important;
  }
  .pconly {
  display: block !important;
  }
  .pagetop-btn {
  width: 125px;
  height: 65px;
  right: 20px;
  letter-spacing: 0;
  }
  .pagetop-btn:before {
  content: '';
  width: 10px;
  height: 10px;
  border-right: 2px solid #ada49c;
  border-top: 2px solid #ada49c;
  position: absolute;
  top: 46%;
  right: 15px;
  z-index: 1;
  transform: rotate(45deg);
  }
  .pagetop-btn span.bncon {
  padding-right: 10px;
  font-size: 1.8rem;
  font-weight: 500;
  color: #fff;
  }
}
@media screen and (min-width: 1190px) {
  .start.fixed {
  bottom: 150px;
  }
  .pagetop-btn {
  width: 135px;
  height: 65px;
  right: 90px;
  }
  .pagetop-btn:hover {
  background: #fff;
  opacity: 1;
  }
  .pagetop-btn:before {
  right: 20px;
  }
  .pagetop-btn:hover span.bncon {
  color: #9e0052;
  }
}


/*************************************************/
/*    footer
/*************************************************/

footer {
position: relative;
margin: 50px 0px 0px;
padding: 40px 0px 0px;
background: #f8eaf1;
}
footer:before {
content: "";
position: absolute;
top: -15px;
left: 0px;
width: 100%;
border-top: 1px solid #af1163;
}
.f_logo {
margin: 0px auto;
width: 45%;
max-width: 218px;
}
.f_logo img {
width: 100%;
height: auto;
}
.f_address .ttl {
display: block;
text-align: center;
font-size: 1.75rem;
color: #393939;
font-weight: 700;
margin-bottom: 10px;
}
.f_address {
text-align: center;
font-size: 1.4rem;
font-weight: 500;
line-height: 150%;
color: #393939;
margin: 15px 0px 30px;
padding: 0px 10% 0px;
}
.f_address a {
display: block;
padding-top: 7px;
text-align: center;
font-size: 1.7rem;
font-weight: 500;
color: #393939;
}
.copyright {
padding: 4px 0px;
font-size: 1.1rem;
font-weight: 400;
text-align: center;
color: #fff;
line-height: 150%;
letter-spacing: 0.15em;
background: #810847;
border-top: 13px solid #fff;
}
@media screen and (min-width: 429px) and (max-width: 960px) {
  footer {
  margin: 70px 0px 0px;
  padding: 50px 0px 0px;
  }
}
@media screen and (min-width: 834px) {
  .copyright {
  font-size: 1.2rem;
  }
}
@media screen and (min-width: 961px) {
  footer {
  margin: 100px 0px 0px;
  padding: 50px 0px 0px;
  }
}
@media screen and (min-width: 1190px) {
  .footer {
  margin-top: 70px;
  padding: 90px 0px 60px;
  }
  .f_address {
  margin-top: 18px;
  }
  .f_address .ttl {
  margin-bottom: 10px;
  font-size: 1.9rem;
  font-weight: 500;
  }
  .f_address a {
  padding-top: 10px;
  font-size: 1.7rem;
  letter-spacing: 0.1em;
  }
  .copyright {
  padding: 6px 0px;
  border-top: 16px solid #fff;
  }
}

