@charset "UTF-8";

/*----------------------------------------------------------------------------------------------------------
writing-mode mixin
    Usage:
        $orientation    v (vertical)
                        h (horizontal)
		$direction      rl (right to left)
						lr (left to right)
----------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------
writing-mode mixin
    Usage:
        $orientation    v (vertical)
                        h (horizontal)
		$direction      rl (right to left)
						lr (left to right)
----------------------------------------------------------------------------------------------------------*/
.wrap div,
.wrap span,
.wrap applet,
.wrap object,
.wrap iframe,
.wrap h1,
.wrap h2,
.wrap h3,
.wrap h4,
.wrap h5,
.wrap h6,
.wrap p,
.wrap blockquote,
.wrap pre,
.wrap a,
.wrap abbr,
.wrap acronym,
.wrap address,
.wrap big,
.wrap cite,
.wrap code,
.wrap del,
.wrap dfn,
.wrap em,
.wrap img,
.wrap ins,
.wrap kbd,
.wrap q,
.wrap s,
.wrap samp,
.wrap small,
.wrap strike,
.wrap strong,
.wrap sub,
.wrap sup,
.wrap tt,
.wrap var,
.wrap b,
.wrap u,
.wrap i,
.wrap center,
.wrap dl,
.wrap dt,
.wrap dd,
.wrap ol,
.wrap ul,
.wrap li,
.wrap fieldset,
.wrap form,
.wrap label,
.wrap legend,
.wrap table,
.wrap caption,
.wrap tbody,
.wrap tfoot,
.wrap thead,
.wrap tr,
.wrap th,
.wrap td,
.wrap article,
.wrap aside,
.wrap canvas,
.wrap details,
.wrap embed,
.wrap figure,
.wrap figcaption,
.wrap footer,
.wrap header,
.wrap hgroup,
.wrap menu,
.wrap nav,
.wrap output,
.wrap ruby,
.wrap section,
.wrap summary,
.wrap time,
.wrap mark,
.wrap audio,
.wrap video {
    margin: 0;
    padding: 0;
    border: 0;
    font: inherit;
    font-size: 100%;
    vertical-align: baseline;
}

.wrap {
    line-height: 1;
}

.wrap ol,
.wrap ul {
    list-style: none;
}

.wrap table {
    border-collapse: collapse;
    border-spacing: 0;
}

.wrap caption,
.wrap th,
.wrap td {
    text-align: left;
    font-weight: normal;
    vertical-align: middle;
}

.wrap q,
.wrap blockquote {
    quotes: none;
}

.wrap q:before,
.wrap q:after,
.wrap blockquote:before,
.wrap blockquote:after {
    content: "";
    content: none;
}

.wrap a img {
    border: none;
}

.wrap article,
.wrap aside,
.wrap details,
.wrap figcaption,
.wrap figure,
.wrap footer,
.wrap header,
.wrap hgroup,
.wrap main,
.wrap menu,
.wrap nav,
.wrap section,
.wrap summary {
    display: block;
}

@media only screen and (max-width: 767px) {
    .pc {
        display: none !important;
    }
}

@media only screen and (min-width: 768px) {
    .sp {
        display: none !important;
    }
}

.o-container {
    margin: 0;
}

.o-container .o-inner {
    max-width: inherit;
    padding: 0;
}

.wrap {
    font-size: 62.5%;
    font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    color: #5a5a5a;
}

.wrap * {
    font-size: 14px;
    font-size: 1.4rem;
    box-sizing: border-box;
}

.wrap img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

.wrap a {
    color: inherit;
    text-decoration: none;
}

.wrap .inner {
    max-width: 1200px;
    width: calc(100% - 40px);
    margin: 0 auto;
}

@media only screen and (max-width: 767px) {
    .wrap .inner {
        width: calc(100% - 60px);
    }
}

.wrap .inner-small {
    max-width: 800px;
    width: calc(100% - 40px);
    margin: 0 auto;
}

@media only screen and (max-width: 767px) {
    .wrap .inner-small {
        width: calc(100% - 60px);
    }
}

.wrap .fade-in-item {
    opacity: 0;
    -webkit-transform: translateY(50px);
    -moz-transform: translateY(50px);
    -ms-transform: translateY(50px);
    -o-transform: translateY(50px);
    transform: translateY(50px);
    -webkit-transition: all 1.5s cubic-bezier(0.15, 0, 0, 1);
    -moz-transition: all 1.5s cubic-bezier(0.15, 0, 0, 1);
    -o-transition: all 1.5s cubic-bezier(0.15, 0, 0, 1);
    transition: all 1.5s cubic-bezier(0.15, 0, 0, 1);
}

.wrap .fade-in-item.is-active {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
}

.wrap .fade-in-item.no-motion {
    -webkit-transition: none;
    -moz-transition: none;
    -o-transition: none;
    transition: none;
}

main.subpage .page-heading {
    position: relative;
    background: #820000;
    background: linear-gradient(90deg, #820000 0%, #e60000 62%, #e60000 100%);
    padding: 41px 0 40px;
}

@media only screen and (max-width: 767px) {
    main.subpage .page-heading {
        padding: 13px 0 13px;
    }
}

main.subpage .page-heading .inner {
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.subpage .page-heading .inner {
        width: calc(100% - 30px);
    }
}

main.subpage .page-heading .subpage-heading a {
    max-width: 300px;
    display: block;
}

@media only screen and (min-width: 768px) {
    main.subpage .page-heading .subpage-heading a {
        cursor: pointer;
        -webkit-transition: 0.3s;
        -moz-transition: 0.3s;
        -o-transition: 0.3s;
        transition: 0.3s;
    }

    main.subpage .page-heading .subpage-heading a:hover {
        opacity: .7;
    }
}

@media only screen and (max-width: 767px) {
    main.subpage .page-heading .subpage-heading a {
        max-width: 235px;
    }
}

main.subpage .page-heading .hamburger-menu {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
}

main.subpage section .sec-title {
    font-family: "Arial", "メイリオ";
    font-size: 16px;
    font-size: 1.6rem;
    font-weight: bold;
    position: relative;
    padding-bottom: 8px;
}

main.subpage section .sec-title:after {
    content: '';
    width: 100vw;
    height: 1px;
    background-color: #5a5a5a;
    position: absolute;
    left: 0;
    bottom: 0;
}

main.subpage section .sec-title02 {
    font-size: 24px;
    font-size: 2.4rem;
    font-weight: bold;
    color: #e60000;
    letter-spacing: 0.1em;
    padding-top: 20px;
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.subpage section .sec-title02 {
        font-size: 20px;
        font-size: 2rem;
        padding-top: 10px;
    }
}

main.subpage section .sec-title02:before {
    content: '';
    width: 100%;
    height: 2px;
    background-color: #e60000;
    position: absolute;
    left: 0;
    top: 0;
}

.action-slider-wrap {
    position: relative;
}

@media only screen and (max-width: 767px) {
    .action-slider-wrap {
        padding-top: 20px !important;
    }
}

.action-slider {
    max-width: 1000px;
    width: 100%;
    position: static !important;
}

@media only screen and (max-width: 767px) {
    .action-slider {
        max-width: 255px;
    }
}

.action-slider .slick-list {
    overflow: inherit;
    position: static;
}

.action-slider .slick-list .slick-track {
    display: -webkit-flex;
    display: flex;
}

.action-slider .item {
    padding-right: 50px;
}

@media only screen and (max-width: 767px) {
    .action-slider .item {
        padding-right: 30px;
    }
}

.action-slider .item a:hover .img:before {
    opacity: .3;
}

.action-slider .item .img {
    padding-top: 55.7%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: relative;
}

.action-slider .item .img:before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #FFF;
    z-index: 1;
    opacity: 0;
    -webkit-transition: 0.3s;
    -moz-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
}

.action-slider .item .img:after {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 20px 20px;
    border-color: transparent transparent #e60000 transparent;
    position: absolute;
    right: 0;
    bottom: 0;
}

@media only screen and (max-width: 767px) {
    .action-slider .item .img:after {
        border-width: 0 0 10px 10px;
    }
}

.action-slider .item span {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.75;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin-top: 45px;
    display: inline-block;
    padding-right: 50px;
}

@media only screen and (max-width: 767px) {
    .action-slider .item span {
        font-size: 15px;
        font-size: 1.5rem;
        margin-top: 10px;
        padding-right: 0;
        letter-spacing: 0em;
    }
}

.action-slider .item p {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.75;
    letter-spacing: 0.1em;
    margin-top: 45px;
    padding-right: 50px;
}

@media only screen and (max-width: 767px) {
    .action-slider .item p {
        letter-spacing: 0em;
        margin-top: 5px;
        padding-right: 0;
    }
}

.action-slider .slide-arrow {
    display: block;
    width: 29px;
    height: 29px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: absolute;
    z-index: 10;
    top: -56px;
    cursor: pointer;
}

@media only screen and (max-width: 767px) {
    .action-slider .slide-arrow {
        top: -42px;
    }
}

.action-slider .slide-arrow.prev-arrow {
    -webkit-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    transform: rotate(180deg);
    background-image: url(../images/common/ico-arrow.png);
    right: -29px;
}

@media only screen and (max-width: 1300px) {
    .action-slider .slide-arrow.prev-arrow {
        right: 39px;
    }
}

.action-slider .slide-arrow.next-arrow {
    background-image: url(../images/common/ico-arrow.png);
    right: -68px;
}

@media only screen and (max-width: 1300px) {
    .action-slider .slide-arrow.next-arrow {
        right: 0;
    }
}

.action-slider .slide-arrow.slick-disabled {
    opacity: .3;
    pointer-events: none;
}

.hamburger-menu {
    position: absolute;
    right: 0;
    top: 0;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    z-index: 1000;
}

@media only screen and (max-width: 767px) {
    .hamburger-menu.is-fixed {
        position: fixed !important;
        top: 10px !important;
        right: 20px !important;
        -webkit-transform: none !important;
        -moz-transform: none !important;
        -ms-transform: none !important;
        -o-transform: none !important;
        transform: none !important;
    }
}

.hamburger-menu>span {
    font-family: "Arial", "メイリオ";
    font-size: 14px;
    font-size: 1.4rem;
    letter-spacing: 0.1em;
    font-weight: bold;
    color: #FFF;
}

@media only screen and (max-width: 767px) {
    .hamburger-menu>span {
        display: none;
        font-size: 14px;
        font-size: 1.4rem;
    }
}

.hamburger-menu .hamburger {
    width: 60px;
    height: 20px;
    position: relative;
    margin-left: 10px;
    -webkit-transition: 0.3s;
    -moz-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
}

@media only screen and (max-width: 767px) {
    .hamburger-menu .hamburger {
        width: 40px;
        margin-left: 0;
    }
}

.hamburger-menu .hamburger.is-active span:nth-child(1) {
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%) rotate(20deg);
    -moz-transform: translate(-50%, -50%) rotate(20deg);
    -ms-transform: translate(-50%, -50%) rotate(20deg);
    -o-transform: translate(-50%, -50%) rotate(20deg);
    transform: translate(-50%, -50%) rotate(20deg);
}

.hamburger-menu .hamburger.is-active span:nth-child(2) {
    opacity: 0;
}

.hamburger-menu .hamburger.is-active span:nth-child(3) {
    bottom: auto;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%) rotate(-20deg);
    -moz-transform: translate(-50%, -50%) rotate(-20deg);
    -ms-transform: translate(-50%, -50%) rotate(-20deg);
    -o-transform: translate(-50%, -50%) rotate(-20deg);
    transform: translate(-50%, -50%) rotate(-20deg);
}

.hamburger-menu .hamburger>span {
    width: 100%;
    height: 2px;
    background-color: #FFF;
    position: absolute;
    left: 0;
    -webkit-transition: 0.3s;
    -moz-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
}

.hamburger-menu .hamburger>span:nth-child(1) {
    top: 0;
}

.hamburger-menu .hamburger>span:nth-child(2) {
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
}

.hamburger-menu .hamburger>span:nth-child(3) {
    bottom: 0;
}

.gnav {
    height: 100vh;
    width: 70vw;
    min-width: 700px;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    background: #820000;
    background: linear-gradient(90deg, #820000 0%, #e60000 62%, #e60000 100%);
    z-index: -1;
    opacity: 0;
    -webkit-transition: all 0.2s;
    -moz-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
}

@media only screen and (max-width: 767px) {
    .gnav {
        min-width: inherit;
        width: 100%;
        height: auto;
        bottom: auto;
        left: 0;
    }
}

.gnav.is-active {
    z-index: 999;
    opacity: 1;
}

.gnav .inner {
    height: 100%;
    position: relative;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
}

.gnav .inner h2 {
    max-width: 300px;
    display: block;
    position: absolute;
    left: 0;
    top: 40px;
}

@media only screen and (min-width: 768px) {
    .gnav .inner h2 {
        cursor: pointer;
        -webkit-transition: 0.3s;
        -moz-transition: 0.3s;
        -o-transition: 0.3s;
        transition: 0.3s;
    }

    .gnav .inner h2:hover {
        opacity: .7;
    }
}

@media only screen and (max-width: 767px) {
    .gnav .inner h2 {
        max-width: 235px;
        top: 13px;
    }
}

.gnav .inner nav {
    width: 100%;
    text-align: center;
}

@media only screen and (max-width: 767px) {
    .gnav .inner nav {
        padding: 70px 0 40px;
    }
}

.gnav .inner nav ul li:nth-child(n + 2) {
    margin-top: 50px;
}

@media only screen and (max-width: 767px) {
    .gnav .inner nav ul li:nth-child(n + 2) {
        margin-top: 30px;
    }
}

.gnav .inner nav ul li a {
    font-family: "Arial", "メイリオ";
    color: #FFF;
    font-size: 40px;
    font-size: 4rem;
}

@media only screen and (max-width: 1060px) {
    .gnav .inner nav ul li a {
        font-size: 33px;
        font-size: 3.3rem;
    }
}

@media only screen and (max-width: 767px) {
    .gnav .inner nav ul li a {
        font-size: 17px;
        font-size: 1.7rem;
    }
}

main.about {
    padding-bottom: 160px;
}

@media only screen and (max-width: 767px) {
    main.about {
        padding-bottom: 60px;
    }
}

main.about .mv {
    padding-top: 120px;
}

@media only screen and (max-width: 767px) {
    main.about .mv {
        padding-top: 40px;
    }
}

main.about .mv .heading {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}

main.about .mv .heading .left {
    width: 50%;
    padding-top: 30px;
}

@media only screen and (max-width: 767px) {
    main.about .mv .heading .left {
        width: 100%;
        padding-top: 0;
    }
}

main.about .mv .heading .left h2 {
    font-family: "Arial", "メイリオ";
}

main.about .mv .heading .left h2 small {
    font-size: 60px;
    font-size: 6rem;
    display: block;
    margin-bottom: 15px;
}

@media only screen and (max-width: 767px) {
    main.about .mv .heading .left h2 small {
        font-size: 34px;
        font-size: 3.4rem;
        margin-bottom: 5px;
    }
}

main.about .mv .heading .left h2 em {
    font-size: 140px;
    font-size: 14rem;
    line-height: 0.857142857;
}

@media only screen and (max-width: 767px) {
    main.about .mv .heading .left h2 em {
        font-size: 79px;
        font-size: 7.9rem;
        line-height: 0.857169835;
    }
}

main.about .mv .heading .left p {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 2.75;
    letter-spacing: 0.05em;
    font-weight: bold;
    margin-top: 60px;
}

@media only screen and (max-width: 767px) {
    main.about .mv .heading .left p {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 2;
        margin-top: 30px;
    }
}

main.about .mv .heading figure {
    width: 50%;
}

@media only screen and (max-width: 767px) {
    main.about .mv .heading figure {
        width: 100%;
        text-align: center;
        margin-top: 25px;
    }

    main.about .mv .heading figure img {
        width: 265px;
    }
}

main.about .mv .point {
    margin-top: 100px;
    display: -webkit-flex;
    display: flex;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point {
        margin-top: 23px;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

main.about .mv .point>li {
    width: calc(100% / 3);
    padding-left: 30px;
    position: relative;
}

@media only screen and (min-width: 768px) {
    main.about .mv .point>li {
        padding-top: 5px;
    }

    main.about .mv .point>li:before {
        content: '';
        width: 1px;
        height: 100%;
        background-color: #e60000;
        position: absolute;
        left: 0;
        top: 51%;
        -webkit-transform: translateY(-50%);
        -moz-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        -o-transform: translateY(-50%);
        transform: translateY(-50%);
    }
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li {
        width: 100%;
        padding-left: 20px;
    }

    main.about .mv .point>li:before {
        content: '';
        width: 1px;
        height: calc(100% - 4px);
        background-color: #e60000;
        position: absolute;
        left: 0;
        top: 51%;
        -webkit-transform: translateY(-50%);
        -moz-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        -o-transform: translateY(-50%);
        transform: translateY(-50%);
    }

    main.about .mv .point>li:nth-child(n + 2) {
        margin-top: 35px;
    }
}

main.about .mv .point>li span em {
    font-size: 40px;
    font-size: 4rem;
    color: #e60000;
    font-family: "Arial", "メイリオ";
    display: block;
    margin-bottom: 10px;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li span em {
        font-size: 25px;
        font-size: 2.5rem;
        margin-bottom: 4px;
    }
}

main.about .mv .point>li span small {
    font-size: 14px;
    font-size: 1.4rem;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li span small {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

main.about .mv .point>li .detail {
    margin-top: 60px;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li .detail {
        margin-top: 25px;
    }
}

main.about .mv .point>li .detail .strong-txt {
    max-width: 280px;
    width: 100%;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li .detail .strong-txt {
        max-width: 240px;
    }
}

main.about .mv .point>li .detail p {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.75;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li .detail p {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.4;
    }
}

main.about .mv .point>li .detail ol {
    margin-top: 20px;
}

main.about .mv .point>li .detail ol>li {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}

main.about .mv .point>li .detail ol>li:nth-child(n + 2) {
    margin-top: 20px;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li .detail ol>li:nth-child(n + 2) {
        margin-top: 15px;
    }
}

main.about .mv .point>li .detail ol>li .num {
    font-size: 30px;
    font-size: 3rem;
    color: #e60000;
    font-family: "Arial", "メイリオ";
    margin-right: 18px;
    flex-shrink: 0;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li .detail ol>li .num {
        margin-right: 9px;
        position: relative;
        top: -1px;
    }
}

main.about .mv .point>li .detail ol>li .item em {
    font-size: 16px;
    font-size: 1.6rem;
    letter-spacing: 0.05em;
    font-weight: bold;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li .detail ol>li .item em {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

main.about .mv .point>li .detail ol>li .item span {
    font-size: 14px;
    font-size: 1.4rem;
    letter-spacing: 0.05em;
}

@media only screen and (max-width: 767px) {
    main.about .mv .point>li .detail ol>li .item span {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

main.about .mv .point>li .detail strong {
    font-size: 16px;
    font-size: 1.6rem;
    letter-spacing: 0.05em;
    line-height: 1.75;
    font-weight: bold;
}

main.about .identity {
    margin-top: 220px;
}

@media only screen and (max-width: 767px) {
    main.about .identity {
        margin-top: 85px;
    }
}

main.about .identity h3 {
    font-size: 50px;
    font-size: 5rem;
    font-family: "Arial", "メイリオ";
    font-weight: bold;
}

@media only screen and (max-width: 767px) {
    main.about .identity h3 {
        font-size: 30px;
        font-size: 3rem;
    }
}

main.about .identity .desc em {
    font-size: 18px;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.555555556;
}

@media only screen and (max-width: 767px) {
    main.about .identity .desc em {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

main.about .identity .desc p {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.75;
    margin-top: 12px;
}

@media only screen and (max-width: 767px) {
    main.about .identity .desc p {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.6;
        margin-top: 6px;
    }
}

main.about .identity .logo {
    margin-top: 90px;
    background-color: #eeeeee;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    padding: 80px 10% 80px;
}

@media only screen and (max-width: 767px) {
    main.about .identity .logo {
        margin-top: 25px;
        padding: 40px 22px 20px;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

main.about .identity .logo .img {
    width: 50%;
}

@media only screen and (max-width: 767px) {
    main.about .identity .logo .img {
        width: 100%;
        text-align: center;
    }
}

main.about .identity .logo .img img {
    max-width: 474px;
    width: 100%;
}

@media only screen and (max-width: 767px) {
    main.about .identity .logo .img img {
        max-width: 237px;
    }
}

main.about .identity .logo .desc {
    width: 50%;
    padding-left: 10%;
}

@media only screen and (max-width: 767px) {
    main.about .identity .logo .desc {
        width: 100%;
        padding-left: 0;
        margin-top: 35px;
    }
}

main.about .identity .info {
    display: -webkit-flex;
    display: flex;
    margin-top: 50px;
}

@media only screen and (max-width: 767px) {
    main.about .identity .info {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        margin-top: 25px;
    }
}

main.about .identity .info>li {
    width: 50%;
    padding-right: 10%;
}

@media only screen and (max-width: 767px) {
    main.about .identity .info>li {
        width: 100%;
        padding-right: 0;
    }

    main.about .identity .info>li:nth-child(n + 2) {
        margin-top: 25px;
    }
}

main.about .identity .ratio {
    width: 100vw;
    position: relative;
    left: calc(((100vw - 1200px) / 2) * -1);
    display: -webkit-flex;
    display: flex;
    margin: 90px 0 50px;
}

@media only screen and (max-width: 767px) {
    main.about .identity .ratio {
        left: -30px;
        margin: 25px 0 25px;
    }
}

main.about .identity .ratio>div {
    width: 50%;
    color: #FFF;
    text-align: right;
    font-family: "Arial", "メイリオ";
    padding: 12px 10px 16px;
}

@media only screen and (max-width: 767px) {
    main.about .identity .ratio>div {
        padding: 10px 10px 30px;
    }
}

main.about .identity .ratio>div.red {
    background-color: #e60000;
}

main.about .identity .ratio>div.gray {
    background-color: #5a5a5a;
}

main.about .identity .ratio>div em {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.555555556;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.about .identity .ratio>div em {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.166666667;
    }
}

main.about .identity .ratio>div small {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.1;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.about .identity .ratio>div small {
        line-height: 1.2;
    }
}

main.action {
    padding-bottom: 150px;
}

@media only screen and (max-width: 767px) {
    main.action {
        padding-bottom: 80px;
    }
}

main.action .mv {
    padding-top: 40px;
}

@media only screen and (max-width: 767px) {
    main.action .mv {
        padding-top: 20px;
    }
}

@media only screen and (max-width: 767px) {
    main.action .mv .inner {
        width: 100%;
    }
}

main.action .mv .inner figure figcaption {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
    margin-bottom: 40px;
}

@media only screen and (max-width: 767px) {
    main.action .mv .inner figure figcaption {
        margin-bottom: 20px;
        -webkit-justify-content: flex-start;
        justify-content: flex-start;
        padding-left: 30px;
    }
}

main.action .mv .inner figure figcaption small {
    color: #e60000;
    font-size: 14px;
    font-size: 1.4rem;
    font-weight: bold;
    text-transform: uppercase;
}

@media only screen and (max-width: 767px) {
    main.action .mv .inner figure figcaption small {
        font-size: 14px;
        font-size: 1.4rem;
        flex-shrink: 0;
    }
}

main.action .mv .inner figure figcaption em {
    font-size: 20px;
    font-size: 2rem;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin-left: 20px;
}

@media only screen and (max-width: 767px) {
    main.action .mv .inner figure figcaption em {
        font-size: 14px;
        font-size: 1.4rem;
        margin-left: 10px;
        white-space: nowrap;
        display: block;
    }
}

main.action .mv .inner h2 {
    font-family: "Arial", "メイリオ";
    color: red;
    margin-top: 10px;
}

@media only screen and (max-width: 767px) {
    main.action .mv .inner h2 {
        margin-top: 2px;
        padding-left: 5px;
    }
}

main.action .mv .inner h2 span {
    font-size: 70px;
    font-size: 7rem;
}

@media only screen and (max-width: 767px) {
    main.action .mv .inner h2 span {
        font-size: 26px;
        font-size: 2.6rem;
    }
}

main.action .mv .inner h2 em {
    font-size: 125px;
    font-size: 12.5rem;
    display: inline-block;
    margin-left: 10px;
}

@media only screen and (max-width: 767px) {
    main.action .mv .inner h2 em {
        font-size: 47px;
        font-size: 4.7rem;
        margin-left: 4px;
    }
}

main.action .info {
    margin-top: 10px;
}

@media only screen and (max-width: 767px) {
    main.action .info {
        margin-top: 10px;
    }
}

main.action .info h3 {
    margin-bottom: 95px;
}

@media only screen and (max-width: 767px) {
    main.action .info h3 {
        margin-bottom: 45px;
    }
}

main.action .info h3 em {
    font-size: 34px;
    font-size: 3.4rem;
    line-height: 1.470588235;
    font-weight: bold;
}

@media only screen and (max-width: 767px) {
    main.action .info h3 em {
        font-size: 20px;
        font-size: 2rem;
        line-height: 1.26;
    }
}

main.action .info h3 time {
    font-size: 14px;
    font-size: 1.4rem;
    font-family: "Arial", "メイリオ";
    display: block;
    color: #999999;
    margin-top: 5px;
}

@media only screen and (max-width: 767px) {
    main.action .info h3 time {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

main.action .info p {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.75;
    text-align: justify;
}

@media only screen and (max-width: 767px) {
    main.action .info p {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.6;
    }
}

main.action .info p.strong {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 2;
    font-weight: bold;
    margin-bottom: 70px;
}

@media only screen and (max-width: 767px) {
    main.action .info p.strong {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.6;
        margin-bottom: 40px;
    }
}

main.action .info article section:nth-child(n + 2) {
    margin-top: 90px;
}

@media only screen and (max-width: 767px) {
    main.action .info article section:nth-child(n + 2) {
        margin-top: 45px;
    }
}

main.action .info article section h4 {
    font-size: 24px;
    font-size: 2.4rem;
    font-weight: bold;
    letter-spacing: 0.1em;
    color: #e60000;
    line-height: 1.4;
    margin-bottom: 50px;
    border-top: #e60000 solid 2px;
    padding-top: 14px;
}

@media only screen and (max-width: 767px) {
    main.action .info article section h4 {
        font-size: 16px;
        font-size: 1.6rem;
        line-height: 1.4;
        margin-bottom: 30px;
        padding-top: 10px;
    }
}

main.action .info article section h4 sup {
    font-size: 14px;
    font-size: 1.4rem;
    vertical-align: top;
}

@media only screen and (max-width: 767px) {
    main.action .info article section h4 sup {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

main.action .info article section h5 {
    font-size: 18px;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: 0.1em;
    line-height: 1.6;
    padding-left: 34px;
    position: relative;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.action .info article section h5 {
        font-size: 15px;
        font-size: 1.5rem;
        padding-left: 24px;
    }
}

main.action .info article section h5:before {
    content: '';
    width: 20px;
    height: 1px;
    background-color: #5a5a5a;
    position: absolute;
    top: 13px;
    left: 0;
}

@media only screen and (max-width: 767px) {
    main.action .info article section h5:before {
        top: 11px;
        width: 14px;
    }
}

main.action .info article section ol.typeA {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}

main.action .info article section ol.typeA>li {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
}

@media only screen and (min-width: 768px) {
    main.action .info article section ol.typeA>li {
        width: 50%;
        padding-right: 20px;
    }

    main.action .info article section ol.typeA>li:nth-child(n + 3) {
        margin-top: 30px;
    }
}

@media only screen and (max-width: 767px) {
    main.action .info article section ol.typeA>li:nth-child(n + 2) {
        margin-top: 30px;
    }
}

main.action .info article section ol.typeA>li .num {
    font-size: 50px;
    font-size: 5rem;
    font-family: "Arial", "メイリオ";
    letter-spacing: 0.12em;
    color: #e60000;
    flex-shrink: 0;
}

@media only screen and (max-width: 767px) {
    main.action .info article section ol.typeA>li .num {
        font-size: 30px;
        font-size: 3rem;
    }
}

main.action .info article section ol.typeA>li .detail {
    padding-left: 14px;
}

main.action .info article section ol.typeA>li .detail em {
    font-size: 16px;
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 1.4;
    display: inline-block;
}

main.action .info article section ol.typeA>li .detail p {
    line-height: 1.4;
    margin-top: 8px;
}

main.action .info article section ul>li {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.75;
    padding-left: 18px;
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.action .info article section ul>li {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.485714286;
    }
}

main.action .info article section ul>li:before {
    content: '・';
    position: absolute;
    left: 0;
}

main.action .info article section ul>li:nth-child(n + 2) {
    margin-top: 0px;
}

@media only screen and (max-width: 767px) {
    main.action .info article section ul>li:nth-child(n + 2) {
        margin-top: 8px;
    }
}

main.action .info article section .fig {
    width: 100%;
    margin: 0 auto;
}

main.action .info article section .fig figcaption {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.75;
    margin-top: 12px;
}

@media only screen and (max-width: 767px) {
    main.action .info article section .fig figcaption {
        font-size: 14px;
        font-size: 1.4rem;
        margin-top: 10px;
        line-height: 1.2;
    }
}

@media only screen and (max-width: 767px) {
    main.action .info article section .fig {
        max-width: 310px;
    }
}

main.action .info .link-btn {
    text-align: center;
}

main.action .info .link-btn a {
    font-size: 16px;
    font-size: 1.6rem;
    font-weight: bold;
    color: #FFF;
    text-align: center;
    background-color: #e60000;
    padding: 14px 18px 12px;
    display: inline-block;
    min-width: 200px;
}

@media only screen and (min-width: 768px) {
    main.action .info .link-btn a {
        cursor: pointer;
        -webkit-transition: 0.3s;
        -moz-transition: 0.3s;
        -o-transition: 0.3s;
        transition: 0.3s;
    }

    main.action .info .link-btn a:hover {
        opacity: .7;
    }
}

@media only screen and (max-width: 767px) {
    main.action .info .link-btn a {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.428571429;
        padding: 12px 14px 12px;
        width: 100%;
        max-width: 400px;
    }
}

@media all and (-ms-high-contrast: none) {
    main.action .info .link-btn a {
        padding-top: 16px;
    }
}

main.action_0101 section:nth-child(1) h5 {
    margin-bottom: 30px;
}

@media only screen and (max-width: 767px) {
    main.action_0101 section:nth-child(1) h5 {
        margin-bottom: 20px;
    }
}

main.action_0101 section:nth-child(2) h5 {
    margin: 80px 0 30px;
}

@media only screen and (max-width: 767px) {
    main.action_0101 section:nth-child(2) h5 {
        margin: 40px 0 20px;
    }
}

main.action_0101 section .link-btn {
    margin: 70px auto 0;
}

@media only screen and (max-width: 767px) {
    main.action_0101 section .link-btn {
        margin: 50px auto 0;
    }
}

main.action_0102 section:nth-child(1) h5 {
    margin: 50px 0 20px;
}

@media only screen and (max-width: 767px) {
    main.action_0102 section:nth-child(1) h5 {
        margin: 20px 0 15px;
    }
}

main.action_0102 section:nth-child(1) h5:nth-of-type(2) {
    margin-top: 70px;
}

@media only screen and (max-width: 767px) {
    main.action_0102 section:nth-child(1) h5:nth-of-type(2) {
        margin-top: 30px;
    }
}

main.action_0102 section:nth-child(1) .fig {
    max-width: 700px;
}

main.action_0102 section .link-btn {
    margin: 20px auto 0;
}

@media only screen and (max-width: 767px) {
    main.action_0102 section .link-btn {
        margin: 20px auto 0;
    }
}

main.action_0102 section .banner-item {
    border: #dddddd solid 1px;
    display: block;
}

main.action_0201 section h5 {
    margin: 50px 0 20px;
}

@media only screen and (max-width: 767px) {
    main.action_0201 section h5 {
        margin: 30px 0 15px;
    }
}

main.action_0201 section .fig {
    max-width: 670px;
    margin-top: 35px !important;
}

@media only screen and (max-width: 767px) {
    main.action_0201 section .fig {
        margin-top: 20px !important;
    }
}

main.action_0201 section .link-btn {
    margin: 50px auto 0;
}

@media only screen and (max-width: 767px) {
    main.action_0201 section .link-btn {
        margin: 40px auto 0;
    }
}

main.action_0202 .fig {
    margin-bottom: 70px;
}

@media only screen and (max-width: 767px) {
    main.action_0202 .fig {
        margin-bottom: 30px;
    }
}

main.action_0202 .txt-img {
    display: -webkit-flex;
    display: flex;
}

@media only screen and (max-width: 767px) {
    main.action_0202 .txt-img {
        -webkit-flex-direction: column-reverse;
        flex-direction: column-reverse;
        -webkit-align-items: center;
        align-items: center;
        margin-top: -30px;
    }
}

main.action_0202 .txt-img p {
    width: calc(100% - 200px);
    flex-shrink: 0;
}

@media only screen and (max-width: 767px) {
    main.action_0202 .txt-img p {
        width: 100%;
    }
}

main.action_0202 .txt-img>div {
    width: 200px;
    position: relative;
    top: -30px;
    text-align: right;
}

@media only screen and (max-width: 767px) {
    main.action_0202 .txt-img>div {
        width: 100%;
        top: 0;
        text-align: center;
    }
}

main.action_0202 .txt-img>div img {
    width: 178px;
}

main.action_0202 .note {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.75;
}

main.action_0202 .note a {
    color: #e60000;
}

@media only screen and (max-width: 767px) {
    main.action_0202 .note {
        margin-top: 30px;
    }
}

main.action_0203 h5 {
    margin: 60px 0 30px;
}

@media only screen and (max-width: 767px) {
    main.action_0203 h5 {
        margin: 30px 0 15px;
    }
}

main.action_0203 .fig:nth-of-type(n + 2) {
    margin-top: 50px !important;
}

@media only screen and (max-width: 767px) {
    main.action_0203 .fig:nth-of-type(n + 2) {
        margin-top: 30px !important;
    }
}

main.action_0301 .info article section ul>li {
    font-weight: bold;
}

@media only screen and (min-width: 768px) {
    main.action_0301 .info article section ul>li {
        font-size: 16px;
        font-size: 1.6rem;
        line-height: 2;
    }
}

main.action_0301 .info article section .fig {
    max-width: 700px;
}

main.action_0301 .link-btn {
    margin: 100px auto 0;
}

@media only screen and (max-width: 767px) {
    main.action_0301 .link-btn {
        margin: 50px auto 0;
    }
}

main.action_0302 .info h3 {
    margin-bottom: 40px;
}

@media only screen and (max-width: 767px) {
    main.action_0302 .info h3 {
        margin-top: 30px;
    }
}

main.action_0302 .info .fig {
    margin-top: 30px;
}

@media only screen and (max-width: 767px) {
    main.action_0302 .info .fig {
        margin-top: 20px;
    }
}

main.action_0303 .info article section:nth-child(1) .fig {
    display: -webkit-flex;
    display: flex;
    margin-top: 30px;
}

@media only screen and (max-width: 767px) {
    main.action_0303 .info article section:nth-child(1) .fig {
        max-width: inherit;
        margin-top: 20px;
    }
}

main.action_0303 .info article section:nth-child(1) .fig>div {
    width: 33.3%;
}

main.action_0303 .info article section:nth-child(2) h5:nth-of-type(n + 2) {
    margin-top: 70px;
}

@media only screen and (max-width: 767px) {
    main.action_0303 .info article section:nth-child(2) h5:nth-of-type(n + 2) {
        margin-top: 40px;
    }
}

main.action_0303 .info article section:nth-child(2) .txt-img {
    margin-top: 20px;
}

@media only screen and (min-width: 768px) {
    main.action_0303 .info article section:nth-child(2) .txt-img {
        display: -webkit-flex;
        display: flex;
        -webkit-flex-direction: row-reverse;
        flex-direction: row-reverse;
    }
}

@media only screen and (max-width: 767px) {
    main.action_0303 .info article section:nth-child(2) .txt-img {
        overflow: hidden;
        zoom: 1;
    }
}

@media only screen and (min-width: 768px) {
    main.action_0303 .info article section:nth-child(2) .txt-img>div {
        width: 50%;
        padding-left: 50px;
    }
}

@media only screen and (max-width: 767px) {
    main.action_0303 .info article section:nth-child(2) .txt-img>div {
        width: 33%;
        float: right;
        clear: both;
        margin-left: 10px;
    }
}

@media only screen and (min-width: 768px) {
    main.action_0303 .info article section:nth-child(2) .txt-img p {
        width: 50%;
    }
}

main.action_0401 .info article section:nth-of-type(1) p {
    margin-top: 30px;
}

main.action_0401 .info article section:nth-of-type(2) h5 {
    margin: 60px 0 40px;
}

@media only screen and (max-width: 767px) {
    main.action_0401 .info article section:nth-of-type(2) h5 {
        margin: 30px 0 20px;
    }
}

main.action_0401 .info article section:nth-of-type(2) p {
    margin-top: 30px;
}

@media only screen and (max-width: 767px) {
    main.action_0401 .info article section:nth-of-type(2) p {
        margin-top: 20px;
    }
}

main.action_0402 .info article section .link-btn {
    margin-top: 35px;
}

main.action_0402 .info article section .link-btn a {
    min-width: 170px;
}

main.action .related {
    margin-top: 110px;
}

@media only screen and (max-width: 767px) {
    main.action .related {
        margin-top: 85px;
    }
}

main.action .related .action-slider {
    margin-top: 70px;
}

@media only screen and (max-width: 767px) {
    main.action .related .action-slider {
        margin-top: 40px;
    }

    main.action .related .action-slider .slide-arrow {
        top: 16px;
    }
}

main.action .related .action-slider .item span {
    margin-top: 20px;
    padding-right: 0;
}

main.communication {
    padding-bottom: 170px;
}

@media only screen and (max-width: 767px) {
    main.communication {
        padding-bottom: 70px;
    }
}

main.communication .mv {
    display: -webkit-flex;
    display: flex;
}

@media only screen and (max-width: 767px) {
    main.communication .mv {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

main.communication .mv .visual {
    width: 50%;
    height: 350px;
    background-image: url(../images/communication/mv.jpg);
    background-size: cover;
    background-position: center;
}

@media only screen and (max-width: 767px) {
    main.communication .mv .visual {
        width: 100%;
        height: 200px;
    }
}

main.communication .mv .info {
    width: 50%;
    padding-left: 70px;
    position: relative;
    min-width: 600px;
    padding-top: 60px;
}

@media only screen and (max-width: 767px) {
    main.communication .mv .info {
        width: calc(100% - 60px);
        min-width: inherit;
        padding: 0;
        margin: 15px auto 0;
    }
}

main.communication .mv .info .box h2 {
    font-family: "Arial", "メイリオ";
    font-size: 74px;
    font-size: 7.4rem;
    line-height: 0.948051948;
}

@media only screen and (max-width: 767px) {
    main.communication .mv .info .box h2 {
        font-size: 44px;
        font-size: 4.4rem;
        line-height: 0.958333333;
    }
}

main.communication .mv .info .box em {
    font-size: 20px;
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: 0.1em;
    color: #e60000;
    display: block;
    margin-top: 30px;
}

@media only screen and (max-width: 767px) {
    main.communication .mv .info .box em {
        font-size: 16px;
        font-size: 1.6rem;
        line-height: 1.176470588;
        margin-top: 10px;
    }
}

main.communication .mv .info .box .anchor-list {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    margin: 70px 0 0 -10px;
}

@media only screen and (max-width: 767px) {
    main.communication .mv .info .box .anchor-list {
        margin: 30px 0 0 -5px;
    }
}

main.communication .mv .info .box .anchor-list>a {
    font-size: 15px;
    font-size: 1.5rem;
    font-weight: bold;
    color: #5a5a5a;
    background-color: #eeeeee;
    position: relative;
    padding: 4px 22px 4px 8px;
    margin-left: 10px;
}

@media only screen and (max-width: 767px) {
    main.communication .mv .info .box .anchor-list>a {
        font-size: 14px;
        font-size: 1.4rem;
        padding: 4px 18px 4px 6px;
        margin: 0 0 5px 5px;
    }
}

main.communication .mv .info .box .anchor-list>a:after {
    content: "";
    display: block;
    right: 50%;
    width: 5px;
    height: 5px;
    border-top: 2px solid #5a5a5a;
    border-right: 2px solid #5a5a5a;
    position: absolute;
    top: 6px;
    right: 8px;
    transform: rotate(135deg);
}

@media only screen and (max-width: 767px) {
    main.communication .mv .info .box .anchor-list>a:after {
        width: 4px;
        height: 4px;
        top: 6px;
        right: 6px;
    }
}

main.communication section {
    margin-top: 120px;
}

@media only screen and (max-width: 767px) {
    main.communication section {
        margin-top: 60px;
    }
}

main.communication section .item-ttl {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.5;
    font-weight: bold;
    margin-top: 16px;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.communication section .item-ttl {
        font-size: 14px;
        font-size: 1.4rem;
        margin-top: 5px;
    }
}

main.communication section .yt {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}

@media only screen and (min-width: 768px) {
    main.communication section .yt {
        cursor: pointer;
        -webkit-transition: 0.3s;
        -moz-transition: 0.3s;
        -o-transition: 0.3s;
        transition: 0.3s;
    }

    main.communication section .yt:hover {
        opacity: .7;
    }
}

main.communication section .yt iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

main.communication section .yt img {
    position: absolute;
    top: 0;
    left: 0;
    cursor: pointer;
}

main.communication section .contents {
    margin-top: 60px;
}

@media only screen and (max-width: 767px) {
    main.communication section .contents {
        margin-top: 40px;
    }
}

main.communication section .top-contents {
    display: -webkit-flex;
    display: flex;
}

@media only screen and (max-width: 767px) {
    main.communication section .top-contents {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

main.communication section .top-contents .left {
    width: calc((100% - 100px) / 3);
}

@media only screen and (max-width: 767px) {
    main.communication section .top-contents .left {
        width: 100%;
    }
}

@media only screen and (min-width: 768px) {
    main.communication section .top-contents .right {
        width: calc((100% - (((100% - 100px) / 3) + 50px)));
        margin-left: 50px;
    }
}

@media only screen and (max-width: 767px) {
    main.communication section .top-contents .right {
        width: 100%;
        margin-top: 30px;
    }
}

main.communication section .top-contents .right-contents {
    display: -webkit-flex;
    display: flex;
}

@media only screen and (max-width: 767px) {
    main.communication section .top-contents .right-contents {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

main.communication section .top-contents .right-contents .img {
    width: 46%;
}

@media only screen and (max-width: 767px) {
    main.communication section .top-contents .right-contents .img {
        width: 100%;
    }
}

main.communication section .top-contents .right-contents .list {
    background-color: #eee;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
}

@media only screen and (min-width: 768px) {
    main.communication section .top-contents .right-contents .list {
        width: 54%;
        padding-left: 25px;
    }
}

@media only screen and (max-width: 767px) {
    main.communication section .top-contents .right-contents .list {
        width: 100%;
        padding: 20px 20px;
    }
}

main.communication section .top-contents .right-contents .list ul>li {
    font-size: 14px;
    font-size: 1.4rem;
    color: #5a5a5a;
    font-weight: bold;
    line-height: 1.571428571;
    padding-left: 14px;
    position: relative;
}

@media only screen and (max-width: 1100px) {
    main.communication section .top-contents .right-contents .list ul>li {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

@media only screen and (max-width: 900px) {
    main.communication section .top-contents .right-contents .list ul>li {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

@media only screen and (max-width: 767px) {
    main.communication section .top-contents .right-contents .list ul>li {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

@media only screen and (min-width: 768px) {
    main.communication section .top-contents .right-contents .list ul>li a {
        cursor: pointer;
        -webkit-transition: 0.3s;
        -moz-transition: 0.3s;
        -o-transition: 0.3s;
        transition: 0.3s;
    }

    main.communication section .top-contents .right-contents .list ul>li a:hover {
        opacity: .7;
    }
}

main.communication section .top-contents .right-contents .list ul>li:before {
    content: "";
    display: block;
    right: 50%;
    width: 5px;
    height: 5px;
    border-top: 2px solid #5a5a5a;
    border-right: 2px solid #5a5a5a;
    position: absolute;
    top: 8px;
    left: 0;
    transform: rotate(45deg);
}

@media only screen and (max-width: 900px) {
    main.communication section .top-contents .right-contents .list ul>li:before {
        width: 3px;
        height: 3px;
        top: 5px;
    }
}

main.communication section .post-list {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-top: 50px;
}

@media only screen and (min-width: 768px) {
    main.communication section .post-list>li {
        width: calc((100% - 150px) / 4);
        margin-left: 50px;
    }

    main.communication section .post-list>li:nth-child(4n + 1) {
        margin-left: 0;
    }

    main.communication section .post-list>li:nth-child(n + 5) {
        margin-top: 50px;
    }
}

@media only screen and (min-width: 768px) {
    main.communication section .post-list>li a {
        cursor: pointer;
        -webkit-transition: 0.3s;
        -moz-transition: 0.3s;
        -o-transition: 0.3s;
        transition: 0.3s;
    }

    main.communication section .post-list>li a:hover {
        opacity: .7;
    }
}

@media only screen and (max-width: 767px) {
    main.communication section .post-list>li {
        width: calc((100% - 20px) / 2);
    }

    main.communication section .post-list>li:nth-child(2n) {
        margin-left: 20px;
    }

    main.communication section .post-list>li:nth-child(n + 3) {
        margin-top: 20px;
    }
}

main.communication section .yt-contents {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}

@media only screen and (min-width: 768px) {
    main.communication section .yt-contents>li {
        width: calc((100% - 100px) / 3);
        margin-left: 50px;
    }

    main.communication section .yt-contents>li:nth-child(3n + 1) {
        margin-left: 0;
    }

    main.communication section .yt-contents>li:nth-child(n + 4) {
        margin-top: 40px;
    }
}

@media only screen and (max-width: 767px) {
    main.communication section .yt-contents>li {
        width: 100%;
    }

    main.communication section .yt-contents>li:nth-of-type(n + 2) {
        margin-top: 20px;
    }
}

main.index .mv {
    height: 450px;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.index .mv {
        height: 170px;
        -webkit-align-items: flex-start;
        align-items: flex-start;
        padding-top: 35px;
    }
}

main.index .mv.is-play:before {
    animation-duration: .75s;
    animation-fill-mode: forwards;
    animation-timing-function: linear;
    animation-name: play;
}

main.index .mv.no-motion:before {
    width: 100%;
    height: 100%;
}

@keyframes play {
    60% {
        width: 100%;
        height: 3%;
    }

    70% {
        width: 100%;
        height: 3%;
    }

    100% {
        width: 100%;
        height: 100%;
    }
}

main.index .mv:before {
    content: '';
    width: 0;
    height: 0;
    position: absolute;
    background: #820000;
    background: linear-gradient(90deg, #820000 0%, #e60000 62%, #e60000 100%);
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
}

main.index .mv .inner {
    position: relative;
}

main.index .mv-heading {
    max-width: 393px;
    width: 100%;
    display: block;
    position: relative;
    left: -10px;
    opacity: 0;
    -webkit-transition: left 1s cubic-bezier(0.15, 0, 0, 1), opacity 1s cubic-bezier(0.15, 0, 0, 1);
    -moz-transition: left 1s cubic-bezier(0.15, 0, 0, 1), opacity 1s cubic-bezier(0.15, 0, 0, 1);
    -o-transition: left 1s cubic-bezier(0.15, 0, 0, 1), opacity 1s cubic-bezier(0.15, 0, 0, 1);
    transition: left 1s cubic-bezier(0.15, 0, 0, 1), opacity 1s cubic-bezier(0.15, 0, 0, 1);
    visibility: hidden;
}

@media only screen and (max-width: 767px) {
    main.index .mv-heading {
        max-width: 260px;
        left: 0;
    }
}

main.index .mv-heading.is-active {
    visibility: visible;
    left: 0;
    opacity: 1;
}

main.index .mv-heading.no-motion {
    -webkit-transition: none;
    -moz-transition: none;
    -o-transition: none;
    transition: none;
}

main.index .mv .hamburger-menu {
    position: absolute;
    right: 0;
    top: 0;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
}

main.index .about {
    margin-top: -300px;
    padding-bottom: 40px;
    position: relative;
}

main.index .about .about_bg {
    position: absolute;
    bottom: -275px;
    left: 0;
    width: 100%;
    z-index: -1;
}

@media only screen and (max-width: 767px) {
    main.index .about .about_bg {
        display: none;
    }
}

@media only screen and (max-width: 767px) {
    main.index .about {
        margin-top: -30px;
        padding-bottom: 80px;
        background-image: url(../images/index/bg.png);
        background-repeat: no-repeat;
        background-size: 647.5px 324px;
        background-position: top 75% left;
    }
}

main.index .about .inner {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: flex-start;
    align-items: flex-start;
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner {
        -webkit-flex-direction: column-reverse;
        flex-direction: column-reverse;
    }
}

main.index .about .inner .left {
    padding-top: 45px;
}

@media only screen and (max-width: 1200px) {
    main.index .about .inner .left {
        width: 42%;
    }
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .left {
        width: 100%;
    }
}

main.index .about .inner .left .heading {
    padding-top: 340px;
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 2.75;
    font-weight: bold;
    letter-spacing: 0.05em;
}

@media only screen and (max-width: 1200px) {
    main.index .about .inner .left .heading {
        padding-top: 300px;
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 2;
    }
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .left .heading {
        padding-top: 0;
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 2;
    }
}

main.index .about .about-link {
    display: flex;
    justify-content: center;
    margin-top: 70px;
}

main.index .about .about-link .link:nth-of-type(2) {
    margin: 70px 0 0 30px;
    text-align: right;
}

main.index .about .about-link .link:nth-of-type(2) em {
    color: #838383;
}

main.index .about .about-link .link:nth-of-type(2) p a {
    justify-content: end;
}

main.index .about .about-link .link:nth-of-type(2) p a .text {
    color: #838383;
}

@media screen and (max-width: 920px) {
    main.index .about .about-link {
        flex-flow: column;
        width: calc(100% - 40px);
        margin: 105px auto 0;
    }
}

@media only screen and (max-width: 767px) {
    main.index .about .about-link {
        margin: 0 auto;
    }
}

@media only screen and (max-width: 767px) {
    main.index .about .about-link .link:nth-of-type(1) {
        margin: 105px 0 0 0;
    }

    main.index .about .about-link .link:nth-of-type(2) {
        margin: 60px 0 0 0;
    }
}

main.index .about .about-link .link em {
    font-family: "Arial", "メイリオ";
    font-size: 12rem;
    line-height: 0.947142857;
}

@media only screen and (max-width: 1200px) {
    main.index .about .about-link .link em {
        font-size: 8rem;
    }
}

@media only screen and (max-width: 767px) {
    main.index .about .about-link .link em {
        font-size: 75px;
        font-size: 7.5rem;
        line-height: 0.853333333;
    }
}

main.index .about .about-link .link p {
    margin-top: 4px;
}

main.index .about .about-link .link p a {
    display: flex;
    align-items: center;
    transition: opacity 0.3s;
    margin-top: 20px;
}

main.index .about .about-link .link p a:hover {
    opacity: .7;
}

main.index .about .about-link .link p a .icon {
    width: 55px;
    flex-shrink: 0;
}

main.index .about .about-link .link p a .text {
    font-size: 16px;
    font-size: 1.6rem;
    font-weight: bold;
    position: relative;
    margin-left: 12px;
    line-height: 1.6;
}

@media only screen and (max-width: 767px) {
    main.index .about .about-link .link p a .text {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

main.index .about .inner .posts {
    max-width: 720px;
    width: 100%;
}

@media only screen and (max-width: 1200px) {
    main.index .about .inner .posts {
        width: 58%;
    }
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts {
        width: calc(100% + 40px);
        position: relative;
        left: -20px;
        padding-right: 10px;
        padding-bottom: 10px;
    }

    main.index .about .inner .posts:after {
        content: '';
        width: 100vw;
        height: calc(100% - 30px);
        background-color: #eeeeee;
        position: absolute;
        left: -10px;
        bottom: 0;
        z-index: -1;
    }

    main.index .about .inner .posts .brand-action {
        display: none;
    }
}

main.index .about .inner .posts .post-slider {
    width: 100%;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts .post-slider {
        z-index: 2;
    }
}

main.index .about .inner .posts .post-slider .slick-track {
    display: -webkit-flex;
    display: flex;
}

main.index .about .inner .posts .post-slider .item a:hover figure .img:before {
    opacity: .3;
}

main.index .about .inner .posts .post-slider .item figure {
    padding: 0 0 15px 20px;
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts .post-slider .item figure {
        padding: 0 0 10px 10px;
    }
}

main.index .about .inner .posts .post-slider .item figure.movie {
    position: relative;
}

main.index .about .inner .posts .post-slider .item figure.movie .yt {
    width: 100%;
    padding-top: 55.7%;
    height: 0;
    position: relative;
}

main.index .about .inner .posts .post-slider .item figure.movie .yt iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

main.index .about .inner .posts .post-slider .item figure.movie .yt .img {
    position: absolute;
    top: 0;
    left: 0;
    cursor: pointer;
}

main.index .about .inner .posts .post-slider .item figure .img {
    width: 100%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    padding-top: 126.67%;
    position: relative;
}

main.index .about .inner .posts .post-slider .item figure .img:before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #FFF;
    z-index: 1;
    opacity: 0;
    -webkit-transition: 0.3s;
    -moz-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
}

main.index .about .inner .posts .post-slider .item figure .img:after {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 20px 20px;
    border-color: transparent transparent #e60000 transparent;
    position: absolute;
    right: 0;
    bottom: 0;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts .post-slider .item figure .img:after {
        border-width: 0 0 10px 10px;
    }
}

main.index .about .inner .posts .post-slider .item figure figcaption {
    background-color: #e60000;
    color: #FFF;
    font-size: 14px;
    font-size: 1.4rem;
    font-family: "Arial", "メイリオ";
    font-weight: bold;
    padding: 6px 12px 6px;
    display: inline-block;
    position: absolute;
    left: 0;
    bottom: 0;
}

main.index .about .inner .posts .post-slider .item p {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.428571429;
    letter-spacing: 0.1em;
    margin-top: 14px;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts .post-slider .item p {
        font-size: 15px;
        font-size: 1.5rem;
    }
}

main.index .about .inner .posts .post-slider-pickup .item figure .img {
    padding-top: 55.7%;
}

main.index .about .inner .posts .post-slider-pickup .item figure figcaption {
    font-size: 18px;
    font-size: 1.8rem;
    padding: 6px 12px 6px;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts .post-slider-pickup .item figure figcaption {
        font-size: 14px;
        font-size: 1.4rem;
        padding: 4px 8px 4px;
    }
}

main.index .about .inner .posts .post-slider-pickup .item p {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.666666667;
    margin-top: 16px;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts .post-slider-pickup .item p {
        font-size: 15px;
        font-size: 1.5rem;
        margin-top: 10px;
        padding-left: 10px;
    }
}

main.index .about .inner .posts .post-slider .slick-prev,
main.index .about .inner .posts .post-slider .slick-next {
    top: 43%;
}

main.index .about .inner .posts .post-slider .slick-prev {
    left: -20px;
}

main.index .about .inner .posts .post-slider .slick-next {
    right: -30px;
}

main.index .about .inner .posts .post-slider .slick-prev::before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    background-image: url(../images/common/ico-arrow02.png);
    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: middle;
}

main.index .about .inner .posts .post-slider .slick-next::before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    background-image: url(../images/common/ico-arrow02.png);
    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: middle;
    transform: scale(-1, 1);
}

@media screen and (max-width: 767px) {

    main.index .about .inner .posts .post-slider .slick-prev,
    main.index .about .inner .posts .post-slider .slick-next {
        display: none !important;
    }
}

main.index .about .inner .posts .post-slider .slide-dots {
    display: -webkit-flex;
    display: flex;
    margin-top: 16px;
    gap: 3px;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts .post-slider .slide-dots {
        margin: 10px auto 0;
        width: calc(100% - 20px);
    }
}

main.index .about .inner .posts .post-slider .slide-dots>li {
    width: 10px;
    height: 10px;
    background-color: #ccc;
    border-radius: 50%;
}

main.index .about .inner .posts .post-slider .slide-dots>li:hover {
    cursor: pointer;
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts .post-slider .slide-dots>li {
        width: 8px;
        height: 8px;
    }
}

main.index .about .inner .posts .post-slider .slide-dots>li:nth-child(n + 2) {
    margin-left: 2px;
}

main.index .about .inner .posts .post-slider .slide-dots>li.slick-active {
    background-color: #e60000;
}

main.index .about .inner .posts .post-slider .slide-dots>li button {
    display: none;
}

main.index .about .inner .posts-list {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-start;
    align-items: flex-start;
    margin: -40px 0 0;
    position: relative;
    right: -120px;
    padding-bottom: 120px;
    z-index: 0;
}

@media only screen and (max-width: 1440px) {
    main.index .about .inner .posts-list {
        right: 0;
    }
}

@media only screen and (max-width: 1060px) {
    main.index .about .inner .posts-list {
        margin: 0 0 0;
    }
}

@media only screen and (max-width: 767px) {
    main.index .about .inner .posts-list {
        display: none;
    }
}

main.index .about .inner .posts-list .post-slider {
    width: calc((100% - 90px) / 2);
}

main.index .about .inner .posts-list .post-slider:nth-child(2n + 1) {
    margin-right: 90px;
    position: relative;
    top: 120px;
}

@media only screen and (max-width: 1200px) {
    main.index .about .inner .posts-list .post-slider:nth-child(2n + 1) {
        top: 60px;
    }
}

main.index .about .inner .posts-list .post-slider:nth-child(n + 3) {
    margin-top: 60px;
}

main.index .about .inner .posts .slick-dotted.slick-slider {
    margin-bottom: 0;
    position: relative;
    z-index: 1;
    margin-top: 10px;
}

main.index .about .inner .posts .brand-action {
    margin-top: 20px;
    padding-left: 20px;
}

main.index .about .inner .posts .brand-action h2 {
    color: #e60000;
    font-size: 4rem;
    text-align: right;
    font-family: "Arial", "メイリオ";
}

main.index .about .inner .posts .brand-action h2 span {
    font-size: 6rem;
    margin-left: 10px;
}

.brand-action-slider main.index .about .inner .posts .brand-action {
    width: 100%;
}

main.index .about .inner .posts .brand-action .brand-action-slider a {
    position: relative;
    display: block;
}

main.index .about .inner .posts .brand-action .brand-action-slider a img {
    width: 100%;
    height: 250px;
    object-fit: cover;
}

main.index .about .inner .posts .brand-action .brand-action-slider a .txt {
    position: absolute;
    bottom: 10px;
    left: 10px;
    width: 100%;
    z-index: 1;
}

main.index .about .inner .posts .brand-action .brand-action-slider a .txt p {
    display: inline-block;
    color: #fff;
    background: #e60000;
    padding: 10px;
    font-size: 1.2rem;
}

main.index .about .inner .posts .brand-action .brand-action-slider a .txt h3 {
    color: #fff;
    font-size: 1.4rem;
    margin-top: 10px;
    line-height: 1.5;
}

main.index .about .inner .posts .brand-action .slick-list {
    position: relative;
}

main.index .about .inner .posts .brand-action .slick-list::before {
    content: "";
    display: inline-block;
    width: 125px;
    height: 250px;
    background-image: url(../images/index/bg-glas.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-blend-mode: multiply;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1
}

main.index .about .inner .posts .brand-action .slick-list::after {
    content: "";
    display: inline-block;
    width: 125px;
    height: 250px;
    background-image: url(../images/index/bg-glas.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-blend-mode: multiply;
    position: absolute;
    top: 0;
    right: 0;
    transform: scale(-1, 1);
}

main.index .about .inner .posts .brand-action .slick-prev,
main.index .about .inner .posts .brand-action .slick-next {
    position: absolute;
    top: 50%;
    cursor: pointer;
    outline: none;
    height: 30px;
    width: 30px;
    z-index: 1;
}

main.index .about .inner .posts .brand-action .slick-prev {
    left: -0.5%;
}

main.index .about .inner .posts .brand-action .slick-prev::before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    background-image: url(../images/common/ico-arrow.png);
    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: middle;
    transform: scale(-1, 1);
}

main.index .about .inner .posts .brand-action .slick-next {
    right: -0.5%;
}

main.index .about .inner .posts .brand-action .slick-next::before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    background-image: url(../images/common/ico-arrow.png);
    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: middle;
}

/*ドットナビゲーションの設定*/

main.index .about .inner .posts .brand-action .slick-dots {
    text-align: center;
    position: relative;
    top: 20px;
}

main.index .about .inner .posts .brand-action .slick-dots li {
    display: none;
    width: auto;
    height: auto;
}

main.index .about .inner .posts .brand-action .slick-dots li:hover {
    cursor: unset;
}

main.index .about .inner .posts .brand-action .slick-dots li.slick-active {
    display: block;
}

main.index .about .inner .posts .brand-action .brand-action-list-btn {
    text-align: right;
    margin-top: 10px;
}

main.index .about .inner .posts .brand-action .brand-action-list-btn a {
    color: #e60000;
    font-size: 1.4rem;
    text-decoration: underline;
    transition: .3s;
    position: relative;
    z-index: 1;
}

main.index .about .inner .posts .brand-action .brand-action-list-btn a:hover {
    opacity: .5;
}

main.index .brand {
    overflow: hidden;
    padding-top: 40px;
}

@media only screen and (max-width: 767px) {
    main.index .brand {
        padding-top: 0;
    }
}

main.index .brand .inner {
    position: relative;
}

main.index .brand .heading {
    color: #e60000;
    padding-bottom: 130px;
}

@media only screen and (max-width: 767px) {
    main.index .brand .heading {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

main.index .brand .heading>span {
    font-family: "Arial", "メイリオ";
    width: 50%;
    padding-right: 40px;
    flex-shrink: 0;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.index .brand .heading>span {
        width: 100%;
        padding-right: 0;
    }
}

main.index .brand .heading>span small {
    font-size: 70px;
    font-size: 7rem;
}

@media only screen and (max-width: 767px) {
    main.index .brand .heading>span small {
        font-size: 35px;
        font-size: 3.5rem;
    }
}

main.index .brand .heading>span em {
    font-size: 125px;
    font-size: 12.5rem;
    display: inline-block;
    margin-left: 20px;
    white-space: nowrap;
}

@media only screen and (max-width: 767px) {
    main.index .brand .heading>span em {
        font-size: 62.5px;
        font-size: 6.25rem;
        margin-left: 15px;
    }
}

main.index .brand .heading>p {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.1em;
    font-weight: bold;
    color: #5a5a5a;
    margin-top: 30px;
}

@media only screen and (max-width: 767px) {
    main.index .brand .heading>p {
        width: 100%;
        border: none;
        margin: 15px 0 0;
        padding: 0;
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 2;
    }
}

main.index .brand .project-start {
    max-width: 960px;
    width: 100%;
    background-color: #f7f7f7;
    margin: 100px auto 90px;
    display: flex;
    padding: 44px 40px 44px 50px;
}

@media only screen and (max-width: 767px) {
    main.index .brand .project-start {
        flex-wrap: wrap;
        align-items: center;
        flex-direction: column;
        margin: 70px auto 60px;
        padding: 30px 20px;
    }
}

main.index .brand .project-start .icon {
    width: 64px;
    flex-shrink: 0;
}

main.index .brand .project-start p {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.75;
    letter-spacing: 0.1em;
    font-weight: bold;
    width: calc(100% - 64px);
    padding-left: 20px;
    color: #5a5a5a;
}

@media only screen and (max-width: 767px) {
    main.index .brand .project-start p {
        width: 100%;
        padding-left: 0;
        margin-top: 20px;
        font-size: 13px;
        font-size: 1.3rem;
        text-align: justify;
    }
}

main.index .brand .project-start p a {
    border-bottom: #5a5a5a solid 1px;
    transition: opacity 0.3s;
}

main.index .brand .project-start p a:hover {
    opacity: .7;
}

main.index .brand .message {
    padding: 60px 0 130px;
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.index .brand .message {
        padding: 33px 0 54px;
    }
}

main.index .brand .message:before {
    content: '';
    width: 0;
    height: 2px;
    background-color: #e60000;
    position: absolute;
    left: 0;
    top: 0;
    -webkit-transition: width 0.7s 0.3s;
    -webkit-transition-delay: ease-in-out;
    -moz-transition: width 0.7s 0.3s ease-in-out;
    -o-transition: width 0.7s 0.3s ease-in-out;
    transition: width 0.7s 0.3s ease-in-out;
    transform-origin: left;
}

main.index .brand .message.is-active:before {
    width: 100vw;
}

main.index .brand .message.is-active h3,
main.index .brand .message.is-active>p,
main.index .brand .message.is-active .action-slider {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
}

main.index .brand .message h3 {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    opacity: 0;
    -webkit-transition: 0.3s 0.8s ease-in-out;
    -moz-transition: 0.3s 0.8s ease-in-out;
    -o-transition: 0.3s 0.8s ease-in-out;
    transition: 0.3s 0.8s ease-in-out;
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -ms-transform: translateY(10px);
    -o-transform: translateY(10px);
    transform: translateY(10px);
}

@media only screen and (max-width: 767px) {
    main.index .brand .message h3 {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

main.index .brand .message h3 small {
    color: #e60000;
    font-size: 14px;
    font-size: 1.4rem;
    font-weight: bold;
}

@media only screen and (max-width: 767px) {
    main.index .brand .message h3 small {
        font-size: 14px;
        font-size: 1.4rem;
        display: block;
        width: 100%;
    }
}

main.index .brand .message h3 em {
    font-size: 28px;
    font-size: 2.8rem;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin-left: 20px;
    white-space: nowrap;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.index .brand .message h3 em {
        font-size: 18px;
        font-size: 1.8rem;
        line-height: 1.111111111;
        margin: 8px 0 0;
    }
}

main.index .brand .message>p {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 2;
    font-weight: bold;
    letter-spacing: 0.1em;
    margin-top: 50px;
    opacity: 0;
    -webkit-transition: 0.3s 0.8s ease-in-out;
    -moz-transition: 0.3s 0.8s ease-in-out;
    -o-transition: 0.3s 0.8s ease-in-out;
    transition: 0.3s 0.8s ease-in-out;
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -ms-transform: translateY(10px);
    -o-transform: translateY(10px);
    transform: translateY(10px);
}

@media only screen and (max-width: 767px) {
    main.index .brand .message>p {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.6;
        margin-top: 20px;
    }
}

main.index .brand .message .action-slider {
    margin-top: 60px;
    opacity: 0;
    -webkit-transition: 0.3s 0.8s ease-in-out;
    -moz-transition: 0.3s 0.8s ease-in-out;
    -o-transition: 0.3s 0.8s ease-in-out;
    transition: 0.3s 0.8s ease-in-out;
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -ms-transform: translateY(10px);
    -o-transform: translateY(10px);
    transform: translateY(10px);
}

@media only screen and (max-width: 767px) {
    main.index .brand .message .action-slider {
        margin-top: 25px;
    }

    main.index .brand .message .action-slider .slide-arrow.prev-arrow {
        right: -21px;
    }

    main.index .brand .message .action-slider .slide-arrow.next-arrow {
        right: -60px;
    }
}

main.index .related-links {
    padding: 80px 75px;
    display: flex;
    background-color: #f7f7f7;
}

@media only screen and (max-width: 767px) {
    main.index .related-links {
        flex-wrap: wrap;
        padding: 30px 24px;
    }
}

main.index .related-links-wrap {
    margin-bottom: 100px;
}

@media only screen and (max-width: 767px) {
    main.index .related-links-wrap {
        margin-bottom: 50px;
    }
}

main.index .related-links em {
    font-family: "Arial", "メイリオ";
    font-size: 38px;
    font-size: 3.8rem;
}

@media only screen and (max-width: 767px) {
    main.index .related-links em {
        font-size: 28px;
        font-size: 2.8rem;
    }
}

main.index .related-links ul {
    padding: 10px 0 0 70px;
}

@media only screen and (max-width: 767px) {
    main.index .related-links ul {
        padding: 0;
        margin-top: 20px;
    }
}

main.index .related-links ul li:nth-child(n + 2) {
    margin-top: 10px;
}

main.index .related-links ul li a {
    font-size: 15px;
    font-size: 1.5rem;
    letter-spacing: 0.05em;
    line-height: 1.5;
    font-weight: bold;
    position: relative;
    padding-left: 16px;
    display: inline-block;
    transition: opacity 0.3s;
}

main.index .related-links ul li a:hover {
    opacity: .7;
}

@media only screen and (max-width: 767px) {
    main.index .related-links ul li a {
        font-size: 14px;
        font-size: 1.4rem;
    }
}

main.index .related-links ul li a:before {
    content: '';
    position: absolute;
    top: 8px;
    left: 0;
    transform: rotate(45deg);
    width: 6px;
    height: 6px;
    border-right: 2px solid #5a5a5a;
    border-top: 2px solid #5a5a5a;
}

@media only screen and (max-width: 767px) {
    main.index .related-links ul li a:before {
        top: 6px;
    }
}

main.index .advertising {
    display: -webkit-flex;
    display: flex;
}

@media only screen and (max-width: 767px) {
    main.index .advertising {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

main.index .advertising .visual {
    width: 50%;
    height: 500px;
    background-image: url(../images/index/advertising-img.jpg);
    background-size: cover;
    background-position: center;
}

@media only screen and (max-width: 767px) {
    main.index .advertising .visual {
        width: 100%;
        height: 0;
        padding-top: 200px;
    }
}

main.index .advertising .info {
    width: 50%;
    padding-left: 70px;
    position: relative;
    min-width: 600px;
}

@media only screen and (max-width: 767px) {
    main.index .advertising .info {
        width: calc(100% - 60px);
        padding: 0 0 60px;
        margin: 10px auto 0;
        min-width: inherit;
    }
}

@media only screen and (min-width: 768px) {
    main.index .advertising .info .box {
        position: absolute;
        top: 120px;
    }
}

main.index .advertising .info .box h2 {
    font-family: "Arial", "メイリオ";
    font-size: 77px;
    font-size: 7.7rem;
    line-height: 0.95;
}

@media only screen and (min-width: 768px) {
    main.index .advertising .info .box h2 {
        white-space: nowrap;
    }
}

@media only screen and (max-width: 1200px) {
    main.index .advertising .info .box h2 {
        font-size: 60px;
        font-size: 6rem;
    }
}

@media only screen and (max-width: 767px) {
    main.index .advertising .info .box h2 {
        font-size: 44px;
        font-size: 4.4rem;
        line-height: 0.958333333;
    }
}

main.index .advertising .info .box em {
    font-size: 20px;
    font-size: 2rem;
    letter-spacing: 0.1em;
    color: #e60000;
    font-weight: bold;
    display: block;
    margin-top: 26px;
}

@media only screen and (max-width: 767px) {
    main.index .advertising .info .box em {
        font-size: 15px;
        font-size: 1.5rem;
        line-height: 1.176470588;
        margin-top: 12px;
    }
}

main.index .advertising .info .box p {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 2;
    letter-spacing: 0.05em;
    margin-top: 20px;
}

@media only screen and (max-width: 767px) {
    main.index .advertising .info .box p {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.4;
        letter-spacing: 0.1em;
        margin-top: 20px;
    }
}

main.index .advertising .info .box a {
    font-size: 14px;
    font-size: 1.4rem;
    font-weight: bold;
    text-decoration: underline;
    margin-top: 70px;
    display: inline-block;
}

@media only screen and (max-width: 767px) {
    main.index .advertising .info .box a {
        font-size: 14px;
        font-size: 1.4rem;
        margin-top: 40px;
    }
}

main.index .banner {
    padding: 70px 0 70px;
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.index .banner {
        padding: 30px 0 30px;
    }
}

main.index .banner-inner {
    max-width: 800px;
    width: calc(100% - 40px);
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

@media only screen and (max-width: 767px) {
    main.index .banner-inner {
        width: calc(100% - 60px);
    }
}

main.index .banner-inner .banner-item {
    max-width: 800px;
    width: 100%;
}

/* sponsorship 20260327 */

@media only screen and (max-width: 1200px) {
    .sponsorship_tab_br {
        display: none !important;
    }
}

main.index .sponsorship_kv {
    text-align: center;
    padding: 60px 0;
    background-image: url(../images/sponsorship/kv_bg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    color: #fff;
    position: relative;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_kv {
        padding: 40px 0;
        background-image: url(../images/sponsorship/kv_bg_sp.jpg);
    }
}

main.index .sponsorship_kv_title {
    font-size: 54px;
    font-weight: bold;
    text-shadow: 0 0 10px rgba(0, 0, 0, .7);
}

@media only screen and (max-width: 1240px) {
    main.index .sponsorship_kv_title {
        font-size: 34px;
    }
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_kv_title {
        font-size: 28px;
        line-height: 1.2;
    }
}

main.index .sponsorship_kv_text {
    font-size: 18px;
    line-height: 36px;
    font-weight: 500;
    margin-top: 40px;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_kv_text {
        font-size: 14px;
        line-height: 24px;
        margin-top: 20px;
    }
}

main.index .sponsorship_kv_subTitle {
    font-size: 38px;
    font-weight: bold;
    margin-top: 40px;
    letter-spacing: 5px;
    text-shadow: 0 0 10px rgba(0, 0, 0, .7);
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_kv_subTitle {
        font-size: 20px;
        margin-top: 20px;
        letter-spacing: 3px;
    }
}

main.index .sponsorship_kv_desc {
    font-size: 16px;
    color: #fff;
    position: absolute;
    right: 10px;
    bottom: 10px;
    text-shadow: 3px 3px 5px rgba(0, 0, 0, .8);
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_kv_desc {
        font-size: 12px;
        right: 5px;
        bottom: 5px;
    }
}

main.index .sponsorship_sec1 {
    padding: 60px 0;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec1 {
        padding: 40px 0;
    }
}

main.index .sponsorship_sec1 .inner {
    display: flex;
    align-items: flex-start;
    gap: 40px
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec1 .inner {
        flex-flow: column;
        gap: 20px
    }
}

main.index .sponsorship_sec1_title {
    font-weight: bold;
    font-size: 42px;
    line-height: 1.3;
    color: #e60000;
    white-space: nowrap;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec1_title {
        font-size: 22px;
    }
}

main.index .sponsorship_sec1_text {
    color: #000;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec1_text {
        font-size: 14px;
        line-height: 1.5;
    }
}

main.index .sponsorship_sec2 {
    background: #e60000;
    padding: 100px 0;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec2 {
        padding: 20px 0;
    }
}

main.index .sponsorship_sec2_list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 40px;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec2_list {
        gap: 10px 3%;
    }
}

main.index .sponsorship_sec2_item {
    background: #fff;
    text-align: center;
    width: 22%;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec2_item {
        width: 31%;
    }

    main.index .sponsorship_sec2_item img {
        height: 60px;
        object-fit: contain;
    }
}

main.index .sponsorship_sec2_item_title {
    font-size: 14px;
    color: #000;
    letter-spacing: 0;
    line-height: 1.8;
    padding: 20px 0;
}

main.index .sponsorship_sec2_item_title span {
    font-weight: bold;
    display: block;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec2_item_title {
        font-size: 10px;
        line-height: 1.2;
        padding: 10px 0;
    }

    main.index .sponsorship_sec2_item_title span {
        height: 20px;
        line-height: 1;
        display: flex;
        flex-flow: column;
        justify-content: center;
        align-items: center;
        margin-bottom: 5px;
    }
}


main.index .sponsorship_sec3_item {
    display: flex;
    align-items: center;
    gap: 80px;
    margin-right: calc(50% - 50vw);
    position: relative;
    z-index: 1;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_item {
        display: block;
        margin-right: 0;
        padding: 40px 0;
    }
}

main.index .sponsorship_sec3_item:nth-of-type(2n) {
    margin-right: 0;
    margin-left: calc(50% - 50vw);
    flex-flow: row-reverse;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_item:nth-of-type(2n) {
        margin-left: 0;
    }
}

main.index .sponsorship_sec3_item:nth-of-type(2n)::before {
    content: "";
    display: inline-block;
    width: 100vw;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: #F8F8F8;
    z-index: -1;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_item:nth-of-type(2n)::before {
        display: none;
    }
}

main.index .sponsorship_sec3_itemBox {
    flex: 1;
    padding: 60px 0;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_itemBox {
        flex: 1;
        padding: 0;
    }

    main.index .sponsorship_sec3_itemBox_img {
        margin: 0 calc(50% - 50vw);
        width: 100vw;
        max-width: unset;
    }
}

main.index .sponsorship_sec3_itemBox_logo {
    height: 220px;
    max-width: 180px;
    object-fit: contain;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_itemBox_logo {}
}

main.index .sponsorship_sec3_itemBox_wrap {
    margin-top: 40px;
    border-left: 10px solid #e60000;
    padding: 10px 0 10px 30px;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_itemBox_wrap {
        margin-top: 40px;
        border-left: unset;
        padding: 0;
    }
}

main.index .sponsorship_sec3_itemBox_title {
    font-size: 34px;
    color: #000;
    font-weight: bold;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_itemBox_title {
        font-size: 18px;
        line-height: 1.8;
        border-left: 6px solid #e60000;
        padding-left: 12px;
    }
}

main.index .sponsorship_sec3_itemBox_text {
    font-size: 18px;
    margin-top: 20px;
    color: #000;
    line-height: 1.7;
    padding-bottom: 80px;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_itemBox_text {
        font-size: 14px;
        margin-top: 20px;
        padding-bottom: 0;
    }
}

main.index .sponsorship_sec3_itemBox_link {
    font-size: 18px;
    color: #e60000;
    display: inline-block;
    position: relative;
    padding-left: 24px;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_itemBox_link {
        font-size: 14px;
        padding-left: 18px;
        margin-top: 40px;
    }
}

main.index .sponsorship_sec3_itemBox_link:before {
    content: '';
    position: absolute;
    top: 2px;
    left: 0;
    transform: rotate(45deg);
    width: 12px;
    height: 12px;
    border-right: 2px solid #e60000;
    border-top: 2px solid #e60000;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_itemBox_link:before {
        top: 1px;
        width: 8px;
        height: 8px;
    }
}

main.index .sponsorship_sec3_item_img {
    width: 45%;
    align-self: stretch;
    object-fit: cover;
}

@media only screen and (max-width: 767px) {
    main.index .sponsorship_sec3_item_img {
        width: 45%;
        align-self: stretch;
        object-fit: cover;
    }
}