@charset "UTF-8";

/*リンクホバー*/
.lv_link a{
  display: inline-block;
  text-decoration:none;
  background-image: linear-gradient(to right, rgba(39,48,76, 0.1) 50%, #27304c 50%);
  background-position: 0 0;
  background-size: 200% auto;
  transition: .3s;

}
.lv_link a:hover{
  background-position: -100% 0;
  color: #fff;
}


/* -- font
-------------------------------------------------------------------------------- */
@font-face {
    font-family: 'Gilroy';
    src: url('/kikin/150th/css/font/Gilroy-SemiBold.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Gilroy';
    src: url('/kikin/150th/css/font/Gilroy-Bold.woff2') format('woff2');
    font-weight: bold;
    font-style: normal;
}
@font-face {
    font-family: 'BebasNeue';
    src: url('/kikin/150th/css/font/BebasNeue-Regular.woff') format('woff2');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'BebasNeue';
    src: url('/kikin/150th/css/font/BebasNeue-Regular.woff') format('woff2');
    font-weight: bold;
    font-style: normal;
}


/* -- Base and Reset
-------------------------------------------------------------------------------- */
html {
    font-size: 62.5%;
	width: 100%;
}
body {
	font: 1rem/1.5 'Gilroy', 'Noto Sans JP', '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック体', YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, メイリオ, sans-serif;
	text-align: left;
    font-feature-settings: 'palt';
    color: #1a1a1a;
	width: 100%;
}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td {
	margin: 0;
	padding: 0;
}
caption,th,td {
	font-weight: normal;
	text-align: left;
}
input,textarea,select {
	font-family: 'Gilroy', 'Noto Sans JP', '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック体', YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, メイリオ, sans-serif;
	vertical-align: middle;
}
textarea {
	resize: vertical;
}
h1,h2,h3,h4,h5,h6 { font-size: 100%; }
ul,ol { list-style: none; }
fieldset,img { border: 0; vertical-align: top; }
iframe {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
input{
    color:#333;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
}
label{
    -webkit-tap-highlight-color:rgba(0,0,0,0);
}
a{
    text-decoration:none;
    color:inherit;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
}
a:focus{
    outline:none;
}
select::-ms-expand {
    display: none;
}
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
    -webkit-touch-callout;
    min-width: 1024px;
}
.sp-br,
.sp-br-600{
    display: none;
}
@media (max-width: 1400px){
    html {
        font-size: 56.25%;
    }
}
@media (max-width: 1024px){
    html {
        font-size: 62.5%;
    }
}
@media (max-width: 767px){
    html {
        font-size: 56.25%;
    }
    body {
        min-width: auto;
    }
    .sp-br{
        display: block;
    }
}
@media (max-width: 600px){
    .sp-br-600{
        display: block;
    }
}
@media (max-width: 430px){
    html {
        font-size: 2.093023vw;
    }
}


/* -- ex-link
-------------------------------------------------------------------------------- */
.ex-link::after{
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 1.2rem;
    height: 1.2rem;
    background: url(/kikin/150th/img/ico_exlink.svg) no-repeat;
    background-size: cover;
    transform: translateY(-1px);
    margin-left: 0.3em;
    margin-right: 0.3em;
    transition: background 0.1s ease;
}
.ex-link.wh::after{
    background-image: url(/kikin/150th/img/ico_exlink_wh.svg);
}
@media (min-width: 1025px) {
    .ex-link:not(.wh):hover::after {
        background-image: url(/kikin/150th/img/ico_exlink_hover.svg);
    }
}


/* -- link-btn
-------------------------------------------------------------------------------- */
.link-btn{
    display: flex;
    justify-content: center;
    margin-top: 6rem;
}
.link-btn:first-child{
    margin-top: 0;
}
.link-btn.right{
    justify-content: flex-end;
}
.link-btn a{
    display: block;
    font-size: 1.6rem;
    letter-spacing: 0.15em;
    font-weight: bold;
    line-height: 1.5;
    padding: 2rem 3.2rem;
    background: #eaacb1;
    background-image: linear-gradient(135deg, #27304c 25%, #eaacb1 50%, #27304c 75%);
    background-size: 300%;
    background-position: 100% 0;
    color: #fff;
    border-radius: 1.2rem;
    transition: background 0.4s ease;
}
.link-btn .ex-link::after{
    margin-left: 0.8rem;
}
.link-btn2{
    display: flex;
    justify-content: center;
    margin-top: 6rem;
}
.link-btn2 a{
    display: block;
    font-size: 1.6rem;
    letter-spacing: 0.15em;
    font-weight: bold;
    line-height: 1.5;
    padding: 2rem 3.2rem;
    background: #eaacb1;
    background-image: linear-gradient(135deg, #ff8a00 25%, #eae5ac 50%, #ff8a00 75%);
    background-size: 300%;
    background-position: 100% 0;
    color: #fff;
    border-radius: 1.2rem;
    transition: background 0.4s ease;
}
.link-btn2 .ex-link::after{
    margin-left: 0.8rem;
}
@media (min-width: 1025px){
    .link-btn a:hover{
        background-position: 0 0;
    }
    .link-btn2 a:hover{
        background-position: 0 0;
    }

}
@media (max-width: 767px){
    .link-btn a{
        border-radius: 0.8rem;
        padding: 1.6rem 2.4rem;
        background-image: linear-gradient(135deg, #27304c 20%, #eaacb1 45%, #27304c 75%);
    }
    .link-btn2{
        margin-top: 4rem;
    }
    .link-btn2 a{
        border-radius: 0.8rem;
        padding: 1.6rem 2.4rem;
        background-image: linear-gradient(135deg, #ff8a00 20%, #eae5ac 45%, #ff8a00 75%);
    }

}


/* -- header
-------------------------------------------------------------------------------- */
header{
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    transition: 0.2s ease;
    min-width: 1024px;
}
header.fix{
    box-shadow: 0 0 0.6rem rgba(0,0,0,0.2);
}
.sp-nav.active + header.fix {
    box-shadow: none;
}
header .header-inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.5rem 0 3%;
    height: 9rem;
    background: #fff;
}
.loaded header .header-inner{
    transition: background 0.2s ease;
}
header.bg:not(.fix) .header-inner{
    background: #f5f4f3;
}
header .logo{
    height: 2.8rem;
}
header .logo img{
    height: 100%;
}
header .header-nav{
    display: flex;
    align-items: center;
}
header .nav-btn{
    display: block;
    width: 12rem;
    height: 9rem;
    position: relative;
    display: none;
}
header .nav-btn span{
    display: block;
    width: 3.2rem;
    border-top: solid 2px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%);
    margin-left: -1.6rem;
}
header .nav-btn span.bar-1{
    margin-top: -7px;
}
header .nav-btn span.bar-3{
    margin-top: 7px;
}
header .nav-btn.active span.bar-1{
    margin-top: 0;
    transform: rotate(45deg);
}
header .nav-btn.active span.bar-2{
    opacity: 0;
}
header .nav-btn.active span.bar-3{
    margin-top: 0;
    transform: rotate(-45deg);
}
header .contact-btn a{
    font-size: 1.4rem;
}
@media (max-width: 1024px){
    .sp-nav.active + header.bg:not(.fix) .header-inner{
        background: #fff;
    }
    header .header-nav nav{
        display: none;
    }
    header .nav-btn{
        display: block;
    }
    header .header-inner {
        padding: 0 0 0 4%;
    }
}
@media (max-width: 767px){
    header{
        min-width: auto;
    }
    header .logo {
        height: 2.4rem;
    }
    header .header-inner {
        height: 8rem;
        padding: 0 0 0 5%;
    }
    header .nav-btn{
        width: 8rem;
        height: 7rem;
    }
    header .nav-btn span {
        width: 2.8rem;
        margin-left: -1.4rem;
    }
    header .nav-btn span.bar-1{
        margin-top: -6px;
    }
    header .nav-btn span.bar-3{
        margin-top: 6px;
    }
    header .contact-btn a{
        font-size: 1.2rem;
        padding: 1.2rem 1.6rem;
    }
}


/* -- sp-nav
-------------------------------------------------------------------------------- */
.sp-nav{
    width: 100%;
    height: calc(100% - 9rem);
    background: #fff;
    position: fixed;
    top: 9rem;
    left: 0;
    z-index: 1000;
    overflow: hidden;
    transition: 0.3s ease;
    transform: translateY(calc(-100% - 9rem));
    opacity: 0;
    visibility: hidden;
}
.sp-nav.active{
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}
.sp-nav nav {
    width: 100%;
    min-width: 1024px;
    height: 100%;
    overflow: scroll;
}
.sp-nav nav .nav-inner{
    width: 100%;
    padding: 8rem 8% 16rem;
    box-sizing: border-box;
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.sp-nav.active nav .nav-inner{
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.3s;
}
.sp-nav nav .main {
    display: block;
    width: 100%;
}
.sp-nav nav .main li{
    display: block;
    height: auto;
    font-size: 2.8rem;
    line-height: 1.5;
}
.sp-nav nav .main li + li{
    margin-left: 0;
    margin-top: 3.2rem;
    padding-top: 3.2rem;
    border-top: solid 1px rgba(0,0,0,0.15);
}
.sp-nav nav .main li ul{
    margin-top: 2rem;
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    flex-wrap: wrap;
    opacity: 1;
    transform: translateY(0);
}
.sp-nav nav .main li ul li{
    font-size: 1.6rem;
    line-height: 1.75;
    width: 50%;
    margin-top: 0.8rem;
    padding-top: 0;
}
.sp-nav nav .main li ul li + li{
    border: none;
}
.sp-nav nav .main li ul li a{
    display: flex;
    align-items: center;
}
.sp-nav nav .main li ul li a::before{
    content: "";
    display: inline-block;
    width: 1.4rem;
    height: 1.4rem;
    background: url(/kikin/150th/img/ico_arrow.svg) no-repeat center;
    background-size: cover;
    transform: translateY(-1px);
    margin-right: 2rem;
}
.sp-nav nav .main li ul li a.active::before{
    background-image: url(/kikin/150th/img/ico_arrow_hover.svg);
}
.sp-nav nav .sub{
    margin-top: 8rem;
}
.sp-nav nav .sub li{
    height: auto;
}
.sp-nav nav li .ttl{
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    margin-top: 2rem;
}
.sp-nav nav li .ttl::before{
    content: "●";
    color: #eaacb1;
    margin-right: 0.333333em;
}
.sp-nav nav li .ttl + ul{
    margin-top: 0.8rem;
}
.sp-nav nav li ul + .ttl{
    margin-top: 3.2rem;
}
@media (min-width: 1025px){
    .sp-nav{
        display: none;
    }
}
@media (max-width: 767px){
    .sp-nav {
        height: calc(100% - 8rem);
        top: 8rem;
    }
    .sp-nav nav {
        min-width: auto;
    }
    .sp-nav nav .nav-inner {
        padding: 4rem 5% 6rem;
        display: block;
        height: auto;
    }
    .sp-nav nav .main li {
        font-size: 2rem;
    }
    .sp-nav nav .main li + li {
        margin-top: 2.4rem;
        padding-top: 2.4rem;
    }
    .sp-nav nav .main li ul {
        display: block;
        padding: 0;
    }
    .sp-nav nav .main li ul li {
        font-size: 1.4rem;
        width: 100%;
        margin-top: 0.8rem;
    }
    .sp-nav nav .main li ul li a::before {
        width: 1.2rem;
        height: 1.2rem;
        margin-right: 1.2rem;
    }
    .sp-nav nav .sub {
        margin-top: 6rem;
    }
    .sp-nav nav .sub {
        display: block;
    }
    .sp-nav nav .sub li + li {
        margin-left: 0;
        margin-top: 0.8rem;
    }
    .sp-nav nav li .ttl{
        font-size: 1.4rem;
    }
    .sp-nav nav li .ttl + ul{
        margin-top: 1.2rem;
    }
    .sp-nav nav li ul + .ttl {
        margin-top: 2.4rem;
    }
}


/* -- contact
-------------------------------------------------------------------------------- */
.contact{
    width: 100%;
    min-width: 1024px;
    height: 100%;
    background: rgba(0,0,0,0.6);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    transition: 0.3s ease;
}
.contact.active{
    opacity: 1;
    visibility: visible;
}
.contact .contact-inner{
    max-width: 70rem;
    box-sizing: border-box;
    height: 100%;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    right: 0;
    transform: translateX(100%);
    transition: transform 0.3s ease;
    overflow: hidden;
}
.contact.active .contact-inner{
    transform: translateX(0);
}
.contact .contact-inner::before{
    content: "";
    display: block;
    width: 16rem;
    height: 16rem;
    border: solid 6rem #eaacb1;
    border-radius: 100%;
    position: absolute;
    top: -18rem;
    left: -10rem;
}
.contact .contact-inner::after{
    content: "";
    display: block;
    width: 32rem;
    height: 32rem;
    border: solid 10rem #27304c;
    border-radius: 100%;
    position: absolute;
    bottom: -30rem;
    right: -14rem;
}
.contact .close-btn{
    width: 9rem;
    height: 9rem;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    right: 0;
}
.contact .close-btn::before,
.contact .close-btn::after{
    content: "";
    display: block;
    width: 3.2rem;
    border-top: solid 2px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -1.6rem;
    transition: border 0.1s ease;
}
.contact .close-btn::before{
    transform: rotate(45deg);
}
.contact .close-btn::after{
    transform: rotate(-45deg);
}
@media (min-width: 1025px){
    .contact .close-btn:hover::before,
    .contact .close-btn:hover::after{
        border-color: #eaacb1;
    }
}
.contact .contact-box{
    padding: 0 10rem;
    position: relative;
    z-index: 1;
}
.contact .ttl{
    font-size: 2.8rem;
    letter-spacing: 0.15em;
    line-height: 1.5;
    margin-bottom: 2rem;
}
.contact .contact-body{
    margin-top: 4.8rem;
    border: solid 1px;
    padding: 3.2rem 4rem;
    border-radius: 2rem;
    background: #fff;
}
.contact .sub-ttl{
    font-size: 1.8rem;
    letter-spacing: 0.15em;
    line-height: 1.5;
    margin-bottom: 0.8rem;
}
.contact .lead{
    font-size: 1.6rem;
    letter-spacing: 0.1em;
}
.contact .list{
    font-size: 1.6rem;
    letter-spacing: 0.1em;
}
.contact .list .mail{
    margin-top: 1.2rem;
}
.contact .list a{
    color: #27304c;
    text-decoration: underline;
}
@media (min-width: 1025px){
    .contact .list a:hover{
        color: #eaacb1;
    }
}
@media (max-width: 767px){
    .contact{
        min-width: auto;
    }
    .contact .contact-inner{
        max-width: none;
    }
    .contact .contact-box {
        padding: 0 5%;
    }
    .contact .contact-body {
        padding: 2.4rem 2.8rem;
        border-radius: 1.2rem;
        margin-top: 4rem;
    }
    .contact .ttl {
        font-size: 2.4rem;
    }
    .contact .list {
        font-size: 1.4rem;
    }
    .contact .close-btn {
        width: 8rem;
        height: 8rem;
    }
    .contact .close-btn::before, 
    .contact .close-btn::after {
        width: 2.8rem;
        margin-left: -1.4rem;
    }
}


/* -- nav
-------------------------------------------------------------------------------- */
nav ul{
    display: flex;
}
nav li{
    height: 9rem;
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: 0.1em;
    position: relative;
    display: flex;
    align-items: center;
}
nav li + li{
    margin-left: 3.2rem;
}
nav li a{
    transition: color 0.1s ease;
}
nav li a[target="_blank"]{
    padding-right: 1.8rem;
    position: relative;
}
nav li a[target="_blank"]::after{
    content: "";
    display: block;
    width: 1.2rem;
    height: 1.2rem;
    background: url(/kikin/150th/img/ico_exlink.svg) no-repeat;
    background-size: cover;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    margin-top: -1px;
    transition: background 0.1s ease;
}
nav li a.active{
    color: #eaacb1;
}
@media (max-width: 1600px){
    nav > ul > li:nth-child(8){
        display: none;
    }
    .hovar-nav-btn-inner li:nth-child(4){
        display: block!important;
    }
}
@media (max-width: 1260px){
    nav li:nth-child(7){
        display: none;
    }
    .hovar-nav-btn-inner li:nth-child(3){
        display: block!important;
    }
}
@media (max-width: 1110px){
    nav li:nth-child(6){
        display: none;
    }
    .hovar-nav-btn-inner li:nth-child(2){
        display: block!important;
    }
}
@media (min-width: 1025px){
    nav li a:hover{
        color: #eaacb1;
    }
    nav li a[target="_blank"]:hover::after{
        background-image: url(/kikin/150th/img/ico_exlink_hover.svg);
    }
}
.hover-nav{
    position: absolute;
    top: calc(9rem - 1.6rem);
    left: -3.2rem;
    display: block;
    background: #27304c;
    color: #fff;
    padding: 2.8rem 3.2rem;
    border-radius: 1.2rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}
.hover-nav li{
    height: auto;
}
.hover-nav li + li{
    margin-left: 0;
    margin-top: 1.2rem;
}
.hover-nav li.border{
    border-top: solid 1px rgba(255,255,255,0.15);
    padding-top: 2.4rem;
    margin-top: 2rem;
}
.hover-nav li a{
    width: 100%;
    white-space: nowrap;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.hover-nav li a svg{
    width: 1.4rem;
    height: 1.4rem;
    fill: #fff;
    transform: translateY(-1px);
    margin-left: 3.2rem;
    transition: fill 0.1s ease;
}
.hover-nav li a.active svg{
    fill: #eaacb1;
}
@media (min-width: 1025px){
    li:hover .hover-nav{
        opacity: 1;
        visibility: visible;
    }
    .hover-nav li a:hover svg{
        fill: #eaacb1;
    }
}
.contact-btn{
    margin-top: 0;
    margin-left: 3.2rem;
}
@media (max-width: 1600px){
    .contact-btn{
        margin-left: 0;
    }
}
.contact-btn a{
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    padding-left: 2.4rem;
    padding-right: 2.4rem;
}
.hovar-nav-btn-wrap{
    display: block;
    margin: 0 2rem 0 1.6rem;
    cursor: pointer;
    position: relative;
    display: none;
}
@media (max-width: 1600px){
    .hovar-nav-btn-wrap{
        display: block;
    }
}
@media (max-width: 1024px){
    .hovar-nav-btn-wrap{
        display: none;
    }
}
.hovar-nav-btn{
    display: block;
    width: 4rem;
    height: 4rem;
    position: relative;
}
.hovar-nav-btn span{
    display: block;
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 100%;
    background: #1a1a1a;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -0.2rem;
    margin-left: -0.2rem;
}
.hovar-nav-btn span.bar-1{
    transform: translateY(-0.8rem);
}
.hovar-nav-btn span.bar-3{
    transform: translateY(0.8rem);
}
.hovar-nav-btn-inner{
    position: absolute;
    right: 0;
    padding-top: 0.8rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.1s ease, visibility 0.1s ease;
}
.hovar-nav-btn-wrap:hover .hovar-nav-btn-inner{
    opacity: 1;
    visibility: visible;
}
.hovar-nav-btn-inner ul{
    white-space: nowrap;
    display: block;
    border-radius: 1.2rem;
    overflow: hidden;
    position: relative;
    box-shadow: 0 8px 16px rgba(0,0,0,0.15);
}
.hovar-nav-btn-inner li{
    border-bottom: solid 1px #e0e0e0;
}
.hovar-nav-btn-inner li{
    display: none;
}
.hovar-nav-btn-inner li:last-child{
    border-bottom: 0;
}
.hovar-nav-btn-inner li + li {
    margin-left: 0;
}
.hovar-nav-btn-inner li a{
    display: block;
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: 0.1em;
    background: #fff;
    padding: 2rem 2.4rem;
    transition: color 0.1s ease;
}
.hovar-nav-btn-inner li a[target="_blank"]{
    position: relative;
}
.hovar-nav-btn-inner li a[target="_blank"]::after{
    content: "";
    display: block;
    width: 1.4rem;
    height: 1.4rem;
    background: url(/kikin/150th/img/ico_exlink.svg) no-repeat;
    background-size: cover;
    position: absolute;
    top: 50%;
    right: 2.4rem;
    transform: translateY(-50%);
    transition: background 0.1s ease;
}
@media (min-width: 1025px){
    .hovar-nav-btn-inner li a:hover{
        color: #eaacb1;
    }
    .hovar-nav-btn-inner li a[target="_blank"]:hover::after{
        background-image: url(/kikin/150th/img/ico_exlink_hover.svg);
    }
}
.hovar-nav-btn-inner li a.active{
    color: #eaacb1;
}
@media (max-width: 1024px){
    .contact-btn{
        margin-left: 0;
    }
}
@media (max-width: 767px){
    .contact-btn a {
        font-size: 1.4rem;
    }
    .contact-btn a span{
        display: none;
    }
}


/* -- footer
-------------------------------------------------------------------------------- */
footer{
    background: #27304c;
    color: #fff;
    padding: 8rem 8%;
}
footer .footer-inner{
    max-width: 100rem;
    margin-left: auto;
    margin-right: auto;
}
footer .logo{
    text-align: center;
    margin-top: 8rem;
}
footer .logo img{
    height: 2.2rem;
}
footer ul{
    display: flex;
    justify-content: center;
}
footer li{
    font-size: 1.4rem;
    letter-spacing: 0.1em;
    font-weight: bold;
}
footer li + li{
    margin-left: 2rem;
    padding-left: 2rem;
    border-left: solid 1px rgba(255,255,255,0.1);
}
footer li a{
    transition: color 0.1s ease;
}
footer li a.ex-link::after{
    transition: background 0.1s ease;
}
@media (min-width: 1025px){
    footer li a:hover{
        color: #eaacb1;
    }
    footer li a.ex-link:hover::after{
        background-image: url(/kikin/150th/img/ico_exlink_hover.svg);
    }
}
footer .copyright{
    text-align: center;
    letter-spacing: 0.1em;
    margin-top: 2.4rem;
    padding-top: 2rem;
    border-top: solid 1px rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.5);
}
@media (max-width: 767px){
    footer {
        padding: 6rem 5% 8rem;
    }
    footer ul{
        flex-direction: column;
        align-items: center;
    }
    footer li + li {
        margin-left: 0;
        padding-left: 0;
        border-left: none;
        margin-top: 1.2rem;
    }
}


/* -- main
-------------------------------------------------------------------------------- */
main{
    display: block;
    padding-top: 9rem;
}
main.home{
    padding-top: 0;
}
@media (min-width: 1025px){
}
@media (max-width: 767px){
    main{
        padding-top: 8rem;
    }
}


/* -- section
-------------------------------------------------------------------------------- */
section{
    padding: 8rem 8%;
}
section .section-inner{
    max-width: 100rem;
    margin-left: auto;
    margin-right: auto;
}
section .section-ttl{
    font-size: 3.2rem;
    line-height: 1.5;
    letter-spacing: 0.15em;
    margin-bottom: 4.8rem;
}
.section-ttl .sub{
    display: block;
    font-size: 2.4rem;
    letter-spacing: 0.15em;
}
section .section-sub-ttl{
    font-size: 2.4rem;
    line-height: 1.5;
    letter-spacing: 0.15em;
    position: relative;
    padding-left: 1.2em;
}
section .section-sub-ttl::before{
    content: "";
    display: block;
    width: 0.8em;
    height: 0.8em;
    border-radius: 100%;
    background: #eaacb1;
    position: absolute;
    top: 0.3em;
    left: 0;
}
section .section-sub-ttl + p{
    margin-top: 1.6rem;
}
section p{
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    line-height: 1.9;
    text-align: justify;
}
section p.txt-indent{
    padding-left: 1.1em;
    text-indent: -1.1em;
}
section p + .link-btn {
    justify-content: flex-start;
    margin-top: 3.2rem;
}
section p a{
    color: #27304c;
    text-decoration: underline;
}
section p a.ex-link::after {
    margin-left: 0.2em;
    margin-right: 0.2em;
}
@media (min-width: 1025px){
    section p a:hover{
        color: #eaacb1;
    }
    section p a.ex-link:hover::after {
        background-image: url(/kikin/150th/img/ico_exlink_hover.svg);
    }
}
section .note{
    margin-top: 4rem;
}
section .note li{
    font-size: 1.4rem;
    line-height: 1.755;
    letter-spacing: 0.1em;
}
section figure{
    display: block;
    margin: 0;
    overflow: hidden;
    border-radius: 2rem;
    position: relative;
    z-index: 1;
}
section figure + figure{
    margin-top: 2.4rem;
}
section figure.min{
    width: 12rem!important;
    height: 12rem;
    margin: 0;
    border-radius: 100%;
    border: solid 0.4rem #fff;
    position: absolute;
    top: -2.4rem;
    right: -2.4rem;
}
section figure.min img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
section figure img{
    width: 100%;
}
section .caption{
    font-size: 1.2rem;
    letter-spacing: 0.1em;
    line-height: 1.75;
    color: #666;
    margin-top: 1.6rem;
}
section table{
    width: 100%;
    border-collapse: collapse;
    border-top: solid 1px;
    border-bottom: solid 1px;
}
section p + table{
    margin-top: 6rem;
}
section table th,
section table td{
    border-top: solid 1px rgba(0,0,0,0.15);
    padding: 2.4rem 1.6rem;
    font-size: 1.6rem;
    letter-spacing: 0.1em;
}
section table p{
    line-height: 1.75;
}
section table li{
    padding-left: 1em;
    text-indent: -1em;
}
section table li + li{
    margin-top: 0.4rem;
}
section table ul + .note {
    font-size: 1.4rem;
    line-height: 1.75;
    letter-spacing: 0.1em;
    margin-top: 1.6rem;
}
section table .note li {
    padding-left: 0;
    text-indent: 0;
}
section table tr:first-child th,
section table tr:first-child td{
    border-top: none;
}
section table th{
    font-weight: bold;
    line-height: 1.5;
    padding-top: 1.2rem;
    padding-bottom: 1.2rem;
}
section table .note{
    margin-top: 0;
}
section table .fs-l{
    font-size: 2.4rem;
    line-height: 0;
}
section table .ta-l{
    text-align: justify;
}
section table .ta-c{
    text-align: center!important;
}
section table .fw-b{
    font-weight: bold;
}
section table sup{
    font-size: 1rem;
    line-height: 0;
    font-weight: normal;
}
section .bg-block{
    margin-top: 12rem;
}
section .bg-box{
    background: #f5f4f3;
    padding: 8rem 8rem;
    max-width: 100rem;
    margin-left: auto;
    margin-right: auto;
    border-radius: 4rem;
}
section .bg-box + .bg-box{
    margin-top: 2.4rem;
}
@media (min-width: 1025px){
}
@media (max-width: 767px){
    section {
        padding: 4rem 5%;
    }
    section .section-ttl {
        font-size: 2.6rem;
        margin-bottom: 2.4rem;
    }
    section .section-sub-ttl {
        font-size: 2rem;
    }
    .section-ttl .sub {
        font-size: 1.8rem;
        margin-top: 0.4rem;
    }
    section table th, 
    section table td{
        font-size: 1.4rem;
        line-height: 1.5;
        padding: 2rem 0;
    }
    section table th{
        min-width: 5em;
        vertical-align: top;
        padding-right: 2.4rem;
    }
    section table p {
        font-size: 1.4rem;
    }
    section .note li {
        font-size: 1.2rem;
    }
    section .bg-box{
        padding: 3.2rem;
        border-radius: 2rem;
    }
    section figure {
    }
    section figure.min {
        top: -1.6rem;
        right: -1.2rem;
    }
    section .note {
        margin-top: 2rem;
    }
    section .caption {
    }
    section .bg-block {
        margin-top: 6rem;
    }
}


/* -- main-visual
-------------------------------------------------------------------------------- */
.main-visual{
    width: 100%;
    padding: 9rem 0 0;
    box-sizing: border-box;
}
header.bg + main .main-visual{
    background: #f5f4f3;
}
.main-visual .main-visual-inner{
    padding: 8vw 12% 4rem 8%;
    position: relative;
}
.main-visual .main{
    display: flex;
    align-items: center;
}
.main-visual .logo-150th{
    width: 18rem;
    margin-right: 4rem;
}
.main-visual .ttl span{
    display: block;
}
.main-visual .ttl .jp{
    font-size: 4.4rem;
    line-height: 1.5;
    letter-spacing: 0.15em;
    white-space: nowrap;
}
.main-visual .ttl .en{
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: 0.1em;
    padding-left: 0.2em;
    margin-top: 0.4rem;
}
.main-visual .sub{
    display: flex;
    justify-content: flex-end;
    margin-top: 6vw;
    padding-right: 0;
}
.main-visual .sub-ttl{
    font-size: 2.4rem;
    letter-spacing: 0.2em;
    line-height: 1.5;
    position: relative;
}
.main-visual .sub-ttl::before{
    content: "";
    display: block;
    width: 8rem;
    border-top: solid 1px;
    position: absolute;
    left: -9.2rem;
    top: calc(0.5em * 1.5 - 1px);
}
.main-visual .scroll-down{
    display: block;
    width: 9rem;
    height: 9rem;
    background: #273047;
    border-radius: 100%;
    position: absolute;
    bottom: 0;
    left: calc(8% + 21.2rem);
    z-index: 1;
    transform: translateY(50%);
    animation : upDown 3s linear infinite;
    transition: background 0.15s ease;
    display: none;
}
@media (min-width: 1025px){
    .main-visual .scroll-down:hover{
        background: #eaacb1;
    }
}
@keyframes upDown{
    0% { bottom: 1rem }
    25% { bottom: 0 }
    50% { bottom: -1rem }
    75% { bottom: 0 }
    100% { bottom: 1rem }
}
.main-visual .scroll-down::before{
    content: "";
    display: block;
    width: 1.6rem;
    height: 1.6rem;
    background: url(/kikin/150th/img/ico_arrow_wh.svg) no-repeat center;
    background-size: cover;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%) rotate(90deg);
}
.main-visual .img-wrap{
    width: 100%;
    overflow: hidden;
}
.main-visual .img-wrap .img-wrap-inner{
    display: flex;
    animation : scrollleft 40s linear infinite;
}
@keyframes scrollleft{
    0% { transform: translateX(0)}
    100% { transform: translateX(-160vw)}
}
@keyframes scrollleft_tab{
    0% { transform: translateX(0)}
    100% { transform: translateX(-280vw)}
}
@keyframes scrollleft_sp{
    0% { transform: translateX(0)}
    100% { transform: translateX(-360vw)}
}
.main-visual .img-wrap ul{
    width: 160vw;
    display: flex;
}
.main-visual .img-wrap ul li{
    width: 40vw;
    height: 32vw;
}
.main-visual .img-wrap ul li img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.main-visual .pop-up{
    display: block;
    font-size: 1.5rem;
    letter-spacing: 0.2em;
    font-weight: bold;
    line-height: 1.5;
    width: 7.2rem;
    box-sizing: border-box;
    padding-top: 3.2rem;
    padding-bottom: 10rem;
    display: flex;
    justify-content: center;
    box-sizing: border-box;
    background: #273047;
    color: #fff;
    border-radius: 1.2rem 0 0 0;
    transition: background 0.15s ease, transform 0.3s ease 0.3s;
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 10;
}
.main-visual .pop-up.hide{
    transform: translateX(100%);
    transition-delay: 0s;
}
.main-visual .pop-up::after {
    content: "";
    display: block;
    transform: translateY(0);
    margin-left: 0;
    width: 3.2rem;
    height: 3.2rem;
    background: url(/kikin/150th/img/ico_donation.svg) no-repeat center;
    background-size: cover;
    position: absolute;
    bottom: 3.2rem;
    left: calc(50% + 1px);
    transform: translateX(-50%);
}
.main-visual .pop-up span{
    display: block;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}
.main-visual .movie{
    display: block;
    position: absolute;
    left: 8%;
    bottom: 0;
    transform: translateY(50%);
    z-index: 1;
}
.main-visual .movie::before{
    content: "";
    display: block;
    width: 1.2rem;
    height: 1.2rem;
    background: url(/kikin/150th/img/ico_exlink.svg) no-repeat center;
    background-size: cover;
    position: absolute;
    right: 1.6rem;
    bottom: 1.6rem;
    transition: background 0.15s ease;
}
.main-visual .movie .movie-inner{
    background: #fff;
    display: flex;
    align-items: center;
    padding: 2rem 4rem 2rem 2rem;
    border-radius: 1.2rem;
    box-shadow: 0 0.6rem 1.2rem rgba(0, 0, 0, 0.2);
}
.main-visual .movie .movie-item{
    width: calc(8rem * 1.777777);
    height: 8rem;
    background: #f5f5f5;
    border-radius: 0.4rem;
    overflow: hidden;
    position: relative;
    transition: opacity 0.15s ease;
}
.main-visual .movie .movie-item iframe{
    width: 100%;
    height: 100%;
}
.main-visual .movie .movie-ttl{
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 0.15em;
    padding-left: 2.4rem;
    line-height: 1.5;
    transition: color 0.15s ease;
}
@media (min-width: 1025px){
    .main-visual .movie:hover::before{
        background-image: url(/kikin/150th/img/ico_exlink_hover.svg);
    }
    .main-visual .movie:hover .movie-item{
        opacity: 0.7;
    }
    .main-visual .movie:hover .movie-ttl{
        color: #eaacb1;
    }
}
@media (min-width: 1025px){
    .main-visual .pop-up:hover {
        background: #eaacb1;
    }
}
@media (max-width: 1024px){
    .main-visual{
        padding-top: 8rem;
    }
    .main-visual .main-visual-inner {
        padding: 16rem 4% 3.2rem;
    }
    .main-visual .sub {
        margin-top: 12rem;
    }
    .main-visual .img-wrap .img-wrap-inner{
        animation : scrollleft_tab 40s linear infinite;
    }
    .main-visual .img-wrap ul{
        width: 280vw;
    }
    .main-visual .img-wrap ul li{
        width: 70vw;
        height: 56vw;
    }
    .main-visual .scroll-down {
        left: calc(4% + 21.2rem);
    }
    .main-visual .movie {
        left: 4%;
    }
}
@media (max-width: 767px){
    .main-visual .main-visual-inner {
        padding: 18rem 5% 10rem
    }
    .main-visual .main {
        display: block;
    }
    .main-visual .sub {
        margin-top: 6rem;
    }
    .main-visual .logo-150th {
        width: 12.8rem;
        margin-bottom: 1.6rem;
    }
    .main-visual .ttl .jp{
        font-size: 2.8rem;
        white-space: nowrap;
    }
    .main-visual .ttl .en{
        font-size: 1.4rem;
        padding-left: 0.1em;
        white-space: nowrap;
    }
    .main-visual .sub{
        display: block;
        position: absolute;
        top: 2rem;
        right: 10%;
        writing-mode: vertical-rl;
        padding-right: 0;
        margin-top: 0;
    }
    .main-visual .sub-ttl{
        font-size: 1.8rem;
        white-space: nowrap;
        text-indent: -0.6em;
    }
    .main-visual .sub-ttl::before{
        display: none;
    }
    .main-visual .img-wrap .img-wrap-inner{
        animation : scrollleft_sp 40s linear infinite;
    }
    .main-visual .img-wrap ul{
        width: 360vw;
    }
    .main-visual .img-wrap ul li{
        width: 90vw;
        height: 72vw;
    }
    .main-visual .scroll-down {
        width: 6rem;
        height: 6rem;
        left: auto;
        right: 5%;
    }
    .main-visual .scroll-down::before {
        width: 1.2rem;
        height: 1.2rem;
    }
    .main-visual .pop-up{
        font-size: 1.2rem;
        width: 6rem;
        padding-top: 2.4rem;
        padding-bottom: 7rem;
        transition-delay: 0s;
    }
    .main-visual .pop-up::after {
        width: 2.4rem;
        height: 2.4rem;
        bottom: 2.4rem;
    }
    .main-visual .movie {
        left: auto;
        left: 5%;
    }
    .main-visual .movie .movie-item {
        width: calc(5.6rem * 1.777777);
        height: 5.6rem;
    }
}


/* -- about
-------------------------------------------------------------------------------- */
section.about{
    padding-top: 16rem;
}
.about .section-inner,
.interview .section-inner{
    display: flex;
    flex-direction: row-reverse;
}
.about .txt-box,
.interview .txt-box{
    width: 60%;
    position: relative;
    background: #fff;
    padding: 8rem 0 0 8rem;
    box-sizing: border-box;
    border-radius: 2rem 0 0 0;
    margin-top: 8rem;
    z-index: 2;
}
.interview .txt-box{
    margin-top: 12rem;
}
.about .img-box,
.interview .img-box{
    width: calc(40% + 20rem);
    margin-left: -8rem;
    margin-right: -12rem
}
@media (max-width: 1280px){
    .about .img-box,
    .interview .img-box{
        margin-left: 0;
    }
}
.about .img-box figure,
.interview .img-box figure{
    width: 100%;
}
.about .section-ttl,
.interview .section-ttl{
    font-size: 3rem;
    margin-bottom: 2rem;
}
.about .about-block{
    margin-top: 12rem;
}
.about .about-box{
}
.about .about-box .about-box-inner{
    margin-top: 4rem;
}
.about .about-box .section-sub-ttl{
    font-size: 2.6rem;
}
.about .about-box .about-ttl{
    display: inline-block;
    font-size: 1.6rem;
    letter-spacing: 0.15em;
    line-height: 1.5;
    border-bottom: solid 2px;
    color: #27304c;
    margin-bottom: 0.8rem;
}
.about .about-box .about-list{
    display: flex;
}
.about .about-box .about-list li{
    padding: 2rem 0;
}
.about .about-box .about-list li + li{
    margin-left: 4rem;
    padding-left: 4rem;
    border-left: solid 1px rgba(0,0,0,0.15);
}
.about .about-box .about-list dl{
    height: 100%;
}
.about .about-box .about-list dt{
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: 0.15em;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.about .about-box .about-list dt .number{
    display: block;
    font-family: 'BebasNeue', sans-serif;
    font-size: 2.4rem;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-bottom: 2rem;
    border-bottom: solid 1px;
    padding-bottom: 0.2rem;
    color: #27304c;
    background-image: linear-gradient(135deg, #eaacb1 10%, #27304c 40%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.about .about-box .about-list dd{
    font-size: 1.5rem;
    line-height: 1.75;
    letter-spacing: 0.1em;
    text-align: justify;
    margin-top: 1.6rem;
}
@media (max-width: 1024px){
    .about .section-ttl br{
        display: none;
    }
}
@media (max-width: 767px){
    section.about {
        padding-top: 8rem;
    }
    .about .section-ttl {
        font-size: 2.4rem;
    }
    .about .about-block {
        margin-top: 6rem;
    }
    .about .about-box .about-box-inner {
        margin-top: 3.2rem;
    }
    .about .about-box .about-list {
        display: block;
    }
    .about .about-box .about-list li {
        padding: 0;
    }
    .about .about-box .about-list li + li {
        margin-left: 0;
        padding-left: 0;
        border-left: none;
        margin-top: 3.2rem;
        padding-top: 3.2rem;
        border-top: solid 1px rgba(0,0,0,0.15);
    }
    .about .about-box .about-ttl {
        margin-bottom: 2.4rem;
    }
    .about .about-box .section-sub-ttl {
        font-size: 2rem;
    }
    .about .section-inner,
    .interview .section-inner {
        display: block;
    }
    .about .txt-box,
    .interview .txt-box {
        width: 100%;
        padding: 0;
        margin-top: 0;
    }
    .about .img-box,
    .interview .img-box {
        width: calc(100% + 5vw);
        margin-left: -5vw;
        margin-right: auto;
        margin-top: 4.8rem;
    }
    .about .img-box figure,
    .interview .img-box figure {
        border-radius: 0 2rem 2rem 0;
    }
    .about .about-box .about-list dt {
        font-size: 1.8rem;
        flex-direction: row;
    }
    .about .about-box .about-list dt .number {
        margin-bottom: 0;
        margin-right: 2rem;
    }
}


/* -- project
-------------------------------------------------------------------------------- */
.project .section-inner .section-ttl{
    margin-bottom: 2rem;
}
.project .section-inner .section-ttl,
.project .section-inner p{
    width: calc(50% - 4rem);
}
.project .project-block{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    max-width: calc(100rem + 16rem);
    margin-left: auto;
    margin-right: auto;
    margin-top: -16rem;
    margin-bottom: -4rem;
}
.project .project-box-blank{
    width: 50%;
    height: 0;
}
.project .project-box{
    width: calc(50% - 4rem);
    padding-top: 8rem;
}
.project .project-box:nth-child(odd){
    margin-top: -54rem;
}
.project .project-box .img-box{
    width: 100%;
    position: relative;
}
.project .project-box .img-box figure{
    width: 100%;
}
.project .project-box .txt-box{
    width: 85%;
    background: #fff;
    border-radius: 0 2rem 0 0;
    margin-top: -6rem;
    padding: 4rem 4rem 4rem 0;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
}
.project .project-box .section-sub-ttl{
    font-size: 2.2rem;
    display: flex;
    align-items: center;
    margin-bottom: 0;
    padding-left: 0;
}
.project .project-box .section-sub-ttl::before{
    display: none;
}
.project .project-box .number{
    display: block;
    font-family: 'BebasNeue', sans-serif;
    font-size: 6rem;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-right: 3.2rem;
    background-image: linear-gradient(135deg, #eaacb1 10%, #27304c 40%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.project .project-box .number.ls-00{
    letter-spacing: 0;
}
.project .project-box .txt-box p{
    line-height: 1.75;
    margin-top: 1.6rem;
}
@media (max-width: 1024px){
    .project .project-box .txt-box {
        width: 90%;
    }
}
@media (max-width: 767px){
    .project .section-inner .section-ttl,
    .project .section-inner p {
        width: 100%;
    }
    .project .section-inner .section-ttl {
        margin-bottom: 1.2rem;
    }
    .project .project-block{
        display: block;
        margin-top: 4rem;
        margin-bottom: 0;
    }
    .project .project-box-blank{
        display: none;
    }
    .project .project-box{
        width: 100%;
        padding-top: 0;
    }
    .project .project-box + .project-box{
        margin-top: 4.8rem;
    }
    .project .project-box .txt-box {
        padding: 3.2rem 2rem 0 0;
    }
    .project .project-box .number{
        font-size: 5.6rem;
        margin-right: 2.4rem;
    }
    .project .project-box .section-sub-ttl {
        font-size: 2rem;
    }
}


/* -- requirement
-------------------------------------------------------------------------------- */
section.requirement {
    padding-top: 0;
}
.requirement .section-inner{
    display: flex;
    flex-direction: row-reverse;
}
.requirement .txt-box{
    width: 76%;
    position: relative;
    background: #fff;
    padding: 8rem 8rem 0 0;
    border-radius: 0 2rem 0 0;
    margin-top: 8rem;
    z-index: 2;
}
.requirement .img-box{
    width: calc(24% + 24rem);
    margin-left: -16rem;
    margin-right: -8rem;
}
@media (max-width: 1280px){
    .requirement .img-box{
        margin-right: 0;
    }
}
.requirement .img-box figure{
}
.requirement .requirement-list{
    display: flex;
}
.requirement .requirement-list dt{
}
.requirement .requirement-list dd{
    flex: 1;
    text-align: center;
}
.requirement .flex p{
    flex: 1;
}
@media (max-width: 767px){
    section.requirement {
        padding-top: 4rem;
    }
    .requirement .section-inner {
        display: block;
    }
    .requirement .img-box {
        width: calc(100% + 5vw);
        margin-left: auto;
        margin-right: -5vw;
    }
    .requirement .img-box figure {
        border-radius: 2rem 0 0 2rem;
    }
    .requirement .img-box figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .requirement .txt-box {
        width: 100%;
        padding: 0;
        margin-top: 4.8rem;
    }
    .requirement .requirement-list {
        display: block;
    }
    .requirement .requirement-list dd {
        text-align: left;
        margin-top: 0.8rem;
    }
    .requirement table th{
        min-width: 7em;
    }
}


/* -- tax
-------------------------------------------------------------------------------- */
.tax table{
    margin-top: 1.2rem;
}
.tax .calculation{
    display: flex;
    align-items: center;
    margin-top: 2.4rem;
    margin-bottom: 2.4rem;
}
.tax .calculation .calculation-box{
    white-space: nowrap;
    background: #fff;
    color: #27304c;
    border: solid 2px;
    font-weight: bold;
    padding: 1.2rem 2.4rem;
    margin: 0 1.2rem;
}
.tax .calculation .calculation-box:first-child{
    margin-left: 0;
}
@media (max-width: 767px){
    .tax .calculation {
        flex-direction: column;
    }
    .tax .calculation .calculation-box{
        width: 100%;
        box-sizing: border-box;
        margin: 0;
        text-align: center;
    }
    .tax .calculation .symbol{
        transform: rotate(90deg);
        margin: 0.4rem 0;
    }
}


/* -- gratitude
-------------------------------------------------------------------------------- */
.gratitude table th,
.gratitude table td{
    text-align: center;
}
.gratitude table th{
    border-top-color: #1a1a1a;
    background: #f4f5f5;
    vertical-align: middle;
}
.gratitude .gratitude-box{
    display: flex;
    align-items: center;
    margin-top: 2.4rem;
}
.gratitude .gratitude-box:first-child{
    margin-top: 0;
}
.gratitude .gratitude-box-flex{
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: calc(100rem + 16rem);
    margin-left: auto;
    margin-right: auto;
    margin-top: 2.4rem;
}
.gratitude .gratitude-box-flex .gratitude-box{
    width: calc(50% - 1.2rem);
    max-width: none;
    margin-top: 0;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
    padding-top: 4rem;
    padding-bottom: 4rem;
}
.gratitude .gratitude-box-flex .gratitude-box .img-box{
    width: 40%;
}
.gratitude .gratitude-box-flex .gratitude-box .txt-box {
    padding-right: 4rem;
}
.gratitude .gratitude-box-flex .gratitude-box .img-box figure{
    border-radius: 1rem;
}
.gratitude .gratitude-box-flex .gratitude-box .img-box.vertical{
    width: auto;
    height: 16rem;
}
.gratitude .gratitude-box-flex .gratitude-box .img-box.vertical figure{
    width: auto;
    height: 100%;
}
.gratitude .gratitude-box-flex .gratitude-box .img-box.vertical figure img{
    width: auto;
    height: 100%;
}
@media (max-width: 1024px){
    .gratitude .gratitude-box-flex .gratitude-box{
        display: block;
    }
    .gratitude .gratitude-box-flex .gratitude-box .txt-box {
        padding-right: 0;
        margin-bottom: 4rem;
    }
    .gratitude .gratitude-box-flex .gratitude-box .img-box.vertical figure{
        text-align: center;
    }
}
.gratitude .gratitude-box .txt-box{
    flex: 1;
    padding-right: 8rem;
}
.gratitude .gratitude-box .img-box{
    width: 50%;
}
.gratitude .gratitude-box .img-box figure{
    width: 100%;
}
.gratitude .gratitude-box .img-box figure .swiper{
    padding: 0;
}
.gratitude .gratitude-box .img-box figure .swiper li{
    padding-top: 66.666667%;
    position: relative;
}
.gratitude .gratitude-box .img-box figure .swiper li img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media (max-width: 767px){
    .gratitude .gratitude-box{
        display: block;
    }
    .gratitude .gratitude-box .txt-box {
        padding-right: 0;
    }
    .gratitude .gratitude-box .img-box {
        width: 100%;
        margin-top: 4rem;
    }
    .gratitude .gratitude-box-flex .gratitude-box .img-box {
        width: 50%;
        margin-left: auto;
        margin-right: auto;
    }
    .gratitude .gratitude-box-flex{
    }
    .gratitude .gratitude-box-flex .gratitude-box{
        padding: 3.2rem;
    }
    .gratitude .gratitude-box-flex .gratitude-box .img-box.vertical {
        height: 12rem;
        display: flex;
        justify-content: center;
    }
    .gratitude table th {
        padding-top: 1.6rem;
        padding-bottom: 1.6rem;
    }
    .gratitude table th,
    .gratitude table td{
        padding-left: 1.2rem;
        padding-right: 1.2rem;
    }
}


/* -- howto
-------------------------------------------------------------------------------- */
.howto .section-sub-ttl{
    font-size: 2.2rem;
}
.howto .howto-block{
    display: flex;
    justify-content: space-between;
}
.howto .howto-box{
    width: calc(50% - 4rem);
}
.howto .howto-box-inner{
    border-top: solid 1px;
    border-bottom: solid 1px;
    padding: 2.4rem 0;
    margin-top: 1.2rem;
}
.howto .howto-box figure{
    padding: 4rem 2rem 2rem;
    border-radius: 0;
}
.howto .howto-box p{
    line-height: 1.75;
}
@media (min-width: 1025px){
}
@media (max-width: 767px){
    .howto .howto-block {
        display: block;
    }
    .howto .howto-box {
        width: 100%;
    }
    .howto .howto-box + .howto-box {
        margin-top: 4.8rem;
    }
    .howto .howto-box-inner{
        border-bottom: none;
        padding-bottom: 0;
    }
    .howto .section-sub-ttl {
        font-size: 2rem;
    }
    .howto .howto-box figure {
        padding: 3.2rem 1.2rem 0;
    }
}


/* -- project
-------------------------------------------------------------------------------- */
.sub-page-head{
    background: #eaacb1;
    color: #fff;
    padding-top: 0;
    padding-bottom: 0;
    position: relative;
}
.sub-page-head::before{
    content: "";
    display: block;
    background: url(/kikin/150th/img/img_subpage_head.jpg) no-repeat center;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.1;
    filter: grayscale(1);
}
.sub-page-head .section-inner{
    height: 16rem;
    display: flex;
    align-items: center;
}
.sub-page-head .section-ttl{
    font-size: 2.8rem;
    margin-bottom: 0;
    position: relative;
}
.sub-page-head .logo-150th{
    width: 18rem;
    height: 100%;
    box-sizing: border-box;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    text-align: center;
    top: 0;
    right: 4%;
}
.sub-page-head .logo-150th img{
    height: 12rem;
}
.project-head + .project-body{
    padding-top: 8rem;
    padding-bottom: 12rem;
}
.project-body + .project-body{
    background: #f5f4f3;
    padding-top: 12rem;
    padding-bottom: 12rem;
}
.project-body .section-inner{
    position: relative;
}
.project-body .section-inner + .link-btn2{
    margin-top: 6rem;
}
.project-body .project-ttl + p{
    margin-top: 4rem;
}
.project-body .project-number-wrap{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
}
.project-body .project-number{
    display: block;
    font-family: 'BebasNeue', sans-serif;
    font-size: 10rem;
    line-height: 1;
    letter-spacing: 0.05em;
    background-image: linear-gradient(135deg, #eaacb1 10%, #27304c 40%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.project-body .project-number.ls-00{
    letter-spacing: 0;
}
.project-body .section-ttl{
    margin-bottom: 0;
}
.project-target{
}
.project-target dl{
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.project-target dt{
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 0.15em;
    transform: translateY(1px);
    margin-right: 1.6rem;
}
.project-target dd{
    font-size: 1.5rem;
    font-weight: bold;
    letter-spacing: 0.15em;
    line-height: 1;
    background: linear-gradient(to bottom, #ad9e75 0%, #9b8e6d 100%);
    padding: 0.8rem 1.45rem 0.8rem 1.6rem;
    border-radius: 6px;
    color: #fff;
}
.project-target dd span{
    font-size: 2.4rem;
    letter-spacing: 0.05em;
}
.project-target.min dt{
    font-size: 1.4rem;
    margin-right: 1.2rem;
}
.project-target.min dd{
    font-size: 1.4rem;
}
.project-target.min dd span{
    font-size: 2rem;
}
.project-body .project-box{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.project-body .project-box:nth-child(odd){
    flex-direction: row-reverse;
}
.project-body .project-box + .project-box{
    margin-top: 8rem;
    padding-top: 8rem;
    border-top: solid 1px rgba(0,0,0,0.1);
}
.project-body .project-box .txt-box{
    width: calc(50% - 4rem);
}
.project-body .project-box .section-sub-ttl{
    margin-bottom: 3.2rem;
    padding-bottom: 0.6rem;
    border-bottom: solid 1px;
}
.project-body .project-box .project-target{
    margin-bottom: 2.4rem;
}
.project-body .project-box .project-box-ttl-wrap{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    margin-bottom: 2rem;
}
.project-body .project-box p + .project-box-ttl-wrap{
    margin-top: 3.2rem;
}
.project-body .project-box .project-box-ttl{
    font-size: 1.6rem;
    letter-spacing: 0.15em;
    line-height: 1.5;
    border-bottom: solid 2px;
    padding-bottom: 0.2rem;
    color: #27304c;
}
.project-body .project-box .project-box-ttl + .project-box-ttl{
    margin-top: 1.2rem;
}
.project-body .project-box .img-box{
    width: calc(50% - 4rem + 8rem);
    margin-left: -8rem;
    position: relative;
}
.project-body .project-box:nth-child(even) .img-box{
    margin-left: 0;
    margin-right: -8rem;
}
@media (max-width: 1280px){
    .project-body .project-box .img-box{
        width: calc(50% - 4rem);
        margin-left: 0;
    }
    .project-body .project-box:nth-child(even) .img-box{
        margin-right: 0;
    }
}
.project-body .project-box .img-box figure .swiper {
    padding: 0;
}
.project-body .project-box .img-box figure .swiper li{
    padding-top: 66.666667%;
    position: relative;
}
.project-body .project-box .img-box figure .swiper li img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.project-body .column-txt{
    padding: 2rem 2.4rem;
    margin-top: 3.2rem;
    color: #27304c;
    border: solid 2px;
    border-radius: 1.2rem;
}
.project-body .column-txt .ttl{
    font-size: 1.7rem;
    letter-spacing: 0.15em;
    line-height: 1.5;
    margin-bottom: 0.8rem;
}
.project-body .column-txt p{
    font-size: 1.4rem;
    line-height: 1.75;
}
.project-body .project-box .img-box img{
    width: 100%;
}
.project-body .column-box{
    background: #fff;
    padding: 7.2rem 8rem 8rem;
    margin-top: 12rem;
    border-radius: 4rem;
    max-width: 100rem;
    margin-left: auto;
    margin-right: auto;
}
.project-body .column-box + .link-btn2{
    margin-top: 6rem;
}
.project-body .column-box .section-sub-ttl{
    font-size: 2.8rem;
    margin-bottom: 4.8rem;
    padding-left: 2.8rem;
    position: relative;
}
.project-body .column-box .section-sub-ttl::before{
    content: "";
    display: block;
    width: 0;
    height: calc(90% + 7.2rem);
    border-left: solid 0.4rem #eaacb1;
    position: absolute;
    top: -7.2rem;
    left: 0;
    border-radius: 0;
}
.project-body .column-box .column-box-inner{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.project-body .column-box .img-box{
    width: calc(50% - 4rem);
}
.project-body .column-box .img-box img{
    width: 100%;
}
.project-body .column-box .txt-box{
    width: calc(50% - 4rem);
}
.project-body .column-box .column-box-ttl{
    font-size: 2rem;
    letter-spacing: 0.15em;
    line-height: 1.5;
    margin-bottom: 0.8rem;
}
.project-body .column-box .column-box-ttl .bullet{
    display: block;
    position: relative;
    padding-left: calc(1em + 0.8rem);
}
.project-body .column-box .column-box-ttl .bullet::before{
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    border-radius: 100%;
    box-sizing: border-box;
    border: solid 5px #ffc356;
    position: absolute;
    top: 0.2em;
    left: 0;
}
.project-body .column-box .column-box-ttl .bullet.col-2::before{
    border-color: #90c946;
}
.project-body .column-box .column-box-ttl .bullet.col-3::before{
    border-color: #ec7e6f;
}
.project-body .column-box .txt-box p + .column-box-ttl{
    margin-top: 2.4rem;
    padding-top: 2.4rem;
    border-top: solid 1px;
}
.project-body .column-box .txt-box p{
    font-size: 1.5rem;
    line-height: 1.75;
}
.project-body .column-box .txt-box .name-box{
    margin-top: 3.2rem;
}
.project-body .column-box .txt-box .name-box .name{
    display: block;
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: 0.2em;
    line-height: 1.5;
}
.project-body .column-box .txt-box .name-box .affiliation{
    font-size: 1.4rem;
    margin-top: 0.4rem;
}
@media (min-width: 1025px){
}
@media (max-width: 767px){
    .sub-page-head .section-inner {
        height: 12rem;
    }
    .sub-page-head .section-ttl {
        font-size: 2rem;
    }
    .sub-page-head .logo-150th {
        width: 12rem;
        right: 5%;
    }
    .sub-page-head .logo-150th img {
        height: 9rem;
    }
    .project-body .project-box {
        display: block;
    }
    .project-body .project-box .txt-box {
        width: 100%;
    }
    .project-body .project-box .img-box {
        width: 100%;
        margin-top: 4.8rem;
    }
    .project-body .column-box .column-box-inner {
        display: block;
    }
    .project-body .column-box .img-box {
        width: 100%;
    }
    .project-body .column-box .txt-box {
        width: 100%;
    }
    .project-body .column-box .img-box + .txt-box {
        margin-top: 4rem;
    }
    .project-head + .project-body{
        padding-top: 6rem;
        padding-bottom: 6rem;
    }
    .project-body .project-number-wrap {
        margin-bottom: 1.2rem;
    }
    .project-body .project-number {
        font-size: 6.8rem;
    }
    .project-body .project-ttl + p {
        margin-top: 2.4rem;
    }
    .project-body + .project-body {
        padding-top: 6rem;
        padding-bottom: 8rem;
    }
    .project-body .project-box + .project-box {
        margin-top: 4.8rem;
        padding-top: 4.8rem;
    }
    .project-body .column-box {
        padding: 3.2rem;
        margin-top: 6rem;
        border-radius: 2rem;
    }
    .project-body .column-box .section-sub-ttl {
        font-size: 2.2rem;
        margin-bottom: 4rem;
        padding-left: 2.8rem;
    }
    .project-body .column-box .section-sub-ttl::before {
        height: calc(90% + 3.2rem);
        top: -3.2rem;
    }
    .project-target dt,
    .project-target.min dt {
        font-size: 1.4rem;
        margin-right: 1.2rem;
    }
    .project-target dd,
    .project-target.min dd {
        font-size: 1.2rem;
    }
    .project-target dd span,
    .project-target.min dd span {
        font-size: 2.2rem;
    }
    .project-body .column-box .column-box-ttl{
        font-size: 1.8rem;
    }
    .project-body .column-box .column-box-ttl .bullet::before{
        transform: translateY(2px);
    }
    .project-body .column-box + .link-btn2{
        margin-top: 4rem;
    }
    .project-body .section-inner + .link-btn2{
        margin-top: 4rem;
    }
}


/* -- project-list
-------------------------------------------------------------------------------- */
section.project-list{
    background: #fff;
    padding-left: 0;
    padding-right: 0;
    padding-top: 12rem;
    padding-bottom: 12rem;
}
.project-list-block{
    display: flex;
}
.project-list .project-box {
    width: 100%;
    height: 100%;
    padding-top: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.project-list .project-box:nth-child(odd) {
    margin-top: 0;
}
.project-list .project-box .txt-box {
    width: 90%;
    background: #fff;
    padding-bottom: 0;
}
.project-list .project-box .txt-box p {
}
.project-list .project-box .link-btn {
    justify-content: flex-start;
    margin-top: 3.2rem;
}
@media (min-width: 1025px){
}
@media (max-width: 767px){
    section.project-list {
        padding-top: 6rem;
        padding-bottom: 8rem;
    }
}


/* -- swiper
-------------------------------------------------------------------------------- */
.swiper{
    overflow: hidden;
    position: relative;
    padding-left: 8%;
    padding-right: 8%;
}
.swiper .swiper-nav{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 4.8rem;
    position: relative;
}
.swiper .swiper-nav::before{
    content: "";
    display: block;
    width: 100%;
    border-top: solid 1px;
    position: absolute;
    left: 0;
    top: 50%;
}
.swiper .swiper-pagination{
    background: #fff;
    font-size: 1.6rem;
    position: relative;
    z-index: 1;
    padding-left: 1.6rem;
}
.swiper .swiper-pagination span{
    letter-spacing: 0.1em;
}
.swiper .swiper-button-wrap{
    background: #fff;
    display: flex;
    justify-content: flex-end;
    padding-right: 1.6rem;
    position: relative;
    z-index: 1;
}
.swiper .swiper-button{
    display: block;
    width: 3.2rem;
    height: 3.2rem;
    border: solid 2px;
    border-radius: 100%;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background 0.1s ease;
}
.swiper .swiper-button::before{
    content: "";
    display: block;
    width: 0.4rem;
    height: 0.4rem;
    border-top: solid 2px #27304c;
    border-right: solid 2px #27304c;
    color: #27304c;
    transform: rotate(45deg);
    margin-right: 2px;
    transition: border 0.1s ease;
}
@media (min-width: 1025px){
    .swiper .swiper-button:hover{
        background: #27304c;
    }
    .swiper .swiper-button:hover::before{
        border-color: #fff;
    }
}
.swiper .swiper-button.swiper-button-prev::before{
    transform: rotate(-135deg);
    margin-right: 0;
    margin-left: 2px;
}
.swiper .swiper-button.swiper-button-prev{
}
.swiper .swiper-button.swiper-button-next{
    margin-left: 0.8rem;
}
.swiper .swiper-wrapper{
    display: flex;
    width: 100%;
}
.swiper .swiper-slide {
    width: 100%;
    flex-shrink: 0;
}
.swiper .swiper-slide img{
    width: 100%;
}
@media (max-width: 767px){
    .swiper {
        padding-left: 5%;
        padding-right: 5%;
    }
    .swiper .swiper-nav {
        margin-top: 3.2rem;
    }
}


/* -- message-body
-------------------------------------------------------------------------------- */
.txt-area p + p{
    margin-top: 2em;
}
.message-body{
    padding-top: 16rem;
    padding-bottom: 16rem;
}
.message-body .section-inner {
    max-width: 80rem;
}
.message-body .profile{
    margin-top: 8rem;
    display: flex;
    align-items: center;
    flex-direction: row-reverse;
}
.message-body .section-ttl {
    font-size: 3.6rem;
    margin-bottom: 6rem;
}
.message-body .txt-area p {
    line-height: 2.1;
}
.message-body .profile .img-box {
    width: 70%;
}
.message-body .profile .img-box figure{
    width: 100%;
}
.message-body .profile .img-box figure img{
    width: 100%;
}
.message-body .profile .txt-box {
    flex: 1;
    padding-left: 6rem;
}
.message-body .profile .txt-box p {
    line-height: 1.75;
}
.message-body .profile .sign{
    height: 4.8rem;
    margin-top: 1.2rem;
}
.message-body .profile .sign img{
    height: 100%;
}
@media (min-width: 1025px){
}
@media (max-width: 767px){
    .message-body {
        padding-top: 6rem;
        padding-bottom: 8rem;
    }
    .message-body .section-ttl {
        font-size: 2.6rem;
        margin-bottom: 4rem;
    }
    .message-body .section-ttl br {
        display: none;
    }
    .message-body .profile {
        display: block;
        margin-top: 4rem;
    }
    .message-body .profile .txt-box {
        padding-left: 0;
    }
    .message-body .profile .img-box {
        width: 100%;
        margin-top: 4rem;
    }
    .message-body .profile .sign{
        height: 4rem;
    }
}


/* -- item-body
-------------------------------------------------------------------------------- */
.item-body{
    padding-top: 12rem;
    padding-bottom: 16rem;
}
.item-block{
    border-top: solid 3px;
    border-bottom: solid 3px;
}
.item-box{
    padding-top: 6rem;
    padding-bottom: 6rem;
}
.item-box + .item-box{
    border-top: solid 1px rgba(0,0,0,0.15);
}
.item-box .item-box-inner{
    display: flex;
    align-items: center;
    position: relative;
}
.item-box .img-box{
    width: 40%;
}
.item-box .img-box figure{
    display: block;
    margin: 0;
    overflow: hidden;
    border-radius: 2rem;
    padding-top: 66.666666%;
    position: relative;
}
.item-box .img-box figure img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}
.item-box .txt-box{
    flex: 1;
    padding-left: 6rem;
}
.item-box .section-ttl{
    font-size: 2.8rem;
    margin-bottom: 1.6rem;
}
.item-box .project-target{
    margin-bottom: 3.2rem;
}
.item-box .lead{
    padding-right: 8rem;
}
.item-box .accordion-btn{
    display: block;
    width: 4.8rem;
    height: 4.8rem;
    border-radius: 100%;
    background: #27304c;
    position: absolute;
    right: 0;
    bottom: 0.5rem;
    transition: background 0.2s ease;
}
@media (min-width: 1025px){
    .item-box .accordion-btn:hover{
        background: #eaacb1;
    }
}
.item-box .accordion-btn::before,
.item-box .accordion-btn::after{
    content: "";
    display: block;
    width: 1.2rem;
    border-top: solid 2px #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    transition: transform 0.3s ease;
}
.item-box .accordion-btn::after{
    transform: translate(-50%,-50%) rotate(90deg);
}
.item-box .accordion-btn.active::after{
    transform: translate(-50%,-50%) rotate(0deg);
}
.item-box .item-box-accordion{
    padding-left: calc(40% + 6rem);
    padding-top: 4rem;
    display: none;
}
.item-box .item-box-accordion dl + dl{
    margin-top: 2rem;
}
.item-box .item-box-accordion dt,
.item-box .item-box-accordion dd{
    font-size: 1.6rem;
    letter-spacing: 0.1em;
}
.item-box .item-box-accordion dt{
    font-size: 1.8rem;
    font-weight: bold;
    color: #27304c;
    letter-spacing: 0.15em;
    line-height: 1.5;
    margin-bottom: 1.2rem;
    border-bottom: solid 2px;
    padding-bottom: 0.4rem;
}
.item-box .item-box-accordion ul li{
    line-height: 1.5;
}
.item-box .item-box-accordion ul li + li{
    margin-top: 1.2rem;
    padding-top: 1.2rem;
    border-top: solid 1px;
}
@media (min-width: 1025px){
}
@media (max-width: 767px){
    .item-body{
        padding-top: 8rem;
        padding-bottom: 8rem;
    }
    .item-box{
        padding-top: 4.8rem;
        padding-bottom: 4.8rem;
    }
    .item-box .item-box-inner{
        display: block;
    }
    .item-box .img-box {
        width: 100%;
    }
    .item-box .txt-box {
        padding-left: 0;
        margin-top: 3.2rem;
    }
    .item-box .section-ttl {
        font-size: 2.2rem;
    }
    .item-box .item-box-accordion {
        padding-left: 0;
    }
}


/* -- page-top
-------------------------------------------------------------------------------- */
.page-top{
    position: fixed;
    right: 2rem;
    bottom: 2rem;
    width: 6rem;
    height: 6rem;
    border-radius: 100%;
    background: #fff;
    box-shadow: 0 0 0.8rem rgba(0,0,0,0.2);
    z-index: 9;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}
.page-top::before {
    content: "";
    display: block;
    width: 1.6rem;
    height: 1.6rem;
    background: url(/kikin/150th/img/ico_arrow.svg) no-repeat center;
    background-size: cover;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%) rotate(-90deg);
    transition: background 0.15s ease;
}
.page-top.show{
    opacity: 1;
    visibility: visible;
    transition-delay: 0.3s;
}
@media (min-width: 1025px){
    .page-top:hover::before {
        background-image: url(/kikin/150th/img/ico_arrow_hover.svg);
    }
}
@media (max-width: 767px){
    .page-top {
        width: 4.8rem;
        height: 4.8rem;
    }
    .page-top::before {
        width: 1.4rem;
        height: 1.4rem;
    }
    .page-top.show {
        transition-delay: 0s;
    }
}


/* -- interview
-------------------------------------------------------------------------------- */
.interview .link-btn {
    justify-content: flex-start;
    margin-top: 3.2rem;
}
.interview .swiper {
    padding: 0;
    width: 100%;
}
.project.interview-list {
    padding-top: 12rem;
    padding-bottom: 16rem;
}
.project.interview-list .project-block {
    margin-top: calc(-8rem + 6rem);
    margin-bottom: 0;
}
.project.interview-list .project-block + .section-inner {
    margin-top: 12rem;
}
.project.interview-list .project-box-blank + .project-box {
    padding-top: 0;
}
.project.interview-list .project-box{
    padding-top: 0;
    margin-top: 8rem;
}
.project.interview-list .project-box .txt-box{
    padding-bottom: 0;
}
.project.interview-list .section-inner .section-sub-ttl{
    padding-bottom: 0.6rem;
    border-bottom: solid 1px;
}
.interview-head {
    padding-bottom: 0;
    position: relative;
}
.interview-head::before {
    content: "";
    display: block;
    width: 100%;
    height: 8rem;
    background: #f5f4f3;
    position: absolute;
    left: 0;
    bottom: 0;
}
.interview-head .section-inner {
    display: flex;
    flex-direction: row-reverse;
    position: relative;
    max-width: 120rem;
}
.interview-head .profile-wrap {
    width: 35%;
    padding-bottom: 8rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.interview-head .interview-number {
    display: flex;
    align-items: center;
}
.interview-head .interview-number p {
    font-family: 'BebasNeue', sans-serif;
    font-size: 8rem;
    line-height: 1;
    letter-spacing: 0.05em;
    background-image: linear-gradient(135deg, #eaacb1 10%, #27304c 40%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.interview-head .interview-number .cat {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin-left: 2.4rem;
}
.interview-head .interview-number .cat::before {
    content: "●";
    color: #eaacb1;
    margin-right: 0.333333em;
}
.interview-head .profile{
    padding-right: 4rem;
    padding-bottom: 6rem;
    margin-top: 4rem;
}
.interview-head .profile dl{
    padding-left: 2rem;
    position: relative;
}
.interview-head .profile dl::before{
    content: "";
    display: block;
    border-left: solid 0.4rem #eaacb1;
    position: absolute;
    top: 0.2rem;
    bottom: 0.3rem;
    left: 0;
}
.interview-head .profile dl + dl{
    margin-top: 2rem;
}
.interview-head .profile dt{
    font-size: 2.4rem;
    font-weight: bold;
    letter-spacing: 0.15em;
    line-height: 1.5;
    margin-bottom: 0.8rem;
}
.interview-head .profile dd{
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: 0.1em;
}
.interview-head .profile.min dt{
    font-size: 2rem;
}
.interview-head .profile.min dd{
    font-size: 1.3rem;
}
.interview-head figure{
    display: block;
    width: 65%;
    margin: 0;
}
.interview-head figure img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.interview-body {
    background: #f5f4f3;
    padding: 12rem 0;
}
.interview-body .section-inner {
    max-width: 80rem;
}
.interview-body .interview-box + .interview-box {
    margin-top: 8rem;
    padding-top: 8rem;
    border-top: solid 1px rgba(0,0,0,0.1);
}
.interview-body .section-sub-ttl{
    padding-left: 0;
}
.interview-body .section-sub-ttl::after{
    content: "";
    display: block;
    width: 6rem;
    border-top: solid 0.4rem #eaacb1;
    margin-top: 2rem;
}
.interview-body .section-sub-ttl::before {
    display: none;
}
.interview-body .section-sub-ttl + p {
    margin-top: 4rem;
}
.interview-body .txt-area p {
    line-height: 2.1;
}
.interview-body .link-btn {
    margin-top: 8rem;
}
.interview-body .column-box {
    width: calc(100% + 16rem);
    background: #fff;
    padding: 7.2rem 8rem 8rem;
    box-sizing: border-box;
    margin-top: 12rem;
    margin-left: -8rem;
    border-radius: 4rem;
}
.interview-body .column-box .section-sub-ttl {
    margin-bottom: 2rem;
    padding-left: 2.4rem;
    position: relative;
}
.interview-body .column-box .section-sub-ttl::after{
    width: 0.6rem;
    background: #eaacb1;
    border-radius: 0.3rem;
    border: none;
    margin-top: 0;
    position: absolute;
    top: 0.1em;
    bottom: 0.2em;
    left: 0;
}
.interview-body .column-box .column-box-inner {
    display: flex;
    align-items: center;
}
.interview-body .column-box .img-box {
    width: 40%;
    padding-right: 6rem;
    padding-top: 2rem;
    box-sizing: border-box;
}
.interview-body .column-box .img-box figure {
    border-radius: 1.6rem;
}
.interview-body .column-box .txt-box {
    flex: 1;
}
@media (max-width: 1280px){
    .interview-head {
        padding-right: 0;
    }
    .interview-head figure{
        border-radius: 2rem 0 0 2rem;
    }
}
@media (max-width: 767px){
    .project.interview {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }
    .project.interview-list {
        padding-top: 4rem;
        padding-bottom: 8rem;
    }
    .project.interview .project-block {
        margin-top: 4rem;
    }
    .project.interview-list .project-block {
        margin-top: calc(-4.8rem + 4rem);
    }
    .project.interview-list .project-block + .section-inner {
        margin-top: 8rem;
    }
    .project.interview-list .project-box{
        margin-top: 4.8rem;
    }
    .project.interview .project-box:nth-child(odd) {
        margin-top: 4rem;
    }
    .interview-head{
        padding: 0 0 4.8rem;
    }
    .interview-head::before{
        display: none;
    }
    .interview-head .section-inner{
        display: block;
    }
    .interview-head figure{
        width: 100%;
        border-radius: 0;
    }
    .interview-head .profile-wrap{
        width: 100%;
        padding: 0 5%;
        box-sizing: border-box;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        margin-top: 4rem;
    }
    .interview-head .profile{
        flex: 1;
        margin-top: 0;
        padding: 0;
    }
    .interview-head .profile dt {
        font-size: 2rem;
        margin-bottom: 0.6rem;
    }
    .interview-head .profile dd {
        font-size: 1.4rem;
    }
    .interview-head .profile.min dt {
        font-size: 2rem;
    }
    .interview-head .profile.min dd {
        font-size: 1.4rem;
    }
    .interview-body{
        padding: 6rem 5% 8rem;
    }
    .interview-body .interview-box + .interview-box {
        margin-top: 4rem;
        padding-top: 4rem;
    }
    .interview-head .profile-wrap {
        position: relative;
    }
    .interview-head .interview-number {
        padding-right: 4rem;
        display: block;
    }
    .interview-head .interview-number p {
        font-size: 4.8rem;
    }
    .interview-head .interview-number .cat {
        font-size: 1.4rem;
        margin-left: 0;
        padding: 1.6rem 5%;
        background: #fff;
        position: absolute;
        top: -4rem;
        left: 0;
        transform: translateY(-50%);
        z-index: 1;
    }
    .interview-body .link-btn {
        margin-top: 4.8rem;
    }
    .interview-body .column-box {
        width: 100%;
        padding: 3.2rem;
        margin-top: 6rem;
        margin-left: 0;
        border-radius: 2rem;
    }
    .interview-body .column-box .column-box-inner{
        display: block;
    }
    .interview-body .column-box .img-box{
        width: 100%;
        padding: 2rem 0 0;
        margin-bottom: 4rem;
    }
}


/* -- sponsor
-------------------------------------------------------------------------------- */
section.sponsor {
    padding-bottom: 16rem;
}
section.sponsor .bg-box{
    padding-top: 6rem;
    padding-bottom: 6rem;
}
section.sponsor .section-ttl {
}
section.sponsor .sponsor-block {
    display: flex;
    flex-flow: wrap;
    margin: -4rem -1.6rem 0;
}
section.sponsor .sponsor-block li {
    width: 25%;
    height: 9rem;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 4rem;
    padding: 0 1.6rem;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
}
section.sponsor .sponsor-block li img {
    height: 50%;
}
section.sponsor .sponsor-block li img.size-xxs {
    height: 30%;
}
section.sponsor .sponsor-block li img.size-xs {
    height: 40%;
}
section.sponsor .sponsor-block li img.size-s {
    height: 50%;
}
section.sponsor .sponsor-block li img.size-m {
    height: 60%;
}
section.sponsor .sponsor-block li img.size-l {
    height: 70%;
}
section.sponsor .sponsor-block li img.size-xl {
    height: 80%;
}
section.sponsor .sponsor-block li img.size-xxl {
    height: 90%;
}
section.sponsor .sponsor-block li img.size-xxxl {
    height: 100%;
}
section.sponsor .caption{
    margin-top: 4rem;
}
@media (max-width: 767px){
    section.sponsor .bg-box {
        padding-top: 2.4rem;
        padding-bottom: 2.4rem;
    }
    section.sponsor .sponsor-block {
        margin: -1.2rem -1.2rem 0;
    }
    section.sponsor .sponsor-block li {
        width: 50%;
        height: 6rem;
        margin-top: 1.2rem;
        padding: 0 1.2rem;
    }
    section.sponsor {
        padding-bottom: 8rem;
    }
    section.sponsor .caption{
        margin-top: 2.4rem;
    }
}