@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 {
  --accent-color: #71c6c1;
  --background: #ffffff;
  --color: #000000;
  --content-back: transparent;
  --content-border: solid 1px #ddd;
  --content-button-back: #FFA372;
  --content-button-border: solid 1px #216778;
  --content-button-color: #ffffff;
  --content-color-large: #b1b1b1;
  --content-color-medium: #858585;
  --content-color-small: #6a6a6a;
  --footer-back: transparent;
  --footer-color: #ffffff;
  --footer-menu-back: transparent;
  --footer-menu-border: solid 1px #216778;
  --footer-menu-color: #ffffff;
  --footer-shadow: 1px 1px 2px #000;
  --header-back: #c3c3c3d9;
  --header-color: #ffffff;
  --header-menu-back: #c3c3c3d9;
  --header-menu-border: solid 1px #216778;
  --header-menu-color: #ffffff;
  --header-shadow: 1px 1px 2px #0000007a;
  --link-back: transparent;
  --link-color: #E07A5F;
  --link-hover: #FFA372;
  --main-color: #FFA372;
  --sp-menu-back: #999999;
  --sp-menu-color: #ffffff;
  --sp-menu-shadow: 1px 1px 1px #6b6b6b;
  --sub-color: #E07A5F;
}

: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 {
  image-orientation: none;
}
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;
}
.slick-dots li button {
  min-width: unset;
  box-shadow: unset;
}
.slider .slick-dots li button:before,
.slick-dots li.slick-active button:before {
  color: var(--color);
}
.slider .slick-prev,
.slider .slick-next {
  display: none !important;
}
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;
}
body {
  min-width: 320px;
  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-large);
}
h3 {
  font-weight: 300;
  font-size: min(28px, 5vw);
  line-height: 1em;
  color: var(--content-color-medium);
}
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 Sans JP", "Segoe UI Emoji", "Apple Color Emoji", "Segoe UI Symbol", "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;
}
.passwd {
  position: relative;
}
.passwd input {
  padding-right: 40px;
  width: 100%;
}
.passwd input + a {
  width: 20px;
  height: 20px;
  mask-image: url(../image/resource/eye_off.svg);
  mask-size: 20px;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url(../image/resource/eye_off.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--content-button-back);
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
}
.passwd input[type="text"] + a {
  mask-image: url(../image/resource/eye.svg);
  -webkit-mask-image: url(../image/resource/eye.svg);
}
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(--link-color);
  color: var(--link-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(--link-color);
  position: absolute;
  right: 0;
}
a.link:hover {
  border-color: var(--link-hover) !important;
  color: var(--link-hover) !important;
}
a.link:hover::after {
  background-color: var(--link-hover);
}
a.link2 {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  padding-left: 100px;
  font-size: clamp(24px, 2.8vw, 48px);
  line-height: 1em;
  position: relative;
  transition: 0.3s;
}
a.link2 span {
  font-weight: 100;
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.2em;
}
a.link2 i {
  display: block;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 1px solid var(--content-button-color);
  position: absolute;
  left: -0;
  top: 50%;
  transform: translateY(-50%);
}
a.link2 i::after {
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  background: var(--content-button-color);
  mask-size: contain;
  -webkit-mask-size: contain;
  position: absolute;
  inset: 0;
  margin: auto;
}
a.link2:hover {
  color: var(--link-hover) !important;
}
a.link2:hover i {
  border-color: var(--link-hover) !important;
}
a.link2:hover i::after {
  background: var(--link-hover) !important;
}
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: 40px;
  height: 40px;
  mask-image: url(../image/resource/logo_facebook.svg);
  -webkit-mask-image: url(../image/resource/logo_facebook.svg);
  background: var(--color);
}
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;
  border: 1px solid var(--color);
  mask-image: none;
  -webkit-mask-image: none;
}
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: 10;
}
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(--content-button-back);
}
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(--content-button-back);
}
div#bilingual a.on::after {
  content: "ON";
  color: #fff;
}
div#auth_password {
  display: block;
  padding: 50px 100px;
  width: 600px;
  max-width: 100%;
  background: var(--content-back);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
div#auth_password form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
}
div#auth_password div.passwd {
  width: 100%;
}
@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;
  }
  .tate {
    writing-mode: horizontal-tb;
  }
  a.link {
    width: 100%;
  }
  a.link2 {
    padding-left: 80px;
  }
  a.link2 i {
    width: calc(80px * 0.8);
    height: calc(80px * 0.8);
  }
  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);
  }
  div#auth_password {
    padding: 50px 30px;
    border: none;
    position: initial;
    transform: initial;
  }
}
/*----------------------------------------------------------------------
full calendar
------------------------------------------------------------------------*/
.fc {
  line-height: 1em!important;
}
.fc button {
  width: auto;
  min-width: initial;
  max-width: initial;
  font-size: 12px !important;
}
.fc a.event-closed {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
}
.fc .fc-daygrid a.event-closed > div {
  color: #ff0700;
}
.fc .fc-daygrid a.event-closed::before {
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  background: #ff0700;
  mask: url(../image/resource/close.svg) no-repeat center / cover;
  position: relative;
  top: 1px;
}
@media screen and (max-width: 767px) {
  .fc .fc-toolbar {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-top: 20px;
  }
  .fc .fc-toolbar-chunk {
    width: 100%;
  }
  .fc .fc-button-group {
    display: flex;
  }
  .fc .fc-col-header-cell-cushion {
    font-size: 10px;
  }
}
/*----------------------------------------------------------------------
cover
------------------------------------------------------------------------*/
body > div.cover {
  display: block;
  width: 100%;
  height: 100dvh;
  padding: 50px;
  background: #00000099;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
}
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
------------------------------------------------------------------------*/
html.videoEnd body > *:not(video) {
  opacity: 1!important;
}
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: 0 50px;
  width: 100%;
  height: 100px;
  background: var(--header-back);
  color: var(--header-color);
  text-shadow: var(--header-shadow);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-size: 30px;
  position: relative;
}
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 nav a.link {
  margin: 0;
  padding: 0 20px;
  width: 150px;
  height: 30px;
  border-radius: 30px;
  font-size: 20px;
}
header nav a.link::after {
  display: none;
}
header nav a::before {
  display: block;
  content: "";
  margin-right: 5px;
  width: 18px;
  height: 18px;
  mask-size: contain;
  -webkit-mask-size: contain;
  background-color: var(--header-color);
}
header nav a:hover::before {
  background-color: var(--link-hover);
}
header nav a.contact::before {
  margin-right: 7px;
  min-width: 20px;
  height: 20px;
  mask-image: url(../image/resource/mail.svg);
  -webkit-mask-box-image: url(../image/resource/mail.svg);
}
header nav a.access::before {
  mask-image: url(../image/resource/map.svg);
  -webkit-mask-box-image: url(../image/resource/map.svg);
}
header:has(nav) menu {
  margin-top: 40px;
}
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: 47px;
  z-index: 1;
  scale: 0 1;
  transition: 0.6s;
}
header menu ul li ul li {
  color: var(--header-menu-color);
}
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: 1;
}
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;
}
body > menu {
  display: none;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  header {
    justify-content: flex-end;
    padding: 0 20px;
  }
  header > div {
    padding: 10px 20px;
    height: 60px;
    position: absolute;
    top: 0;
    left: 0;
  }
  header nav {
    right: 30px;
  }
}
@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 nav {
    width: 100%;
  }
  header.scroll nav {
    display: none;
  }
  header nav a.link {
    width: auto;
    max-width: 150px;
  }
  header menu {
    margin: 0!important;
  }
  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(--sp-menu-back, var(--header-menu-back));
    text-shadow: var(--sp-menu-shadow);
    min-width: 300px;
    max-width: 100%;
    min-height: 100dvh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 20;
  }
  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(--sp-menu-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%;
    color: var(--sp-menu-color, var(--header-menu-color));
    font-size: 15px;
    line-height: 20px;
    word-break: keep-all;
    position: relative;
  }
  body > menu > ul li ul {
    display: flex !important;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
    padding-top: 20px;
    width: 100%;
    border-top: 1px solid var(--sp-menu-color, 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: no-repeat left bottom / auto;
  background-color: var(--footer-back);
  color: var(--footer-color);
  text-shadow: var(--footer-shadow);
  position: relative;
}
footer:has(.contact) {
  flex-direction: column;
  justify-content: flex-start;
}
footer div.contact {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding-block: 120px;
  padding-inline: 60px;
  gap: 60px;
}
footer div.contact > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  width: 100%;
}
footer div.contact h2 {
  margin-right: 40px;
  font-family: "Jost";
  font-size: calc(clamp(36px, 4.25vw, 80px) * 1.5);
  line-height: 1;
  font-weight: 400;
  color: var(--footer-color);
}
footer div.contact p {
  line-height: 1.8em;
}
footer div.contact a.link {
  padding-inline: 20px;
  width: auto;
  border-color: var(--footer-color);
  color: var(--footer-color);
}
footer div.contact a.link::before {
  background: var(--footer-color);
}
footer div.contact a.link2 i {
  border-color: var(--footer-color);
}
footer div.contact a.link2 i::after {
  background: var(--footer-color);
  mask-image: url(../image/resource/phone.svg);
  -webkit-mask-image: url(../image/resource/phone.svg);
}
footer div.wrap {
  display: flex;
  justify-content: space-between;
  width: 100%;
  min-height: 300px;
  position: relative;
}
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.contact {
    padding: 50px 20px;
  }
  footer div.contact > div {
    flex-direction: column;
    align-items: flex-start;
  }
  footer div.contact a.link {
    padding-inline: 10px;
    width: 100%;
  }
  footer div.wrap {
    flex-direction: column-reverse;
    gap: 50px;
    padding-block: 30px;
  }
  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%;
    font-size: 15px;
  }
  footer menu ul li ul {
    margin-top: 20px;
    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;
  width: 100%;
  position: relative;
}
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);
  }
}
@media screen and (max-width: 767px) {
  body > div {
    min-height: calc(100dvh - 780px);
  }
}
/*----------------------------------------------------------------------
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(--content-button-back);
  font-weight: 400;
  font-size: 1.2rem;
}
@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;
  }
}
/*----------------------------------------------------------------------
navi
------------------------------------------------------------------------*/
.navi {
  display: flex;
  gap: 20px;
  padding: 0!important;
}
.navi a {
  display: flex;
  align-items: center;
  gap: 20px;
  color: var(--sub-color);
}
.navi a::after {
  display: block;
  content: ">";
  font-family: ui-monospace;
  color: var(--color);
}
/*----------------------------------------------------------------------
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_youtube
------------------------------------------------------------------------*/
.part_youtube {
  overflow: hidden;
}
.part_youtube div.row {
  display: flex;
  flex-direction: row;
  gap: 10px calc(4% / 3);
  flex-wrap: wrap;
}
.part_youtube div.column {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.part_youtube .slick-dotted.slick-slider {
  margin-bottom: 60px;
}
.part_youtube .slick-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  bottom: -60px;
}
.part_youtube div.media {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 24%;
  height: auto;
}
.part_youtube div.slider div.media {
  margin-inline: 10px;
}
.part_youtube div.column div.media {
  width: 50%;
}
.part_youtube div.media > div:first-child {
  position: relative;
}
.part_youtube div.media a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #ffffff91;
  border-radius: 50%;
  position: absolute;
  margin: auto;
  inset: 0px;
  cursor: pointer;
  transition: 0.3s;
}
.part_youtube div.media a:hover {
  background: #ffffffab;
}
.part_youtube div.media a::after {
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  background: url(../image/resource/play.svg) no-repeat center / 100%;
}
.part_youtube div.media img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.part_youtube div.media > div:last-child {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 10px;
  font-size: clamp(12px, 3.8vw, 14px);
  line-height: 1.5em;
  word-break: break-all;
}
.part_youtube div.media h3 {
  font-size: clamp(16px, 4.2vw, 20px);
  line-height: 1.2em;
}
/*----------------------------------------------------------------------
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;
  height: auto;
}
.part_flexbox div.row div.box {
  width: 24%;
}
.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.row {
    gap: 20px 2%;
  }
  .part_flexbox div.row div.box {
    width: 49%;
  }
  .part_flexbox div.box.left {
    flex-direction: column;
    align-items: center;
  }
  .part_flexbox div.box.right {
    flex-direction: column-reverse;
    align-items: center;
  }
  .part_flexbox div.box.left > img {
    max-width: 100%;
  }
  .part_flexbox div.box.right > img {
    max-width: 100%;
  }
}
/*----------------------------------------------------------------------
part_ullist
------------------------------------------------------------------------*/
.part_ullist ul {
  display: flex;
  flex-wrap: wrap;
}
.part_ullist ul.left {
  justify-content: flex-start;
}
.part_ullist ul.right {
  justify-content: flex-end;
}
.part_ullist ul.column {
  flex-direction: column;
}
.part_ullist ul li {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.part_ullist ul li.bottom {
  flex-direction: column-reverse;
  justify-content: flex-end;
}
.part_ullist ul li.left {
  flex-direction: row;
  align-items: flex-start
}
.part_ullist ul li.right {
  flex-direction: row-reverse;
  align-items: flex-start;
}
.part_ullist ul li.left > img {
  max-width: calc((100% - 10px) / 2);
}
.part_ullist ul li.right > img {
  max-width: calc((100% - 10px) / 2);
}
.part_ullist ul li > div {
  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(--color);
}
.part_dllist dl dd {
  padding: 10px;
  width: 80%;
  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 #ccc;
  background: var(--content-button-back);
  color: var(--content-color-small);
}
.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: 1px solid #ccc;
  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 {
  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;
  color: var(--content-color-small);
}
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: 1px solid transparent;
  background: var(--content-button-back);
  color: #fff;
  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: 1px solid var(--content-button-back);
  color: var(--content-button-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;
  }
}
/*----------------------------------------------------------------------
part_table
------------------------------------------------------------------------*/
.part_table table {
  width: 100%;
  outline: none;
}
.part_table table div.cell.bottom {
  display: flex;
  flex-direction: column-reverse;
}
@media screen and (max-width: 767px) {
  .part_table {
    white-space: nowrap;
    overflow-x: auto;
  }
}
/*----------------------------------------------------------------------
div.complete
------------------------------------------------------------------------*/
div.complete {
  margin: 50px auto;
  padding: 60px 160px;
  max-width: calc(100% - 30px);
  width: 800px;
  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;
  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);
}
html.blog:has(#auth_password) aside {
  display: none;
}
html.blog:has(#auth_password) main {
  width: 100%;
}
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);
}
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 Sans JP", "Segoe UI Emoji", "Apple Color Emoji", "Segoe UI Symbol", "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 Sans JP", "Segoe UI Emoji", "Apple Color Emoji", "Segoe UI Symbol", "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 Sans JP", "Segoe UI Emoji", "Apple Color Emoji", "Segoe UI Symbol", "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 Sans JP", "Segoe UI Emoji", "Apple Color Emoji", "Segoe UI Symbol", "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:not(.main-visual) {
    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:not(.main-visual) {
    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;
  }
}