@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Infant:ital,wght@0,300..700;1,300..700&family=Cormorant:ital,wght@0,300..700;1,300..700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap");
/* -------------------------------------------------------
reset
------------------------------------------------------- */
/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
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 {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  font: inherit;
  font-size: 100%;
}

article,
aside,
details,
figcaption,
figure,
main,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

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

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

img {
  vertical-align: bottom;
  max-width: 100%;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

select {
  outline: none;
  border: none;
}

a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
a:hover {
  opacity: 0.7;
}

.anim {
  opacity: 0;
}

.anim.is-show {
  /*
  opacity: 1;
  transform: translateY(0);
  */
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeUpAnime {
  0% {
    opacity: 0;
    transform: translateY(60px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
button {
  border: none;
  background: none;
  cursor: pointer;
  transition: 0.3s;
}

html,
body {
  font-size: 62.5%;
  letter-spacing: 0.03em;
}

body {
  width: 100%;
  font-size: 14px;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  color: #1C2227;
  position: relative;
}

.preload * {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -ms-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}

a {
  transition: 0.3s;
}

img {
  width: 100%;
  object-fit: contain;
}

#free_area img {
  height: fit-content;
  margin-top: 8px;
}
#free_area img:first-child {
  margin-top: 0;
}
#free_area strong {
  font-weight: 700;
}

/*--------------------------------------------------------------------------
余白, フォントサイズ
---------------------------------------------------------------------------*/
.mlr-auto {
  margin-inline: auto !important;
}

/* マージン関連クラス */
.m-0 {
  margin: 0px !important;
}

.mt-0 {
  margin-top: 0px !important;
}

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

.mtb-0 {
  margin-block: 0px !important;
}

.ml-0 {
  margin-left: 0px !important;
}

.mr-0 {
  margin-right: 0px !important;
}

.mlr-0 {
  margin-inline: 0px !important;
}

@media screen and (min-width: 768px) {
  .m-0-pc {
    margin: 0px !important;
  }
  .mt-0-pc {
    margin-top: 0px !important;
  }
  .mb-0-pc {
    margin-bottom: 0px !important;
  }
  .mtb-0-pc {
    margin-block: 0px !important;
  }
  .ml-0-pc {
    margin-left: 0px !important;
  }
  .mr-0-pc {
    margin-right: 0px !important;
  }
  .mlr-0-pc {
    margin-inline: 0px !important;
  }
}
/* パディング関連クラス */
.p-0 {
  padding: 0px !important;
}

.pt-0 {
  padding-top: 0px !important;
}

.pb-0 {
  padding-bottom: 0px !important;
}

.ptb-0 {
  padding-block: 0px !important;
}

.pl-0 {
  padding-left: 0px !important;
}

.pr-0 {
  padding-right: 0px !important;
}

.plr-0 {
  padding-inline: 0px !important;
}

@media screen and (min-width: 768px) {
  .p-0-pc {
    padding: 0px !important;
  }
  .pt-0-pc {
    padding-top: 0px !important;
  }
  .pb-0-pc {
    padding-bottom: 0px !important;
  }
  .ptb-0-pc {
    padding-block: 0px !important;
  }
  .pl-0-pc {
    padding-left: 0px !important;
  }
  .pr-0-pc {
    padding-right: 0px !important;
  }
  .plr-0-pc {
    padding-inline: 0px !important;
  }
}
.fs-0 {
  font-size: 0px !important;
}

@media screen and (max-width: 340px) {
  .fs-0-xs {
    font-size: 0px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-0-pc {
    font-size: 0px !important;
  }
}
.gap-size {
  gap: 0px !important;
}

.row-gap-size {
  gap: 0px !important;
}

.column-gap-size {
  gap: 0px !important;
}

/* マージン関連クラス */
.m-2 {
  margin: 2px !important;
}

.mt-2 {
  margin-top: 2px !important;
}

.mb-2 {
  margin-bottom: 2px !important;
}

.mtb-2 {
  margin-block: 2px !important;
}

.ml-2 {
  margin-left: 2px !important;
}

.mr-2 {
  margin-right: 2px !important;
}

.mlr-2 {
  margin-inline: 2px !important;
}

@media screen and (min-width: 768px) {
  .m-2-pc {
    margin: 2px !important;
  }
  .mt-2-pc {
    margin-top: 2px !important;
  }
  .mb-2-pc {
    margin-bottom: 2px !important;
  }
  .mtb-2-pc {
    margin-block: 2px !important;
  }
  .ml-2-pc {
    margin-left: 2px !important;
  }
  .mr-2-pc {
    margin-right: 2px !important;
  }
  .mlr-2-pc {
    margin-inline: 2px !important;
  }
}
/* パディング関連クラス */
.p-2 {
  padding: 2px !important;
}

.pt-2 {
  padding-top: 2px !important;
}

.pb-2 {
  padding-bottom: 2px !important;
}

.ptb-2 {
  padding-block: 2px !important;
}

.pl-2 {
  padding-left: 2px !important;
}

.pr-2 {
  padding-right: 2px !important;
}

.plr-2 {
  padding-inline: 2px !important;
}

@media screen and (min-width: 768px) {
  .p-2-pc {
    padding: 2px !important;
  }
  .pt-2-pc {
    padding-top: 2px !important;
  }
  .pb-2-pc {
    padding-bottom: 2px !important;
  }
  .ptb-2-pc {
    padding-block: 2px !important;
  }
  .pl-2-pc {
    padding-left: 2px !important;
  }
  .pr-2-pc {
    padding-right: 2px !important;
  }
  .plr-2-pc {
    padding-inline: 2px !important;
  }
}
.fs-2 {
  font-size: 2px !important;
}

@media screen and (max-width: 340px) {
  .fs-2-xs {
    font-size: 1.9px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-2-pc {
    font-size: 2px !important;
  }
}
.gap-size {
  gap: 2px !important;
}

.row-gap-size {
  gap: 2px !important;
}

.column-gap-size {
  gap: 2px !important;
}

/* マージン関連クラス */
.m-4 {
  margin: 4px !important;
}

.mt-4 {
  margin-top: 4px !important;
}

.mb-4 {
  margin-bottom: 4px !important;
}

.mtb-4 {
  margin-block: 4px !important;
}

.ml-4 {
  margin-left: 4px !important;
}

.mr-4 {
  margin-right: 4px !important;
}

.mlr-4 {
  margin-inline: 4px !important;
}

@media screen and (min-width: 768px) {
  .m-4-pc {
    margin: 4px !important;
  }
  .mt-4-pc {
    margin-top: 4px !important;
  }
  .mb-4-pc {
    margin-bottom: 4px !important;
  }
  .mtb-4-pc {
    margin-block: 4px !important;
  }
  .ml-4-pc {
    margin-left: 4px !important;
  }
  .mr-4-pc {
    margin-right: 4px !important;
  }
  .mlr-4-pc {
    margin-inline: 4px !important;
  }
}
/* パディング関連クラス */
.p-4 {
  padding: 4px !important;
}

.pt-4 {
  padding-top: 4px !important;
}

.pb-4 {
  padding-bottom: 4px !important;
}

.ptb-4 {
  padding-block: 4px !important;
}

.pl-4 {
  padding-left: 4px !important;
}

.pr-4 {
  padding-right: 4px !important;
}

.plr-4 {
  padding-inline: 4px !important;
}

@media screen and (min-width: 768px) {
  .p-4-pc {
    padding: 4px !important;
  }
  .pt-4-pc {
    padding-top: 4px !important;
  }
  .pb-4-pc {
    padding-bottom: 4px !important;
  }
  .ptb-4-pc {
    padding-block: 4px !important;
  }
  .pl-4-pc {
    padding-left: 4px !important;
  }
  .pr-4-pc {
    padding-right: 4px !important;
  }
  .plr-4-pc {
    padding-inline: 4px !important;
  }
}
.fs-4 {
  font-size: 4px !important;
}

@media screen and (max-width: 340px) {
  .fs-4-xs {
    font-size: 3.8px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-4-pc {
    font-size: 4px !important;
  }
}
.gap-size {
  gap: 4px !important;
}

.row-gap-size {
  gap: 4px !important;
}

.column-gap-size {
  gap: 4px !important;
}

/* マージン関連クラス */
.m-6 {
  margin: 6px !important;
}

.mt-6 {
  margin-top: 6px !important;
}

.mb-6 {
  margin-bottom: 6px !important;
}

.mtb-6 {
  margin-block: 6px !important;
}

.ml-6 {
  margin-left: 6px !important;
}

.mr-6 {
  margin-right: 6px !important;
}

.mlr-6 {
  margin-inline: 6px !important;
}

@media screen and (min-width: 768px) {
  .m-6-pc {
    margin: 6px !important;
  }
  .mt-6-pc {
    margin-top: 6px !important;
  }
  .mb-6-pc {
    margin-bottom: 6px !important;
  }
  .mtb-6-pc {
    margin-block: 6px !important;
  }
  .ml-6-pc {
    margin-left: 6px !important;
  }
  .mr-6-pc {
    margin-right: 6px !important;
  }
  .mlr-6-pc {
    margin-inline: 6px !important;
  }
}
/* パディング関連クラス */
.p-6 {
  padding: 6px !important;
}

.pt-6 {
  padding-top: 6px !important;
}

.pb-6 {
  padding-bottom: 6px !important;
}

.ptb-6 {
  padding-block: 6px !important;
}

.pl-6 {
  padding-left: 6px !important;
}

.pr-6 {
  padding-right: 6px !important;
}

.plr-6 {
  padding-inline: 6px !important;
}

@media screen and (min-width: 768px) {
  .p-6-pc {
    padding: 6px !important;
  }
  .pt-6-pc {
    padding-top: 6px !important;
  }
  .pb-6-pc {
    padding-bottom: 6px !important;
  }
  .ptb-6-pc {
    padding-block: 6px !important;
  }
  .pl-6-pc {
    padding-left: 6px !important;
  }
  .pr-6-pc {
    padding-right: 6px !important;
  }
  .plr-6-pc {
    padding-inline: 6px !important;
  }
}
.fs-6 {
  font-size: 6px !important;
}

@media screen and (max-width: 340px) {
  .fs-6-xs {
    font-size: 5.7px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-6-pc {
    font-size: 6px !important;
  }
}
.gap-size {
  gap: 6px !important;
}

.row-gap-size {
  gap: 6px !important;
}

.column-gap-size {
  gap: 6px !important;
}

/* マージン関連クラス */
.m-8 {
  margin: 8px !important;
}

.mt-8 {
  margin-top: 8px !important;
}

.mb-8 {
  margin-bottom: 8px !important;
}

.mtb-8 {
  margin-block: 8px !important;
}

.ml-8 {
  margin-left: 8px !important;
}

.mr-8 {
  margin-right: 8px !important;
}

.mlr-8 {
  margin-inline: 8px !important;
}

@media screen and (min-width: 768px) {
  .m-8-pc {
    margin: 8px !important;
  }
  .mt-8-pc {
    margin-top: 8px !important;
  }
  .mb-8-pc {
    margin-bottom: 8px !important;
  }
  .mtb-8-pc {
    margin-block: 8px !important;
  }
  .ml-8-pc {
    margin-left: 8px !important;
  }
  .mr-8-pc {
    margin-right: 8px !important;
  }
  .mlr-8-pc {
    margin-inline: 8px !important;
  }
}
/* パディング関連クラス */
.p-8 {
  padding: 8px !important;
}

.pt-8 {
  padding-top: 8px !important;
}

.pb-8 {
  padding-bottom: 8px !important;
}

.ptb-8 {
  padding-block: 8px !important;
}

.pl-8 {
  padding-left: 8px !important;
}

.pr-8 {
  padding-right: 8px !important;
}

.plr-8 {
  padding-inline: 8px !important;
}

@media screen and (min-width: 768px) {
  .p-8-pc {
    padding: 8px !important;
  }
  .pt-8-pc {
    padding-top: 8px !important;
  }
  .pb-8-pc {
    padding-bottom: 8px !important;
  }
  .ptb-8-pc {
    padding-block: 8px !important;
  }
  .pl-8-pc {
    padding-left: 8px !important;
  }
  .pr-8-pc {
    padding-right: 8px !important;
  }
  .plr-8-pc {
    padding-inline: 8px !important;
  }
}
.fs-8 {
  font-size: 8px !important;
}

@media screen and (max-width: 340px) {
  .fs-8-xs {
    font-size: 7.6px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-8-pc {
    font-size: 8px !important;
  }
}
.gap-size {
  gap: 8px !important;
}

.row-gap-size {
  gap: 8px !important;
}

.column-gap-size {
  gap: 8px !important;
}

/* マージン関連クラス */
.m-10 {
  margin: 10px !important;
}

.mt-10 {
  margin-top: 10px !important;
}

.mb-10 {
  margin-bottom: 10px !important;
}

.mtb-10 {
  margin-block: 10px !important;
}

.ml-10 {
  margin-left: 10px !important;
}

.mr-10 {
  margin-right: 10px !important;
}

.mlr-10 {
  margin-inline: 10px !important;
}

@media screen and (min-width: 768px) {
  .m-10-pc {
    margin: 10px !important;
  }
  .mt-10-pc {
    margin-top: 10px !important;
  }
  .mb-10-pc {
    margin-bottom: 10px !important;
  }
  .mtb-10-pc {
    margin-block: 10px !important;
  }
  .ml-10-pc {
    margin-left: 10px !important;
  }
  .mr-10-pc {
    margin-right: 10px !important;
  }
  .mlr-10-pc {
    margin-inline: 10px !important;
  }
}
/* パディング関連クラス */
.p-10 {
  padding: 10px !important;
}

.pt-10 {
  padding-top: 10px !important;
}

.pb-10 {
  padding-bottom: 10px !important;
}

.ptb-10 {
  padding-block: 10px !important;
}

.pl-10 {
  padding-left: 10px !important;
}

.pr-10 {
  padding-right: 10px !important;
}

.plr-10 {
  padding-inline: 10px !important;
}

@media screen and (min-width: 768px) {
  .p-10-pc {
    padding: 10px !important;
  }
  .pt-10-pc {
    padding-top: 10px !important;
  }
  .pb-10-pc {
    padding-bottom: 10px !important;
  }
  .ptb-10-pc {
    padding-block: 10px !important;
  }
  .pl-10-pc {
    padding-left: 10px !important;
  }
  .pr-10-pc {
    padding-right: 10px !important;
  }
  .plr-10-pc {
    padding-inline: 10px !important;
  }
}
.fs-10 {
  font-size: 10px !important;
}

@media screen and (max-width: 340px) {
  .fs-10-xs {
    font-size: 9.5px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-10-pc {
    font-size: 10px !important;
  }
}
.gap-size {
  gap: 10px !important;
}

.row-gap-size {
  gap: 10px !important;
}

.column-gap-size {
  gap: 10px !important;
}

/* マージン関連クラス */
.m-11 {
  margin: 11px !important;
}

.mt-11 {
  margin-top: 11px !important;
}

.mb-11 {
  margin-bottom: 11px !important;
}

.mtb-11 {
  margin-block: 11px !important;
}

.ml-11 {
  margin-left: 11px !important;
}

.mr-11 {
  margin-right: 11px !important;
}

.mlr-11 {
  margin-inline: 11px !important;
}

@media screen and (min-width: 768px) {
  .m-11-pc {
    margin: 11px !important;
  }
  .mt-11-pc {
    margin-top: 11px !important;
  }
  .mb-11-pc {
    margin-bottom: 11px !important;
  }
  .mtb-11-pc {
    margin-block: 11px !important;
  }
  .ml-11-pc {
    margin-left: 11px !important;
  }
  .mr-11-pc {
    margin-right: 11px !important;
  }
  .mlr-11-pc {
    margin-inline: 11px !important;
  }
}
/* パディング関連クラス */
.p-11 {
  padding: 11px !important;
}

.pt-11 {
  padding-top: 11px !important;
}

.pb-11 {
  padding-bottom: 11px !important;
}

.ptb-11 {
  padding-block: 11px !important;
}

.pl-11 {
  padding-left: 11px !important;
}

.pr-11 {
  padding-right: 11px !important;
}

.plr-11 {
  padding-inline: 11px !important;
}

@media screen and (min-width: 768px) {
  .p-11-pc {
    padding: 11px !important;
  }
  .pt-11-pc {
    padding-top: 11px !important;
  }
  .pb-11-pc {
    padding-bottom: 11px !important;
  }
  .ptb-11-pc {
    padding-block: 11px !important;
  }
  .pl-11-pc {
    padding-left: 11px !important;
  }
  .pr-11-pc {
    padding-right: 11px !important;
  }
  .plr-11-pc {
    padding-inline: 11px !important;
  }
}
.fs-11 {
  font-size: 11px !important;
}

@media screen and (max-width: 340px) {
  .fs-11-xs {
    font-size: 10.45px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-11-pc {
    font-size: 11px !important;
  }
}
.gap-size {
  gap: 11px !important;
}

.row-gap-size {
  gap: 11px !important;
}

.column-gap-size {
  gap: 11px !important;
}

/* マージン関連クラス */
.m-12 {
  margin: 12px !important;
}

.mt-12 {
  margin-top: 12px !important;
}

.mb-12 {
  margin-bottom: 12px !important;
}

.mtb-12 {
  margin-block: 12px !important;
}

.ml-12 {
  margin-left: 12px !important;
}

.mr-12 {
  margin-right: 12px !important;
}

.mlr-12 {
  margin-inline: 12px !important;
}

@media screen and (min-width: 768px) {
  .m-12-pc {
    margin: 12px !important;
  }
  .mt-12-pc {
    margin-top: 12px !important;
  }
  .mb-12-pc {
    margin-bottom: 12px !important;
  }
  .mtb-12-pc {
    margin-block: 12px !important;
  }
  .ml-12-pc {
    margin-left: 12px !important;
  }
  .mr-12-pc {
    margin-right: 12px !important;
  }
  .mlr-12-pc {
    margin-inline: 12px !important;
  }
}
/* パディング関連クラス */
.p-12 {
  padding: 12px !important;
}

.pt-12 {
  padding-top: 12px !important;
}

.pb-12 {
  padding-bottom: 12px !important;
}

.ptb-12 {
  padding-block: 12px !important;
}

.pl-12 {
  padding-left: 12px !important;
}

.pr-12 {
  padding-right: 12px !important;
}

.plr-12 {
  padding-inline: 12px !important;
}

@media screen and (min-width: 768px) {
  .p-12-pc {
    padding: 12px !important;
  }
  .pt-12-pc {
    padding-top: 12px !important;
  }
  .pb-12-pc {
    padding-bottom: 12px !important;
  }
  .ptb-12-pc {
    padding-block: 12px !important;
  }
  .pl-12-pc {
    padding-left: 12px !important;
  }
  .pr-12-pc {
    padding-right: 12px !important;
  }
  .plr-12-pc {
    padding-inline: 12px !important;
  }
}
.fs-12 {
  font-size: 12px !important;
}

@media screen and (max-width: 340px) {
  .fs-12-xs {
    font-size: 11.4px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-12-pc {
    font-size: 12px !important;
  }
}
.gap-size {
  gap: 12px !important;
}

.row-gap-size {
  gap: 12px !important;
}

.column-gap-size {
  gap: 12px !important;
}

/* マージン関連クラス */
.m-13 {
  margin: 13px !important;
}

.mt-13 {
  margin-top: 13px !important;
}

.mb-13 {
  margin-bottom: 13px !important;
}

.mtb-13 {
  margin-block: 13px !important;
}

.ml-13 {
  margin-left: 13px !important;
}

.mr-13 {
  margin-right: 13px !important;
}

.mlr-13 {
  margin-inline: 13px !important;
}

@media screen and (min-width: 768px) {
  .m-13-pc {
    margin: 13px !important;
  }
  .mt-13-pc {
    margin-top: 13px !important;
  }
  .mb-13-pc {
    margin-bottom: 13px !important;
  }
  .mtb-13-pc {
    margin-block: 13px !important;
  }
  .ml-13-pc {
    margin-left: 13px !important;
  }
  .mr-13-pc {
    margin-right: 13px !important;
  }
  .mlr-13-pc {
    margin-inline: 13px !important;
  }
}
/* パディング関連クラス */
.p-13 {
  padding: 13px !important;
}

.pt-13 {
  padding-top: 13px !important;
}

.pb-13 {
  padding-bottom: 13px !important;
}

.ptb-13 {
  padding-block: 13px !important;
}

.pl-13 {
  padding-left: 13px !important;
}

.pr-13 {
  padding-right: 13px !important;
}

.plr-13 {
  padding-inline: 13px !important;
}

@media screen and (min-width: 768px) {
  .p-13-pc {
    padding: 13px !important;
  }
  .pt-13-pc {
    padding-top: 13px !important;
  }
  .pb-13-pc {
    padding-bottom: 13px !important;
  }
  .ptb-13-pc {
    padding-block: 13px !important;
  }
  .pl-13-pc {
    padding-left: 13px !important;
  }
  .pr-13-pc {
    padding-right: 13px !important;
  }
  .plr-13-pc {
    padding-inline: 13px !important;
  }
}
.fs-13 {
  font-size: 13px !important;
}

@media screen and (max-width: 340px) {
  .fs-13-xs {
    font-size: 12.35px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-13-pc {
    font-size: 13px !important;
  }
}
.gap-size {
  gap: 13px !important;
}

.row-gap-size {
  gap: 13px !important;
}

.column-gap-size {
  gap: 13px !important;
}

/* マージン関連クラス */
.m-14 {
  margin: 14px !important;
}

.mt-14 {
  margin-top: 14px !important;
}

.mb-14 {
  margin-bottom: 14px !important;
}

.mtb-14 {
  margin-block: 14px !important;
}

.ml-14 {
  margin-left: 14px !important;
}

.mr-14 {
  margin-right: 14px !important;
}

.mlr-14 {
  margin-inline: 14px !important;
}

@media screen and (min-width: 768px) {
  .m-14-pc {
    margin: 14px !important;
  }
  .mt-14-pc {
    margin-top: 14px !important;
  }
  .mb-14-pc {
    margin-bottom: 14px !important;
  }
  .mtb-14-pc {
    margin-block: 14px !important;
  }
  .ml-14-pc {
    margin-left: 14px !important;
  }
  .mr-14-pc {
    margin-right: 14px !important;
  }
  .mlr-14-pc {
    margin-inline: 14px !important;
  }
}
/* パディング関連クラス */
.p-14 {
  padding: 14px !important;
}

.pt-14 {
  padding-top: 14px !important;
}

.pb-14 {
  padding-bottom: 14px !important;
}

.ptb-14 {
  padding-block: 14px !important;
}

.pl-14 {
  padding-left: 14px !important;
}

.pr-14 {
  padding-right: 14px !important;
}

.plr-14 {
  padding-inline: 14px !important;
}

@media screen and (min-width: 768px) {
  .p-14-pc {
    padding: 14px !important;
  }
  .pt-14-pc {
    padding-top: 14px !important;
  }
  .pb-14-pc {
    padding-bottom: 14px !important;
  }
  .ptb-14-pc {
    padding-block: 14px !important;
  }
  .pl-14-pc {
    padding-left: 14px !important;
  }
  .pr-14-pc {
    padding-right: 14px !important;
  }
  .plr-14-pc {
    padding-inline: 14px !important;
  }
}
.fs-14 {
  font-size: 14px !important;
}

@media screen and (max-width: 340px) {
  .fs-14-xs {
    font-size: 13.3px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-14-pc {
    font-size: 14px !important;
  }
}
.gap-size {
  gap: 14px !important;
}

.row-gap-size {
  gap: 14px !important;
}

.column-gap-size {
  gap: 14px !important;
}

/* マージン関連クラス */
.m-15 {
  margin: 15px !important;
}

.mt-15 {
  margin-top: 15px !important;
}

.mb-15 {
  margin-bottom: 15px !important;
}

.mtb-15 {
  margin-block: 15px !important;
}

.ml-15 {
  margin-left: 15px !important;
}

.mr-15 {
  margin-right: 15px !important;
}

.mlr-15 {
  margin-inline: 15px !important;
}

@media screen and (min-width: 768px) {
  .m-15-pc {
    margin: 15px !important;
  }
  .mt-15-pc {
    margin-top: 15px !important;
  }
  .mb-15-pc {
    margin-bottom: 15px !important;
  }
  .mtb-15-pc {
    margin-block: 15px !important;
  }
  .ml-15-pc {
    margin-left: 15px !important;
  }
  .mr-15-pc {
    margin-right: 15px !important;
  }
  .mlr-15-pc {
    margin-inline: 15px !important;
  }
}
/* パディング関連クラス */
.p-15 {
  padding: 15px !important;
}

.pt-15 {
  padding-top: 15px !important;
}

.pb-15 {
  padding-bottom: 15px !important;
}

.ptb-15 {
  padding-block: 15px !important;
}

.pl-15 {
  padding-left: 15px !important;
}

.pr-15 {
  padding-right: 15px !important;
}

.plr-15 {
  padding-inline: 15px !important;
}

@media screen and (min-width: 768px) {
  .p-15-pc {
    padding: 15px !important;
  }
  .pt-15-pc {
    padding-top: 15px !important;
  }
  .pb-15-pc {
    padding-bottom: 15px !important;
  }
  .ptb-15-pc {
    padding-block: 15px !important;
  }
  .pl-15-pc {
    padding-left: 15px !important;
  }
  .pr-15-pc {
    padding-right: 15px !important;
  }
  .plr-15-pc {
    padding-inline: 15px !important;
  }
}
.fs-15 {
  font-size: 15px !important;
}

@media screen and (max-width: 340px) {
  .fs-15-xs {
    font-size: 14.25px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-15-pc {
    font-size: 15px !important;
  }
}
.gap-size {
  gap: 15px !important;
}

.row-gap-size {
  gap: 15px !important;
}

.column-gap-size {
  gap: 15px !important;
}

/* マージン関連クラス */
.m-16 {
  margin: 16px !important;
}

.mt-16 {
  margin-top: 16px !important;
}

.mb-16 {
  margin-bottom: 16px !important;
}

.mtb-16 {
  margin-block: 16px !important;
}

.ml-16 {
  margin-left: 16px !important;
}

.mr-16 {
  margin-right: 16px !important;
}

.mlr-16 {
  margin-inline: 16px !important;
}

@media screen and (min-width: 768px) {
  .m-16-pc {
    margin: 16px !important;
  }
  .mt-16-pc {
    margin-top: 16px !important;
  }
  .mb-16-pc {
    margin-bottom: 16px !important;
  }
  .mtb-16-pc {
    margin-block: 16px !important;
  }
  .ml-16-pc {
    margin-left: 16px !important;
  }
  .mr-16-pc {
    margin-right: 16px !important;
  }
  .mlr-16-pc {
    margin-inline: 16px !important;
  }
}
/* パディング関連クラス */
.p-16 {
  padding: 16px !important;
}

.pt-16 {
  padding-top: 16px !important;
}

.pb-16 {
  padding-bottom: 16px !important;
}

.ptb-16 {
  padding-block: 16px !important;
}

.pl-16 {
  padding-left: 16px !important;
}

.pr-16 {
  padding-right: 16px !important;
}

.plr-16 {
  padding-inline: 16px !important;
}

@media screen and (min-width: 768px) {
  .p-16-pc {
    padding: 16px !important;
  }
  .pt-16-pc {
    padding-top: 16px !important;
  }
  .pb-16-pc {
    padding-bottom: 16px !important;
  }
  .ptb-16-pc {
    padding-block: 16px !important;
  }
  .pl-16-pc {
    padding-left: 16px !important;
  }
  .pr-16-pc {
    padding-right: 16px !important;
  }
  .plr-16-pc {
    padding-inline: 16px !important;
  }
}
.fs-16 {
  font-size: 16px !important;
}

@media screen and (max-width: 340px) {
  .fs-16-xs {
    font-size: 15.2px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-16-pc {
    font-size: 16px !important;
  }
}
.gap-size {
  gap: 16px !important;
}

.row-gap-size {
  gap: 16px !important;
}

.column-gap-size {
  gap: 16px !important;
}

/* マージン関連クラス */
.m-17 {
  margin: 17px !important;
}

.mt-17 {
  margin-top: 17px !important;
}

.mb-17 {
  margin-bottom: 17px !important;
}

.mtb-17 {
  margin-block: 17px !important;
}

.ml-17 {
  margin-left: 17px !important;
}

.mr-17 {
  margin-right: 17px !important;
}

.mlr-17 {
  margin-inline: 17px !important;
}

@media screen and (min-width: 768px) {
  .m-17-pc {
    margin: 17px !important;
  }
  .mt-17-pc {
    margin-top: 17px !important;
  }
  .mb-17-pc {
    margin-bottom: 17px !important;
  }
  .mtb-17-pc {
    margin-block: 17px !important;
  }
  .ml-17-pc {
    margin-left: 17px !important;
  }
  .mr-17-pc {
    margin-right: 17px !important;
  }
  .mlr-17-pc {
    margin-inline: 17px !important;
  }
}
/* パディング関連クラス */
.p-17 {
  padding: 17px !important;
}

.pt-17 {
  padding-top: 17px !important;
}

.pb-17 {
  padding-bottom: 17px !important;
}

.ptb-17 {
  padding-block: 17px !important;
}

.pl-17 {
  padding-left: 17px !important;
}

.pr-17 {
  padding-right: 17px !important;
}

.plr-17 {
  padding-inline: 17px !important;
}

@media screen and (min-width: 768px) {
  .p-17-pc {
    padding: 17px !important;
  }
  .pt-17-pc {
    padding-top: 17px !important;
  }
  .pb-17-pc {
    padding-bottom: 17px !important;
  }
  .ptb-17-pc {
    padding-block: 17px !important;
  }
  .pl-17-pc {
    padding-left: 17px !important;
  }
  .pr-17-pc {
    padding-right: 17px !important;
  }
  .plr-17-pc {
    padding-inline: 17px !important;
  }
}
.fs-17 {
  font-size: 17px !important;
}

@media screen and (max-width: 340px) {
  .fs-17-xs {
    font-size: 16.15px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-17-pc {
    font-size: 17px !important;
  }
}
.gap-size {
  gap: 17px !important;
}

.row-gap-size {
  gap: 17px !important;
}

.column-gap-size {
  gap: 17px !important;
}

/* マージン関連クラス */
.m-18 {
  margin: 18px !important;
}

.mt-18 {
  margin-top: 18px !important;
}

.mb-18 {
  margin-bottom: 18px !important;
}

.mtb-18 {
  margin-block: 18px !important;
}

.ml-18 {
  margin-left: 18px !important;
}

.mr-18 {
  margin-right: 18px !important;
}

.mlr-18 {
  margin-inline: 18px !important;
}

@media screen and (min-width: 768px) {
  .m-18-pc {
    margin: 18px !important;
  }
  .mt-18-pc {
    margin-top: 18px !important;
  }
  .mb-18-pc {
    margin-bottom: 18px !important;
  }
  .mtb-18-pc {
    margin-block: 18px !important;
  }
  .ml-18-pc {
    margin-left: 18px !important;
  }
  .mr-18-pc {
    margin-right: 18px !important;
  }
  .mlr-18-pc {
    margin-inline: 18px !important;
  }
}
/* パディング関連クラス */
.p-18 {
  padding: 18px !important;
}

.pt-18 {
  padding-top: 18px !important;
}

.pb-18 {
  padding-bottom: 18px !important;
}

.ptb-18 {
  padding-block: 18px !important;
}

.pl-18 {
  padding-left: 18px !important;
}

.pr-18 {
  padding-right: 18px !important;
}

.plr-18 {
  padding-inline: 18px !important;
}

@media screen and (min-width: 768px) {
  .p-18-pc {
    padding: 18px !important;
  }
  .pt-18-pc {
    padding-top: 18px !important;
  }
  .pb-18-pc {
    padding-bottom: 18px !important;
  }
  .ptb-18-pc {
    padding-block: 18px !important;
  }
  .pl-18-pc {
    padding-left: 18px !important;
  }
  .pr-18-pc {
    padding-right: 18px !important;
  }
  .plr-18-pc {
    padding-inline: 18px !important;
  }
}
.fs-18 {
  font-size: 18px !important;
}

@media screen and (max-width: 340px) {
  .fs-18-xs {
    font-size: 17.1px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-18-pc {
    font-size: 18px !important;
  }
}
.gap-size {
  gap: 18px !important;
}

.row-gap-size {
  gap: 18px !important;
}

.column-gap-size {
  gap: 18px !important;
}

/* マージン関連クラス */
.m-19 {
  margin: 19px !important;
}

.mt-19 {
  margin-top: 19px !important;
}

.mb-19 {
  margin-bottom: 19px !important;
}

.mtb-19 {
  margin-block: 19px !important;
}

.ml-19 {
  margin-left: 19px !important;
}

.mr-19 {
  margin-right: 19px !important;
}

.mlr-19 {
  margin-inline: 19px !important;
}

@media screen and (min-width: 768px) {
  .m-19-pc {
    margin: 19px !important;
  }
  .mt-19-pc {
    margin-top: 19px !important;
  }
  .mb-19-pc {
    margin-bottom: 19px !important;
  }
  .mtb-19-pc {
    margin-block: 19px !important;
  }
  .ml-19-pc {
    margin-left: 19px !important;
  }
  .mr-19-pc {
    margin-right: 19px !important;
  }
  .mlr-19-pc {
    margin-inline: 19px !important;
  }
}
/* パディング関連クラス */
.p-19 {
  padding: 19px !important;
}

.pt-19 {
  padding-top: 19px !important;
}

.pb-19 {
  padding-bottom: 19px !important;
}

.ptb-19 {
  padding-block: 19px !important;
}

.pl-19 {
  padding-left: 19px !important;
}

.pr-19 {
  padding-right: 19px !important;
}

.plr-19 {
  padding-inline: 19px !important;
}

@media screen and (min-width: 768px) {
  .p-19-pc {
    padding: 19px !important;
  }
  .pt-19-pc {
    padding-top: 19px !important;
  }
  .pb-19-pc {
    padding-bottom: 19px !important;
  }
  .ptb-19-pc {
    padding-block: 19px !important;
  }
  .pl-19-pc {
    padding-left: 19px !important;
  }
  .pr-19-pc {
    padding-right: 19px !important;
  }
  .plr-19-pc {
    padding-inline: 19px !important;
  }
}
.fs-19 {
  font-size: 19px !important;
}

@media screen and (max-width: 340px) {
  .fs-19-xs {
    font-size: 18.05px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-19-pc {
    font-size: 19px !important;
  }
}
.gap-size {
  gap: 19px !important;
}

.row-gap-size {
  gap: 19px !important;
}

.column-gap-size {
  gap: 19px !important;
}

/* マージン関連クラス */
.m-20 {
  margin: 20px !important;
}

.mt-20 {
  margin-top: 20px !important;
}

.mb-20 {
  margin-bottom: 20px !important;
}

.mtb-20 {
  margin-block: 20px !important;
}

.ml-20 {
  margin-left: 20px !important;
}

.mr-20 {
  margin-right: 20px !important;
}

.mlr-20 {
  margin-inline: 20px !important;
}

@media screen and (min-width: 768px) {
  .m-20-pc {
    margin: 20px !important;
  }
  .mt-20-pc {
    margin-top: 20px !important;
  }
  .mb-20-pc {
    margin-bottom: 20px !important;
  }
  .mtb-20-pc {
    margin-block: 20px !important;
  }
  .ml-20-pc {
    margin-left: 20px !important;
  }
  .mr-20-pc {
    margin-right: 20px !important;
  }
  .mlr-20-pc {
    margin-inline: 20px !important;
  }
}
/* パディング関連クラス */
.p-20 {
  padding: 20px !important;
}

.pt-20 {
  padding-top: 20px !important;
}

.pb-20 {
  padding-bottom: 20px !important;
}

.ptb-20 {
  padding-block: 20px !important;
}

.pl-20 {
  padding-left: 20px !important;
}

.pr-20 {
  padding-right: 20px !important;
}

.plr-20 {
  padding-inline: 20px !important;
}

@media screen and (min-width: 768px) {
  .p-20-pc {
    padding: 20px !important;
  }
  .pt-20-pc {
    padding-top: 20px !important;
  }
  .pb-20-pc {
    padding-bottom: 20px !important;
  }
  .ptb-20-pc {
    padding-block: 20px !important;
  }
  .pl-20-pc {
    padding-left: 20px !important;
  }
  .pr-20-pc {
    padding-right: 20px !important;
  }
  .plr-20-pc {
    padding-inline: 20px !important;
  }
}
.fs-20 {
  font-size: 20px !important;
}

@media screen and (max-width: 340px) {
  .fs-20-xs {
    font-size: 19px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-20-pc {
    font-size: 20px !important;
  }
}
.gap-size {
  gap: 20px !important;
}

.row-gap-size {
  gap: 20px !important;
}

.column-gap-size {
  gap: 20px !important;
}

/* マージン関連クラス */
.m-22 {
  margin: 22px !important;
}

.mt-22 {
  margin-top: 22px !important;
}

.mb-22 {
  margin-bottom: 22px !important;
}

.mtb-22 {
  margin-block: 22px !important;
}

.ml-22 {
  margin-left: 22px !important;
}

.mr-22 {
  margin-right: 22px !important;
}

.mlr-22 {
  margin-inline: 22px !important;
}

@media screen and (min-width: 768px) {
  .m-22-pc {
    margin: 22px !important;
  }
  .mt-22-pc {
    margin-top: 22px !important;
  }
  .mb-22-pc {
    margin-bottom: 22px !important;
  }
  .mtb-22-pc {
    margin-block: 22px !important;
  }
  .ml-22-pc {
    margin-left: 22px !important;
  }
  .mr-22-pc {
    margin-right: 22px !important;
  }
  .mlr-22-pc {
    margin-inline: 22px !important;
  }
}
/* パディング関連クラス */
.p-22 {
  padding: 22px !important;
}

.pt-22 {
  padding-top: 22px !important;
}

.pb-22 {
  padding-bottom: 22px !important;
}

.ptb-22 {
  padding-block: 22px !important;
}

.pl-22 {
  padding-left: 22px !important;
}

.pr-22 {
  padding-right: 22px !important;
}

.plr-22 {
  padding-inline: 22px !important;
}

@media screen and (min-width: 768px) {
  .p-22-pc {
    padding: 22px !important;
  }
  .pt-22-pc {
    padding-top: 22px !important;
  }
  .pb-22-pc {
    padding-bottom: 22px !important;
  }
  .ptb-22-pc {
    padding-block: 22px !important;
  }
  .pl-22-pc {
    padding-left: 22px !important;
  }
  .pr-22-pc {
    padding-right: 22px !important;
  }
  .plr-22-pc {
    padding-inline: 22px !important;
  }
}
.fs-22 {
  font-size: 22px !important;
}

@media screen and (max-width: 340px) {
  .fs-22-xs {
    font-size: 20.9px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-22-pc {
    font-size: 22px !important;
  }
}
.gap-size {
  gap: 22px !important;
}

.row-gap-size {
  gap: 22px !important;
}

.column-gap-size {
  gap: 22px !important;
}

/* マージン関連クラス */
.m-24 {
  margin: 24px !important;
}

.mt-24 {
  margin-top: 24px !important;
}

.mb-24 {
  margin-bottom: 24px !important;
}

.mtb-24 {
  margin-block: 24px !important;
}

.ml-24 {
  margin-left: 24px !important;
}

.mr-24 {
  margin-right: 24px !important;
}

.mlr-24 {
  margin-inline: 24px !important;
}

@media screen and (min-width: 768px) {
  .m-24-pc {
    margin: 24px !important;
  }
  .mt-24-pc {
    margin-top: 24px !important;
  }
  .mb-24-pc {
    margin-bottom: 24px !important;
  }
  .mtb-24-pc {
    margin-block: 24px !important;
  }
  .ml-24-pc {
    margin-left: 24px !important;
  }
  .mr-24-pc {
    margin-right: 24px !important;
  }
  .mlr-24-pc {
    margin-inline: 24px !important;
  }
}
/* パディング関連クラス */
.p-24 {
  padding: 24px !important;
}

.pt-24 {
  padding-top: 24px !important;
}

.pb-24 {
  padding-bottom: 24px !important;
}

.ptb-24 {
  padding-block: 24px !important;
}

.pl-24 {
  padding-left: 24px !important;
}

.pr-24 {
  padding-right: 24px !important;
}

.plr-24 {
  padding-inline: 24px !important;
}

@media screen and (min-width: 768px) {
  .p-24-pc {
    padding: 24px !important;
  }
  .pt-24-pc {
    padding-top: 24px !important;
  }
  .pb-24-pc {
    padding-bottom: 24px !important;
  }
  .ptb-24-pc {
    padding-block: 24px !important;
  }
  .pl-24-pc {
    padding-left: 24px !important;
  }
  .pr-24-pc {
    padding-right: 24px !important;
  }
  .plr-24-pc {
    padding-inline: 24px !important;
  }
}
.fs-24 {
  font-size: 24px !important;
}

@media screen and (max-width: 340px) {
  .fs-24-xs {
    font-size: 22.8px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-24-pc {
    font-size: 24px !important;
  }
}
.gap-size {
  gap: 24px !important;
}

.row-gap-size {
  gap: 24px !important;
}

.column-gap-size {
  gap: 24px !important;
}

/* マージン関連クラス */
.m-26 {
  margin: 26px !important;
}

.mt-26 {
  margin-top: 26px !important;
}

.mb-26 {
  margin-bottom: 26px !important;
}

.mtb-26 {
  margin-block: 26px !important;
}

.ml-26 {
  margin-left: 26px !important;
}

.mr-26 {
  margin-right: 26px !important;
}

.mlr-26 {
  margin-inline: 26px !important;
}

@media screen and (min-width: 768px) {
  .m-26-pc {
    margin: 26px !important;
  }
  .mt-26-pc {
    margin-top: 26px !important;
  }
  .mb-26-pc {
    margin-bottom: 26px !important;
  }
  .mtb-26-pc {
    margin-block: 26px !important;
  }
  .ml-26-pc {
    margin-left: 26px !important;
  }
  .mr-26-pc {
    margin-right: 26px !important;
  }
  .mlr-26-pc {
    margin-inline: 26px !important;
  }
}
/* パディング関連クラス */
.p-26 {
  padding: 26px !important;
}

.pt-26 {
  padding-top: 26px !important;
}

.pb-26 {
  padding-bottom: 26px !important;
}

.ptb-26 {
  padding-block: 26px !important;
}

.pl-26 {
  padding-left: 26px !important;
}

.pr-26 {
  padding-right: 26px !important;
}

.plr-26 {
  padding-inline: 26px !important;
}

@media screen and (min-width: 768px) {
  .p-26-pc {
    padding: 26px !important;
  }
  .pt-26-pc {
    padding-top: 26px !important;
  }
  .pb-26-pc {
    padding-bottom: 26px !important;
  }
  .ptb-26-pc {
    padding-block: 26px !important;
  }
  .pl-26-pc {
    padding-left: 26px !important;
  }
  .pr-26-pc {
    padding-right: 26px !important;
  }
  .plr-26-pc {
    padding-inline: 26px !important;
  }
}
.fs-26 {
  font-size: 26px !important;
}

@media screen and (max-width: 340px) {
  .fs-26-xs {
    font-size: 24.7px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-26-pc {
    font-size: 26px !important;
  }
}
.gap-size {
  gap: 26px !important;
}

.row-gap-size {
  gap: 26px !important;
}

.column-gap-size {
  gap: 26px !important;
}

/* マージン関連クラス */
.m-28 {
  margin: 28px !important;
}

.mt-28 {
  margin-top: 28px !important;
}

.mb-28 {
  margin-bottom: 28px !important;
}

.mtb-28 {
  margin-block: 28px !important;
}

.ml-28 {
  margin-left: 28px !important;
}

.mr-28 {
  margin-right: 28px !important;
}

.mlr-28 {
  margin-inline: 28px !important;
}

@media screen and (min-width: 768px) {
  .m-28-pc {
    margin: 28px !important;
  }
  .mt-28-pc {
    margin-top: 28px !important;
  }
  .mb-28-pc {
    margin-bottom: 28px !important;
  }
  .mtb-28-pc {
    margin-block: 28px !important;
  }
  .ml-28-pc {
    margin-left: 28px !important;
  }
  .mr-28-pc {
    margin-right: 28px !important;
  }
  .mlr-28-pc {
    margin-inline: 28px !important;
  }
}
/* パディング関連クラス */
.p-28 {
  padding: 28px !important;
}

.pt-28 {
  padding-top: 28px !important;
}

.pb-28 {
  padding-bottom: 28px !important;
}

.ptb-28 {
  padding-block: 28px !important;
}

.pl-28 {
  padding-left: 28px !important;
}

.pr-28 {
  padding-right: 28px !important;
}

.plr-28 {
  padding-inline: 28px !important;
}

@media screen and (min-width: 768px) {
  .p-28-pc {
    padding: 28px !important;
  }
  .pt-28-pc {
    padding-top: 28px !important;
  }
  .pb-28-pc {
    padding-bottom: 28px !important;
  }
  .ptb-28-pc {
    padding-block: 28px !important;
  }
  .pl-28-pc {
    padding-left: 28px !important;
  }
  .pr-28-pc {
    padding-right: 28px !important;
  }
  .plr-28-pc {
    padding-inline: 28px !important;
  }
}
.fs-28 {
  font-size: 28px !important;
}

@media screen and (max-width: 340px) {
  .fs-28-xs {
    font-size: 26.6px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-28-pc {
    font-size: 28px !important;
  }
}
.gap-size {
  gap: 28px !important;
}

.row-gap-size {
  gap: 28px !important;
}

.column-gap-size {
  gap: 28px !important;
}

/* マージン関連クラス */
.m-30 {
  margin: 30px !important;
}

.mt-30 {
  margin-top: 30px !important;
}

.mb-30 {
  margin-bottom: 30px !important;
}

.mtb-30 {
  margin-block: 30px !important;
}

.ml-30 {
  margin-left: 30px !important;
}

.mr-30 {
  margin-right: 30px !important;
}

.mlr-30 {
  margin-inline: 30px !important;
}

@media screen and (min-width: 768px) {
  .m-30-pc {
    margin: 30px !important;
  }
  .mt-30-pc {
    margin-top: 30px !important;
  }
  .mb-30-pc {
    margin-bottom: 30px !important;
  }
  .mtb-30-pc {
    margin-block: 30px !important;
  }
  .ml-30-pc {
    margin-left: 30px !important;
  }
  .mr-30-pc {
    margin-right: 30px !important;
  }
  .mlr-30-pc {
    margin-inline: 30px !important;
  }
}
/* パディング関連クラス */
.p-30 {
  padding: 30px !important;
}

.pt-30 {
  padding-top: 30px !important;
}

.pb-30 {
  padding-bottom: 30px !important;
}

.ptb-30 {
  padding-block: 30px !important;
}

.pl-30 {
  padding-left: 30px !important;
}

.pr-30 {
  padding-right: 30px !important;
}

.plr-30 {
  padding-inline: 30px !important;
}

@media screen and (min-width: 768px) {
  .p-30-pc {
    padding: 30px !important;
  }
  .pt-30-pc {
    padding-top: 30px !important;
  }
  .pb-30-pc {
    padding-bottom: 30px !important;
  }
  .ptb-30-pc {
    padding-block: 30px !important;
  }
  .pl-30-pc {
    padding-left: 30px !important;
  }
  .pr-30-pc {
    padding-right: 30px !important;
  }
  .plr-30-pc {
    padding-inline: 30px !important;
  }
}
.fs-30 {
  font-size: 30px !important;
}

@media screen and (max-width: 340px) {
  .fs-30-xs {
    font-size: 28.5px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-30-pc {
    font-size: 30px !important;
  }
}
.gap-size {
  gap: 30px !important;
}

.row-gap-size {
  gap: 30px !important;
}

.column-gap-size {
  gap: 30px !important;
}

/* マージン関連クラス */
.m-32 {
  margin: 32px !important;
}

.mt-32 {
  margin-top: 32px !important;
}

.mb-32 {
  margin-bottom: 32px !important;
}

.mtb-32 {
  margin-block: 32px !important;
}

.ml-32 {
  margin-left: 32px !important;
}

.mr-32 {
  margin-right: 32px !important;
}

.mlr-32 {
  margin-inline: 32px !important;
}

@media screen and (min-width: 768px) {
  .m-32-pc {
    margin: 32px !important;
  }
  .mt-32-pc {
    margin-top: 32px !important;
  }
  .mb-32-pc {
    margin-bottom: 32px !important;
  }
  .mtb-32-pc {
    margin-block: 32px !important;
  }
  .ml-32-pc {
    margin-left: 32px !important;
  }
  .mr-32-pc {
    margin-right: 32px !important;
  }
  .mlr-32-pc {
    margin-inline: 32px !important;
  }
}
/* パディング関連クラス */
.p-32 {
  padding: 32px !important;
}

.pt-32 {
  padding-top: 32px !important;
}

.pb-32 {
  padding-bottom: 32px !important;
}

.ptb-32 {
  padding-block: 32px !important;
}

.pl-32 {
  padding-left: 32px !important;
}

.pr-32 {
  padding-right: 32px !important;
}

.plr-32 {
  padding-inline: 32px !important;
}

@media screen and (min-width: 768px) {
  .p-32-pc {
    padding: 32px !important;
  }
  .pt-32-pc {
    padding-top: 32px !important;
  }
  .pb-32-pc {
    padding-bottom: 32px !important;
  }
  .ptb-32-pc {
    padding-block: 32px !important;
  }
  .pl-32-pc {
    padding-left: 32px !important;
  }
  .pr-32-pc {
    padding-right: 32px !important;
  }
  .plr-32-pc {
    padding-inline: 32px !important;
  }
}
.fs-32 {
  font-size: 32px !important;
}

@media screen and (max-width: 340px) {
  .fs-32-xs {
    font-size: 30.4px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-32-pc {
    font-size: 32px !important;
  }
}
.gap-size {
  gap: 32px !important;
}

.row-gap-size {
  gap: 32px !important;
}

.column-gap-size {
  gap: 32px !important;
}

/* マージン関連クラス */
.m-36 {
  margin: 36px !important;
}

.mt-36 {
  margin-top: 36px !important;
}

.mb-36 {
  margin-bottom: 36px !important;
}

.mtb-36 {
  margin-block: 36px !important;
}

.ml-36 {
  margin-left: 36px !important;
}

.mr-36 {
  margin-right: 36px !important;
}

.mlr-36 {
  margin-inline: 36px !important;
}

@media screen and (min-width: 768px) {
  .m-36-pc {
    margin: 36px !important;
  }
  .mt-36-pc {
    margin-top: 36px !important;
  }
  .mb-36-pc {
    margin-bottom: 36px !important;
  }
  .mtb-36-pc {
    margin-block: 36px !important;
  }
  .ml-36-pc {
    margin-left: 36px !important;
  }
  .mr-36-pc {
    margin-right: 36px !important;
  }
  .mlr-36-pc {
    margin-inline: 36px !important;
  }
}
/* パディング関連クラス */
.p-36 {
  padding: 36px !important;
}

.pt-36 {
  padding-top: 36px !important;
}

.pb-36 {
  padding-bottom: 36px !important;
}

.ptb-36 {
  padding-block: 36px !important;
}

.pl-36 {
  padding-left: 36px !important;
}

.pr-36 {
  padding-right: 36px !important;
}

.plr-36 {
  padding-inline: 36px !important;
}

@media screen and (min-width: 768px) {
  .p-36-pc {
    padding: 36px !important;
  }
  .pt-36-pc {
    padding-top: 36px !important;
  }
  .pb-36-pc {
    padding-bottom: 36px !important;
  }
  .ptb-36-pc {
    padding-block: 36px !important;
  }
  .pl-36-pc {
    padding-left: 36px !important;
  }
  .pr-36-pc {
    padding-right: 36px !important;
  }
  .plr-36-pc {
    padding-inline: 36px !important;
  }
}
.fs-36 {
  font-size: 36px !important;
}

@media screen and (max-width: 340px) {
  .fs-36-xs {
    font-size: 34.2px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-36-pc {
    font-size: 36px !important;
  }
}
.gap-size {
  gap: 36px !important;
}

.row-gap-size {
  gap: 36px !important;
}

.column-gap-size {
  gap: 36px !important;
}

/* マージン関連クラス */
.m-40 {
  margin: 40px !important;
}

.mt-40 {
  margin-top: 40px !important;
}

.mb-40 {
  margin-bottom: 40px !important;
}

.mtb-40 {
  margin-block: 40px !important;
}

.ml-40 {
  margin-left: 40px !important;
}

.mr-40 {
  margin-right: 40px !important;
}

.mlr-40 {
  margin-inline: 40px !important;
}

@media screen and (min-width: 768px) {
  .m-40-pc {
    margin: 40px !important;
  }
  .mt-40-pc {
    margin-top: 40px !important;
  }
  .mb-40-pc {
    margin-bottom: 40px !important;
  }
  .mtb-40-pc {
    margin-block: 40px !important;
  }
  .ml-40-pc {
    margin-left: 40px !important;
  }
  .mr-40-pc {
    margin-right: 40px !important;
  }
  .mlr-40-pc {
    margin-inline: 40px !important;
  }
}
/* パディング関連クラス */
.p-40 {
  padding: 40px !important;
}

.pt-40 {
  padding-top: 40px !important;
}

.pb-40 {
  padding-bottom: 40px !important;
}

.ptb-40 {
  padding-block: 40px !important;
}

.pl-40 {
  padding-left: 40px !important;
}

.pr-40 {
  padding-right: 40px !important;
}

.plr-40 {
  padding-inline: 40px !important;
}

@media screen and (min-width: 768px) {
  .p-40-pc {
    padding: 40px !important;
  }
  .pt-40-pc {
    padding-top: 40px !important;
  }
  .pb-40-pc {
    padding-bottom: 40px !important;
  }
  .ptb-40-pc {
    padding-block: 40px !important;
  }
  .pl-40-pc {
    padding-left: 40px !important;
  }
  .pr-40-pc {
    padding-right: 40px !important;
  }
  .plr-40-pc {
    padding-inline: 40px !important;
  }
}
.fs-40 {
  font-size: 40px !important;
}

@media screen and (max-width: 340px) {
  .fs-40-xs {
    font-size: 38px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-40-pc {
    font-size: 40px !important;
  }
}
.gap-size {
  gap: 40px !important;
}

.row-gap-size {
  gap: 40px !important;
}

.column-gap-size {
  gap: 40px !important;
}

/* マージン関連クラス */
.m-44 {
  margin: 44px !important;
}

.mt-44 {
  margin-top: 44px !important;
}

.mb-44 {
  margin-bottom: 44px !important;
}

.mtb-44 {
  margin-block: 44px !important;
}

.ml-44 {
  margin-left: 44px !important;
}

.mr-44 {
  margin-right: 44px !important;
}

.mlr-44 {
  margin-inline: 44px !important;
}

@media screen and (min-width: 768px) {
  .m-44-pc {
    margin: 44px !important;
  }
  .mt-44-pc {
    margin-top: 44px !important;
  }
  .mb-44-pc {
    margin-bottom: 44px !important;
  }
  .mtb-44-pc {
    margin-block: 44px !important;
  }
  .ml-44-pc {
    margin-left: 44px !important;
  }
  .mr-44-pc {
    margin-right: 44px !important;
  }
  .mlr-44-pc {
    margin-inline: 44px !important;
  }
}
/* パディング関連クラス */
.p-44 {
  padding: 44px !important;
}

.pt-44 {
  padding-top: 44px !important;
}

.pb-44 {
  padding-bottom: 44px !important;
}

.ptb-44 {
  padding-block: 44px !important;
}

.pl-44 {
  padding-left: 44px !important;
}

.pr-44 {
  padding-right: 44px !important;
}

.plr-44 {
  padding-inline: 44px !important;
}

@media screen and (min-width: 768px) {
  .p-44-pc {
    padding: 44px !important;
  }
  .pt-44-pc {
    padding-top: 44px !important;
  }
  .pb-44-pc {
    padding-bottom: 44px !important;
  }
  .ptb-44-pc {
    padding-block: 44px !important;
  }
  .pl-44-pc {
    padding-left: 44px !important;
  }
  .pr-44-pc {
    padding-right: 44px !important;
  }
  .plr-44-pc {
    padding-inline: 44px !important;
  }
}
.fs-44 {
  font-size: 44px !important;
}

@media screen and (max-width: 340px) {
  .fs-44-xs {
    font-size: 41.8px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-44-pc {
    font-size: 44px !important;
  }
}
.gap-size {
  gap: 44px !important;
}

.row-gap-size {
  gap: 44px !important;
}

.column-gap-size {
  gap: 44px !important;
}

/* マージン関連クラス */
.m-48 {
  margin: 48px !important;
}

.mt-48 {
  margin-top: 48px !important;
}

.mb-48 {
  margin-bottom: 48px !important;
}

.mtb-48 {
  margin-block: 48px !important;
}

.ml-48 {
  margin-left: 48px !important;
}

.mr-48 {
  margin-right: 48px !important;
}

.mlr-48 {
  margin-inline: 48px !important;
}

@media screen and (min-width: 768px) {
  .m-48-pc {
    margin: 48px !important;
  }
  .mt-48-pc {
    margin-top: 48px !important;
  }
  .mb-48-pc {
    margin-bottom: 48px !important;
  }
  .mtb-48-pc {
    margin-block: 48px !important;
  }
  .ml-48-pc {
    margin-left: 48px !important;
  }
  .mr-48-pc {
    margin-right: 48px !important;
  }
  .mlr-48-pc {
    margin-inline: 48px !important;
  }
}
/* パディング関連クラス */
.p-48 {
  padding: 48px !important;
}

.pt-48 {
  padding-top: 48px !important;
}

.pb-48 {
  padding-bottom: 48px !important;
}

.ptb-48 {
  padding-block: 48px !important;
}

.pl-48 {
  padding-left: 48px !important;
}

.pr-48 {
  padding-right: 48px !important;
}

.plr-48 {
  padding-inline: 48px !important;
}

@media screen and (min-width: 768px) {
  .p-48-pc {
    padding: 48px !important;
  }
  .pt-48-pc {
    padding-top: 48px !important;
  }
  .pb-48-pc {
    padding-bottom: 48px !important;
  }
  .ptb-48-pc {
    padding-block: 48px !important;
  }
  .pl-48-pc {
    padding-left: 48px !important;
  }
  .pr-48-pc {
    padding-right: 48px !important;
  }
  .plr-48-pc {
    padding-inline: 48px !important;
  }
}
.fs-48 {
  font-size: 48px !important;
}

@media screen and (max-width: 340px) {
  .fs-48-xs {
    font-size: 45.6px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-48-pc {
    font-size: 48px !important;
  }
}
.gap-size {
  gap: 48px !important;
}

.row-gap-size {
  gap: 48px !important;
}

.column-gap-size {
  gap: 48px !important;
}

/* マージン関連クラス */
.m-52 {
  margin: 52px !important;
}

.mt-52 {
  margin-top: 52px !important;
}

.mb-52 {
  margin-bottom: 52px !important;
}

.mtb-52 {
  margin-block: 52px !important;
}

.ml-52 {
  margin-left: 52px !important;
}

.mr-52 {
  margin-right: 52px !important;
}

.mlr-52 {
  margin-inline: 52px !important;
}

@media screen and (min-width: 768px) {
  .m-52-pc {
    margin: 52px !important;
  }
  .mt-52-pc {
    margin-top: 52px !important;
  }
  .mb-52-pc {
    margin-bottom: 52px !important;
  }
  .mtb-52-pc {
    margin-block: 52px !important;
  }
  .ml-52-pc {
    margin-left: 52px !important;
  }
  .mr-52-pc {
    margin-right: 52px !important;
  }
  .mlr-52-pc {
    margin-inline: 52px !important;
  }
}
/* パディング関連クラス */
.p-52 {
  padding: 52px !important;
}

.pt-52 {
  padding-top: 52px !important;
}

.pb-52 {
  padding-bottom: 52px !important;
}

.ptb-52 {
  padding-block: 52px !important;
}

.pl-52 {
  padding-left: 52px !important;
}

.pr-52 {
  padding-right: 52px !important;
}

.plr-52 {
  padding-inline: 52px !important;
}

@media screen and (min-width: 768px) {
  .p-52-pc {
    padding: 52px !important;
  }
  .pt-52-pc {
    padding-top: 52px !important;
  }
  .pb-52-pc {
    padding-bottom: 52px !important;
  }
  .ptb-52-pc {
    padding-block: 52px !important;
  }
  .pl-52-pc {
    padding-left: 52px !important;
  }
  .pr-52-pc {
    padding-right: 52px !important;
  }
  .plr-52-pc {
    padding-inline: 52px !important;
  }
}
.fs-52 {
  font-size: 52px !important;
}

@media screen and (max-width: 340px) {
  .fs-52-xs {
    font-size: 49.4px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-52-pc {
    font-size: 52px !important;
  }
}
.gap-size {
  gap: 52px !important;
}

.row-gap-size {
  gap: 52px !important;
}

.column-gap-size {
  gap: 52px !important;
}

/* マージン関連クラス */
.m-56 {
  margin: 56px !important;
}

.mt-56 {
  margin-top: 56px !important;
}

.mb-56 {
  margin-bottom: 56px !important;
}

.mtb-56 {
  margin-block: 56px !important;
}

.ml-56 {
  margin-left: 56px !important;
}

.mr-56 {
  margin-right: 56px !important;
}

.mlr-56 {
  margin-inline: 56px !important;
}

@media screen and (min-width: 768px) {
  .m-56-pc {
    margin: 56px !important;
  }
  .mt-56-pc {
    margin-top: 56px !important;
  }
  .mb-56-pc {
    margin-bottom: 56px !important;
  }
  .mtb-56-pc {
    margin-block: 56px !important;
  }
  .ml-56-pc {
    margin-left: 56px !important;
  }
  .mr-56-pc {
    margin-right: 56px !important;
  }
  .mlr-56-pc {
    margin-inline: 56px !important;
  }
}
/* パディング関連クラス */
.p-56 {
  padding: 56px !important;
}

.pt-56 {
  padding-top: 56px !important;
}

.pb-56 {
  padding-bottom: 56px !important;
}

.ptb-56 {
  padding-block: 56px !important;
}

.pl-56 {
  padding-left: 56px !important;
}

.pr-56 {
  padding-right: 56px !important;
}

.plr-56 {
  padding-inline: 56px !important;
}

@media screen and (min-width: 768px) {
  .p-56-pc {
    padding: 56px !important;
  }
  .pt-56-pc {
    padding-top: 56px !important;
  }
  .pb-56-pc {
    padding-bottom: 56px !important;
  }
  .ptb-56-pc {
    padding-block: 56px !important;
  }
  .pl-56-pc {
    padding-left: 56px !important;
  }
  .pr-56-pc {
    padding-right: 56px !important;
  }
  .plr-56-pc {
    padding-inline: 56px !important;
  }
}
.fs-56 {
  font-size: 56px !important;
}

@media screen and (max-width: 340px) {
  .fs-56-xs {
    font-size: 53.2px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-56-pc {
    font-size: 56px !important;
  }
}
.gap-size {
  gap: 56px !important;
}

.row-gap-size {
  gap: 56px !important;
}

.column-gap-size {
  gap: 56px !important;
}

/* マージン関連クラス */
.m-60 {
  margin: 60px !important;
}

.mt-60 {
  margin-top: 60px !important;
}

.mb-60 {
  margin-bottom: 60px !important;
}

.mtb-60 {
  margin-block: 60px !important;
}

.ml-60 {
  margin-left: 60px !important;
}

.mr-60 {
  margin-right: 60px !important;
}

.mlr-60 {
  margin-inline: 60px !important;
}

@media screen and (min-width: 768px) {
  .m-60-pc {
    margin: 60px !important;
  }
  .mt-60-pc {
    margin-top: 60px !important;
  }
  .mb-60-pc {
    margin-bottom: 60px !important;
  }
  .mtb-60-pc {
    margin-block: 60px !important;
  }
  .ml-60-pc {
    margin-left: 60px !important;
  }
  .mr-60-pc {
    margin-right: 60px !important;
  }
  .mlr-60-pc {
    margin-inline: 60px !important;
  }
}
/* パディング関連クラス */
.p-60 {
  padding: 60px !important;
}

.pt-60 {
  padding-top: 60px !important;
}

.pb-60 {
  padding-bottom: 60px !important;
}

.ptb-60 {
  padding-block: 60px !important;
}

.pl-60 {
  padding-left: 60px !important;
}

.pr-60 {
  padding-right: 60px !important;
}

.plr-60 {
  padding-inline: 60px !important;
}

@media screen and (min-width: 768px) {
  .p-60-pc {
    padding: 60px !important;
  }
  .pt-60-pc {
    padding-top: 60px !important;
  }
  .pb-60-pc {
    padding-bottom: 60px !important;
  }
  .ptb-60-pc {
    padding-block: 60px !important;
  }
  .pl-60-pc {
    padding-left: 60px !important;
  }
  .pr-60-pc {
    padding-right: 60px !important;
  }
  .plr-60-pc {
    padding-inline: 60px !important;
  }
}
.fs-60 {
  font-size: 60px !important;
}

@media screen and (max-width: 340px) {
  .fs-60-xs {
    font-size: 57px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-60-pc {
    font-size: 60px !important;
  }
}
.gap-size {
  gap: 60px !important;
}

.row-gap-size {
  gap: 60px !important;
}

.column-gap-size {
  gap: 60px !important;
}

/* マージン関連クラス */
.m-64 {
  margin: 64px !important;
}

.mt-64 {
  margin-top: 64px !important;
}

.mb-64 {
  margin-bottom: 64px !important;
}

.mtb-64 {
  margin-block: 64px !important;
}

.ml-64 {
  margin-left: 64px !important;
}

.mr-64 {
  margin-right: 64px !important;
}

.mlr-64 {
  margin-inline: 64px !important;
}

@media screen and (min-width: 768px) {
  .m-64-pc {
    margin: 64px !important;
  }
  .mt-64-pc {
    margin-top: 64px !important;
  }
  .mb-64-pc {
    margin-bottom: 64px !important;
  }
  .mtb-64-pc {
    margin-block: 64px !important;
  }
  .ml-64-pc {
    margin-left: 64px !important;
  }
  .mr-64-pc {
    margin-right: 64px !important;
  }
  .mlr-64-pc {
    margin-inline: 64px !important;
  }
}
/* パディング関連クラス */
.p-64 {
  padding: 64px !important;
}

.pt-64 {
  padding-top: 64px !important;
}

.pb-64 {
  padding-bottom: 64px !important;
}

.ptb-64 {
  padding-block: 64px !important;
}

.pl-64 {
  padding-left: 64px !important;
}

.pr-64 {
  padding-right: 64px !important;
}

.plr-64 {
  padding-inline: 64px !important;
}

@media screen and (min-width: 768px) {
  .p-64-pc {
    padding: 64px !important;
  }
  .pt-64-pc {
    padding-top: 64px !important;
  }
  .pb-64-pc {
    padding-bottom: 64px !important;
  }
  .ptb-64-pc {
    padding-block: 64px !important;
  }
  .pl-64-pc {
    padding-left: 64px !important;
  }
  .pr-64-pc {
    padding-right: 64px !important;
  }
  .plr-64-pc {
    padding-inline: 64px !important;
  }
}
.fs-64 {
  font-size: 64px !important;
}

@media screen and (max-width: 340px) {
  .fs-64-xs {
    font-size: 60.8px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-64-pc {
    font-size: 64px !important;
  }
}
.gap-size {
  gap: 64px !important;
}

.row-gap-size {
  gap: 64px !important;
}

.column-gap-size {
  gap: 64px !important;
}

/* マージン関連クラス */
.m-80 {
  margin: 80px !important;
}

.mt-80 {
  margin-top: 80px !important;
}

.mb-80 {
  margin-bottom: 80px !important;
}

.mtb-80 {
  margin-block: 80px !important;
}

.ml-80 {
  margin-left: 80px !important;
}

.mr-80 {
  margin-right: 80px !important;
}

.mlr-80 {
  margin-inline: 80px !important;
}

@media screen and (min-width: 768px) {
  .m-80-pc {
    margin: 80px !important;
  }
  .mt-80-pc {
    margin-top: 80px !important;
  }
  .mb-80-pc {
    margin-bottom: 80px !important;
  }
  .mtb-80-pc {
    margin-block: 80px !important;
  }
  .ml-80-pc {
    margin-left: 80px !important;
  }
  .mr-80-pc {
    margin-right: 80px !important;
  }
  .mlr-80-pc {
    margin-inline: 80px !important;
  }
}
/* パディング関連クラス */
.p-80 {
  padding: 80px !important;
}

.pt-80 {
  padding-top: 80px !important;
}

.pb-80 {
  padding-bottom: 80px !important;
}

.ptb-80 {
  padding-block: 80px !important;
}

.pl-80 {
  padding-left: 80px !important;
}

.pr-80 {
  padding-right: 80px !important;
}

.plr-80 {
  padding-inline: 80px !important;
}

@media screen and (min-width: 768px) {
  .p-80-pc {
    padding: 80px !important;
  }
  .pt-80-pc {
    padding-top: 80px !important;
  }
  .pb-80-pc {
    padding-bottom: 80px !important;
  }
  .ptb-80-pc {
    padding-block: 80px !important;
  }
  .pl-80-pc {
    padding-left: 80px !important;
  }
  .pr-80-pc {
    padding-right: 80px !important;
  }
  .plr-80-pc {
    padding-inline: 80px !important;
  }
}
.fs-80 {
  font-size: 80px !important;
}

@media screen and (max-width: 340px) {
  .fs-80-xs {
    font-size: 76px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-80-pc {
    font-size: 80px !important;
  }
}
.gap-size {
  gap: 80px !important;
}

.row-gap-size {
  gap: 80px !important;
}

.column-gap-size {
  gap: 80px !important;
}

/* マージン関連クラス */
.m-88 {
  margin: 88px !important;
}

.mt-88 {
  margin-top: 88px !important;
}

.mb-88 {
  margin-bottom: 88px !important;
}

.mtb-88 {
  margin-block: 88px !important;
}

.ml-88 {
  margin-left: 88px !important;
}

.mr-88 {
  margin-right: 88px !important;
}

.mlr-88 {
  margin-inline: 88px !important;
}

@media screen and (min-width: 768px) {
  .m-88-pc {
    margin: 88px !important;
  }
  .mt-88-pc {
    margin-top: 88px !important;
  }
  .mb-88-pc {
    margin-bottom: 88px !important;
  }
  .mtb-88-pc {
    margin-block: 88px !important;
  }
  .ml-88-pc {
    margin-left: 88px !important;
  }
  .mr-88-pc {
    margin-right: 88px !important;
  }
  .mlr-88-pc {
    margin-inline: 88px !important;
  }
}
/* パディング関連クラス */
.p-88 {
  padding: 88px !important;
}

.pt-88 {
  padding-top: 88px !important;
}

.pb-88 {
  padding-bottom: 88px !important;
}

.ptb-88 {
  padding-block: 88px !important;
}

.pl-88 {
  padding-left: 88px !important;
}

.pr-88 {
  padding-right: 88px !important;
}

.plr-88 {
  padding-inline: 88px !important;
}

@media screen and (min-width: 768px) {
  .p-88-pc {
    padding: 88px !important;
  }
  .pt-88-pc {
    padding-top: 88px !important;
  }
  .pb-88-pc {
    padding-bottom: 88px !important;
  }
  .ptb-88-pc {
    padding-block: 88px !important;
  }
  .pl-88-pc {
    padding-left: 88px !important;
  }
  .pr-88-pc {
    padding-right: 88px !important;
  }
  .plr-88-pc {
    padding-inline: 88px !important;
  }
}
.fs-88 {
  font-size: 88px !important;
}

@media screen and (max-width: 340px) {
  .fs-88-xs {
    font-size: 83.6px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-88-pc {
    font-size: 88px !important;
  }
}
.gap-size {
  gap: 88px !important;
}

.row-gap-size {
  gap: 88px !important;
}

.column-gap-size {
  gap: 88px !important;
}

/* マージン関連クラス */
.m-96 {
  margin: 96px !important;
}

.mt-96 {
  margin-top: 96px !important;
}

.mb-96 {
  margin-bottom: 96px !important;
}

.mtb-96 {
  margin-block: 96px !important;
}

.ml-96 {
  margin-left: 96px !important;
}

.mr-96 {
  margin-right: 96px !important;
}

.mlr-96 {
  margin-inline: 96px !important;
}

@media screen and (min-width: 768px) {
  .m-96-pc {
    margin: 96px !important;
  }
  .mt-96-pc {
    margin-top: 96px !important;
  }
  .mb-96-pc {
    margin-bottom: 96px !important;
  }
  .mtb-96-pc {
    margin-block: 96px !important;
  }
  .ml-96-pc {
    margin-left: 96px !important;
  }
  .mr-96-pc {
    margin-right: 96px !important;
  }
  .mlr-96-pc {
    margin-inline: 96px !important;
  }
}
/* パディング関連クラス */
.p-96 {
  padding: 96px !important;
}

.pt-96 {
  padding-top: 96px !important;
}

.pb-96 {
  padding-bottom: 96px !important;
}

.ptb-96 {
  padding-block: 96px !important;
}

.pl-96 {
  padding-left: 96px !important;
}

.pr-96 {
  padding-right: 96px !important;
}

.plr-96 {
  padding-inline: 96px !important;
}

@media screen and (min-width: 768px) {
  .p-96-pc {
    padding: 96px !important;
  }
  .pt-96-pc {
    padding-top: 96px !important;
  }
  .pb-96-pc {
    padding-bottom: 96px !important;
  }
  .ptb-96-pc {
    padding-block: 96px !important;
  }
  .pl-96-pc {
    padding-left: 96px !important;
  }
  .pr-96-pc {
    padding-right: 96px !important;
  }
  .plr-96-pc {
    padding-inline: 96px !important;
  }
}
.fs-96 {
  font-size: 96px !important;
}

@media screen and (max-width: 340px) {
  .fs-96-xs {
    font-size: 91.2px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-96-pc {
    font-size: 96px !important;
  }
}
.gap-size {
  gap: 96px !important;
}

.row-gap-size {
  gap: 96px !important;
}

.column-gap-size {
  gap: 96px !important;
}

/* マージン関連クラス */
.m-100 {
  margin: 100px !important;
}

.mt-100 {
  margin-top: 100px !important;
}

.mb-100 {
  margin-bottom: 100px !important;
}

.mtb-100 {
  margin-block: 100px !important;
}

.ml-100 {
  margin-left: 100px !important;
}

.mr-100 {
  margin-right: 100px !important;
}

.mlr-100 {
  margin-inline: 100px !important;
}

@media screen and (min-width: 768px) {
  .m-100-pc {
    margin: 100px !important;
  }
  .mt-100-pc {
    margin-top: 100px !important;
  }
  .mb-100-pc {
    margin-bottom: 100px !important;
  }
  .mtb-100-pc {
    margin-block: 100px !important;
  }
  .ml-100-pc {
    margin-left: 100px !important;
  }
  .mr-100-pc {
    margin-right: 100px !important;
  }
  .mlr-100-pc {
    margin-inline: 100px !important;
  }
}
/* パディング関連クラス */
.p-100 {
  padding: 100px !important;
}

.pt-100 {
  padding-top: 100px !important;
}

.pb-100 {
  padding-bottom: 100px !important;
}

.ptb-100 {
  padding-block: 100px !important;
}

.pl-100 {
  padding-left: 100px !important;
}

.pr-100 {
  padding-right: 100px !important;
}

.plr-100 {
  padding-inline: 100px !important;
}

@media screen and (min-width: 768px) {
  .p-100-pc {
    padding: 100px !important;
  }
  .pt-100-pc {
    padding-top: 100px !important;
  }
  .pb-100-pc {
    padding-bottom: 100px !important;
  }
  .ptb-100-pc {
    padding-block: 100px !important;
  }
  .pl-100-pc {
    padding-left: 100px !important;
  }
  .pr-100-pc {
    padding-right: 100px !important;
  }
  .plr-100-pc {
    padding-inline: 100px !important;
  }
}
.fs-100 {
  font-size: 100px !important;
}

@media screen and (max-width: 340px) {
  .fs-100-xs {
    font-size: 95px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-100-pc {
    font-size: 100px !important;
  }
}
.gap-size {
  gap: 100px !important;
}

.row-gap-size {
  gap: 100px !important;
}

.column-gap-size {
  gap: 100px !important;
}

/* マージン関連クラス */
.m-110 {
  margin: 110px !important;
}

.mt-110 {
  margin-top: 110px !important;
}

.mb-110 {
  margin-bottom: 110px !important;
}

.mtb-110 {
  margin-block: 110px !important;
}

.ml-110 {
  margin-left: 110px !important;
}

.mr-110 {
  margin-right: 110px !important;
}

.mlr-110 {
  margin-inline: 110px !important;
}

@media screen and (min-width: 768px) {
  .m-110-pc {
    margin: 110px !important;
  }
  .mt-110-pc {
    margin-top: 110px !important;
  }
  .mb-110-pc {
    margin-bottom: 110px !important;
  }
  .mtb-110-pc {
    margin-block: 110px !important;
  }
  .ml-110-pc {
    margin-left: 110px !important;
  }
  .mr-110-pc {
    margin-right: 110px !important;
  }
  .mlr-110-pc {
    margin-inline: 110px !important;
  }
}
/* パディング関連クラス */
.p-110 {
  padding: 110px !important;
}

.pt-110 {
  padding-top: 110px !important;
}

.pb-110 {
  padding-bottom: 110px !important;
}

.ptb-110 {
  padding-block: 110px !important;
}

.pl-110 {
  padding-left: 110px !important;
}

.pr-110 {
  padding-right: 110px !important;
}

.plr-110 {
  padding-inline: 110px !important;
}

@media screen and (min-width: 768px) {
  .p-110-pc {
    padding: 110px !important;
  }
  .pt-110-pc {
    padding-top: 110px !important;
  }
  .pb-110-pc {
    padding-bottom: 110px !important;
  }
  .ptb-110-pc {
    padding-block: 110px !important;
  }
  .pl-110-pc {
    padding-left: 110px !important;
  }
  .pr-110-pc {
    padding-right: 110px !important;
  }
  .plr-110-pc {
    padding-inline: 110px !important;
  }
}
.fs-110 {
  font-size: 110px !important;
}

@media screen and (max-width: 340px) {
  .fs-110-xs {
    font-size: 104.5px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-110-pc {
    font-size: 110px !important;
  }
}
.gap-size {
  gap: 110px !important;
}

.row-gap-size {
  gap: 110px !important;
}

.column-gap-size {
  gap: 110px !important;
}

/* マージン関連クラス */
.m-120 {
  margin: 120px !important;
}

.mt-120 {
  margin-top: 120px !important;
}

.mb-120 {
  margin-bottom: 120px !important;
}

.mtb-120 {
  margin-block: 120px !important;
}

.ml-120 {
  margin-left: 120px !important;
}

.mr-120 {
  margin-right: 120px !important;
}

.mlr-120 {
  margin-inline: 120px !important;
}

@media screen and (min-width: 768px) {
  .m-120-pc {
    margin: 120px !important;
  }
  .mt-120-pc {
    margin-top: 120px !important;
  }
  .mb-120-pc {
    margin-bottom: 120px !important;
  }
  .mtb-120-pc {
    margin-block: 120px !important;
  }
  .ml-120-pc {
    margin-left: 120px !important;
  }
  .mr-120-pc {
    margin-right: 120px !important;
  }
  .mlr-120-pc {
    margin-inline: 120px !important;
  }
}
/* パディング関連クラス */
.p-120 {
  padding: 120px !important;
}

.pt-120 {
  padding-top: 120px !important;
}

.pb-120 {
  padding-bottom: 120px !important;
}

.ptb-120 {
  padding-block: 120px !important;
}

.pl-120 {
  padding-left: 120px !important;
}

.pr-120 {
  padding-right: 120px !important;
}

.plr-120 {
  padding-inline: 120px !important;
}

@media screen and (min-width: 768px) {
  .p-120-pc {
    padding: 120px !important;
  }
  .pt-120-pc {
    padding-top: 120px !important;
  }
  .pb-120-pc {
    padding-bottom: 120px !important;
  }
  .ptb-120-pc {
    padding-block: 120px !important;
  }
  .pl-120-pc {
    padding-left: 120px !important;
  }
  .pr-120-pc {
    padding-right: 120px !important;
  }
  .plr-120-pc {
    padding-inline: 120px !important;
  }
}
.fs-120 {
  font-size: 120px !important;
}

@media screen and (max-width: 340px) {
  .fs-120-xs {
    font-size: 114px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-120-pc {
    font-size: 120px !important;
  }
}
.gap-size {
  gap: 120px !important;
}

.row-gap-size {
  gap: 120px !important;
}

.column-gap-size {
  gap: 120px !important;
}

/*--------------------------------------------------------------------------
COLOR
---------------------------------------------------------------------------*/
.txt-white {
  color: #fff !important;
}

.bg-white {
  background-color: #fff !important;
}

.border-white {
  border-color: #fff !important;
}

.txt-black {
  color: #333333 !important;
}

.bg-black {
  background-color: #333333 !important;
}

.border-black {
  border-color: #333333 !important;
}

.txt-pink-main {
  color: #DB8997 !important;
}

.bg-pink-main {
  background-color: #DB8997 !important;
}

.border-pink-main {
  border-color: #DB8997 !important;
}

.txt-pink-accent {
  color: #D15C70 !important;
}

.bg-pink-accent {
  background-color: #D15C70 !important;
}

.border-pink-accent {
  border-color: #D15C70 !important;
}

.txt-grayish-pink {
  color: #BDA9AC !important;
}

.bg-grayish-pink {
  background-color: #BDA9AC !important;
}

.border-grayish-pink {
  border-color: #BDA9AC !important;
}

.txt-grayish-pink-dark {
  color: #A88A8F !important;
}

.bg-grayish-pink-dark {
  background-color: #A88A8F !important;
}

.border-grayish-pink-dark {
  border-color: #A88A8F !important;
}

.txt-pink-bg {
  color: #FAF3F5 !important;
}

.bg-pink-bg {
  background-color: #FAF3F5 !important;
}

.border-pink-bg {
  border-color: #FAF3F5 !important;
}

.txt-gray-bg {
  color: #fafafa !important;
}

.bg-gray-bg {
  background-color: #fafafa !important;
}

.border-gray-bg {
  border-color: #fafafa !important;
}

.txt-gray {
  color: #888 !important;
}

.bg-gray {
  background-color: #888 !important;
}

.border-gray {
  border-color: #888 !important;
}

/*--------------------------------------------------------------------------
フォント関連
---------------------------------------------------------------------------*/
.txt-center {
  text-align: center !important;
}

.txt-left {
  text-align: left !important;
}

.txt-right {
  text-align: right !important;
}

/* フォントweight */
.fw-300 {
  font-weight: 300 !important;
}

.fw-400 {
  font-weight: 400 !important;
}

.fw-500 {
  font-weight: 500 !important;
}

.fw-600 {
  font-weight: 600 !important;
}

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

.fw-800 {
  font-weight: 800 !important;
}

.fw-900 {
  font-weight: 900 !important;
}

/* LINE HEIGHT */
.lh-10 {
  line-height: 1 !important;
}

@media screen and (min-width: 768px) {
  .lh-10-pc {
    line-height: 1 !important;
  }
}
.lh-11 {
  line-height: 1.1 !important;
}

@media screen and (min-width: 768px) {
  .lh-11-pc {
    line-height: 1.1 !important;
  }
}
.lh-12 {
  line-height: 1.2 !important;
}

@media screen and (min-width: 768px) {
  .lh-12-pc {
    line-height: 1.2 !important;
  }
}
.lh-13 {
  line-height: 1.3 !important;
}

@media screen and (min-width: 768px) {
  .lh-13-pc {
    line-height: 1.3 !important;
  }
}
.lh-14 {
  line-height: 1.4 !important;
}

@media screen and (min-width: 768px) {
  .lh-14-pc {
    line-height: 1.4 !important;
  }
}
.lh-15 {
  line-height: 1.5 !important;
}

@media screen and (min-width: 768px) {
  .lh-15-pc {
    line-height: 1.5 !important;
  }
}
.lh-16 {
  line-height: 1.6 !important;
}

@media screen and (min-width: 768px) {
  .lh-16-pc {
    line-height: 1.6 !important;
  }
}
.lh-18 {
  line-height: 1.8 !important;
}

@media screen and (min-width: 768px) {
  .lh-18-pc {
    line-height: 1.8 !important;
  }
}
.lh-20 {
  line-height: 2 !important;
}

@media screen and (min-width: 768px) {
  .lh-20-pc {
    line-height: 2 !important;
  }
}
.lh-22 {
  line-height: 2.2 !important;
}

@media screen and (min-width: 768px) {
  .lh-22-pc {
    line-height: 2.2 !important;
  }
}
/* レター間隔 */
.ls-m10 {
  letter-spacing: -0.1em !important;
}

.ls-m5 {
  letter-spacing: -0.05em !important;
}

.ls-m3 {
  letter-spacing: -0.03em !important;
}

.ls-0 {
  letter-spacing: 0px !important;
}

.ls-1 {
  letter-spacing: 0.01em !important;
}

.ls-2 {
  letter-spacing: 0.02em !important;
}

.ls-3 {
  letter-spacing: 0.03em !important;
}

.ls-4 {
  letter-spacing: 0.04em !important;
}

.ls-5 {
  letter-spacing: 0.05em !important;
}

.ls-8 {
  letter-spacing: 0.08em !important;
}

.ls-10 {
  letter-spacing: 0.1em !important;
}

/* width */
.w-fit {
  width: fit-content !important;
}

.h-fit {
  height: fit-content !important;
}

.w-100 {
  width: 100% !important;
}

.h-100 {
  height: 100% !important;
}

/* display プロパティのマッピング */
.d-block {
  display: block !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-flex {
  display: flex !important;
}

.d-inline-flex {
  display: inline-flex !important;
}

.d-grid {
  display: grid !important;
}

.d-inline-grid {
  display: inline-grid !important;
}

.d-none {
  display: none !important;
}

.flex-wrap {
  flex-wrap: wrap !important;
}

.border-none {
  border: none !important;
}

.txt-en {
  font-family: "din-2014", sans-serif;
}

.txt-en-serif {
  font-family: "Cormorant Garamond", serif;
}

.txt-en-script {
  font-family: "luxurious-script", serif;
}

.txt-gothic {
  font-family: "Noto Sans JP", sans-serif;
}

.txt-serif {
  font-family: "Noto Serif JP", serif;
}

.txt-underline {
  text-decoration: underline;
}

.uppercase {
  text-transform: uppercase !important;
}

.capitalize {
  text-transform: capitalize !important;
}

.normal-case {
  text-transform: none !important;
}

/*--------------------------------------------------------------------------
その他
--------------------------------------------------------------------------*/
.sp {
  display: block !important;
}
@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

.pc {
  display: none !important;
}
@media screen and (min-width: 768px) {
  .pc {
    display: block !important;
  }
}

.no-link {
  pointer-events: none;
  text-decoration: none !important;
  cursor: initial;
}

@media screen and (min-width: 768px) {
  .no-hover-pc {
    pointer-events: none;
    cursor: initial;
  }
}

/*--------------------------------------------------------------------------
スマホ時の固定ボタン
---------------------------------------------------------------------------*/
.c-sp-fixedbtn {
  width: 100svw;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 997;
  background-color: rgba(255, 255, 255, 0.9);
  padding-block: 10px;
}
@media screen and (min-width: 768px) {
  .c-sp-fixedbtn {
    display: none;
  }
}
.c-sp-fixedbtn__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  width: min(90%, 600px);
  margin-inline: auto;
  gap: 6px;
}
.c-sp-fixedbtn__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  padding: 9px 12px;
  line-height: 1.2;
  background-color: #DB8997;
  height: 100%;
  border-radius: 56px;
  color: #fff;
}
.c-sp-fixedbtn__btn-black {
  background-color: #6B6667;
}

.c-pc-fixedbtn {
  position: fixed;
  top: 0;
  bottom: 0;
  margin-block: auto;
  right: 0;
  z-index: 997;
  height: fit-content;
  flex-direction: column;
  align-items: center;
  gap: 36px;
  width: fit-content;
  display: none;
}
@media screen and (min-width: 768px) {
  .c-pc-fixedbtn {
    display: flex;
  }
}
.c-pc-fixedbtn__txt {
  font-size: 14px;
  transform: rotate(-270deg);
  display: inline-block;
}
.c-pc-fixedbtn__icons {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.c-pc-fixedbtn__icon {
  width: 32px;
  height: 32px;
}
.c-pc-fixedbtn__icon a {
  display: block;
  width: 100%;
  height: 100%;
}
.c-pc-fixedbtn__icon a img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/*--------------------------------------------------------------------------
PC時の固定ボタン
---------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------
セクション
---------------------------------------------------------------------------*/
.c-sec {
  overflow-x: clip;
}
.c-sec__inner {
  width: min(90%, 1200px);
  margin-inline: auto;
}

/*--------------------------------------------------------------------------
c-pinktxt
---------------------------------------------------------------------------*/
.c-pinktxt {
  font-weight: 700;
  color: #D15C70;
  font-size: 18px;
  line-height: 1.4;
}

/*--------------------------------------------------------------------------
セクションタイトル01（英語+日本語）
---------------------------------------------------------------------------*/
.c-secttl01 {
  margin-bottom: 24px;
}
@media screen and (min-width: 768px) {
  .c-secttl01 {
    margin-bottom: 48px;
  }
}
.c-secttl01__en {
  color: #F2DEDE;
  font-family: "Cormorant Garamond", serif;
  line-height: 72%;
  font-size: min(12svw, 48px);
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .c-secttl01__en {
    font-size: min(7vw, 80px);
  }
}
.c-secttl01__jp {
  font-size: min(5.1svw, 20px);
  line-height: 1.4;
  font-weight: 500;
  margin-top: -16px;
}
@media screen and (min-width: 768px) {
  .c-secttl01__jp {
    font-size: 22px;
    margin-top: -20px;
  }
}
.c-secttl01-center {
  text-align: center;
  width: fit-content;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .c-secttl01-center-pc {
    text-align: center;
    width: fit-content;
    margin-inline: auto;
  }
}
@media screen and (min-width: 768px) {
  .c-secttl01-left-pc {
    text-align: left;
    margin-inline: 0;
  }
}

/*--------------------------------------------------------------------------
セクションタイトル02（下線）
---------------------------------------------------------------------------*/
.c-secttl02 {
  font-size: 18px;
  line-height: 1.4;
  font-weight: 500;
  position: relative;
  width: 100%;
  padding-bottom: 12px;
}
@media screen and (min-width: 768px) {
  .c-secttl02 {
    font-size: 24px;
    padding-bottom: 20px;
  }
}
.c-secttl02::after {
  content: "";
  display: block;
  height: 2px;
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  background-image: linear-gradient(to right, #DB8997 15%, #e2e2e2 15.1%);
}

/*--------------------------------------------------------------------------
セクションタイトル02（横線）
---------------------------------------------------------------------------*/
.c-secttl03 {
  line-height: 1.4;
  font-size: min(5svw, 20px);
  font-weight: bold;
  padding-left: 8px;
  border-left: 3px solid #DB8997;
}
@media screen and (min-width: 768px) {
  .c-secttl03 {
    font-size: 24px;
    padding-left: 12px;
    border-left: 3px solid #DB8997;
  }
}
.c-secttl03-sm {
  font-size: 16px;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .c-secttl03-sm {
    font-size: 18px;
  }
}

/*--------------------------------------------------------------------------
.c-asidettl サイドバーのタイトル
---------------------------------------------------------------------------*/
.c-asidettl {
  font-weight: 700;
  line-height: 1.4;
  padding: 12px;
  color: #fff;
  background-color: #BDA9AC;
  text-align: center;
}

/*--------------------------------------------------------------------------
サブタイトル ピンク太文字
---------------------------------------------------------------------------*/
.c-subttl {
  line-height: 1.4;
  font-size: min(4.6svw, 20px);
  font-weight: bold;
}
@media screen and (min-width: 768px) {
  .c-subttl {
    font-size: 20px;
  }
}

/*--------------------------------------------------------------------------
.c-btn ボタン
---------------------------------------------------------------------------*/
.c-btn {
  display: flex;
  align-items: center;
  padding-block: 14px;
  padding-inline: 24px 40px;
  color: #fff;
  background-color: #DB8997;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  max-width: min(264px, 100%);
  border-radius: 36px;
  position: relative;
}
@media screen and (min-width: 768px) {
  .c-btn {
    padding-block: 20px;
    max-width: min(280px, 100%);
  }
}
.c-btn::after {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  background-image: url(/assets/img/common/arw-btn-white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  right: 12px;
  top: 0;
  bottom: 0;
  margin-block: auto;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .c-btn::after {
    width: 24px;
    height: 24px;
  }
}
.c-btn:hover::after {
  transform: rotate(45deg);
}
.c-btn-black {
  background-color: #6B6667;
  color: #fff;
}
.c-btn-white {
  outline: 1px solid #666;
  outline-offset: -1px;
  background-color: #fff;
  color: #333333;
  font-weight: 400;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .c-btn-white {
    font-size: 16px;
  }
}
.c-btn-white::after {
  background-image: url(/assets/img/common/arw-btn-black.svg);
}
.c-btn-xs {
  padding-block: 10px;
  font-size: 12px;
}
@media screen and (min-width: 768px) {
  .c-btn-xs {
    padding-block: 12px;
    font-size: 14px;
  }
}
.c-btn-sm {
  padding-block: 10px;
  font-size: 14px;
}
@media screen and (min-width: 768px) {
  .c-btn-sm {
    padding-block: 12px;
  }
}
.c-btn-lg {
  padding-block: 18px;
  font-size: 18px;
}
@media screen and (min-width: 768px) {
  .c-btn-lg {
    padding-block: 22px;
  }
}
.c-btn-center {
  margin-inline: auto;
  justify-content: center;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-btn-left-pc {
    text-align: left;
    margin-inline: 0;
  }
}
.c-btn-noarw {
  padding-right: 24px;
  justify-content: center;
}
.c-btn-noarw::after {
  display: none;
}
.c-btn-noarw:hover {
  opacity: 0.8;
}

/*--------------------------------------------------------------------------
.c-anchor-link
---------------------------------------------------------------------------*/
.c-anchor-link {
  display: block;
  line-height: 1.3;
  font-weight: 500;
  text-align: center;
  background-color: #F3F3F3;
  border-radius: 6px;
  padding: 13px;
  padding-right: 24px;
  position: relative;
  container-type: inline-size;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.c-anchor-link__txt {
  font-size: 14px;
  letter-spacing: -0.03em;
}
@media screen and (min-width: 768px) {
  .c-anchor-link__txt {
    letter-spacing: 0;
    font-size: 14px;
  }
}
.c-anchor-link::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-top: 1px solid #888;
  border-right: 1px solid #888;
  position: absolute;
  top: -3px;
  bottom: 0;
  margin-block: auto;
  right: 11px;
  transform: rotate(135deg);
}

/*--------------------------------------------------------------------------
.c-card01
---------------------------------------------------------------------------*/
.c-card01 {
  overflow-x: clip;
  transition: 0.3s;
}
.c-card01__inner {
  height: 100%;
  display: block;
}
.c-card01 a {
  display: block;
}
.c-card01 p {
  line-height: 1.4;
}
.c-card01__txtblock {
  padding-top: 12px;
  display: flex;
  flex-direction: column;
  row-gap: 4px;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .c-card01__txtblock {
    row-gap: 6px;
  }
}
.c-card01__ttl {
  font-weight: 500;
  line-height: 1.6;
  font-size: 16px;
}
.c-card01.c-news-card .c-card01__inner {
  display: flex;
  justify-content: space-between;
  padding-block: 16px;
  border-bottom: 1px solid #e3e3e3;
}
@media screen and (min-width: 768px) {
  .c-card01.c-news-card .c-card01__inner {
    display: block;
    padding-block: 0;
    border-bottom: none;
  }
}
.c-card01.c-news-card .c-card01__txtblock {
  padding-top: 0;
  width: 68%;
}
@media screen and (min-width: 768px) {
  .c-card01.c-news-card .c-card01__txtblock {
    padding-top: 12px;
    width: 100%;
  }
}
.c-card01.c-news-card .c-card01__ttl {
  font-weight: 500;
}
.c-card01.c-news-card .c-card01__img {
  aspect-ratio: 120/94;
  width: 28%;
  height: fit-content;
}
@media screen and (min-width: 768px) {
  .c-card01.c-news-card .c-card01__img {
    aspect-ratio: unset;
    width: 100%;
  }
}
.c-card01.c-news-card .c-card01__img img {
  height: 100%;
  object-fit: cover;
}
.c-card01.c-news-card__date {
  color: #888;
}

/*--------------------------------------------------------------------------
.c-card02 
---------------------------------------------------------------------------*/
.c-card02 {
  border-radius: 8px;
  overflow: hidden;
  background-color: #fff;
}
.c-card02__inner {
  height: 100%;
  display: block;
}
.c-card02__inner:hover {
  opacity: 1;
}
.c-card02__inner:hover .c-card02__img img {
  transform: scale(1.03);
}
.c-card02__img {
  overflow: hidden;
}
.c-card02__img img {
  transition: 0.4s ease-out;
}
.c-card02__txtblock {
  padding: 20px 10px;
  display: grid;
  grid-auto-flow: row;
  row-gap: 4px;
}
@media screen and (min-width: 768px) {
  .c-card02__txtblock {
    padding: 16px 16px;
    row-gap: 6px;
  }
}
.c-card02__ttl {
  font-weight: 500;
  line-height: 1.6;
}

/*--------------------------------------------------------------------------
.c-pickup-card 記事のピックアップカード
---------------------------------------------------------------------------*/
.c-pickup-card {
  position: relative;
  container-type: inline-size;
}
.c-pickup-card::after {
  content: "PICKUP";
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Cormorant Garamond", serif;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.03em;
  position: absolute;
  top: 8px;
  left: 8px;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background-color: #DB8997;
}
@media screen and (min-width: 768px) {
  .c-pickup-card::after {
    top: 24px;
    left: 24px;
  }
}
.c-pickup-card__txtblock {
  padding-inline: 5%;
  padding-top: 8px;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .c-pickup-card__txtblock {
    background: linear-gradient(0deg, rgba(48, 48, 48, 0.6) 40%, rgba(102, 102, 102, 0) 100%);
    position: absolute;
    left: 0;
    bottom: 0;
    padding: 16px 24px;
    min-height: 12cqw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    line-height: 1.4;
    color: #fff;
    font-size: max(2.8cqw, 16px);
    position: absolute;
    bottom: 0;
    left: 0;
  }
}

@media screen and (min-width: 768px) {
  .c-pickup-swiper .swiper-button-prev {
    left: 24vw;
    z-index: 1;
  }
  .c-pickup-swiper .swiper-button-prev::after {
    background-image: url(/assets/img/common/slider-arw-prev-white.svg);
  }
}
@media screen and (min-width: 768px) {
  .c-pickup-swiper .swiper-button-next {
    right: 24vw;
    z-index: 1;
  }
  .c-pickup-swiper .swiper-button-next::after {
    background-image: url(/assets/img/common/slider-arw-next-white.svg);
  }
}

/*--------------------------------------------------------------------------
c-media 画像や動画など＋テキストを横並びに
---------------------------------------------------------------------------*/
.c-media {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media screen and (min-width: 768px) {
  .c-media {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}
@media screen and (min-width: 768px) {
  .c-media-reverse {
    flex-direction: row-reverse;
  }
}
@media screen and (min-width: 768px) {
  .c-media__body {
    width: 46%;
  }
}
.c-media__img {
  height: fit-content;
}
@media screen and (min-width: 768px) {
  .c-media__img {
    width: 46%;
  }
}

/*--------------------------------------------------------------------------
.c-details-item 詳細情報の項目
---------------------------------------------------------------------------*/
.c-details-item {
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0;
  display: flex;
  align-items: center;
}
.c-details-item__ttl {
  border-radius: 3px;
  display: inline-block;
  background-color: #BDA9AC;
  color: #fff;
  font-weight: 500;
  text-align: center;
  width: min(28%, 66px);
  padding: 4px 6px;
  line-height: 1.3;
  margin-right: 8px;
  font-size: 12px;
  white-space: nowrap;
  height: fit-content;
}
@media screen and (min-width: 768px) {
  .c-details-item__ttl {
    margin-right: 12px;
  }
}
.c-details-item__cont {
  width: 68%;
}
@media screen and (min-width: 768px) {
  .c-details-item__cont {
    width: unset;
  }
}
.c-details-item:has(+ .c-details-item) {
  margin-bottom: 6px;
}

/*--------------------------------------------------------------------------
.c-category 
---------------------------------------------------------------------------*/
.c-category {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.c-category__item a,
.c-category__item span {
  display: block;
  padding: 2px 5px;
  border-radius: 3px;
  border: 1px solid #E8A2AE;
  color: #DB8997;
  font-size: 11px;
  letter-spacing: -0.01em;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .c-category__item a,
  .c-category__item span {
    font-size: 12px;
    padding: 4px 6px;
  }
}
.c-category__item a.current,
.c-category__item span.current {
  background-color: #DB8997;
  color: #fff;
}
.c-category__item-lg a,
.c-category__item-lg span {
  font-size: 12px;
}
@media screen and (min-width: 768px) {
  .c-category__item-lg a,
  .c-category__item-lg span {
    font-size: 13px;
  }
}
.c-category-search {
  gap: 6px;
  padding: 6px 6px;
}

/*--------------------------------------------------------------------------
アイコン + 場所
---------------------------------------------------------------------------*/
.c-map {
  color: #888;
  font-size: 12px;
}
.c-map::before {
  content: "";
  width: 14px;
  height: 14px;
  display: inline-block;
  background-image: url(/assets/img/common/icon-map.svg);
  vertical-align: sub;
}

/*--------------------------------------------------------------------------
アコーディオン
---------------------------------------------------------------------------*/
.c-accordion-btn {
  cursor: pointer;
  transition: opacity 0.3s;
  position: relative;
}
.c-accordion-btn__arw {
  width: 18px;
  display: inline-flex;
}
.c-accordion-btn:hover {
  opacity: 0.7;
}
.c-accordion-btn::after, .c-accordion-btn::before {
  content: "";
  display: block;
  width: 12px;
  height: 1px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-block: auto;
  right: 8px;
  background-color: #fff;
  transition: 0.3s;
}
.c-accordion-btn::after {
  transform: rotate(90deg);
}
.c-accordion-btn.open::after {
  transform: rotate(0deg) scale(1, -1);
}

/*--------------------------------------------------------------------------
検索要素
---------------------------------------------------------------------------*/
.c-input {
  display: inline-block;
  border: 1px solid #e2e2e2;
  padding: 10px 8px;
  line-height: 1.5;
  font-size: 14px;
  background-color: #fff;
  border-radius: 0;
}
.c-input::placeholder {
  font-size: 12px;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .c-input::placeholder {
    font-size: 13px;
  }
}
.c-input-lg {
  padding-block: 13px;
}
@media screen and (min-width: 768px) {
  .c-input-lg {
    padding-block: 16px;
  }
}
.c-input-arw {
  position: relative;
  padding-right: 20px;
}
.c-input-arw::after {
  content: "";
  width: 12px;
  height: 12px;
  display: block;
  position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  background-image: url(/assets/img/common/arw-down-black.svg);
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.6;
}
.c-input-arw-right::after {
  transform: translateY(-50%) rotate(-90deg);
}

.c-searchbtn {
  color: #fff;
  background-color: #DB8997;
  padding: 10px 8px;
  line-height: 1.3;
  font-size: 14px;
  cursor: pointer;
  text-align: center;
  display: inline-block;
}
.c-searchbtn-lg {
  padding-block: 13px;
}
@media screen and (min-width: 768px) {
  .c-searchbtn-lg {
    padding-block: 16px;
  }
}

/*--------------------------------------------------------------------------
scroll right アニメーション
---------------------------------------------------------------------------*/
.c-scrollright {
  position: relative;
  width: 100px;
  margin-inline: auto 0;
  margin-top: 16px;
}
.c-scrollright::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: #dfdfdf;
  animation: stepScroll 2s ease infinite;
}

@keyframes stepScroll {
  0% {
    transform: scaleX(0);
    transform-origin: 0 0;
  }
  50% {
    transform: scaleX(1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scaleX(1);
    transform-origin: 100% 0;
  }
  100% {
    transform: scaleX(0);
    transform-origin: 100% 0;
  }
}
/*--------------------------------------------------------------------------
c-conditions-list 条件リスト
---------------------------------------------------------------------------*/
.c-conditions-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  padding: 4px;
  gap: 4px;
  max-height: 50vh;
  overflow-y: scroll;
}
@media screen and (min-width: 768px) {
  .c-conditions-list {
    max-height: unset;
    overflow-y: hidden;
  }
}

/*--------------------------------------------------------------------------
スライダー要素
---------------------------------------------------------------------------*/
.swiper-container {
  position: relative;
}

.swiper-slide {
  width: auto;
  height: auto;
}

/* 前へ次への矢印カスタマイズ */
.swiper-button-prev,
.swiper-button-next {
  display: none;
}
@media screen and (min-width: 768px) {
  .swiper-button-prev,
  .swiper-button-next {
    display: block !important;
    height: 42px;
    width: 42px;
    z-index: 0;
  }
}

@media screen and (min-width: 768px) {
  .swiper-button-prev {
    left: max(-5vw, -56px);
  }
}

@media screen and (min-width: 768px) {
  .swiper-button-next {
    right: max(-5vw, -56px);
  }
}

/* 前へ次への矢印カスタマイズ */
.swiper-button-prev::after,
.swiper-button-next::after {
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  margin: auto;
  display: block;
  width: 100%;
  height: 100%;
}

/* 前への矢印カスタマイズ */
.swiper-button-prev::after {
  background-image: url(/assets/img/common/slider-arw-prev.svg);
}

/* 次への矢印カスタマイズ */
.swiper-button-next::after {
  background-image: url(/assets/img/common/slider-arw-next.svg);
}

/* 画像サイズ調整 */
.swiper-slide img {
  height: auto;
  width: 100%;
}

.swiper-pagination {
  position: relative;
  margin-top: 16px;
  display: block;
  z-index: 0;
}
@media screen and (min-width: 768px) {
  .swiper-pagination {
    display: none;
    margin-top: 24px;
  }
}

.swiper-pagination-bullet {
  background-color: #A88A8F;
}
.swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: #A88A8F;
}

.c-slider-thumbnail {
  margin-top: 24px;
}
.c-slider-thumbnail .swiper-wrapper {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
}
@media screen and (min-width: 768px) {
  .c-slider-thumbnail .swiper-wrapper {
    display: flex;
    justify-content: space-between;
  }
}
.c-slider-thumbnail .swiper-slide {
  cursor: pointer;
  width: 100% !important;
}
@media screen and (min-width: 768px) {
  .c-slider-thumbnail .swiper-slide {
    width: 8.65% !important;
  }
}
.c-slider-thumbnail .swiper-slide.swiper-slide-thumb-active {
  opacity: 1;
  border: 2px solid #DB8997;
}

/*--------------------------------------------------------------------------
モーダルウィンドウ
---------------------------------------------------------------------------*/
.c-modal {
  padding: min(80px, 14%) min(80px, 5%);
  max-width: 800px;
}
@media screen and (min-width: 768px) {
  .c-modal {
    padding: 80px;
  }
}
.c-modal__cont {
  display: grid;
  grid-auto-flow: row;
  row-gap: 24px;
}
.c-modal__block {
  display: grid;
  grid-auto-flow: row;
  row-gap: 12px;
}
.c-modal__btnblock {
  text-align: center;
  margin-top: 16px;
}
@media screen and (min-width: 768px) {
  .c-modal__btnblock {
    margin-top: 24px;
  }
}
.c-modal__clear {
  text-decoration: underline;
  margin-top: 10px;
  display: inline-block;
  color: #333333 !important;
}
.c-modal .check-wrap.wp-loop {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  padding: 4px;
  gap: 4px;
  max-height: 50vh;
  overflow-y: scroll;
}
@media screen and (min-width: 768px) {
  .c-modal .check-wrap.wp-loop {
    max-height: unset;
    overflow-y: hidden;
  }
}

.remodal-close {
  left: unset;
  right: 8px;
  top: 8px;
}
.remodal-close::before {
  font-size: 32px;
}

/*--------------------------------------------------------------------------
下層ページタイトル
---------------------------------------------------------------------------*/
.c-pagemv {
  background: #FAF3F5;
  padding-block: 28px;
  margin-top: 64px;
}
@media screen and (min-width: 768px) {
  .c-pagemv {
    padding-block: 24px 40px;
    margin-top: 74px;
  }
}
.c-pagemv__inner {
  width: min(90%, 1200px);
  margin-inline: auto;
}
.c-pagemv__en {
  font-size: min(13svw, 64px);
  font-family: "Cormorant Garamond", serif;
  color: #DB8997;
  line-height: 0.8;
  margin-bottom: 10px;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .c-pagemv__en {
    margin-bottom: 10px;
    font-size: min(5svw, 64px);
  }
}
.c-pagemv__jp {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .c-pagemv__jp {
    font-size: 18px;
    letter-spacing: 0.05em;
  }
}

/*--------------------------------------------------------------------------
パンくず
---------------------------------------------------------------------------*/
.c-breadcrumb {
  display: none;
}
@media screen and (min-width: 768px) {
  .c-breadcrumb {
    display: flex;
    align-items: center;
    column-gap: 8px;
    margin-bottom: 16px;
  }
}
.c-breadcrumb__item {
  font-size: 13px;
  color: #888;
}
.c-breadcrumb__item a,
.c-breadcrumb__item span {
  font-size: 13px;
  color: #888;
}
.c-breadcrumb__item:not(.current)::after {
  content: ">";
  display: inline-block;
  margin-left: 8px;
  color: #888;
}

/*--------------------------------------------------------------------------
記事タイトルブロック
---------------------------------------------------------------------------*/
.c-article-ttlblock {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.c-article-ttlblock__details {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.c-article-ttlblock .c-share {
  width: fit-content;
}

/*--------------------------------------------------------------------------
Pagination
---------------------------------------------------------------------------*/
.pagination {
  display: flex;
  width: fit-content;
  margin-inline: auto;
  gap: 8px;
  margin-top: 40px;
}
@media screen and (min-width: 768px) {
  .pagination {
    margin-top: 48px;
  }
}
.pagination .page-item {
  width: 24px;
  height: 36px;
  border-radius: 50%;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .pagination .page-item {
    width: 24px;
    height: 40px;
  }
}
.pagination .page-item a {
  font-family: "din-2014", sans-serif;
  display: block;
  font-size: 14px;
  font-weight: 500;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0.7;
}
@media screen and (min-width: 768px) {
  .pagination .page-item a {
    font-size: 16px;
  }
}
.pagination .page-item.current a {
  color: #888;
  pointer-events: none;
}
.pagination .page-item.disabled {
  display: none;
}

.js-pagination-info {
  font-size: 16px;
}
.js-pagination-info .js-total {
  font-weight: 500;
  font-size: 22px;
}

/*--------------------------------------------------------------------------
タブ
---------------------------------------------------------------------------*/
.c-tab {
  display: grid;
  width: 90%;
  margin-inline: auto;
  column-gap: 6px;
}
@media screen and (min-width: 768px) {
  .c-tab {
    column-gap: 14px;
    width: 80%;
  }
}
.c-tab-2 {
  grid-template-columns: 1fr 1fr;
}
.c-tab__item {
  padding: 14px;
  text-align: center;
  cursor: pointer;
  font-weight: 500;
  background-color: #A88A8F;
  color: #fff;
  line-height: 1.4;
  transition: 0.3s;
  font-size: min(3.7svw, 14px);
}
@media screen and (min-width: 768px) {
  .c-tab__item {
    padding: 10px;
  }
}
.c-tab__item:hover {
  opacity: 0.7;
}
.c-tab__item.current {
  color: #333333;
  background-color: #fff;
}

.tab-content {
  display: none;
}
.tab-content.show {
  display: block;
}

/*--------------------------------------------------------------------------
テーブル
---------------------------------------------------------------------------*/
.c-table {
  width: 100%;
}
.c-table__tr {
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 768px) {
  .c-table__tr {
    display: flex;
  }
}
.c-table__th, .c-table__td {
  line-height: 1.4;
  text-align: left;
}
.c-table__th {
  color: #666;
  padding-top: 16px;
  padding-bottom: 8px;
}
@media screen and (min-width: 768px) {
  .c-table__th {
    border-bottom: 1px solid #E2E2E2;
    width: 10%;
    padding-block: 16px;
  }
}
.c-table__td {
  border-bottom: 1px solid #E2E2E2;
  padding-bottom: 16px;
}
@media screen and (min-width: 768px) {
  .c-table__td {
    width: 90%;
    padding-block: 16px;
  }
}

/*--------------------------------------------------------------------------
シェアボタン
---------------------------------------------------------------------------*/
.c-share {
  background-color: #F3F3F3;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.c-share__txt {
  font-size: 18px;
  font-family: "Cormorant Garamond", serif;
  display: flex;
  align-items: center;
}
.c-share__txt .arw {
  margin-bottom: 5px;
  margin-left: 6px;
}
.c-share__list {
  display: flex;
  align-items: center;
  column-gap: 12px;
}
.c-share__item {
  width: 26px;
  height: 26px;
}
.c-share a {
  display: block;
}
.c-share-lg {
  gap: 16px;
}
.c-share-lg .c-shaare__list {
  gap: 20px;
}
.c-share-lg .c-share__txt {
  font-size: 24px;
}
.c-share-lg .c-share__item {
  width: 32px;
  height: 32px;
}

/*--------------------------------------------------------------------------
.c-cta
---------------------------------------------------------------------------*/
.c-cta {
  background-color: #FAF3F5;
  border: 1px solid #DB8997;
  padding: 32px 5%;
}
@media screen and (min-width: 768px) {
  .c-cta {
    padding: 40px;
  }
}
.c-cta__inner {
  margin-inline: auto;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-cta__inner {
    width: min(80%, 480px);
  }
}
.c-cta__intro {
  font-size: 16px;
  line-height: 1.4;
  margin-bottom: 6px;
}
@media screen and (min-width: 768px) {
  .c-cta__intro {
    font-size: 18px;
    margin-bottom: 12px;
  }
}
.c-cta__btnlist {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 8px;
}
@media screen and (min-width: 768px) {
  .c-cta__btnlist {
    row-gap: 12px;
  }
}
.c-cta .c-btn {
  max-width: unset;
  font-size: min(4.1svw, 16px);
}
@media screen and (min-width: 768px) {
  .c-cta .c-btn {
    font-size: 18px;
  }
}
.c-cta-tel {
  margin-top: 24px;
  font-family: "din-2014", sans-serif;
  font-size: min(10svw, 40px);
  line-height: 1;
  display: block;
}
.c-cta-tel span {
  font-size: 24px;
}
@media screen and (min-width: 768px) {
  .c-cta-tel {
    margin-top: 32px;
  }
}
.c-cta-tel__sm {
  font-size: 13px;
  margin-top: 8px;
}

/*--------------------------------------------------------------------------
.c-searchvenue 
---------------------------------------------------------------------------*/
.c-search-venue {
  display: flex;
}
.c-search-venue input,
.c-search-venue .c-searchbtn {
  height: 42px !important;
}

/*--------------------------------------------------------------------------
c-date
---------------------------------------------------------------------------*/
.c-date {
  color: #888;
  font-family: "din-2014", sans-serif;
}

.c-link-pink {
  color: #DB8997;
  text-decoration: underline;
}

/*--------------------------------------------------------------------------
サイドバーありのメインコンテンツ
---------------------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .l-with-sidebar {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
  }
}
.l-with-sidebar__aside {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 16px;
  margin-inline: calc(50% - 50svw);
  margin-bottom: 24px;
  background-color: #FAF3F5;
  padding-inline: 5%;
  padding-block: 24px;
}
@media screen and (min-width: 768px) {
  .l-with-sidebar__aside {
    row-gap: 32px;
    margin-inline: 0;
    margin-bottom: 0;
    background-color: transparent;
    padding-inline: 0;
    padding-block: 0;
    width: min(25%, 280px);
    position: sticky;
    top: 100px;
    right: 0;
    height: fit-content;
  }
}
@media screen and (min-width: 768px) {
  .l-with-sidebar__main {
    width: 72%;
  }
}

/*--------------------------------------------------------------------------
MV
---------------------------------------------------------------------------*/
.p-top-mv {
  position: relative;
  background-color: #FAF3F5;
  padding-bottom: 24px;
}
@media screen and (min-width: 768px) {
  .p-top-mv {
    padding-bottom: 0;
  }
}
.p-top-mv__txt {
  width: 90svw;
  position: absolute;
  top: 14svw;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .p-top-mv__txt {
    left: 5vw;
    top: 9vw;
    width: 34vw;
    transform: none;
  }
}
.p-top-mv__banner {
  width: min(90%, 1200px);
  margin-inline: auto;
  margin-top: 16px;
}
@media screen and (min-width: 768px) {
  .p-top-mv__banner {
    position: absolute;
    top: max(70px, 6vw);
    right: 1.7vw;
    width: max(15vw, 140px);
    margin-top: 0;
  }
}
.p-top-mv__banner a:hover {
  opacity: 0.9;
}

.p-top-searchvenue {
  width: min(90%, 1200px);
  margin-inline: auto;
  margin-top: 16px;
  container-type: inline-size;
}
@media screen and (min-width: 768px) {
  .p-top-searchvenue {
    margin-top: 0;
    position: absolute;
    left: 6.8vw;
    top: 32vw;
    width: 32vw;
  }
}
.p-top-searchvenue__ttl {
  color: #fff;
  background-color: #DB8997;
  line-height: 1.6;
  padding-block: 12px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
.p-top-searchvenue__ttl::before {
  content: "";
  width: 20px;
  height: 20px;
  display: block;
  background-image: url(/assets/img/common/icon-chapel.svg);
  background-size: cover;
}
.p-top-searchvenue__cont {
  background: rgba(255, 255, 255, 0.8);
  padding: 8px;
}
@media screen and (min-width: 768px) {
  .p-top-searchvenue__cont {
    padding: 4cqw 3cqw;
  }
}
.p-top-searchvenue__wrap {
  display: flex;
}
.p-top-searchvenue__wrap .c-input,
.p-top-searchvenue__wrap button {
  height: 45px;
}
@media screen and (min-width: 768px) {
  .p-top-searchvenue__wrap .c-input,
  .p-top-searchvenue__wrap button {
    height: 52px;
  }
}
.p-top-searchvenue__wrap button {
  padding: 0;
}
.p-top-searchvenue__wrap .c-input {
  width: calc(100% - 45px);
}
.p-top-searchvenue__wrap .c-searchbtn {
  width: 45px;
  height: 100%;
}
.p-top-searchvenue__refine {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px;
  margin-top: 4px;
}
.p-top-searchvenue__refine .c-input {
  font-size: min(4.4cqw, 12px);
  color: #bbb;
  width: 100%;
  letter-spacing: -0.03em;
  padding-inline: 2cqw;
  height: 45px;
}
@media screen and (min-width: 768px) {
  .p-top-searchvenue__refine .c-input {
    height: 52px;
  }
}
.p-top-searchvenue__refine .c-input::after {
  right: 0;
}
@media screen and (min-width: 1024px) {
  .p-top-searchvenue__refine .c-input {
    font-size: 13px;
  }
}

/*--------------------------------------------------------------------------
セクション
---------------------------------------------------------------------------*/
.p-top .c-sec__inner {
  padding-block: 56px 64px;
}
@media screen and (min-width: 768px) {
  .p-top .c-sec__inner {
    padding-block: 96px;
  }
}

/*--------------------------------------------------------------------------
無料相談フェア
---------------------------------------------------------------------------*/
#p-top-fair-swiper {
  margin-inline: -5%;
}
@media screen and (min-width: 768px) {
  #p-top-fair-swiper {
    width: 87.5%;
    margin-inline: auto;
  }
}

/*--------------------------------------------------------------------------
特典
---------------------------------------------------------------------------*/
.p-top-offer__list {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .p-top-offer__list {
    flex-direction: row;
    justify-content: center;
    column-gap: min(4vw, 60px);
    flex-wrap: wrap;
  }
}

.p-top-offer-card {
  padding-block: 16px;
  border-bottom: 2px solid #fff;
}
@media screen and (min-width: 768px) {
  .p-top-offer-card {
    width: 30%;
    padding-block: 0;
    border: none;
  }
}
.p-top-offer-card__inner {
  display: flex;
  align-items: center;
  column-gap: 2svw;
}
@media screen and (min-width: 768px) {
  .p-top-offer-card__inner {
    display: block;
  }
}
.p-top-offer-card__img {
  width: 27%;
}
@media screen and (min-width: 768px) {
  .p-top-offer-card__img {
    width: 100%;
  }
}
.p-top-offer-card__txtblock {
  padding-top: 8px;
}
@media screen and (min-width: 768px) {
  .p-top-offer-card__txtblock {
    padding-top: 12px;
  }
}
.p-top-offer-card__desc {
  line-height: 1.4;
  font-size: min(3.3svw, 20px);
  margin-bottom: 4px;
}
@media screen and (min-width: 768px) {
  .p-top-offer-card__desc {
    font-size: 13px;
  }
}
.p-top-offer-card__ttl {
  line-height: 1.4;
  font-size: min(4.6svw, 28px);
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .p-top-offer-card__ttl {
    font-size: 20px;
  }
}

/*--------------------------------------------------------------------------
NEWS
---------------------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .p-top-news .c-sec__inner {
    display: flex;
    justify-content: space-between;
    max-width: 1000px;
    margin-inline: auto;
  }
}
.p-top-news__list {
  max-width: 630px;
}
.p-top-news-item {
  border-bottom: 1px solid #ddd;
}
.p-top-news-item__inner {
  display: block;
  padding-block: 12px;
}
@media screen and (min-width: 768px) {
  .p-top-news-item__inner {
    padding-block: 24px;
    display: flex;
    align-items: center;
  }
}
.p-top-news-item time {
  font-size: 12px;
  color: #888;
  line-height: 1.4;
  margin-bottom: 4px;
  display: block;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .p-top-news-item time {
    font-size: 13px;
    margin-bottom: 0;
    margin-right: min(2.7vw, 48px);
  }
}
.p-top-news-item__txt {
  font-size: 13px;
  line-height: 1.6;
  display: block;
}
@media screen and (min-width: 768px) {
  .p-top-news-item__txt {
    font-size: 14px;
  }
}

/*--------------------------------------------------------------------------
Reason
---------------------------------------------------------------------------*/
.p-top-reason .c-secttl01__en {
  font-size: 80px;
}
@media screen and (min-width: 768px) {
  .p-top-reason .c-secttl01__en {
    font-size: min(8vw, 112px);
  }
}
.p-top-reason__list {
  display: grid;
  grid-auto-flow: row;
  gap: 16px;
  max-width: 1100px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-top-reason__list {
    grid-template-columns: repeat(3, 1fr);
    column-gap: min(2vw, 48px);
  }
}
.p-top-reason-card {
  position: relative;
  container-type: inline-size;
  /* boxの影 (filterプロパティ未対応のブラウザ) */
}
.p-top-reason-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: conic-gradient(from 201deg, #f4bdc6 0%, #f4f9c3 53%, #d2f0eb 72%, #f4bdc6 100%);
  filter: blur(8px);
}
.p-top-reason-card__inner {
  background-color: #fff;
  padding-inline: 7cqw;
  padding-block: 24px 28px;
  border-radius: 8px;
  position: relative;
  z-index: 1;
  height: 100%;
}
@media screen and (min-width: 768px) {
  .p-top-reason-card__inner {
    padding-inline: 9cqw;
    padding-block: 11cqw 12cqw;
  }
}
.p-top-reason-card__inner::before {
  content: "";
  width: 1px;
  height: 90%;
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 4px;
  background: #FDE3EB;
}
@media screen and (min-width: 768px) {
  .p-top-reason-card__inner::before {
    left: 6px;
  }
}
.p-top-reason-card__inner::after {
  content: "";
  height: 1px;
  width: 92%;
  display: block;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 4px;
  background: #DAECE9;
}
@media screen and (min-width: 768px) {
  .p-top-reason-card__inner::after {
    bottom: 6px;
  }
}
.p-top-reason-card__ttl {
  color: #D15C70;
  font-size: min(5.2cqw, 20px);
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  letter-spacing: -0.03em;
  margin-bottom: 8px;
}
@media screen and (min-width: 768px) {
  .p-top-reason-card__ttl {
    margin-bottom: 12px;
    font-size: max(5.2cqw, 18px);
  }
}
.p-top-reason-card__desc {
  font-size: 14px;
  line-height: 1.8;
  max-width: 450px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-top-reason-card__desc {
    line-height: 2;
  }
}

/*--------------------------------------------------------------------------
会場紹介の流れ
---------------------------------------------------------------------------*/
.p-top-step__container {
  overflow-x: scroll;
}
@media screen and (min-width: 768px) {
  .p-top-step__container {
    overflow-x: hidden;
  }
}
.p-top-step__list {
  display: flex;
  column-gap: 20px;
  min-width: 890px;
}
@media screen and (min-width: 768px) {
  .p-top-step__list {
    column-gap: 40px;
  }
}
.p-top-step-item {
  position: relative;
  width: 24%;
  container-type: inline-size;
}
.p-top-step-item:not(:last-child)::after {
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  background-image: url(/assets/img/top/icon-step-arw.svg);
  position: absolute;
  right: 8px;
  top: 10%;
}
@media screen and (min-width: 768px) {
  .p-top-step-item:not(:last-child)::after {
    right: -27px;
    top: 39%;
  }
}
.p-top-step-item__img {
  width: 46%;
}
@media screen and (min-width: 768px) {
  .p-top-step-item__img {
    width: 60%;
    margin-inline: auto;
  }
}
.p-top-step-item__ttl {
  font-size: 8.6cqw;
  line-height: 1.4;
  font-weight: 500;
  margin-top: 8px;
}
@media screen and (min-width: 768px) {
  .p-top-step-item__ttl {
    text-align: center;
    margin-block: 16px 8px;
  }
}
.p-top-step-item__desc {
  font-size: 13px;
  line-height: 1.6;
  margin-top: 8px;
}
.p-top-step .c-scrollright {
  margin-inline: auto -5%;
}

/*--------------------------------------------------------------------------
結婚式場を探す
---------------------------------------------------------------------------*/
.p-top-venue .c-secttl01__en {
  font-size: min(8.2svw, 80px);
}
@media screen and (min-width: 768px) {
  .p-top-venue .c-secttl01__en {
    font-size: min(7vw, 80px);
  }
}
.p-top-venue .p-top-searchvenue__wrap {
  max-width: 516px;
  margin-inline: auto;
}
.p-top-venue .p-top-searchvenue__wrap .c-searchbtn {
  width: 64px;
}

#p-top-venue-swiper {
  margin-inline: -5%;
}
@media screen and (min-width: 768px) {
  #p-top-venue-swiper {
    margin-inline: auto;
  }
}
#p-top-venue-swiper .c-card02__img {
  aspect-ratio: 420/316;
  overflow: hidden;
}

.p-top-category__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 12px;
}
@media screen and (min-width: 768px) {
  .p-top-category__list {
    gap: min(1.2vw, 16px);
    grid-template-columns: repeat(5, 1fr);
  }
}
.p-top-category-item {
  position: relative;
  container-type: inline-size;
  overflow: hidden;
}
.p-top-category-item__img {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  transition: 0.7s cubic-bezier(0.25, 1, 0.5, 1);
  top: 0;
  left: 0;
}
.p-top-category-item a {
  color: #fff;
  position: relative;
  z-index: 1;
  background-color: rgba(54, 54, 54, 0.4);
  background-blend-mode: multiply;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 168/125;
  font-family: "Noto Serif JP", serif;
  font-size: min(11cqw, 22px);
  font-weight: 500;
  background-size: cover;
  background-position: center;
  transition: background-size 0.3s;
}
.p-top-category-item a::after {
  content: "";
  width: 94%;
  height: 94%;
  border: 1px solid #FAF3F5;
  position: absolute;
  display: block;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-top-category-item a:hover {
  opacity: 1;
}
.p-top-category-item:hover .p-top-category-item__img {
  transform: scale(1.05);
}

/*--------------------------------------------------------------------------
Voice
---------------------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .p-top-voice .c-sec__inner {
    display: flex;
  }
}
.p-top-voice .c-card01__img {
  aspect-ratio: 1/1;
  overflow: hidden;
}

#p-top-voice-swiper {
  margin-inline: -5%;
}
@media screen and (min-width: 768px) {
  #p-top-voice-swiper {
    margin-inline: auto;
    margin-left: 5%;
    margin-right: calc(50% - 50vw);
    width: 58vw;
  }
}
@media screen and (min-width: 768px) {
  #p-top-voice-swiper .swiper {
    padding-right: 30px;
  }
}
#p-top-voice-swiper .swiper-button-prev,
#p-top-voice-swiper .swiper-button-next {
  bottom: -60px;
  top: unset;
  width: 32px;
}
#p-top-voice-swiper .swiper-button-prev {
  left: 0;
}
#p-top-voice-swiper .swiper-button-next {
  left: 60px;
}

/*--------------------------------------------------------------------------
マガジン
---------------------------------------------------------------------------*/
.p-top-magazine {
  border-top: 3px solid #FAF3F5;
}
@media screen and (min-width: 768px) {
  .p-top-magazine__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
  }
}
.p-top-magazine-item__inner {
  padding-block: 16px;
  border-bottom: 1px solid #ddd;
  display: grid;
  grid-template-columns: 0.3fr 0.7fr;
  gap: 16px;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-top-magazine-item__inner {
    display: block;
    padding-block: 0;
    border: none;
  }
}
.p-top-magazine-item__txtblock {
  height: fit-content;
}
@media screen and (min-width: 768px) {
  .p-top-magazine-item__txtblock {
    margin-left: 16px;
    padding-left: 16px;
    border-left: 1px solid #BDA9AC;
    margin-top: -24px;
    padding-top: 40px;
    position: relative;
  }
}
.p-top-magazine-item__ttl {
  font-size: 14px;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-top-magazine-item__ttl {
    font-size: 16px;
  }
}

/*--------------------------------------------------------------------------
ページリンク
---------------------------------------------------------------------------*/
.p-top-pagelink__container {
  display: grid;
  grid-auto-flow: row;
  gap: 1px;
  padding-bottom: 32px;
}
@media screen and (min-width: 768px) {
  .p-top-pagelink__container {
    padding-bottom: 0;
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-top-pagelink-item {
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .p-top-pagelink-item {
    min-height: 240px;
  }
}
.p-top-pagelink-item__inner {
  display: block;
}
@media screen and (min-width: 768px) {
  .p-top-pagelink-item__inner {
    height: 100%;
  }
}
.p-top-pagelink-item__inner:hover {
  opacity: 1;
}
.p-top-pagelink-item__inner:hover .p-top-pagelink-item__img {
  transform: scale(1.04);
}
.p-top-pagelink-item__img {
  position: relative;
  transition: 0.4s ease-in-out;
  height: 100%;
}
.p-top-pagelink-item__img img {
  height: 100%;
  object-fit: cover;
}
.p-top-pagelink-item__img::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: rgba(41, 38, 38, 0.35);
}
.p-top-pagelink-item__txt {
  position: absolute;
  left: 5%;
  top: 45%;
  transform: translateY(-50%);
  color: #fff;
}
.p-top-pagelink-item__en {
  font-family: "luxurious-script", serif;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-top-pagelink-item__en {
    font-size: 20px;
  }
}
.p-top-pagelink-item__jp {
  font-size: 18px;
  font-family: "Noto Serif JP", serif;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-top-pagelink-item__jp {
    font-size: 22px;
  }
}

/*--------------------------------------------------------------------------
ボタンセクション
---------------------------------------------------------------------------*/
.p-top-btnsec {
  background-image: url(/assets/img/top/btnsec-bg-sp.jpg);
  background-size: cover;
  background-position: center;
}
@media screen and (min-width: 768px) {
  .p-top-btnsec {
    background-image: url(/assets/img/top/btnsec-bg-pc.jpg);
  }
}
.p-top-btnsec .c-sec__inner {
  padding-bottom: 64px;
  padding-top: 24px;
}
@media screen and (min-width: 768px) {
  .p-top-btnsec .c-sec__inner {
    padding-top: 126px;
    padding-bottom: 180px;
  }
}
.p-top-btnsec__upper {
  display: grid;
  grid-auto-flow: row;
  gap: 12px;
  margin-bottom: 12px;
}
@media screen and (min-width: 768px) {
  .p-top-btnsec__upper {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 0;
  }
}
.p-top-btnsec__lower {
  display: grid;
  grid-auto-flow: row;
  gap: 12px;
}
@media screen and (min-width: 768px) {
  .p-top-btnsec__lower {
    margin-top: 20px;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}
.p-top-btnsec-btn {
  container-type: inline-size;
  height: 64px;
}
@media screen and (min-width: 768px) {
  .p-top-btnsec-btn {
    height: 110px;
  }
}
.p-top-btnsec-btn__inner {
  display: block;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgba(255, 255, 255, 0.9);
  position: relative;
}
.p-top-btnsec-btn__inner:hover {
  background: #fff;
  opacity: 1;
}
.p-top-btnsec-btn__inner::before {
  content: "";
  display: block;
  width: 98%;
  height: 92%;
  border: 1px solid #999;
  position: absolute;
  top: 4%;
  left: 1%;
}
.p-top-btnsec-btn__inner::after {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  border-top: 1px solid #888;
  border-right: 1px solid #888;
  transform: rotate(45deg) translateY(-50%);
  position: absolute;
  top: 50%;
  right: 10cqw;
}
.p-top-btnsec-btn__icon {
  margin-right: 5cqw;
  margin-left: -8cqw;
  width: min(16cqw, 56px);
}
@media screen and (min-width: 768px) {
  .p-top-btnsec-btn__icon {
    width: min(20cqw, 56px);
  }
}
.p-top-btnsec-btn__txt {
  font-family: "Noto Serif JP", serif;
  line-height: 1.4;
  font-size: min(5.5cqw, 18px);
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .p-top-btnsec-btn-lg {
    height: 130px;
  }
}
@media screen and (min-width: 768px) {
  .p-top-btnsec-btn-lg .p-top-btnsec-btn__txt {
    font-size: min(7cqw, 28px);
  }
}
.p-top-btnsec .swiper-wrapper {
  transition-timing-function: linear;
}
.p-top-btnsec-swiper__txt {
  font-size: 11vw;
  text-transform: uppercase;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  color: rgba(252, 250, 252, 0.4);
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .p-top-btnsec-swiper__txt {
    font-size: 6.2vw;
  }
}

/*--------------------------------------------------------------------------
フッター
---------------------------------------------------------------------------*/
body:has(.p-top) .l-footer {
  margin-top: 0;
}

/*--------------------------------------------------------------------------
カード（トップページ、フェアページ）
---------------------------------------------------------------------------*/
.p-fair-card__inner {
  display: block;
}
.p-fair-card__btnlist {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 5px;
}
@media screen and (min-width: 768px) {
  .p-fair-card__btnlist {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
}
.p-fair-card__btnlist .c-btn {
  max-width: unset;
  padding-inline: 2px;
  letter-spacing: -0.01em;
  height: 100%;
}
.p-fair-card__txtblock {
  display: grid;
  grid-auto-flow: row;
  row-gap: 8px;
  padding-top: 8px;
}
@media screen and (min-width: 768px) {
  .p-fair-card__txtblock {
    row-gap: 12px;
    padding-top: 16px;
  }
}
.p-fair-card__ttl {
  font-weight: bold;
  font-size: 16px;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .p-fair-card__ttl {
    font-size: 20px;
  }
}
.p-fair-card .c-details-item__ttl {
  font-size: 11px;
  padding-inline: 4px;
}
@media screen and (min-width: 768px) {
  .p-fair-card .c-details-item__ttl {
    font-size: 12px;
  }
}

/*--------------------------------------------------------------------------
カレンダー
---------------------------------------------------------------------------*/
.calendar_container .mark span {
  display: inline-block;
  width: 36px;
  height: 16px;
  padding-top: 2px;
  background: #f6cfe1;
  margin-right: 11px;
  vertical-align: middle;
}

.p-fair-search-calendar__inner {
  max-width: 840px;
  margin-inline: auto;
}

.calender_block {
  background-color: #fff;
  overflow-x: scroll;
}
@media screen and (min-width: 768px) {
  .calender_block {
    overflow-x: hidden;
  }
}

.calender_block .month h4,
.calender_block .month h5 {
  color: #666;
  font-size: 17px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 8px;
}

.calender_block .month table {
  width: 100%;
  color: #666;
  font-size: 14px;
  text-align: center;
  background: url(/assets/img/fair/calender_border.png) repeat-x 0 0;
}

.calender_block table th {
  text-align: center;
  padding: 4px 0 3px;
  background: url(/assets/img/fair/calender_border.png) repeat-x 0 bottom;
}

.calender_block table .sun, .calender_block table .str {
  color: #db699c;
}

.calender_block table td {
  padding: 1px;
  padding-top: 4px;
}

.calender_block table td span {
  width: min(40px, 100%);
  height: min(40px, 100%);
  aspect-ratio: 1/1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: underline;
  border-radius: 50%;
  background: #efefef;
}

.calender_block table td.pastday span {
  color: #ccc;
  cursor: default;
  background: #f7f7f7;
  text-decoration: none;
}

/*--------------------------------------------------------------------------
フェアページ
おすすめのフェア
---------------------------------------------------------------------------*/
.p-fair-recommend {
  background: linear-gradient(0deg, rgba(236, 172, 184, 0.3) 0%, rgba(255, 255, 255, 0.3) 80.77%);
}
.p-fair-recommend .swiper-container {
  margin-inline: calc(50% - 50svw);
}
@media screen and (min-width: 768px) {
  .p-fair-recommend .swiper-container {
    margin-inline: 0;
  }
}
.p-fair-recommend .swiper {
  padding-right: 40px;
}
@media screen and (min-width: 768px) {
  .p-fair-recommend .swiper {
    padding-right: 24px;
  }
}
.p-fair-recommend .p-fair-card {
  border-radius: 8px;
  gap: 0;
  background: #fff;
  overflow: hidden;
}
.p-fair-recommend .p-fair-card:first-child {
  margin-left: 20px;
}
.p-fair-recommend .p-fair-card:last-child {
  margin-right: 20px;
}
.p-fair-recommend .p-fair-card__txtblock {
  background-color: #fff;
  padding: 12px 10px 16px;
}
@media screen and (min-width: 768px) {
  .p-fair-recommend .p-fair-card__txtblock {
    padding: 16px 24px 24px;
  }
}
.p-fair-recommend .p-fair-card__ttl {
  color: #D15C70;
}
.p-fair-recommend .p-fair-card__btnlist {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.p-fair-recommend .p-fair-card .c-details-item {
  font-size: 12px;
}
@media screen and (min-width: 768px) {
  .p-fair-recommend .p-fair-card .c-details-item {
    font-size: 13px;
  }
}

/*--------------------------------------------------------------------------
絞り込み
---------------------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .p-fair-search-refine .c-tab {
    width: 96%;
  }
}
.p-fair-search-refine .c-tab__item.current {
  background-color: #FAF3F5;
}
.p-fair-search-refine .tab-content {
  background-color: #FAF3F5;
  padding: 24px 8px;
}
@media screen and (min-width: 768px) {
  .p-fair-search-refine .tab-content {
    padding: 32px;
  }
}
.p-fair-search-refine div#con_calender_pc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8%;
  padding: 12px 16px;
  min-width: min(640px, 170svw);
}
@media screen and (min-width: 768px) {
  .p-fair-search-refine div#con_calender_pc {
    padding: 12px 32px;
  }
}

/*--------------------------------------------------------------------------
フェア一覧
---------------------------------------------------------------------------*/
.p-fair-search-list {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 32px;
}
@media screen and (min-width: 768px) {
  .p-fair-search-list {
    row-gap: 40px;
  }
}

.p-fair-search-item {
  border-radius: 8px;
  background: #FFF;
  gap: 0;
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.15);
}
@media screen and (min-width: 768px) {
  .p-fair-search-item {
    align-items: stretch;
  }
}
.p-fair-search-item__ttl {
  font-weight: bold;
  font-size: 18px;
  line-height: 1.4;
  letter-spacing: 0;
  color: #D15C70;
}
@media screen and (min-width: 768px) {
  .p-fair-search-item__ttl {
    font-size: 20px;
  }
}
.p-fair-search-item__btnlist {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
@media screen and (min-width: 768px) {
  .p-fair-search-item .c-media__img {
    width: 40%;
    height: auto;
  }
}
.p-fair-search-item .c-media__img img {
  height: 100%;
  object-fit: cover;
}
.p-fair-search-item .c-media__body {
  padding: 16px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  row-gap: 8px;
}
@media screen and (min-width: 768px) {
  .p-fair-search-item .c-media__body {
    width: 60%;
    padding: 32px;
    row-gap: 12px;
  }
}
.p-fair-search-item .c-details-item {
  font-size: 13px;
}
@media screen and (min-width: 768px) {
  .p-fair-search-item .c-details-item {
    font-size: 14px;
  }
}
.p-fair-search-item .c-btn {
  max-width: unset;
  padding-inline: 5px;
  letter-spacing: -0.05em;
}
@media screen and (min-width: 768px) {
  .p-fair-search-item .c-btn {
    letter-spacing: 0;
    padding-inline: 12px;
  }
}

/*--------------------------------------------------------------------------
フェア詳細ページ
---------------------------------------------------------------------------*/
.p-fair-single-cont__article {
  padding-bottom: 40px;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-fair-single-cont__article {
    padding-bottom: 56px;
  }
}
.p-fair-single-cont__article::after {
  content: "";
  display: block;
  height: 2px;
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  background-image: linear-gradient(to right, #DB8997 15%, #e2e2e2 15.1%);
}
.p-fair-single-cont__details {
  padding: 16px 12px;
}
@media screen and (min-width: 768px) {
  .p-fair-single-cont__details {
    padding: 24px 32px;
  }
}
.p-fair-single-cont .c-details-item__ttl {
  background-color: #fff;
  color: #D15C70;
  font-size: 13px;
}
.p-fair-single-cont .c-details-item__cont {
  font-size: 14px;
}
.p-fair-single-cont img {
  width: fit-content;
  max-width: 100%;
}

.calendar_container .month:not(:last-child) {
  margin-bottom: 16px;
}
.calendar_container .month table td span {
  background: #f6cfe1;
  text-decoration: none;
}
.calendar_container .month table td.pastday span {
  background: #f7f7f7;
}

div#con_calender_pc {
  overflow-x: scroll;
}
@media screen and (min-width: 768px) {
  div#con_calender_pc {
    overflow-x: hidden;
  }
}
div#con_calender_pc .calender_block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8%;
  min-width: min(640px, 170svw);
}
@media screen and (min-width: 768px) {
  div#con_calender_pc .calender_block {
    display: block;
    min-width: unset;
  }
}

.p-fair-single #main_detail h2,
.p-fair-single #fair_contents h2 {
  margin-bottom: 24px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 500;
  position: relative;
  width: 100%;
  padding-bottom: 12px;
  font-size: min(4.6svw, 24px);
  font-weight: 500;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .p-fair-single #main_detail h2,
  .p-fair-single #fair_contents h2 {
    font-size: 24px;
    padding-bottom: 20px;
  }
}
.p-fair-single #main_detail h2::after,
.p-fair-single #fair_contents h2::after {
  content: "";
  display: block;
  height: 2px;
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  background-image: linear-gradient(to right, #DB8997 15%, #e2e2e2 15.1%);
}
.p-fair-single #main_detail {
  margin-top: 40px;
}
.p-fair-single #main_detail h2 {
  color: #D15C70;
}
.p-fair-single #fair_contents {
  margin-top: 48px;
}
.p-fair-single #fair_contents ul li {
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
  margin-bottom: 32px;
}
@media screen and (min-width: 768px) {
  .p-fair-single #fair_contents ul li {
    flex-direction: row;
    justify-content: space-between;
  }
}
@media screen and (min-width: 768px) {
  .p-fair-single #fair_contents ul li dl {
    width: 50%;
  }
}
.p-fair-single #fair_contents ul li dl dt {
  font-size: min(4.1svw, 18px);
  font-weight: 700;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .p-fair-single #fair_contents ul li .img {
    width: 45%;
  }
}
.p-fair-single #fair_contents ul li .img img {
  object-fit: cover;
  height: 100%;
}
.p-fair-single .c-cta {
  margin-top: 40px;
}
.p-fair-single .c-cta__intro {
  font-weight: 500;
  color: #DB8997;
}
.p-fair-single .c-cta .c-btn {
  max-width: 330px;
}

/*--------------------------------------------------------------------------
検索ブロック
---------------------------------------------------------------------------*/
.p-venue-search__refine {
  display: flex;
  flex-direction: column;
  row-gap: 4px;
}
@media screen and (min-width: 768px) {
  .p-venue-search__refine {
    flex-direction: row;
    gap: 0;
  }
}
.p-venue-search__refine .c-input {
  width: 100%;
}
.p-venue-search__refine .category {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-venue-search__refine .category {
    width: 30%;
  }
}
.p-venue-search__refine .conditions {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-venue-search__refine .conditions {
    width: 50%;
  }
}
.p-venue-search__refine .c-searchbtn {
  width: 100%;
  border-radius: 6px;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-venue-search__refine .c-searchbtn {
    width: 19.5%;
    margin-left: 0.5%;
  }
}

.p-venue-openfav {
  display: flex;
  align-items: center;
  width: fit-content;
  border: 1px solid #DB8997;
  border-radius: 6px;
  padding: 8px 16px;
}
.p-venue-openfav__star {
  display: flex;
  align-items: center;
  width: 16px;
  height: 16px;
  margin-right: 4px;
}
.p-venue-openfav__txt {
  display: block;
  color: #DB8997;
  font-size: 14px;
}

/*--------------------------------------------------------------------------
ランキング
---------------------------------------------------------------------------*/
.p-venue-ranking__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  row-gap: 32px;
  column-gap: 24px;
}
@media screen and (min-width: 768px) {
  .p-venue-ranking__list {
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    row-gap: 40px;
  }
}

.p-venue-card {
  margin-top: 20px;
}
.p-venue-card .c-card01__txtblock {
  padding-top: 6px;
}
.p-venue-card__ttl {
  font-size: 16px;
  line-height: 1.4;
  font-weight: 500;
  text-decoration: underline;
  transition: 0.3s;
}
.p-venue-card__ttl:hover {
  text-decoration: none;
}
.p-venue-card__desc {
  font-size: 13px;
  line-height: 1.4;
}
.p-venue-card.rank {
  position: relative;
}
.p-venue-card.rank::before {
  display: block;
  position: absolute;
  width: 36px;
  height: 36px;
  background-color: #DB8997;
  font-weight: 500;
  color: #fff;
  font-size: 32px;
  font-family: "Cormorant Infant", serif;
  line-height: 0.8;
  display: flex;
  align-items: center;
  justify-content: center;
  left: 8px;
  top: -10px;
  z-index: 999;
}
.p-venue-card.rank-1::before {
  content: "1";
}
.p-venue-card.rank-2::before {
  content: "2";
}
.p-venue-card.rank-3::before {
  content: "3";
}
.p-venue-card.rank-4::before {
  content: "4";
}
.p-venue-card.rank-5::before {
  content: "5";
}
.p-venue-card.rank-6::before {
  content: "6";
}
.p-venue-card.rank-1::after, .p-venue-card.rank-2::after, .p-venue-card.rank-3::after {
  content: "";
  display: block;
  width: 33px;
  height: 27px;
  background-image: url(/assets/img/venue/crown-rank-1.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  left: 10px;
  top: -40px;
}
.p-venue-card.rank-2::after {
  background-image: url(/assets/img/venue/crown-rank-2.svg);
}
.p-venue-card.rank-3::after {
  background-image: url(/assets/img/venue/crown-rank-3.svg);
}

/*--------------------------------------------------------------------------
お気に入りボタン
---------------------------------------------------------------------------*/
.p-venue-favorite {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.p-venue-favorite__star {
  width: 22px;
  margin-right: 4px;
  display: flex;
  align-items: center;
}
.p-venue-favorite__txt {
  color: #D15C70;
  font-size: 12px;
  letter-spacing: 0;
}
.p-venue-favorite.selected .p-venue-favorite__txt {
  color: #888;
}

/*--------------------------------------------------------------------------
カテゴリーで検索
---------------------------------------------------------------------------*/
.p-venue-searchcat__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 10px;
}
@media screen and (min-width: 768px) {
  .p-venue-searchcat__list {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
}
.p-venue-searchcat-item {
  background-color: #F3F3F3;
}
.p-venue-searchcat-item a {
  display: flex;
  padding: 8px;
  justify-content: space-between;
  align-items: center;
}
.p-venue-searchcat-item__img {
  width: 32%;
}
.p-venue-searchcat-item__txt {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  font-weight: 500;
  width: 65%;
  text-align: center;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .p-venue-searchcat-item__txt {
    font-size: 16px;
  }
}

/*--------------------------------------------------------------------------
お気に入り一覧モーダル
---------------------------------------------------------------------------*/
.p-favorite-modal {
  background-color: #FAF3F5;
  max-width: 1000px;
}
@media screen and (min-width: 768px) {
  .p-favorite-modal {
    padding-block: 40px;
  }
}
.p-favorite-modal .c-modal__cont {
  row-gap: 0;
}
.p-favorite-modal__default {
  font-weight: 500;
  font-size: 14px;
  min-height: 240px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-favorite-modal__block {
  background-color: #fff;
  padding-block: 24px;
  width: min(100%, 750px);
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-favorite-modal__block {
    padding-block: 32px;
  }
}
.p-favorite-modal__list {
  overflow-y: scroll;
  max-height: min(60svh, 400px);
  display: grid;
  row-gap: 24px;
  grid-auto-flow: row;
  padding-inline: 5%;
}
@media screen and (min-width: 768px) {
  .p-favorite-modal__list {
    padding-inline: 10%;
  }
}
.p-favorite-modal-item__inner {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 10px;
  column-gap: 12px;
}
@media screen and (min-width: 768px) {
  .p-favorite-modal-item__inner {
    column-gap: 16px;
    grid-template-columns: 0.36fr 0.6fr;
  }
}
.p-favorite-modal-item__ttl {
  text-decoration: underline;
  font-weight: 500;
  margin-bottom: 6px;
}
.p-favorite-modal-item__desc {
  font-size: 12px;
  line-height: 1.4;
}
.p-favorite-modal-item .p-venue-favorite {
  margin-top: 6px;
}
@media screen and (min-width: 768px) {
  .p-favorite-modal-item .p-venue-favorite {
    margin-top: 16px;
  }
}

/*--------------------------------------------------------------------------
お気に入り一覧のカード
---------------------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .p-favorite-modal__block .c-card01__inner {
    display: grid;
    grid-template-columns: 0.4fr 0.6fr;
    column-gap: 16px;
  }
}
.p-favorite-modal__block .c-card01__txtblock {
  display: flex;
  flex-direction: column;
}
.p-favorite-modal__block .c-card01 .p-venue-card__ttl {
  font-size: 14px;
  text-decoration: underline;
  font-weight: 500;
}
.p-favorite-modal__block .c-card01 .p-venue-card__desc {
  font-size: 12px;
}
.p-favorite-modal__block .c-card01 .c-map,
.p-favorite-modal__block .c-card01 .c-category {
  display: none;
}
.p-favorite-modal__block .c-card01 .p-venue-favorite {
  order: 2;
  margin-top: 12px;
}

/*--------------------------------------------------------------------------
タイトルブロック
---------------------------------------------------------------------------*/
.p-venue-single-info {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: end;
}
.p-venue-single-info__left {
  display: flex;
  flex-wrap: wrap;
  column-gap: 16px;
  margin-bottom: 8px;
}
@media screen and (min-width: 768px) {
  .p-venue-single-info__left {
    margin-bottom: 0;
  }
}
.p-venue-single-info .p-venue-favorite {
  margin-top: 8px;
}
.p-venue-single-info .c-map {
  margin-bottom: 8px;
}

/*--------------------------------------------------------------------------
スライダー
---------------------------------------------------------------------------*/
#p-venue-single-swiper {
  margin-inline: calc(50% - 50svw);
}
@media screen and (min-width: 768px) {
  #p-venue-single-swiper {
    margin-inline: auto;
  }
}
#p-venue-single-swiper .swiper-slide {
  overflow: hidden;
  aspect-ratio: 840/560;
}
#p-venue-single-swiper .swiper-slide img {
  height: 100%;
  object-fit: cover;
}

/*--------------------------------------------------------------------------
POINT
---------------------------------------------------------------------------*/
.p-venue-single-point {
  border-top: 2px solid #E2E2E2;
}
.p-venue-single-point .c-sec__inner {
  margin-inline: calc(50% - 50svw);
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-venue-single-point .c-sec__inner {
    margin-inline: auto;
    width: min(90%, 1200px);
    pointer-events: none;
  }
}
@media screen and (min-width: 768px) {
  .p-venue-single-point__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: min(45px, 3vw);
  }
}
.p-venue-single-point .c-card02 {
  height: auto;
}
@media screen and (min-width: 768px) {
  .p-venue-single-point .c-card02__txtblock {
    padding: 20px 32px 28px;
  }
}

/*--------------------------------------------------------------------------
コメント
---------------------------------------------------------------------------*/
.p-venue-single-comment__container {
  background-color: #F3F3F3;
  margin-inline: calc(50% - 50svw);
}
@media screen and (min-width: 768px) {
  .p-venue-single-comment__container {
    margin-inline: 0;
  }
}
.p-venue-single-comment__cont {
  width: min(90%, 840px);
  margin-inline: auto;
}
.p-venue-single-comment-item {
  display: flex;
  justify-content: space-between;
}
@media screen and (min-width: 768px) {
  .p-venue-single-comment-item {
    margin-inline: 20px;
  }
}
.p-venue-single-comment-item:nth-child(2n) {
  flex-direction: row-reverse;
}
.p-venue-single-comment-item:not(:last-child) {
  margin-bottom: 24px;
}
@media screen and (min-width: 768px) {
  .p-venue-single-comment-item:not(:last-child) {
    margin-bottom: 32px;
  }
}
.p-venue-single-comment-item__img {
  width: 18%;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 1/1;
  height: fit-content;
}
@media screen and (min-width: 768px) {
  .p-venue-single-comment-item__img {
    border-radius: 16px;
  }
}
.p-venue-single-comment-item__img img {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: auto;
}
.p-venue-single-comment-item__body {
  width: 78%;
  padding: 16px 10px;
  border-radius: 12px;
  background-color: #fff;
}
@media screen and (min-width: 768px) {
  .p-venue-single-comment-item__body {
    padding: 24px 32px;
  }
}
.p-venue-single-comment-item__txt {
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 8px;
}
@media screen and (min-width: 768px) {
  .p-venue-single-comment-item__txt {
    font-size: 14px;
    line-height: 1.8;
  }
}
.p-venue-single-comment-item__name {
  text-align: right;
  font-size: 13px;
}

.p-venue-single-movie__videowrap iframe {
  width: 100%;
  aspect-ratio: 560/315;
  height: auto;
}

/*--------------------------------------------------------------------------
詳細情報
---------------------------------------------------------------------------*/
.p-venue-single-address__txt {
  display: block;
  margin-bottom: 12px;
}
.p-venue-single-address iframe {
  width: 100%;
  aspect-ratio: 1/1;
  height: auto;
}
@media screen and (min-width: 768px) {
  .p-venue-single-address iframe {
    aspect-ratio: 1070/480;
  }
}

/*--------------------------------------------------------------------------
この会場を見ている人は、こちらの会場も見ています。
---------------------------------------------------------------------------*/
.p-venue-single-recommend {
  background-color: #FAFAFA;
}
@media screen and (min-width: 768px) {
  .p-venue-single-recommend .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 16px;
  }
}

/*--------------------------------------------------------------------------
footer
---------------------------------------------------------------------------*/
body:has(.p-venue-single) .l-footer {
  margin-top: 0;
}

/*--------------------------------------------------------------------------
地図
---------------------------------------------------------------------------*/
.p-access-map {
  width: 100%;
  aspect-ratio: 1/1;
}
@media screen and (min-width: 768px) {
  .p-access-map {
    aspect-ratio: 1000/600;
    max-width: 1000px;
  }
}
.p-access-map iframe {
  width: 100%;
  height: 100%;
}

/*--------------------------------------------------------------------------
お問い合わせフォーム
---------------------------------------------------------------------------*/
.p-inquiry__txtblock {
  max-width: 670px;
  margin-inline: auto;
}
.p-inquiry__note {
  color: #D15C70;
  font-weight: 400;
  font-size: 12px;
  line-height: 1.3;
}
.p-inquiry .c-sec__inner {
  width: min(90%, 1000px);
}
.p-inquiry__form {
  background-color: #FAFAFA;
  padding: 24px 16px 32px;
}
@media screen and (min-width: 768px) {
  .p-inquiry__form {
    padding: min(5.5vw, 80px);
  }
}
.p-inquiry__form-inner {
  display: grid;
  row-gap: 24px;
  width: min(100%, 500px);
  max-width: 700px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-inquiry__form-inner {
    grid-template-columns: 1fr;
    row-gap: 30px;
    width: 100%;
  }
}
.p-inquiry__form .c-btn {
  width: min(100%, 240px);
}
.p-inquiry .error {
  color: #D15C70;
  font-size: 14px;
}

.p-inquiry__item {
  display: flex;
  flex-direction: column;
  row-gap: 8px;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item {
    flex-direction: row;
    justify-content: space-between;
    flex-direction: row;
    align-items: center;
  }
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-flexstart {
    align-items: flex-start;
  }
}
.p-inquiry__item-left {
  display: flex;
  justify-content: space-between;
  column-gap: 10px;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-left {
    width: 33%;
  }
}
.p-inquiry__item-left p {
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0;
  font-weight: 500;
}
.p-inquiry__item-right {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 12px;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-right {
    width: 66%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 16px;
  }
}
.p-inquiry__item-right.sp-column-1 {
  flex-direction: column;
  align-items: flex-start;
}
.p-inquiry__item-right label {
  display: flex;
  align-items: center;
}
.p-inquiry__item-season {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}
.p-inquiry__item-season input {
  width: 87% !important;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-season input {
    width: 92% !important;
  }
}
.p-inquiry__item-venue {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.p-inquiry__item-venue .select-wrapper {
  width: 41.5%;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-venue .select-wrapper {
    width: 45%;
  }
}
.p-inquiry__item-size {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
}

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
}

input:not([type=submit]),
textarea,
select {
  border: 1px solid #E2E2E2;
  padding: 12px 16px;
  line-height: 1.4;
  width: 100%;
  height: fit-content;
  font-size: 14px;
  background-color: #fff;
  color: #333333 !important;
}

input[type=checkbox],
input[type=radio] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 1px solid #888;
  width: 18px;
  height: 18px;
  position: relative;
  cursor: pointer;
  margin-right: 6px;
  padding: 0;
  vertical-align: text-top;
  transition: all 0.2s ease;
  background-color: #fff;
}

input[type=checkbox] {
  border-radius: 2px;
}

input[type=checkbox]:checked {
  background-color: #888;
  border-color: #888;
  border-radius: 2px;
}

input[type=checkbox]:checked::after {
  position: absolute;
  top: 7%;
  left: 34%;
  transform: rotate(50deg);
  width: 6px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  content: "";
}

input[type=radio] {
  border-radius: 50%;
}

input[type=radio]:checked::after {
  content: "";
  position: absolute;
  width: 60%;
  height: 60%;
  border-radius: 50%;
  background-color: #888;
  font-size: 14px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.select-wrapper {
  position: relative;
  width: 100%;
}
.select-wrapper-half {
  width: 48%;
}
.select-wrapper::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 10px;
  width: 10px;
  height: 10px;
  border-right: 1px solid #888;
  border-bottom: 1px solid #888;
  transform: rotate(45deg);
}

.option-default {
  color: #B5B5B5;
  font-size: 14px;
}

.p-inquiry-privacy {
  text-align: center;
}

.p-inquiry-required {
  color: #D15C70;
  line-height: 1;
  height: fit-content;
  width: fit-content;
  font-size: 13px;
  white-space: nowrap;
}

.p-input-datepicker {
  position: relative;
}
.p-input-datepicker::after {
  content: "";
  width: 16px;
  height: 16px;
  display: block;
  background-image: url(/assets/img/common/icon-calendar.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-block: auto;
  left: 8px;
}

.ui-datepicker {
  margin-top: -70px; /* カレンダーの高さ分マイナス */
}

input.hasDatepicker {
  padding-inline: 32px 10px;
}

/*--------------------------------------------------------------------------
インフォ
---------------------------------------------------------------------------*/
.p-news-main__container {
  display: grid;
  grid-template-columns: 1fr;
  max-width: 850px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-news-main__container {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}

/*--------------------------------------------------------------------------
記事ページ
---------------------------------------------------------------------------*/
.p-news-single-main img {
  height: 100%;
}
.p-news-single-main .c-sec__inner {
  width: min(90%, 800px);
  margin-inline: auto;
}

.p-magazine .c-pagemv__en {
  font-size: min(12svw, 44px);
}
@media screen and (min-width: 768px) {
  .p-magazine .c-pagemv__en {
    font-size: min(5svw, 64px);
  }
}

/*--------------------------------------------------------------------------
Magazine
---------------------------------------------------------------------------*/
.p-magazine-main__article-list {
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 768px) {
  .p-magazine-main__article-list {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 16px;
    row-gap: 40px;
  }
}

/*--------------------------------------------------------------------------
Pickup
---------------------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .p-magazine-pickup .swiper-pagination {
    display: block;
  }
}
.p-magazine-pickup__ttl {
  position: relative;
}
.p-magazine-pickup__ttl::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: #BDA9AC;
  position: absolute;
  top: 38%;
  left: 0;
}
.p-magazine-pickup__ttl-inner {
  width: fit-content;
  background-color: #fff;
  z-index: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin-inline: auto;
  padding-inline: 6px;
}
.p-magazine-pickup__ttl-en {
  font-family: "Cormorant Garamond", serif;
  font-size: 28px;
  font-weight: 700;
  color: rgba(189, 169, 172, 0.4);
  text-transform: uppercase;
  line-height: 0.7;
}
.p-magazine-pickup__ttl-jp {
  transform: translateY(-50%);
}
.p-magazine-pickup__list {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 12px;
}
.p-magazine-pickup .c-card01__inner {
  display: grid;
  gap: 12px;
  grid-template-columns: 0.2fr 0.8fr;
}
.p-magazine-pickup .c-card01__img img {
  aspect-ratio: 60/50;
}
.p-magazine-pickup .c-card01__txtblock {
  padding-top: 0;
}

/*--------------------------------------------------------------------------
記事ページ
---------------------------------------------------------------------------*/
.p-magazine-single .l-with-sidebar__aside {
  background-color: #Fff;
  margin-inline: 0;
  padding-inline: 0;
}

.p-magazine-single-cont .c-sec__inner {
  width: min(90%, 1000px);
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-magazine-single-cont .l-with-sidebar {
    flex-direction: row;
  }
}
.p-magazine-single-cont__img {
  height: fit-content;
}
.p-magazine-single-cont__img img {
  height: fit-content;
}
.p-magazine-single-cont__btns {
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid #E2E2E2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
@media screen and (min-width: 768px) {
  .p-magazine-single-cont__btns {
    flex-direction: row;
    justify-content: center;
    gap: 16px;
  }
}
.p-magazine-single-cont .c-btn {
  width: min(100%, 280px);
}

/*--------------------------------------------------------------------------
季節カード
---------------------------------------------------------------------------*/
.p-season-cardlist {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}

.p-season-card {
  background-size: cover;
}
.p-season-card a {
  display: flex;
  align-items: baseline;
  justify-content: center;
  height: 100%;
  width: 100%;
  font-family: "luxurious-script", serif;
  font-size: 18px;
  font-weight: 500;
  height: 32px;
  padding-block: 10px 7px;
  color: #fff;
  line-height: 1;
}
.p-season-card span {
  font-family: "Cormorant Garamond", serif;
  font-size: 14px;
  font-weight: 600;
  font-style: italic;
  display: inline-block;
  margin-right: 4px;
  width: 48px;
  text-align: center;
}
.p-season-card-spring {
  background-image: url(/assets/img/common/season-spring.jpg);
}
.p-season-card-summer {
  background-image: url(/assets/img/common/season-summer.jpg);
}
.p-season-card-autumn {
  background-image: url(/assets/img/common/season-autumn.jpg);
}
.p-season-card-winter {
  background-image: url(/assets/img/common/season-winter.jpg);
}

/*--------------------------------------------------------------------------
Voice
---------------------------------------------------------------------------*/
.p-voice .c-pickup-card__txtblock {
  padding-inline: 0;
}
@media screen and (min-width: 768px) {
  .p-voice .c-pickup-card__txtblock {
    padding-inline: 24px;
    background: rgba(67, 67, 67, 0.65);
  }
}

.p-voice-main__article-list {
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 768px) {
  .p-voice-main__article-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
  }
}

.p-voice-card__details {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #A88A8F;
}
.p-voice-card__name {
  font-family: "din-2014", sans-serif;
  font-size: 12px;
}
.p-voice-card__season {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 14px;
  font-weight: 600;
}
.p-voice-card .c-category__item a, .p-voice-card .c-category__item span {
  border-color: #A88A8F;
  color: #A88A8F;
  font-size: 11px;
  padding-inline: 4px;
}

/*--------------------------------------------------------------------------
記事詳細ページ
---------------------------------------------------------------------------*/
.p-voice-single .c-sec__inner {
  width: min(90%, 800px);
}
.p-voice-single .season {
  font-family: "Cormorant Garamond", serif;
  font-size: 16px;
  font-weight: 600;
  font-style: italic;
  margin-right: 8px;
  color: #A88A8F;
}
.p-voice-single img {
  height: unset;
}
.p-voice-single .c-cta__intro {
  color: #D15C70;
  font-weight: 500;
  line-height: 1.6;
  font-size: 16px;
}

/*--------------------------------------------------------------------------
会場カード
---------------------------------------------------------------------------*/
.p-voice-venue {
  padding: 8px;
  padding-bottom: 16px;
  border: 1px solid #C4C4C4;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-voice-venue {
    text-align: left;
    padding-bottom: 8px;
  }
}
@media screen and (min-width: 768px) {
  .p-voice-venue .c-media__img {
    width: 45%;
  }
}
@media screen and (min-width: 768px) {
  .p-voice-venue .c-media__body {
    width: 51%;
  }
}
.p-voice-venue__ttl {
  text-decoration: underline;
  transition: 0.3s;
  font-weight: 500;
}
.p-voice-venue__ttl:hover {
  text-decoration: none;
}
.p-voice-venue .c-btn {
  margin-top: 16px;
  width: fit-content;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-voice-venue .c-btn {
    margin-inline: 0;
  }
}

.p-lesson-intro .c-sec__inner,
.p-lesson-schedule .c-sec__inner,
.p-lesson-inquiry .c-sec__inner {
  width: min(90%, 1000px);
}

/*--------------------------------------------------------------------------
.p-lesson-intro
---------------------------------------------------------------------------*/
.p-lesson-intro .c-sec__inner {
  width: 100%;
}
.p-lesson-intro .c-media {
  gap: 0;
}
@media screen and (min-width: 768px) {
  .p-lesson-intro .c-media {
    flex-direction: row-reverse;
    align-items: stretch;
  }
}
.p-lesson-intro .c-media__body {
  padding-inline: 5%;
  padding-block: 32px 48px;
  background: linear-gradient(180deg, #FAFAFA 0%, #F7F7F7 100%);
}
@media screen and (min-width: 768px) {
  .p-lesson-intro .c-media__body {
    width: 62%;
    background: linear-gradient(270deg, #FAFAFA 0%, #F7F7F7 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-intro .c-media__body .p-lesson-intro__cont {
    width: min(90%, 670px);
    margin-left: auto;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-intro .c-media__img {
    width: 38%;
    height: auto;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-intro .c-media__img img {
    height: 100%;
    object-fit: cover;
    object-position: left;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-intro__en {
    color: #DDD;
    font-family: "luxurious-script", serif;
    font-size: 64px;
    font-style: normal;
    font-weight: 400;
    line-height: 140%;
    display: flex;
    align-items: center;
  }
  .p-lesson-intro__en::before {
    content: "";
    width: 36px;
    height: 1px;
    display: inline-block;
    background: #DDD;
    margin-right: 12px;
    vertical-align: middle;
  }
}
.p-lesson-intro__ttl {
  text-align: center;
  color: #D15C70;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 16px;
}
@media screen and (min-width: 768px) {
  .p-lesson-intro__ttl {
    font-size: 18px;
    line-height: 1.8;
    text-align: left;
  }
}

/*--------------------------------------------------------------------------
ウエディングレッスンスケジュール
---------------------------------------------------------------------------*/
.p-lesson-schedule__cont {
  padding: 32px 16px;
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule__cont {
    padding: 48px 40px;
  }
}
.p-lesson-schedule .c-details-item {
  background-color: #fff;
  padding: 6px 12px;
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule .c-details-item {
    padding: 8px 16px;
  }
}
.p-lesson-schedule .c-details-item__ttl {
  background-color: #DB8997;
  font-size: 14px;
  font-weight: 700;
}
.p-lesson-schedule .c-details-item__cont {
  font-size: 16px;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule .c-details-item__cont {
    font-size: 18px;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule .c-media {
    align-items: flex-start;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule .c-media__body {
    width: 52%;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule .c-media__img {
    width: 43%;
  }
}
.p-lesson-schedule__para {
  margin-top: 24px;
}
.p-lesson-schedule__para .c-pinktxt {
  margin-bottom: 8px;
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule__para .c-pinktxt {
    margin-bottom: 16px;
  }
}

.p-lesson-schedule-others {
  background-color: #FCFCF5;
  padding: 32px 16px;
}
.p-lesson-schedule-others__inner {
  width: min(90%, 700px);
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule-others .c-media {
    padding-right: 8px;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule-others .c-media__body {
    width: 78%;
  }
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule-others .c-media__img {
    width: max(140px, 22%);
    display: flex;
    justify-content: right;
  }
}
.p-lesson-schedule-others__item {
  position: relative;
  line-height: 1.6;
  padding-left: 20px;
  text-indent: -20px;
  margin-bottom: 8px;
}
.p-lesson-schedule-others__item::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url(/assets/img/common/icon-check.svg);
  background-repeat: no-repeat;
  background-size: contain;
  margin-right: 8px;
  vertical-align: sub;
}
.p-lesson-schedule-others__sticker {
  border: 1px solid #DB8997;
  background-color: #fff;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: #D15C70;
  padding: 8px;
  line-height: 1.4;
  border-radius: 4px;
}
@media screen and (min-width: 768px) {
  .p-lesson-schedule-others__sticker {
    border-radius: 50%;
    width: 140px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
}

/*--------------------------------------------------------------------------
各レッスンのお問い合わせ
---------------------------------------------------------------------------*/
.p-lesson-inquiry .p-inquiry__form {
  padding-block: 16px 32px;
}
@media screen and (min-width: 768px) {
  .p-lesson-inquiry .p-inquiry__form {
    padding-block: 40px;
  }
}
.p-lesson-inquiry .c-btn {
  width: min(100%, 240px);
}

.p-dress-anchor {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
}
@media screen and (min-width: 768px) {
  .p-dress-anchor {
    grid-template-columns: repeat(4, 1fr);
  }
}
.p-dress-anchor .c-anchor-link {
  height: 56px;
  font-size: 12px;
}
@media screen and (min-width: 768px) {
  .p-dress-anchor .c-anchor-link {
    height: 100%;
    font-size: 14px;
  }
}

/*--------------------------------------------------------------------------
.p-dress-intro
---------------------------------------------------------------------------*/
.p-dress-intro .c-secttl01__en {
  background: linear-gradient(180deg, rgba(219, 137, 151, 0.3) 0%, rgba(255, 226, 231, 0.3) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.p-dress-intro .c-secttl01__jp {
  color: #D15C70;
}

/*--------------------------------------------------------------------------
ドレス
---------------------------------------------------------------------------*/
.p-dress-category__dress .swiper {
  overflow: visible;
}
@media screen and (min-width: 768px) {
  .p-dress-category__dress .swiper {
    overflow: hidden;
  }
}

/*--------------------------------------------------------------------------
intro
---------------------------------------------------------------------------*/
.p-about-intro {
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.3) 19.23%, rgba(236, 172, 184, 0.3) 100%);
}
.p-about-intro .swiper-wrapper {
  transition-timing-function: linear;
}
.p-about-intro-swiper__txt {
  font-size: 11vw;
  text-transform: uppercase;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  color: #F6D9DE;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .p-about-intro-swiper__txt {
    font-size: 6.2vw;
  }
}
.p-about-intro__txtarea {
  max-width: 770px;
  margin-inline: auto;
  letter-spacing: 0;
}
.p-about-intro__ttl {
  font-size: 18px;
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-about-intro__ttl {
    font-size: 22px;
  }
}

/*--------------------------------------------------------------------------
特典
---------------------------------------------------------------------------*/
.p-about-offer {
  display: flex;
  flex-direction: column;
  row-gap: 16px;
  max-width: 880px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-about-offer {
    row-gap: 32px;
  }
}

.p-about-offer-card {
  background-color: #FFFEF5;
  border: 1px solid #F3C33A;
  box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.06);
  padding: 8px;
}
@media screen and (min-width: 768px) {
  .p-about-offer-card {
    border: none;
    border-left: 6px solid #F3C33A;
    padding: 0;
  }
}
.p-about-offer-card .c-media {
  flex-direction: row;
}
.p-about-offer-card .c-media__img {
  aspect-ratio: 85/131;
  width: 26%;
}
@media screen and (min-width: 768px) {
  .p-about-offer-card .c-media__img {
    width: 37%;
    aspect-ratio: 5/3;
  }
}
.p-about-offer-card .c-media__img img {
  aspect-ratio: 340/204;
  height: 100%;
  object-fit: cover;
}
.p-about-offer-card .c-media__body {
  width: 70%;
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 0px;
}
@media screen and (min-width: 768px) {
  .p-about-offer-card .c-media__body {
    width: 60%;
    row-gap: 8px;
  }
}
.p-about-offer-card__label {
  color: #8F7012;
  font-size: 14px;
  font-weight: 700;
  font-family: "Noto Serif JP", serif;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-about-offer-card__label {
    font-size: 16px;
  }
}
.p-about-offer-card__label.sp {
  display: flex !important;
}
@media screen and (min-width: 768px) {
  .p-about-offer-card__label.sp {
    display: none !important;
  }
}
.p-about-offer-card__label.pc {
  display: none !important;
}
@media screen and (min-width: 768px) {
  .p-about-offer-card__label.pc {
    display: flex !important;
  }
}
.p-about-offer-card__label::before, .p-about-offer-card__label::after {
  content: "";
  display: inline-block;
  width: 11px;
  height: 26px;
  background-image: url(/assets/img/about/offer-lease.svg);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 8px;
}
.p-about-offer-card__label::after {
  transform: scaleX(-1);
  margin-left: 8px;
}
.p-about-offer-card__ttl {
  font-size: min(4.8svw, 16px);
  font-weight: 500;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .p-about-offer-card__ttl {
    font-size: 20px;
  }
}
.p-about-offer-card__desc {
  font-size: 13px;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .p-about-offer-card__desc {
    font-size: 14px;
  }
}
.p-about-offer-card__note {
  font-size: 12px;
  line-height: 1.4;
  color: #888;
}

/*--------------------------------------------------------------------------
選ばれる理由　共通パーツ
---------------------------------------------------------------------------*/
.p-about-3reason {
  padding-bottom: 48px;
}
@media screen and (min-width: 768px) {
  .p-about-3reason {
    padding-bottom: 96px;
  }
}
.p-about-3reason .c-secttl01__en {
  font-size: min(22.5svw, 128px);
  color: #fff;
}
.p-about-3reason .c-secttl01__jp {
  color: #D15C70;
}

.p-about-reason {
  border: 1px solid #BDA9AC;
  border-radius: 16px;
  background-color: #fff;
  position: relative;
  padding: 30px 15px;
  margin-top: 85px;
}
@media screen and (min-width: 768px) {
  .p-about-reason {
    padding: 72px 50px;
    margin-top: 110px;
  }
}
.p-about-reason__inner {
  max-width: 880px;
  margin-inline: auto;
}
.p-about-reason__upper {
  margin-bottom: 24px;
}
@media screen and (min-width: 768px) {
  .p-about-reason__upper {
    margin-bottom: 48px;
  }
}
.p-about-reason__index {
  width: 140px;
  height: 70px;
  position: absolute;
  left: 0;
  right: 0;
  margin-inline: auto;
  top: -65px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  clip-path: inset(0 0 -41% 0);
}
@media screen and (min-width: 768px) {
  .p-about-reason__index {
    width: 170px;
    height: 85px;
    padding-top: 30px;
  }
}
.p-about-reason__index::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0px;
  width: 100%;
  height: 100%;
  clip-path: inset(0 0 5% 0);
  border-radius: 50%/100% 100% 0 0;
  background: #fff;
  border: 1px solid #BDA9AC;
  border-bottom: 1px solid #fff;
}
@media screen and (min-width: 768px) {
  .p-about-reason__index::before {
    clip-path: inset(0 0 23% 0);
  }
}
.p-about-reason__index-en, .p-about-reason__index-num {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-weight: 600;
  color: #DB8997;
  line-height: 0.5;
}
.p-about-reason__index-en {
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-about-reason__index-en {
    font-size: 20px;
  }
}
.p-about-reason__index-num {
  font-size: 72px;
}
@media screen and (min-width: 768px) {
  .p-about-reason__index-num {
    font-size: 96px;
  }
}
.p-about-reason__upper {
  max-width: 880px;
  margin-inline: auto;
}
.p-about-reason__ttl {
  font-size: min(5vw, 20px);
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 16px;
}
@media screen and (min-width: 768px) {
  .p-about-reason__ttl {
    font-size: 28px;
    margin-bottom: 24px;
  }
}
.p-about-reason__desc {
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-about-reason__desc {
    line-height: 2;
    text-align: center;
  }
}

/*--------------------------------------------------------------------------
選ばれ理由1
---------------------------------------------------------------------------*/
.p-about-reason-1__cont {
  display: flex;
  flex-direction: column;
  row-gap: 28px;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .p-about-reason-1__cont {
    flex-direction: row;
    column-gap: 32px;
    align-items: center;
  }
}
.p-about-reason-1__middle {
  display: flex;
  justify-content: center;
  margin-left: -34px;
}
@media screen and (min-width: 768px) {
  .p-about-reason-1__middle {
    flex-direction: column-reverse;
    width: 16%;
    margin-left: 0;
  }
}
.p-about-reason-1__middle-arw {
  transform: rotate(90deg);
  overflow: hidden;
  display: flex;
  width: 54px;
}
@media screen and (min-width: 768px) {
  .p-about-reason-1__middle-arw {
    width: 100%;
    transform: rotate(0deg);
    margin-top: 30px;
  }
}
.p-about-reason-1__list {
  display: flex;
  flex-direction: column;
  row-gap: 12px;
}
@media screen and (min-width: 768px) {
  .p-about-reason-1__item {
    width: 37.5%;
  }
}
.p-about-reason-1__item-img {
  margin-bottom: 16px;
}
@media screen and (min-width: 768px) {
  .p-about-reason-1__item-img {
    margin-bottom: 28px;
  }
}
.p-about-reason-1__voice {
  line-height: 1.4;
  display: flex;
  align-items: center;
  letter-spacing: 0;
}
.p-about-reason-1__voice::before {
  content: "";
  display: inline-block;
  width: 21px;
  height: 21px;
  background-image: url(/assets/img/about/icon-before.svg);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 8px;
}
.p-about-reason-1 .after .p-about-reason-1__voice {
  font-weight: 500;
}
.p-about-reason-1 .after .p-about-reason-1__voice::before {
  background-image: url(/assets/img/about/icon-after.svg);
}
.p-about-reason-1 .after .p-about-reason-1__voice .highlight {
  color: #D15C70;
  font-weight: 700;
}

/*--------------------------------------------------------------------------
選ばれ理由2
---------------------------------------------------------------------------*/
.p-about-reason-2__list {
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 768px) {
  .p-about-reason-2__list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-about-reason-2__item {
  display: flex;
  justify-content: space-between;
  border-bottom: 3px solid #FAF3F5;
  padding-block: 20px;
}
@media screen and (min-width: 768px) {
  .p-about-reason-2__item {
    border-bottom: none;
    display: block;
    padding-inline: 15%;
  }
}
@media screen and (min-width: 768px) {
  .p-about-reason-2__item:nth-child(1) {
    padding-left: 0;
  }
}
@media screen and (min-width: 768px) {
  .p-about-reason-2__item:nth-child(3) {
    padding-right: 0;
  }
}
@media screen and (min-width: 768px) {
  .p-about-reason-2__item:nth-child(2) {
    position: relative;
  }
  .p-about-reason-2__item:nth-child(2)::before, .p-about-reason-2__item:nth-child(2)::after {
    content: "";
    display: inline-block;
    width: 3px;
    height: 88px;
    background-color: #FAF3F5;
    position: absolute;
    top: 0;
    bottom: 0;
    margin-block: auto;
  }
  .p-about-reason-2__item:nth-child(2)::before {
    left: 0;
  }
  .p-about-reason-2__item:nth-child(2)::after {
    right: 0;
  }
}
.p-about-reason-2__img {
  width: 28%;
}
@media screen and (min-width: 768px) {
  .p-about-reason-2__img {
    width: 100%;
  }
}
.p-about-reason-2__txtblock {
  width: 70%;
  text-align: center;
  font-weight: 700;
  line-height: 1.5;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-about-reason-2__txtblock {
    width: 100%;
  }
}

/*--------------------------------------------------------------------------
選ばれ理由3
---------------------------------------------------------------------------*/
.p-about-reason-3__cont {
  margin-top: 30px;
}
.p-about-reason-3__ttl {
  border-top: 1px solid #DB8997;
  position: relative;
  padding-top: 20px;
  text-align: center;
  margin-bottom: 12px;
}
@media screen and (min-width: 768px) {
  .p-about-reason-3__ttl {
    margin-bottom: 24px;
  }
}
.p-about-reason-3__ttl-en {
  position: absolute;
  top: -20px;
  left: 0;
  right: 0;
  margin-inline: auto;
  color: #D15C70;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 20px;
  display: block;
  background-color: #fff;
  width: fit-content;
  padding-inline: 24px;
}
.p-about-reason-3 .swiper-container {
  margin-inline: -4%;
}
@media screen and (min-width: 768px) {
  .p-about-reason-3 .swiper-container {
    margin-inline: 0;
  }
}
.p-about-reason-3 .swiper {
  padding: 4px;
}

.p-about-voice-card {
  border-radius: 32px 0 0 0;
  background: #FAFAF3;
  box-shadow: 2px 2px 0 0 #ADA89C;
  padding-block: 24px 32px;
  padding-inline: min(20px, 6%);
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}
@media screen and (min-width: 768px) {
  .p-about-voice-card {
    border-radius: 48px 0 0 0;
    padding-block: 32px 40px;
    padding-inline: min(32px, 4%);
  }
}
.p-about-voice-card__upper {
  display: flex;
  align-items: flex-end;
  margin-bottom: 16px;
}
.p-about-voice-card__name {
  font-size: 12px;
  color: #888;
}
.p-about-voice-card__img {
  width: 70px;
}

/*--------------------------------------------------------------------------
スタッフの想い
---------------------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .p-about-staff .c-media {
    align-items: flex-start;
  }
}
.p-about-staff .c-media__img {
  margin-left: calc(50% - 50svw);
  margin-bottom: 16px;
}
@media screen and (min-width: 768px) {
  .p-about-staff .c-media__img {
    width: 45vw;
    margin-bottom: 0;
  }
}
@media screen and (min-width: 768px) {
  .p-about-staff .c-media__body {
    width: 50%;
    padding-top: 40px;
  }
}

/*--------------------------------------------------------------------------
お問い合わせ
---------------------------------------------------------------------------*/
.p-about-cta {
  padding-top: 20px;
}
.p-about-cta__block {
  position: relative;
  max-width: 970px;
  margin-inline: auto;
}
.p-about-cta__block-sticker {
  position: absolute;
  top: -25px;
  left: 0;
  right: 0;
  margin-inline: auto;
  background-image: url(/assets/img/common/speach-bubble-sp.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: fit-content;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 500;
  padding-block: 3px 20px;
  padding-inline: 10px 34px;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .p-about-cta__block-sticker {
    background-image: none;
    width: min(190px, 20vw);
    height: min(190px, 20vw);
    padding: 0;
    right: -4vw;
    left: unset;
    top: -50px;
    flex-direction: column;
    margin-left: auto;
    background-color: #fff;
    border: 1px solid #DB8997;
    border-radius: 50%;
    text-align: center;
    gap: 6px;
  }
}
@media screen and (min-width: 1920px) {
  .p-about-cta__block-sticker {
    right: -36px;
  }
}
.p-about-cta__block-sticker-img {
  width: 49px;
  height: 49px;
  display: flex;
  align-items: center;
  padding-block: 10px;
  padding-inline: 11px 5px;
  margin-right: 4px;
  background-color: #FAFAFA;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15);
  border-radius: 50%;
  margin-top: -19px;
}
@media screen and (min-width: 768px) {
  .p-about-cta__block-sticker-img {
    width: 77px;
    height: 77px;
    background-color: transparent;
    box-shadow: none;
    margin-right: -15px;
    padding: 0;
    margin-block: 0 6px;
  }
}

.p-photo-cta__btnblock {
  display: block;
  position: relative;
}
.p-photo-cta__btnblock-sticker {
  position: absolute;
  top: -25px;
  left: 0;
  right: 0;
  margin-inline: auto;
  background-image: url(/assets/img/common/speach-bubble-sp.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: fit-content;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 500;
  padding-block: 3px 15px;
  padding-inline: 24px;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
@media screen and (min-width: 1024px) {
  .p-photo-cta__btnblock-sticker {
    background-image: url(/assets/img/common/speach-bubble.svg);
    width: 132px;
    height: 132px;
    right: -100px;
    left: unset;
    top: -50px;
    flex-direction: column;
    margin-left: auto;
    padding-right: 14px;
    gap: 5px;
  }
}
@media screen and (min-width: 1920px) {
  .p-photo-cta__btnblock-sticker {
    right: -36px;
  }
}
.p-photo-cta__btnblock-sticker img {
  width: 23px;
  display: inline-block;
  margin-right: 8px;
}
@media screen and (min-width: 1024px) {
  .p-photo-cta__btnblock-sticker img {
    width: 47px;
  }
}
.p-photo-cta__btnblock .br-pc {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-photo-cta__btnblock .br-pc {
    display: inline;
  }
}
.p-photo-cta__btnblock .c-btn {
  margin-top: 45px;
  max-width: unset;
  border-radius: 8px;
  font-size: 14px;
  text-align: center;
  line-height: 1.5;
  box-shadow: 0 4px #a8626e;
  transition: all 0.3s;
}
.p-photo-cta__btnblock .c-btn:hover {
  box-shadow: none;
  transform: translateY(4px);
}
@media screen and (min-width: 1024px) {
  .p-photo-cta__btnblock .c-btn {
    margin-top: 65px;
    line-height: 1.6;
    font-size: 16px;
  }
}
.p-photo-cta__btnblock .c-btn .lg {
  font-size: 20px;
  font-weight: 700;
}
@media screen and (min-width: 1024px) {
  .p-photo-cta__btnblock .c-btn .lg {
    font-size: 22px;
  }
}

/*--------------------------------------------------------------------------
.p-photo-intro
---------------------------------------------------------------------------*/
.p-photo-intro {
  position: relative;
}
.p-photo-intro .c-sec__inner {
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .p-photo-intro__img {
    min-height: 880px;
    display: flex;
    justify-content: center;
  }
}
@media screen and (min-width: 1024px) {
  .p-photo-intro__img img {
    min-height: 100%;
    object-fit: cover;
    max-width: unset;
    width: auto;
    min-width: 100%;
  }
}
.p-photo-intro__txtarea {
  background-color: #FAF3F5;
  padding-bottom: 40px;
  padding-inline: 12%;
  padding-top: 10px;
}
@media screen and (min-width: 1024px) {
  .p-photo-intro__txtarea {
    width: min(32vw, 662px);
    position: absolute;
    top: 0;
    bottom: 0;
    margin-block: auto;
    left: 4vw;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    height: fit-content;
    padding-inline: 3vw;
    padding-top: 24px;
  }
}
@media screen and (min-width: 1024px) {
  .p-photo-intro__txtarea-inner {
    max-width: 650px;
    margin-inline: auto;
  }
}
.p-photo-intro__decotxt {
  display: block;
  margin-left: max(-14%, -30px);
  width: 222px;
}
@media screen and (min-width: 768px) {
  .p-photo-intro__decotxt {
    margin-bottom: 0;
    width: 338px;
  }
}
.p-photo-intro__ttl {
  font-weight: 500;
  font-size: 20px;
  line-height: 1.5;
}
@media screen and (min-width: 1024px) {
  .p-photo-intro__ttl {
    font-size: min(1.9vw, 28px);
    line-height: 1.7;
  }
}
.p-photo-intro__ttl .sm {
  font-size: 16px;
}
@media screen and (min-width: 1024px) {
  .p-photo-intro__ttl .sm {
    font-size: min(1.6vw, 20px);
  }
}
.p-photo-intro__ttl .lg {
  font-size: 24px;
}
@media screen and (min-width: 1024px) {
  .p-photo-intro__ttl .lg {
    font-size: min(2.2vw, 32px);
  }
}

/*--------------------------------------------------------------------------
.p-photo-2types
---------------------------------------------------------------------------*/
.p-photo-2types {
  border-bottom: 2px solid #FAF3F5;
  padding-bottom: 64px;
}
@media screen and (min-width: 768px) {
  .p-photo-2types {
    padding-bottom: 136px;
  }
}
.p-photo-2types .c-sec__inner {
  width: min(90%, 1000px);
}
.p-photo-2types__ttl {
  padding-block: 32px;
  border-top: 3px solid #DB8997;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #f3f3f3;
  padding-inline: 5%;
  margin-inline: calc(50% - 50svw);
}
@media screen and (min-width: 768px) {
  .p-photo-2types__ttl {
    padding-block: 40px;
  }
}
.p-photo-2types__ttl-img {
  width: 44px;
  margin-right: 12px;
  display: inline-block;
}
@media screen and (min-width: 768px) {
  .p-photo-2types__ttl-img {
    width: 65px;
    margin-right: 20px;
  }
}
.p-photo-2types__ttl-txt {
  font-size: 18px;
  line-height: 1.4;
  font-weight: bold;
}
@media screen and (min-width: 768px) {
  .p-photo-2types__ttl-txt {
    font-size: 24px;
  }
}

/*--------------------------------------------------------------------------
.p-photo-type
---------------------------------------------------------------------------*/
.p-photo-type__ttl-num {
  font-size: 64px;
  font-family: "Cormorant", serif;
  color: #DB8997;
  margin-right: 8px;
  line-height: 0.8;
}
@media screen and (min-width: 768px) {
  .p-photo-type__ttl-num {
    font-size: 72px;
  }
}
.p-photo-type__ttl-txt {
  font-size: 18px;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .p-photo-type__ttl-txt {
    font-size: 20px;
  }
}
.p-photo-type__desc {
  line-height: 1.8;
}
.p-photo-type__desc .pros {
  color: #DB8997;
  font-weight: bold;
}
.p-photo-type__desc .cons {
  color: #4995A6;
  font-weight: bold;
}
.p-photo-type #location-swiper, .p-photo-type #studio-swiper {
  margin-inline: calc(50% - 50vw);
}
@media screen and (min-width: 768px) {
  .p-photo-type #location-swiper .swiper-slide div, .p-photo-type #studio-swiper .swiper-slide div {
    transform: scale(0.9);
    transition: 0.2s;
  }
  .p-photo-type #location-swiper .swiper-slide div::before, .p-photo-type #studio-swiper .swiper-slide div::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    transition: 0.2s;
  }
}
@media screen and (min-width: 768px) {
  .p-photo-type #location-swiper .swiper-slide.swiper-slide-active div, .p-photo-type #studio-swiper .swiper-slide.swiper-slide-active div {
    transform: scale(1);
  }
  .p-photo-type #location-swiper .swiper-slide.swiper-slide-active div::before, .p-photo-type #studio-swiper .swiper-slide.swiper-slide-active div::before {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .p-photo-type .swiper-button-prev {
    left: 18vw;
    z-index: 1;
  }
}
@media screen and (min-width: 768px) {
  .p-photo-type .swiper-button-next {
    right: 18vw;
    z-index: 1;
  }
}
.p-photo-type .c-slider-thumbnail {
  max-width: 1000px;
}

/*--------------------------------------------------------------------------
.p-photo-qa
---------------------------------------------------------------------------*/
.p-photo-qa .c-sec__inner {
  width: min(90%, 1000px);
}
.p-photo-qa .p-photo-cta__btnblock {
  max-width: 500px;
  margin-inline: auto;
}
.p-photo-qa__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 65px;
}
@media screen and (min-width: 768px) {
  .p-photo-qa__list {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin-bottom: 85px;
  }
}
.p-photo-qa-item {
  border-radius: 32px 0 0 0;
  background: #FAF3F5;
  box-shadow: 2px 2px 0 0 #D7BFC4;
  container-type: inline-size;
}
@media screen and (min-width: 768px) {
  .p-photo-qa-item {
    border-radius: 48px 0 0 0;
  }
}
.p-photo-qa-item__btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px 16px 16px;
  padding-right: 32px;
}
@media screen and (min-width: 768px) {
  .p-photo-qa-item__btn {
    padding: 32px 40px 10px 40px;
    padding-right: 32px;
  }
}
.p-photo-qa-item__q {
  font-weight: 500;
  line-height: 1.4;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-photo-qa-item__q {
    font-size: 18px;
  }
}
.p-photo-qa-item__icon {
  display: inline-block;
  width: 14cqw;
}
@media screen and (min-width: 768px) {
  .p-photo-qa-item__icon {
    width: 12cqw;
  }
}
.p-photo-qa-item__a {
  line-height: 1.8;
  padding: 0 16px 16px 16px;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .p-photo-qa-item__a {
    padding: 0 40px 40px 40px;
  }
}
.p-photo-qa .c-accordion-btn::after, .p-photo-qa .c-accordion-btn::before {
  background-color: #DB8997;
}

/*--------------------------------------------------------------------------
.p-photo-nobel
---------------------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .p-photo-nobel {
    padding-top: 14px;
  }
}
.p-photo-nobel .c-sec__inner {
  position: relative;
  width: 100%;
}
.p-photo-nobel__img {
  margin-inline: calc(50% - 50vw);
}
@media screen and (min-width: 1024px) {
  .p-photo-nobel__img {
    height: 800px;
    display: flex;
    justify-content: center;
  }
}
@media screen and (min-width: 1920px) {
  .p-photo-nobel__img {
    height: 1000px;
  }
}
@media screen and (min-width: 1024px) {
  .p-photo-nobel__img img {
    height: 100%;
    width: auto;
    object-fit: cover;
    max-width: unset;
    min-width: 100%;
    object-position: top;
  }
}
.p-photo-nobel__txtarea {
  padding-block: 40px;
  background: linear-gradient(180deg, #2B271D 1.23%, #6A5F55 100%);
}
@media screen and (min-width: 1024px) {
  .p-photo-nobel__txtarea {
    background-image: url(/assets/img/photo_wedding/nobel-txtarea-bg.svg);
    position: absolute;
    top: -10px;
    left: 4vw;
    width: min(600px, 38vw);
    height: fit-content;
    background-position: bottom;
    padding-bottom: min(8vw, 110px);
    padding-top: min(4vw, 70px);
  }
}
.p-photo-nobel__txtarea-inner {
  width: min(90%, 460px);
  margin-inline: auto;
  left: 14vw;
}
.p-photo-nobel__txtarea p {
  color: #fff;
}
@media screen and (min-width: 1024px) {
  .p-photo-nobel__txtarea p {
    color: #333333;
  }
}
@media screen and (min-width: 1920px) {
  .p-photo-nobel__txtarea p {
    font-size: 16px;
  }
}
.p-photo-nobel__txtarea p.p-photo-nobel__copy {
  font-size: 18px;
  line-height: 1.4;
  font-weight: 600;
  font-family: "Noto Serif JP", serif;
}
@media screen and (min-width: 1024px) {
  .p-photo-nobel__txtarea p.p-photo-nobel__copy {
    font-size: 20px;
  }
}

/*--------------------------------------------------------------------------
.l-footer
---------------------------------------------------------------------------*/
body:has(.p-photo) .l-footer {
  margin-top: 0;
}

/*--------------------------------------------------------------------------
よくあるご質問
---------------------------------------------------------------------------*/
.p-faq-anchor {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 8px;
}
@media screen and (min-width: 768px) {
  .p-faq-anchor {
    grid-template-columns: repeat(3, 1fr);
    gap: min(3vw, 56px);
  }
}
.p-faq-anchor .c-anchor-link {
  height: 56px;
}
@media screen and (min-width: 768px) {
  .p-faq-anchor .c-anchor-link {
    height: unset;
  }
}

/*--------------------------------------------------------------------------
セクション
---------------------------------------------------------------------------*/
.p-faq-cat__ttl {
  margin-bottom: 20px;
}
@media screen and (min-width: 768px) {
  .p-faq-cat__ttl {
    margin-bottom: 24px;
  }
}
.p-faq-cat__list {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 16px;
}

/*--------------------------------------------------------------------------
各質問項目
---------------------------------------------------------------------------*/
.p-faq-item {
  border-radius: 8px;
  border: 1px solid #ddd;
}
.p-faq-item .c-accordion-btn::after, .p-faq-item .c-accordion-btn::before {
  background-color: #DB8997;
  height: 2px;
}
@media screen and (min-width: 768px) {
  .p-faq-item .c-accordion-btn::after, .p-faq-item .c-accordion-btn::before {
    width: 22px;
    right: 12px;
  }
}
.p-faq-item__btn, .p-faq-item__cont {
  display: flex;
  column-gap: 8px;
  font-family: "Noto Sans JP", sans-serif;
  width: 100%;
}
.p-faq-item__btn {
  padding-block: 16px;
  padding-inline: 10px 32px;
}
@media screen and (min-width: 768px) {
  .p-faq-item__btn {
    padding-block: 28px;
    padding-inline: 40px 56px;
  }
}
.p-faq-item__cont {
  padding-block: 0 16px;
  padding-inline: 10px 32px;
}
@media screen and (min-width: 768px) {
  .p-faq-item__cont {
    padding-block: 0 28px;
    padding-inline: 40px 56px;
  }
}
.p-faq-item__q {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
  color: #333333 !important;
}
.p-faq-item__a {
  line-height: 1.8;
}
.p-faq-item__icon {
  font-size: 22px;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  line-height: 1;
  color: #DB8997;
}
@media screen and (min-width: 768px) {
  .p-faq-item__icon {
    font-weight: 28px;
  }
}

/*--------------------------------------------------------------------------
プライバシーポリシー
---------------------------------------------------------------------------*/
.p-privacy-main__container {
  background-color: #FAFAFA;
}
.p-privacy-main__list {
  max-width: 1000px;
  margin-inline: auto;
  padding-block: 32px;
  display: flex;
  flex-direction: column;
  row-gap: 32px;
  padding-inline: 10px;
}
@media screen and (min-width: 768px) {
  .p-privacy-main__list {
    padding-block: 64px;
    row-gap: 56px;
    padding-inline: 32px;
  }
}

.p-privacy-item__ttl {
  font-weight: 500;
  font-size: 18px;
  margin-bottom: 4px;
}
@media screen and (min-width: 768px) {
  .p-privacy-item__ttl {
    margin-bottom: 12px;
  }
}
.p-privacy-item__cont {
  line-height: 1.8;
}

/*--------------------------------------------------------------------------
ロードマップ
---------------------------------------------------------------------------*/
.p-roadmap-main {
  background-image: url(/assets/img/roadmap/bg-sp.jpg);
  background-size: cover;
  background-position: center top;
}
@media screen and (min-width: 768px) {
  .p-roadmap-main {
    background-image: url(/assets/img/roadmap/bg-pc.jpg);
  }
}

/*--------------------------------------------------------------------------
導入テキスト
---------------------------------------------------------------------------*/
.p-roadmap-intro {
  padding-block: 56px;
}
@media screen and (min-width: 768px) {
  .p-roadmap-intro {
    padding-block: min(11vw, 140px);
  }
}
.p-roadmap-intro__block {
  background-color: rgba(255, 255, 255, 0.7);
  border-top-right-radius: 56px;
  border-bottom-left-radius: 56px;
  position: relative;
  padding-block: 56px;
  width: min(94%, 850px);
  margin-inline: auto;
  text-align: center;
}
.p-roadmap-intro__block-inner {
  width: min(90%, 510px);
  margin-inline: auto;
}
.p-roadmap-intro__ttl {
  font-size: 18px;
  font-family: "Noto Serif JP", serif;
  line-height: 2.2;
  margin-bottom: 8px;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .p-roadmap-intro__ttl {
    font-size: 23px;
  }
}
.p-roadmap-intro__txt {
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .p-roadmap-intro__txt {
    font-size: 15px;
    line-height: 2.2;
  }
}

.p-roadmap-frame-line {
  position: absolute;
  background-color: #F6C78B;
}
.p-roadmap-frame-line-top, .p-roadmap-frame-line-bottom {
  width: 34%;
  height: 1px;
}
@media screen and (min-width: 768px) {
  .p-roadmap-frame-line-top, .p-roadmap-frame-line-bottom {
    width: 47%;
  }
}
.p-roadmap-frame-line-right, .p-roadmap-frame-line-left {
  height: 34%;
  width: 1px;
}
.p-roadmap-frame-line-top {
  top: 0;
  left: 22%;
}
.p-roadmap-frame-line-right {
  right: 0;
  bottom: 33%;
}
@media screen and (min-width: 768px) {
  .p-roadmap-frame-line-right {
    bottom: 17%;
  }
}
.p-roadmap-frame-line-bottom {
  bottom: 0;
  right: 22%;
}
.p-roadmap-frame-line-left {
  top: 33%;
  left: 0;
}
@media screen and (min-width: 768px) {
  .p-roadmap-frame-line-left {
    top: 17%;
  }
}
.p-roadmap-frame-deco {
  width: 48%;
  aspect-ratio: 159/144;
  position: absolute;
}
@media screen and (min-width: 768px) {
  .p-roadmap-frame-deco {
    width: 20%;
  }
}
.p-roadmap-frame-deco-topright {
  top: -5vw;
  right: -5vw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-frame-deco-topright {
    top: -16px;
    right: -16px;
  }
}
.p-roadmap-frame-deco-bottomleft {
  bottom: -5vw;
  left: -5vw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-frame-deco-bottomleft {
    bottom: -16px;
    left: -16px;
  }
}

/*--------------------------------------------------------------------------
ロードマップテキスト
---------------------------------------------------------------------------*/
.p-roadmap-mapsec .c-secttl01 {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}
.p-roadmap-mapsec .c-secttl01__en {
  color: #fff;
  font-size: 20vw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-mapsec .c-secttl01__en {
    font-size: 10vw;
  }
}
.p-roadmap-mapsec .c-secttl01__en span {
  font-size: 14vw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-mapsec .c-secttl01__en span {
    font-size: 10vw;
  }
}
.p-roadmap-mapsec-click {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 8px;
}
.p-roadmap-mapsec-click__icon {
  width: 24px;
  margin-top: -2px;
  margin-bottom: 5px;
}
.p-roadmap-mapsec-click__txt {
  color: #D15C70;
  font-weight: 500;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .p-roadmap-mapsec-click__txt {
    font-size: 15px;
  }
}
.p-roadmap-mapsec__txt {
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-roadmap-mapsec__txt {
    text-align: center;
  }
}

/*--------------------------------------------------------------------------
ロードマップ
---------------------------------------------------------------------------*/
.p-roadmap-map {
  container-type: inline-size;
  width: 100svw;
  aspect-ratio: 390/1910;
  position: relative;
  margin-inline: calc(50% - 50svw);
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map {
    aspect-ratio: 1920/1700;
  }
}
.p-roadmap-map__road {
  position: absolute;
  width: 91cqw;
  top: 47cqw;
  left: 8cqw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map__road {
    width: 42cqw;
    aspect-ratio: 805/1533;
    top: 9.1cqw;
    left: 29cqw;
  }
}
.p-roadmap-map__car {
  transform: rotate(23deg);
}
@media screen and (min-width: 768px) {
  .p-roadmap-map__car {
    transform: rotate(3deg);
  }
}
.p-roadmap-map__start {
  font-size: 20px;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map__start {
    font-size: 1.7cqw;
  }
}
.p-roadmap-map__couple, .p-roadmap-map__sparkle.couple {
  position: absolute;
  top: 22.3cqw;
  left: 18.8cqw;
  width: 17.2cqw;
  height: 2cqw;
}
.p-roadmap-map__start, .p-roadmap-map__sparkle.start {
  position: absolute;
  top: 11.3cqw;
  left: 16.8cqw;
  width: 37.2cqw;
  height: 2cqw;
}
.p-roadmap-map__car, .p-roadmap-map__sparkle.car {
  position: absolute;
  top: 343.3cqw;
  left: 28.2cqw;
  width: 33.3cqw;
  height: 30.2cqw;
}
.p-roadmap-map__balloon, .p-roadmap-map__sparkle.balloon {
  position: absolute;
  top: 70.7cqw;
  left: 86.8cqw;
  width: 12.1cqw;
  height: 3cqw;
}
.p-roadmap-map__sparkle-1, .p-roadmap-map__sparkle.sparkle-1 {
  position: absolute;
  top: -18cqw;
  left: -63cqw;
  width: 147.7cqw;
  height: 68.2cqw;
}
.p-roadmap-map__sparkle-2, .p-roadmap-map__sparkle.sparkle-2 {
  position: absolute;
  top: 43cqw;
  left: 14.2cqw;
  width: 125cqw;
  height: 117.4cqw;
}
.p-roadmap-map__sparkle-3, .p-roadmap-map__sparkle.sparkle-3 {
  position: absolute;
  top: 130.9cqw;
  left: -38.9cqw;
  width: 134cqw;
  height: 143.6cqw;
}
.p-roadmap-map__sparkle-4, .p-roadmap-map__sparkle.sparkle-4 {
  position: absolute;
  top: 220.3cqw;
  left: 5.6cqw;
  width: 115cqw;
  height: 110.5cqw;
}
.p-roadmap-map__sparkle-5, .p-roadmap-map__sparkle.sparkle-5 {
  position: absolute;
  top: 258.1cqw;
  left: -41.4cqw;
  width: 132.4cqw;
  height: 132.8cqw;
}
.p-roadmap-map__sparkle-6, .p-roadmap-map__sparkle.sparkle-6 {
  position: absolute;
  top: 390.3cqw;
  left: -39.4cqw;
  width: 151.4cqw;
  height: 140.8cqw;
}
.p-roadmap-map__decotxt-venue, .p-roadmap-map__sparkle.decotxt-venue {
  position: absolute;
  top: 137.3cqw;
  left: 55cqw;
  width: 43.4cqw;
  height: 10.8cqw;
}
.p-roadmap-map__decotxt-dress, .p-roadmap-map__sparkle.decotxt-dress {
  position: absolute;
  top: 221.3cqw;
  left: 53.6cqw;
  width: 43.4cqw;
  height: 10.8cqw;
}
.p-roadmap-map__decotxt-wedding, .p-roadmap-map__sparkle.decotxt-wedding {
  position: absolute;
  top: 370.3cqw;
  left: -2cqw;
  width: 81.4cqw;
  height: 10.8cqw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map__couple, .p-roadmap-map__sparkle.couple {
    position: absolute;
    top: 4cqw;
    left: 36cqw;
    width: 5cqw;
    height: 7cqw;
  }
  .p-roadmap-map__start, .p-roadmap-map__sparkle.start {
    position: absolute;
    top: 5.5cqw;
    left: 27.5cqw;
    width: 9cqw;
    height: 7cqw;
  }
  .p-roadmap-map__car, .p-roadmap-map__sparkle.car {
    position: absolute;
    top: 45cqw;
    left: 43cqw;
    width: 10cqw;
    height: 6cqw;
  }
  .p-roadmap-map__balloon, .p-roadmap-map__sparkle.balloon {
    position: absolute;
    top: 2cqw;
    left: 74cqw;
    width: 5cqw;
    height: 11cqw;
  }
  .p-roadmap-map__sparkle-1-pc, .p-roadmap-map__sparkle.sparkle-1-pc {
    position: absolute;
    top: -10cqw;
    left: 0cqw;
    width: 40cqw;
    height: 29cqw;
  }
  .p-roadmap-map__sparkle-2-pc, .p-roadmap-map__sparkle.sparkle-2-pc {
    position: absolute;
    top: -8cqw;
    left: 77cqw;
    width: 26cqw;
    height: 58cqw;
  }
  .p-roadmap-map__sparkle-3-pc, .p-roadmap-map__sparkle.sparkle-3-pc {
    position: absolute;
    top: 13cqw;
    left: 0cqw;
    width: 38cqw;
    height: 45cqw;
  }
  .p-roadmap-map__sparkle-4-pc, .p-roadmap-map__sparkle.sparkle-4-pc {
    position: absolute;
    top: 53cqw;
    left: 31cqw;
    width: 38cqw;
    height: 40cqw;
  }
  .p-roadmap-map__sparkle-5-pc, .p-roadmap-map__sparkle.sparkle-5-pc {
    position: absolute;
    top: 36cqw;
    left: 69cqw;
    width: 37cqw;
    height: 50cqw;
  }
  .p-roadmap-map__decotxt-venue, .p-roadmap-map__sparkle.decotxt-venue {
    position: absolute;
    top: 23.3cqw;
    left: 3.6cqw;
    width: 24cqw;
    height: 10.8cqw;
  }
  .p-roadmap-map__decotxt-dress, .p-roadmap-map__sparkle.decotxt-dress {
    position: absolute;
    top: 27.3cqw;
    left: 58cqw;
    width: 21.4cqw;
    height: 10.8cqw;
  }
  .p-roadmap-map__decotxt-wedding, .p-roadmap-map__sparkle.decotxt-wedding {
    position: absolute;
    top: 54.3cqw;
    left: 1cqw;
    width: 32.4cqw;
    height: 10.8cqw;
  }
}
.p-roadmap-map .p-roadmap-btn {
  position: absolute;
  aspect-ratio: 1/1;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0;
}
.p-roadmap-map .p-roadmap-btn:hover {
  opacity: 0.7 !important;
}
.p-roadmap-map .p-roadmap-btn__txt {
  border-radius: 36px;
  background: linear-gradient(180deg, #FFA49C 0%, #F18E90 50.96%, #FFA49C 100%);
  box-shadow: 0 2px 4px 0 rgba(127, 14, 51, 0.15);
  display: inline-flex;
  padding-block: 5%;
  padding-inline: 5% 3%;
  line-height: 1;
  justify-content: center;
  align-items: center;
  gap: 1px;
  color: #fff;
  font-weight: 500;
  position: absolute;
  bottom: 15%;
  text-align: center;
}
.p-roadmap-map .p-roadmap-btn__txt::after {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  background-size: contain;
  background-image: url(/assets/img/roadmap/icon-click-white.svg);
}
.p-roadmap-map .p-roadmap-btn__img {
  width: 100%;
  border-radius: 50%;
}
.p-roadmap-map .p-roadmap-btn.s {
  width: 34cqw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map .p-roadmap-btn.s {
    width: 10cqw;
  }
}
.p-roadmap-map .p-roadmap-btn.s .p-roadmap-btn__txt {
  font-size: 13px;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map .p-roadmap-btn.s .p-roadmap-btn__txt {
    font-size: min(0.8vw, 15px);
  }
}
.p-roadmap-map .p-roadmap-btn.m {
  width: 40cqw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map .p-roadmap-btn.m {
    width: 12cqw;
  }
}
.p-roadmap-map .p-roadmap-btn.m .p-roadmap-btn__txt {
  font-size: 15px;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map .p-roadmap-btn.m .p-roadmap-btn__txt {
    font-size: min(0.9vw, 16px);
  }
}
.p-roadmap-map .p-roadmap-btn.l {
  width: 52cqw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map .p-roadmap-btn.l {
    width: 15.5cqw;
  }
}
.p-roadmap-map .p-roadmap-btn.l .p-roadmap-btn__txt {
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map .p-roadmap-btn.l .p-roadmap-btn__txt {
    font-size: min(1vw, 18px);
  }
}
.p-roadmap-map .p-roadmap-btn#lesson .p-roadmap-btn__txt {
  font-size: 13px;
  bottom: 12%;
  padding-block: 4%;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map .p-roadmap-btn#lesson .p-roadmap-btn__txt {
    font-size: min(0.8vw, 14px);
  }
}
.p-roadmap-map .p-roadmap-btn#wedding .p-roadmap-btn__txt {
  bottom: 12%;
  padding-block: 4%;
}
.p-roadmap-map .p-roadmap-btn#makeup .p-roadmap-btn__txt {
  font-size: 13px;
  bottom: 15%;
  padding-block: 4%;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map .p-roadmap-btn#makeup .p-roadmap-btn__txt {
    font-size: min(0.8vw, 14px);
  }
}
.p-roadmap-map #bouquet {
  top: 137.2cqw;
  left: 4cqw;
}
.p-roadmap-map #color {
  top: 180.7cqw;
  left: 11.1cqw;
}
.p-roadmap-map #dress {
  top: 215.2cqw;
  left: 8cqw;
}
.p-roadmap-map #expenses {
  top: 56.9cqw;
  left: 5cqw;
}
.p-roadmap-map #familydress {
  top: 256.6cqw;
  left: 65.7cqw;
}
.p-roadmap-map #gathering {
  top: 69.3cqw;
  left: 37.5cqw;
}
.p-roadmap-map #greeting {
  top: 97cqw;
  left: 11.2cqw;
}
.p-roadmap-map #honeymoon {
  top: 427.7cqw;
  left: 22cqw;
}
.p-roadmap-map #lesson {
  top: 307cqw;
  left: 5.2cqw;
}
.p-roadmap-map #makeup {
  top: 326.2cqw;
  left: 53.2cqw;
}
.p-roadmap-map #party {
  top: 394.5cqw;
  left: 5.2cqw;
}
.p-roadmap-map #preshoot {
  top: 268.6cqw;
  left: 24.2cqw;
}
.p-roadmap-map #proposal {
  top: 35.7cqw;
  left: 57.6cqw;
}
.p-roadmap-map #rings {
  top: 98.7cqw;
  left: 60.7cqw;
}
.p-roadmap-map #venue {
  top: 151.1cqw;
  left: 44.2cqw;
}
.p-roadmap-map #wedding {
  top: 377.9cqw;
  left: 48.3cqw;
}
.p-roadmap-map #present {
  top: 293.3cqw;
  left: 62.1cqw;
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #bouquet {
    top: 31cqw;
    left: 9cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #color {
    top: 22cqw;
    left: 80cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #dress {
    top: 34cqw;
    left: 46cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #expenses {
    top: 14cqw;
    left: 21cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #familydress {
    top: 35cqw;
    left: 83cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #gathering {
    top: 19cqw;
    left: 53cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #greeting {
    top: 13cqw;
    left: 39cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #honeymoon {
    top: 62cqw;
    left: 68cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #lesson {
    top: 42cqw;
    left: 12cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #makeup {
    top: 35cqw;
    left: 21cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #party {
    top: 60cqw;
    left: 51cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #preshoot {
    top: 41cqw;
    left: 64cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #proposal {
    top: 5cqw;
    left: 59cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #rings {
    top: 15cqw;
    left: 69cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #venue {
    top: 22cqw;
    left: 28cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #wedding {
    top: 53cqw;
    left: 33cqw;
  }
}
@media screen and (min-width: 768px) {
  .p-roadmap-map #present {
    top: 50cqw;
    left: 75cqw;
  }
}

/*--------------------------------------------------------------------------
モーダル
---------------------------------------------------------------------------*/
.p-roadmap-modal {
  background-color: #F8F8ED;
}
.p-roadmap-modal .c-modal__cont {
  background-color: #fff;
  padding-block: 10%;
  padding-inline: 10%;
  row-gap: 0;
}
.p-roadmap-modal__ttl {
  font-weight: 500;
  color: #D15C70;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  margin-bottom: 24px;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-roadmap-modal__ttl {
    font-size: 28px;
    margin-bottom: 30px;
  }
}
.p-roadmap-modal__ttl::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 32px;
  height: 2px;
  background-color: #E2E2E2;
}
@media screen and (min-width: 768px) {
  .p-roadmap-modal__ttl::after {
    bottom: -14px;
    width: 40px;
  }
}
.p-roadmap-modal__highlight {
  font-weight: 600;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-roadmap-modal__highlight {
    font-size: 18px;
  }
}
.p-roadmap-modal__desc {
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-roadmap-modal__desc {
    font-size: 16px;
    text-align: center;
  }
}
.p-roadmap-modal .p-roadmap-mapsec-click {
  margin-bottom: 0;
}
.p-roadmap-modal__link {
  text-decoration: underline;
  font-weight: 500;
  font-size: 13px;
  display: inline-block;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .p-roadmap-modal__link {
    font-size: 14px;
  }
}

/*--------------------------------------------------------------------------
footer
---------------------------------------------------------------------------*/
body:has(.p-roadmap) .l-footer {
  margin-top: 0;
}

.l-header {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  margin: 0 auto;
  z-index: 9999;
  padding-inline: min(32px, 4vw);
  background-color: #fff;
}
.l-header__adjustment {
  width: 1px;
}
@media screen and (min-width: 1520px) {
  .l-header__adjustment {
    width: 11vw;
  }
}
.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 64px;
}
@media screen and (min-width: 1280px) {
  .l-header__inner {
    height: 74px;
  }
}
.l-header__inner-r {
  display: flex;
  column-gap: 20px;
}
@media screen and (min-width: 1280px) {
  .l-header__inner-r {
    width: calc(100vw - 180px);
    display: block;
  }
}
.l-header__logo {
  width: min(140px, 28svw);
}
@media screen and (min-width: 1280px) {
  .l-header__logo {
    width: min(190px, 12svw);
  }
}
.l-header__logo a {
  display: flex;
}
.l-header .l-header-hovernav {
  padding-block: 16px;
  padding-inline: 24px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -175px;
  min-width: 190px;
  display: grid;
  grid-auto-flow: row;
  row-gap: 4px;
}
.l-header a {
  line-height: 1.6;
}

.l-header-pc {
  display: none;
}
@media screen and (min-width: 1280px) {
  .l-header-pc {
    display: flex;
    justify-content: space-between;
    column-gap: 0.8vw;
    row-gap: 8px;
  }
}
.l-header-pc__nav {
  display: flex;
  align-items: center;
  column-gap: min(20px, 0.8vw);
}
.l-header-pc__nav-item > a, .l-header-pc__nav-item > span {
  display: inline-block;
  padding-block: 10px;
  line-height: 1.4;
  color: #333333;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
}
.l-header-pc__nav-item:has(.l-header-hovernav) {
  position: relative;
}
.l-header-pc__nav-item:has(.l-header-hovernav) span::after {
  content: "";
  width: 12px;
  height: 8px;
  background-image: url(../img/common/arw-down-black.svg);
  background-size: contain;
  background-repeat: no-repeat;
  display: inline-block;
  margin-left: -2px;
}
.l-header-pc__nav-item:has(.l-header-hovernav):hover .l-header-hovernav {
  opacity: 1;
  visibility: visible;
}

.l-header-btn-sp {
  display: flex;
  align-items: center;
  column-gap: 20px;
}
@media screen and (min-width: 1280px) {
  .l-header-btn-sp {
    display: none;
  }
}
.l-header-btn-sp__item {
  width: 28px;
  height: 28px;
}

.l-header-contactblock {
  display: flex;
  align-items: center;
  column-gap: 12px;
}
.l-header-contactblock__tel {
  font-family: "din-2014", sans-serif;
  font-size: min(1.6vw, 24px);
  line-height: 1.4;
  white-space: nowrap;
  letter-spacing: 0;
  display: block;
}
.l-header-contactblock__tel-sm {
  font-size: 13px;
  letter-spacing: 0;
}

.l-header-contact {
  display: flex;
  align-items: center;
  column-gap: min(20px, 0.8vw);
  height: 100%;
}
.l-header-contact__item {
  font-size: 14px;
  white-space: nowrap;
  font-weight: 500;
  letter-spacing: 0;
  display: block;
}
.l-header-contact__item-pink a {
  color: #fff;
  background-color: #DB8997;
  padding: 10px 12px;
  line-height: 1.4;
}

.ham-btn {
  width: 26px;
  height: 26px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  row-gap: 5px;
  position: relative;
  z-index: 9999;
}
@media screen and (min-width: 1280px) {
  .ham-btn {
    display: none;
    width: 32px;
  }
}
.ham-btn span {
  display: block;
  height: 2px;
  width: 100%;
  background: #333333;
  border-radius: 2px;
}
.ham-btn span:nth-child(1), .ham-btn span:nth-child(3) {
  transition: all 0.3s;
}
.ham-btn.navOpen {
  row-gap: 0px !important;
}
.ham-btn.navOpen span:nth-child(1) {
  margin-bottom: -4px;
  transform: rotate(45deg);
}
.ham-btn.navOpen span:nth-child(2) {
  opacity: 0;
}
.ham-btn.navOpen span:nth-child(3) {
  transform: rotate(-45deg);
}

.l-sp-navblock {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: 96% 3%;
  background-size: 25px auto;
  background-color: rgba(64, 62, 62, 0.7);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}
.l-sp-navblock.navOpen {
  opacity: 1;
  visibility: visible;
}
@media screen and (min-width: 1280px) {
  .l-sp-navblock.navOpen {
    opacity: 0;
    visibility: hidden;
  }
}
.l-sp-navblock__closearea {
  position: fixed;
  top: 0;
  left: 0;
  width: calc(100svw - 340px);
  height: 100%;
  z-index: 1000;
}
@media screen and (min-width: 1024px) {
  .l-sp-navblock__closearea {
    width: calc(100svw - 450px);
  }
}

.l-sp-nav {
  height: 100vh;
  overflow: auto;
  position: fixed;
  top: 0;
  right: 0;
  width: min(90%, 340px);
  height: 100%;
  z-index: 9998;
  background-color: #fff;
  font-size: 1.5rem;
  letter-spacing: 0.05em;
  text-align: left;
  line-height: 1;
  -webkit-transition: all 0.6s;
  transition: all 0.5s;
  -webkit-transform: translateX(600px);
  transform: translateX(600px);
  padding-block: 60px 160px;
}
@media screen and (min-width: 1024px) {
  .l-sp-nav {
    width: 450px;
    padding-block: 72px;
  }
}
.l-sp-nav.navOpen {
  transform: translate(0);
}
@media screen and (min-width: 1280px) {
  .l-sp-nav.navOpen {
    transform: translateX(0);
  }
}
.l-sp-nav__inner {
  width: max(260px, 76%);
  margin-inline: auto;
}
.l-sp-nav__list {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 20px;
}
@media screen and (min-width: 1024px) {
  .l-sp-nav__list {
    row-gap: 28px;
  }
}
.l-sp-nav__item:not(:has(.sp-sublist)) a {
  display: block;
  padding-left: 16px;
  text-indent: -16px;
  padding-block: 4px;
  line-height: 1.4;
  font-size: 15px;
  font-weight: 500;
}
.l-sp-nav__subttl {
  font-size: 13px;
  color: #666;
  background: #F8F8F8;
  padding: 5px 6px;
  display: block;
  line-height: 1.4;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .l-sp-nav__subttl {
    font-size: 14px;
    padding: 8px;
  }
}
.l-sp-nav__subttl.c-accordion-btn {
  color: #333333;
  font-weight: 500;
  font-size: 15px;
}
@media screen and (min-width: 1024px) {
  .l-sp-nav__subttl.c-accordion-btn {
    font-size: 16px;
  }
}
.l-sp-nav__btnlist {
  display: flex;
  justify-content: space-between;
  row-gap: 6px;
  flex-wrap: wrap;
  margin-top: 20px;
}
.l-sp-nav__btn {
  width: 49%;
}
.l-sp-nav__btn a {
  border: 1px solid #A8A8A8;
  padding: 10px 12px;
  line-height: 1.4;
  display: block;
  text-align: center;
  font-weight: 500;
}
.l-sp-nav__btn-pink {
  width: 100%;
}
.l-sp-nav__btn-pink a {
  border: none;
  color: #fff;
  background-color: #DB8997;
}
.l-sp-nav-tel {
  text-align: center;
  margin-block: 20px;
  display: block;
}
@media screen and (min-width: 1024px) {
  .l-sp-nav-tel {
    margin-block: 32px 24px;
  }
}
.l-sp-nav-tel__num {
  font-family: "din-2014", sans-serif;
  font-size: 34px;
  line-height: 1;
  white-space: nowrap;
}
.l-sp-nav-tel__num-sm {
  font-size: 20px;
}
.l-sp-nav-tel__note {
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
}
.l-sp-nav-sns {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
@media screen and (min-width: 1024px) {
  .l-sp-nav-sns {
    gap: 16px;
  }
}

.sp-sublist {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 4px;
  margin-top: 8px;
}

/*--------------------------------------------------------------------------
SNS
---------------------------------------------------------------------------*/
.l-footer {
  margin-top: 40px;
}
@media screen and (min-width: 768px) {
  .l-footer {
    margin-top: 96px;
  }
}

.l-footer-sns {
  background-color: #FAF3F5;
  padding-block: 18px 24px;
}
@media screen and (min-width: 768px) {
  .l-footer-sns {
    padding-block: 24px;
  }
}
.l-footer-sns__container {
  display: flex;
  flex-direction: column;
  width: fit-content;
  margin-inline: auto;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .l-footer-sns__container {
    flex-direction: row;
    column-gap: 24px;
    align-items: center;
  }
}
.l-footer-sns__ttl {
  text-transform: uppercase;
  font-family: "Cormorant Garamond", serif;
  font-size: 24px;
}
@media screen and (min-width: 768px) {
  .l-footer-sns__ttl {
    font-size: 24px;
  }
}
.l-footer-sns__line {
  display: inline-block;
  width: 16px;
  height: 1px;
  background-color: #888;
  margin-bottom: 12px;
}
@media screen and (min-width: 768px) {
  .l-footer-sns__line {
    width: 56px;
    margin-bottom: 0;
  }
}
.l-footer-sns__list {
  display: flex;
  gap: min(6.4svw, 24px);
}
@media screen and (min-width: 768px) {
  .l-footer-sns__list {
    gap: 28px;
  }
}
.l-footer-sns__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
}
/*--------------------------------------------------------------------------
footer-main
---------------------------------------------------------------------------*/
.l-footer-main {
  background-color: #fff;
}
.l-footer-main__container {
  padding-block: 32px;
  width: min(90%, 1200px);
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .l-footer-main__container {
    padding-top: 48px;
    display: flex;
    gap: min(3vw, 56px);
  }
}
@media screen and (min-width: 768px) {
  .l-footer-main__info {
    width: 300px;
  }
}
.l-footer-main__info .c-btn {
  max-width: 175px;
  padding-block: 9px;
}
.l-footer-main__logo {
  width: min(61svw, 240px);
  margin-bottom: 24px;
}
@media screen and (min-width: 768px) {
  .l-footer-main__logo {
    margin-bottom: 32px;
  }
}
.l-footer-main__info-cont {
  display: grid;
  grid-auto-flow: row;
  row-gap: 8px;
}
@media screen and (min-width: 768px) {
  .l-footer-main__info-cont {
    row-gap: 16px;
  }
}
.l-footer-main__address-name {
  font-size: 14px;
}
.l-footer-main__address-details {
  font-size: 12px;
  line-height: 1.6;
}
.l-footer-main__tel {
  font-family: "din-2014", sans-serif;
  font-size: 24px;
  line-height: 1.4;
  display: block;
}
.l-footer-main__tel span {
  font-size: 16px;
}

/*--------------------------------------------------------------------------
.l-footer-nav 
---------------------------------------------------------------------------*/
.l-footer-nav {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  column-gap: 16px;
  row-gap: 24px;
  margin-top: 32px;
}
@media screen and (min-width: 768px) {
  .l-footer-nav {
    display: flex;
    flex-wrap: wrap;
    column-gap: 40px;
    margin-top: 0;
  }
}
.l-footer-nav__item a {
  font-size: 13px;
  line-height: 1.3;
  display: inline-block;
  padding-block: 4px;
  text-indent: -9px;
  padding-left: 9px;
}
@media screen and (min-width: 768px) {
  .l-footer-nav__item a {
    padding-block: 8px;
  }
}
.l-footer-nav__sublist-ttl {
  font-weight: 700;
  font-size: 15px;
  line-height: 1.3;
  padding-block: 4px;
}
@media screen and (min-width: 768px) {
  .l-footer-nav__sublist-ttl {
    padding-block: 8px;
  }
}

.l-footer-copyright {
  border-top: 1px solid #ccc;
  padding-block: 24px 88px;
  padding-inline: 8px;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .l-footer-copyright {
    padding-block: 24px;
  }
}
.l-footer-copyright small {
  font-size: 11px;
  line-height: 1.4;
  color: #888;
  display: inline-block;
}/*# sourceMappingURL=style.css.map */