@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400&display=swap');

:root {
}

:root {
  --swiper-navigation-size: 30px !important;
  --swiper-theme-color: #fff !important;
  --trt: translate 1.2s, opacity 1.2s, clip-path 1.2s, filter 1.2s, scale 1.8s;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
@keyframes rightgrow {
  from {
    background-position-x: 200%;
  }
  to {
    background-position-x: 100%;
  }
}
html {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 20px;
}
img, video {
  max-width: 100%;
  max-height: 100%;
}
img.zoom, video.zoom {
  cursor: pointer;
}
img.load {
  display: none;
  position: absolute;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
input, textarea, select, button {
  font-family: inherit;
  font-size: inherit;
}
input, textarea, select {
  padding: 6px 10px;
  max-width: 100%;
  border: 1px solid #ddd;
  border-radius: 3px;
  outline: none;
}
input::placeholder {
  font-size: 13px;
}
textarea {
  resize: vertical;
}
ul {
  list-style: none;
}
a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
/*a[target="_blank"]:hover, a[target="_self"]:hover {*/
/*   font-weight: 600;*/
/*}*/
body {
  background: var(--background);
  color: var(--color);
}
h1 {
  font-weight: 300;
  font-size: min(36px, 7vw);
  line-height: 1em;
  color: var(--content-color-large);
}
h2 {
  font-weight: 300;
  font-size: min(32px, 6vw);
  line-height: 1em;
  color: var(--content-color-medium);
}
h3 {
  font-weight: 300;
  font-size: min(28px, 5vw);
  line-height: 1em;
  color: var(--content-color-small);
}
h1 span, h2 span, h3 span {
  margin-left: 20px;
  font-size: 0.7em;
}
div.map {
  padding-top: 36%;
  width: 100%;
  position: relative;
}
div.map iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.tb, .sp {
  display: none!important;
}
.emoji {
  font-family: "Noto Color Emoji", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.tate {
  writing-mode: vertical-rl;
}
.flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.relative {
  position: relative;
}
.post input {
  width: 80px;
}
.post + input {
  max-width: 600px;
}
.post + input + input {
  max-width: 600px;
}
a.link {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 50px;
  padding: 0 40px;
  width: 320px;
  height: 80px;
  border-radius: 40px;
  border: 1px solid var(--content-button-color);
  color: var(--content-button-color);
  font-family: "Jost", sans-serif;
  font-size: 24px;
  transition: 0.3s;
  cursor: pointer;
  position: relative;
}
a.link::after {
  display: block;
  content: "";
  width: 40px;
  height: 40px;
  mask-image: url(../image/resource/next.svg);
  mask-size: contain;
  -webkit-mask-image: url(../image/resource/next.svg);
  -webkit-mask-size: contain;
  background-color: var(--content-button-color);
  position: absolute;
  right: 0;
}
a.link:hover {
  border-color: var(--link-color);
  color: var(--link-color);
}
a.link:hover::after {
  background-color: var(--link-color);
}
div.share {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 35px;
}
a.x {
  width: 35px;
  height: 35px;
  background: #000 url(../image/resource/logo_x.svg) no-repeat center / 60%;
}
a.facebook {
  width: 45px;
  height: 45px;
  background: url(../image/resource/logo_facebook.svg) no-repeat center / 100%;
}
a.instagram {
  display: inline-block;
  width: 45px;
  height: 45px;
  background: url(../image/resource/logo_instagram.svg) no-repeat center / 100%;
}
div.sns {
  display: flex;
  align-items: center;
  justify-content: space-around;
}
div.sns span {
  display: block;
  color: #888;
  font-size: 13px;
  word-break: break-all;
}
div.sns span:last-child {
  color: #fff;
}
div.sns a {
  display: flex;
  align-items: center;
  padding: 0 20px;
  width: 300px;
  max-width: 33.33%;
  height: 100px;
  background: #000;
}
div.sns a::before {
  display: block;
  content: "";
  margin: 0 25px 0 10px;
  width: 45px;
  height: 45px;
}
div.sns a.x::before {
  background: url(../image/resource/logo_x.svg) no-repeat center / 60%;
}
div.sns a.facebook::before {
  display: block;
  content: "";
  mask-image: url(../image/resource/logo_facebook.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url(../image/resource/logo_facebook.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: #fff;
}
div.sns a.instagram::before {
  display: block;
  content: "";
  background: url(../image/resource/logo_instagram.svg) no-repeat center / 100%;
}
div#bilingual {
  display: flex;
  flex-direction: column;
  padding: 5px 10px;
  max-width: 320px;
  background: rgb(255 255 255 / 70%);
  box-shadow: 0 0 3px rgb(0 0 0 / 30%);
  font-size: 15px;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1;
}
div#bilingual div.progress {
  display: flex;
  align-items: center;
  gap: 10px;
}
div#bilingual div.language {
  display: flex;
  align-items: center;
  gap: 10px;
}
div#bilingual.loading div.progress {
  display: flex !important;
}
div#bilingual.loading div.language {
  display: none;
}
div#bilingual div.language::before {
  display: block;
  content: "";
  width: 35px;
  height: 35px;
  mask-image: url(../image/resource/intl.svg);
  mask-size: 30px;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url(../image/resource/intl.svg);
  -webkit-mask-size: 30px;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--accent-color);
}
div#bilingual select {
  width: 210px;
  border: none;
}
div#bilingual a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  background: #ccc;
  border-radius: 3px;
}
div#bilingual a::after {
  content: "OFF";
  font-weight: 500;
  font-size: 10px;
  color: #787878;
}
div#bilingual a.on {
  background: var(--accent-color);
}
div#bilingual a.on::after {
  content: "ON";
  color: #fff;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  img, video {
    min-width: initial!important;
    max-width: 100%;
  }
  .tb {
    display: block!important;
  }
  .tb + .pc {
    display: none!important;
  }
  div.sns {
    justify-content: space-between;
  }
}
@media screen and (max-width: 767px) {
  html {
    line-height: 1.7em;
  }
  img, video {
    min-width: initial!important;
    max-width: 100%;
  }
  div.map {
    padding-top: 100%;
  }
  .sp {
    display: block!important;
  }
  .sp + .tb, .sp + .pc, .tb + .pc {
    display: none!important;
  }
  .flex {
    flex-direction: column;
    align-items: center;
  }
  a.link {
    width: 100%;
  }
  div.sns {
    flex-direction: column;
    gap: 20px;
  }
  div.sns a {
    width: 100%;
    max-width: initial;
  }
  div#bilingual {
    width: calc(100% - 20px);
    right: 50%;
    transform: translateX(50%);
  }
  div#bilingual select {
    width: calc(100% - 90px);
  }
}
/*----------------------------------------------------------------------
cover
------------------------------------------------------------------------*/
body > div.cover {
  display: block;
  width: 100%;
  height: 100dvh;
  padding: 50px;
  background: #00000099;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
}
body > div.cover > a {
  display: block;
  width: 30px;
  height: 30px;
  background: url(../image/resource/close.svg) no-repeat center / 100%;
  position: absolute;
  top: 10px;
  right: 10px;
  cursor: pointer;
}
body > div.cover .swiper-slide {
  object-fit: scale-down;
  opacity: 0.2;
}
body > div.cover .swiper-slide-active {
  opacity: 1;
}
body > div.cover .swiper-pagination-bullets {
  bottom: 15px !important;
}
body > div.cover .swiper-button-next {
  right: 13px !important;
}
body > div.cover .swiper-button-prev {
  left: 13px !important;
}
@media screen and (max-width: 767px) {
  body > div.cover {
    padding: 50px 0;
  }
  body > div.cover .swiper-slide {
  }
  body > div.cover .swiper-button-next, body > div.cover .swiper-button-prev {
    display: none;
  }
}
/*----------------------------------------------------------------------
splash
------------------------------------------------------------------------*/
/*body > *:not(video) {*/
/*  opacity: 0;*/
/*  transition: opacity 1s;*/
/*}*/
html.videoEnd body > *:not(video) {
  opacity: 1;
}
body > video {
  width: 100%;
  height: 100dvh;
  object-fit: cover;
  pointer-events: none;
  position: fixed;
  z-index: 1000;
  transition: 0.3s;
}
body > video.hide {
  opacity: 0;
}
/*----------------------------------------------------------------------
header
------------------------------------------------------------------------*/
header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 100px;
  padding: 20px 50px;
  width: 100%;
  height: 100px;
  background: var(--header-back);
  color: var(--header-color);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-size: 30px;
  position: relative;
  /*position: fixed;*/
  /*top: 0;*/
  /*left: 0;*/
  /*z-index: 10;*/
}
/*html.home header {*/
/*  background: transparent;*/
/*}*/
/*html.home header.scroll {*/
/*  background: var(--header-back);*/
/*}*/
header > div a {
  display: flex;
  align-items: center;
  gap: 20px;
}
header > div a img {
  display: block;
  height: 40px;
}
header > div a span {
  font-size: 20px;
  white-space: nowrap;
}
header menu > ul {
  display: flex;
  flex-wrap: wrap;
}
header menu ul li {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  min-width: 100px;
  border-radius: 3px;
  color: var(--header-color);
  font-size: 15px;
  line-height: 20px;
  text-align: center;
  word-break: keep-all;
  position: relative;
}
header menu ul li a {
  width: 100%;
  height: 100%;
}
header menu ul li ul {
  display: flex !important;
  flex-direction: column;
  gap: 0;
  background: var(--header-menu-back);
  position: absolute;
  top: 40px;
  z-index: 1;
  scale: 0 1;
  transition: 0.6s;
}
header menu ul li:hover ul {
  scale: 1 1;
}
header menu ul li:last-child ul {
  left: initial;
  right: 0;
}
header menu ul li.expand::after {
  display: block;
  content: "";
  width: 8px;
  height: 8px;
  background-color: #fff;
  clip-path: polygon(25% 0, 75% 0, 50% 100%);
  opacity: 0.7;
  position: absolute;
  top: calc(100% + 2px);
  left: 50%;
  translate: -50%;
  z-index: 10;
}
header menu ul li ul li {
  justify-content: flex-start;
  min-width: 200px;
  background-image: linear-gradient(#ffffff33, #ffffff33);
  background-repeat: no-repeat;
  background-size: 200% 100%;
  background-position-y: 0%;
  background-position-x: -100%;
  transition: 0.4s ease-in-out;
}
header menu ul li ul li:hover {
  background-position-x: 0%;
  animation: rightgrow 0.4s ease-in-out;
}
header menu ul li ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.25em 1.5em;
  font-size: 16px;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  header {
    flex-direction: column;
    gap: 10px;
    height: auto;
    min-height: 100px;
  }
}
@media screen and (max-width: 767px) {
  header {
    gap: 0;
    padding: 0 10px;
    height: 50px;
    position: fixed;
    z-index: 1;
  }
  header > div a {
    gap: 5px;
  }
  header > div a img {
    height: 30px;
  }
  header > div a span {
    font-size: 15px;
  }
  header menu a.icon.menu {
    display: block;
    width: 30px;
    height: 30px;
    mask-image: url(../image/resource/menu.svg);
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-image: url(../image/resource/menu.svg);
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    background-color: var(--header-color);
    cursor: pointer;
  }
  header menu > ul {
    display: none;
  }
  body > menu {
    display: none;
    padding: 50px 20px 20px;
    background: var(--header-menu-back);
    min-width: 300px;
    max-width: 100%;
    min-height: 100dvh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
  }
  body > menu a.icon.menu {
    display: block;
    width: 30px;
    height: 30px;
    mask-image: url(../image/resource/menu_close.svg);
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-image: url(../image/resource/menu_close.svg);
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    background-color: var(--header-menu-color);
    cursor: pointer;
    position: absolute;
    top: 10px;
    right: 10px;
  }
  body > menu > ul {
    display: flex;
    flex-direction: column;
    gap: 30px;
  }
  body > menu > ul li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    background: var(--header-menu-back);
    color: var(--header-menu-color);
    font-size: 13px;
    line-height: 20px;
    word-break: keep-all;
    position: relative;
  }
  body > menu > ul li ul {
    display: flex !important;
    flex-direction: column;
    gap: 20px;
    margin-top: 10px;
    padding-top: 20px;
    width: 100%;
    border-top: 1px solid var(--header-menu-color);
  }
  body > menu > ul li ul li {
    padding: 0 0 0 10px;
    font-size: 12px;
  }
}
/*----------------------------------------------------------------------
footer
------------------------------------------------------------------------*/
footer {
  display: flex;
  justify-content: space-between;
  padding: 30px 50px;
  width: 100%;
  background: var(--footer-back);
  color: var(--footer-color);
  position: relative;
}
footer div.wrap {
  display: flex;
  justify-content: space-between;
  width: 100%;
  min-height: 300px;
}
footer div.wrap > div {
  display: flex;
  flex-direction: column;
}
footer div.wrap > div:first-child {
  justify-content: space-between;
}
footer div.wrap > div:first-child img {
  display: block;
  height: 60px;
}
footer div.wrap > div:first-child > span {
  margin-bottom: 10px;
  font-size: 16px;
}
footer address {
  font-style: normal;
  font-size: 12px;
}
footer address > span {
  display: block;
  font-size: 18px;
  line-height: 30px;
}
footer address span:nth-child(n+2) {
  margin-left: 10px;
}
footer menu {
  padding: 20px;
}
footer menu ul {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 20px;
}
footer menu ul li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 150px;
  color: var(--footer-menu-color);
  font-size: 13px;
  line-height: 20px;
  word-break: keep-all;
  position: relative;
}
footer menu ul li ul {
  display: flex !important;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
  padding-top: 20px;
  border-top: 1px solid var(--footer-menu-color);
}
footer menu ul li ul li {
  font-size: 12px;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  footer {
    flex-direction: column-reverse;
  }
  footer div.wrap {
    flex-direction: column-reverse;
  }
  footer div.wrap > div {
    flex-direction: row;
  }
  footer menu ul {
    gap: 15px;
  }
  footer menu ul li {
    min-width: 140px;
  }
}
@media screen and (max-width: 767px) {
  footer {
    flex-direction: column-reverse;
    padding: 20px;
  }
  body:has(#bilingual) footer {
    padding-bottom: 85px;
  }
  footer div.wrap {
    flex-direction: column-reverse;
  }
  footer div.wrap > div:first-child {
    align-items: center;
    justify-content: initial;
  }
  footer address {
    margin-top: 30px;
  }
  footer address > span {
    margin-bottom: 20px;
  }
  footer menu {
    margin-bottom: 10px;
    padding: 20px 0;
  }
  footer menu ul {
    flex-direction: column;
    gap: 30px;
  }
  footer menu ul li {
    width: 100%;
  }
  footer menu ul li ul {
    width: 100%;
  }
  footer menu ul li ul li {
    padding: 0 0 0 10px;
  }
}
/*----------------------------------------------------------------------
main
------------------------------------------------------------------------*/
body > div {
  display: flex;
  width: 100%;
  min-height: calc(100dvh - 400px);
}
aside {
  display: none;
}
main {
  display: flex;
  /*padding-top: 100px;*/
  width: 100%;
  position: relative;
}
/*html.home main {*/
/*  padding-top: 0;*/
/*}*/
main > section {
  width: 100%;
}
mian > nav {
  width: 0;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  body > div {
    min-height: calc(100dvh - 430px);
  }
  main {
    /*padding-top: 120px;*/
  }
}
@media screen and (max-width: 767px) {
  body > div {
    min-height: calc(100dvh - 780px);
  }
  main {
    padding-top: 50px;
  }
}
/*----------------------------------------------------------------------
main-visual
------------------------------------------------------------------------*/
div.main-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 120px 0;
  min-height: initial;
  background-position: center;
  background-size: cover;
  backdrop-filter: blur(2px);
}
div.main-visual > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
div.main-visual h1, div.main-visual h2, div.main-visual h3 {
  color: var(--header-menu-color);
  font-weight: 400;
}
div.main-visual span {
  color: var(--accent-color);
  font-weight: 500;
  font-size: 1.5rem;
}
@media screen and (max-width: 767px) {
  div.main-visual {
    margin-bottom: 50px;
    padding: 60px 0;
    position: relative;
    top: 50px;
  }
  div.main-visual > div {
    gap: 12px;
  }
  div.main-visual span {
    font-size: 1rem;
  }
  div.main-visual + * main {
    padding-top: 0;
  }
}
/*----------------------------------------------------------------------
part_slide
------------------------------------------------------------------------*/
.part_slide {
  overflow: hidden;
}
.slider:not(.slick-slider) {
  display: flex;
}
.slider.fade img {
  width: 100%;
}
.slider.slide img {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .part_slide img {
    height: calc(100dvh - 50px);
    object-fit: cover;
    object-position: center;
  }
}
/*----------------------------------------------------------------------
part_rect
------------------------------------------------------------------------*/
.part_rect {
  background: var(--content-back);
}
/*----------------------------------------------------------------------
part_image
------------------------------------------------------------------------*/
.part_image {
  background: var(--content-back);
}
.part_image > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
  height: 100%;
}
.part_image > div.left {
  flex-direction: row;
  align-items: flex-start;
}
.part_image > div.right {
  flex-direction: row-reverse;
  align-items: flex-start;
}
.part_image > div.bottom {
  flex-direction: column-reverse;
  align-items: center;
}
.part_image > div > div {
  flex: 1;
}
.part_image > div > a, .part_image picture, .part_image video {
  flex: 1;
  height: 100%;
}
.part_image picture img {
  width: 100%;
}
.part_image h1, .part_image h2, .part_image h3 {
  margin: 0 0 50px;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .part_image > div.left {
    flex-direction: column;
    align-items: center;
  }
  .part_image > div.right {
    flex-direction: column-reverse;
    align-items: center;
  }
  .part_image > div > div {
    width: 100%;
  }
}
/*----------------------------------------------------------------------
part_text
------------------------------------------------------------------------*/
.part_text {
  padding: 50px;
  background: var(--content-back);
  color: var(--content-color-small);
}
@media screen and (max-width: 767px) {
  .part_text {
    padding: 20px;
  }
}
/*----------------------------------------------------------------------
part_media
------------------------------------------------------------------------*/
.part_media {
  overflow: hidden;
}
.part_media div.row {
  display: flex;
  flex-direction: row;
  gap: 10px calc(4% / 3);
  flex-wrap: wrap;
}
.part_media div.column {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.part_media .slick-dotted.slick-slider {
  margin-bottom: 60px;
}
.part_media .slick-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  bottom: -60px;
}
.part_media div.media {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 24%;
  height: auto;
}
.part_media div.slider div.media {
  margin-inline: 10px;
}
.part_media div.column div.media {
  width: 50%;
}
.part_media div.media > a {
  display: flex;
}
.part_media div.media > a img {
  aspect-ratio: 1/1;
  object-fit: cover;
}
.part_media div.media > div {
  padding-bottom: 10px;
  word-break: break-all;
}
/*----------------------------------------------------------------------
part_flexbox
------------------------------------------------------------------------*/
.part_flexbox {
  overflow: hidden;
}
.part_flexbox div.row {
  display: flex;
  flex-direction: row;
  gap: 10px calc(4% / 3);
  align-items: center;
  flex-wrap: wrap;
}
.part_flexbox div.column {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.part_flexbox .slick-dotted.slick-slider {
  margin-bottom: 60px;
}
.part_flexbox .slick-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  bottom: -60px;
}
.part_flexbox div.box {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px;
  width: 24%;
  height: auto;
  border: var(--content-border);
}
.part_flexbox div.slider div.box {
  margin-inline: 10px;
}
.part_flexbox div.column div.media {
  width: 50%;
}
.part_flexbox h1, .part_flexbox h2, .part_flexbox h3 {
  margin: 0 0 10px;
  line-height: 1.2;
}
.part_flexbox h1 {
  font-size: min(24px, 6vw);
}
.part_flexbox h2 {
  font-size: min(20px, 5vw);
}
.part_flexbox h3 {
  font-size: 16px;
}
.part_flexbox div.box.bottom {
  flex-direction: column-reverse;
  justify-content: flex-end;
}
.part_flexbox div.box.left {
  flex-direction: row;
  align-items: flex-start;
}
.part_flexbox div.box.right {
  flex-direction: row-reverse;
  align-items: flex-start;
}
.part_flexbox div.box.left > img {
  max-width: calc((100% - 10px) / 2);
}
.part_flexbox div.box.right > img {
  max-width: calc((100% - 10px) / 2);
}
@media screen and (max-width: 767px) {
  .part_flexbox div.box.left {
    flex-direction: column;
    align-items: initial;
  }
  .part_flexbox div.box.right {
    flex-direction: column-reverse;
    align-items: initial;
  }
  .part_flexbox div.box.left > img {
    max-width: 100%;
  }
  .part_flexbox div.box.right > img {
    max-width: 100%;
  }
}
/*----------------------------------------------------------------------
part_dllist
------------------------------------------------------------------------*/
.part_dllist {
  padding: 10px;
}
.part_dllist > div {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.part_dllist dl {
  display: flex;
  gap: 10px;
}
.part_dllist dl dt {
  padding: 10px;
  width: 20%;
  border: 1px solid var(--content-button-back);
  background: var(--content-button-back);
  color: var(--content-button-color);
}
.part_dllist dl dd {
  padding: 10px;
  width: 80%;
  border: var(--content-border);
  background: var(--content-back);
  color: var(--color);
}
@media screen and (max-width: 767px) {
  .part_dllist dl {
    flex-direction: column;
  }
  .part_dllist dl dt {
    width: 100%;
  }
  .part_dllist dl dd {
    width: 100%;
  }
}
/*----------------------------------------------------------------------
part_form
------------------------------------------------------------------------*/
.part_form {
  padding: 10px;
}
.part_form h3 {
  margin-bottom: 20px;
}
.part_form > div {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.part_form dl {
  display: flex;
  gap: 10px;
}
.part_form dl dt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px;
  width: 20%;
  border: 1px solid var(--accent-color);
  background: var(--accent-color);
  color: #fff;
}
.part_form dl dt span {
  font-size: 13px;
  color: #ff0000;
  white-space: nowrap;
}
.part_form dl dd {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 10px;
  width: 80%;
  border: var(--content-border);
  background: var(--content-back);
  color: var(--color);
}
.part_form dl dd > div {
  display: flex;
  align-items: center;
  gap: 10px;
}
.part_form dl dd > div.selector {
  flex-wrap: wrap;
  gap: 20px;
  margin: 10px;
}
.part_form dl dd > div.selector + input {
  min-width: 200px;
}
.part_form dl dd label {
  max-width: 100%;
}
.part_form dl dd label input {
  margin-right: 10px;
  position: relative;
  top: 0.5px;
}
.part_form dl dd p {
  font-size: 13px;
}
html.confirm form {
  margin: 0 auto;
  max-width: calc(100% - 100px);
}
html.confirm .part_form dl dd p {
  color: #ff0000;
}
@media screen and (max-width: 767px) {
  .part_form dl {
    flex-direction: column;
  }
  .part_form dl dt {
    width: 100%;
  }
  .part_form dl dd {
    width: 100%;
    min-height: 50px;
  }
  html.confirm form {
    margin: 0 auto;
    max-width: calc(100% - 40px);
  }
}
/*----------------------------------------------------------------------
part_submit
------------------------------------------------------------------------*/
.part_submit {
  display: flex;
  align-items: center;
  justify-content: space-around;
  margin: 50px 0;
}
.part_submit button {
  padding: 15px 30px;
  min-width: 200px;
  max-width: calc(100% - 20px);
  box-shadow: 2px 2px 2px 0 rgb(0 0 0 / 15%);
  border-radius: 6px;
  border: var(--content-button-border);
  background: var(--content-button-back);
  color: var(--content-button-color);
  transition: 0.3s;
  cursor: pointer;
}
.part_submit button:hover {
  opacity: 0.8;
}
.part_submit a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 30px;
  min-width: 200px;
  max-width: calc(100% - 20px);
  box-shadow: 2px 2px 2px 0 rgb(0 0 0 / 15%);
  border-radius: 6px;
  border: var(--content-border);
  background: var(--content-back);
  transition: 0.3s;
  cursor: pointer;
}
.part_submit a:hover {
  opacity: 0.8;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .part_submit {
    flex-wrap: wrap;
    gap: 20px;
  }
}
/*----------------------------------------------------------------------
div.complete
------------------------------------------------------------------------*/
div.complete {
  margin: 50px auto;
  padding: 60px 160px;
  max-width: calc(100% - 30px);
  width: 800px;
  border: var(--content-border);
  background: var(--content-back);
}
div.complete ul li:first-child {
  padding: 20px 0;
  font-size: 20px;
}
div.complete a.button {
  display: block;
  margin: 50px auto 30px;
  padding: 15px 30px;
  max-width: calc(100% - 20px);
  box-shadow: 2px 2px 2px 0 rgb(0 0 0 / 15%);
  border-radius: 6px;
  border: var(--content-button-border);
  background: var(--content-button-back);
  color: var(--content-button-color);
  transition: 0.3s;
  cursor: pointer;
  text-align: center;
}
div.complete a.button:hover {
  opacity: 0.8;
  text-decoration: none;
}
div.complete span {
  font-size: 13px;
}
@media screen and (max-width: 767px) {
  div.complete {
    padding: 20px;
  }
}
/*----------------------------------------------------------------------
div.blog
------------------------------------------------------------------------*/
html.blog aside {
  display: block;
  /*padding: 150px 0 50px 50px;*/
  padding: 50px 0 50px 50px;
  min-width: 400px;
  max-width: 400px;
}
html.blog main {
  width: calc(100% - 400px);
}
aside > div {
  background: var(--header-back);
  color: var(--header-color);
  padding: 10px 20px;
}
aside > div:nth-of-type(n+2) {
  margin-top: 20px;
}
aside > div.search {
  padding: 0;
  background: none;
  position: relative;
}
aside > div.search input {
  padding-right: 42px;
  width: 100%;
  height: 40px;
  border-radius: 8px;
}
aside > div.search input + a {
  display: block;
  width: 30px;
  height: 30px;
  mask-image: url(../image/resource/search.svg);
  mask-size: 24px;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url(../image/resource/search.svg);
  -webkit-mask-size: 24px;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--header-back);
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}
aside ul li {
  padding: 10px 20px;
  background: var(--content-back);
  border-bottom: var(--content-border);
  border-bottom-style: dashed;
}
aside ul li a {
  text-decoration: underline;
  color: var(--link-color);
}
aside ul li:last-child {
  border: none;
  font-size: 0.8em;
}
aside ul li:last-child a {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
aside ul li:last-child a::before {
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  mask-image: url(../image/resource/next.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url(../image/resource/next.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--header-color);
  position: relative;
  top: 1px;
}
aside ul li span:first-child {
  display: block;
  font-size: 0.85em;
}
aside ul.pages li span:last-child {
  font-family: "Noto Color Emoji", sans-serif;
  font-weight: 400;
  font-style: normal;
}
div.notfound {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--content-back);
  padding: 30px 50px;
  height: 200px;
}
html.blog article.blog {
  margin: 50px;
}
html.blog.article article.blog {
  padding: 30px;
  background: var(--content-back);
}
article.blog div.title {
  padding: 20px;
  background: var(--header-back);
}
article.blog time {
  display: block;
  margin-bottom: 15px;
  color: var(--header-menu-color);
}
article.blog h1, article.blog h2 {
  color: var(--header-color);
  font-size: min(30px, 7vw);
  font-family: "Noto Color Emoji", sans-serif;
  font-weight: 400;
  font-style: normal;
}
article.blog div.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 30px;
}
article.blog div.tags a {
  padding: 5px;
  background: var(--content-button-back);
  color: var(--content-button-color);
  border-radius: 6px;
  line-height: 1em;
  font-size: 12px;
}
article.blog div.detail {
  padding-top: 30px;
  line-height: 2.5em;
  font-size: 16px;
  font-family: "Noto Color Emoji", sans-serif;
  font-weight: 400;
  font-style: normal;
}
article.blog div.share {
  margin-top: 30px;
}
article.blog div.image > div:not(.slide, .thumb) {
  display: flex;
}
article.blog div.image img {
  width: 100%;
  max-height: 500px;
  object-fit: cover;
}
article.blog div.slide:not(.slick-slider) {
  display: flex;
}
article.blog div.slide img {
  width: 100%;
}
article.blog div.thumb {
  margin: 20px 10px;
}
article.blog div.thumb .slick-slide {
  margin: 0 10px;
  cursor: pointer;
}
article.blog div.thumb .slick-track {
  margin-left: initial;
}
article.blog article {
  padding: 30px;
  background: var(--content-back);
}
article.blog article div.detail {
  display: flex;
  gap: 30px;
  font-family: "Noto Color Emoji", sans-serif;
  font-weight: 400;
  font-style: normal;
}
article.blog article div.detail div.image {
  min-width: 360px;
}
article.blog article div.detail div.image a {
  display: flex;
}
article.blog article div.link {
  display: flex;
  justify-content: flex-end;
  margin-top: 30px;
}
article.blog article div.link a {
  display: flex;
  align-items: center;
  padding: 10px 20px;
  background: var(--content-button-back);
  color: var(--content-button-color);
  border-radius: 6px;
  transition: 0.3s;
}
article.blog article div.link a:hover {
  opacity: 0.8;
}
article.blog article div.link a::after {
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  mask-image: url(../image/resource/next.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url(../image/resource/next.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--content-button-color);
  position: relative;
  top: 1px;
}
div.pager {
  display: flex;
  justify-content: space-between;
  background: var(--content-back);
  padding: 30px;
}
div.pager > div {
  display: flex;
  align-items: flex-end;
  gap: 10px;
}
div.pager span {
  color: var(--content-button-back);
}
div.pager a {
  display: flex;
  align-items: center;
  padding: 8px 13px;
  background: var(--content-button-back);
  color: var(--content-button-color);
  border-radius: 6px;
  transition: 0.3s;
}
div.pager a.current {
  background: var(--content-button-color);
  color: var(--content-button-back);
  border: 1px solid var(--content-button-back);
}
div.pager a:hover {
  opacity: 0.8;
}
div.pager a.prev::before {
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  mask-image: url(../image/resource/prev.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url(../image/resource/prev.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--content-button-color);
  position: relative;
  top: 1px;
}
div.pager a.next::after {
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  mask-image: url(../image/resource/next.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url(../image/resource/next.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--content-button-color);
  position: relative;
  top: 1px;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  html.blog body > div {
    flex-direction: column-reverse;
  }
  html.blog aside {
    padding: 0 50px 50px;
    max-width: 100%;
  }
  html.blog main {
    width: 100%;
  }
  html.blog.article article.blog {
    margin: 0;
  }
}
@media screen and (max-width: 767px) {
  html.blog body > div {
    flex-direction: column-reverse;
  }
  html.blog aside {
    padding: 0;
    min-width: initial;
    max-width: 100%;
  }
  html.blog main {
    width: 100%;
  }
  aside > div:nth-of-type(n+2) {
    margin-top: 0;
  }
  aside > div.search {
    margin: 50px auto;
    width: calc(100% - 40px);
  }
  article.blog {
    margin: 0;
    padding: 0;
  }
  html.blog article.blog {
    margin: 0;
    background: unset;
  }
  html.blog.article article.blog {
    padding: 20px;
    background: unset;
  }
  article.blog article {
    padding: 20px;
    background: unset;
  }
  article.blog article div.detail {
    flex-direction: column;
  }
  article.blog article div.detail div.image {
    min-width: initial;
  }
  div.pager {
    padding-top: 110px;
    position: relative;
  }
  div.pager > div {
    position: absolute;
    top: 30px;
  }
}