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

RESET CSS

html5doctor.com Reset Stylesheet

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
abbr,
address,
article,
aside,
audio,
b,
blockquote,
body,
canvas,
caption,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
p,
pre,
q,
samp,
section,
small,
span,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
ul,
var,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
  width: 100%;
}

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

nav ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

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

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
} /* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
} /* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: 700;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

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

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

button {
  padding: 0;
}

address {
  font-style: normal;
}

/* ------------------------- 使い方 ----------------------------------------------------------

    @include sizing(width, wide, 365px, sp, 276px);
    ==> width: clamp(276px, 7.46vw + 248px, 365px);
    （ビューポートがwide(1568px)のとき365px, sp(375px)のとき276pxになる自動補完値を上限下限をつけて設定）

    @include sizing(width, wide, 365px, sp, 276px, noClamp);
    ==> width: calc(7.46vw + 248px);
    （ビューポートがwide(1568px)のとき365px, sp(375px)のとき276pxになる自動補完値を設定）

    @include sizingRem(font-size, wide, 14px, sp, 12px);
    ==> font-size: clamp(0.75rem, 0.17vw + 0.70625rem, 0.875rem;
    （ビューポートがwide(1568px)のとき14px, sp(375px)のとき12pxになる自動補完値をremに変換して設定）
　　
    ※使いたいsassファイル上で@useしてください。
    ※scssファイル上での読みやすさ重視のため、mixinの引数に単位[px]が必要な仕様にしてあります。

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

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  scroll-behavior: smooth;
  scroll-padding-top: 2rem;
  line-height: 2;
}

body {
  color: #2D2519;
  background-color: #F4F4F2;
  text-rendering: optimizeLegibility;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  font-family: "Shippori Mincho B1", serif, sans-serif;
  line-height: 2;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  letter-spacing: -0.05em;
  font-size: clamp(0.875rem, 0.18vw + 0.83125rem, 1rem);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: inherit;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  -ms-interpolation-mode: nearest-neighbor;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: -moz-crisp-edges;
  image-rendering: -o-crisp-edges;
}

video {
  max-width: 100%;
  height: auto;
}

a,
a:link,
a:visited {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

a:active,
a:hover {
  color: inherit;
  text-decoration: none;
}

ul,
ol,
li {
  list-style-type: none;
}

dl,
dt,
dd {
  margin: 0;
  padding: 0;
}

p {
  margin: 0;
  padding: 0;
}

img {
  border: 0;
  line-height: 0;
  vertical-align: bottom;
}

svg {
  vertical-align: bottom;
}

hr {
  display: none;
}

table {
  margin: 0;
  padding: 0;
}

th {
  text-align: left;
  font-weight: bold;
  margin: 0;
}

td {
  margin: 0;
}

em {
  font-weight: bold;
  font-style: normal;
}

form {
  margin: 0;
  padding: 0;
}

label {
  margin: 0;
  padding: 0;
}

input.btn {
  margin: 0 0.5em;
  padding: 0 1em;
}

button {
  border: none;
  font: inherit;
  line-height: inherit;
  background: none;
  margin: 0;
}

/* キーボード操作"以外"でフォーカスされた際はoutlineを消す */
.js-focus-visible :focus:not(.focus-visible) {
  outline: 0;
}

/*
category
-----------------------------------------------------*/
.c-category-list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (min-width: 960px) {
  .c-category-list {
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
.c-category-list__item + .c-category-list__item {
  margin-left: 10px;
}
.c-category-list__link {
  display: inline-block;
  font-size: 0.875rem;
  line-height: 1.875rem;
  padding: 0 1em;
  border: 1px solid #D6D6CE;
  border-radius: 4px;
  background: #F4F4F2;
}
.c-category-list__link.-active {
  background: #D6D6CE;
}

/*
title
-----------------------------------------------------*/
.c-title-section {
  margin-bottom: clamp(20px, 1.82vw + 12.7px, 40px);
}
.c-title-section__en {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: clamp(32px, 0.45vw + 30.2px, 37px);
}
.c-title-section__ja {
  margin-top: 1em;
  display: block;
}
@media screen and (min-width: 768px) {
  .c-title-section__ja {
    margin-top: 2em;
    line-height: 1;
  }
}
.c-title-section.-center .c-title-section__en {
  margin: 0 auto;
}

.c-title-lead {
  font-size: clamp(1.375rem, 0.73vw + 1.19375rem, 1.875rem);
  margin-bottom: 1em;
}

.c-title-dot {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-title-dot::before {
  content: "";
  width: 6px;
  height: 6px;
  display: inline-block;
  border-radius: 50%;
  background: currentColor;
  margin-right: 0.5em;
}

.title-std {
  font-size: clamp(20px, 0.18vw + 19.3px, 22px);
  margin-bottom: 1em;
}

/*
text
-----------------------------------------------------*/
.c-text-center {
  text-align: center;
}

.c-text-right {
  text-align: right;
}

.c-text-en {
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
}

.c-text-link {
  text-decoration: underline;
}

.c-text-icon {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-text-icon__icon.-l {
  margin-right: 0.5em;
}
.c-text-icon__icon.-r {
  margin-left: 0.5em;
}
.c-text-icon__icon img {
  display: block;
}

.c-text--tel {
  text-decoration: underline;
}
@media screen and (min-width: 768px) {
  .c-text--tel {
    text-decoration: none;
  }
}

.c-text-check {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-text-check::before {
  content: "";
  width: 1em;
  height: 1em;
  background: url(../img/common/icon-check.svg) no-repeat center center/contain;
  margin-right: 1em;
}

/*
block
-----------------------------------------------------*/
/*button
-----------------------------------------------------*/
.c-button-more {
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-button-more::after {
  content: "";
  width: clamp(80px, 1.82vw + 72.7px, 100px);
  height: clamp(80px, 1.82vw + 72.7px, 100px);
  background: #2D2519 url(../img/common/arrow-r.svg) no-repeat center center/12px auto;
  border-radius: 50%;
  display: block;
  margin-left: 1em;
  -webkit-transition: background-color 0.3s, -webkit-filter 0.3s;
  transition: background-color 0.3s, -webkit-filter 0.3s;
  transition: filter 0.3s, background-color 0.3s;
  transition: filter 0.3s, background-color 0.3s, -webkit-filter 0.3s;
}
@media (hover: hover) {
  .c-button-more:hover::after {
    background-color: #0b0b0d;
    -webkit-filter: invert(1);
            filter: invert(1);
    border: 1px solid #d2dae6;
  }
}
.c-button-more.-line::after {
  background-color: transparent;
  border: 1px solid;
}
@media (hover: hover) {
  .c-button-more.-line:hover::after {
    background-color: #0b0b0d;
    -webkit-filter: invert(1);
            filter: invert(1);
    border: 1px solid #d2dae6;
  }
}

.c-button-circle {
  width: 100px;
  height: 100px;
  border: 1px solid;
  border-radius: 50%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.c-button-circle.-line {
  color: #FFF;
  -webkit-transition: background 0.5s, color 0.5s;
  transition: background 0.5s, color 0.5s;
}
.c-button-circle.-line img {
  -webkit-transition: -webkit-filter 0.5s;
  transition: -webkit-filter 0.5s;
  transition: filter 0.5s;
  transition: filter 0.5s, -webkit-filter 0.5s;
}
@media (hover: hover) {
  .c-button-circle.-line:hover, .c-hover-wrap:hover .c-button-circle.-line {
    border-color: #2D2519;
    background: #F4F4F2;
  }
  .c-button-circle.-line:hover img, .c-hover-wrap:hover .c-button-circle.-line img {
    -webkit-filter: invert(1);
            filter: invert(1);
  }
}

.c-button-round {
  border: 1px solid;
  border-radius: 3em;
  text-align: center;
  padding: 1.5em;
  color: #FFF;
  background: #2D2519;
  -webkit-transition: background 0.5s, color 0.5s;
  transition: background 0.5s, color 0.5s;
}
@media (hover: hover) {
  .c-button-round:hover, .c-hover-wrap:hover .c-button-round {
    color: #2D2519;
    background: #F4F4F2;
  }
}
.c-button-round.-arrow {
  position: relative;
}
.c-button-round.-arrow::after {
  content: "";
  width: 12px;
  height: 12px;
  background: url(../img/common/arrow-r.svg) no-repeat center center/12px auto;
  display: block;
  -webkit-transition: -webkit-filter 0.3s;
  transition: -webkit-filter 0.3s;
  transition: filter 0.3s;
  transition: filter 0.3s, -webkit-filter 0.3s;
  position: absolute;
  right: 2em;
  top: 0;
  bottom: 0;
  margin: auto;
  -webkit-transition: -webkit-filter 0.5s;
  transition: -webkit-filter 0.5s;
  transition: filter 0.5s;
  transition: filter 0.5s, -webkit-filter 0.5s;
}
@media (hover: hover) {
  .c-hover-wrap:hover .c-button-round.-arrow::after {
    -webkit-filter: invert(1);
            filter: invert(1);
  }
}
.c-button-round.-list {
  position: relative;
}
.c-button-round.-list::after {
  content: "";
  width: 18px;
  height: 18px;
  background: url(../img/common/icon-list.svg) no-repeat center center/12px auto;
  display: block;
  -webkit-transition: -webkit-filter 0.3s;
  transition: -webkit-filter 0.3s;
  transition: filter 0.3s;
  transition: filter 0.3s, -webkit-filter 0.3s;
  position: absolute;
  left: 2em;
  top: 0;
  bottom: 0;
  margin: auto;
  -webkit-transition: -webkit-filter 0.5s;
  transition: -webkit-filter 0.5s;
  transition: filter 0.5s;
  transition: filter 0.5s, -webkit-filter 0.5s;
}
@media (hover: hover) {
  .c-hover-wrap:hover .c-button-round.-list::after {
    -webkit-filter: invert(1);
            filter: invert(1);
    background-color: transparent;
  }
}

.c-button-scrolldown {
  position: fixed;
  left: 2rem;
  bottom: 1rem;
  font-size: 0.8125rem;
  margin: auto;
  z-index: 99;
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
  cursor: pointer;
}

/*
list
-----------------------------------------------------*/
.c-list--dot li {
  display: block;
  position: relative;
  padding-left: 0.75rem;
}
.c-list--dot li::before {
  content: "・";
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  margin: auto;
}
.c-list--dot__item {
  padding-left: 2em;
  position: relative;
}
.c-list--dot__item::before {
  content: "・";
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  margin: auto;
}

.c-list-dl {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 5em 1em minmax(0, 1fr);
  grid-template-columns: 5em minmax(0, 1fr);
  gap: 0 1em;
}

/*
table
-----------------------------------------------------*/
.c-table--std {
  width: 100%;
}
.c-table--std.-bordertop {
  border-top: 1px solid #2D2519;
}
.c-table--std tr {
  border-bottom: 1px solid #2D2519;
}
.c-table--std th {
  width: 5rem;
  padding: 1em 0em;
}
@media screen and (min-width: 768px) {
  .c-table--std th {
    width: 25%;
    padding: 1.5em 1.5em 1.5em 0;
  }
}
.c-table--std td {
  width: calc(100% - 5rem);
  padding: 1em 0em 1em 1em;
}
@media screen and (min-width: 768px) {
  .c-table--std td {
    width: 75%;
    padding: 1.5em 0;
  }
}

/*
gmenu
-----------------------------------------------------*/
.c-gmenu-summary {
  display: none;
}
@media screen and (min-width: 768px) {
  .c-gmenu-summary {
    display: -ms-grid;
    display: grid;
    grid-auto-flow: column;
    -ms-grid-rows: minmax(0, 1fr) 0.2em minmax(0, 1fr) 0.2em minmax(0, 1fr);
    grid-template-rows: repeat(3, minmax(0, 1fr));
    gap: 0.2em 6em;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: auto;
    line-height: 1.5;
    font-family: "STIX Two Text", serif;
    letter-spacing: -0.02em;
    font-size: 0.875rem;
  }
}

.c-gmenu-main {
  display: -ms-grid;
  display: grid;
  grid-auto-flow: column;
  -ms-grid-rows: minmax(0, 1fr) 2.5rem minmax(0, 1fr) 2.5rem minmax(0, 1fr) 2.5rem minmax(0, 1fr);
  grid-template-rows: repeat(4, minmax(0, 1fr));
  gap: 2.5rem;
}
.c-gmenu-main__item {
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .c-gmenu-main__item:hover {
    opacity: 0.7;
  }
}
.c-gmenu-main__en {
  display: block;
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
  font-size: clamp(1.3125rem, 0.27vw + 1.24375rem, 1.5rem);
  line-height: 1.1;
}
.c-gmenu-main__ja {
  display: block;
  font-size: clamp(0.8125rem, 0.09vw + 0.7875rem, 0.875rem);
  line-height: 1.5;
}

.c-gmenu-button {
  width: 100%;
  display: block;
  border: 1px solid #F4F4F2;
  padding: 1em;
  border-radius: 2px;
  -webkit-transition: background 0.3s, color 0.3s;
  transition: background 0.3s, color 0.3s;
}
@media (hover: hover) {
  .c-gmenu-button:hover {
    color: #2D2519;
    background: #F4F4F2;
  }
}
.c-gmenu-button__en {
  font-size: clamp(1.1875rem, 0.09vw + 1.1625rem, 1.25rem);
  letter-spacing: -0.02em;
  font-family: "STIX Two Text", serif;
}
.c-gmenu-button__ja {
  font-size: clamp(0.75rem, 0.09vw + 0.725rem, 0.8125rem);
  margin-left: 2em;
}
.c-gmenu-button.-contact {
  background: #F4F4F2;
  color: #2D2519;
  margin: 56px 0 20px;
}
@media (hover: hover) {
  .c-gmenu-button.-contact:hover {
    color: #F4F4F2;
    background: #2D2519;
  }
}
.c-gmenu-button .c-icon {
  -webkit-filter: invert(1);
          filter: invert(1);
  -webkit-transition: -webkit-filter 0.3s;
  transition: -webkit-filter 0.3s;
  transition: filter 0.3s;
  transition: filter 0.3s, -webkit-filter 0.3s;
}
@media (hover: hover) {
  .c-gmenu-button:hover .c-icon {
    -webkit-filter: invert(0);
            filter: invert(0);
  }
}

/*
fmenu
-----------------------------------------------------*/
.c-fmenu {
  display: -ms-grid;
  display: grid;
  grid-auto-flow: column;
  -ms-grid-rows: minmax(0, 1fr) 0 minmax(0, 1fr) 0 minmax(0, 1fr);
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: 0 clamp(50px, 2.73vw + 39.1px, 80px);
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .c-fmenu {
    margin-right: 0;
  }
}
.c-fmenu a {
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .c-fmenu a:hover {
    opacity: 0.7;
  }
}

/*
post
-----------------------------------------------------*/
.c-post-info {
  font-size: 0.6875rem;
  line-height: 1;
  font-family: "Arial", sans-serif;
  letter-spacing: 0em;
}
.c-post-info__cat {
  margin-right: 1.2em;
  padding-right: 1.2em;
  border-right: 1px solid;
}

/*
icon
-----------------------------------------------------*/
.c-icon {
  display: inline-block;
}
.c-icon.-out {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

/*
 mainvisual
-----------------------------------------------------*/
/*
page
-----------------------------------------------------*/
.c-page-head {
  text-align: center;
  padding-top: clamp(240px, 2.18vw + 231.3px, 264px);
  padding-bottom: clamp(125px, 3vw + 113px, 158px);
  text-align: center;
  position: relative;
}
.c-page-head.-simple {
  padding-bottom: clamp(90px, 0.27vw + 88.9px, 93px);
  text-align: left;
}
.c-page-head.-post {
  padding-bottom: 62px;
}
.c-page-head__postmeta-time {
  font-size: clamp(0.75rem, -0.18vw + 0.91875rem, 0.875rem);
  margin-top: 1.5em;
  display: block;
}
.c-page-head__title {
  position: relative;
}
.c-page-head__title-en {
  display: block;
}
.c-page-head__title-en img {
  width: auto;
  height: clamp(30px, 1.09vw + 25.6px, 42px);
  display: block;
  margin: 0 auto;
}
.c-page-head__title-en img.-high {
  height: clamp(37px, 1.27vw + 31.9px, 51px);
}
.-simple .c-page-head__title-en img {
  margin-left: 0;
}
.c-page-head__title-ja {
  font-size: clamp(1.125rem, 0.18vw + 1.08125rem, 1.25rem);
  margin-top: 0.5em;
  display: block;
}
.-simple .c-page-head__title-ja {
  text-align: left;
  margin-top: 1em;
}
.c-page-head__title-post {
  font-size: clamp(1.375rem, 0.73vw + 1.19375rem, 1.875rem);
  line-height: 1.6;
  text-align: left;
  display: block;
}
.c-page-head.-line::after {
  content: "";
  width: 1px;
  height: 100vh;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(40%, #2D2519), color-stop(90%, #E8E4DF));
  background: -webkit-linear-gradient(top, #2D2519 40%, #E8E4DF 90%);
  background: linear-gradient(to bottom, #2D2519 40%, #E8E4DF 90%);
  position: absolute;
  bottom: clamp(75px, 3vw + 63px, 108px);
  left: 0;
  right: 0;
  margin: auto;
  -webkit-transform: translateY(100%) scale(0);
          transform: translateY(100%) scale(0);
  -webkit-transition: -webkit-transform 2s;
  transition: -webkit-transform 2s;
  transition: transform 2s;
  transition: transform 2s, -webkit-transform 2s;
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.-loaded .c-page-head.-line::after {
  -webkit-transform: translateY(100%) scale(1);
          transform: translateY(100%) scale(1);
}

.c-page-head__lead {
  text-align: left;
  line-height: 2;
  margin-top: clamp(65px, 1.36vw + 59.6px, 80px);
}
@media screen and (min-width: 768px) {
  .c-page-head__lead {
    text-align: center;
  }
}

.c-page-main {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 0.5s 1s, -webkit-transform 0.5s 1s;
  transition: opacity 0.5s 1s, -webkit-transform 0.5s 1s;
  transition: opacity 0.5s 1s, transform 0.5s 1s;
  transition: opacity 0.5s 1s, transform 0.5s 1s, -webkit-transform 0.5s 1s;
  position: relative;
  z-index: 2;
}
.c-page-main.-show {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/*
breadcrumb
-----------------------------------------------------*/
.c-breadcrumb {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  color: rgba(45, 37, 25, 0.5);
  white-space: nowrap;
  width: 100%;
}
.c-breadcrumb-wrap {
  position: absolute;
  top: clamp(20px, 1.45vw + 14.2px, 36px);
  left: 280px;
  margin: auto;
  width: calc(100% - 40rem);
  z-index: 10;
  display: none;
}
@media screen and (min-width: 1280px) {
  .c-breadcrumb-wrap {
    display: block;
  }
}
.c-breadcrumb a {
  color: #2D2519;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .c-breadcrumb a:hover {
    opacity: 0.7;
  }
}
.c-breadcrumb__item {
  white-space: nowrap;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-breadcrumb__item:last-child {
  -webkit-flex-shrink: 1;
      -ms-flex-negative: 1;
          flex-shrink: 1;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
.c-breadcrumb__item + .c-breadcrumb__item::before {
  content: "";
  width: 0.5em;
  height: 0.5em;
  display: inline-block;
  border-right: 2px solid #2D2519;
  border-top: 2px solid #2D2519;
  -webkit-transform: translateX(-25%) rotate(45deg);
          transform: translateX(-25%) rotate(45deg);
  margin: 0 1em;
  opacity: 0.5;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
}

/*
pagenation
-----------------------------------------------------*/
.c-pagination {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0 7em;
  position: relative;
}
.c-pagination .page-numbers {
  width: 2em;
  height: 2em;
  line-height: 2em;
  text-align: center;
}
.c-pagination .page-numbers.current {
  text-decoration: line-through;
}
.c-pagination .prev,
.c-pagination .next {
  width: auto;
  position: absolute;
  top: 0;
  margin: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-pagination .prev {
  left: 0;
}
.c-pagination .next {
  right: 0;
}
.c-pagination .prev::before,
.c-pagination .next::after {
  content: "";
  width: 1.2em;
  height: 1.2em;
  display: block;
  background: url(../img/common/arrow.svg) no-repeat center center/auto;
}
.c-pagination .prev::before {
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
  margin-right: 1em;
}
.c-pagination .next::after {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  margin-left: 1em;
}

/*
loading
-----------------------------------------------------*/
.c-loading {
  z-index: 9;
  width: 100%;
  height: 100%;
  position: fixed;
  inset: 0;
  margin: auto;
  background: #F4F4F2;
}

body.home .p-home-fv__copy {
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
body.home.-loading .p-home-fv__copy {
  opacity: 1;
}
body.home.-loaded .p-home-fv__copy {
  z-index: 1;
}
body.home.-loaded .p-home-fv__copy::after {
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
  -webkit-transition: -webkit-transform 1s;
  transition: -webkit-transform 1s;
  transition: transform 1s;
  transition: transform 1s, -webkit-transform 1s;
}
body.home .l-header-logo,
body.home .l-header-summary-menu,
body.home .l-header-menuBtn {
  -webkit-transform: translateY(-10px);
          transform: translateY(-10px);
  opacity: 0;
  -webkit-transition: opacity 1s, -webkit-transform 1s;
  transition: opacity 1s, -webkit-transform 1s;
  transition: opacity 1s, transform 1s;
  transition: opacity 1s, transform 1s, -webkit-transform 1s;
}
body.home.-loaded .l-header-logo,
body.home.-loaded .l-header-summary-menu,
body.home.-loaded .l-header-menuBtn {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
}
body.home .p-home-pickup,
body.home .c-button-scrolldown,
body.home .p-home-fv__img {
  -webkit-transform: translateY(10px);
          transform: translateY(10px);
  opacity: 0;
  -webkit-transition: opacity 1s, background 0.3s, -webkit-transform 1s;
  transition: opacity 1s, background 0.3s, -webkit-transform 1s;
  transition: opacity 1s, transform 1s, background 0.3s;
  transition: opacity 1s, transform 1s, background 0.3s, -webkit-transform 1s;
  z-index: 10;
}
body.home .p-home-pickup {
  z-index: 11;
}
body.home .p-home-fv__img {
  -webkit-transform: translateY(30px);
          transform: translateY(30px);
}
body.home.-loaded .p-home-pickup,
body.home.-loaded .c-button-scrolldown,
body.home.-loaded .p-home-fv__img {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
}

/*
sns
-----------------------------------------------------*/
/*
hover
-----------------------------------------------------*/
.c-hover-text {
  background: -webkit-linear-gradient(225deg, currentColor 50%, transparent 50%) repeat-x 100% 100%/200% 1px;
  background: linear-gradient(225deg, currentColor 50%, transparent 50%) repeat-x 100% 100%/200% 1px;
  -webkit-animation: hide-bg-line 0.3s ease-out forwards;
          animation: hide-bg-line 0.3s ease-out forwards;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media (hover: hover) and (pointer: fine) {
  .c-hover-text:hover {
    -webkit-animation: show-bg-line 0.3s ease-out forwards;
            animation: show-bg-line 0.3s ease-out forwards;
  }
  .c-hover-wrap:hover .c-hover-text {
    -webkit-animation: show-bg-line 0.3s ease-out forwards;
            animation: show-bg-line 0.3s ease-out forwards;
  }
}
.c-hover-text.-hover-wide {
  background-size: 200% 2px;
}

.c-hover-text-reverse {
  background: -webkit-linear-gradient(225deg, currentColor 50%, transparent 50%) repeat-x 100% 100%/200% 1px;
  background: linear-gradient(225deg, currentColor 50%, transparent 50%) repeat-x 100% 100%/200% 1px;
}
@media (hover: hover) and (pointer: fine) {
  .c-hover-text-reverse:hover {
    -webkit-animation: move-bg-line 0.4s linear;
            animation: move-bg-line 0.4s linear;
  }
  .c-hover-wrap:hover .c-hover-text-reverse {
    -webkit-animation: move-bg-line 0.4s linear;
            animation: move-bg-line 0.4s linear;
  }
}

@-webkit-keyframes hide-bg-line {
  to {
    background-position: 0% 100%;
  }
}

@keyframes hide-bg-line {
  to {
    background-position: 0% 100%;
  }
}
@-webkit-keyframes show-bg-line {
  from {
    background-position: 200% 100%;
  }
}
@keyframes show-bg-line {
  from {
    background-position: 200% 100%;
  }
}
@-webkit-keyframes move-bg-line {
  0% {
    background-position: 100% 100%;
  }
  50% {
    background-position: 0% 100%;
  }
  100% {
    background-position: -100% 100%;
  }
}
@keyframes move-bg-line {
  0% {
    background-position: 100% 100%;
  }
  50% {
    background-position: 0% 100%;
  }
  100% {
    background-position: -100% 100%;
  }
}
.c-hover-img {
  -webkit-transition: -webkit-transform 0.8s;
  transition: -webkit-transform 0.8s;
  transition: transform 0.8s;
  transition: transform 0.8s, -webkit-transform 0.8s;
}
@media (hover: hover) and (pointer: fine) {
  .c-hover-img:hover {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
  .c-hover-wrap:hover .c-hover-img {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

.c-hover-excursion {
  background: #F2F2F2;
  padding: 8vw 0;
}
@media screen and (min-width: 768px) {
  .c-hover-excursion {
    padding: 5vw 0;
  }
}
@media screen and (min-width: 960px) {
  .c-hover-excursion__main {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.c-hover-excursion__title {
  font-size: 0.7142857143rem;
  margin-bottom: 2em;
}
@media screen and (min-width: 960px) {
  .c-hover-excursion__title {
    width: 28%;
  }
}
@media screen and (min-width: 960px) {
  .c-hover-excursion__links {
    width: 65%;
  }
}

.c-hover-opacity {
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .c-hover-opacity:hover, .c-hover-wrap:hover .c-hover-opacity {
    opacity: 0.6;
  }
}

.c-hover-menu {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: minmax(0, 1fr) 1em minmax(0, 1fr);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1em;
}
@media screen and (min-width: 768px) {
  .c-hover-menu {
    -ms-grid-columns: (minmax(0, 1fr))[3];
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.c-hover-menu .link {
  display: block;
  padding-left: 1em;
  background: url(../img/common/arrow-r.svg) no-repeat left center/0.5em auto;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.c-hover-menu .link.-current {
  opacity: 0.4;
}
@media (hover: hover) and (pointer: fine) {
  .c-hover-menu .link:hover {
    opacity: 0.4;
  }
}

.c-hover-index-menu__title {
  font-size: 0.7142857143rem;
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
  margin-bottom: 1em;
}
@media screen and (min-width: 768px) {
  .c-hover-index-menu__title {
    font-size: 0.875rem;
    margin-bottom: 2em;
  }
}
.c-hover-index-menu__list {
  border-top: 1px solid #707070;
}
.c-hover-index-menu__list .item {
  border-bottom: 1px solid #707070;
}
.c-hover-index-menu__list .link {
  display: block;
  padding: 1.5em 0 1.5em 2.5em;
  background: url(../img/common/arrow-r.svg) no-repeat 1em center/0.5em auto;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .c-hover-index-menu__list .link:hover {
    opacity: 0.4;
  }
}

/*
body
-----------------------------------------------------*/
.l-body {
  overflow-x: hidden;
}

.l-body-line {
  position: relative;
}
.l-body-line::after {
  content: "";
  width: 1px;
  height: 100%;
  position: absolute;
  inset: 0;
  background: #E8E4DF;
  z-index: -1;
  display: block;
  margin: auto;
  mix-blend-mode: darken;
}

/*
header
-----------------------------------------------------*/
.l-header-logo {
  position: fixed;
  top: clamp(15px, 0.45vw + 13.2px, 20px);
  left: clamp(15px, 0.45vw + 13.2px, 20px);
  margin: auto;
  z-index: 999;
  width: clamp(120px, 9.09vw + 83.6px, 220px);
  -webkit-filter: invert(1);
          filter: invert(1);
  mix-blend-mode: exclusion;
}
.l-header-logo img {
  width: 100%;
}
.l-header-logo.-open {
  -webkit-filter: grayscale(1) contrast(0) brightness(2);
          filter: grayscale(1) contrast(0) brightness(2);
}

.l-header-menuBtn {
  position: fixed;
  top: clamp(25px, 1.36vw + 19.6px, 40px);
  right: clamp(25px, 3.36vw + 11.6px, 62px);
  margin: auto;
  z-index: 999;
  padding-top: 1.5em;
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
  font-size: 0.8125rem;
  -webkit-filter: invert(1);
          filter: invert(1);
  mix-blend-mode: exclusion;
  color: #2D2519;
}
.l-header-menuBtn::before {
  content: "";
  width: 8px;
  height: 8px;
  display: block;
  border-radius: 50%;
  background: currentColor;
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
.l-header-menuBtn.-open {
  -webkit-filter: grayscale(1) contrast(0) brightness(2);
          filter: grayscale(1) contrast(0) brightness(2);
}
@media (hover: hover) {
  .l-header-menuBtn.-hover {
    -webkit-filter: grayscale(1) contrast(0) brightness(2);
            filter: grayscale(1) contrast(0) brightness(2);
  }
}

.l-header-summary-menu {
  position: absolute;
  top: 0;
  right: 0;
  margin: auto;
  margin-top: clamp(25px, 1.36vw + 19.6px, 40px);
  margin-right: clamp(60px, 10.91vw + 16.4px, 180px);
  z-index: 11;
}

.l-header-drawer {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  overflow: hidden;
  z-index: 998;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  color: #FFF;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
}
@media screen and (max-height: 680px) {
  .l-header-drawer {
    display: block;
    overflow-y: scroll;
    padding: 8rem 3rem;
  }
}
@media screen and (min-width: 960px) {
  .l-header-drawer {
    padding-top: 0;
    width: 50%;
  }
}
.l-header-drawer.-open {
  pointer-events: auto;
  opacity: 1;
  -webkit-transition: opacity 0.5s 0.5s;
  transition: opacity 0.5s 0.5s;
  visibility: visible;
}
.l-header-drawer__bg {
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  right: 0;
  margin: auto;
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
          clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  z-index: 99;
}
@media screen and (min-width: 960px) {
  .l-header-drawer__bg {
    width: 50%;
  }
}
.l-header-drawer__bg::before {
  content: "";
  background: transparent;
  width: 8px;
  height: 8px;
  position: fixed;
  margin: auto;
  top: clamp(29px, 1.36vw + 23.6px, 44px);
  right: clamp(40px, 3.45vw + 26.2px, 78px);
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
  -webkit-clip-path: inset(0 0 round 50% 50% 50% 50%);
          clip-path: inset(0 0 round 50% 50% 50% 50%);
  -webkit-transition: all 0.5s, background 0s 0.5s, -webkit-clip-path 0.2s 0.3s;
  transition: all 0.5s, background 0s 0.5s, -webkit-clip-path 0.2s 0.3s;
  transition: all 0.5s, clip-path 0.2s 0.3s, background 0s 0.5s;
  transition: all 0.5s, clip-path 0.2s 0.3s, background 0s 0.5s, -webkit-clip-path 0.2s 0.3s;
}
@media (hover: hover) {
  .l-header-drawer__bg.-hover::before {
    width: 10em;
    height: 10em;
    background: #2D2519;
    -webkit-transition: all 0.5s, background 0s, -webkit-clip-path 0.2s 0.3s;
    transition: all 0.5s, background 0s, -webkit-clip-path 0.2s 0.3s;
    transition: all 0.5s, clip-path 0.2s 0.3s, background 0s;
    transition: all 0.5s, clip-path 0.2s 0.3s, background 0s, -webkit-clip-path 0.2s 0.3s;
  }
}
.l-header-drawer__bg.-open::before {
  width: max(200vw, 200vh);
  height: max(200vw, 200vh);
  -webkit-clip-path: inset(0 0 round 0 0 0 0);
          clip-path: inset(0 0 round 0 0 0 0);
  background: #2D2519;
  -webkit-transition: all 0.5s, background 0s, -webkit-clip-path 0.2s 0.3s;
  transition: all 0.5s, background 0s, -webkit-clip-path 0.2s 0.3s;
  transition: all 0.5s, clip-path 0.2s 0.3s, background 0s;
  transition: all 0.5s, clip-path 0.2s 0.3s, background 0s, -webkit-clip-path 0.2s 0.3s;
}
@media screen and (min-width: 960px) {
  .l-header-drawer__bg.-open::before {
    -webkit-transition: all 1s, background 0s, -webkit-clip-path 0.5s 0.5s;
    transition: all 1s, background 0s, -webkit-clip-path 0.5s 0.5s;
    transition: all 1s, clip-path 0.5s 0.5s, background 0s;
    transition: all 1s, clip-path 0.5s 0.5s, background 0s, -webkit-clip-path 0.5s 0.5s;
  }
}
.l-header-drawer__inner {
  width: clamp(255px, 12vw + 207px, 387px);
  margin: 0 auto;
}

/*
footer
-----------------------------------------------------*/
.l-footer {
  background: #F4F4F2;
}

.l-footer-contact {
  position: relative;
  color: #FFF;
  text-align: center;
  padding: clamp(186px, -3.55vw + 239.2px, 225px) 0 186px;
  overflow: hidden;
}
.l-footer-contact::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  opacity: 0.5;
  background: #2D2519;
  display: block;
  z-index: 2;
}
.l-footer-contact__button {
  margin: 2em auto 0;
}
.l-footer-contact__inner {
  position: relative;
  z-index: 2;
}
.l-footer-contact__img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  margin: auto;
}
.l-footer-contact__img1 {
  position: absolute;
  left: 0;
  top: 0;
  margin: auto;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 50%;
  -o-object-position: 10% center;
     object-position: 10% center;
}
@media screen and (min-width: 768px) {
  .l-footer-contact__img1 {
    width: 50%;
    height: 120%;
  }
}
.l-footer-contact__img2 {
  position: absolute;
  right: 0;
  top: 50%;
  margin: auto;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 50%;
}
@media screen and (min-width: 768px) {
  .l-footer-contact__img2 {
    width: 50.1%;
    margin-left: -0.1%;
    height: 120%;
    top: 0;
  }
}

.l-footer {
  padding: clamp(24px, 3.27vw + 10.9px, 60px) 0 clamp(21px, 1.36vw + 15.6px, 36px);
}

.l-footer-logo {
  width: 108px;
}
.l-footer-logo img {
  display: block;
  width: 100%;
}

.l-footer-gallery {
  width: 100%;
  margin: 65px 0;
}
@media screen and (min-width: 768px) {
  .l-footer-gallery {
    margin: 42px 0 68px;
  }
}
.l-footer-gallery .swiper-wrapper {
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
}
.l-footer-gallery__slide {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.l-footer-gallery img {
  max-width: none;
  width: clamp(1500px, 154.55vw + 881.8px, 3200px);
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
}

.l-footer-copy {
  width: clamp(310px, 33.33vw + 54px, 554px);
  display: block;
  margin: 0 auto 6.25rem;
}
@media screen and (min-width: 768px) {
  .l-footer-copy {
    margin: 0;
    width: 36vw;
  }
}
.l-footer-copy__en {
  width: 100%;
}
.l-footer-copy__ja {
  width: clamp(260px, 7.51vw + 202.3px, 315px);
  margin: clamp(18px, 1.64vw + 5.4px, 30px) auto 0;
  display: block;
}
@media screen and (min-width: 768px) {
  .l-footer-copy__ja {
    margin-left: 0;
    width: 20vw;
  }
}

@media screen and (min-width: 768px) {
  .l-footer-menu {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-box-align: end;
    -webkit-align-items: flex-end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}

.l-footer-bottom {
  display: -ms-grid;
  display: grid;
      grid-template-areas: "policy policy" "copyright gotop";
  margin-top: 4.375rem;
  gap: 0.5rem;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .l-footer-bottom {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    gap: 0;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.l-footer-copyright {
  -ms-grid-row: 3;
  -ms-grid-column: 1;
  color: #787774;
  font-size: 0.75rem;
  display: block;
  grid-area: copyright;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .l-footer-copyright {
    margin-right: auto;
  }
}

.l-footer-policy {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  -ms-grid-column-span: 3;
  grid-area: policy;
  letter-spacing: 0;
  font-size: 0.875rem;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .l-footer-policy:hover {
    opacity: 0.7;
  }
}

.l-footer-gotop {
  -ms-grid-row: 3;
  -ms-grid-column: 3;
  grid-area: gotop;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  font-size: 0.875rem;
  letter-spacing: 0;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (min-width: 768px) {
  .l-footer-gotop {
    margin-left: 2em;
  }
}
@media (hover: hover) {
  .l-footer-gotop:hover {
    opacity: 0.7;
  }
}
.l-footer-gotop__arrow {
  margin: 0 0.5em;
}

/*
 container
-----------------------------------------------------*/
.l-container.-wide {
  width: 100%;
  padding: 0 clamp(25px, 3.36vw + 11.6px, 62px);
  margin: 0 auto;
}
.l-container.-primary {
  width: clamp(315px, 66.64vw + 48.4px, 1048px);
  margin: 0 auto;
}
.l-container.-primary-wide {
  width: clamp(315px, 78.27vw + 1.9px, 1176px);
  margin: 0 auto;
}
.l-container.-narrow {
  width: clamp(315px, 35.55vw + 172.8px, 706px);
  margin: 0 auto;
}
@media screen and (min-width: 960px) {
  .l-container.-pc-full {
    width: 100%;
  }
}

/*
spacer
-----------------------------------------------------*/
.l-spacer.-large {
  padding-top: clamp(100px, 9.09vw + 63.6px, 200px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-large {
    padding-top: 13vw;
  }
}
.l-spacer.-large.-both {
  padding: clamp(100px, 9.09vw + 63.6px, 200px) 0;
}
@media screen and (min-width: 1500px) {
  .l-spacer.-large.-both {
    padding: 13vw 0;
  }
}
.l-spacer.-large.-bottom {
  padding: 0 0 clamp(100px, 9.09vw + 63.6px, 200px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-large.-bottom {
    padding: 0 0 13vw;
  }
}
.l-spacer.-xlarge {
  padding-top: clamp(150px, 9.09vw + 113.6px, 250px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-xlarge {
    padding-top: 16vw;
  }
}
.l-spacer.-xlarge.-both {
  padding: clamp(150px, 9.09vw + 113.6px, 250px) 0;
}
@media screen and (min-width: 1500px) {
  .l-spacer.-xlarge.-both {
    padding: 16vw 0;
  }
}
.l-spacer.-xlarge.-bottom {
  padding: 0 0 clamp(150px, 9.09vw + 113.6px, 250px);
}
.l-spacer.-xxlarge {
  padding-top: clamp(180px, 10.91vw + 136.4px, 300px);
}
.l-spacer.-xxlarge.-both {
  padding: clamp(180px, 10.91vw + 136.4px, 300px) 0;
}
.l-spacer.-xxlarge.-bottom {
  padding: 0 0 clamp(180px, 10.91vw + 136.4px, 300px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-xxlarge.-bottom {
    padding: 0 0 16vw;
  }
}
.l-spacer.-medium {
  padding-top: clamp(60px, 2.73vw + 49.1px, 90px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-medium {
    padding-top: 6vw;
  }
}
.l-spacer.-medium.-both {
  padding: clamp(60px, 2.73vw + 49.1px, 90px) 0;
}
@media screen and (min-width: 1500px) {
  .l-spacer.-medium.-both {
    padding: 6vw 0;
  }
}
.l-spacer.-medium.-bottom {
  padding: 0 0 clamp(60px, 2.73vw + 49.1px, 90px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-medium.-bottom {
    padding: 0 0 6vw;
  }
}
.l-spacer.-small {
  padding-top: clamp(45px, -0.45vw + 51.8px, 50px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-small {
    padding-top: 3vw;
  }
}
.l-spacer.-small.-both {
  padding-top: clamp(45px, -0.45vw + 51.8px, 50px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-small.-both {
    padding: 3vw 0;
  }
}
.l-spacer.-small.-bottom {
  padding-top: clamp(45px, -0.45vw + 51.8px, 50px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-small.-bottom {
    padding: 0 0 3vw;
  }
}
.l-spacer.-footer {
  padding-top: clamp(180px, 10.91vw + 136.4px, 300px);
}
@media screen and (min-width: 1500px) {
  .l-spacer.-footer {
    padding-top: 20vw;
  }
}
.l-spacer.-em1 {
  margin-top: 1em;
}
.l-spacer.-em2 {
  margin-top: 2em;
}
.l-spacer.-em3 {
  margin-top: 3em;
}

.l-spacer-img {
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  max-height: 100vh;
}
@media screen and (min-width: 960px) {
  .l-spacer-img {
    aspect-ratio: 16/9;
  }
}
.l-spacer-img.-s {
  aspect-ratio: 3/2;
}
@media screen and (min-width: 960px) {
  .l-spacer-img.-s {
    aspect-ratio: 7/3;
  }
}
.l-spacer-img img {
  width: 100%;
  height: 120%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*
 contents
-----------------------------------------------------*/
@media screen and (min-width: 960px) {
  .l-conts-imgtext {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    width: 96%;
    margin: 0 auto;
  }
  .l-conts-imgtext.-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
}
.l-conts-imgtext__img {
  width: 100%;
}
@media screen and (min-width: 960px) {
  .l-conts-imgtext__img {
    width: 50%;
  }
}
.l-conts-imgtext__img img {
  width: 100%;
}
@media screen and (min-width: 960px) {
  .l-conts-imgtext__img img {
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
.l-conts-imgtext__text {
  padding: 7.5vw 0 0;
  font-size: clamp(0.875rem, 0.18vw + 0.83125rem, 1rem);
}
@media screen and (min-width: 960px) {
  .l-conts-imgtext__text {
    width: 50%;
    padding: 5vw 0 10%;
    display: -ms-grid;
    display: grid;
    justify-items: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.l-conts-imgtext__textInner {
  width: 70%;
  margin: 0 auto;
}
@media screen and (min-width: 960px) {
  .l-conts-imgtext__textInner {
    width: clamp(280px, 22.55vw + 189.8px, 528px);
  }
}

.l-conts-large-img {
  width: 100%;
}
@media screen and (min-width: 960px) {
  .l-conts-large-img {
    width: 96%;
    margin: 0 auto;
  }
}
.l-conts-large-img img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 2/3;
}
@media screen and (min-width: 960px) {
  .l-conts-large-img img {
    aspect-ratio: 1/0.57;
  }
}

/*home
-----------------------------------------------------*/
/*pickup*/
.p-home-pickup {
  width: clamp(277px, 4.36vw + 259.6px, 325px);
  background: rgba(255, 255, 255, 0.8);
  -webkit-box-shadow: 0 2px 2px rgba(169, 169, 169, 0.1019607843);
          box-shadow: 0 2px 2px rgba(169, 169, 169, 0.1019607843);
  border-radius: 5px;
  position: fixed;
  right: 0;
  bottom: 10px;
  margin: auto clamp(10px, 0.55vw + 7.8px, 16px) auto auto;
  z-index: 11;
  padding: 1.25rem;
  display: -ms-grid;
  display: grid;
  -ms-grid-rows: auto 0 auto;
      grid-template-areas: "thumb head" "thumb text";
  -ms-grid-columns: clamp(64px, 3.09vw + 51.6px, 98px);
  grid-template-columns: clamp(64px, 3.09vw + 51.6px, 98px);
  gap: 0 clamp(16px, 0.91vw + 12.4px, 26px);
  -webkit-box-shadow: 2px 2px 10px #A9A9A9;
          box-shadow: 2px 2px 10px #A9A9A9;
  -webkit-transition: background 0.3s;
  transition: background 0.3s;
}
@media screen and (min-width: 960px) {
  .p-home-pickup {
        grid-template-areas: "head head" "thumb text";
  }
}
@media (hover: hover) {
  .p-home-pickup:hover {
    background: rgba(222, 222, 219, 0.8);
  }
}
.p-home-pickup__link {
  display: contents;
}
.p-home-pickup__head {
  -ms-grid-row: 1;
  -ms-grid-column: 3;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: clamp(8px, 1.09vw + 3.6px, 20px);
  padding-bottom: 1em;
  border-bottom: 1px solid #DCD8D3;
  grid-area: head;
  font-size: clamp(8px, 0.36vw + 6.6px, 12px);
  font-family: "Arial", sans-serif;
  letter-spacing: 0em;
  line-height: 1;
}
.p-home-pickup__thumb {
  -ms-grid-row: 1;
  -ms-grid-row-span: 3;
  -ms-grid-column: 1;
  grid-area: thumb;
}
.p-home-pickup__thumb img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 960px) {
  .p-home-pickup__thumb img {
    aspect-ratio: 3/2;
  }
}
.p-home-pickup__post-title {
  -ms-grid-row: 3;
  -ms-grid-column: 3;
  grid-area: text;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 0.75rem;
  line-height: 1.75;
}
@media screen and (min-width: 960px){
  .p-home-pickup__head {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
    -ms-grid-column-span: 2;
  }
  .p-home-pickup__thumb {
    -ms-grid-row: 2;
    -ms-grid-row-span: 1;
    -ms-grid-column: 1;
  }
  .p-home-pickup__post-title {
    -ms-grid-row: 2;
    -ms-grid-column: 2;
  }
}
@media screen and (min-width: 960px) {
  .p-home-pickup__post-title {
    -webkit-line-clamp: 3;
  }
}

.p-home-fv {
  padding-top: 50vh;
  position: relative;
  z-index: 10;
  overflow: hidden;
}
.p-home-fv__copy {
  width: clamp(316px, 53.73vw + 101.1px, 907px);
  margin: 0 auto clamp(80px, 5.73vw + 57.1px, 143px);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  position: relative;
  z-index: 999999;
}
@media screen and (min-width: 768px) {
  .p-home-fv__copy {
    width: 59vw;
  }
}
.p-home-fv__copy::after {
  content: "";
  width: 1px;
  height: 50vh;
  background: #2D2519;
  display: block;
  position: absolute;
  top: calc(100% + clamp(30px, 0.73vw + 27.1px, 38px));
  left: 0;
  right: 0;
  margin: auto;
  z-index: -1;
  -webkit-transform: scale(1, 0);
          transform: scale(1, 0);
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.p-home-fv__copy-en {
  width: 100%;
}
.p-home-fv__copy-ja {
  width: clamp(260px, 8.45vw + 226.2px, 353px);
  display: block;
  margin: clamp(20px, 2.09vw + 11.6px, 43px) auto 0;
}
@media screen and (min-width: 768px) {
  .p-home-fv__copy-ja {
    width: 23vw;
    margin-top: 2.7vw;
  }
}
.p-home-fv__img {
  -webkit-clip-path: inset(0 5%);
          clip-path: inset(0 5%);
  position: relative;
  z-index: 2;
  height: 170vw;
}
@media screen and (min-width: 768px) {
  .p-home-fv__img {
    -webkit-clip-path: inset(0 22%);
            clip-path: inset(0 22%);
    height: 130vw;
  }
}
.p-home-fv__img img {
  width: 100vw;
  height: 130vw;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-home-fv__img img {
    height: auto;
  }
}

.p-home-firstblock {
  position: relative;
}
.p-home-firstblock::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  background-image: url(../img/home/bg-message.png), -webkit-linear-gradient(bottom, transparent clamp(600px, 18.18vw + 527.3px, 800px), #231f15 clamp(800px, 18.18vw + 727.3px, 1000px));
  background-image: url(../img/home/bg-message.png), linear-gradient(to top, transparent clamp(600px, 18.18vw + 527.3px, 800px), #231f15 clamp(800px, 18.18vw + 727.3px, 1000px));
  background-repeat: repeat-x;
  background-position: center bottom;
  background-size: clamp(1259px, 67.36vw + 989.6px, 2000px) auto, 100% 100%;
  background-blend-mode: darken;
  z-index: -1;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
@media screen and (min-width: 960px) {
  .p-home-firstblock::before {
    background-size: 100% auto, 100% 100%;
  }
}
.p-home-firstblock.-bg::before {
  opacity: 1;
}

.p-home-message {
  padding-bottom: clamp(470px, 17.64vw + 399.4px, 664px);
  color: #FFF;
  position: relative;
  margin-bottom: clamp(-120px, 10.91vw - 163.6px, 0px);
  border-top: 1px solid transparent;
  margin-top: -3vw;
  z-index: 10;
}
.p-home-message__gallery {
  pointer-events: none;
  position: relative;
  z-index: 3;
  margin-bottom: 20vw;
}
@media screen and (min-width: 960px) {
  .p-home-message__gallery {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
    margin-bottom: 0;
  }
}
.p-home-message__gallery-img1 {
  display: block;
  width: clamp(135px, 23.18vw + 42.3px, 390px);
  aspect-ratio: 13/10;
  -o-object-fit: cover;
     object-fit: cover;
  margin: 0 auto 0 0;
}
@media screen and (min-width: 960px) {
  .p-home-message__gallery-img1 {
    margin: -30px 5% 0 auto;
  }
}
.p-home-message__gallery-img2 {
  display: block;
  width: clamp(98px, 16.91vw + 30.4px, 284px);
  aspect-ratio: 7/5;
  -o-object-fit: cover;
     object-fit: cover;
  margin: clamp(-100px, -4.55vw - 31.8px, -50px) 0 0 auto;
}
@media screen and (min-width: 960px) {
  .p-home-message__gallery-img2 {
    margin: 136px auto 0;
  }
}
.p-home-message__gallery-img3 {
  display: block;
  width: clamp(175px, 17.36vw + 105.6px, 366px);
  aspect-ratio: 3/2;
  -o-object-fit: cover;
     object-fit: cover;
  margin: 24px auto 0;
}
@media screen and (min-width: 960px) {
  .p-home-message__gallery-img3 {
    margin: -50px auto 0 5%;
  }
}
.p-home-message__img {
  width: 50%;
  margin: 0 auto;
}
.p-home-message__text {
  width: clamp(314px, 35.09vw + 173.6px, 700px);
  margin: clamp(64px, 8.09vw + 31.6px, 153px) auto 0;
  white-space: pre-line;
  padding-top: 10vw;
}
@incluse mq(tab) {
  .p-home-message__text {
    padding-top: 0;
  }
}
.p-home-message__text p:not(:last-child) {
  margin-bottom: 1.5em;
}
.p-home-message__more {
  margin: 2em 0 0 auto;
}
@media screen and (min-width: 960px) {
  .p-home-message__more {
    margin: 0 0 0 auto;
  }
}

/*news*/
.p-home-news__inner {
  position: relative;
}
@media screen and (min-width: 960px) {
  .p-home-news__conts {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.p-home-news__pickup-title {
  font-family: "Arial", sans-serif;
  letter-spacing: 0em;
  margin-bottom: 1em;
  font-size: 0.6875rem;
}
@media screen and (min-width: 960px) {
  .p-home-news__pickup {
    width: 45%;
  }
}
.p-home-news__new {
  margin-top: 3rem;
}
@media screen and (min-width: 960px) {
  .p-home-news__new {
    margin: 0;
    width: 45%;
  }
}
@media screen and (min-width: 960px) {
  .p-home-news__new.-next-pickup {
    margin-top: 3rem;
  }
}
.p-home-news__more {
  margin: 2em 0 0 auto;
}
@media screen and (min-width: 960px) {
  .p-home-news__more {
    position: absolute;
    top: 0;
    right: 0;
    margin: auto;
  }
}

/*form
-----------------------------------------------------*/
@media screen and (min-width: 960px) {
  .p-album-index {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
@media screen and (min-width: 960px) {
  .p-album-index__item {
    width: 45%;
  }
}
.p-album-index__item + .p-album-index__item {
  margin-top: clamp(60px, 5.82vw + 36.7px, 124px);
}
@media screen and (min-width: 960px) {
  .p-album-index__item:nth-child(2n+1) {
    margin-top: -130px;
  }
  .p-album-index__item:nth-child(2n) {
    margin-top: 130px;
  }
}
.p-album-index__thumb {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.p-album-index__thumb-wrap {
  width: 100%;
  height: 100%;
  position: relative;
}
.p-album-index__thumb img {
  width: 100%;
  height: 120%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-album-index__title {
  font-size: clamp(0.875rem, 0.18vw + 0.83125rem, 1rem);
  margin-top: 0.5em;
  line-height: 1.75;
}
.p-album-index__more {
  margin: 2em 0 0 auto;
}
@media screen and (min-width: 960px) {
  .p-album-index__more {
    margin: -140px 0 0 auto;
  }
}

.p-album__category-select {
  margin-bottom: clamp(60px, 3.64vw + 45.4px, 100px);
}

.p-album__cat {
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  margin: clamp(10px, 0.91vw + 6.4px, 20px) 0 0;
}
@media screen and (min-width: 1280px) {
  .p-album-link__title {
    position: absolute;
    left: 0;
    top: 0;
    margin: auto;
  }
}
.p-album-link__inner {
  position: relative;
}
.p-album-link__text {
  font-size: clamp(0.875rem, 0.18vw + 0.83125rem, 1rem);
  line-height: 2;
  margin: 1em 0;
}
@media screen and (min-width: 1280px) {
  .p-album-link__text {
    position: absolute;
    left: 0;
    bottom: -10px;
    margin: auto;
  }
}
.p-album-link__more {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 0 0 auto;
  position: relative;
  z-index: 10;
}
@media screen and (min-width: 960px) {
  .p-album-link__more {
    position: absolute;
    right: 0;
    bottom: 0;
    margin: auto;
  }
}

.p-album-slider {
  overflow: visible;
}
.p-album-slider__slide-img {
  width: clamp(160px, 19.09vw + 83.6px, 370px);
  margin: 0 auto;
  aspect-ratio: 1/1.5;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
  display: block;
}
.p-album-slider__slide.swiper-slide-prev .p-album-slider__slide-img {
  -webkit-transform: rotate(-10deg) scale(0.65) translate(-80%, -20%);
          transform: rotate(-10deg) scale(0.65) translate(-80%, -20%);
}
.p-album-slider__slide.swiper-slide-next .p-album-slider__slide-img {
  -webkit-transform: rotate(10deg) scale(0.65) translate(80%, 10%);
          transform: rotate(10deg) scale(0.65) translate(80%, 10%);
}
@media screen and (min-width: 768px) {
  .p-album-slider.-yoko {
    padding: 5em 0 7em;
  }
}
.p-album-slider.-yoko .p-album-slider__slide-img {
  width: clamp(220px, 23.64vw + 125.4px, 480px);
  aspect-ratio: 4/3;
}
.p-album-slider.-yoko .p-album-slider__slide.swiper-slide-prev .p-album-slider__slide-img {
  -webkit-transform: rotate(-10deg) scale(0.65) translate(-60%, -20%);
          transform: rotate(-10deg) scale(0.65) translate(-60%, -20%);
}
.p-album-slider.-yoko .p-album-slider__slide.swiper-slide-next .p-album-slider__slide-img {
  -webkit-transform: rotate(10deg) scale(0.65) translate(60%, 0%);
          transform: rotate(10deg) scale(0.65) translate(60%, 0%);
}

.p-album-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr;
  grid-template-columns: 1fr;
  gap: clamp(60px, 5.45vw + 38.2px, 120px);
}
@media screen and (min-width: 960px) {
  .p-album-list {
    -ms-grid-columns: (minmax(0, 1fr))[2];
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.p-album-gallery .swiper-slide {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.p-album-gallery .swiper-slide img {
  width: auto;
  height: clamp(210px, 23.64vw + 115.4px, 470px);
}
@media screen and (min-width: 768px) {
  .p-album-gallery .swiper-slide img {
    height: 30vw;
  }
}
.p-album-gallery__buttons {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin-top: clamp(20px, 0.91vw + 16.4px, 30px);
}
.p-album-gallery__button {
  width: 50px;
  height: 50px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: 1px solid;
  border-radius: 50%;
  position: relative;
  cursor: pointer;
}
.p-album-gallery__button::before {
  content: "";
  width: 12px;
  height: 12px;
  display: block;
  background: url(../img/common/icon-check.svg) no-repeat center center/contain;
}
.p-album-gallery__button.-prev {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.p-album-gallery__button.-next {
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
  margin-left: 10px;
}

.p-album__postmeta {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 8em minmax(0, 1fr);
  grid-template-columns: 8em minmax(0, 1fr);
  font-size: 0.875rem;
  margin-top: 2em;
}
.p-album__postmeta-date {
  font-family: "Arial", sans-serif;
  letter-spacing: 0em;
}

.p-album-nav {
  background: #2D2519;
  color: #FFF;
  padding: clamp(37px, 1.36vw + 31.6px, 52px) 0 clamp(30px, 0.91vw + 26.4px, 40px);
}
.p-album-nav__links {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (minmax(0, 1fr))[3];
  grid-template-columns: repeat(3, minmax(0, 1fr));
      grid-template-areas: "prev list next";
  font-size: 1rem;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .p-album-nav__links {
    font-size: 1rem;
  }
}
.p-album-nav__thumb {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-album-nav__thumb {
    display: block;
    width: clamp(50px, 4.27vw + 32.9px, 97px);
  }
  .p-album-nav__thumb img {
    display: block;
  }
}
.p-album-nav__list {
  -ms-grid-row: 1;
  -ms-grid-column: 2;
  grid-area: list;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding-bottom: 1em;
}
.p-album-nav__list img {
  margin-bottom: 1em;
}
@media screen and (min-width: 768px) {
  .p-album-nav__list img {
    margin-bottom: 1em;
  }
}
.p-album-nav__prev {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  grid-area: prev;
  margin-top: 0.8em;
}
@media screen and (min-width: 768px) {
  .p-album-nav__prev {
    margin-top: 0;
  }
}
.p-album-nav__prev-text {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-album-nav__prev-text::before {
  content: "";
  width: 0.8em;
  height: 0.8em;
  display: block;
  margin-right: 1em;
  background: url(../img/common/arrow-r.svg) no-repeat center center/contain;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.p-album-nav__next {
  -ms-grid-row: 1;
  -ms-grid-column: 3;
  grid-area: next;
  text-align: right;
  margin-top: 0.8em;
}
@media screen and (min-width: 768px) {
  .p-album-nav__next {
    margin-top: 0;
  }
}
@media screen and (min-width: 768px) {
  .p-album-nav__next .p-album-nav__thumb {
    margin: 0 0 0.5em auto;
  }
}
.p-album-nav__next-text {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.p-album-nav__next-text::after {
  content: "";
  width: 0.8em;
  height: 0.8em;
  display: block;
  margin-left: 1em;
  background: url(../img/common/arrow-r.svg) no-repeat center center/contain;
}
.p-album-nav__thumb {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-album-nav__thumb {
    display: block;
    width: 97px;
    height: 97px;
    display: block;
    margin-bottom: 0.5em;
  }
}
.p-album-nav__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*flow
-----------------------------------------------------*/
.p-flow-index__conts {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr;
  grid-template-columns: 1fr;
  gap: clamp(40px, 7.45vw + 10.2px, 122px);
}
@media screen and (min-width: 960px) {
  .p-flow-index__conts {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    gap: 0;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.p-flow-index__img {
  position: relative;
  aspect-ratio: 1077/719;
  overflow: hidden;
}
@media screen and (min-width: 960px) {
  .p-flow-index__img {
    width: 55%;
  }
}
.p-flow-index__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  inset: 0;
  margin: auto;
}
@media screen and (min-width: 960px) {
  .p-flow-index__text {
    width: 33%;
  }
}
.p-flow-index__more {
  margin: 2em 0 0 auto;
}
@media screen and (min-width: 960px) {
  .p-flow-index__more {
    margin: 2em auto 0 0;
  }
}

.p-flow-title {
  font-size: clamp(1.5rem, 0.55vw + 1.3625rem, 1.875rem);
  margin-bottom: 1em;
}
.p-flow-title__phase {
  display: block;
  font-size: clamp(1rem, 0.55vw + 0.8625rem, 1.375rem);
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
}

@media screen and (min-width: 960px) {
  .p-flow-conts {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.p-flow-conts__wrap {
  counter-reset: listnum;
}
.p-flow-conts__title-area {
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 960px) {
  .p-flow-conts__title-area {
    margin-bottom: 0;
    position: -webkit-sticky;
    position: sticky;
    top: 10rem;
    width: 38%;
  }
}
@media screen and (min-width: 960px) {
  .p-flow-conts__list {
    width: 44%;
  }
}

.p-flow-list__item {
  counter-increment: listnum;
  position: relative;
}
.p-flow-list__item + .p-flow-list__item {
  margin-top: clamp(70px, 1.82vw + 62.7px, 90px);
}
.p-flow-list__num {
  font-size: 0.6875rem;
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
  float: left;
  padding: 0.7em 0;
  background: #F4F4F2;
  text-transform: uppercase;
}
@media screen and (min-width: 960px) {
  .p-flow-list__num {
    position: absolute;
    text-align: center;
    width: 27%;
    right: 100%;
    top: 0;
    margin: auto;
  }
}
.p-flow-list__num::after {
  content: counter(listnum, decimal-leading-zero);
  font-size: 1.25rem;
  margin-left: 0.3em;
  line-height: 1.2;
}
@media screen and (min-width: 960px) {
  .p-flow-list__num::after {
    font-size: 1.4375rem;
    display: block;
    margin: 0;
  }
}
.p-flow-list__title {
  font-size: clamp(1.25rem, 0.36vw + 1.1625rem, 1.5rem);
  padding-left: 3.5em;
  margin-bottom: 0.5em;
}
@media screen and (min-width: 960px) {
  .p-flow-list__title {
    padding: 0;
  }
}
/*modelhouse
-----------------------------------------------------*/
@media screen and (min-width: 960px) {
  .p-modelhouse-index__conts {
    width: clamp(315px, 66.64vw + 48.4px, 1048px);
    margin: 0 auto;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    gap: 0;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
@media screen and (min-width: 960px) {
  .p-modelhouse-index__img {
    width: 67%;
    margin-right: -10%;
  }
}
.p-modelhouse-index__img-top {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.p-modelhouse-index__img-bottom {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.p-modelhouse-index__img .img {
  overflow: hidden;
}
.p-modelhouse-index__img .img img {
  width: 100%;
  height: 120%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-modelhouse-index__img .img1 {
  width: 35%;
  margin-left: 13%;
  margin-right: 6%;
}
.p-modelhouse-index__img .img2 {
  width: 42%;
  aspect-ratio: 1/1;
}
.p-modelhouse-index__img .img3 {
  width: 65%;
  margin-right: 5%;
  margin-top: min(5vw, 40px);
}
.p-modelhouse-index__img .img4 {
  width: 28%;
  margin-top: min(5vw, 40px);
}
.p-modelhouse-index__text {
  width: clamp(315px, 66.64vw + 48.4px, 1048px);
  margin: 50px auto 0;
}
@media screen and (min-width: 960px) {
  .p-modelhouse-index__text {
    width: 30%;
  }
}
.p-modelhouse-index__more {
  margin: 2em 0 0 auto;
}
@media screen and (min-width: 960px) {
  .p-modelhouse-index__more {
    margin: 2em auto 0 0;
  }
}

.p-modelhouse-conts {
  display: -ms-grid;
  display: grid;
  gap: clamp(40px, 4.73vw + 21.1px, 92px);
}
@media screen and (min-width: 960px) {
  .p-modelhouse-conts {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    gap: 0;
  }
  .p-modelhouse-conts.-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
  }
}
.p-modelhouse-conts__title {
  font-size: clamp(1.375rem, 0.73vw + 1.19375rem, 1.875rem);
  margin-bottom: 1em;
}
.p-modelhouse-conts__img {
  position: relative;
  aspect-ratio: 3/2;
  overflow: hidden;
}
@media screen and (min-width: 960px) {
  .p-modelhouse-conts__img {
    width: 55%;
  }
}
.p-modelhouse-conts__img img {
  width: 100%;
  height: 120%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 960px) {
  .p-modelhouse-conts__text {
    width: calc(clamp(315px, 78.27vw + 1.9px, 1176px) * 0.4);
    padding-right: clamp(40px, 4.73vw + 21.1px, 92px);
  }
  .p-modelhouse-conts.-reverse .p-modelhouse-conts__text {
    padding-left: clamp(40px, 4.73vw + 21.1px, 92px);
    padding-right: 0;
  }
}

.p-modelhouse-access {
  display: -ms-grid;
  display: grid;
  gap: clamp(43px, 7.45vw + 13.2px, 125px);
}
@media screen and (min-width: 960px) {
  .p-modelhouse-access {
    -ms-grid-columns: (minmax(0, 1fr))[2];
    grid-template-columns: repeat(2, minmax(0, 1fr));
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.p-modelhouse-access__map {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 3/2;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
}
.p-modelhouse-access__map iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  margin: auto;
}

/*Company
-----------------------------------------------------*/
@media screen and (min-width: 960px) {
  .p-company-index__conts {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.p-company-index__img {
  position: relative;
  aspect-ratio: 902/582;
  overflow: hidden;
}
@media screen and (min-width: 960px) {
  .p-company-index__img {
    width: 45%;
  }
}
.p-company-index__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  inset: 0;
  margin: auto;
}
.p-company-index__text {
  margin: 2rem auto 0;
}
@media screen and (min-width: 960px) {
  .p-company-index__text {
    width: 45%;
    margin: 0;
  }
}
.p-company-index__info {
  margin-top: 1em;
}
.p-company-index__more {
  margin: 2em 0 0 auto;
}
@media screen and (min-width: 960px) {
  .p-company-index__more {
    margin: 2em auto 0 0;
  }
}

.p-company__innerlink {
  position: absolute;
  top: calc(100% - 4em);
  right: 0;
  left: 0;
  margin: auto;
  z-index: 2;
}
.p-company__innerlink-wrap {
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-company__innerlink {
    bottom: -1px;
    top: auto;
  }
}
.p-company__innerlink-nav {
  background: #F4F4F2;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 0 0 auto;
  padding: clamp(25px, 0.45vw + 23.2px, 30px) 0 0 clamp(25px, 0.45vw + 23.2px, 30px);
  border-image-source: linear-gradient(#F4F4F2, #F4F4F2);
  border-image-slice: 0 fill;
  border-image-outset: 0 100vw 0 0;
}
@media screen and (min-width: 768px) {
  .p-company__innerlink-nav {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
}
@media screen and (min-width: 768px) {
  .p-company__innerlink-item + .p-company__innerlink-item {
    margin-left: 2em;
  }
}

.p-company-conts {
  display: -ms-grid;
  display: grid;
  gap: 1rem;
}
@media screen and (min-width: 768px) {
  .p-company-conts {
    -ms-grid-columns: 35% 65%;
    grid-template-columns: 35% 65%;
  }
}
.p-company-conts__body {
  line-height: 2;
}
.p-company-conts__body p:not(:last-child) {
  margin-bottom: 2em;
}

.p-company__office-title {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  white-space: nowrap;
  font-size: clamp(15px, 0.45vw + 13.2px, 20px);
  margin: 0 0 clamp(60px, 1.45vw + 54.2px, 76px) auto;
  display: block;
}
.p-company__office-imgs {
  position: relative;
}
.p-company__office-imgs .img1 {
  position: absolute;
  width: 42%;
  right: 50%;
  top: -5%;
  margin: auto;
}
@media screen and (min-width: 768px) {
  .p-company__office-imgs .img1 {
    width: 26%;
    top: -20%;
    right: auto;
    left: calc(50% - clamp(315px, 66.64vw + 48.4px, 1048px) / 2);
  }
}
.p-company__office-imgs .img2 {
  position: absolute;
  width: 72%;
  right: 5%;
  top: 80%;
  margin: auto;
}
@media screen and (min-width: 768px) {
  .p-company__office-imgs .img2 {
    width: 30%;
    right: auto;
    left: 55%;
  }
}

.p-company__dl {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
}
.p-company__dl-item {
  width: 40%;
  font-weight: 500;
}
.p-company__dl-conts {
  width: 60%;
}
.p-company__dl-conts:not(:last-of-type) {
  margin-bottom: 2em;
}
@media screen and (max-width: 767px) {
  .p-company__dl-conts.-wide {
    width: 100%;
  }
}

.p-company__access-map {
  margin-bottom: 2em;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
}
.p-company__access-map iframe {
  width: 100%;
  aspect-ratio: 3/2;
}

/*news
-----------------------------------------------------*/
.p-news-pickup-card__info {
  margin: 1.5rem 0 1rem;
}
.p-news-pickup-card__title {
  font-size: clamp(0.875rem, 0.09vw + 0.85rem, 0.9375rem);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  line-height: 1.75;
}
.p-news-pickup-card__thumb {
  overflow: hidden;
  aspect-ratio: 3/2;
  position: relative;
}
.p-news-pickup-card__thumb-wrap {
  width: 100%;
  height: 100%;
  position: relative;
}
.p-news-pickup-card__thumb img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  margin: auto;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-news-list__item + .p-news-list__item {
  margin-top: clamp(60px, 1.09vw + 55.6px, 72px);
}
.p-news-list__pickup {
  font-size: 0.6875rem;
  font-family: "Arial", sans-serif;
  margin-bottom: 1em;
}

.p-news-card {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 30% clamp(1.0625rem, 0.91vw + 0.8375rem, 1.6875rem) minmax(0, 1fr);
  grid-template-columns: 30% minmax(0, 1fr);
  gap: clamp(1.0625rem, 0.91vw + 0.8375rem, 1.6875rem);
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
}
@media screen and (min-width: 1280px) {
  .p-news-card {
    -ms-grid-columns: 50% minmax(0, 1fr);
    grid-template-columns: 50% minmax(0, 1fr);
  }
}
.p-news-card.-archive {
  -ms-grid-columns: 30% minmax(0, 1fr);
  grid-template-columns: 30% minmax(0, 1fr);
}
.p-news-card__thumb {
  aspect-ratio: 1/1;
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 960px) {
  .p-news-card__thumb {
    aspect-ratio: 3/2;
  }
}
.p-news-card__thumb-wrap {
  width: 100%;
  height: 100%;
  position: relative;
}
.p-news-card__thumb img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  margin: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-news-card__text {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}
.p-news-card__title {
  font-size: clamp(0.875rem, 0.09vw + 0.85rem, 0.9375rem);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  margin: 1em 0 0;
  line-height: 1.75;
}

.p-news-archive {
  display: -ms-grid;
  display: grid;
  gap: 88px;
}
@media screen and (min-width: 768px) {
  .p-news-archive {
    -ms-grid-columns: minmax(0, 40%) 60%;
    grid-template-columns: minmax(0, 40%) 60%;
  }
  .p-news-archive .c-category-list {
    display: block;
  }
  .p-news-archive .c-category-list__item + .c-category-list__item {
    margin-top: 10px;
    margin-left: 0;
  }
}

/*concept
-----------------------------------------------------*/
@media screen and (min-width: 960px) {
  .p-concept-conts {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-left: clamp(0px, 11.85vw - 113.8px, 64px);
    margin-right: clamp(-64px, -11.85vw + 113.8px, 0px);
  }
}
.p-concept-conts__text {
  margin-top: 2rem;
}
@media screen and (min-width: 960px) {
  .p-concept-conts__text {
    margin-top: 0;
    width: 33%;
  }
}
.p-concept-conts__img {
  position: relative;
  aspect-ratio: 3/2;
  overflow: hidden;
}
@media screen and (min-width: 960px) {
  .p-concept-conts__img {
    width: 55%;
  }
}
.p-concept-conts__img img {
  width: 100%;
  height: 120%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-concept-conts__title {
  margin-bottom: 2rem;
}
.p-concept-conts__title-ja {
  font-size: clamp(1.375rem, 0.73vw + 1.19375rem, 1.875rem);
  margin-bottom: 1em;
  line-height: 1.7;
}
.p-concept-conts__title-en {
  display: block;
  margin-top: 1em;
}
.p-concept-conts__title-en img {
  width: auto;
  height: 14px;
  display: block;
  margin: 0 0 0 auto;
}
.p-concept-conts__title-en img.-high {
  height: 17px;
}

/*form
-----------------------------------------------------*/
.p-form__item {
  display: -ms-grid;
  display: grid;
  margin-top: clamp(50px, 1.27vw + 44.9px, 64px);
  gap: 1rem;
}
@media screen and (min-width: 768px) {
  .p-form__item {
    -ms-grid-columns: 12em minmax(0, 1fr);
    grid-template-columns: 12em minmax(0, 1fr);
  }
}
.p-form__label {
  padding-top: 1em;
}
.p-form__label.-require::after {
  content: "＊";
  margin-left: 0.5em;
}
.p-form label + label {
  margin-top: 2rem;
}
.p-form ::-webkit-input-placeholder {
  color: #787774;
}
.p-form ::-moz-placeholder {
  color: #787774;
}
.p-form :-ms-input-placeholder {
  color: #787774;
}
.p-form ::-ms-input-placeholder {
  color: #787774;
}
.p-form ::placeholder {
  color: #787774;
}
.p-form input[type=text],
.p-form input[type=email],
.p-form input[type=number],
.p-form input[type=tel],
.p-form select,
.p-form textarea {
  width: 100%;
  font-family: inherit;
  font-size: 16px;
  font-weight: inherit;
  border: none;
  padding: 1em 1em;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  color: #2D2519;
  background: #FFF;
  border: 1px solid #2D2519;
  border-radius: 0.5em;
}
.p-form select {
  background: #FFF url(../img/common/icon-down.svg) no-repeat right 1em top 1.5em/0.8em auto;
  line-height: 1.5;
  color: #2D2519;
}
.p-form select.is-empty {
  color: #787774;
}
.p-form select.num-select {
  width: 5em;
  margin-right: 0.5em;
}
.p-form .address-input > div {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 6em 1fr;
  grid-template-columns: 6em 1fr;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-form .address-input > div + div {
  margin-top: 1em;
}
.p-form__tel {
  width: 100%;
  max-width: 530px;
  display: block;
  letter-spacing: 0.2em;
}
.p-form .wpcf7-form-control.wpcf7-radio .wpcf7-list-item,
.p-form .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item {
  margin: 0;
  display: block;
}
.p-form .wpcf7-form-control.wpcf7-radio input,
.p-form .wpcf7-form-control.wpcf7-checkbox input {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
}
.p-form .wpcf7-form-control.wpcf7-radio .wpcf7-list-item-label,
.p-form .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item-label {
  padding-left: 1.5em;
  display: block;
  margin-right: 1.5em;
}
.p-form .wpcf7-form-control.wpcf7-radio .wpcf7-list-item-label::before,
.p-form .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item-label::before {
  content: "";
  width: 1.2em;
  height: 1.2em;
  display: inline-block;
  border: none;
  background: #FFF;
  vertical-align: middle;
  margin-right: 0.5em;
  margin-left: -1.5em;
}
.p-form .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item-label::before {
  background: url(../img/common/check-off.svg) no-repeat center center/100% 100%;
}
.p-form .wpcf7-form-control.wpcf7-checkbox input:checked + .wpcf7-list-item-label::before {
  background-image: url(../img/common/check-on.svg);
}
@media screen and (min-width: 768px) {
  .p-form .wpcf7-form-control.wpcf7-radio {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    padding: 1em 0;
  }
}
.p-form .wpcf7-form-control.wpcf7-radio .wpcf7-list-item-label {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 0.5em;
}
.p-form .wpcf7-form-control.wpcf7-radio .wpcf7-list-item-label::before {
  background: url(../img/common/radio-off.svg) no-repeat center center/100% 100%;
}
.p-form .wpcf7-form-control.wpcf7-radio input:checked + .wpcf7-list-item-label::before {
  background-image: url(../img/common/radio-on.svg);
}
.p-form .wpcf7-form-control.wpcf7-radio input:focus + .wpcf7-list-item-label::before {
  outline: 2px solid #2D2519;
}
.p-form__privacy-policy {
  font-size: clamp(0.875rem, 0.2vw + 0.8125rem, 1rem);
  line-height: 1.57;
  margin: clamp(50px, 1.53vw + 42px, 65px) 0 clamp(40px, 1.53vw + 32px, 55px);
  text-align: center;
}
.p-form__recaptcha {
  font-size: clamp(0.75rem, 0.2vw + 0.6875rem, 0.875rem);
  line-height: 1.75em;
  margin-top: clamp(50px, 1.53vw + 42px, 65px);
  text-align: center;
}
.p-form .wpcf7-submit {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  position: relative;
  width: 100%;
  background: #2D2519 url(../img/common/arrow-r.svg) no-repeat right 2em center/1em auto;
  color: #FFF;
  border-radius: 3em;
  text-align: center;
  padding: 2em 2rem;
  display: block;
  font-size: clamp(1rem, 0vw + 1rem, 1rem);
  font-family: "STIX Two Text", serif;
  letter-spacing: -0.02em;
  cursor: pointer;
  text-align: center;
  border: 1px solid #2D2519;
  -webkit-transition: border-color 0.3s, background-color 0.3s, -webkit-filter 0.3s;
  transition: border-color 0.3s, background-color 0.3s, -webkit-filter 0.3s;
  transition: border-color 0.3s, background-color 0.3s, filter 0.3s;
  transition: border-color 0.3s, background-color 0.3s, filter 0.3s, -webkit-filter 0.3s;
}
@media (hover: hover) {
  .p-form .wpcf7-submit:hover {
    border-color: #FFF;
    background-color: transparent;
    -webkit-filter: invert(1);
            filter: invert(1);
  }
}
.p-form .wpcf7-submit .arrow {
  width: 1rem;
  height: 1rem;
  display: block;
  position: absolute;
  right: 2rem;
  top: 0;
  bottom: 0;
  margin: auto;
  fill: currentColor;
}

.grecaptcha-badge {
  display: none;
}

/*post
-----------------------------------------------------*/
.p-post__body h2 {
  font-size: clamp(1.4375rem, 0.18vw + 1.39375rem, 1.5625rem);
  margin: 2em 0 1em;
}
.p-post__body h3 {
  font-size: clamp(1.25rem, 0.18vw + 1.20625rem, 1.375rem);
  margin: 2em 0 1em;
}
.p-post__body p {
  margin-bottom: 2em;
}
.p-post__body img {
  margin-bottom: 1em;
}
.p-post__body a {
  text-decoration: underline;
}

/*privacy policy
-----------------------------------------------------*/
.p-privacy-conts {
  counter-reset: listnum;
}
.p-privacy-conts__item {
  margin-top: 3em;
}
.p-privacy-conts__item:not(.-no-count) {
  counter-increment: listnum;
}
.p-privacy-conts__title {
  font-size: clamp(1.25rem, 0.18vw + 1.20625rem, 1.375rem);
  margin-bottom: 1em;
}
.p-privacy-conts__item:not(.-no-count) .p-privacy-conts__title::before {
  content: counter(listnum) ". ";
}

/*
  Responsive
-----------------------------------------------------*/
@media screen and (min-width: 768px) {
  .u-sp-visible {
    display: none;
  }
}

@media screen and (min-width: 960px) {
  .u-tab-visible {
    display: none;
  }
}

.u-sp-hidden {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-sp-hidden {
    display: initial;
  }
}

.u-tab-hidden {
  display: none;
}
@media screen and (min-width: 960px) {
  .u-tab-hidden {
    display: initial;
  }
}

/*
  Screen Reader Text
-----------------------------------------------------*/
.screen-reader-text {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
}

/*
  event
-----------------------------------------------------*/
.fade-img {
  -webkit-transition: opacity 2s;
  transition: opacity 2s;
}

.u-caption {
  display: block;
  position: relative;
  padding-left: 0.5rem;
}
.u-caption::before {
  content: "*";
  position: absolute;
  left: 0;
  top: 0;
}