.animate .fadein {
  opacity: 0;
  transform-style: preserve-3d;
  transition-property: opacity;
  transition-duration: 1200ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate.show .fadein {
  opacity: 1;
}
.animate .slidein_left {
  opacity: 0;
  transform: translateX(-100px);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 800ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate .slidein_right {
  opacity: 0;
  transform: translateX(100px);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 800ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate.show .slidein_left, .animate.show .slidein_right {
  opacity: 1;
  transform: translateX(0);
}
.animate .slidein_top {
  opacity: 0;
  transform: translateY(-40px);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 800ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate .slidein_bottom {
  opacity: 0;
  transform: translateY(40px);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 800ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate.show .slidein_top, .animate.show .slidein_bottom {
  opacity: 1;
  transform: translateY(0);
}
.animate .zoomin {
  opacity: 0;
  transform: scale(1.5, 1.5);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 533.3333333333ms;
  transition-delay: 0ms;
}
.animate .zoomout {
  opacity: 0;
  transform: scale(0.5, 0.5);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 533.3333333333ms;
  transition-delay: 0ms;
}
.animate.show .zoomin, .animate.show .zoomout {
  opacity: 1;
  transform: scale(1, 1);
}
.animate .center_mask {
  clip-path: polygon(50% 0, 50% 0, 50% 100%, 50% 100%);
  transform-style: preserve-3d;
  transition-property: clip-path;
  transition-duration: 800ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate .left_mask {
  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  transform-style: preserve-3d;
  transition-property: clip-path;
  transition-duration: 800ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate.show .center_mask, .animate.show .left_mask {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.animate .d1 {
  transition-delay: 100ms;
}
.animate .d2 {
  transition-delay: 200ms;
}
.animate .d3 {
  transition-delay: 300ms;
}
.animate .d4 {
  transition-delay: 400ms;
}
.animate .d5 {
  transition-delay: 500ms;
}
.animate .d6 {
  transition-delay: 600ms;
}
.animate .d7 {
  transition-delay: 700ms;
}
.animate .d8 {
  transition-delay: 800ms;
}
.animate .d9 {
  transition-delay: 900ms;
}
.animate .d10 {
  transition-delay: 1000ms;
}
.animate .d11 {
  transition-delay: 1100ms;
}
.animate .d12 {
  transition-delay: 1200ms;
}
.animate .d13 {
  transition-delay: 1300ms;
}
.animate .d14 {
  transition-delay: 1400ms;
}
.animate .d15 {
  transition-delay: 1500ms;
}
.animate .d16 {
  transition-delay: 1600ms;
}
.animate .d17 {
  transition-delay: 1700ms;
}
.animate .d18 {
  transition-delay: 1800ms;
}
.animate .d19 {
  transition-delay: 1900ms;
}
.animate .d20 {
  transition-delay: 2000ms;
}

@media screen and (min-width: 1060px) {
  body #main header {
    padding: 0 40px;
    width: 100%;
    height: 400px;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
  }
  body #main header .hgroup {
    padding: 55px 200px 0 0;
    position: relative;
    z-index: 2;
    color: #ffffff;
  }
  body #main header .hgroup h1 {
    margin-bottom: 35px;
  }
  body #main header .hgroup h1 small, body #main header .hgroup h1 span {
    display: block;
    font-weight: 700;
  }
  body #main header .hgroup h1 small {
    margin-bottom: 15px;
    line-height: 20px;
    font-size: 14px;
    letter-spacing: 0.4em;
  }
  body #main header .hgroup h1 span {
    line-height: 60px;
    font-size: 42px;
    letter-spacing: 0.12em;
  }
  body #main header .hgroup dl {
    letter-spacing: 0.05em;
  }
  body #main header .hgroup dl dt {
    margin-bottom: 5px;
  }
  body #main header .hgroup dl dt small, body #main header .hgroup dl dt span {
    display: block;
    font-weight: 700;
  }
  body #main header .hgroup dl dt small {
    line-height: 20px;
    font-size: 12px;
  }
  body #main header .hgroup dl dt span {
    line-height: 25px;
    font-size: 18px;
  }
  body #main header .hgroup dl dd {
    line-height: 40px;
    font-size: 36px;
    font-weight: 400;
  }
  body #main header p.image {
    width: 560px;
    height: 400px;
    position: absolute;
    right: -84px;
    bottom: 0;
    z-index: 1;
  }
  body #main header picture.bg {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
  }
  body #main header picture.bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  body #main section.body .text_chushaku {
    padding-top: 30px;
  }
  body #main section.body .text_chushaku .text p .hd {
    position: absolute;
    left: 0;
  }
  body #main section.body .text_chushaku .text p.chushaku {
    color: #666;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0.05em;
    padding-left: 2.5em;
    position: relative;
  }
  body #main section.body .text_chushaku .text p.chushaku.nohd {
    padding-left: 0;
  }
  body #main section.body .text_chushaku .text p.chushaku + p.chushaku.nohd {
    margin-top: 5px;
  }
  body #main section.body .text_chushaku .text p.chushaku:has(.hd.sq) {
    padding-left: 1.5em;
  }
  body #main section.body .text_chushaku2 {
    width: 200%;
    padding-top: 30px;
  }
  body #main section.body .text_chushaku2 .text p .hd {
    position: absolute;
    left: 0;
  }
  body #main section.body .text_chushaku2 .text p.chushaku, body #main section.body .text_chushaku2 .text p.chushaku2 {
    color: #666;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0.05em;
    padding-left: 1.5em;
    position: relative;
  }
  body #main section.body .row {
    padding-top: 120px;
  }
  body #main section.body .row.img_right, body #main section.body .row.img_left {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: max(5.5555555556vw, 80px);
  }
  body #main section.body .row.img_right .col.text, body #main section.body .row.img_left .col.text {
    width: max(33.3333333333vw, 480px);
  }
  body #main section.body .row.img_right .col.image, body #main section.body .row.img_left .col.image {
    width: max(27.7777777778vw, 400px);
  }
  body #main section.body .row.text_center .col {
    margin: 0 auto;
    width: 640px;
  }
  body #main section.body .row .col {
    width: 100%;
  }
  body #main section.body .row .col.text h2 {
    margin-bottom: 30px;
    line-height: 60px;
    font-size: 30px;
    font-weight: 400;
  }
  body #main section.body .row .col.text p.text {
    line-height: 30px;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.02em;
  }
  body #main section.body .row .col.image p.image {
    width: 100%;
  }
  body #main section.other_contents {
    padding-top: 120px;
    border-bottom: 1px solid #E6E6E6;
  }
  body #main section.other_contents h3 {
    margin-bottom: 90px;
    text-align: center;
    line-height: 30px;
    font-size: 24px;
    font-weight: 400;
  }
  body #main section.other_contents ul.person_list {
    margin-bottom: 120px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
  }
  body #main section.other_contents ul.person_list li.detail_btn {
    width: 33.3333333333%;
  }
  body #main section.other_contents ul.person_list li.detail_btn:not(:last-child) a:after {
    border-right: 0;
  }
  body #main section.other_contents ul.person_list li.detail_btn a {
    padding: 30px 0 0 30px;
    height: 180px;
    width: 100%;
    display: block;
    position: relative;
    overflow: hidden;
    background: #ffffff;
    color: #ffffff;
  }
  body #main section.other_contents ul.person_list li.detail_btn a:after {
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    border: 1px solid #E6E6E6;
    box-sizing: border-box;
  }
  body #main section.other_contents ul.person_list li.detail_btn a .title {
    line-height: 23px;
    font-size: 16px;
    letter-spacing: 0.08em;
    font-weight: 700;
    position: relative;
    z-index: 3;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name {
    position: absolute;
    left: 30px;
    bottom: 20px;
    z-index: 3;
    letter-spacing: 0.05em;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dt {
    line-height: 20px;
    font-size: 13px;
    font-weight: 700;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dt small {
    margin-top: -15px;
    display: block;
    line-height: 15px;
    font-size: 10px;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dd {
    padding-right: 40px;
    display: inline-block;
    position: relative;
    line-height: 20px;
    font-size: 18px;
    font-weight: 400;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dd:after {
    content: "";
    width: 30px;
    height: 30px;
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 15px);
    background: url("../img/top/sp/icon_link_arrow.svg") no-repeat center center/contain;
  }
  body #main section.other_contents ul.person_list li.detail_btn a span.person {
    width: 100%;
    height: 100%;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 2;
    text-align: right;
    pointer-events: none;
  }
  body #main section.other_contents ul.person_list li.detail_btn a span.person img {
    width: auto;
    height: 100%;
    position: relative;
    right: -30px;
  }
}
@media screen and (min-width: 1060px) and (hover: hover) {
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dd:after {
    transform-style: preserve-3d;
    transition-property: transform;
    transition-duration: 300ms;
    transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
    transition-delay: 0ms;
  }
  body #main section.other_contents ul.person_list li.detail_btn a .bg_person > span {
    transform-style: preserve-3d;
    transition-property: transform, filter;
    transition-duration: 300ms;
    transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
    transition-delay: 0ms;
  }
  body #main section.other_contents ul.person_list li.detail_btn a:hover dl.name dd:after {
    transform: scale(1.15);
  }
  body #main section.other_contents ul.person_list li.detail_btn a:hover .bg_person > span {
    transform: scale(1.05);
    filter: brightness(0.6);
  }
}
@media screen and (min-width: 1060px) {
  body #main section.other_contents ul.person_list li.detail_btn a.current_page {
    opacity: 0.4;
    pointer-events: none;
  }
  body #main section.other_contents ul.person_list li.detail_btn a.current_page dl.name dd:after {
    display: none;
  }
  body #main section.other_contents p.go_home {
    padding-bottom: 120px;
  }
  body #main section.other_contents p.go_home a {
    margin: 0 auto;
    width: 320px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #333333;
    position: relative;
  }
  body #main section.other_contents p.go_home a span {
    display: inline-block;
    position: relative;
    z-index: 1;
    line-height: 20px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: #ffffff;
  }
  body #main section.other_contents p.go_home a:after {
    content: "";
    width: 0;
    height: 100%;
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 0;
    background: #000000;
  }
}
@media screen and (min-width: 1060px) and (hover: hover) {
  body #main section.other_contents p.go_home a span {
    transform-style: preserve-3d;
    transition-property: transform;
    transition-duration: 300ms;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transition-delay: 100ms;
  }
  body #main section.other_contents p.go_home a:after {
    transform-style: preserve-3d;
    transition-property: width;
    transition-duration: 300ms;
    transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
    transition-delay: 0ms;
  }
  body #main section.other_contents p.go_home a:hover span {
    transform: scale(1.1);
  }
  body #main section.other_contents p.go_home a:hover:after {
    width: 100%;
  }
}
@media screen and (max-width: 1059px) {
  body #main header {
    width: 100%;
    height: 360px;
    position: relative;
    overflow: hidden;
  }
  body #main header .hgroup {
    height: 100%;
    padding: 25px 0 0 0;
    position: relative;
    z-index: 1;
    color: #ffffff;
  }
  body #main header .hgroup h1 {
    margin-bottom: 90px;
  }
  body #main header .hgroup h1 small, body #main header .hgroup h1 span {
    display: block;
    font-weight: 700;
  }
  body #main header .hgroup h1 small {
    margin-bottom: 10px;
    line-height: 20px;
    font-size: 12px;
    letter-spacing: 0.2em;
  }
  body #main header .hgroup h1 span {
    line-height: 40px;
    font-size: 24px;
    letter-spacing: 0.12em;
  }
  body #main header .hgroup dl {
    letter-spacing: 0.05em;
    position: absolute;
    bottom: 60px;
  }
  body #main header .hgroup dl dt {
    margin-bottom: 10px;
  }
  body #main header .hgroup dl dt small, body #main header .hgroup dl dt span {
    display: block;
    font-weight: 700;
  }
  body #main header .hgroup dl dt small {
    line-height: 15px;
    font-size: 11px;
  }
  body #main header .hgroup dl dt span {
    line-height: 25px;
    font-size: 14px;
  }
  body #main header .hgroup dl dd {
    line-height: 30px;
    font-size: 24px;
    font-weight: 400;
  }
  body #main header p.image {
    width: 322px;
    height: 230px;
    position: absolute;
    right: -40px;
    bottom: 0;
    z-index: 1;
  }
  body #main header picture.bg {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
  }
  body #main header picture.bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  body #main section.body {
    padding-top: 60px;
    padding-bottom: 75px;
  }
  body #main section.body .text_chushaku {
    padding-top: 0;
  }
  body #main section.body .text_chushaku .text p.chushaku {
    color: #666;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0.05em;
    padding-left: 2.5em;
    position: relative;
  }
  body #main section.body .text_chushaku .text p.chushaku.nohd {
    padding-left: 0;
  }
  body #main section.body .text_chushaku .text p.chushaku + p.chushaku.nohd {
    margin-top: 5px;
  }
  body #main section.body .text_chushaku .text p.chushaku:has(.hd.sq) {
    padding-left: 1.5em;
  }
  body #main section.body .text_chushaku2 {
    padding-top: 30px;
  }
  body #main section.body .text_chushaku2 .text p.chushaku2 {
    color: #666;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0.05em;
    padding-left: 1.5em;
    position: relative;
  }
  body #main section.body .text_chushaku .text p .hd,
  body #main section.body .text_chushaku2 .text p .hd {
    position: absolute;
    left: 0;
  }
  body #main section.body .row .col {
    margin-bottom: 30px;
  }
  body #main section.body .row .col.text h2 {
    margin-bottom: 30px;
    line-height: 45px;
    font-size: 22px;
    font-weight: 400;
  }
  body #main section.body .row .col.text p.text {
    line-height: 30px;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.02em;
  }
  body #main section.body .row .col.image p.image {
    width: 100%;
  }
  body #main section.other_contents {
    border-bottom: 1px solid #E6E6E6;
  }
  body #main section.other_contents h3 {
    margin-bottom: 40px;
    line-height: 30px;
    font-size: 18px;
    font-weight: 500;
    text-align: center;
  }
  body #main section.other_contents ul.person_list li.detail_btn:not(:last-child) a:after {
    border-bottom: 0;
  }
  body #main section.other_contents ul.person_list li.detail_btn a {
    padding: 24px 0 0 20px;
    height: 210px;
    width: 100%;
    display: block;
    position: relative;
    overflow: hidden;
    background: #ffffff;
    color: #ffffff;
  }
  body #main section.other_contents ul.person_list li.detail_btn a:after {
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    border: 1px solid #E6E6E6;
    box-sizing: border-box;
  }
  body #main section.other_contents ul.person_list li.detail_btn a .title {
    line-height: 30px;
    font-size: 18px;
    letter-spacing: 0.12em;
    font-weight: 700;
    position: relative;
    z-index: 3;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name {
    position: absolute;
    left: 20px;
    bottom: 18px;
    z-index: 3;
    letter-spacing: 0.05em;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dt {
    margin-bottom: 5px;
    line-height: 20px;
    font-size: 14px;
    font-weight: 700;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dt small {
    margin-top: -15px;
    display: block;
    line-height: 15px;
    font-size: 10px;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dd {
    padding-right: 40px;
    display: inline-block;
    position: relative;
    line-height: 30px;
    font-size: 20px;
    font-weight: 400;
  }
  body #main section.other_contents ul.person_list li.detail_btn a dl.name dd:after {
    content: "";
    width: 30px;
    height: 30px;
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 15px);
    background: url("../img/top/sp/icon_link_arrow.svg") no-repeat center center/contain;
  }
  body #main section.other_contents ul.person_list li.detail_btn a span.person {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    right: -44px;
    bottom: 0;
    z-index: 2;
    text-align: right;
    pointer-events: none;
  }
  body #main section.other_contents ul.person_list li.detail_btn a span.person img {
    width: auto;
    height: 100%;
  }
  body #main section.other_contents ul.person_list li.detail_btn a.current_page {
    opacity: 0.4;
    pointer-events: none;
  }
  body #main section.other_contents ul.person_list li.detail_btn a.current_page dl.name dd:after {
    display: none;
  }
  body #main section.other_contents p.go_home {
    padding: 30px 0;
  }
  body #main section.other_contents p.go_home a {
    margin: 0 auto;
    width: 245px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #333333;
    position: relative;
  }
  body #main section.other_contents p.go_home a span {
    display: inline-block;
    position: relative;
    z-index: 1;
    line-height: 20px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: #ffffff;
  }
  body #main .chief section.body {
    padding-bottom: 0;
  }
}
body #main article section {
  font-feature-settings: normal;
}