@charset "UTF-8";
/* common
----------------------------------*/
.img {
  width: 100%;
}

a {
  display: block;
}

.tab {
  display: none !important;
}

.sp {
  display: none !important;
}

.sp_ib {
  display: none !important;
}

.sp_min {
  display: none !important;
}

.inner {
  width: 100%;
  max-width: min(83.8709677419vw, 1040px);
  padding: 0 min(1.6129032258vw, 20px);
  margin: 0 auto;
  position: relative;
  box-sizing: border-box;
}
@media screen and (max-width: 767px) {
  .inner {
    max-width: 100%;
    margin: 0;
  }
}

table {
  width: 100%;
  table-layout: fixed;
}

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

.noLink a,
.noLink a:hover,
.noLink a img,
.noLink a:hover img {
  opacity: 0.6 !important;
  cursor: inherit;
}

.text_wh {
  color: #fff !important;
}

@media screen and (max-width: 1000px) {
  .tab {
    display: block !important;
  }
  .tab_non {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
  .tab {
    display: none !important;
  }
  .sp {
    display: block !important;
  }
  .sp_ib {
    display: inline-block !important;
  }
  .inner {
    max-width: 100%;
    min-height: 0;
    padding: 0 8vw;
  }
}
.hvUnderbar a {
  color: #fff;
  display: inline;
  line-height: 1.6;
  background: linear-gradient(transparent calc(100% - 1px), #fff calc(100% - 1px), #fff 100%, transparent 100%);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: 0.3s all;
}

.hvUnderbarBk a {
  display: inline;
  line-height: 1.6;
  background: linear-gradient(transparent calc(100% - 1px), #231815 calc(100% - 1px), #231815 100%, transparent 100%);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: 0.3s all;
}

.hvUnderbarylw a {
  display: inline;
  line-height: 1.6;
  background: linear-gradient(transparent calc(100% - 1px), #f3cf11 calc(100% - 1px), #f3cf11 100%, transparent 100%);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: 0.3s all;
}

.hvUnderbar a:hover,
.hvUnderbarBk a:hover,
.hvUnderbarylw a:hover {
  text-decoration: none;
  background-size: 100% 100%;
}

.hvUnderbarRev a {
  color: #fff;
  display: inline;
  line-height: 1.6;
  background: linear-gradient(transparent calc(100% - 1px), #fff calc(100% - 1px), #fff 100%, transparent 100%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: 0.3s all;
  background-position: 100%;
}

.hvUnderbarRevBk a {
  display: inline;
  line-height: 1.6;
  background: linear-gradient(transparent calc(100% - 1px), #231815 calc(100% - 1px), #231815 100%, transparent 100%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: 0.3s all;
  background-position: 100%;
}

.hvUnderbarRevylw a {
  display: inline;
  line-height: 1.6;
  background: linear-gradient(transparent calc(100% - 1px), #f3cf11 calc(100% - 1px), #f3cf11 100%, transparent 100%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: 0.3s all;
  background-position: 100%;
}

.hvUnderbarRev a:hover,
.hvUnderbarRevBk a:hover,
.hvUnderbarRevylw a:hover {
  text-decoration: none;
  background-size: 0% 100%;
}

@media screen and (max-width: 374px) {
  .sp_min {
    display: block;
  }
}
.upIn,
.load_upIn,
.pa_upIn {
  opacity: 0;
}
.upIn.onAnim,
.load_upIn.onAnim,
.pa_upIn.onAnim {
  -webkit-animation: upin 0.8s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) both;
          animation: upin 0.8s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) both;
}

.downIn,
.load_downIn {
  opacity: 0;
}
.downIn.onAnim,
.load_downIn.onAnim {
  -webkit-animation: downin 0.4s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) both;
          animation: downin 0.4s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) both;
}

.rhIn,
.load_rhIn {
  opacity: 0;
}
.rhIn.onAnim,
.load_rhIn.onAnim {
  -webkit-animation: rhin 0.4s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) forwards;
          animation: rhin 0.4s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) forwards;
}

.lhIn,
.load_lhIn {
  opacity: 0;
}
.lhIn.onAnim,
.load_lhIn.onAnim {
  -webkit-animation: lhin 0.4s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) forwards;
          animation: lhin 0.4s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) forwards;
}

.smallIn,
.load_smallIn {
  transform: scale(1.05);
  transform-origin: top center;
}
.smallIn.onAnim,
.load_smallIn.onAnim {
  -webkit-animation: smallin 0.4s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) forwards;
          animation: smallin 0.4s 1 cubic-bezier(0.17, 0.67, 0.37, 0.95) forwards;
}

.popIn,
.load_popIn,
.pa_popIn {
  transform: scale(0.9);
  transform-origin: bottom left;
  opacity: 0;
}
.popIn.onAnim,
.load_popIn.onAnim,
.pa_popIn.onAnim {
  -webkit-animation: popin 0.3s 1 cubic-bezier(0.17, 0.67, 0.51, 1.67) both;
          animation: popin 0.3s 1 cubic-bezier(0.17, 0.67, 0.51, 1.67) both;
}

@-webkit-keyframes upin {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100%, to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes upin {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100%, to {
    opacity: 1;
    transform: translateY(0);
  }
}
@-webkit-keyframes downin {
  0% {
    opacity: 0;
    transform: translateY(-50px);
  }
  100%, to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes downin {
  0% {
    opacity: 0;
    transform: translateY(-50px);
  }
  100%, to {
    opacity: 1;
    transform: translateY(0);
  }
}
@-webkit-keyframes rhin {
  0% {
    opacity: 0;
    transform: translateX(50px);
  }
  100%, to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes rhin {
  0% {
    opacity: 0;
    transform: translateX(50px);
  }
  100%, to {
    opacity: 1;
    transform: translateY(0);
  }
}
@-webkit-keyframes lhin {
  0% {
    opacity: 0;
    transform: translateX(-50px);
  }
  100%, to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes lhin {
  0% {
    opacity: 0;
    transform: translateX(-50px);
  }
  100%, to {
    opacity: 1;
    transform: translateY(0);
  }
}
@-webkit-keyframes smallin {
  0% {
    transform: scale(1.05);
  }
  100%, to {
    transform: scale(1);
  }
}
@keyframes smallin {
  0% {
    transform: scale(1.05);
  }
  100%, to {
    transform: scale(1);
  }
}
@-webkit-keyframes popin {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  100%, to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes popin {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  100%, to {
    opacity: 1;
    transform: scale(1);
  }
}
.D01 {
  -webkit-animation-delay: 0.1s !important;
          animation-delay: 0.1s !important;
  transition-delay: 0.1s !important;
}

.D02 {
  -webkit-animation-delay: 0.2s !important;
          animation-delay: 0.2s !important;
  transition-delay: 0.2s !important;
}

.D03 {
  -webkit-animation-delay: 0.3s !important;
          animation-delay: 0.3s !important;
  transition-delay: 0.3s !important;
}

.D04 {
  -webkit-animation-delay: 0.4s !important;
          animation-delay: 0.4s !important;
  transition-delay: 0.4s !important;
}

.D05 {
  -webkit-animation-delay: 0.5s !important;
          animation-delay: 0.5s !important;
  transition-delay: 0.5s !important;
}

.D06 {
  -webkit-animation-delay: 0.6s !important;
          animation-delay: 0.6s !important;
  transition-delay: 0.6s !important;
}

.D07 {
  -webkit-animation-delay: 0.7s !important;
          animation-delay: 0.7s !important;
  transition-delay: 0.7s !important;
}

.D08 {
  -webkit-animation-delay: 0.8s !important;
          animation-delay: 0.8s !important;
  transition-delay: 0.8s !important;
}

.D09 {
  -webkit-animation-delay: 0.9s !important;
          animation-delay: 0.9s !important;
  transition-delay: 0.9s !important;
}

.D10 {
  -webkit-animation-delay: 1s !important;
          animation-delay: 1s !important;
  transition-delay: 1s !important;
}

.D11 {
  -webkit-animation-delay: 1.1s !important;
          animation-delay: 1.1s !important;
  transition-delay: 1.1s !important;
}

.D12 {
  -webkit-animation-delay: 1.2s !important;
          animation-delay: 1.2s !important;
  transition-delay: 1.2s !important;
}

.D13 {
  -webkit-animation-delay: 1.3s !important;
          animation-delay: 1.3s !important;
  transition-delay: 1.3s !important;
}

.D14 {
  -webkit-animation-delay: 1.4s !important;
          animation-delay: 1.4s !important;
  transition-delay: 1.4s !important;
}

.D15 {
  -webkit-animation-delay: 1.5s !important;
          animation-delay: 1.5s !important;
  transition-delay: 1.5s !important;
}

.D16 {
  -webkit-animation-delay: 1.6s !important;
          animation-delay: 1.6s !important;
  transition-delay: 1.6s !important;
}

.D17 {
  -webkit-animation-delay: 1.7s !important;
          animation-delay: 1.7s !important;
  transition-delay: 1.7s !important;
}

.D18 {
  -webkit-animation-delay: 1.8s !important;
          animation-delay: 1.8s !important;
  transition-delay: 1.8s !important;
}

.D19 {
  -webkit-animation-delay: 1.9s !important;
          animation-delay: 1.9s !important;
  transition-delay: 1.9s !important;
}

.D20 {
  -webkit-animation-delay: 2s !important;
          animation-delay: 2s !important;
  transition-delay: 2s !important;
}

.D21 {
  -webkit-animation-delay: 2.1s !important;
          animation-delay: 2.1s !important;
  transition-delay: 2.1s !important;
}

.D22 {
  -webkit-animation-delay: 2.2s !important;
          animation-delay: 2.2s !important;
  transition-delay: 2.2s !important;
}

.D23 {
  -webkit-animation-delay: 2.3s !important;
          animation-delay: 2.3s !important;
  transition-delay: 2.3s !important;
}

.D24 {
  -webkit-animation-delay: 2.4s !important;
          animation-delay: 2.4s !important;
  transition-delay: 2.4s !important;
}

.D25 {
  -webkit-animation-delay: 2.5s !important;
          animation-delay: 2.5s !important;
  transition-delay: 2.5s !important;
}

.D26 {
  -webkit-animation-delay: 2.6s !important;
          animation-delay: 2.6s !important;
  transition-delay: 2.6s !important;
}

.D27 {
  -webkit-animation-delay: 2.7s !important;
          animation-delay: 2.7s !important;
  transition-delay: 2.7s !important;
}

.D28 {
  -webkit-animation-delay: 2.8s !important;
          animation-delay: 2.8s !important;
  transition-delay: 2.8s !important;
}

.D29 {
  -webkit-animation-delay: 2.9s !important;
          animation-delay: 2.9s !important;
  transition-delay: 2.9s !important;
}

.D30 {
  -webkit-animation-delay: 3s !important;
          animation-delay: 3s !important;
  transition-delay: 3s !important;
}

.ttlIn span {
  display: inline-block;
  position: relative;
  overflow: hidden;
}
.ttlIn span::before, .ttlIn span::after {
  content: "";
  width: 200%;
  height: 100%;
  background: #231815;
  position: absolute;
  z-index: 20;
  top: 0;
  left: -200%;
  transition: 0.8s all ease-in-out;
}
.ttlIn span::after {
  background: #fff;
  width: 100%;
  left: 0;
}
.ttlIn + .note {
  opacity: 0;
  text-align: center;
}
.ttlIn.onAnim span::before {
  left: 100%;
}
.ttlIn.onAnim span::after {
  left: 300%;
}
.ttlIn.onAnim span.D01::before, .ttlIn.onAnim span.D01::after {
  transition-delay: 0.2s;
}
.ttlIn.onAnim + .note {
  -webkit-animation: dnin_s 0.3s 1 ease-out forwards;
          animation: dnin_s 0.3s 1 ease-out forwards;
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
}

.circleUpIn {
  transition: 1.2s all;
  -webkit-clip-path: circle(0% at 50% 50%);
          clip-path: circle(0% at 50% 50%);
  transform: translate(0, 40px);
}
.circleUpIn.onAnim {
  -webkit-clip-path: circle(80% at 50% 50%);
          clip-path: circle(80% at 50% 50%);
  transform: translate(0, 0);
}

.clipLhIn {
  transition: 0.9s -webkit-clip-path ease;
  transition: 0.9s clip-path ease;
  transition: 0.9s clip-path ease, 0.9s -webkit-clip-path ease;
  -webkit-clip-path: polygon(0 -20%, 0 -20%, 0 120%, 0 120%);
          clip-path: polygon(0 -20%, 0 -20%, 0 120%, 0 120%);
  display: block;
}
.clipLhIn.onAnim {
  -webkit-clip-path: polygon(0 -20%, 100% -20%, 120% 120%, 0% 120%);
          clip-path: polygon(0 -20%, 100% -20%, 120% 120%, 0% 120%);
}

.clipRhIn {
  transition: 0.6s -webkit-clip-path ease;
  transition: 0.6s clip-path ease;
  transition: 0.6s clip-path ease, 0.6s -webkit-clip-path ease;
  -webkit-clip-path: polygon(100% -20%, 100% -20%, 100% 120%, 100% 120%);
          clip-path: polygon(100% -20%, 100% -20%, 100% 120%, 100% 120%);
  display: block;
}
.clipRhIn.onAnim {
  -webkit-clip-path: polygon(0 -20%, 100% -20%, 120% 120%, 0% 120%);
          clip-path: polygon(0 -20%, 100% -20%, 120% 120%, 0% 120%);
}

.clipDownIn {
  transition: 0.6s -webkit-clip-path ease;
  transition: 0.6s clip-path ease;
  transition: 0.6s clip-path ease, 0.6s -webkit-clip-path ease;
  -webkit-clip-path: polygon(-100% 0, 200% 0, 200% 0, -100% 0);
          clip-path: polygon(-100% 0, 200% 0, 200% 0, -100% 0);
}
.clipDownIn.onAnim {
  -webkit-clip-path: polygon(-100% 0, 200% 0, 200% 100%, -100% 100%);
          clip-path: polygon(-100% 0, 200% 0, 200% 100%, -100% 100%);
}

body.loaded {
  position: relative;
}
body.loaded.open {
  position: fixed;
  z-index: 1;
}

/* ---------------------------
	parts
--------------------------- */
.linkBtn a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(22.9032258065vw, 284px);
  height: min(4.8387096774vw, 60px);
  border: 2px solid #231815;
  font-size: min(1.0483870968vw, 13px);
  font-weight: 700;
  margin: min(6.4516129032vw, 80px) auto 0;
  position: relative;
}
.linkBtn a span {
  width: min(1.6129032258vw, 20px);
  position: absolute;
  top: calc(50% - min(0.9677419355vw, 12px));
  right: min(1.6129032258vw, 20px);
  z-index: 10;
}
.linkBtn a span polygon {
  fill: #231815;
  transition: 0.3s all;
}
.linkBtn a span polyline {
  stroke: #231815;
  fill: none;
  stroke-dasharray: 30 30;
}
@media screen and (min-width: 769px) {
  .linkBtn a:hover {
    background: #231815;
    color: #fff;
  }
  .linkBtn a:hover span polygon {
    fill: #fff;
  }
  .linkBtn a:hover span polyline {
    stroke: #fff;
    -webkit-animation: arrAnim 0.6s 1;
            animation: arrAnim 0.6s 1;
    -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
    -webkit-animation-timing-function: ease-in-out;
            animation-timing-function: ease-in-out;
    stroke-width: 1;
  }
}

@media screen and (max-width: 767px) {
  .linkBtn a {
    width: 100%;
    height: 16vw;
    border: 1px solid #231815;
    font-size: 4vw;
    margin: 10.6666666667vw auto 0;
  }
  .linkBtn a span {
    width: 3.7333333333vw;
    top: calc(50% - 4.2666666667vw);
    right: 3.7333333333vw;
  }
}
@-webkit-keyframes arrAnim {
  0% {
    stroke-dasharray: 0 30;
  }
  100% {
    stroke-dasharray: 30 30;
  }
}
@keyframes arrAnim {
  0% {
    stroke-dasharray: 0 30;
  }
  100% {
    stroke-dasharray: 30 30;
  }
}
/* ---------------------------
	Loader
--------------------------- */
#loader {
  position: fixed;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  z-index: 99999;
  background: #000;
}

/* ---------------------------
	Header
--------------------------- */
header div.humBtn {
  position: fixed;
  z-index: 2000;
  top: min(4.0322580645vw, 50px);
  left: min(8.064516129vw, 100px);
  width: min(4.0322580645vw, 50px);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
}
header div.humBtn .txt {
  writing-mode: vertical-rl;
  text-orientation: upright;
  line-height: 2;
  letter-spacing: 0.1em;
  font-weight: 500;
  color: #fff;
  transition: 0.3s all;
}
header div.humBtn #trigger {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  height: min(2.4193548387vw, 30px);
}
header div.humBtn #trigger span {
  width: min(4.0322580645vw, 50px);
  height: 1px;
  background: #fff;
  transition: 0.3s all;
}
header div.humBtn #trigger + p {
  font-size: min(1.2096774194vw, 15px);
  margin-top: 0.5em;
  letter-spacing: -0.03em;
}
@media screen and (min-width: 769px) {
  header div.humBtn:hover #trigger span {
    -webkit-animation: humline 0.3s ease-in-out;
            animation: humline 0.3s ease-in-out;
  }
}
@-webkit-keyframes humline {
  0% {
    width: 0;
  }
  100% {
    width: min(4.0322580645vw, 50px);
  }
}
@keyframes humline {
  0% {
    width: 0;
  }
  100% {
    width: min(4.0322580645vw, 50px);
  }
}
header div.humBtn.open .txt {
  opacity: 0;
}
header div.humBtn.open #trigger span {
  background: #fff !important;
}
header div.humBtn.open #trigger span:first-child, header div.humBtn.open #trigger span:last-child {
  width: 0;
}
header div.humBtn.open #trigger span:nth-child(2) {
  width: min(4.435483871vw, 55px);
  transform: translateY(min(0.3225806452vw, 4px)) rotate(30deg);
  transition-delay: 0s !important;
}
header div.humBtn.open #trigger span:nth-child(3) {
  width: min(4.435483871vw, 55px);
  transform: translateY(max(-0.3225806452vw, -4px)) rotate(-30deg);
  transition-delay: 0s !important;
}
@media screen and (min-width: 769px) {
  header div.humBtn.open:hover #trigger span {
    -webkit-animation: none;
            animation: none;
  }
}
header div.humBtn.sub .txt {
  color: #228038;
}
header div.humBtn.sub #trigger span {
  background: #228038;
}
header.scrolled div.humBtn {
  mix-blend-mode: exclusion;
}
header.scrolled div.humBtn.sub {
  mix-blend-mode: normal;
}
header div.globalMenu {
  position: absolute;
  top: 50px;
  right: 75px;
  z-index: 100;
}
header div.globalMenu ul {
  font-weight: 500;
  display: flex;
  flex-direction: row-reverse;
  gap: 1em;
}
header div.globalMenu ul li {
  writing-mode: vertical-rl;
  text-orientation: upright;
  line-height: 2;
  letter-spacing: 0.1em;
  font-weight: 500;
}
header div.globalMenu a {
  color: #fff;
  position: relative;
}
header div.globalMenu a::before {
  transition: 0.3s all;
  content: "";
  width: 0;
  height: 0;
  border-radius: 50%;
  display: block;
  background: #228038;
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 10;
}
@media screen and (min-width: 769px) {
  header div.globalMenu a:hover::before {
    width: min(0.4838709677vw, 6px);
    height: min(0.4838709677vw, 6px);
    top: max(-1.2096774194vw, -15px);
    left: calc(50% - min(0.2419354839vw, 3px));
  }
}

#contFixWrap {
  min-height: calc(var(--vh) * 100);
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  header div.humBtn {
    top: 5.3333333333vw;
    left: 4.8vw;
    width: 10.6666666667vw;
  }
  header div.humBtn #trigger {
    height: 6.4vw;
  }
  header div.humBtn #trigger span {
    width: 10.6666666667vw;
  }
  header div.humBtn #trigger + p {
    font-size: 3.2vw;
  }
  @-webkit-keyframes humline {
    0% {
      width: 0;
    }
    100% {
      width: 10.6666666667vw;
    }
  }
  @keyframes humline {
    0% {
      width: 0;
    }
    100% {
      width: 10.6666666667vw;
    }
  }
  header div.humBtn.open #trigger span:nth-child(2) {
    width: 12vw;
    transform: translateY(1.0666666667vw) rotate(30deg);
    transition-delay: 0s !important;
  }
  header div.humBtn.open #trigger span:nth-child(3) {
    width: 12vw;
    transform: translateY(-1.0666666667vw) rotate(-30deg);
    transition-delay: 0s !important;
  }
}
@media screen and (max-width: 767px) and (min-width: 769px) {
  header div.humBtn.open:hover #trigger span {
    -webkit-animation: none;
            animation: none;
  }
}
@media screen and (max-width: 767px) {
  header.scrolled div.humBtn {
    mix-blend-mode: exclusion;
  }
}
@media screen and (max-width: 767px) {
  header div.globalMenu {
    display: none;
  }
}
div.ddMenu {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1950;
  width: 100%;
  height: 100vh;
  background-color: #231815;
  background-image: url(../img/stamp_dark.svg);
  background-position: right max(-5.6451612903vw, -70px) bottom max(-2.0161290323vw, -25px);
  background-repeat: no-repeat;
  background-size: min(33.064516129vw, 410px) min(33.064516129vw, 410px);
  color: #fff;
}
div.ddMenu a {
  color: #fff;
}
div.ddMenu .logo {
  position: absolute;
  width: min(21.935483871vw, 272px);
  top: min(2.8225806452vw, 35px);
  right: min(4.0322580645vw, 50px);
}
div.ddMenu div.menuWrap {
  width: min(37.0967741935vw, 460px);
  margin: 0 auto;
}
div.ddMenu nav {
  margin-top: min(3.2258064516vw, 40px);
}
div.ddMenu nav ul {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  gap: 1em;
}
div.ddMenu nav ul li {
  writing-mode: vertical-rl;
  text-orientation: upright;
  line-height: 2;
  letter-spacing: 0.1em;
  font-weight: 500;
}
div.ddMenu nav a {
  color: #fff;
  position: relative;
  font-size: min(1.4516129032vw, 18px);
}
div.ddMenu nav a::before {
  transition: 0.3s all;
  content: "";
  width: 0;
  height: 0;
  border-radius: 50%;
  display: block;
  background: #228038;
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 10;
}
@media screen and (min-width: 769px) {
  div.ddMenu nav a:hover::before {
    width: min(0.6451612903vw, 8px);
    height: min(0.6451612903vw, 8px);
    top: max(-1.2096774194vw, -15px);
    left: calc(50% - min(0.3225806452vw, 4px));
  }
}
div.ddMenu ul.shopIndex {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(0.4032258065vw, 5px);
  margin-top: min(4.8387096774vw, 60px);
}
div.ddMenu ul.shopIndex li {
  position: relative;
}
div.ddMenu ul.shopIndex li::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
}
div.ddMenu ul.shopIndex li div.shopLink {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
div.ddMenu ul.shopIndex li h2 {
  width: min(7.2580645161vw, 90px);
  transition: 0.5s all;
}
div.ddMenu ul.shopIndex li figure {
  overflow: hidden;
}
div.ddMenu ul.shopIndex li figure img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.5s all;
}
@media screen and (min-width: 769px) {
  div.ddMenu ul.shopIndex a:hover h2 {
    opacity: 0.6;
  }
  div.ddMenu ul.shopIndex a:hover figure img {
    transform: scale(1.1);
  }
}
div.ddMenu .privLink {
  position: absolute;
  bottom: min(2.8225806452vw, 35px);
  left: min(4.0322580645vw, 50px);
}
div.ddMenu.open {
  display: flex;
  align-items: center;
}

@media screen and (max-width: 767px) {
  div.ddMenu {
    height: calc(var(--vh) * 100);
    padding: 26.6666666667vw 8vw 8vw;
    box-sizing: border-box;
    background-size: 62.4vw 62.4vw;
    background-position: right -10.6666666667vw bottom -3.4666666667vw;
  }
  div.ddMenu .logo {
    width: 41.3333333333vw;
    top: 5.3333333333vw;
    right: 8vw;
  }
  div.ddMenu div.menuWrap {
    width: 100%;
    box-sizing: border-box;
  }
  div.ddMenu nav {
    margin-top: 0;
  }
  div.ddMenu nav ul {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(5, 1fr);
    justify-content: start;
    gap: 1.4em 0;
    padding: 0 2.6666666667vw;
  }
  div.ddMenu nav ul li {
    writing-mode: horizontal-tb;
    width: calc(50vw - 10.6666666667vw);
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
  div.ddMenu nav a {
    font-size: 3.7333333333vw;
  }
  div.ddMenu ul.shopIndex {
    display: none;
  }
  div.ddMenu .privLink {
    position: static;
    margin: 13.3333333333vw 0 0 2.6666666667vw;
    font-size: 3.7333333333vw;
  }
  div.ddMenu.open {
    overflow: auto;
    flex-direction: column;
    align-items: flex-start;
  }
}
/* ShopIndexSec
-----------------------------------------------------------*/
section#ShopIndexSec {
  background: #231815;
}
section#ShopIndexSec ul.shopIndex {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
section#ShopIndexSec ul.shopIndex li {
  position: relative;
}
section#ShopIndexSec ul.shopIndex li::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
}
section#ShopIndexSec ul.shopIndex li div.shopLink {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  padding-bottom: min(1.6129032258vw, 20px);
  box-sizing: border-box;
}
section#ShopIndexSec ul.shopIndex li h2 {
  width: min(16.935483871vw, 210px);
  margin: 0 auto;
  transition: 0.5s all;
}
section#ShopIndexSec ul.shopIndex li h2 span {
  display: none;
}
section#ShopIndexSec ul.shopIndex li h2 + div {
  color: #fff;
  margin-top: min(6.8548387097vw, 85px);
  font-size: min(1.2096774194vw, 15px);
  text-align: center;
  font-family: "Airbnb", "小塚ゴシック", "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", Meiryo, sans-serif;
}
section#ShopIndexSec ul.shopIndex li figure {
  overflow: hidden;
}
section#ShopIndexSec ul.shopIndex li figure img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.5s all;
}
@media screen and (min-width: 769px) {
  section#ShopIndexSec ul.shopIndex a:hover h2 {
    opacity: 0.6;
  }
  section#ShopIndexSec ul.shopIndex a:hover figure img {
    transform: scale(1.1);
  }
}

@media screen and (max-width: 767px) {
  section#ShopIndexSec ul.shopIndex {
    grid-template-columns: repeat(1, 1fr);
  }
  section#ShopIndexSec ul.shopIndex li::after {
    width: 27.4666666667vw;
    height: 100%;
    display: none;
  }
  section#ShopIndexSec ul.shopIndex li ~ li {
    margin-top: 2.6666666667vw;
  }
  section#ShopIndexSec ul.shopIndex li div.shopLink {
    position: static;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding-bottom: 0;
    width: calc(100% - 32vw);
  }
  section#ShopIndexSec ul.shopIndex li h2 {
    width: 100%;
    font-size: 4vw;
    font-weight: 700;
    line-height: 1;
    color: #fff;
  }
  section#ShopIndexSec ul.shopIndex li h2 img {
    display: none;
  }
  section#ShopIndexSec ul.shopIndex li h2 span {
    display: inline;
  }
  section#ShopIndexSec ul.shopIndex li h2 + div {
    margin-top: 1.3333333333vw;
    font-size: 3.4666666667vw;
    text-align: left;
    line-height: 1.5;
  }
  section#ShopIndexSec ul.shopIndex li figure {
    width: 27.4666666667vw;
    flex-shrink: 0;
  }
  section#ShopIndexSec ul.shopIndex a {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
  }
}
/* ---------------------------
	footer
--------------------------- */
footer {
  background: #231815;
  padding: min(8.064516129vw, 100px) 0 min(4.0322580645vw, 50px);
  color: #fff;
}
footer .flogo {
  margin: 0 auto;
  width: min(22.6612903226vw, 281px);
}
footer nav {
  margin-top: min(3.2258064516vw, 40px);
}
footer nav ul {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  gap: 1em;
}
footer nav ul li {
  writing-mode: vertical-rl;
  text-orientation: upright;
  line-height: 2;
  letter-spacing: 0.1em;
  font-weight: 500;
}
footer nav a {
  color: #fff;
  position: relative;
}
footer nav a::before {
  transition: 0.3s all;
  content: "";
  width: 0;
  height: 0;
  border-radius: 50%;
  display: block;
  background: #228038;
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 10;
}
@media screen and (min-width: 769px) {
  footer nav a:hover::before {
    width: min(0.4838709677vw, 6px);
    height: min(0.4838709677vw, 6px);
    top: max(-1.2096774194vw, -15px);
    left: calc(50% - min(0.2419354839vw, 3px));
  }
}
footer .btmMenu {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: min(0.9677419355vw, 12px);
  margin-top: min(1.2096774194vw, 15px);
  padding: 0 min(8.064516129vw, 100px);
}
footer .btmMenu a {
  color: #fff;
  padding-bottom: min(0.4032258065vw, 5px);
}
footer .btmMenu .cpright {
  font-size: min(0.8064516129vw, 10px);
}

#pageTop {
  position: absolute;
  right: max(-3.2258064516vw, -40px);
  top: max(-1.2096774194vw, -15px);
  cursor: pointer;
  width: min(5.6451612903vw, 70px);
  height: min(5.6451612903vw, 70px);
  background: #f3cf11;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
}
#pageTop img {
  width: min(4.0322580645vw, 50px);
}

@media screen and (max-width: 767px) {
  footer {
    padding: 18.6666666667vw 0 8vw;
  }
  footer .flogo {
    width: 74.6666666667vw;
  }
  footer nav {
    margin-top: 8vw;
  }
  footer nav ul {
    gap: 0.4em;
  }
  footer .btmMenu {
    flex-direction: column;
    font-size: 3.4666666667vw;
    margin-top: 18.6666666667vw;
    padding: 0 8vw;
  }
  footer .btmMenu p {
    width: 100%;
  }
  footer .btmMenu a {
    display: block;
    text-align: right;
    padding-bottom: 0;
  }
  footer .btmMenu .cpright {
    margin-top: 5.3333333333vw;
    font-size: 2.9333333333vw;
    text-align: center;
  }
  #pageTop {
    width: 16vw;
    height: 16vw;
    right: 2.6666666667vw;
    bottom: 0;
    top: auto;
  }
  #pageTop img {
    width: 12.8vw;
  }
}
/*# sourceMappingURL=layout.css.map */