@charset "UTF-8";

/* ------------------------------------------------------------

Reset

------------------------------------------------------------ */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video,
main {
  border: 0;
  margin: 0;
  outline: 0;
  padding: 0;
  background: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
  /*
  font:inherit;
  font-family:inherit;
  */
  font-size: 100%;
  font-style: inherit;
  font-weight: inherit;
  text-decoration: none;
  vertical-align: baseline;
}

input,
textarea {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
}

textarea {
  display: block;
}

html {
  scroll-behavior: smooth;
  /*--基準--1対1でスケール*/
  font-size: 62.5%;
  /*--ブレイクポイント1200px--1対1でスケール*/
  /*--ブレイクポイント767px--1対1でスケール*/
}

@media screen and (max-width: 1200px) {
  html {
    font-size: 0.8333333333vw;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  html {
    font-size: 2.6666666667vw;
  }
}

/* スマホ バウンド効果を無効 */
html,
body {
  overscroll-behavior: none;
}

body {
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

article,
aside,
details,
figcaption,
dialog,
figure,
footer,
header,
main,
nav,
section,
summary,
textarea {
  display: block;
}

audio,
canvas,
video {
  display: inline-block;
}

/*a,
a:link,
a:visited,
a:hover,
a:active{
	outline:none;
	text-decoration:none;
}*/
a:focus-visible {
  outline: 2px dotted #333;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption,
th,
td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}

li {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

input,
select {
  vertical-align: middle;
}

select {
  background-color: #fff;
  color: #333;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  line-height: normal;
}

/* スマホ 入力フォームのズームを防ぐ */
input,
textarea,
select {
  font-size: 16px;
}

img {
  vertical-align: top;
}

button {
  background: none;
  appearance: none;
  border: none;
  padding: 0;
}

html {
  -moz-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  height: 100%;
}

body {
  background: #FFF;
  color: #333;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  height: 100%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  body {
    font-size: 14px;
  }
}

body.open {
  overflow: hidden;
}

.contentsWrapper {
  position: relative;
  padding-top: 84px;
  padding-bottom: 120px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .contentsWrapper {
    padding-top: 76px;
    padding-bottom: 60px;
  }
}

.content__height {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* ------------------------------------------------------------

Font

------------------------------------------------------------ */
* {
  font-family: YakuHanJPs_Noto, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Helvetica Neue", arial, meiryo, sans-serif;
}

/* ------------------------------------------------------------

Shortcodes

------------------------------------------------------------ */
.normal {
  font-weight: 400 !important;
}

.bold {
  font-weight: 700 !important;
}

.italic {
  font-style: italic !important;
}

.none {
  display: none !important;
}

.mb-none {
  margin-bottom: 0 !important;
}

sub {
  vertical-align: sub !important;
  font-size: 50%;
}

sup {
  vertical-align: sup !important;
  font-size: 50%;
}

.txt-mail::after {
  content: "@";
}

.red01 {
  color: #FF0000;
}

.indent-1 {
  text-indent: -10px;
  padding-left: 10px;
}

.mb_20 {
  margin-bottom: 20px;
}

/* ------------------------------------------------------------

ボタン

------------------------------------------------------------ */
#secCatalog__btnType01 {
  display: flex;
  justify-content: center;
}

.btnType01__inner {
  display: inline-block;
  width: 343px;
}

.btnType01__inner a {
  background: #333;
  color: #fff;
  display: flex;
  justify-content: center;
  padding: 9.7px 0;
  border-radius: 4px;
}

.btnType01__inner a:hover {
  opacity: 0.8;
}

.form__button {
  max-width: 343px;
  width: 100%;
  padding: 12px;
  background-color: #333;
  font-size: 16px;
  color: #fff;
  border-radius: 4px;
  cursor: pointer;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .form__button {
    max-width: 100%;
  }
}

.form__button:hover {
  opacity: 0.8;
}

.Reception__button {
  display: flex;
  justify-content: center;
}

.Reception__button a {
  max-width: 343px;
  max-height: 48px;
  width: 100%;
  padding: 15px;
  background: #fff;
  color: #333;
  font-size: 16px;
  line-height: 1;
  border-radius: 4px;
  border: 1px solid #333;
  cursor: pointer;
  transition: color .3s;
  text-align: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Reception__button a {
    max-width: none;
  }
}

.Reception__button a:hover {
  opacity: 0.8;
}

/* ------------------------------------------------------------

リンク

------------------------------------------------------------ */
/* テキストリンク
---------------------------------------------- */
.linkTxt01__inner a {
  color: #333;
  display: inline-block;
  text-decoration: underline !important;
  word-wrap: break-word;
}

.linkTxt01__inner a:hover {
  text-decoration: none !important;
}

/* ------------------------------------------------------------

パンくずリスト

------------------------------------------------------------ */
.breadcrumb {
  line-height: 1;
  max-width: 1180px;
  margin: 40px auto 28px;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .breadcrumb {
    display: none;
  }
}

.breadcrumb ul {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.breadcrumb ul li {
  display: inline;
  vertical-align: middle;
  padding-right: 20px;
  position: relative;
}

.breadcrumb ul li::after {
  content: "";
  display: block;
  background: url(../img/ico_arrow01.svg) no-repeat 0 0 / cover;
  width: 18px;
  height: 18px;
  position: absolute;
  top: -1px;
  right: 0;
  transform: rotate(90deg);
}

.breadcrumb ul li:last-child {
  padding-right: 0;
}

.breadcrumb ul li:last-child::after {
  display: none;
}

.breadcrumb ul li a {
  color: #333;
  text-decoration: none;
  font-size: 14px;
  text-decoration: underline;
}

.breadcrumb ul li:last-child a {
  text-decoration: none;
}

.breadcrumb ul li a:hover {
  opacity: 0.7;
}

.breadcrumb ul li.current a {
  color: #333;
  pointer-events: none;
}

.breadcrumb ul li.current a:hover {
  opacity: 1;
}

/* ------------------------------------------------------------

Swiper スライド

------------------------------------------------------------ */
.swiper-button-prev,
.swiper-button-next {
  width: 42px;
  height: 42px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {

  .swiper-button-prev,
  .swiper-button-next {
    display: none;
  }
}

.swiper-button-prev {
  transform: rotate(180deg);
  left: 0;
}

.swiper-button-next {
  transform: rotate(0deg);
  right: 0;
}

.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
  display: none;
}

.swiper-button-prev img,
.swiper-button-next img {
  width: 100%;
  height: auto;
}

.swiper-button-prev::after,
.swiper-button-next::after {
  display: none;
}

/* サムネイルSwiper
---------------------------------------------- */
.Single__sliderContainer {
  display: flex;
  align-items: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__sliderContainer {
    flex-direction: column-reverse;
    max-width: 100%;
  }
}

.Single__thumbnailSlider {
  max-height: 540px;
  margin-right: 16px;
}

@media (min-width: 768px) {
  .Single__thumbnailSlider {
    height: 100%;
    width: 107px;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__thumbnailSlider {
    width: 100%;
    height: auto;
    margin-right: 0;
    margin-top: 16px;
    padding: 0 16px;
  }
}

.Single__mainSlider {
  max-width: 540px;
  max-height: 540px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__mainSlider {
    width: 100%;
    height: auto;
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .Single__mainSlider {
    width: 340px;
    height: auto;
  }
}

.swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.Single__thumbnailSlider .swiper-slide {
  cursor: pointer;
  opacity: 0.8;
}

.Single__thumbnailSlider .swiper-slide-thumb-active {
  opacity: 1;
  border: 1px solid #333;
}

/* ------------------------------------------------------------

見出し

------------------------------------------------------------ */

/* ------------------------------------------------------------

ログイン

------------------------------------------------------------ */
@media screen and (orientation: portrait) and (max-width: 767px) {
  .header.login__header {
    position: absolute;
  }
}

.login__header {
  display: flex;
  justify-content: center;
}

.loginContainer {
  flex: 1;
  justify-items: center;
  align-content: center;
  padding-top: 84px;
  padding-bottom: 120px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .loginContainer {
    padding-top: 96px;
    padding-bottom: 0;
  }
}

.loginContainer__inner {
  max-width: 343px;
  margin: 0 auto;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .loginContainer__inner {
    padding: 0 16px 60px;
    max-width: none;
  }
}

.loginContainer__input {
  margin-bottom: 16px;
}

.loginContainer__input label {
  display: block;
}

.loginContainer__input input {
  width: 100%;
  padding: 8px;
  border: 1px solid #969696;
  border-radius: 4px;
  min-height: 44px;
}

.loginContainer__attention {
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.4;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .loginContainer__attention {
    font-size: 12px;
    padding: 0 16px;
  }
}

.error-message {
  color: red;
  text-align: center;
  margin-bottom: 15px;
  display: none;
}

/* ID/PW失敗 */
.loginContainer__error {
  background-color: #FFEAEA;
  border: 1px solid #C21F1F;
  padding: 16px;
  margin-bottom: 20px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .loginContainer__error {
    margin: 0 16px 20px 16px;
  }
}

.loginContainer__error__message {
  color: #C21F1F;
  line-height: 1.4;
  font-size: 12px;
}

.loginContainer__error__message a {
  color: #C21F1F;
  text-decoration: underline;
}

.loginContainer__error__message:first-of-type {
  margin-bottom: 10px;
}

/* 有効期限切れ */
.loginContainer__disabled {
  background-color: #FFEAEA;
  border: 1px solid #C21F1F;
  padding: 16px;
  margin-bottom: 20px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .loginContainer__disabled {
    margin: 0 16px 20px 16px;
  }
}

.loginContainer__disabled__message {
  color: #C21F1F;
  line-height: 1.4;
  font-size: 12px;
}

/* ------------------------------------------------------------

トップページ

------------------------------------------------------------ */
/* メインビジュアル
---------------------------------------------- */
@media screen and (orientation: portrait) and (max-width: 767px) {
  .wrap__Top {
    padding-bottom: 30px;
  }
}

.main {
  position: relative;
}

.main__image img {
  width: 100%;
}

/* お申し込み期限
---------------------------------------------- */
.Subscribe {
  margin: 20px 0 40px;
}

.Subscribe__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  justify-content: end;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Subscribe__inner {
    justify-content: center;
    padding: 0;
    max-width: none;
  }
}

.Subscribe__item-text {
  display: inline-block;
  border: solid 1px #333;
  padding: 8px 16px;
  line-height: 1;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Subscribe__item-text {
    font-size: 14px;
  }
}

.Subscribe__item-text time {
  padding-left: 8px;
}

/* Category
---------------------------------------------- */
.secCategory {
  margin-bottom: 120px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory {
    margin-bottom: 60px;
  }
}

.secCategory__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__inner {
    padding: 0 16px;
  }
}

.secCategory__title {
  font-size: 36px;
  color: #333;
  margin-bottom: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__title {
    font-size: 24px;
    margin-bottom: 20px;
    line-height: 1;
  }
}

.secCategory__search {
  position: relative;
  width: 400px;
  order: 1;
  display: none;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__search {
    display: block;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__search {
    width: 100%;
    order: 0;
    margin-bottom: 12px;
  }
}

.secCategory__search>input {
  background: #fff;
  width: 100%;
  border: 1px solid #969696;
  border-radius: 4px;
  padding: 10.5px 45px 10.5px 10px;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  color: #333;
}

.secCategory__search-btn {
  position: absolute;
  top: 11px;
  right: 11px;
  font-size: 0;
}

.secCategory__search-btn button {
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url(../img/ico_search01.svg) no-repeat 0 0/cover;
  width: 16px;
  height: 16px;
  padding: 0;
  cursor: pointer;
}

.secCategory__search-btn button:hover {
  opacity: 0.8;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__linktext {
    order: 1;
    width: 100%;
    text-align: right;
  }
}

.secCategory__linktext a {
  color: #333;
  letter-spacing: 0.5px;
  position: relative;
  padding-left: 18px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__linktext a {
    font-size: 14px;
  }
}

.secCategory__linktext a:hover {
  opacity: 0.8;
}

.secCategory__linktext img {
  transform: rotate(90deg);
  position: absolute;
  top: 0;
  left: 0;
  width: 18px;
  height: 18px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__linktext img {
    top: -2px;
  }
}

.secCategory__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 12px;
  }
}

.secCategory__list-item a {
  color: #333;
}

.secCategory__list-item a:hover {
  opacity: 0.8;
}

.secCategory__list-itemImage {
  position: relative;
}

.secCategory__list-itemImage img {
  width: 100%;
  height: auto;
}

.secCategory__list-itemImage p {
  position: absolute;
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  line-height: 1.4;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__list-itemImage p {
    left: 12px;
  }
}

.secCategory__list-itemImage br {
  display: none;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCategory__list-itemImage br {
    display: block;
  }
}

.img__pc {
    display: block;
}
.img__sp {
    display: none;
}

@media screen and (max-width: 767px) and (orientation: portrait) {
    .img__pc {
        display: none;
    }
    .img__sp {
        display: block;
    }
}

/* Gift Catalogとは
---------------------------------------------- */
.secCatalog {
  margin-bottom: 120px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog {
    margin-bottom: 60px;
    padding: 0 16px;
  }
}

.secCatalog__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__inner {
    max-width: none;
    padding: 0;
  }
}

.secCatalog__title {
  font-size: 36px;
  color: #333;
  margin-bottom: 40px;
  line-height: 1;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__title {
    font-size: 24px;
    margin-bottom: 20px;
  }
}

.secCatalog__unit01 {
  display: flex;
  gap: 40px;
  margin-bottom: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__unit01 {
    flex-direction: column-reverse;
    gap: 20px;
    margin-bottom: 12px;
  }
}

.secCatalog__unit01-text {
  width: 50%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__unit01-text {
    width: 100%;
  }
}

.secCatalog__unit01-image {
  width: 50%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__unit01-image {
    width: 100%;
  }
}

.secCatalog__unit01-image img {
  width: 100%;
}

.secCatalog__unit02 {
  background-color: #EEE;
  padding: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__unit02 {
    padding: 20px 12px;
  }
}

.secCatalog__lead {
  font-size: 24px;
  letter-spacing: 0.5px;
  line-height: 1;
  margin-bottom: 20px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__lead {
    font-size: 18px;
  }
}

.secCatalog__textarea {
  margin-bottom: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__textarea {
    margin-bottom: 20px;
  }
}

.secCatalog__text {
  line-height: 1.8;
  margin-bottom: 20px;
}

.secCatalog__text:last-of-type {
  margin-bottom: 0;
}

.secCatalog__unit03 {
  display: flex;
  gap: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secCatalog__unit03 {
    flex-direction: column-reverse;
    gap: 20px;
    margin-bottom: 12px;
  }
}

.secCatalog__unit03 .image__gallery__pc {
    display: flex;
}
.secCatalog__unit03 .image__gallery__sp {
    display: none;
}

@media screen and (max-width: 767px) and (orientation: portrait) {
    .secCatalog__unit03 .image__gallery__pc {
        display: none;
    }
    .secCatalog__unit03 .image__gallery__sp {
        display: flex;
    }
}

.secCatalog__unit03 .image__gallery__pc {
    justify-content: center;
    align-items: center;
    gap: 10rem;
    padding: 0rem 8rem;
    max-width: 1200px;
    margin: 0 auto;
}

.secCatalog__unit03 .image__gallery__pc .image__left {
    flex: 6;
}

.secCatalog__unit03 .image__gallery__pc .image__right {
    flex: 4;
    padding-bottom: 8rem;
}

.secCatalog__unit03 .image__gallery__pc img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.image__gallery__sp {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    padding: 0rem 2rem;
}

.image__gallery__sp .image__top {
    padding-left: 13rem;
}

.image__gallery__sp .image__bottom {
    padding-right: 6rem;
}

.image__gallery__sp img {
    width: auto;
    height: 200px;
    display: block;
    object-fit: cover;
}

/* Checked Item
---------------------------------------------- */
.secChecked {
  padding-bottom: 30px;
  position: relative;
  z-index: 1;
}

.secChecked__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secChecked__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 0 0 16px;
  }
}

.secChecked__title {
  font-size: 36px;
  color: #333;
  margin-bottom: 40px;
  line-height: 1;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .secChecked__title {
    font-size: 24px;
    margin-bottom: 20px;
  }
}

.secChecked .contentsUnit01 {
  max-width: 217px;
}

.secChecked .contentsUnit01 img {
  width: 100%;
}

.secChecked__list {
  position: relative;
}

.swiper-pagination {
  bottom: -30px !important;
  height: 20px;
}

/* ------------------------------------------------------------

作品詳細

------------------------------------------------------------ */
#requestWrapper {
  flex: 1;
  align-content: center;
}

.Single__unit01 {
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__unit01 {
    margin-bottom: 40px;
  }
}

.Single__unit01-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  gap: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__unit01-inner {
    max-width: none;
    padding: 0;
    gap: 20px;
    flex-direction: column;
  }
}

@media (min-width: 768px) {
  .Single__request {
    width: 30%;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__request {
    padding: 0 16px;
  }
}

.Single__requestTitle {
  margin-bottom: 40px;
  font-size: 18px;
  line-height: 1.4;
}

.Single__requestNote {
  display: block;
  font-size: 14px;
  color: #C21F1F;
  line-height: 1.4;
  margin-top: 4px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__requestNote {
    font-size: 12px;
  }
}

.Single__inputGroup {
  margin-bottom: 20px;
}

.Single__inputGroup--error {
  margin-top: 3px;
  color: #C21F1F;
  font-size: 14px;
  line-height: 1.4;
  width: 100%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__inputGroup {
    margin-bottom: 12px;
  }

  .Single__inputGroup:last-of-type {
    margin-bottom: 20px;
  }
}

.Single__inputGroup label {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
}

.Single__inputGroup input,
.Single__inputGroup select {
  width: 100%;
  min-height: 44px;
  padding: 8px;
  border: 1px solid #969696;
  border-radius: 4px;
}

.Single__inputGroup--select {
  position: relative;
}

.Single__inputGroup--select select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.Single__inputGroup--select::after {
  content: "";
  background: url(../img/ico_arrow01.svg) no-repeat 0 0 / cover;
  width: 16px;
  height: 16px;
  position: absolute;
  right: 10px;
  top: 44px;
  transform: rotate(180deg);
  pointer-events: none;
}

.Single__inputGroup--select option {
  position: absolute;
  top: 0;
  left: 0;
}

.form__button.form__button--single {
  max-width: 100%;
}

.Single__unit02 {
  position: relative;
  margin-bottom: 60px;
}

.Single__unit02::before {
  content: "";
  position: absolute;
  top: 56px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #D6D6D6;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__unit02::before {
    display: none;
  }
}

.Single__unit02-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__unit02-inner {
    max-width: none;
    width: 100%;
    padding: 0;
  }
}

.Single__tabMenu {
  display: flex;
}

.Single__tabLink {
  position: relative;
  padding: 16px 40px;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  color: #333;
  /* スマホの色変化防止 */
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__tabLink {
    width: 50%;
    font-size: 14px;
    padding: 16px 40px 12px;
  }
}

.Single__tabLink.active::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: #D6D6D6;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__tabLink.active::before {
    bottom: -4px;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__tabContent {
    padding: 0 16px;
  }
}

.Single__tabContent-item {
  display: none;
  padding: 40px 0 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__tabContent-item {
    padding: 20px 0 0;
  }
}

.Single__tabContent-item.active {
  display: block;
}

.Single__tabContent-introduction {
  position: relative;
  display: block;
  transition: max-height 0.3s ease-out;
  overflow: hidden;
  max-height: 500px;
}

.Single__tabContent-introduction p {
  margin-bottom: 28px;
}

.Single__tabContent-introduction p:last-of-type {
  margin-bottom: 0;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__tabContent-introduction p {
    font-size: 14px;
    margin-bottom: 14px;
  }
}

.Single__tabContent-introduction a {
  color: #333;
  text-decoration: underline;
}

.Single__tabContent-introduction a:hover {
  opacity: 0.8;
}

.Single__tabContent-introduction.closed {
  max-height: 0;
}

.Single__tabContent-introduction::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background: linear-gradient(0deg, rgba(255, 255, 255, 1) 20%, rgba(255, 255, 255, 0) 40%);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease-out;
}

.Single__tabContent-introduction.closed::after {
  opacity: 1;
}

.accordion {
  color: #333;
  cursor: pointer;
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: right;
}

.accordion-text {
  padding-left: 4px;
}

.arrow-icon {
  display: none;
  width: 18px;
  height: auto;
  transition: transform 0.3s ease-out;
  transform: rotate(180deg)
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .arrow-icon {
    display: block;
  }
}

.accordion.open .arrow-icon {
  transform: rotate(0deg);
}

.Single__profileImage {
  max-width: 750px;
  margin: 0 auto 28px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__profileImage {
    margin-bottom: 8px;
  }
}

.Single__creator img {
  width: 100%;
  height: auto;
}

.Single__creatorBio {
  margin-bottom: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__creatorBio {
    margin-bottom: 20px;
  }
}

.Single__creatorBio h3 {
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 28px;
  text-align: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__creatorBio h3 {
    font-size: 14px;
    margin-bottom: 8px;
  }
}

.Single__creatorBio p {
  margin-bottom: 28px;
}

.Single__creatorBio p:last-of-type {
  margin-bottom: 0;
}

.Single__portfolio {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 20px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__portfolio {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 8px;
  }
}

.Single__SpecialCommercialLaw {
  text-align: right;
}

.Single__SpecialCommercialLaw a {
  color: #333;
  text-decoration: underline;
  font-size: 14px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Single__SpecialCommercialLaw a {
    font-size: 12px;
  }
}

/* ------------------------------------------------------------

申込画面

------------------------------------------------------------ */
.request {
  margin-top: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request {
    margin-top: 20px;
  }
}

.request__title {
  text-align: center;
  font-weight: 700;
  line-height: 1;
  padding-bottom: 20px;
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request__title {
    text-align: left;
    font-weight: 400;
    font-size: 14px;
    padding: 0 16px;
    border-bottom: none;
    margin-bottom: 32px;
  }
}

.request__inner {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request__inner {
    padding: 0 16px;
  }
}

.request__details {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request__details {
    gap: 16px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: center;
  }
}

.request__detailsImage {
  max-width: 260px;
  width: 30.3%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request__detailsImage {
    width: 23.33%;
  }
}

.request__detailsImage img {
  width: 100%;
  height: auto;
}

.request__detailsText {
  max-width: 580px;
  width: 67.5%;
}

.request__detailsText h3 {
  line-height: 1.4;
  margin-bottom: 24px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request__detailsTitle {
    width: 72%;
    line-height: 1.4;
  }
}

.request__table {
  font-size: 14px;
  line-height: 1.4;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request__table {
    font-size: 12px;
  }
}

.request__table tr {
  margin-bottom: 16px;
  display: block;
}

.request__table th,
.request__table td {
  display: block;
}

.request__table th {
  color: #969696;
  margin-bottom: 4px;
}

.request__table td {
  padding-left: 8px;
}

.request__buttonArea {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.request__buttonArea>form {
  width: 100%;
  text-align: center;
}

.request__buttonNext {
  max-width: 343px;
  width: 100%;
  min-height: 48px;
  padding: 10px;
  margin-bottom: 24px;
  font-size: 16px;
  background: #333;
  color: #fff;
  border-radius: 4px;
  cursor: pointer;
  transition: color .3s;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request__buttonNext {
    margin-bottom: 32px;
  }
}

.request__buttonNext:hover {
  opacity: 0.8;
}

.request__buttonBack {
  color: #333;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  transition: color .3s;
}

.request__buttonBack:hover {
  opacity: 0.8;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .request__buttonBack {
    align-self: flex-start;
  }
}

/* ------------------------------------------------------------

作品一覧

------------------------------------------------------------ */
.Category {
  margin-top: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Category {
    padding: 0 16px;
    margin-top: 20px;
  }
}

.Category__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Category__inner {
    max-width: none;
    padding: 0;
  }
}

.Category__content-unit01 {
  display: flex;
  justify-content: space-between;
  margin-bottom: 32px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Category__content-unit01 {
    margin-bottom: 20px;
    align-items: center;
  }
}

.Category__selectWrapper {
  display: none;
}

.Category__selectWrapper {
  position: relative;
  width: 60%;
  text-align: left;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Category__selectWrapper {
    width: 70%;
    display: block;
  }
}

.Category__selectWrapper::after {
  content: "";
  position: absolute;
  background: url(../img/ico_arrow03.svg) no-repeat 0 0 / cover;
  width: 18px;
  height: 18px;
  right: 0;
  top: 0;
  pointer-events: none;
}

.Category__selectWrapper-item {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: none;
  border: none;
  padding-bottom: 4px;
  border-bottom: 1px solid #969696;
  font-size: 16px;
  width: 100%;
  height: 28px;
  cursor: pointer;
  line-height: normal;
}

.Category__selectWrapper-item option {
  background: #fff;
  color: #333;
  font-size: 16px;
  text-align: left;
}

.Category__selectWrapper-item:focus {
  outline: none;
}

.Category__contentTitle {
  font-size: 18px;
  letter-spacing: 0.5px;
  line-height: 1;
  font-weight: 400;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Category__contentTitle {
    display: none;
  }
}

.Category__contentNumber {
  font-size: 14px;
  padding-left: 60px;
  font-weight: 400;
}

.Category__menu {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px 0;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Category__menu {
    display: none;
  }
}

.Category__menu a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  color: #333;
  border-left: 1px solid #aaa;
  font-size: 14px;
  min-height: 32px;
  line-height: 1.4;
  text-align: center;
}

.Category__menu li:nth-of-type(6n) a {
  border-right: 1px solid #aaa;
}

.Category__menu a:hover {
  opacity: 0.6;
}

.Category__menu--active {
  font-weight: 700;
}

.Category__contentGrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 60px 16px;
  margin-bottom: 60px;
}

.Category__contentGrid>a {
  color: #333;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Category__contentGrid {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 8px;
  }
}

.Category__contentGrid-itemImage {
  position: relative;
  margin-bottom: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Category__contentGrid-itemImage {
    margin-bottom: 8px;
  }
}

.Category__contentGrid-itemImage img {
  width: 100%;
  height: auto;
}

.Category__contentGrid-itemImage--discontinued {
    position: absolute;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    width: 105px;
    height: 35px;
    border: #C21F1F 1px solid;
    color: #C21F1F;
    background-color: rgb(229,224,223,0.9);
}

.Category__contentGrid-itemTitle {
  line-height: 1.4;
}

.Pagination {
  margin-bottom: 60px;
}

.Pagination ul {
  display: flex;
  gap: 28px;
  justify-content: center;
  align-items: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Pagination ul {
    gap: 20px;
  }
}

.Pagination__item.active {
  border-bottom: 2px solid #333;
}

.Pagination__item--link {
  width: 40px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #333;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Pagination__item--link {
    width: 23px;
    height: 40px;
    font-size: 12px;
  }
}

.Pagination__item--link:hover {
  opacity: 0.8;
}

.Pagination__item--link.arrow {
  width: 18px;
}

.Pagination__item--linkIcon {
  display: inline-block;
  width: 18px;
  height: 18px;
}

.Pagination__item--linkIcon img {
  width: 100%;
  height: auto;
}

/* デモ画面様ここから */
@media screen and (orientation: portrait) and (max-width: 767px) {
  .Pagination__item:nth-child(7) {
    display: block;
    margin: 0 -12px;
  }
}

.Pagination__item:nth-child(9) {
  display: none;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Pagination__item:nth-child(9) {
    display: block;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Pagination__item:nth-child(8) {
    display: none;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Pagination__item:nth-child(6) {
    display: none;
  }
}

/* デモ画面様ここまで */

/* ------------------------------------------------------------

お客様情報入力

------------------------------------------------------------ */
/* 入力画面
---------------------------------------------- */
@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer {
    padding: 0 16px;
  }
}

.Customer__title {
  line-height: 1.4;
  font-weight: 700;
  padding-bottom: 20px;
  border-bottom: 1px solid #D6D6D6;
  margin: 40px 0 60px;
  text-align: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__title {
    font-weight: 400;
    font-size: 14px;
    padding: 0;
    border-bottom: none;
    margin: 20px 0 32px 0;
    text-align: left;
  }
}

.Customer__inner {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__inner {
    width: 100%;
    padding: 0;
  }
}

.Customer__table {
  width: 100%;
  margin-bottom: 20px;
}

.Customer__table-header {
  width: 25%;
  padding-right: 25px;
  vertical-align: middle;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__table-header {
    width: 100%;
    display: block;
    padding-right: 0;
  }
}

.Customer__tableHeader--optional {
  display: inline-block;
  font-size: 12px;
  line-height: 1;
  color: #fff;
  background-color: #969696;
  padding: 4px 3.5px;
  margin-left: 8px;
}

.Customer__table-data {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  padding: 10px 0;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__table-data {
    max-width: 100%;
  }
}

tr:first-of-type .Customer__table-data {
  padding-top: 0;
}

tr:last-of-type .Customer__table-data {
  padding-bottom: 0;
}

tr:nth-child(1) .Customer__table-data,
tr:nth-child(2) .Customer__table-data {
  justify-content: space-between;
  gap: 0 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {

  tr:nth-child(1) .Customer__table-data,
  tr:nth-child(2) .Customer__table-data {
    gap: 0 4px;
  }
}

.Customer__table-data .Customer__name {
  width: calc(50% - 8px);
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__table-data .Customer__name {
    width: calc(50% - 2px);
  }
}

.Customer__table-data--gender,
.Customer__table-data--zipcode,
.Customer__table-data--prefecture {
  max-width: 164px;
  width: 100%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {

  .Customer__table-data--gender,
  .Customer__table-data--zipcode {
    max-width: 100%;
    width: 50%;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__table-data--prefecture {
    max-width: 100%;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__prefectureWrapper {
    width: 100%;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__genderWrapper {
    width: 100%;
  }
}

.Customer__table-data select,
.Customer__table-data input {
  width: 100%;
  height: 44px;
  padding: 8px;
  font-size: 16px;
  border: 1px solid #969696;
  border-radius: 4px;
}

.Customer__table-data input::placeholder {
  color: #d6d6d6;
}

.Customer__table-data--gender select,
.Customer__birth-select select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.default-option {
  color: #d6d6d6;
  /* 初期値の色 */
}

select option:not(.default-option) {
  color: black;
  /* 選択された値の色 */
}

.Customer__birthWrapper {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

@media screen and (orientation: portrait) and (max-width: 850px) {
  .Customer__birthWrapper {
    gap: 0 4px;
    flex-wrap: wrap;
  }
}

.Customer__birth-select {
  position: relative;
  display: flex;
  align-items: center;
  max-width: 164px;
  width: 100%;
}

@media screen and (orientation: portrait) and (max-width: 850px) {
  .Customer__birth-select {
    width: calc((100% / 3) - 3px);
    max-width: 100%;
  }
}

.Customer__birth-select label {
  position: absolute;
  right: 32px;
}

.Customer__age {
  min-width: 64px;
  height: 44px;
  background-color: #eee;
  padding: 10px;
  font-size: 14px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__age {
    min-width: 87px;
    padding: 8px;
    margin-top: 8px;
  }
}

.Customer__age span {
  padding-right: 3px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__age span {
    padding-right: 4px;
  }
}

.Customer__error {
  margin-top: 3px;
  color: #C21F1F;
  font-size: 14px;
  line-height: 1.4;
  width: 100%;
}

.Customer__warning {
  color: #C21F1F;
  font-size: 14px;
  line-height: 1.4;
  margin-top: 12px;
  padding: 16px;
  border: 1px solid #C21F1F;
  background-color: #FFEAEA;
  width: 100%;
}

.Customer__prefectureWrapper,
.Customer__genderWrapper {
  position: relative;
  width: 100%;
}

.Customer__birth-select::after,
.Customer__genderWrapper::after,
.Customer__prefectureWrapper::after {
  content: "";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: url(../img/ico_arrow03.svg) no-repeat 0 0 / cover;
  width: 18px;
  height: 18px;
  pointer-events: none;
}

#prefecture {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.Customer__buttonArea {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.form__button--customer {
  margin-bottom: 24px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .form__button--customer {
    max-width: 100%;
  }
}

.Customer__button--back {
  color: #333;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  width: 100%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__button--back {
    text-align: left;
  }
}

.Customer__button--back:hover {
  opacity: 0.8;
}

#submit-button {
  background-color: #D6D6D6;
  cursor: not-allowed;
  opacity: 1;
}

.Customer__checkArea {
  background-color: #EEE;
  margin-bottom: 60px;
  padding: 20px 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Customer__checkArea {
    margin-bottom: 20px;
  }
}

.Customer__checkArea p {
  color: #333;
  font-size: 14px;
}

.Customer__checkArea .Customer__checkArea__link {
  color: #333;
  text-decoration: underline;
}

#consent-checkbox {
  display: none;
}

.custom-checkbox {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 16px;
}

.custom-checkbox::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  border: 1px solid #333;
  border-radius: 4px;
  transition: all 0.3s ease-in-out;
  background-color: transparent;
}

#consent-checkbox:checked+.custom-checkbox::before {
  background-color: #333;
}

#consent-checkbox:checked+.custom-checkbox::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 7px;
  width: 16px;
  height: 12px;
  background: url(../img/ico_check01.svg) no-repeat 0 0 / contain;
}

#submit-button.enabled {
  background-color: #333;
  cursor: pointer;
}

#submit-button.enabled:hover {
  opacity: 0.8;
}

/* 確認画面
---------------------------------------------- */
#CustomerConfirmWrapper {
  flex: 1;
  align-content: center;
}

.CustomerConfirm_form {
  max-width: 680px;
  margin: 60px auto 0;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomerConfirm_form {
    max-width: 100%;
    margin: 32px 0 0;
    padding: 0;
  }
}

.CustomerConfirm_table {
  width: 100%;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomerConfirm_table {
    margin-bottom: 40px;
  }
}

.CustomerConfirm_table tr {
  border-top: 1px solid #D6D6D6;
  border-left: 1px solid #D6D6D6;
  border-right: 1px solid #D6D6D6;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomerConfirm_table tr {
    border: none;
    display: block;
    margin-bottom: 20px;
  }
}

.CustomerConfirm_table tr:last-of-type {
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 0;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomerConfirm_table tr:last-of-type {
    border: none;
  }
}

.CustomerConfirm_table th,
.CustomerConfirm_table td {
  line-height: 1.4;
}

.CustomerConfirm_table th {
  padding-left: 12px;
  color: #969696;
  width: 225px;
  padding-right: 24px;
  vertical-align: middle;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomerConfirm_table th {
    padding: 0 16px 0 0;
    width: 132px;
    vertical-align: top;
  }
}

.CustomerConfirm_table td {
  padding: 12px 12px 12px 0;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomerConfirm_table td {
    padding: 0;
  }
}

.CustomerConfirm__buttonArea {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.form__button.form__button--confirm {
  margin-bottom: 24px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .form__button.form__button--confirm {
    max-width: 100%;
    margin-bottom: 32px;
  }
}

.CustomerConfirm__buttonBack {
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  width: 100%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomerConfirm__buttonBack {
    text-align: left;
  }
}

.CustomerConfirm__buttonBack:hover {
  opacity: 0.8;
}

/* 入力完了画面
---------------------------------------------- */
.CustomertReception {
  display: flex;
  flex: 1;
  justify-items: center;
  align-content: center;
  padding-top: 84px;
  justify-content: center;
  align-items: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomertReception {
    padding-top: 76px;
  }
}

.CustomertReception__inner {
  max-width: 600px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomertReception__inner {
    margin: 20px 0 60px;
    padding: 0 16px;
  }
}

.CustomertReception__unit {
  background-color: #eee;
  margin-bottom: 60px;
  padding: 32px;
  text-align: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomertReception__unit {
    margin-bottom: 20px;
    padding: 20px;
  }
}

.CustomertReception__title {
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomertReception__title {
    font-size: 14px;
  }
}

.CustomertReception__text {
  font-size: 16px;
  line-height: 1.8;
  font-weight: 400;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomertReception__text {
    font-size: 14px;
  }
}


/* エラー画面
---------------------------------------------- */
#errorWrapper {
  flex: 1;
  align-content: center;
}

.CustomerError {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .CustomerError {
    max-width: 100%;
    padding: 0 16px;
  }
}

.error__text {
  width: 100%;
  background-color: #FFEAEA;
  border: 1px solid #C21F1F;
  padding: 16px;
  margin-bottom: 60px;
  font-size: 14px;
  line-height: 1.4;
  color: #C21F1F;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .error__text {
    margin-bottom: 20px;
    font-size: 12px;
  }
}

.form__button.form__button--error {
  color: #fff;
  background-color: #D6D6D6;
  margin-top: 0;
}

/* ------------------------------------------------------------

お問い合わせ

------------------------------------------------------------ */
/* 入力画面
---------------------------------------------- */
#ContactWrapper {
  flex: 1;
  align-content: center;
}

.Contact {
  margin-top: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Contact {
    margin-top: 20px;
    padding: 0 16px;
  }
}

.Contact__textArea {
  padding-bottom: 20px;
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Contact__textArea {
    padding-bottom: 0;
    border-bottom: none;
    margin-bottom: 20px;
  }
}

.Contact__title {
  text-align: center;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.5px;
  line-height: 1;
  margin-bottom: 20px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Contact__title {
    text-align: left;
    font-size: 18px;
  }
}

.Contact__text {
  font-weight: bold;
  text-align: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Contact__text {
    text-align: left;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
  }
}

.Contact_form {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Contact_form {
    padding: 0;
  }
}

.Contact_table {
  width: 100%;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Contact_table {
    margin-bottom: 40px;
  }
}

.Contact__tableHeader {
  width: 225px;
  padding-right: 24px;
  vertical-align: middle;
  line-height: 1;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .Contact__tableHeader {
    width: 100%;
    padding-right: 0;
    margin-bottom: 8px;
  }
}

.Contact__tableHeader label {
  letter-spacing: 0.5px;
  font-weight: 400;
}

.Contact__tableData {
  padding-bottom: 20px;
}

.Contact_table tr:last-of-type .Contact__tableData {
  padding-bottom: 0;
}

.Contact__tableData input {
  width: 100%;
  height: 44px;
  padding: 8px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.Contact_table textarea {
  display: block;
  resize: vertical;
  width: 100%;
  min-height: 119px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.Contact__tableData--error {
  color: #C21F1F;
}

@media screen and (orientation: portrait) and (max-width: 767px) {

  .Contact__tableHeader,
  .Contact__tableData {
    display: block;
  }
}

.Contact__tableHeader--optional {
  display: inline-block;
  font-size: 12px;
  line-height: 1;
  color: #fff;
  background-color: #969696;
  padding: 4px 3.5px;
  margin-left: 8px;
}

.Contact__buttonArea {
  display: flex;
  justify-content: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .form__button.form__button--input {
    max-width: 100%;
  }
}

/* 確認画面
---------------------------------------------- */
.ContactConfirm_form {
  max-width: 680px;
  margin: 60px auto 0;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactConfirm_form {
    max-width: 100%;
    margin: 32px 0 0;
    padding: 0;
  }
}

.ContactConfirm_table {
  width: 100%;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactConfirm_table {
    margin-bottom: 40px;
  }
}

.ContactConfirm_table tr {
  border-top: 1px solid #D6D6D6;
  border-left: 1px solid #D6D6D6;
  border-right: 1px solid #D6D6D6;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactConfirm_table tr {
    border: none;
    display: block;
    margin-bottom: 20px;
  }
}

.ContactConfirm_table tr:last-of-type {
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 0;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactConfirm_table tr:last-of-type {
    border: none;
  }
}

.ContactConfirm_table th,
.ContactConfirm_table td {
  line-height: 1.4;
}

.ContactConfirm_table th {
  padding-left: 12px;
  color: #969696;
  width: 225px;
  padding-right: 24px;
  vertical-align: middle;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactConfirm_table th {
    padding: 0 16px 0 0;
    width: 132px;
    vertical-align: top;
  }
}

.ContactConfirm_table td {
  padding: 12px 12px 12px 0;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactConfirm_table td {
    padding: 0;
  }
}

.ContactConfirm__buttonArea {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ContactConfirm__buttonArea form {
  width: 100%;
  text-align: center;
}

.form__button.form__button--confirm {
  margin-bottom: 24px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .form__button.form__button--confirm {
    max-width: 100%;
    margin-bottom: 32px;
  }
}

.ContactConfirm__buttonBack {
  color: #333;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  width: 100%;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactConfirm__buttonBack {
    text-align: left;
  }
}

.ContactConfirm__buttonBack:hover {
  opacity: 0.8;
}

/* 入力完了画面
---------------------------------------------- */
.ContactReception {
  display: flex;
  flex: 1;
  justify-items: center;
  align-content: center;
  padding-top: 84px;
  justify-content: center;
  align-items: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactReception {
    padding-top: 76px;
  }
}

.ContactReception__inner {
  max-width: 600px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactReception__inner {
    margin: 20px 0 60px;
    padding: 0 16px;
  }
}

.ContactReception__unit {
  background-color: #eee;
  margin-bottom: 60px;
  padding: 32px;
  text-align: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactReception__unit {
    margin-bottom: 20px;
    padding: 20px;
  }
}

.ContactReception__title {
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .ContactReception__title {
    font-size: 14px;
  }
}

.ContactReception__text {
  font-size: 16px;
  font-weight: 400;
}

.ContactReception__button {
  display: flex;
  justify-content: center;
}

/* ------------------------------------------------------------

よくある質問

------------------------------------------------------------ */
.faq {
  margin-top: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .faq {
    margin-top: 20px;
  }
}

.faq__title {
  text-align: center;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.5px;
  padding-bottom: 20px;
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .faq__title {
    text-align: left;
    font-size: 18px;
    padding: 0 16px;
    border-bottom: none;
    margin-bottom: 40px;
  }
}

.faq__inner {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .faq__inner {
    padding: 0 16px;
  }
}

.faq__item {
  margin-bottom: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .faq__item {
    margin-bottom: 32px;
  }
}

.faq__item.faq__item--active {
  padding-bottom: 12px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .faq__item.faq__item--active {
    padding-bottom: 8px;
  }
}

.faq__question {
  font-size: 18px;
  font-weight: bold;
  padding-bottom: 12px;
  border-bottom: 1px solid #ccc;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .faq__question {
    font-size: 14px;
    line-height: 1.4;
    padding-bottom: 0;
    border-bottom: none;
  }
}

.faq__item.faq__item--active .faq__question {
  margin-bottom: 12px;
}

.faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
}

.faq__answer p {
  line-height: 1.8;
  margin-bottom: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .faq__answer p {
    font-size: 14px;
    margin-bottom: 16px;
  }
}

.faq__answer p:last-of-type {
  margin-bottom: 0;
}

.faq__icon {
  width: 18px;
  height: 18px;
  transition: transform 0.3s ease;
  transform: rotate(180deg);
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .faq__icon {
    margin-left: 16px;
  }
}

.faq__item--active .faq__icon {
  transform: rotate(0deg);
}

/* ------------------------------------------------------------

プライバシーポリシー

------------------------------------------------------------ */
.privacy {
  margin-top: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .privacy {
    margin-top: 20px;
  }
}

.privacy__title {
  text-align: center;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.5px;
  padding-bottom: 20px;
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .privacy__title {
    text-align: left;
    font-size: 18px;
    padding: 0 16px;
    border-bottom: none;
    margin-bottom: 40px;
  }
}

.privacy__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .privacy__inner {
    padding: 0 16px;
  }
}

.privacy__item {
  margin-bottom: 32px;
}

.privacy__item h3 {
  margin-bottom: 12px;
  line-height: 1.4;
  font-weight: 700;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .privacy__item h3 {
    font-size: 14px;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .privacy__item p {
    font-size: 14px;
  }
}

.privacy__item ul li {
  position: relative;
  padding-left: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .privacy__item ul li {
    padding-left: 14px;
    font-size: 14px;
  }
}

.privacy__item ul li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .privacy__item ul li::before {
    font-size: 14px;
  }
}

.privacy__link {
  color: #333;
  text-decoration: underline;
  overflow-wrap: break-word;
}

.privacy__link:hover {
  opacity: 0.8;
}

.privacy__item--signature {
  text-align: right;
}

/* ------------------------------------------------------------

利用規約

------------------------------------------------------------ */
.agreement {
  margin-top: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .agreement {
    margin-top: 20px;
  }
}

.agreement__title {
  text-align: center;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.5px;
  padding-bottom: 20px;
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .agreement__title {
    text-align: left;
    font-size: 18px;
    padding: 0 16px;
    border-bottom: none;
    margin-bottom: 40px;
  }
}

.agreement__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .agreement__inner {
    padding: 0 16px;
  }
}

.agreement__item {
  margin-bottom: 32px;
}

.agreement__item h3 {
  margin-bottom: 12px;
  line-height: 1.4;
  font-weight: 700;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .agreement__item h3 {
    font-size: 14px;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .agreement__item p {
    font-size: 14px;
  }
}

.agreement__item ol {
  counter-reset: agreement-list;
}

.agreement__item ol>li {
  counter-increment: agreement-list;
  position: relative;
  padding-left: 20px;
}

.agreement__item ol>li::before {
  content: counter(agreement-list) ". ";
  position: absolute;
  left: 0;
}

.agreement__item ul>li {
  position: relative;
  padding-left: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .agreement__item ul>li {
    padding-left: 14px;
    font-size: 14px;
  }
}

.agreement__item ul>li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .agreement__item ul>li::before {
    font-size: 14px;
  }
}

/* ------------------------------------------------------------

利用規約

------------------------------------------------------------ */
.guide {
  margin-top: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .guide {
    margin-top: 20px;
  }
}

.guide__title {
  text-align: center;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.5px;
  padding-bottom: 20px;
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .guide__title {
    text-align: left;
    font-size: 18px;
    padding: 0 16px;
    border-bottom: none;
    margin-bottom: 40px;
  }
}

.guide__inner {
  width: 600px;
  margin: 0 auto;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .guide__inner {
    width: 100%;
    padding: 0 16px;
  }
}

.guide__border {
  border: 1px solid #D6D6D6;
}

.guide__item {
  position: relative;
  padding: 28px 20px;
  margin-bottom: 40px;
}

.guide__item:last-of-type {
  margin-bottom: 0;
}

.guide__item::before {
  content: "";
  position: absolute;
  bottom: -40px;
  left: 0;
  background: url(../img/ico_arrow06.svg) no-repeat 0 0 / cover;
  width: 100%;
  height: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .guide__item::before {
    background: url(../img/ico_arrow07.svg) no-repeat 0 0 / cover;
  }
}

.guide__item:last-of-type::before {
  display: none;
}

.guide__item h3 {
  text-align: center;
  margin-bottom: 12px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .guide__item h3 {
    font-size: 14px;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .guide__item p {
    font-size: 14px;
  }
}

.guide__step {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
}

.guide__step__text {
  font-size: 18px;
}

.guide__item ul>li {
  position: relative;
  padding-left: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .guide__item ul>li {
    padding-left: 14px;
    font-size: 14px;
  }

  .guide__step__text {
    font-size: 16px;
  }

}

.guide__item ul>li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .guide__item ul>li::before {
    font-size: 14px;
  }
}

/* ------------------------------------------------------------

特定商取引法に基づく表記

------------------------------------------------------------ */
#tradelawWrapper {
  flex: 1;
  align-content: center;
}

.tradelaw {
  margin-top: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .tradelaw {
    margin-top: 20px;
  }
}

.tradelaw__title {
  text-align: center;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.5px;
  padding-bottom: 20px;
  border-bottom: 1px solid #D6D6D6;
  margin-bottom: 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .tradelaw__title {
    text-align: left;
    font-size: 18px;
    padding: 0 16px;
    border-bottom: none;
    margin-bottom: 40px;
  }
}

.tradelaw__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .tradelaw__inner {
    padding: 0 16px;
  }
}

.tradelaw__item {
  margin-bottom: 32px;
}

.tradelaw__item:last-of-type {
  margin-bottom: 0;
}

.tradelaw__item p {
  font-size: 14px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .tradelaw__item p {
    font-size: 12px;
  }
}

.tradelaw__item ul>li {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .tradelaw__item ul>li {
    padding-left: 14px;
    font-size: 12px;
  }
}

.tradelaw__item ul>li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 16px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .tradelaw__item ul>li::before {
    font-size: 14px;
  }
}

.tradelaw__note {
    font-size: 14px;
    background-color: rgb(229 229 229);
    padding-top: 8px;
    padding-bottom: 8px;
    padding-left: 24px;
    padding-right: 24px;
}
@media screen and (orientation: portrait) and (max-width: 767px) {
    .tradelaw__note {
        font-size: 12px;
    }
}

/* ------------------------------------------------------------

Header

------------------------------------------------------------ */
.header {
  background-color: #FFF;
  padding: 20px 60px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 49;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header {
    padding: 20px 16px;
    background: #FFF;
    z-index: 2;
  }
}

.header__logo {
  width: 330px;
  flex: none;
  z-index: 99;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__logo {
    width: 108px;
  }
}

.header__logo a {
  display: block;
  font-size: 0;
}

.header__logo a img {
  width: 100%;
  height: auto;
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header__drawer-inner-inside {
  display: flex;
  align-items: center;
  gap: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__drawer-inner-inside {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
}

.header__search {
  position: relative;
  width: 280px;
  order: 1;
}

@media screen and (max-width: 1400px) {
  .header__search {
    width: 280px;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__search {
    width: 100%;
    order: 0;
    margin-bottom: 32px;
  }
}

.header__search>input {
  background: #fff;
  width: 100%;
  border: 1px solid #969696;
  border-radius: 4px;
  padding: 10.5px 45px 10.5px 10px;
  font-size: 16px;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  color: #333;
}

.header__search input::placeholder {
  color: #333;
}

.header__search-btn {
  position: absolute;
  top: 15px;
  right: 11px;
  font-size: 0;
}

.header__search-btn button {
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url(../img/ico_search01.svg) no-repeat 0 0/cover;
  width: 16px;
  height: 16px;
  padding: 0;
  cursor: pointer;
}

.header__search-btn button:hover {
  opacity: 0.8;
}

.header__btn {
  display: none;
  pointer-events: none;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__btn {
    display: block;
    pointer-events: all;
    width: 32px;
    height: 22px;
    z-index: 5;
    cursor: pointer;
    position: relative;
    margin-left: 16px;
  }
}

.header__btn span {
  background: #333;
  display: inline-block;
  width: 32px;
  height: 2px;
  position: absolute;
  left: 50%;
  margin-left: -15px;
  transition: all 0.3s;
}

.header__btn span:nth-of-type(1) {
  top: 0;
}

.header__btn span:nth-of-type(2) {
  top: 10px;
}

.header__btn span:nth-of-type(3) {
  bottom: 0;
}

#wrap-all.open .header__btn span:nth-of-type(1) {
  transform: rotate(35deg);
  top: 12px;
}

#wrap-all.open .header__btn span:nth-of-type(2) {
  transform: scaleX(0);
}

#wrap-all.open .header__btn span:nth-of-type(3) {
  transform: rotate(-35deg);
  top: 12px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__drawer {
    display: block;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 4;
    visibility: hidden;
    pointer-events: none;
    overflow: hidden;
  }
}

.size-767 .header__drawer {
  transition: visibility 0.5s;
}

#wrap-all .header__drawer {
  animation: fadeOutBg 0.7s forwards;
}

#wrap-all.open .header__drawer {
  visibility: visible;
  pointer-events: all;
  animation: fadeInBg 0.7s forwards;
}

@keyframes fadeInBg {
  0% {
    background-color: transparent;
  }

  100% {
    background-color: rgb(15 15 15 / 60%);
  }
}

@keyframes fadeOutBg {
  0% {
    background-color: rgb(15 15 15 / 60%);
  }

  100% {
    background-color: transparent;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__drawer-inner {
    overflow: hidden;
    overflow-y: scroll;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__drawer-inner::-webkit-scrollbar {
    display: none;
  }
}

.header__drawer-inner-inside {
  background: #FFF;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__drawer-inner-inside {
    width: 100%;
    min-height: 100%;
    margin-left: auto;
    padding: 88px 20px 40px;
    transform: translateY(-100%);
    transition: transform 0.5s;
    background: #FFF;
    position: relative;
    z-index: 2;
  }
}

#wrap-all.open .header__drawer-inner-inside {
  transform: translateY(0);
}

.header__drawer-inner-close {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}

#wrap-all.open .header__drawer-inner-close {
  opacity: 1;
  pointer-events: all;
}

.header__drawer #js-focus-trap {
  display: none;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__drawer #js-focus-trap {
    display: block;
  }
}

.header__drawer-nav>ul {
  position: relative;
  display: flex;
  gap: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .header__drawer-nav>ul {
    flex-direction: column;
    gap: 24px;
  }
}

.header__drawer-nav>ul>li>a {
  color: #333;
  font-size: 16px;
}

.header__drawer-nav>ul>li>form>button {
  color: #333;
  font-size: 16px;
  cursor: pointer;
}

@media screen and (min-width: 768px) and (max-width: 1180px) and (orientation: portrait) {
    .header__drawer-nav>ul {
        gap: 10px;
    }
    .header__drawer-nav>ul>li>a {
        font-size: 14px;
    }
    .header__drawer-nav>ul>li>form>button {
        font-size: 14px;
    }

    .header__search {
        width: 220px;
    }
}

/* ------------------------------------------------------------

Footer

------------------------------------------------------------ */
.footer {
  background: #969696;
  color: #FFF;
  position: relative;
}

.footer__inner {
  padding: 20px 60px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .footer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 16px 40px;
  }
}

.footer__logo {
  width: 289px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .footer__logo {
    width: 108px;
  }
}

.footer__logo a {
  display: block;
  font-size: 0;
}

.footer__logo a img {
  width: 100%;
  height: auto;
}

.footer__nav {
  margin: 48px 0;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .footer__nav {
    margin: 40px 0;
  }
}

.footer__nav ul {
  display: flex;
  gap: 40px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .footer__nav ul {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
}

.footer__nav ul li {
  line-height: 1;
}

.footer__nav ul li a {
  color: #FFF;
  letter-spacing: 0.5px;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .footer__nav ul li a {
    font-size: 14px;
  }
}

.footer__nav ul li a:hover {
  opacity: 0.8;
}

.footer__small {
  position: relative;
  padding-left: 18px;
  font-size: 14px;
  letter-spacing: 0.5px;
  line-height: 1;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .footer__small {
    font-size: 12px;
  }
}

.copy__symbol {
  position: absolute;
  top: -5px;
  left: 0;
  font-size: 23px;
}

/* ------------------------------------------------------------

メッセージポップアップ（トップページ）

------------------------------------------------------------ */
.slide__Container {
  position: fixed;
  bottom: 0;
  right: 60px;
  max-width: 460px;
  background-color: #fff;
  border-radius: 20px 0 0 0;
  box-shadow: 0px -2px 10px rgba(0, 0, 0, 0.2);
  z-index: 1000;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .slide__Container {
    right: 0;
    max-width: 100%;
  }
}

.toggle-btn {
  position: absolute;
  top: -40px;
  right: 0;
  padding: 10px 16px;
  background-color: #fff;
  border-radius: 20px 20px 0 0;
  cursor: pointer;
  font-size: 14px;
  box-shadow: 0px -10px 10px -8px rgba(0, 0, 0, 0.1);
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .toggle-btn {
    width: 100%;
    text-align: right;
    border-radius: 10px 10px 0 0;
    color: #333;
  }
}

.slide__Container-inner {
  overflow: hidden;
  height: 0;
  transition: height 0.5s ease;
}

.slideContainer__mainContent {
  padding: 20px;
}

.slideContainer__mainContent p {
  font-size: 14px;
}

@media (max-height: 670px) {
  .slideContainer__mainContent p {
    font-size: 12px;
  }
}

@media (max-height: 560px) {
  .slideContainer__mainContent p {
    font-size: 10px;
  }
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .slideContainer__mainContent {
    padding: 0;
  }
}

.slide__Container-inner figure {
  margin-bottom: 20px;
}

.slide__Container-inner img {
  width: 100%;
  object-fit: cover;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  .slide__Container-inner p {
    padding: 0 16px 20px 16px;
  }
}

.arrow {
  width: 18px;
  height: 18px;
  transition: transform 0.5s ease-in-out;
}

.toggle-btn.active .arrow {
  transform: rotate(180deg);
}

/* ------------------------------------------------------------

ページトップボタン

------------------------------------------------------------ */
#Single__PageTop {
  position: fixed;
  bottom: 100px;
  right: 100px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  display: none;
  z-index: 99;
}

@media screen and (orientation: portrait) and (max-width: 767px) {
  #Single__PageTop {
    position: fixed;
    bottom: 40px;
    right: 16px;
  }
}

#Single__PageTop img {
  width: 100%;
  height: auto;
}

#Single__PageTop:hover {
  opacity: 0.8;
}

input::placeholder,
textarea::placeholder {
  color: #D6D6D6 !important;
}
