@charset "UTF-8";
/* //////////////////////////////////////////////////////////////////////////////////////////////////

サイト固有のコンポーネント

////////////////////////////////////////////////////////////////////////////////////////////////// */
/* layout レイアウト
========================================================================= */
/* title タイトル
========================================================================= */
.com__ttl03_01 {
  width: fit-content;
  margin-inline: auto;
  text-align: center;
}
.com__ttl03_01 .ttl__ja {
  width: fit-content;
  font-size: 70px;
  letter-spacing: 0.05em;
  font-family: var(--fot--M_PLUS_R_1c);
  font-weight: 900;
  color: #fff;
  text-shadow: rgb(0, 0, 0) 6px 0px 0px, rgb(0, 0, 0) 5.91686px 0.995377px 0px, rgb(0, 0, 0) 5.66974px 1.96317px 0px, rgb(0, 0, 0) 5.2655px 2.87655px 0px, rgb(0, 0, 0) 4.71532px 3.71022px 0px, rgb(0, 0, 0) 4.03447px 4.44106px 0px, rgb(0, 0, 0) 3.24181px 5.04883px 0px, rgb(0, 0, 0) 2.35931px 5.51667px 0px, rgb(0, 0, 0) 1.41143px 5.83163px 0px, rgb(0, 0, 0) 0.424423px 5.98497px 0px, rgb(0, 0, 0) -0.574341px 5.97245px 0px, rgb(0, 0, 0) -1.55719px 5.79441px 0px, rgb(0, 0, 0) -2.49688px 5.45578px 0px, rgb(0, 0, 0) -3.36738px 4.96596px 0px, rgb(0, 0, 0) -4.14455px 4.33852px 0px, rgb(0, 0, 0) -4.80686px 3.59083px 0px, rgb(0, 0, 0) -5.33596px 2.74364px 0px, rgb(0, 0, 0) -5.71718px 1.8204px 0px, rgb(0, 0, 0) -5.93995px 0.84672px 0px, rgb(0, 0, 0) -5.99811px -0.150428px 0px, rgb(0, 0, 0) -5.89004px -1.14341px 0px, rgb(0, 0, 0) -5.61874px -2.1047px 0px, rgb(0, 0, 0) -5.19172px -3.00766px 0px, rgb(0, 0, 0) -4.62082px -3.82727px 0px, rgb(0, 0, 0) -3.92186px -4.54081px 0px, rgb(0, 0, 0) -3.11421px -5.12852px 0px, rgb(0, 0, 0) -2.22026px -5.57409px 0px, rgb(0, 0, 0) -1.26477px -5.86518px 0px, rgb(0, 0, 0) -0.274238px -5.99373px 0px, rgb(0, 0, 0) 0.723898px -5.95617px 0px, rgb(0, 0, 0) 1.70197px -5.75355px 0px, rgb(0, 0, 0) 2.63288px -5.39147px 0px, rgb(0, 0, 0) 3.49082px -4.87998px 0px, rgb(0, 0, 0) 4.25202px -4.23324px 0px, rgb(0, 0, 0) 4.89538px -3.46919px 0px, rgb(0, 0, 0) 5.40307px -2.60899px 0px, rgb(0, 0, 0) 5.76102px -1.67649px 0px, rgb(0, 0, 0) 5.95932px -0.697531px 0px;
  transition: ease 0.2s;
}
@media screen and (max-width: 1420px) {
  .com__ttl03_01 .ttl__ja {
    font-size: var(--font-size-50);
  }
}
@media screen and (max-width: 767px) {
  .com__ttl03_01 .ttl__ja {
    font-size: 9vw;
    line-height: 1.4;
    font-weight: 700;
  }
}

.com__ttl03_02 {
  width: fit-content;
  margin-inline: auto;
  text-align: center;
  margin-bottom: var(--margin-80);
}
.com__ttl03_02 .ttl__ja {
  width: fit-content;
  font-size: 70px;
  letter-spacing: 0.05em;
  font-family: var(--fot--M_PLUS_R_1c);
  font-weight: 900;
  color: #fff;
  transition: ease 0.2s;
}
@media screen and (max-width: 1420px) {
  .com__ttl03_02 .ttl__ja {
    font-size: var(--font-size-50);
  }
}

/* 下層ページ共通タイトル
--------------------------------------------------   */
#contents-u .ttl01,
#contact .ttl01 {
  position: relative;
  width: fit-content;
  margin: 0 auto;
  margin-bottom: var(--margin-70);
}
#contents-u .ttl01 .ja,
#contact .ttl01 .ja {
  font-size: 60px;
  font-weight: 900;
}
#contents-u .ttl01 .en,
#contact .ttl01 .en {
  margin: 0 auto;
  display: none;
}
@media screen and (max-width: 767px) {
  #contents-u .ttl01 .ja,
  #contact .ttl01 .ja {
    font-size: 8vw;
  }
}

/* text テキスト
========================================================================= */
/* list リスト
========================================================================= */
/* table テーブル
========================================================================= */
/* tel 電話番号
========================================================================= */
.com__tel {
  position: relative;
  width: fit-content;
  gap: 10px;
}
.com__tel .item__num {
  display: block;
  position: relative;
  width: fit-content;
  padding-left: 95px;
  gap: 5px;
}
.com__tel .item__num::before {
  content: "";
  position: absolute;
  background: url(/img/common/icon__tel_01_01.png) center center/contain no-repeat;
  width: 105px;
  height: 105px;
  top: 55%;
  left: 0;
  translate: 0 -50%;
}
.com__tel .item__attention {
  display: block;
  position: relative;
  width: fit-content;
  height: var(--font-size-14);
}
.com__tel.col__r .item__num {
  color: #fff;
}
.com__tel.col__r .item__num::before {
  filter: var(--col--fil-white);
}
.com__tel.col__r .item__attention {
  filter: var(--col--fil-white);
}
@media screen and (max-width: 767px) {
  .com__tel {
    --font-size: 7vw;
  }
  .com__tel .item__num {
    padding-left: 7.2vw;
  }
  .com__tel .item__num::before {
    width: 6vw;
    height: 6vw;
  }
  .com__tel .item__attention {
    height: 3vw;
  }
}

/* times 営業時間・定休日
========================================================================= */
.com__times .item {
  position: relative;
  width: fit-content;
}
.com__times dt {
  position: relative;
  width: fit-content;
}
.com__times dd {
  position: relative;
  width: fit-content;
}
.com__times.col__r dt,
.com__times.col__r dd {
  color: #fff;
}
@media screen and (max-width: 767px) {
  .com__times {
    --font-size: 3.6vw;
    --font-size-dt: 3.6vw;
    --color-dt: 3.6vw;
    --gap: 3vw;
    --gap-item: 2vw;
  }
}

/* btn ボタンの設計 
========================================================================= */
.com__btn_01 {
  --color: var(--col--txt-01);
  --background: var(--col--main-01);
  --width: 1140px;
  --height: 140px;
  z-index: 0;
  position: relative;
  width: var(--width);
  height: var(--height);
  color: var(--color);
  background: var(--background);
  border: 1px solid var(--background);
  transition: ease 0.2s;
  border-radius: 40px;
  box-shadow: 0px 12px 15px 0px rgba(0, 0, 0, 0.46);
  font-size: 40px;
  font-weight: 800;
  letter-spacing: 0.05em;
  transition: ease 0.2s;
  top: 0;
}
@media screen and (max-width: 1580px) {
  .com__btn_01 {
    font-size: 32px;
  }
}
.com__btn_01 span {
  width: fit-content;
  transition: ease 0.2s;
}
@media screen and (max-width: 767px) {
  .com__btn_01 {
    width: 98%;
    height: 19vw;
    font-size: 5vw;
    margin: 0 auto;
    line-height: 1.5;
    border-radius: 20vw;
    letter-spacing: 0.01em;
  }
}
.com__btn_01.btn__green {
  --color: var(--col--txt-01);
  --background: var(--col--acc-02);
}
.com__btn_01.btn__green:hover {
  top: 6px;
  opacity: 0.7;
  box-shadow: 0px 4px 7px 0px rgba(0, 0, 0, 0.3);
}
.com__btn_01.btn__arrow_01::before {
  content: "";
  position: absolute;
  transition: ease 0.2s;
  background: url(/img/common/icon__arr_01_01.png) center center/contain no-repeat;
  width: 28px;
  height: 48px;
  top: 50%;
  translate: 0 -50%;
  right: 20px;
}
@media screen and (max-width: 767px) {
  .com__btn_01.btn__arrow_01::before {
    width: 2vw;
    height: 7vw;
    right: 3vw;
  }
}
/* //////////////////////////////////////////////////////////////////////////////////////////////////

共通コンポーネント

////////////////////////////////////////////////////////////////////////////////////////////////// */
/* SNSアイコン制御
========================================================================= */
.com__instagram {
  --size: 29px;
  display: block;
  width: fit-content;
  height: fit-content;
  transition: ease 0.25s;
}
.com__instagram img {
  width: var(--size);
  height: var(--size);
  min-width: 29px;
  min-height: 29px;
  max-width: 60px;
  max-height: 60px;
  aspect-ratio: 1;
}
.com__instagram:hover {
  opacity: 0.7;
}
@media screen and (max-width: 767px) {
  .com__instagram {
    min-width: 8vw;
    min-height: 8vw;
  }
}

.com__line {
  --size: 29px;
  display: block;
  width: fit-content;
  height: fit-content;
  transition: ease 0.25s;
}
.com__line img {
  width: var(--size);
  height: var(--size);
  min-width: 29px;
  min-height: 29px;
  max-width: 60px;
  max-height: 60px;
  aspect-ratio: 1;
}
.com__line:hover {
  opacity: 0.7;
}
@media screen and (max-width: 767px) {
  .com__line {
    min-width: 8vw;
    min-height: 8vw;
  }
}

.com__facebook {
  --size: 29px;
  display: block;
  width: fit-content;
  height: fit-content;
  transition: ease 0.25s;
}
.com__facebook img {
  width: var(--size);
  height: var(--size);
  min-width: 29px;
  min-height: 29px;
  max-width: 60px;
  max-height: 60px;
  aspect-ratio: 1;
}
.com__facebook:hover {
  opacity: 0.7;
}
@media screen and (max-width: 767px) {
  .com__facebook {
    min-width: 8vw;
    min-height: 8vw;
  }
}

.com__x {
  --size: 29px;
  display: block;
  width: fit-content;
  height: fit-content;
  transition: ease 0.25s;
}
.com__x img {
  width: var(--size);
  height: var(--size);
  min-width: 29px;
  min-height: 29px;
  max-width: 60px;
  max-height: 60px;
  aspect-ratio: 1;
}
.com__x:hover {
  opacity: 0.7;
}
@media screen and (max-width: 767px) {
  .com__x {
    min-width: 8vw;
    min-height: 8vw;
  }
}

/* layout 共通レイアウト
========================================================================= */
.lay__txt_img {
  --column-gap: 0px;
  --row-gap: 0px;
  column-gap: var(--column-gap);
  row-gap: var(--row-gap);
  display: grid;
  grid-template: "text img" auto/1fr max-content;
}
.lay__txt_img > .item__text {
  grid-area: text;
}
.lay__txt_img > .item__img {
  grid-area: img;
}
.lay__txt_img.lay__r {
  grid-template: "img text" auto/max-content 1fr;
}
.lay__txt_img.lay__t {
  align-items: start;
}
.lay__txt_img.lay__c {
  align-items: center;
}
.lay__txt_img.lay__b {
  align-items: end;
}
.lay__txt_img.lay__rp:nth-of-type(even) {
  grid-template: "img text" auto/max-content 1fr;
}
.lay__txt_img.lay__r.lay__rp:nth-of-type(even) {
  grid-template: "text img" auto/1fr max-content;
}
@media screen and (max-width: 767px) {
  .lay__txt_img {
    grid-template: "img" auto "text" auto/1fr;
  }
  .lay__txt_img:is(.lay__r, .lay__rp) {
    grid-template: "img" auto "text" auto/1fr;
  }
  .lay__txt_img > .item__text {
    grid-area: text;
  }
  .lay__txt_img > .item__img {
    grid-area: img;
    width: 100%;
  }
}

.lay__ttl_img_txt {
  --column-gap: 0px;
  --row-gap: 0px;
  column-gap: var(--column-gap);
  row-gap: var(--row-gap);
  display: grid;
  grid-template: "img ttl" min-content "img text" auto/max-content 1fr;
  align-items: end;
}
.lay__ttl_img_txt > .item__ttl {
  grid-area: ttl;
}
.lay__ttl_img_txt > .item__img {
  grid-area: img;
}
.lay__ttl_img_txt > .item__text {
  grid-area: text;
}
.lay__ttl_img_txt.lay__t {
  grid-template: "img ttl" min-content "img text" 1fr/max-content 1fr;
}
.lay__ttl_img_txt.lay__t > .item__text {
  align-self: start;
}
.lay__ttl_img_txt.lay__t.lay__r, .lay__ttl_img_txt.lay__t.lay__rp:nth-of-type(even) {
  grid-template: "ttl img" min-content "text img" 1fr/1fr max-content;
}
.lay__ttl_img_txt.lay__c {
  align-items: center;
  grid-template: "img ttl" auto "img text" auto/max-content 1fr;
}
.lay__ttl_img_txt.lay__c > .item__ttl {
  align-self: end;
}
.lay__ttl_img_txt.lay__c > .item__text {
  align-self: start;
}
.lay__ttl_img_txt.lay__c.lay__r, .lay__ttl_img_txt.lay__c.lay__rp:nth-of-type(even) {
  grid-template: "ttl img" auto "text img" auto/1fr max-content;
}
.lay__ttl_img_txt.lay__b {
  grid-template: "img ttl" 1fr "img text" min-content/max-content 1fr;
}
.lay__ttl_img_txt.lay__b > .item__ttl {
  align-self: end;
}
.lay__ttl_img_txt.lay__b.lay__r, .lay__ttl_img_txt.lay__b.lay__rp:nth-of-type(even) {
  grid-template: "ttl img" 1fr "text img" min-content/1fr max-content;
}
.lay__ttl_img_txt.lay__rp:nth-of-type(even) {
  grid-template: "ttl img" auto "text img" auto/1fr max-content;
}
.lay__ttl_img_txt.lay__r.lay__rp:nth-of-type(even) {
  grid-template: "img ttl" "img text"/max-content 1fr;
}
@media screen and (max-width: 767px) {
  .lay__ttl_img_txt {
    grid-template: "ttl" auto "img" auto "text" auto/1fr;
  }
  .lay__ttl_img_txt:is(.lay__r, .lay__rp, .lay__t, .lay__c, .lay__b, .lay__r.lay__t, .lay__r.lay__c, .lay__r.lay__b) {
    grid-template: "ttl" auto "img" auto "text" auto/1fr;
  }
}

.lay__list {
  --column-gap: 10px;
  --row-gap: 10px;
  --num: 2;
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--column-gap);
  row-gap: var(--row-gap);
  display: flex;
  flex-wrap: wrap;
}
.lay__list > * {
  width: calc((100% - (var(--num) - 1) * var(--column-gap)) / var(--num));
}
.lay__list.lay__t {
  justify-content: start;
}
.lay__list.lay__c {
  justify-content: center;
}
.lay__list.lay__b {
  justify-content: end;
}

/*　パンくずの構成 
========================================================================= */
#bread-clumb {
  z-index: 3;
  width: 100%;
  position: absolute;
  min-width: 1280px;
  margin: 0 auto;
  padding: 20px 0 20px;
}
#bread-clumb .inner {
  padding: 0;
}
#bread-clumb li {
  position: relative;
  color: var(--col--txt-01);
  font-size: 18px;
  float: left;
  font-weight: 400;
  margin-right: 40px;
  font-weight: 800;
}
#bread-clumb li:after {
  content: "|";
  position: absolute;
  display: block;
  right: -20px;
  top: 0;
}
#bread-clumb li:last-child {
  margin-right: 0;
}
#bread-clumb li:last-child:after {
  display: none;
}
#bread-clumb li a {
  color: var(--col--main-01);
}
@media screen and (max-width: 767px) {
  #bread-clumb {
    display: none;
  }
}

/*ページネーション
========================================================================= */
ul.pagenation,
ul.pagenation li,
ul.pagenation li a {
  line-height: 1;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: -ms-flexbox;
  -js-display: flex;
  -webkit-align-items: center;
  align-items: center;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
}

ul.pagenation {
  margin-top: 20px;
  text-align: center;
  margin-bottom: 30px;
}
ul.pagenation li a {
  width: 45px;
  height: 45px;
  font-size: 17px;
}
ul.pagenation li.current {
  width: 45px;
  height: 45px;
  font-size: 20px;
  line-height: 1;
  box-sizing: border-box;
}

ul.pagenation li a {
  color: #38322d;
}
ul.pagenation li.current {
  color: #fff;
  background: var(--col--main-01);
}

@media screen and (max-width: 767px) {
  ul.pagenation,
  ul.pagenation li,
  ul.pagenation li a {
    line-height: 1;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: -ms-flexbox;
    -js-display: flex;
    -webkit-align-items: center;
    align-items: center;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
  }
  ul.pagenation {
    margin: 10% 0;
    text-align: center;
  }
  ul.pagenation li a {
    width: 10vw;
    height: 10vw;
    font-size: 4.5vw;
  }
  ul.pagenation li.current {
    width: 10vw;
    height: 10vw;
    font-size: 5vw;
    line-height: 1;
    box-sizing: border-box;
  }
}
/*ページボタン
========================================================================= */
.page-btn .left a:before {
  border-right: solid var(--col--main-01) 5px;
}
.page-btn .right a:before {
  border-left: solid var(--col--main-01) 5px;
}

.page-btn {
  position: relative;
  margin-top: 30px;
}
.page-btn a {
  position: relative;
  font-weight: bold;
  font-size: var(--font-size-13);
  font-size: var(--font-size-40);
}
.page-btn .text-c {
  text-align: center;
}
.page-btn .right,
.page-btn .left {
  position: absolute;
}
.page-btn .right a:before,
.page-btn .left a:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  width: 5px;
  height: 5px;
  margin-top: -5px;
  box-sizing: border-box;
}
.page-btn .left {
  left: 0;
}
.page-btn .left a {
  position: relative;
  padding-left: 20px;
}
.page-btn .left a:before {
  left: 0;
  border: solid 5px transparent;
}
.page-btn .right {
  right: 0;
}
.page-btn .right a {
  position: relative;
  padding-right: 20px;
}
.page-btn .right a:before {
  right: 0;
  border: solid 5px transparent;
}

@media screen and (max-width: 767px) {
  .page-btn {
    position: relative;
    margin-top: 10%;
  }
  .page-btn a {
    font-size: 5vw;
    position: relative;
    font-weight: bold;
  }
  .page-btn .right,
  .page-btn .left {
    position: absolute;
  }
  .page-btn .right a:before,
  .page-btn .left a:before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    width: 5px;
    height: 5px;
    margin-top: -5px;
    box-sizing: border-box;
  }
  .page-btn .left {
    left: 0;
  }
  .page-btn .left a {
    position: relative;
    padding-left: 5vw;
  }
  .page-btn .left a:before {
    left: 0;
    border: solid 2vw transparent;
  }
  .page-btn .right {
    right: 0;
  }
  .page-btn .right a {
    position: relative;
    padding-right: 5vw;
  }
  .page-btn .right a:before {
    right: 0;
    border: solid 2vw transparent;
  }
}