#wpadminbar,
.grecaptcha-badge {
    display: none
}

.trans {
    transition: transform 1.2s
}

.opa {
    transition: opacity .3s;
    transition-delay: .6s
}

.lazy {
    background: #f4f4f4
}

.lazy img {
    transform: translateX(0) translateY(0) translateZ(0);
    transition: opacity .4s;
    backface-visibility: hidden;
    z-index: 1
}

.lazy .lazyload {
    opacity: 0
}

.lazy .lazyloaded {
    opacity: 1
}

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    word-wrap: break-word;
    -webkit-text-size-adjust: none;
    -webkit-tap-highlight-color: transparent
}

abbr,
address,
article,
aside,
audio,
b,
blockquote,
body,
canvas,
caption,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
p,
pre,
q,
samp,
section,
small,
span,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
ul,
var,
video {
    font-size: 100%;
    font-style: normal;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
    border: 0;
    outline: 0;
    background: 0 0
}

strong {
    font-weight: 300
}

article,
aside,
details,
em,
figcaption,
figure,
footer,
header,
hgroup,
i,
menu,
nav,
section,
strong {
    font-style: normal;
    display: block
}

nav ul {
    list-style: none
}

blockquote,
q {
    quotes: none
}

span {
    display: block
}

q:after,
q:before {
    content: '';
    content: none
}

img {
    width: 100%;
    vertical-align: bottom
}

a {
    font-size: 100%;
    display: block;
    margin: 0;
    padding: 0;
    cursor: pointer;
    vertical-align: baseline;
    text-decoration: none;
    color: #000;
    background: 0 0;
    outline: none;
}

ins {
    text-decoration: none;
    color: #000;
    background-color: #ff9
}

mark {
    font-weight: 700;
    font-style: italic;
    color: #000;
    background-color: #ff9
}

del {
    text-decoration: line-through
}

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

abbr[title],
dfn[title] {
    cursor: help;
    border-bottom: 1px dotted
}

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

hr {
    display: block;
    height: 1px;
    margin: 1em 0;
    padding: 0;
    border: 0;
    border-top: 1px solid #ccc
}

input,
select {
    vertical-align: middle
}

.swiper-container {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    list-style: none;
    padding: 0;
    z-index: 1
}

.swiper-container-vertical>.swiper-wrapper {
    flex-direction: column
}

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    box-sizing: content-box
}

.swiper-container-android .swiper-slide,
.swiper-wrapper {
    transform: translate3d(0, 0, 0)
}

.swiper-container-multirow>.swiper-wrapper {
    flex-wrap: wrap
}

.swiper-container-multirow-column>.swiper-wrapper {
    flex-wrap: wrap;
    flex-direction: column
}

.swiper-container-free-mode>.swiper-wrapper {
    transition-timing-function: ease-out;
    margin: 0 auto
}

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform
}

.swiper-slide-invisible-blank {
    visibility: hidden
}

.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
    height: auto
}

.swiper-container-autoheight .swiper-wrapper {
    align-items: flex-start;
    transition-property: transform, height
}

.swiper-container-3d {
    perspective: 1200px
}

.swiper-container-3d .swiper-cube-shadow,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-wrapper {
    transform-style: preserve-3d
}

.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10
}

.swiper-container-3d .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-container-3d .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-container-3d .swiper-slide-shadow-top {
    background-image: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-container-3d .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-container-css-mode>.swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none
}

.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar {
    display: none
}

.swiper-container-css-mode>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: start start
}

.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper {
    scroll-snap-type: x mandatory
}

.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper {
    scroll-snap-type: y mandatory
}

:root {
    --swiper-navigation-size: 44px
}

.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
    left: 10px;
    right: auto
}

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
    right: 10px;
    left: auto
}

.swiper-button-next.swiper-button-white,
.swiper-button-prev.swiper-button-white {
    --swiper-navigation-color: #ffffff
}

.swiper-button-next.swiper-button-black,
.swiper-button-prev.swiper-button-black {
    --swiper-navigation-color: #000000
}

.swiper-button-lock {
    display: none
}

.swiper-pagination {
    position: absolute;
    text-align: center;
    transition: .3s opacity;
    transform: translate3d(0, 0, 0);
    z-index: 10
}

.swiper-pagination.swiper-pagination-hidden {
    opacity: 0
}

.swiper-container-horizontal>.swiper-pagination-bullets,
.swiper-pagination-custom,
.swiper-pagination-fraction {
    bottom: 10px;
    left: 0;
    width: 100%
}

.swiper-pagination-bullets-dynamic {
    overflow: hidden;
    font-size: 0
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transform: scale(.33);
    position: relative
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
    transform: scale(1)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
    transform: scale(1)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
    transform: scale(.66)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
    transform: scale(.33)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
    transform: scale(.66)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
    transform: scale(.33)
}

.swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    display: inline-block;
    border-radius: 100%;
    background: #000;
    opacity: .2
}

button.swiper-pagination-bullet {
    border: none;
    margin: 0;
    padding: 0;
    box-shadow: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

.swiper-pagination-clickable .swiper-pagination-bullet {
    cursor: pointer
}

.swiper-pagination-bullet-active {
    opacity: 1;
    background: var(--swiper-pagination-color, var(--swiper-theme-color))
}

.swiper-container-vertical>.swiper-pagination-bullets {
    right: 10px;
    top: 50%;
    transform: translate3d(0, -50%, 0)
}

.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 6px 0;
    display: block
}

.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
    top: 50%;
    transform: translateY(-50%);
    width: 8px
}

.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    display: inline-block;
    transition: .2s transform, .2s top
}

.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 4px
}

.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap
}

.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transition: .2s transform, .2s left
}

.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transition: .2s transform, .2s right
}

.swiper-pagination-progressbar {
    background: rgba(0, 0, 0, .25);
    position: absolute
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background: var(--swiper-pagination-color, var(--swiper-theme-color));
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transform: scale(0);
    transform-origin: left top
}

.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    transform-origin: right top
}

.swiper-container-horizontal>.swiper-pagination-progressbar,
.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
    width: 100%;
    height: 4px;
    left: 0;
    top: 0
}

.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
.swiper-container-vertical>.swiper-pagination-progressbar {
    width: 4px;
    height: 100%;
    left: 0;
    top: 0
}

.swiper-pagination-white {
    --swiper-pagination-color: #ffffff
}

.swiper-pagination-black {
    --swiper-pagination-color: #000000
}

.swiper-pagination-lock {
    display: none
}

.swiper-scrollbar {
    border-radius: 10px;
    position: relative;
    -ms-touch-action: none;
    background: rgba(0, 0, 0, .1)
}

.swiper-container-horizontal>.swiper-scrollbar {
    position: absolute;
    left: 1%;
    bottom: 3px;
    z-index: 50;
    height: 5px;
    width: 98%
}

.swiper-container-vertical>.swiper-scrollbar {
    position: absolute;
    right: 3px;
    top: 1%;
    z-index: 50;
    width: 5px;
    height: 98%
}

.swiper-scrollbar-drag {
    height: 100%;
    width: 100%;
    position: relative;
    background: rgba(0, 0, 0, .5);
    border-radius: 10px;
    left: 0;
    top: 0
}

.swiper-scrollbar-cursor-drag {
    cursor: move
}

.swiper-scrollbar-lock {
    display: none
}

.swiper-zoom-container {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center
}

.swiper-zoom-container>canvas,
.swiper-zoom-container>img,
.swiper-zoom-container>svg {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain
}

.swiper-slide-zoomed {
    cursor: move
}

.swiper-lazy-preloader {
    width: 42px;
    height: 42px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -21px;
    margin-top: -21px;
    z-index: 10;
    transform-origin: 50%;
    animation: swiper-preloader-spin 1s infinite linear;
    box-sizing: border-box;
    border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
    border-radius: 50%;
    border-top-color: transparent
}

.swiper-lazy-preloader-white {
    --swiper-preloader-color: #fff
}

.swiper-lazy-preloader-black {
    --swiper-preloader-color: #000
}

@keyframes swiper-preloader-spin {
    100% {
        transform: rotate(360deg)
    }
}

.swiper-container .swiper-notification {
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
    opacity: 0;
    z-index: -1000
}

.swiper-container-fade.swiper-container-free-mode .swiper-slide {
    transition-timing-function: ease-out
}

.swiper-container-fade .swiper-slide {
    pointer-events: none;
    transition-property: opacity
}

.swiper-container-fade .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-container-cube {
    overflow: visible
}

.swiper-container-cube .swiper-slide {
    pointer-events: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    z-index: 1;
    visibility: hidden;
    transform-origin: 0 0;
    width: 100%;
    height: 100%
}

.swiper-container-cube .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-container-cube.swiper-container-rtl .swiper-slide {
    transform-origin: 100% 0
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-next+.swiper-slide,
.swiper-container-cube .swiper-slide-prev {
    pointer-events: auto;
    visibility: visible
}

.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right,
.swiper-container-cube .swiper-slide-shadow-top {
    z-index: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.swiper-container-cube .swiper-cube-shadow {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: .6;
    -webkit-filter: blur(50px);
    filter: blur(50px);
    z-index: 0
}

.swiper-container-flip {
    overflow: visible
}

.swiper-container-flip .swiper-slide {
    pointer-events: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    z-index: 1
}

.swiper-container-flip .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-container-flip .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-right,
.swiper-container-flip .swiper-slide-shadow-top {
    z-index: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

::-moz-selection {
    color: #fff;
    background: #355643
}

::selection {
    color: #fff;
    background: #355643
}

.comp {
    position: absolute;
    z-index: 1000;
    top: -12px;
    left: 0;
    width: 100%;
    pointer-events: none;
    opacity: .3
}

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

.sp-none {
    display: none !important
}

@media screen and (min-width: 767px) {
    .sp-none {
        display: block !important
    }
}

.touch-none {
    pointer-events: none
}

.is-current {
    pointer-events: none !important
}

html.wf-active {
    visibility: visible
}

body,
html {
    font-family: 'S', 'Noto Sans JP', 'Helvetica Neue', 'Yu Gothic', YuGothic, sans-serif;
    font-size: 62.5%;
    font-weight: 400;
    line-height: 1.82;
    background: #fff;
    color: #000;
    width: 100%;
    height: auto
}

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

    body,
    html {
        font-size: 48%
    }
}

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

    body,
    html {
        line-height: 1.82
    }
}

body #p-panel,
html #p-panel {
    position: fixed;
    width: 100%;
    height: 100vh;
    top: 0;
    left: 0;
    background: #000;
    z-index: 100;
    pointer-events: none;
    opacity: 0
}

.is-hidden {
    overflow: hidden;
    height: 100%
}

.pjax-cont {
    position: relative;
    z-index: 20;
    height: auto
}

@media screen and (min-width: 767px) {
    .pjax-cont {
        min-height: 100vh
    }
}

.pjax-cont .pjax-wrap {
    position: relative;
    height: auto;
    visibility: visible !important
}

.scroll-cont {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1
}

.is-mobile .scroll-cont {
    height: 100%;
    overflow-x: hidden;
    overflow-y: scroll;
    will-change: scroll-position;
    -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch
}

.is-desktop .p-prt {
    position: relative
}

.is-desktop .p-prt .p-b {
    position: absolute;
    bottom: 0;
    left: 0
}

.is-desktop #h .nav {
    opacity: 0;
    pointer-events: none
}

.is-desktop #h #btn-menu {
    opacity: 1;
    pointer-events: visible
}

.ipad #h .nav {
    opacity: 0 !important;
    pointer-events: none !important
}

.ipad #h #btn-menu {
    opacity: 1 !important;
    pointer-events: visible !important
}

.ipad .scroll-cont {
    position: fixed;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch;
    transform: translateX(0) translateY(0) translateZ(0) !important
}

.nav-hide #h {
    opacity: 1
}

/*.nav-hide #h * {
    pointer-events: none !important
}*/

.op {
    opacity: 0
}

.s-in.fade {
    opacity: 0;
    transition: opacity 1.4s
}

.s-in.fade.is-in {
    opacity: 1
}

.scale-in {
    transform: translateX(0) translateY(0) translateZ(0) scale(1.5)
}

.blank {
    position: relative;
    width: 16px;
    height: 11px
}

@media screen and (min-width: 767px) {
    .blank {
        margin-top: 2px;
        width: 18px;
        height: 14px
    }
}

.blank i {
    border: 2px solid #fff;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 12px;
    height: 8px
}

@media screen and (min-width: 767px) {
    .blank i {
        width: 14px;
        height: 10px;
        transition: border .3s
    }
}

.blank i:last-child {
    border-bottom: 2px solid transparent;
    border-left: 2px solid transparent;
    position: absolute;
    bottom: 2px;
    left: 2px;
    width: 14px;
    height: 10px
}

@media screen and (min-width: 767px) {
    .blank i:last-child {
        bottom: 2px;
        left: 2px;
        width: 16px;
        height: 12px
    }
}

#page-top #mv .scroll svg,
#page-top .s2 .flex .cell span svg,
#page-top .s5 .flex .cell a svg,
.arw-base,
.common-layout .list-common .link span svg,
.common-link span svg,
.swiper .swiper-wrapper .swiper-slide .arw svg {
    width: 10px;
    height: 10px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    fill: #fff
}

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

    #page-top #mv .scroll svg,
    #page-top .s2 .flex .cell span svg,
    #page-top .s5 .flex .cell a svg,
    .arw-base,
    .common-layout .list-common .link span svg,
    .common-link span svg,
    .swiper .swiper-wrapper .swiper-slide .arw svg {
        width: 14px;
        height: 14px
    }
}

.common-ttl {
    text-align: right
}

.common-ttl h3 {
    text-transform: uppercase;
    font-size: 9.2vw;
    letter-spacing: .14vw;
    line-height: 1.1;
    margin-bottom: 1.4vw;
    font-weight: 400;
    overflow: hidden
}

@media screen and (min-width: 767px) {
    .common-ttl h3 {
        font-size: 5vw;
        letter-spacing: .1vw;
        margin-bottom: 1vw
    }
}

.common-ttl h3.is-in i {
    transform: translateX(0) translateY(0) translateZ(0)
}

.common-ttl h3 i {
    transform: translateX(0) translateY(100%) translateZ(0);
    transition: transform 1.2s
}

.common-ttl h4 {
    font-size: 4.7vw;
    letter-spacing: .02vw;
    line-height: 1.4;
    font-weight: 400;
    overflow: hidden
}

@media screen and (min-width: 767px) {
    .common-ttl h4 {
        font-size: 1.62vw;
        letter-spacing: .02vw
    }
}

.common-ttl h4.is-in i {
    transform: translateX(0) translateY(0) translateZ(0)
}

.common-ttl h4 i {
    transform: translateX(0) translateY(100%) translateZ(0);
    transition: transform 1.4s
}

.common-head h3 {
    text-transform: uppercase;
    font-size: 3rem;
    text-indent: -2px;
    letter-spacing: .8px;
    line-height: 1.07;
    margin-bottom: 8px;
    font-weight: 400;
    color: #355643;
}

@media screen and (min-width: 767px) {
    .common-head h3 {
        font-size: 4.2rem;
        text-indent: -3px;
        letter-spacing: 1.3px;
        margin-bottom: 26px
    }
}

.common-head h4 {
    text-indent: 0;
    font-size: 1.6rem;
    letter-spacing: 0;
    line-height: 1.4;
    font-weight: 400;
    color: #355643;
}

@media screen and (min-width: 767px) {
    .common-head h4 {
        line-height: 1.5;
        text-indent: -1px;
        font-size: 2.2rem;
        letter-spacing: .4px
    }
}

#page-business #p-box-target .in .wrap .t-box .b a p,
#page-business .s1 .r .lead,
#page-company .mv .common-ttl .links a p,
#page-company .s1 .detail p,
#page-company .s2 p,
#page-top .s1 .lead,
#page-top .s3 .txts .b .t,
#page-top .s4 .txts .b .t,
#page-top .s6 .txts .t,
.common-txt {
    font-size: 1.5rem;
    text-align: justify;
}

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

    #page-business #p-box-target .in .wrap .t-box .b a p,
    #page-business .s1 .r .lead,
    #page-company .mv .common-ttl .links a p,
    #page-company .s1 .detail p,
    #page-company .s2 p,
    #page-top .s1 .lead,
    #page-top .s3 .txts .b .t,
    #page-top .s4 .txts .b .t,
    #page-top .s6 .txts .t,
    .common-txt {
        font-size: 2rem
    }
}

.common-link {
    display: flex;
    align-items: center
}

@media screen and (min-width: 767px) {
    .common-link:hover p i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    .common-link:hover p i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    .common-link:hover span svg {
        opacity: 0;
        transform: translateX(6px) translateY(-6px) translateZ(0)
    }

    .common-link:hover span svg:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

.common-link p {
    position: relative;
    font-size: 1.5rem;
    line-height: 2;
    display: inline-block;
    margin-right: 7px
}

@media screen and (min-width: 767px) {
    .common-link p {
        font-size: 1.8rem;
        margin-right: 11px;
        height: 30px
    }
}

@media screen and (min-width: 767px) and (max-width:1240px) {
    .common-link p {
        height: 24px
    }
}

.common-link p i {
    transition: opacity .3s, transform .3s;
    display: block
}

.common-link p i:last-child {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    width: 100%;
    transform: translateX(0) translateY(10px) translateZ(0)
}

.common-link span {
    width: 20px;
    height: 20px;
    background: #355643;
    position: relative;
    display: inline-block;
    top: -2px
}

@media screen and (min-width: 767px) {
    .common-link span {
        top: 1px;
        width: 30px;
        height: 30px
    }
}

.common-link span svg {
    transition: opacity .3s, transform .3s
}

.common-link span svg:last-child {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    width: 100%;
    transform: translateX(-10px) translateY(10px) translateZ(0)
}

#p-panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 50;
    background: rgba(0, 0, 0, .4);
    opacity: 0
}

.is-hidden {
    overflow: hidden;
    height: 100%
}

.pjax-cont {
    position: relative;
    z-index: 20;
    height: auto
}

@media screen and (min-width: 767px) {
    .pjax-cont {
        min-height: 100vh
    }
}

.pjax-cont .pjax-wrap {
    position: relative;
    height: auto
}

.pjax-wrap {
    visibility: visible !important
}

.nav-white #h .logo a svg {
    fill: #fff
}

.nav-white #h .nav a {
    color: #fff
}

.nav-white #h #btn-menu p {
    /* color: #fff; */
}

@media screen and (min-width: 767px) {
    .heading #h .nav {
        opacity: 1 !important;
        pointer-events: visible !important
    }
}

@media screen and (min-width: 767px) and (min-width:767px) {
    .heading #h #btn-menu {
        opacity: 0 !important;
        pointer-events: none !important
    }
}

#op {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #355643;
    z-index: 150;
    pointer-events: none
}

#op svg {
    position: absolute;
    top: 30px;
    left: 1.4vw;
    fill: #fff;
    width: calc(100px + 46.2vw);
    height: calc(26px + 10.6vw)
}

@media screen and (min-width: 767px) {
    #op svg {
        top: 50px;
        width: calc(130px + 24vw);
        height: calc(34px + 6.3vw);
        left: 2.8vw
    }
}

#h {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    transition: opacity .3s
}

#h .logo {
    position: absolute;
    top: 30px;
    left: 5vw;
    width: 100px;
    height: 26px
}

@media screen and (min-width: 767px) {
    #h .logo {
        width: 130px;
        height: 34px;
        top: 50px;
        left: 3.2vw
    }
}

#h .logo.is-white a svg {
    fill: #fff;
    transition: fill 1.4s
}

#h .logo a {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0
}

#h .logo a span {
    display: none
}

#h .logo a svg {
    fill: #365642;
    transition: fill .3s
}

#h .nav {
    display: flex;
    position: absolute;
    top: 30px;
    right: calc(3vw - 6px);
    opacity: 0;
    pointer-events: none
}

#h .nav.is-hide {
    opacity: 0 !important;
    pointer-events: none !important
}

@media screen and (min-width: 767px) {
    #h .nav {
        transition: opacity .3s;
        opacity: 0
    }
}

#h .nav a {
    color: #000;
    position: relative;
    padding: 15px 10px;
    transition: color .3s;
    opacity: 0;
    transform: translateX(0) translateY(40px) translateZ(0);
    display: block;
}

@media screen and (min-width: 767px) and (max-width:1240px) {
    #h .nav a {
        padding: 15px 5px
    }
}

@media screen and (min-width: 767px) {
    #h .nav a.is-current:before {
        transform: translateX(0) translateY(0) translateZ(0) scale(1, 1)
    }
}

#h .nav a:before {
    display: block;
    content: '';
    width: calc(100% - 20px);
    height: 1px;
    background: #355643;
    position: absolute;
    bottom: 12px;
    left: 0;
    right: 0;
    margin: auto;
    transform: translateX(0) translateY(0) translateZ(0) scale(0, 1);
    transition: transform .6s
}

@media screen and (min-width: 767px) and (max-width:1240px) {
    #h .nav a:before {
        width: calc(100% - 12px)
    }
}

@media screen and (min-width: 767px) {
    #h .nav a:hover i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    #h .nav a:hover i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    #h .nav a:last-child:hover i {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

#h .nav a i {
    text-transform: uppercase;
    font-size: 1.3rem;
    letter-spacing: .8px;
    transition: opacity .3s, transform .3s;
    display: block
}

ul.lan>li>a {
    font-size: 1.3rem;
}

@media screen and (min-width: 1660px) {

    #h .nav a i,
    ul.lan>li>a {
        font-size: 1.6rem
    }
}

#h .nav a i:last-child {
    position: absolute;
    top: 15px;
    left: 0;
    text-align: center;
    width: 100%;
    opacity: 0;
    color: #355643;
    transform: translateX(0) translateY(10px) translateZ(0)
}

#h #btn-menu {
    position: absolute;
    top: 0;
    right: 0;
    opacity: 1;
    transition: opacity .3s;
    cursor: pointer
}

@media screen and (min-width: 767px) {
    #h #btn-menu {
        top: 25px;
        opacity: 1
    }
}

#h #btn-menu.is-hide {
    opacity: 0 !important;
    pointer-events: none !important
}

@media screen and (min-width: 767px) {
    #h #btn-menu:hover p i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    #h #btn-menu:hover p i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    #h #btn-menu:hover .ico span:before {
        transition: transform .6s;
        transform: translateX(100%) translateY(0) translateZ(0)
    }

    #h #btn-menu:hover .ico span:after {
        transition: transform .6s;
        transition-delay: .4s;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    #h #btn-menu:hover .ico span:last-child:before {
        transition-delay: .2s
    }

    #h #btn-menu:hover .ico span:last-child:after {
        transition-delay: .6s
    }
}

#h #btn-menu .in {
    padding: 10px 20px
}

@media screen and (min-width: 767px) {
    #h #btn-menu .in {
        padding: 20px 3.4vw;
        display: flex
    }
}

#h #btn-menu p {
    transition: color .3s;
    font-size: 1.2rem;
    line-height: 1
}

@media screen and (min-width: 767px) {
    #h #btn-menu p {
        position: relative;
        top: 5px;
        font-size: 1.3rem;
        margin-right: 10px;
        letter-spacing: .8px
    }
}

#h #btn-menu p i {
    transition: opacity .3s, transform .3s;
    display: block
}

#h #btn-menu p i:last-child {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    color: #355643;
    transform: translateX(0) translateY(10px) translateZ(0)
}

#h #btn-menu .ico {
    position: relative;
    top: 2px;
    width: 36px;
    height: 8px
}

@media screen and (min-width: 767px) {
    #h #btn-menu .ico {
        top: 4px;
        width: 36px;
        height: 10px
    }
}

#h #btn-menu .ico span {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    width: 100%;
    height: 2px
}

#h #btn-menu .ico span:last-child {
    top: auto;
    bottom: 0
}

#h #btn-menu .ico span:after,
#h #btn-menu .ico span:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: #355643;
    transform: translateX(0) translateY(0) translateZ(0)
}

#h #btn-menu .ico span:after {
    transform: translateX(-100%) translateY(0) translateZ(0)
}

#menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 90;
    pointer-events: none;
    opacity: 0;
    transition: opacity .6s;
    background: rgba(0, 0, 0, .4)
}

#menu.is-in {
    pointer-events: visible;
    opacity: 1
}

#menu #btn-close {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 4;
    opacity: 0;
    cursor: pointer
}

@media screen and (min-width: 767px) {
    #menu #btn-close {
        top: 25px
    }
}

#menu #btn-close .in {
    padding: 27px 20px
}

@media screen and (min-width: 767px) {
    #menu #btn-close .in {
        padding: 20px 3.4vw;
        display: flex
    }
}

@media screen and (min-width: 767px) {
    #menu #btn-close:hover p i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    #menu #btn-close:hover p i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    #menu #btn-close:hover .ico span:before {
        transition: transform .6s;
        transform: translateX(100%) translateY(0) translateZ(0)
    }

    #menu #btn-close:hover .ico span:after {
        transition: transform .6s;
        transition-delay: .4s;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    #menu #btn-close:hover .ico span:last-child:before {
        transition-delay: .2s
    }

    #menu #btn-close:hover .ico span:last-child:after {
        transition-delay: .6s
    }
}

#menu #btn-close p {
    font-size: 1.1rem
}

@media screen and (max-width: 767px) {
    #menu #btn-close p {
        color: #fff
    }
}

@media screen and (min-width: 767px) {
    #menu #btn-close p {
        transition: color .3s;
        font-size: 1.3rem;
        margin-right: 10px;
        letter-spacing: .8px
    }
}

#menu #btn-close p i {
    transition: opacity .3s, transform .3s;
    display: block
}

#menu #btn-close p i:last-child {
    position: absolute;
    top: 20px;
    left: 3.4vw;
    width: 100%;
    opacity: 0;
    color: #355643;
    transform: translateX(0) translateY(10px) translateZ(0)
}

#menu #btn-close .ico {
    position: relative;
    top: -2px;
    width: 36px;
    height: 10px
}

@media screen and (min-width: 767px) {
    #menu #btn-close .ico {
        top: 4px;
        width: 36px;
        height: 10px
    }
}

#menu #btn-close .ico span {
    position: absolute;
    top: 4px;
    left: 0;
    width: 100%;
    height: 2px;
    overflow: hidden;
    transform: translateX(0) translateY(0) translateZ(0) rotate(15deg)
}

#menu #btn-close .ico span:last-child {
    top: auto;
    bottom: 4px;
    transform: translateX(0) translateY(0) translateZ(0) rotate(-15deg)
}

#menu #btn-close .ico span:after,
#menu #btn-close .ico span:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: #fff;
    transform: translateX(0) translateY(0) translateZ(0)
}

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

    #menu #btn-close .ico span:after,
    #menu #btn-close .ico span:before {
        background: #355643
    }
}

#menu #btn-close .ico span:after {
    transform: translateX(-100%) translateY(0) translateZ(0)
}

#menu .flex {
    position: relative;
    z-index: 2
}

@media screen and (max-width: 767px) {
    #menu .flex {
        padding: 41vw 6vw 200px
    }
}

@media screen and (min-width: 767px) {
    #menu .flex {
        width: 96.6%;
        bottom: 35px;
        left: 0;
        z-index: 2;
        padding-left: 64%;
        position: absolute
    }
}

#menu .flex .cell {
    width: 100%
}

#menu .flex .cell a {
    color: #000;
    position: relative;
    transition: color .3s;
    overflow: hidden;
    line-height: 2;
}

#menu .flex .cell a.is-current {
    color: #355643
}

@media screen and (min-width: 767px) {
    #menu .flex .cell a {
        margin: 4px 0
    }
}

@media screen and (min-width: 767px) {
    #menu .flex .cell a:hover i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    #menu .flex .cell a:hover i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

#menu .flex .cell a span {
    transform: translateX(0) translateY(100%) translateZ(0)
}

#menu .flex .cell a i {
    text-transform: uppercase;
    font-size: 2.4rem;
    letter-spacing: 0;
    transition: opacity .3s, transform .3s;
    display: block
}

@media screen and (min-width: 767px) {
    #menu .flex .cell a i {
        font-size: 3.2rem;
        letter-spacing: .8px
    }
}

#menu .flex .cell a i:last-child {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    color: #355643;
    transform: translateX(0) translateY(10px) translateZ(0)
}

#menu .copy {
    position: absolute;
    bottom: 30px;
    left: 3.4vw;
    z-index: 10;
    font-size: 1.2rem;
    padding-left: 40px;
    opacity: 0
}

@media screen and (min-width: 767px) {
    #menu .copy {
        font-size: 1.3rem;
        bottom: 50px;
        color: #fff;
        padding-left: 36px
    }
}

#menu .copy:before {
    display: block;
    content: '';
    width: 16px;
    height: 16px;
    background: #355643;
    position: absolute;
    top: 0;
    left: 12px
}

@media screen and (min-width: 767px) {
    #menu .copy:before {
        top: 0;
        left: 0;
        width: 20px;
        height: 20px;
        background: #fff
    }
}

#menu .white {
    position: absolute;
    top: 32vw;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    background: #fff;
    transform: translateX(-100%) translateY(0) translateZ(0)
}

@media screen and (min-width: 767px) {
    #menu .white {
        top: 0;
        left: 58vw;
        transform: translateX(0) translateY(-100%) translateZ(0)
    }
}

#menu .red {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #355643;
    transform: translateX(-100%) translateY(0) translateZ(0)
}

@media screen and (min-width: 767px) {
    #menu .red {
        transform: translateX(0) translateY(-100%) translateZ(0)
    }
}


section {
    position: relative
}

.swiper {
    position: relative;
    backface-visibility: hidden;
    z-index: 1;
    transform: translateX(0) translateY(0) translateZ(0)
}

.swiper .swiper-wrapper {
    position: relative;
    backface-visibility: hidden;
    z-index: 1;
    transform: translateX(0) translateY(0) translateZ(0)
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper {
        display: flex;
        justify-content: space-between
    }
}

.swiper .swiper-wrapper .swiper-slide {
    position: relative;
    width: 100% !important;
    height: 101.7vw;
    overflow: hidden;
    backface-visibility: hidden;
    z-index: 1;
    transform: translateX(0) translateY(0) translateZ(0);
    -webkit-transform: translateX(0) translateY(0) translateZ(0)
}

.swiper.bswiper .swiper-wrapper .swiper-slide {
    margin-right: 0 !important;
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide {
        width: calc(100%/3) !important;
        height: 41.7vw
    }

    .swiper.bswiper .swiper-wrapper .swiper-slide {
        margin-right: 20px !important;
    }
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide:hover .img img {
        opacity: .6;
        transform: translateX(0) translateY(0) translateZ(0) scale(1.1)
    }

    .swiper .swiper-wrapper .swiper-slide:hover .arw svg {
        transform: translateX(6px) translateY(-6px) translateZ(0);
        opacity: 0
    }

    .swiper .swiper-wrapper .swiper-slide:hover .arw svg:last-child {
        transform: translateX(0) translateY(0) translateZ(0);
        opacity: 1
    }
}

.swiper .swiper-wrapper .swiper-slide .txts {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    padding: 18px;
    transform: translateX(0) translateY(0) translateZ(0);
    backface-visibility: hidden
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .txts {
        padding: 30px
    }
}

.swiper .swiper-wrapper .swiper-slide .txts strong {
    /* display: none; */
    font-size: 30px;
    /*    font-weight: bold;*/
    color: #fff;
}

.swiper .swiper-wrapper .swiper-slide .txts svg {
    fill: #fff;
    margin-bottom: 6px
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .txts svg {
        margin-bottom: 13px
    }
}

.swiper .swiper-wrapper .swiper-slide .txts .grande {
    width: 100px;
    height: 22px
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .txts .grande {
        width: 120px;
        height: 26px
    }
}

.swiper .swiper-wrapper .swiper-slide .txts .landix {
    width: 93px;
    height: 24px
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .txts .landix {
        width: 113px;
        height: 29px
    }
}

.swiper .swiper-wrapper .swiper-slide .txts .sumuzu {
    margin-top: 6px;
    width: 109px;
    height: 15px
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .txts .sumuzu {
        margin-top: 8px;
        width: 136px;
        height: 19px
    }
}

.swiper .swiper-wrapper .swiper-slide .txts p {
    color: #fff;
    font-size: 1.5rem;
    letter-spacing: 0
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .txts p {
        font-size: 2rem;
        letter-spacing: .2px
    }
}

.swiper .swiper-wrapper .swiper-slide .img {
    overflow: hidden;
    backface-visibility: hidden;
    position: relative;
    z-index: 0
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .img {
        background: #000
    }
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .img img {
        transition: transform .6s, opacity .6s
    }
}

.swiper .swiper-wrapper .swiper-slide .arw {
    position: absolute;
    bottom: 0;
    left: 0;
    background: #355643;
    z-index: 10;
    width: 40px;
    height: 40px;
    transform: translateX(0) translateY(0) translateZ(0)
}

@media screen and (min-width: 767px) {
    .swiper .swiper-wrapper .swiper-slide .arw {
        width: 60px;
        height: 60px
    }
}

.swiper .swiper-wrapper .swiper-slide .arw svg {
    transition: all .3s
}

.swiper .swiper-wrapper .swiper-slide .arw svg:last-child {
    opacity: 0;
    transform: translateX(-10px) translateY(10px) translateZ(0)
}

#page-top {
    background: #fff
}

#page-top #mv {
    position: relative;
    background: #fff;
    padding-top: 150px
}

@media screen and (min-width: 767px) {
    #page-top #mv {
        padding-top: 280px
    }
}

@media screen and (min-width: 767px) and (max-width:1240px) {
    #page-top #mv {
        padding-top: 220px
    }
}

@media screen and (min-width: 1660px) {
    #page-top #mv {
        padding-top: 340px
    }
}

#page-top #mv #copy {
    position: relative;
    width: 100%;
    font-weight: 400;
    font-size: 2.2rem;
    letter-spacing: 0;
    line-height: 1.2;
    margin-bottom: 12px;
    display: flex;
    justify-content: flex-end;
    padding-right: 7vw;
    color: #355643;
}

@media screen and (min-width: 767px) {
    #page-top #mv #copy {
        white-space: nowrap;
        width: 100%;
        font-size: 4.2vw;
        letter-spacing: 0;
        line-height: 1.2;
        padding-right: 1.4vw;
        margin-bottom: 30px
    }
}

@media screen and (min-width: 767px) and (max-width:1240px) {
    #page-top #mv #copy {
        font-size: 4vw
    }
}

@media screen and (min-width: 1660px) {
    #page-top #mv #copy {
        font-size: 7.2rem
    }
}

#page-top #mv #copy.is-in span i {
    transform: translateX(0) translateY(0) translateZ(0)
}

#page-top #mv #copy .r {
    white-space: nowrap;
    width: auto
}

@media screen and (min-width: 767px) {
    #page-top #mv #copy .r {
        width: auto;
    }
}

@media screen and (min-width: 767px) and (max-width:1240px) {
    #page-top #mv #copy .r {
        width: auto
    }
}

@media screen and (min-width: 1660px) {
    #page-top #mv #copy .r {
        width: 762px
    }
}

#page-top #mv #copy span {
    overflow: hidden
}

#page-top #mv #copy span:last-child i {
    transition-delay: .1s
}

#page-top #mv #copy span i {
    transform: translateX(0) translateY(100%) translateZ(0);
    transition: transform 1s
}

#page-top #mv .img {
    position: relative;
    width: 100vw;
    overflow: hidden
}

@media screen and (min-width: 767px) {
    #page-top #mv .img {
        width: 100vw;
        height: 69.5vw
    }
}

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

    #page-top #mv .img #pl,
    #page-top #mv .img #pr {
        position: absolute;
        top: 0;
        width: 1.5vw;
        height: 100%;
        background: #fff;
        z-index: 10
    }
}

@media screen and (min-width: 767px) {
    #page-top #mv .img #pl {
        left: 0;
        transform-origin: top left
    }
}

@media screen and (min-width: 767px) {
    #page-top #mv .img #pr {
        right: 0;
        transform-origin: top right
    }
}

#page-top #mv .img #op-scale {
    transform: translateX(0) translateY(0) translateZ(0) scale(1.4);
    transition: transform 1.1s
}

#page-top #mv .img #op-scale.is-in {
    transform: translateX(0) translateY(0) translateZ(0) scale(1)
}

@media screen and (min-width: 767px) {
    #page-top #mv .img #op-scale {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0
    }
}

@media screen and (min-width: 767px) {
    #page-top #mv .img img {
        position: absolute;
        bottom: 0;
        left: 0
    }
}

#page-top #mv .scroll {
    position: absolute;
    width: 50px;
    height: 50px;
    background: #355643;
    top: 192px;
    left: 20px;
    cursor: pointer
}

@media screen and (min-width: 767px) {
    #page-top #mv .scroll {
        width: 90px;
        height: 90px;
        top: auto;
        bottom: calc(69.5vw - 45px);
        left: 3.4vw
    }
}

@media screen and (min-width: 767px) {
    #page-top #mv .scroll:hover svg {
        opacity: 0;
        transform: translateX(0) translateY(6px) translateZ(0) rotate(135deg)
    }

    #page-top #mv .scroll:hover svg:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0) rotate(135deg)
    }
}

#page-top #mv .scroll svg {
    transform: translateX(0) translateY(0) translateZ(0) rotate(135deg);
    transition: opacity .3s, transform .3s
}

#page-top #mv .scroll svg:last-child {
    opacity: 0;
    transform: translateX(0) translateY(-10px) translateZ(0) rotate(135deg)
}

#page-top .s1 {
    padding: 60px 7vw 0;
    background: #fff
}

@media screen and (min-width: 767px) {
    #page-top .s1 {
        padding: 100px 3.4vw 0
    }
}

#page-top .s1 .common-head {
    margin-bottom: 30px
}

@media screen and (min-width: 767px) {
    #page-top .s1 .common-head {
        margin-bottom: 80px;
    }
}

#page-top .s1 .lead {
    margin-bottom: 30px;
    color: #355643;
    text-align: justify
}

@media screen and (min-width: 767px) {
    #page-top .s1 .lead {
        padding-left: 32vw;
        margin-bottom: 80px
    }
}

@media screen and (max-width: 767px) {
    #page-top .s1 .common-link {
        margin-bottom: 60px
    }
}

@media screen and (min-width: 767px) {
    #page-top .s1 .common-link {
        position: absolute;
        top: 100px;
        right: 3.4vw
    }
}

#page-top .s2 {
    padding: 80px 7vw 100px
}

@media screen and (min-width: 767px) {
    #page-top .s2 {
        padding: 140px 3.4vw 0
    }
}

@media screen and (min-width: 767px) and (max-width:767px) {
    #page-top .s2:before {
        display: block;
        content: '';
        width: 93.2vw;
        height: 1px;
        position: absolute;
        top: 80px;
        right: 0;
        left: 0;
        margin: auto;
        background: #eaeaea
    }
}

#page-top .s2 .common-head {
    margin-bottom: 30px
}

@media screen and (min-width: 767px) {
    #page-top .s2 .common-head {
        margin-bottom: 80px;
    }
}


@media screen and (min-width: 767px) {
    #page-top .s2 .flex {
        display: flex;
        justify-content: space-between;
        margin-bottom: 92px
    }
}

#page-top .s2 .flex .cell {
    color: #000
}

#page-top .s2 .flex .cell:nth-child(3),
#page-top .s2 .flex .cell:nth-child(4) {
    display: block;
}

@media screen and (max-width: 767px) {
    #page-top .s2 .flex .cell {
        margin-bottom: 40px
    }

    #page-top .s2 .flex .cell:nth-child(3),
    #page-top .s2 .flex .cell:nth-child(4) {
        display: none;
    }
}

@media screen and (min-width: 767px) {
    #page-top .s2 .flex .cell {
        width: 20.8vw
    }
}

@media screen and (min-width: 767px) {
    #page-top .s2 .flex .cell:hover span i {
        color: #355643
    }

    #page-top .s2 .flex .cell:hover span svg {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    #page-top .s2 .flex .cell:hover p {
        color: #355643
    }
}

#page-top .s2 .flex .cell span {
    font-size: 1.3rem;
    letter-spacing: 1.4px;
    position: relative;
    margin-bottom: 8px
}

@media screen and (max-width: 767px) {
    #page-top .s2 .flex .cell span {
        padding-top: 24px;
        border-top: 1px solid #eaeaea
    }
}

@media screen and (min-width: 767px) {
    #page-top .s2 .flex .cell span {
        border-bottom: 1px solid #eaeaea;
        font-size: 1.3rem;
        letter-spacing: 1.4px;
        padding-bottom: 18px;
        margin-bottom: 22px
    }
}

#page-top .s2 .flex .cell span i {
    margin-right: 6px;
    position: relative;
    display: inline-block
}

@media screen and (min-width: 767px) {
    #page-top .s2 .flex .cell span i {
        margin-right: 16px;
        transition: color .3s
    }

    #page-top .s2 .flex .cell span i:nth-child(2):before {
        display: block;
        content: '';
        width: 1px;
        height: 10px;
        background: #eaeaea;
        position: absolute;
        top: 4px;
        left: -11px
    }
}

#page-top .s2 .flex .cell span svg {
    fill: #355643;
    position: absolute;
    top: 27px;
    right: 0;
    bottom: auto;
    left: auto
}

@media screen and (min-width: 767px) {
    #page-top .s2 .flex .cell span svg {
        top: 3px;
        right: 0;
        opacity: 0;
        transform: translateX(-10px) translateY(10px) translateZ(0);
        transition: opacity .3s, transform .3s
    }
}

#page-top .s2 .flex .cell p {
    text-align: justify;
    font-size: 1.5rem;
    color: #355643;
}

@media screen and (min-width: 767px) {
    #page-top .s2 .flex .cell p {
        font-size: 1.5rem;
        transition: color .3s
    }
}

@media screen and (min-width: 767px) {
    #page-top .s2 .common-link {
        position: absolute;
        top: 140px;
        right: 3.4vw
    }
}

#page-top .s2 #logo-move {
    border-top: 1px solid #eaeaea;
    height: 50vw;
    width: 100%;
    position: relative
}

@media screen and (max-width: 767px) {
    #page-top .s2 #logo-move {
        display: none
    }
}

#page-top .s2 #logo-move svg {
    position: absolute;
    right: 0;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 90vw;
    height: 23vw;
    fill: #fff;
    stroke: #355643;
    stroke-width: .05px
}

#page-top .s2 #logo-move #logo-move1 {
    fill: #355643;
    stroke: transparent;
    z-index: 6
}

#page-top .s2 #logo-move #logo-move2 {
    transform: translateX(0) translateY(-10px) translateZ(0);
    z-index: 5
}

#page-top .s2 #logo-move #logo-move3 {
    transform: translateX(0) translateY(-20px) translateZ(0);
    z-index: 4
}

#page-top .s2 #logo-move #logo-move4 {
    transform: translateX(0) translateY(-30px) translateZ(0);
    z-index: 3
}

#page-top .s2 #logo-move #logo-move5 {
    transform: translateX(0) translateY(-40px) translateZ(0);
    z-index: 2
}

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

    #page-top .s3,
    #page-top .s4 {
        display: flex
    }
}

#page-top .s3 .img,
#page-top .s4 .img {
    overflow: hidden;
    position: relative;
    width: 100%
}

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

    #page-top .s3 .img,
    #page-top .s4 .img {
        height: 100vw
    }
}

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

    #page-top .s3 .img,
    #page-top .s4 .img {
        width: 50%
    }
}

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

    #page-top .s3 .img .scale-in,
    #page-top .s4 .img .scale-in {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 100%
    }

    #page-top .s3 .img .scale-in img,
    #page-top .s4 .img .scale-in img {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%
    }
}

#page-top .s3 .txts,
#page-top .s4 .txts {
    position: relative;
    background: #355643;
    color: #fff;
    padding: 60px 7vw
}

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

    #page-top .s3 .txts,
    #page-top .s4 .txts {
        width: 50%;
        padding: 70px;
        display: flex;
        align-content: space-between;
        flex-wrap: wrap
    }
}

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

    #page-top .s3 .txts .common-head,
    #page-top .s4 .txts .common-head {
        margin-bottom: 30px
    }
}

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

    #page-top .s3 .txts .common-head,
    #page-top .s4 .txts .common-head {
        width: 100%;
        margin-bottom: 28vw
    }
}

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

    #page-top .s3 .txts .common-head h3,
    #page-top .s4 .txts .common-head h3 {
        margin-bottom: 16px
    }
}

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

    #page-top .s3 .txts .common-head h4,
    #page-top .s4 .txts .common-head h4 {
        line-height: 1.8
    }
}

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

    #page-top .s3 .txts .b,
    #page-top .s4 .txts .b {
        width: 100%
    }
}

#page-top .s3 .txts .b .t,
#page-top .s4 .txts .b .t {
    text-align: justify;
    color: #fff;
}

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

    #page-top .s3 .txts .b .t,
    #page-top .s4 .txts .b .t {
        margin-bottom: 20px
    }
}

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

    #page-top .s3 .txts .b .t,
    #page-top .s4 .txts .b .t {
        margin-bottom: 26px
    }
}

#page-top .s3 .txts .b a,
#page-top .s4 .txts .b a {
    color: #fff;
}

@media screen and (min-width: 767px) {
    #page-top .s4 {
        flex-direction: row-reverse
    }
}

#page-top .s5 {
    padding: 60px 7vw 82px
}

@media screen and (min-width: 767px) {
    #page-top .s5 {
        padding: 146px 3.4vw 120px;
        display: flex;
        justify-content: space-between
    }
}

@media screen and (max-width: 767px) {
    #page-top .s5 .common-head {
        margin-bottom: 50px
    }
}

@media screen and (min-width: 767px) {
    #page-top .s5 .common-head {
        width: 20.8vw
    }
}

@media screen and (min-width: 767px) {
    #page-top .s5 .flex {
        width: 69vw;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between
    }
}

#page-top .s5 .flex .cell {
    width: 100%;
    margin-bottom: 18px;
    border-top: 1px solid #eaeaea
}

@media screen and (min-width: 767px) {
    #page-top .s5 .flex .cell {
        margin-bottom: 40px;
        width: 20.8vw;
        padding-top: 24px
    }
}

@media screen and (max-width: 767px) {
    #page-top .s5 .flex .cell .b {
        display: block
    }
}

@media screen and (min-width: 767px) {
    #page-top .s5 .flex .cell .b {
        font-weight: 600
    }
}

#page-top .s5 .flex .cell a {
    position: relative;
    padding: 22px 0 0;
    font-size: 1.5rem
}

@media screen and (max-width: 767px) {
    #page-top .s5 .flex .cell a {
        display: none
    }
}

@media screen and (min-width: 767px) {
    #page-top .s5 .flex .cell a {
        padding: 4px 0;
        font-size: 1.5rem
    }
}

@media screen and (min-width: 767px) {
    #page-top .s5 .flex .cell a:hover i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    #page-top .s5 .flex .cell a:hover i:nth-child(2) {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    #page-top .s5 .flex .cell a:hover svg {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

#page-top .s5 .flex .cell a i {
    transition: opacity .3s, transform .3s;
    display: block
}

#page-top .s5 .flex .cell a i:nth-child(2) {
    position: absolute;
    top: 4px;
    left: 0;
    opacity: 0;
    width: 100%;
    color: #355643;
    transform: translateX(0) translateY(10px) translateZ(0)
}

#page-top .s5 .flex .cell a svg {
    fill: #355643;
    position: absolute;
    top: 30px;
    bottom: auto;
    left: auto
}

@media screen and (min-width: 767px) {
    #page-top .s5 .flex .cell a svg {
        top: 11px;
        opacity: 0;
        transform: translateX(-10px) translateY(10px) translateZ(0);
        transition: opacity .3s, transform .3s
    }
}

#page-top .s6 {
    color: #fff
}

#page-top .s6 .common-head {
    position: absolute;
    top: 40px;
    left: 7vw;
    z-index: 1;
    width: calc(100% - 14vw);
}

@media screen and (min-width: 767px) {
    #page-top .s6 .common-head {
        top: 68px;
        left: 3.4vw;
        z-index: 100;
        width: calc(100% - 3.4vw - 3.4vw);
    }
}

#page-top .s6 .img {
    position: relative;
    overflow: hidden;
    height: 96.4vw
}

#page-top .s6 .img img {
    height: 100%;
    width: auto;
}

@media screen and (min-width: 767px) {
    #page-top .s6 .img {
        height: 51.4vw
    }

    #page-top .s6 .img img {
        height: auto;
        width: 100%;
    }
}

@media screen and (max-width: 767px) {
    #page-top .s6 .txts {
        color: #000;
        background: #f4f4f4;
        padding: 44px 7vw 32px
    }
}

@media screen and (min-width: 767px) {
    #page-top .s6 .txts {
        position: absolute;
        top: 0;
        right: 0;
        width: 100vw;
        height: 100%;
        z-index: 100
    }
}

@media screen and (max-width: 767px) {
    #page-top .s6 .txts .t {
        margin-bottom: 40px
    }
}

@media screen and (min-width: 767px) {
    #page-top .s6 .txts .t {
        position: absolute;
        bottom: 50px;
        right: 0;
        width: 100%;
        padding: 0 3.5vw 0 35.5vw;
        opacity: .7;
    }
}

@media screen and (min-width: 767px) {
    #page-top .s6 .txts .links {
        position: absolute;
        top: 64px;
        right: 3.5vw;
        display: flex
    }
}

#page-top .s6 .txts .links a {
    display: flex
}

@media screen and (max-width: 767px) {
    #page-top .s6 .txts .links a {
        margin-bottom: 20px
    }
}

@media screen and (min-width: 767px) {
    #page-top .s6 .txts .links a {
        margin-left: 30px
    }
}

@media screen and (min-width: 767px) {
    #page-top .s6 .txts .links a:hover p i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    #page-top .s6 .txts .links a:hover p i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    #page-top .s6 .txts .links a:hover .blank i {
        border: 2px solid #355643
    }
}

#page-top .s6 .txts .links a p {
    color: #000;
    font-size: 1.5rem;
    line-height: 1.3;
    position: relative
}

@media screen and (min-width: 767px) {
    #page-top .s6 .txts .links a p {
        color: #fff;
        font-size: 1.8rem;
        line-height: 1.3
    }
}

#page-top .s6 .txts .links a p i {
    transition: transform .3s, opacity .3s;
    display: block
}

#page-top .s6 .txts .links a p i:last-child {
    position: absolute;
    top: 0;
    right: 0;
    opacity: 0;
    transform: translateX(0) translateY(10px) translateZ(0);
    color: #355643
}

#page-top .s6 .txts .links a .blank {
    position: relative;
    margin-top: 2px
}

@media screen and (min-width: 767px) {
    #page-top .s6 .txts .links a .blank {
        margin-top: 2px
    }
}

#page-top .s6 .txts .links a .blank i {
    border: 2px solid #355643
}

@media screen and (min-width: 767px) {
    #page-top .s6 .txts .links a .blank i {
        border: 2px solid #fff
    }
}

#page-top .s6 .txts .links a .blank i:last-child {
    border-bottom: 2px solid transparent;
    border-left: 2px solid transparent
}

#page-business .s1 {
    background: #fff;
    padding: 120px 0 0
}

@media screen and (min-width: 767px) {
    #page-business .s1 {
        display: flex;
        padding: 180px 3.4vw 0
    }
}

#page-business .s1 .common-ttl {
    width: 100%
}

@media screen and (max-width: 767px) {
    #page-business .s1 .common-ttl {
        padding: 0 7vw;
        margin-bottom: 30px
    }
}

@media screen and (min-width: 767px) {
    #page-business .s1 .common-ttl {
        position: absolute;
        top: 180px;
        right: 3.4vw
    }
}

#page-business .s1 #mv {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 135.6vw
}

@media screen and (min-width: 767px) {
    #page-business .s1 #mv {
        width: 50%;
        height: 63.3vw
    }
}

#page-business .s1 #mv #c {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    height: 100%
}

#page-business .s1 #mv .scale-in .img {
    position: relative;
    display: none
}

#page-business .s1 #mv .scale-in .img:first-child {
    display: block
}

#page-business .s1 .r {
    padding: 50px 7vw
}

@media screen and (min-width: 767px) {
    #page-business .s1 .r {
        width: 50%;
        padding: 0 0 0 3.4vw;
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end
    }
}

#page-business .s1 .r .lead {
    width: 100%;
    color: #999
}

@media screen and (min-width: 767px) {
    #page-business .s1 .r .lead {
        margin-bottom: -12px
    }
}

#page-business .s2 {
    background: #fff;
    padding: 60px 7vw 20px
}

@media screen and (min-width: 767px) {
    #page-business .s2 {
        padding: 140px 3.4vw
    }
}

#page-business .s2:before {
    display: block;
    content: '';
    width: 86%;
    height: 1px;
    background: #eaeaea;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto
}

@media screen and (min-width: 767px) {
    #page-business .s2:before {
        display: none
    }
}

#page-business .s2 .common-head {
    margin-bottom: 40px
}

@media screen and (min-width: 767px) {
    #page-business .s2 .common-head {
        margin-bottom: 80px
    }
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex {
        display: flex;
        justify-content: space-between
    }
}

#page-business .s2 .flex .cell {
    border-top: 1px solid #eaeaea;
    position: relative;
    padding-top: 20px
}

@media screen and (max-width: 767px) {
    #page-business .s2 .flex .cell {
        padding-left: 46%;
        margin-bottom: 50px
    }
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex .cell {
        width: 31%;
        padding-top: 28px
    }
}

#page-business .s2 .flex .cell strong {
    text-indent: -.3vw;
    font-size: 21.2vw;
    line-height: 1
}

@media screen and (max-width: 767px) {
    #page-business .s2 .flex .cell strong {
        position: absolute;
        top: 23px;
        left: 0
    }
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex .cell strong {
        margin-bottom: 30px;
        text-indent: -.3vw;
        font-size: 5.8vw
    }
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex .cell .logo {
        position: absolute;
        right: 0;
        top: 26px
    }
}

#page-business .s2 .flex .cell svg {
    opacity: .2;
    fill: #000;
    margin-bottom: 10px
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex .cell svg {
        margin-bottom: 0
    }
}

#page-business .s2 .flex .cell .grande {
    width: 100px;
    height: 22px
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex .cell .grande {
        width: 120px;
        height: 26px
    }
}

#page-business .s2 .flex .cell .landix {
    width: 94px;
    height: 24px
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex .cell .landix {
        width: 113px;
        height: 29px
    }
}

#page-business .s2 .flex .cell .sumuzu {
    width: 112px;
    height: 16px
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex .cell .sumuzu {
        margin-top: 2px;
        width: 136px;
        height: 19px
    }
}

#page-business .s2 .flex .cell p {
    font-size: 1.7rem
}

@media screen and (max-width: 767px) {
    #page-business .s2 .flex .cell p {
        line-height: 1.5;
        margin-bottom: 16px
    }
}

@media screen and (min-width: 767px) {
    #page-business .s2 .flex .cell p {
        font-size: 2.4rem
    }
}

#page-business .s3 .anchor-pos {
    width: 100%;
    height: 25%
}

#page-business #p-box-target {
    background: #000
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target {
        position: relative
    }
}

@media screen and (max-width: 767px) {
    #page-business #p-box-target .in {
        padding-top: 40px
    }
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in {
        width: 100%;
        padding: 50px 0
    }
}

#page-business #p-box-target .in .wrap {
    color: #fff;
    position: relative
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap {
        display: flex;
        justify-content: space-between;
        width: 100vw;
        height: 100%;
        max-height: 1000px;
        padding: 50px 3.4vw 50px
    }
}

@media screen and (min-height: 1000px) {
    #page-business #p-box-target .in .wrap {
        padding: 40px 3.4vw;
        max-height: 800px
    }
}

#page-business #p-box-target .in .wrap .img {
    position: relative;
    overflow: hidden
}

@media screen and (max-width: 767px) {
    #page-business #p-box-target .in .wrap .img {
        width: 86vw;
        margin: 0 auto 40px
    }
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .img {
        width: 40%;
        height: 52vw
    }
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .img .scale-in {
        position: absolute;
        height: 100%;
        width: 100%;
        top: 0;
        left: 0
    }
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .img img {
        position: relative;
        height: 100%;
        width: auto
    }
}

#page-business #p-box-target .in .wrap .t-box {
    padding: 0 7vw 80px
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .t-box {
        padding: 0 0 0 3.4vw;
        width: 50%;
        display: flex;
        flex-wrap: wrap;
        align-content: space-between
    }
}

#page-business #p-box-target .in .wrap .t-box strong {
    font-size: 2rem
}

@media screen and (max-width: 767px) {
    #page-business #p-box-target .in .wrap .t-box strong {
        margin-bottom: 30px
    }
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .t-box strong {
        margin-top: -10px;
        font-size: 3rem
    }
}

#page-business #p-box-target .in .wrap .t-box .b p {
    font-size: 1.3rem;
    color: #999;
    text-align: justify
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .t-box .b p {
        font-size: 1.8rem
    }
}

@media screen and (max-height: 678px) {
    #page-business #p-box-target .in .wrap .t-box .b p {
        font-size: 1.5rem
    }
}

#page-business #p-box-target .in .wrap .t-box .b a {
    display: flex;
    margin-top: 30px
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .t-box .b a {
        margin-top: 30px;
        margin-bottom: -9px
    }
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .t-box .b a:hover p i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    #page-business #p-box-target .in .wrap .t-box .b a:hover p i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

#page-business #p-box-target .in .wrap .t-box .b a p {
    line-height: 2;
    color: #355643;
    margin-right: 10px;
    position: relative
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .t-box .b a p {
        margin-right: 16px
    }
}

#page-business #p-box-target .in .wrap .t-box .b a p i {
    transition: opacity .3s, transform .3s
}

#page-business #p-box-target .in .wrap .t-box .b a p i:last-child {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transform: translateX(0) translateY(10px) translateZ(0)
}

#page-business #p-box-target .in .wrap .t-box .b a .ico {
    background: #355643;
    width: 24px;
    height: 24px;
    position: relative
}

@media screen and (min-width: 767px) {
    #page-business #p-box-target .in .wrap .t-box .b a .ico {
        top: 3px;
        width: 28px;
        height: 28px
    }
}

#page-business #p-box-target .in .wrap .t-box .b a .ico .blank {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto
}

#page-company .mv {
    color: #fff;
    background: #355643;
    padding: 234px 7vw 60px
}

@media screen and (min-width: 767px) {
    #page-company .mv {
        padding: 184px 3.4vw 140px
    }
}

#page-company .mv .common-ttl {
    width: 100%;
    position: absolute;
    top: 120px;
    right: 0
}

@media screen and (max-width: 767px) {
    #page-company .mv .common-ttl {
        padding: 0 7vw;
        margin-bottom: 30px
    }
}

@media screen and (min-width: 767px) {
    #page-company .mv .common-ttl {
        z-index: 10;
        top: 180px;
        right: 3.4vw
    }
}

#page-company .mv .common-ttl .links {
    opacity: 0;
    transform: translateX(0) translateY(40px) translateZ(0);
    transition: opacity 1.2s, transform 1.2s
}

@media screen and (max-width: 767px) {
    #page-company .mv .common-ttl .links {
        margin-top: 40px
    }
}

@media screen and (min-width: 767px) {
    #page-company .mv .common-ttl .links {
        position: absolute;
        top: 14.8vw;
        right: 0
    }
}

#page-company .mv .common-ttl .links.is-in {
    opacity: 1;
    transform: translateX(0) translateY(0) translateZ(0)
}

#page-company .mv .common-ttl .links a {
    color: #fff;
    justify-content: flex-end
}

@media screen and (min-width: 767px) {
    #page-company .mv .common-ttl .links a {
        padding: 8px 0
    }
}

#page-company .mv .common-ttl .links a p {
    position: relative;
    text-align: right;
    color: #fff;
}

#page-company .mv #mv {
    position: relative;
    z-index: 10;
    width: 32.2vw;
    height: 44.6vw;
    margin-bottom: 14vw
}

@media screen and (min-width: 767px) {
    #page-company .mv #mv {
        width: 15.6vw;
        height: 23vw;
        margin-bottom: 10vw
    }
}

#page-company .mv #mv .in {
    width: 32.2vw;
    height: 44.6vw;
    overflow: hidden;
    top: 0;
    left: 0;
    position: absolute;
    z-index: 2;
    transform: translateX(0) translateY(100%) translateZ(0);
    transition: transform 1s
}

#page-company .mv #mv .in.is-in {
    transform: translateX(0) translateY(0) translateZ(0)
}

@media screen and (min-width: 767px) {
    #page-company .mv #mv .in {
        width: 15.6vw;
        height: 23vw
    }
}

#page-company .mv #big-type {
    line-height: 1.04;
    font-size: 16.6vw;
    letter-spacing: .2vw
}

@media screen and (min-width: 767px) {
    #page-company .mv #big-type {
        font-size: 9.2vw;
        letter-spacing: .1vw
    }
}

@media screen and (max-width: 767px) {
    #page-company .mv #big-type {
        opacity: 0;
        transform: translateX(0) translateY(20%) translateZ(0);
        transition: all 1s
    }
}

@media screen and (max-width: 767px) {
    #page-company .mv #big-type.is-in {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

#page-company .mv #big-type.is-in span i {
    transform: translateX(0) translateY(0) translateZ(0)
}

#page-company .mv #big-type .indent {
    text-indent: -.7vw
}

@media screen and (min-width: 767px) {
    #page-company .mv #big-type .indent {
        text-indent: -.7vw
    }
}

#page-company .mv #big-type span {
    overflow: hidden
}

#page-company .mv #big-type span:nth-child(2) i {
    transition-delay: .1s
}

#page-company .mv #big-type span i {
    transition: transform 1s
}

@media screen and (min-width: 767px) {
    #page-company .mv #big-type span i {
        transform: translateX(0) translateY(100%) translateZ(0)
    }
}

#page-company .mv #circle {
    position: absolute;
    top: 133px;
    right: 7vw;
    width: 103.1vw;
    height: 103.1vw;
    pointer-events: none
}

@media screen and (min-width: 767px) {
    #page-company .mv #circle {
        top: calc(180px + 1.8vw);
        right: 4.5vw;
        width: 53.5vw;
        height: 53.5vw
    }
}

#page-company .mv #circle .path {
    fill: none;
    stroke: #fff;
    stroke-width: 1px;
    fill-rule: evenodd
}

#page-company .s1 {
    background: #355643;
    color: #fff;
    padding: 80px 7vw 80px
}

@media screen and (min-width: 767px) {
    #page-company .s1 {
        padding: 100px 3.4vw;
        display: flex;
        justify-content: space-between
    }
}

#page-company .s1:before {
    display: none;
    content: '';
    width: 87%;
    height: 0px;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: auto;
    background: #333
}

@media screen and (min-width: 767px) {
    #page-company .s1:before {
        width: 93.2%
    }
}

@media screen and (max-width: 767px) {
    #page-company .s1 .common-head {
        margin-bottom: 40px
    }
}

@media screen and (min-width: 767px) {
    #page-company .s1 .common-head {
        width: 33%
    }
}

#page-company .s1 .detail {
    position: relative
}

@media screen and (min-width: 767px) {
    #page-company .s1 .detail {
        width: 65.3%
    }
}

#page-company .s1 .detail .flex {
    display: flex;
    justify-content: space-between
}

#page-company .s1 .detail .flex .img {
    overflow: hidden;
    margin-bottom: 40px;
    position: relative;
    /*    width: calc(100% - 90px)*/
    width: 100%;
}

@media screen and (min-width: 767px) {
    #page-company .s1 .detail .flex .img {
        /*        width: calc(100% - 150px);*/
        width: 100%;
        height: calc(42vw - 150px);
        margin-bottom: 60px
    }
}

@media screen and (min-width: 767px) {
    #page-company .s1 .detail .flex .img .scale-in {
        width: 100%;
        height: 100%;
        position: absolute;
        bottom: 0;
        left: 0
    }
}

#page-company .s1 .detail .flex .t-box {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl
}

#page-company .s1 .detail .flex .t-box span {
    font-size: 1.3rem
}

@media screen and (min-width: 767px) {
    #page-company .s1 .detail .flex .t-box span {
        font-size: 1.8rem
    }
}

#page-company .s1 .detail .flex .t-box b {
    font-weight: 400;
    font-size: 2rem
}

@media screen and (min-width: 767px) {
    #page-company .s1 .detail .flex .t-box b {
        font-size: 3.2rem
    }
}

#page-company .s1 .detail strong {
    font-size: 1.6rem;
    font-weight: 400;
    text-align: justify;
    margin-bottom: 30px;
}

@media screen and (min-width: 767px) {
    #page-company .s1 .detail strong {
        margin-top: 0;
        font-size: 2.4rem;
        margin-bottom: 60px
    }
}

#page-company .s1 .detail p {
    color: #fff;
}

#page-company .s2 {
    background: #355643;
    color: #fff;
    padding: 80px 7vw
}

@media screen and (min-width: 767px) {
    #page-company .s2 {
        padding: 100px 3.4vw
    }
}

#page-company .s2:before {
    display: block;
    content: '';
    width: 87%;
    height: 1px;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: auto;
    background: #333
}

@media screen and (min-width: 767px) {
    #page-company .s2:before {
        width: 93.2%
    }
}

#page-company .s2 .common-head {
    margin-bottom: 50px
}

@media screen and (min-width: 767px) {
    #page-company .s2 .common-head {
        margin-bottom: 100px
    }
}

#page-company .s2 .shapes {
    width: 100%;
    height: 120vw;
    position: relative;
    margin-bottom: 30px
}

@media screen and (min-width: 767px) {
    #page-company .s2 .shapes {
        width: 100%;
        height: 34.8vw;
        margin-bottom: 7vw
    }
}

#page-company .s2 .shapes svg {
    position: absolute
}

#page-company .s2 .shapes .shape1 {
    width: 47vw;
    top: 16vw;
    left: -1vw;
    z-index: 1
}

@media screen and (max-width: 767px) {
    #page-company .s2 .shapes .shape1 {
        height: 72vw
    }
}

@media screen and (min-width: 767px) {
    #page-company .s2 .shapes .shape1 {
        width: 23vw;
        top: 0;
        left: 6.5vw
    }
}

#page-company .s2 .shapes .shape2 {
    width: 40.6vw;
    top: 0;
    left: 34vw
}

@media screen and (max-width: 767px) {
    #page-company .s2 .shapes .shape2 {
        height: 58vw
    }
}

@media screen and (min-width: 767px) {
    #page-company .s2 .shapes .shape2 {
        width: 19.7vw;
        top: 1.2vw;
        left: 34.5vw
    }
}

#page-company .s2 .shapes .shape3 {
    width: 46.1vw;
    top: 56.4vw;
    left: 42vw
}

@media screen and (max-width: 767px) {
    #page-company .s2 .shapes .shape3 {
        height: 61vw
    }
}

@media screen and (min-width: 767px) {
    #page-company .s2 .shapes .shape3 {
        width: 23.1vw;
        top: 1.8vw;
        left: 63.3vw
    }
}

#page-company .s2 p {
    color: #fff;
}

@media screen and (min-width: 767px) {
    #page-company .s2 p {
        padding-left: 34.5%
    }
}

#page-company .s3 {
    background: #355643;
    color: #fff;
    padding: 80px 7vw
}

@media screen and (min-width: 767px) {
    #page-company .s3 {
        display: flex;
        justify-content: space-between;
        padding: 100px 3.4vw
    }
}

#page-company .s3:before {
    display: block;
    content: '';
    width: 87%;
    height: 1px;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: auto;
    background: #333
}

@media screen and (min-width: 767px) {
    #page-company .s3:before {
        width: 93.2%
    }
}

#page-company .s3 .common-head {
    margin-bottom: 60px
}

@media screen and (min-width: 767px) {
    #page-company .s3 .common-head {
        width: 33%
    }
}

#page-company .s3 .flex {
    position: relative
}

@media screen and (min-width: 767px) {
    #page-company .s3 .flex {
        width: 65.3%;
        display: flex;
        justify-content: space-between
    }
}

#page-company .s3 .flex .cell {
    position: relative;
    width: 100%
}

@media screen and (max-width: 767px) {
    #page-company .s3 .flex .cell {
        margin-bottom: 60px;
        padding-top: 20px;
        padding-left: 40%;
        border-top: 1px solid #fff
    }

    #page-company .s3 .flex .cell:last-child {
        margin-bottom: 0
    }
}

@media screen and (min-width: 767px) {
    #page-company .s3 .flex .cell {
        border-left: 1px solid #fff;
        width: 29%;
        height: 500px
    }
}

#page-company .s3 .flex .cell strong {
    font-size: 1.8rem;
    letter-spacing: .6px
}

@media screen and (max-width: 767px) {
    #page-company .s3 .flex .cell strong {
        margin-bottom: 10px
    }
}

@media screen and (min-width: 767px) {
    #page-company .s3 .flex .cell strong {
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        font-size: 2.4rem;
        letter-spacing: 2px
    }
}

#page-company .s3 .flex .cell span {
    position: absolute;
    top: 26px;
    line-height: 1;
    font-size: 20.8vw
}

@media screen and (max-width: 767px) {
    #page-company .s3 .flex .cell span {
        left: 0
    }
}

@media screen and (min-width: 767px) {
    #page-company .s3 .flex .cell span {
        top: 0;
        right: 0;
        font-size: 5.8vw
    }
}

#page-company .s3 .flex .cell p {
    color: #fff;
    font-size: 1.5rem
}

@media screen and (max-width: 767px) {
    #page-company .s3 .flex .cell p {
        text-align: justify
    }
}

@media screen and (min-width: 767px) {
    #page-company .s3 .flex .cell p {
        position: absolute;
        bottom: -10px;
        left: 0;
        padding-left: 14px;
        font-size: 1.8rem
    }
}

#page-company .s4 {
    background: #000;
    color: #fff;
    padding: 80px 7vw 60px
}

@media screen and (min-width: 767px) {
    #page-company .s4 {
        display: flex;
        justify-content: space-between;
        padding: 100px 3.4vw 56px
    }
}

#page-company .s4:before {
    display: block;
    content: '';
    width: 87%;
    height: 1px;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: auto;
    background: #333
}

@media screen and (min-width: 767px) {
    #page-company .s4:before {
        width: 93.2%
    }
}

#page-company .s4 .common-head {
    color: #fff
}

@media screen and (max-width: 767px) {
    #page-company .s4 .common-head {
        margin-bottom: 40px
    }
}

@media screen and (min-width: 767px) {
    #page-company .s4 .common-head {
        padding: 0;
        width: 33%
    }
}

#page-company .s4 .flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap
}

@media screen and (min-width: 767px) {
    #page-company .s4 .flex {
        width: 65.3%
    }
}

#page-company .s4 .flex .cell {
    color: #fff;
    position: relative;
    width: 42%;
    margin-bottom: 30px
}

@media screen and (min-width: 767px) {
    #page-company .s4 .flex .cell {
        display: flex;
        align-items: center;
        width: 29%;
        margin-bottom: 4vw
    }
}

#page-company .s4 .flex .cell .img {
    overflow: hidden;
    margin-bottom: 20px;
    background: 0 0;
    width: 100%;
    height: 36vw
}

@media screen and (min-width: 767px) {
    #page-company .s4 .flex .cell .img {
        width: 42%;
        height: 7.5vw;
        margin-bottom: 0
    }
}

#page-company .s4 .flex .cell .box {
    font-size: 1.3rem;
    width: 100%;
    padding: 0
}

@media screen and (min-width: 767px) {
    #page-company .s4 .flex .cell .box {
        width: 58%;
        font-size: 1.5rem;
        padding: 0 0 0 30px
    }
}

#page-company .s4 .flex .cell .box p:first-child {
    color: #999;
    font-size: 1.2rem
}

@media screen and (min-width: 767px) {
    #page-company .s4 .flex .cell .box p:first-child {
        font-size: 1.3rem
    }
}

#page-company .swiper-area {
    padding: 80px 7vw 40px
}

@media screen and (min-width: 767px) {
    #page-company .swiper-area {
        padding: 100px 3.4vw
    }
}

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

    #page-history .list-common,
    #page-profile .list-common {
        padding-bottom: 80px
    }
}

#page-profile .list-common tbody {
    width: 100%;
    display: block;
}

.common-layout .s {
    background: #fff
}

.common-layout .head-layout {
    padding: 120px 7vw 0
}

@media screen and (min-width: 767px) {
    .common-layout .head-layout {
        padding: 180px 3.4vw 72px 0;
        display: flex;
        justify-content: space-between;
        flex-direction: row-reverse
    }
}

.common-layout .head-layout .common-ttl {
    margin: 0 0 30px 0
}

@media screen and (min-width: 767px) {
    .common-layout .head-layout .common-ttl {
        margin: -.2vw 0 0 0
    }
}

.common-layout .head-layout .img {
    overflow: hidden;
    position: relative
}

@media screen and (min-width: 767px) {
    .common-layout .head-layout .img {
        width: 61.2vw;
        height: 29.4vw
    }
}

@media screen and (min-width: 767px) {
    .common-layout .head-layout .img .scale-in {
        width: 100%;
        height: 100%;
        position: absolute;
        bottom: 0;
        left: 0
    }
}

@media screen and (min-width: 767px) {
    .common-layout .head-layout .img .scale-in img {
        position: absolute;
        bottom: 0;
        left: 0
    }
}

.common-layout .list-common {
    display: block;
    margin: 0 auto
}

@media screen and (max-width: 767px) {
    .common-layout .list-common {
        width: 86.3vw
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common {
        padding: 0 10% 0 10%;
    }
}

.common-layout .list-common .link {
    color: #000;
    border-top: 1px solid #eaeaea;
    padding: 30px 0
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .link {
        padding: 40px 0
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .link:hover span i {
        color: #355643
    }

    .common-layout .list-common .link:hover span svg {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    .common-layout .list-common .link:hover p {
        color: #355643
    }
}

.common-layout .list-common .link span {
    font-size: 1.3rem;
    letter-spacing: 1.4px;
    position: relative;
    margin-bottom: 6px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .link span {
        font-size: 1.3rem;
        letter-spacing: 1.4px;
        margin-bottom: 10px
    }
}

.common-layout .list-common .link span i {
    margin-right: 6px;
    position: relative;
    display: inline-block
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .link span i {
        margin-right: 16px;
        transition: color .3s
    }

    .common-layout .list-common .link span i:nth-child(2):before {
        display: block;
        content: '';
        width: 1px;
        height: 10px;
        background: #eaeaea;
        position: absolute;
        top: 4px;
        left: -11px
    }
}

.common-layout .list-common .link span svg {
    fill: #355643;
    position: absolute;
    top: 4px;
    right: 0;
    bottom: auto;
    left: auto
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .link span svg {
        top: 3px;
        right: 0;
        opacity: 0;
        transform: translateX(-10px) translateY(10px) translateZ(0);
        transition: opacity .3s, transform .3s
    }
}

.common-layout .list-common .link p {
    text-align: justify;
    font-size: 1.5rem
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .link p {
        font-size: 1.8rem;
        transition: color .3s
    }
}

.common-layout .list-common .flex {
    padding: 30px 0;
    border-top: 1px solid #eaeaea;
    display: flex;
    justify-content: space-between;
    font-size: 1.3rem
}

.common-layout .list-common .flex:last-child {
    border-bottom: 1px solid #eaeaea
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .flex {
        padding: 40px 0;
        letter-spacing: .2px;
        font-size: 1.8rem
    }
}

.common-layout .list-common .flex small {
    opacity: .6;
    font-size: 1.3rem
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .flex small {
        display: block
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .flex small {
        font-size: 1.5rem
    }
}

.common-layout .list-common .flex em {
    margin: 6px 0 20px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .flex em {
        margin: 10px 0 30px
    }
}

.common-layout .list-common .flex em:last-child {
    margin-bottom: 0
}

.common-layout .list-common .flex .l {
    width: 25%;
    display: block
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .flex .l {
        width: 36%
    }
}

.common-layout .list-common .flex .r {
    display: block;
    width: 70%;
    white-space: break-spaces
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .flex .r {
        width: 57.8%
    }
}

.common-layout .list-common .location {
    border-top: 1px solid #eaeaea;
    padding: 40px 0
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location {
        padding: 40px 0 80px
    }

    .common-layout .list-common .location:last-child {
        padding-bottom: 80px
    }
}

.common-layout .list-common .location .head {
    margin-bottom: 20px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .head {
        display: flex;
        justify-content: space-between;
        margin-bottom: 44px
    }
}

.common-layout .list-common .location .head b {
    font-size: 1.3rem;
    letter-spacing: .5px;
    font-weight: 400;
    display: block
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .location .head b {
        margin-bottom: 6px
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .head b {
        font-size: 1rem;
        letter-spacing: .5px;
        width: 33%
    }
}

.common-layout .list-common .location .head p {
    font-size: 1.5rem
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .head p {
        width: 57.8%;
        letter-spacing: .5px;
        font-size: 1.8rem;
        margin-top: 2px
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .detail {
        display: flex;
        justify-content: space-between
    }
}

.common-layout .list-common .location .detail .img {
    overflow: hidden
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .location .detail .img {
        margin-bottom: 30px
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .detail .img {
        width: 33%
    }
}

.common-layout .list-common .location .detail .txts {
    font-size: 1.3rem;
    letter-spacing: .1px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .detail .txts {
        width: 57.8%;
        margin-top: -6px;
        font-size: 1.5rem
    }
}

.common-layout .list-common .location .detail .txts span {
    border-bottom: 1px solid #eaeaea;
    padding: 0 0 30px;
    margin: 0 0 30px 0
}

.common-layout .list-common .location .detail .txts span:last-child {
    border-bottom: 0 solid #eaeaea;
    margin: 0
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .detail .txts span {
        padding: 0 0 30px;
        margin: 0 0 30px 0
    }
}

.common-layout .list-common .location .detail .txts span b {
    display: block;
    margin-bottom: 2px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .detail .txts span b {
        margin-bottom: 6px
    }
}

.common-layout .list-common .location .detail .txts span p {
    letter-spacing: .5px
}

.common-layout .list-common .location .detail .txts span a {
    display: block;
    color: #355643;
    position: relative
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .detail .txts span a {
        display: inline-block;
        margin-bottom: 6px
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .location .detail .txts span a:hover:before {
        transform: translateX(0) translateY(0) translateZ(0) scale(1, 1)
    }
}

.common-layout .list-common .location .detail .txts span a:before {
    display: block;
    content: '';
    width: 100%;
    height: 1px;
    background: #355643;
    position: absolute;
    bottom: 2px;
    left: 0;
    transition: transform .3s;
    transform: translateX(0) translateY(0) translateZ(0) scale(0, 1)
}

.common-layout .list-common .history {
    border-top: 1px solid #eaeaea;
    padding: 40px 0
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .history {
        padding: 40px 0 80px;
        display: flex;
        justify-content: space-between
    }

    .common-layout .list-common .history:last-child {
        padding-bottom: 32px
    }
}

.common-layout .list-common .history strong {
    font-size: 6rem;
    line-height: 1
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .history strong {
        margin-bottom: 20px
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .history strong {
        font-size: 7vw;
        width: 33%
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .history .txts {
        margin-top: -7px;
        width: 57.8%
    }
}

.common-layout .list-common .history .txts span {
    padding: 0 0 14px;
    margin: 0
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .history .txts span {
        display: flex;
        justify-content: space-between
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .history .txts span {
        border-bottom: 1px solid #eaeaea;
        padding: 0 0 40px;
        margin: 0 0 30px 0
    }
}

.common-layout .list-common .history .txts span:last-child {
    border-bottom: 0 solid #eaeaea;
    margin: 0;
    padding: 0
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .history .txts span:last-child {
        padding: 0
    }
}

.common-layout .list-common .history .txts span b {
    display: block;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .4px
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .history .txts span b {
        width: 24%
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .history .txts span b {
        font-size: 2.4rem;
        margin-bottom: 6px
    }
}

.common-layout .list-common .history .txts span p {
    font-size: 1.5rem;
    letter-spacing: .4px
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .history .txts span p {
        width: 72%;
        font-size: 1.3rem;
        letter-spacing: .1px
    }
}

.common-layout .list-common .sus-lead {
    border-top: 1px solid #eaeaea;
    padding: 30px 0 80px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead {
        padding: 40px 0 120px
    }
}

.common-layout .list-common .sus-lead b {
    text-transform: uppercase;
    font-size: 1.8rem;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 20px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead b {
        font-size: 2.4rem;
        margin-bottom: 58px
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead .fl {
        display: flex;
        justify-content: space-between
    }
}

.common-layout .list-common .sus-lead .fl .img {
    overflow: hidden
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .sus-lead .fl .img {
        margin-bottom: 40px
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead .fl .img {
        width: 48%
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead .fl .t-box {
        width: 46.5%
    }
}

.common-layout .list-common .sus-lead .fl .t-box strong {
    font-size: 2rem;
    margin-bottom: 20px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead .fl .t-box strong {
        margin-top: -8px;
        font-size: 2.4rem;
        margin-bottom: 30px
    }
}

.common-layout .list-common .sus-lead .fl .t-box p {
    font-size: 1.5rem
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead .fl .t-box p {
        font-size: 1.8rem
    }
}

.common-layout .list-common .sus-lead .fl .t-box i {
    display: block;
    margin-top: 20px;
    font-size: 1.3rem
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .sus-lead .fl .t-box i {
        text-align: right
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead .fl .t-box i {
        margin-top: 40px;
        font-size: 1.3rem
    }
}

.common-layout .list-common .sus-lead .fl .t-box span {
    font-size: 2rem
}

@media screen and (max-width: 767px) {
    .common-layout .list-common .sus-lead .fl .t-box span {
        text-align: right
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-lead .fl .t-box span {
        font-size: 2.4rem
    }
}

.common-layout .list-common .sus-ttl {
    margin-bottom: 12px;
    font-size: 2rem
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-ttl {
        margin-bottom: 10px;
        font-size: 2.4rem
    }
}

.common-layout .list-common .sus-common {
    border-top: 1px solid #eaeaea;
    padding: 60px 0
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common {
        padding: 60px 0
    }

    .common-layout .list-common .sus-common:last-child {
        padding-bottom: 100px
    }
}

.common-layout .list-common .sus-common .img {
    margin-bottom: 40px;
    overflow: hidden
}

.common-layout .list-common .sus-common b {
    text-transform: uppercase;
    font-size: 1.8rem;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 20px;
    font-weight: 400
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common b {
        font-size: 2.4rem;
        letter-spacing: 1px;
        margin-bottom: 20px
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common .fl {
        display: flex;
        justify-content: space-between
    }
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common .fl .l {
        width: 66.5%
    }
}

.common-layout .list-common .sus-common .fl .l p {
    font-size: 1.5rem;
    margin-bottom: 40px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common .fl .l p {
        font-size: 1.8rem
    }
}

.common-layout .list-common .sus-common .fl .l span {
    font-size: 1.3rem;
    margin-bottom: 10px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common .fl .l span {
        font-size: 1.5rem
    }
}

.common-layout .list-common .sus-common .fl .l a {
    text-decoration: underline;
    font-size: 1.3rem
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common .fl .l a {
        font-size: 1.5rem
    }
}

.common-layout .list-common .sus-common .fl .r {
    display: flex;
    width: 100%;
    margin-top: 40px
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common .fl .r {
        width: 26.5%;
        margin-top: 0
    }
}

.common-layout .list-common .sus-common .fl .r .img {
    width: 22%;
    margin-right: 4%;
    margin-bottom: 0;
    background: 0 0
}

@media screen and (min-width: 767px) {
    .common-layout .list-common .sus-common .fl .r .img {
        width: 30.6%
    }
}

.common-layout .list-common .sus-common .fl .r .img:last-child {
    margin-right: 0
}

@media screen and (max-width: 767px) {
    .common-layout .toggle-box {
        width: 86.3vw;
        margin: 40px auto;
        position: relative;
        text-align: left;
        font-size: 1.5rem;
        letter-spacing: .4px
    }

    .common-layout .toggle-box.is-opened .current:before {
        transform: translateX(0) translateY(0) translateZ(0) rotate(90deg)
    }

    .common-layout .toggle-box .current {
        position: relative;
        padding: 28px 16px 24px;
        background: #000;
        color: #fff;
        line-height: 1;
        z-index: 10
    }

    .common-layout .toggle-box .current:after,
    .common-layout .toggle-box .current:before {
        display: block;
        content: '';
        position: absolute;
        background: #355643
    }

    .common-layout .toggle-box .current:before {
        width: 2px;
        height: 10px;
        top: 0;
        bottom: 0;
        margin: auto;
        right: 30px;
        transition: transform .4s
    }

    .common-layout .toggle-box .current:after {
        width: 10px;
        height: 2px;
        top: 0;
        bottom: 0;
        margin: auto;
        right: 26px
    }

    .common-layout .toggle-box .drawer {
        position: absolute;
        height: 0;
        overflow: hidden;
        top: 67px;
        left: 0;
        width: 100%;
        background: #fff;
        z-index: 9
    }

    .common-layout .toggle-box .drawer:before {
        display: block;
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        border: 1px solid #ccc;
        pointer-events: none;
        box-sizing: border-box
    }

    .common-layout .toggle-box .drawer .is-current {
        display: none
    }

    .common-layout .toggle-box .drawer .item {
        border-top: 1px solid #ccc;
        padding: 20px 0 18px;
        line-height: 1;
        width: calc(100% - 40px);
        margin: 0 auto;
        justify-content: space-between
    }

    .common-layout .toggle-box .drawer .item:first-child {
        border-top: 0
    }

    .common-layout .toggle-box .drawer .item span {
        top: -3px
    }

    .common-layout .toggle-box .drawer .anchor {
        position: relative
    }

    .common-layout .toggle-box .drawer .anchor:before {
        display: block;
        content: '';
        width: 6px;
        height: 6px;
        border-top: 2px solid #355643;
        border-right: 2px solid #355643;
        position: absolute;
        top: 22px;
        right: 6px;
        transform: translateX(0) translateY(0) translateZ(0) rotate(135deg)
    }
}

@media screen and (min-width: 767px) {
    .common-layout .side-box {
        position: fixed;
        top: 0;
        left: 3.4vw;
        border-top: 1px solid #eaeaea;
        padding: 40px 0 80px;
        width: 20.9vw;
        z-index: 10
    }

    .common-layout .side-box .is-current {
        pointer-events: none;
        color: #355643
    }

    .common-layout .side-box .common-link {
        margin-bottom: 16px
    }

    .common-layout .side-box .common-link:last-child {
        margin-bottom: 0
    }

    .common-layout .side-box .common-link p {
        width: 134px
    }

    .common-layout .side-box .common-link p i {
        line-height: 2.2;
        padding: 0
    }

    .common-layout .side-box .anchor {
        position: relative;
        margin-bottom: 20px
    }

    .common-layout .side-box .anchor:before {
        display: block;
        content: '';
        width: 6px;
        height: 6px;
        border-top: 2px solid #355643;
        border-right: 2px solid #355643;
        position: absolute;
        top: 6px;
        right: 10px;
        transform: translateX(0) translateY(0) translateZ(0) rotate(135deg)
    }

    .common-layout .side-box .item {
        font-size: 1.5rem;
        letter-spacing: .5px;
        position: relative;
        cursor: pointer;
        text-transform: uppercase
    }
}

@media screen and (min-width: 767px) and (min-width:767px) {
    .common-layout .side-box .item:hover i {
        transform: translateX(0) translateY(-6px) translateZ(0);
        opacity: 0
    }

    .common-layout .side-box .item:hover i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

@media screen and (min-width: 767px) {
    .common-layout .side-box .item i {
        transition: opacity .3s, transform .3s;
        padding: 0 30px 0 0
    }

    .common-layout .side-box .item i:last-child {
        color: #355643;
        position: absolute;
        top: 0;
        left: 0;
        opacity: 0;
        transform: translateX(0) translateY(10px) translateZ(0)
    }
}

#page-news .s {
    background: #fff
}

#page-news .common-ttl {
    width: 100%;
    padding: 120px 7vw 0
}

@media screen and (min-width: 767px) {
    #page-news .common-ttl {
        padding: 180px 3.4vw 50px
    }
}

@media screen and (min-width: 767px) {
    #page-news #fit-area {
        min-height: 400px
    }
}

#page-news .pagenation {
    display: flex;
    justify-content: space-between;
    padding: 40px 0 0 0;
    width: 86.3vw;
    margin: 0 auto;
    border-top: 1px solid #eaeaea;
    position: relative
}

@media screen and (min-width: 767px) {
    #page-news .pagenation {
        padding: 60px 0;
        margin-left: 35.4vw;
        width: 61.1vw
    }
}

#page-news .pagenation a {
    position: relative;
    z-index: 10
}

#page-news .pagenation .prev {
    flex-direction: row-reverse
}

#page-news .pagenation .prev p {
    padding-left: 10px
}

#page-news .pagenation .prev p i:last-child {
    left: 10px
}

#page-news .pagenation .prev span {
    transform: translateX(0) translateY(0) translateZ(0) rotateY(180deg)
}

#page-news .pagenation .current {
    text-align: center;
    position: absolute;
    top: 39px;
    left: 0;
    width: 100%;
    font-size: 1.8rem
}

@media screen and (min-width: 767px) {
    #page-news .pagenation .current {
        top: 62px;
        font-size: 1.8rem
    }
}

@media screen and (min-width: 767px) {
    #page-news-detail .scroll-cont {
        position: relative
    }
}

#page-news-detail .common-ttl {
    width: 100%;
    padding: 120px 7vw 0
}

@media screen and (min-width: 767px) {
    #page-news-detail .common-ttl {
        position: absolute;
        top: 0;
        right: 0;
        padding: 180px 3.4vw 50px
    }
}

#page-news-detail #fit-area {
    width: 100%;
    padding: 40px 7vw 50px;
    position: relative;
    z-index: 10
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area {
        min-width: 722px;
        width: 61.1vw;
        padding: 180px 3.4vw 50px
    }
}

#page-news-detail #fit-area .ttl {
    border-bottom: 1px solid #eaeaea;
    padding-bottom: 20px;
    margin-bottom: 40px
}

#page-news-detail #fit-area .ttl span {
    font-size: 1.3rem;
    letter-spacing: 1.4px;
    position: relative;
    margin-bottom: 6px
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area .ttl span {
        font-size: 1.3rem;
        letter-spacing: 1.4px;
        margin-bottom: 10px
    }
}

#page-news-detail #fit-area .ttl span i {
    margin-right: 6px;
    position: relative;
    display: inline-block
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area .ttl span i {
        margin-right: 16px;
        transition: color .3s
    }

    #page-news-detail #fit-area .ttl span i:nth-child(2):before {
        display: block;
        content: '';
        width: 1px;
        height: 10px;
        background: #eaeaea;
        position: absolute;
        top: 4px;
        left: -11px
    }
}

#page-news-detail #fit-area .ttl h1 {
    font-weight: 400;
    font-size: 2rem
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area .ttl h1 {
        font-size: 2.4rem
    }
}

#page-news-detail #fit-area .wysywig {
    font-size: 1.3rem
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area .wysywig {
        font-size: 1.5rem
    }
}

#page-news-detail #fit-area .wysywig p {
    text-align: left !important
}

#page-news-detail #fit-area .wysywig img {
    height: auto
}

#page-news-detail #fit-area .wysywig a {
    text-decoration: underline
}

#page-news-detail #fit-area .wysywig blockquote {
    background: #f5f5f5;
    padding: 20px
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area .wysywig blockquote {
        padding: 30px
    }
}

#page-news-detail #fit-area .wysywig ul {
    padding-left: 21px
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area .wysywig ul {
        padding-left: 23px
    }
}

#page-news-detail #fit-area .wysywig ol {
    padding-left: 15px
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area .wysywig ol {
        padding-left: 21px
    }
}

#page-news-detail #fit-area .pc-img {
    display: none
}

@media screen and (min-width: 767px) {
    #page-news-detail #fit-area .pc-img {
        display: block;
        text-align: center;
        position: relative;
        height: 360px
    }
}

#page-news-detail #fit-area .sp-img {
    display: none
}

@media screen and (max-width: 767px) {
    #page-news-detail #fit-area .sp-img {
        display: block;
        position: relative;
        height: 180px
    }
}

#page-news-detail #fit-area iframe {
    position: absolute;
    top: 0;
    left: 0;
    margin: auto
}

#page-news-detail #fit-area iframe:last-child {
    display: none
}

#page-news-detail .pagenation {
    position: relative;
    margin-bottom: 40px
}

@media screen and (min-width: 767px) {
    #page-news-detail .pagenation {
        position: absolute;
        bottom: 50px;
        right: 3.4vw;
        width: 28vw;
        margin-bottom: 0
    }
}

#page-news-detail .pagenation .all {
    font-size: 1.5rem;
    position: relative;
    text-align: center
}

@media screen and (min-width: 767px) {
    #page-news-detail .pagenation .all {
        font-size: 1.8rem;
        top: 2px
    }
}

@media screen and (min-width: 767px) {
    #page-news-detail .pagenation .all:hover i {
        opacity: 0;
        transform: translateX(0) translateY(-6px) translateZ(0)
    }

    #page-news-detail .pagenation .all:hover i:last-child {
        transform: translateX(0) translateY(0) translateZ(0);
        opacity: 1
    }
}

#page-news-detail .pagenation .all i {
    transition: all .3s
}

#page-news-detail .pagenation .all i:last-child {
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    width: 100%;
    opacity: 0;
    transform: translateX(0) translateY(10px) translateZ(0)
}

#page-news-detail .pagenation .prev {
    position: absolute;
    left: 7vw;
    top: 0;
    z-index: 1;
    flex-direction: row-reverse
}

@media screen and (min-width: 767px) {
    #page-news-detail .pagenation .prev {
        left: 0
    }
}

#page-news-detail .pagenation .prev span {
    transform: translateX(0) translateY(0) translateZ(0) rotateY(180deg);
    margin-right: 11px
}

#page-news-detail .pagenation .next {
    position: absolute;
    right: 7vw;
    top: 0;
    z-index: 1
}

@media screen and (min-width: 767px) {
    #page-news-detail .pagenation .next {
        right: 0
    }
}

#page-policy .s-in {
    position: relative
}

#page-policy .side-box {
    position: absolute
}

#page-policy .list-common .policy {
    border-top: 1px solid #eaeaea;
    font-size: 1.3rem;
    letter-spacing: .3px;
    padding-bottom: 60px
}

@media screen and (min-width: 767px) {
    #page-policy .list-common .policy {
        font-size: 1.5rem;
        letter-spacing: .4px;
        padding-bottom: 100px
    }
}

#page-policy .list-common .policy strong {
    font-size: 1.8rem;
    padding-top: 40px;
    margin-bottom: 10px
}

#page-policy .list-common .policy strong:first-child {
    padding-top: 30px
}

@media screen and (min-width: 767px) {
    #page-policy .list-common .policy strong:first-child {
        padding-top: 40px
    }
}

@media screen and (min-width: 767px) {
    #page-policy .list-common .policy strong {
        font-size: 2rem;
        padding-top: 60px;
        margin-bottom: 20px
    }
}

#page-policy .list-common .policy ul {
    padding-left: 20px;
    margin: 20px 0
}

#page-policy .list-common .policy ul .no-dot {
    list-style: none !important;
    margin-left: -20px
}

#page-policy .list-common .policy b {
    display: block;
    margin: 20px 0 10px
}

#page-policy .list-common .policy .bd {
    border-top: 1px solid #eaeaea;
    padding-top: 30px;
    margin-top: 50px
}

#page-policy .list-common .policy ol {
    padding-left: 20px;
    margin: 20px 0
}

#page-error .flex {
    padding: 80px 7vw
}

@media screen and (min-width: 767px) {
    #page-error .flex {
        padding: 120px 8vw;
        display: flex;
        align-items: center;
        justify-content: space-between
    }
}

#page-error .flex .l {
    position: relative;
    height: 132vw
}

@media screen and (max-width: 767px) {
    #page-error .flex .l {
        margin-bottom: 40px
    }
}

@media screen and (min-width: 767px) {
    #page-error .flex .l {
        width: 38vw;
        height: 50vw
    }
}

#page-error .flex .l svg {
    position: absolute;
    z-index: 10
}

#page-error .flex .l .shape1 {
    width: 53%;
    height: 60.3%;
    top: 14.2%;
    left: 0
}

#page-error .flex .l .shape2 {
    width: 55.1%;
    height: 49.9%;
    top: 0;
    left: 34.2%
}

#page-error .flex .l .shape3 {
    width: 53.7%;
    height: 52.1%;
    top: 48.2%;
    left: 47.6%
}

#page-error .flex .r {
    position: relative
}

@media screen and (min-width: 767px) {
    #page-error .flex .r {
        width: 38vw
    }
}

#page-error .flex .r h2 {
    font-size: 8.8vw;
    margin-bottom: 30px;
    line-height: 1
}

@media screen and (min-width: 767px) {
    #page-error .flex .r h2 {
        font-size: 6.6vw;
        margin-bottom: 40px
    }
}

#page-error .flex .r p {
    font-size: 1.5rem
}

@media screen and (min-width: 767px) {
    #page-error .flex .r p {
        font-size: 2rem
    }
}

#page-error .flex .r .common-link {
    margin: 30px 0 0;
    width: 124px
}

@media screen and (min-width: 767px) {
    #page-error .flex .r .common-link {
        margin: 40px 0 0;
        width: 164px
    }
}

#page-contact .s-in.fade {
    position: relative
}

#page-contact .screen-reader-response,
#page-contact .wpcf7-response-output {
    display: none
}

@media screen and (max-width: 767px) {
    #page-contact .side-box {
        padding: 0 7vw 30px;
        text-align: center;
    }
}

@media screen and (min-width: 767px) {
    #page-contact .side-box {
        position: static;
        top: 0;
        width: 100%;
        text-align: center;
    }
}

#page-contact .side-box .txt {
    font-size: 1.3rem;
    text-align: justify
}

@media screen and (min-width: 767px) {
    #page-contact .side-box .txt {
        font-size: 1.5rem
    }
}

#page-contact .side-box .txt i {
    color: #e73c17;
    margin-top: 20px;
    display: block
}

#page-contact .contact {
    border-top: 1px solid #eaeaea;
    padding-top: 30px;
    font-size: 1.3rem
}

@media screen and (min-width: 767px) {
    #page-contact .contact {
        font-size: 1.5rem;
        padding-top: 40px
    }
}

#page-contact .contact .c {
    padding: 20px 0
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c {
        display: flex;
        align-items: center
    }
}

#page-contact .contact .c .wpcf7-not-valid-tip {
    position: absolute;
    bottom: -25px;
    left: 0;
    font-size: 1.1rem;
    color: #355643;
    z-index: 10
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c.tarea {
        align-items: flex-start
    }
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c:first-child {
        padding: 0 0 40px
    }
}

#page-contact .contact .c input {
    background: #f5f5f5;
    border: none;
    padding: 26px 20px;
    width: 100%;
    font-size: 1.3rem
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c input {
        font-size: 1.5rem
    }
}

#page-contact .contact .c textarea {
    font-size: 1.3rem
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c textarea {
        font-size: 1.5rem
    }
}

@media screen and (max-width: 767px) {
    #page-contact .contact .c .l {
        margin-bottom: 10px
    }
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c .l {
        width: 24%
    }
}

#page-contact .contact .c .l i {
    display: inline-block;
    color: #355643;
    padding-left: 4px;
    font-size: 1.8rem;
    line-height: 1
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c .l i {
        font-size: 2rem
    }
}

#page-contact .contact .c .r {
    position: relative
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c .r {
        width: 76%
    }
}

#page-contact .contact .c .r textarea {
    resize: none;
    width: 100%;
    background: #f5f5f5;
    padding: 20px;
    border: none;
    font-family: 'Arial';
}

#page-contact .contact .c .radio-cell {
    position: relative
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c .radio-cell {
        display: inline-block
    }
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c .radio-cell .wpcf7-radio {
        display: flex
    }
}

#page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item {
    position: relative;
    cursor: pointer;
    align-items: center;
    display: flex
}

@media screen and (max-width: 767px) {
    #page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item {
        margin-bottom: 12px
    }

    #page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item:last-child {
        margin-bottom: 0
    }
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item {
        width: 50%
    }
}

#page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    z-index: 1;
    cursor: pointer
}

#page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item input:checked+.wpcf7-list-item-label:after {
    opacity: 1
}

#page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label {
    position: relative;
    padding-left: 36px;
    pointer-events: none;
    line-height: 1.8
}

#page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label:before {
    display: block;
    content: '';
    background: #f5f5f5;
    width: 24px;
    height: 24px;
    position: absolute;
    top: -2px;
    left: 0
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label:before {
        top: 0
    }
}

#page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label:after {
    display: block;
    content: '';
    position: absolute;
    top: 2px;
    left: 8px;
    width: 6px;
    height: 10px;
    border-bottom: 2px solid #000;
    border-right: 2px solid #000;
    z-index: 1;
    transform: translateX(0) translateY(0) translateZ(0) rotate(45deg);
    opacity: 0;
    transition: all .3s
}

@media screen and (min-width: 767px) {
    #page-contact .contact .c .radio-cell .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label:after {
        top: 4px
    }
}

#page-contact .contact #checkbox {
    margin: 40px 0 60px 0;
    width: 100%;
    padding-left: 36px;
    position: relative;
    cursor: pointer
}

@media screen and (min-width: 767px) {
    #page-contact .contact #checkbox {
        margin: 40px 0 60px 24%;
        width: 76%
    }
}

#page-contact .contact #checkbox.is-checked:after {
    opacity: 1
}

#page-contact .contact #checkbox:before {
    display: block;
    content: '';
    background: #f5f5f5;
    width: 24px;
    height: 24px;
    position: absolute;
    top: -2px;
    left: 0
}

@media screen and (min-width: 767px) {
    #page-contact .contact #checkbox:before {
        top: 0
    }
}

#page-contact .contact #checkbox:after {
    display: block;
    content: '';
    position: absolute;
    top: 2px;
    left: 8px;
    width: 6px;
    height: 10px;
    border-bottom: 2px solid #000;
    border-right: 2px solid #000;
    z-index: 1;
    transform: translateX(0) translateY(0) translateZ(0) rotate(45deg);
    transition: opacity .3s;
    opacity: 0
}

@media screen and (min-width: 767px) {
    #page-contact .contact #checkbox:after {
        top: 4px
    }
}

#page-contact .contact #checkbox a {
    display: inline-block;
    position: relative
}

#page-contact .contact #checkbox a:before {
    display: block;
    content: '';
    width: 100%;
    height: 1px;
    background: #355643;
    position: absolute;
    bottom: 0;
    left: 0
}

#page-contact .contact #submit {
    margin: 20px 0 80px 0;
    width: 100%;
    background: #000;
    transition: all .3s;
    cursor: pointer;
    pointer-events: none;
    opacity: .3
}

@media screen and (min-width: 767px) {
    #page-contact .contact #submit {
        margin: 20px 0 120px 24%;
        width: 76%
    }
}

#page-contact .contact #submit.is-active {
    opacity: 1;
    pointer-events: all
}

@media screen and (min-width: 767px) {
    #page-contact .contact #submit:hover {
        background: #355643
    }
}

#page-contact .contact #submit input {
    cursor: pointer;
    background: 0 0;
    color: #fff;
    border: none;
    padding: 20px;
    text-align: center;
    width: 100%;
    font-size: 1.5rem
}

@media screen and (min-width: 767px) {
    #page-contact .contact #submit input {
        padding: 30px;
        font-size: 1.8rem
    }
}

#page-thanks .s {
    min-height: 122vw
}

@media screen and (min-width: 767px) {
    #page-thanks .s {
        min-height: 62vw
    }
}

#page-thanks .s .t {
    font-size: 1.3rem
}

@media screen and (max-width: 767px) {
    #page-thanks .s .t {
        width: 82%;
        margin: 50px auto 30px
    }
}

@media screen and (min-width: 767px) {
    #page-thanks .s .t {
        text-align: right;
        font-size: 1.5rem;
        margin-right: 3.4vw
    }
}

#page-thanks .s .common-link {
    justify-content: center
}

@media screen and (min-width: 767px) {
    #page-thanks .s .common-link {
        justify-content: flex-end;
        margin-top: 40px;
        margin-right: 3.4vw
    }
}

@media screen and (max-width: 767px) {
    #page-thanks .s .op {
        opacity: 1
    }
}

#page-thanks .s .shape {
    position: absolute;
    width: 24vw;
    height: 37vw;
    top: 82px;
    left: 6vw
}

@media screen and (min-width: 767px) {
    #page-thanks .s .shape {
        width: 34vw;
        height: 52vw;
        top: 40px;
        left: 20vw
    }
}

.error-i {
    display: block;
    width: 100%
}

.error-i .error {
    font-size: 1.3rem !important;
    display: none;
    color: #e73c17 !important;
}

@media (min-width: 767px) {
    .error-i .error {
        font-size: 1.6rem !important
    }
}

.radio-cell-item {
    flex-wrap: wrap;
}

@media screen and (min-width: 1025px) {
    .radio-cell-item {
        width: 85%;
        display: flex;
        justify-content: space-between
    }
}

.radio-cell-item>span {
    width: 100%;
}

.radio-cell-item>span:nth-child(3n+3) {
    width: 100%;
}

.radio-cell input[type=radio] {
    position: absolute;
    opacity: 0
}

.radio-cell input[type=radio]:checked+span::after {
    opacity: 1
}

input[type=radio]+span {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
    margin: .8rem 0;
    font-size: 100%
}

input[type=radio]+span::before {
    content: "";
    display: inline-block;
    width: 2rem;
    height: 2rem;
    margin: 0 .8rem 0 0;
    border-radius: 50%;
    border: 1px solid #e5e5e5;
    background-color: #fff
}

input[type=radio]+span::after {
    content: "";
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    position: absolute;
    display: inline-block;
    background-color: #000;
    margin: 0 0 0 .4rem;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    opacity: 0;
    transition: all .3s
}

.privacy-check-cell-container .privacy-error {
    margin: 20px 0 60px 0;
    width: 100%
}

@media screen and (min-width: 767px) {
    .privacy-check-cell-container .privacy-error {
        margin: 20px 0 60px 24%;
        width: 76%
    }
}

.privacy-check-cell-container .privacy-check-cell {
    margin: 40px 0 20px 0;
    width: 100%;
    padding-left: 36px;
    position: relative;
    cursor: pointer;
    display: flex
}

@media screen and (min-width: 767px) {
    .privacy-check-cell-container .privacy-check-cell {
        margin: 40px 0 20px 24%;
        width: 76%
    }
}

.privacy-check-cell-container .privacy-check-cell input[type=checkbox] {
    position: absolute;
    opacity: 0;
    background: #f5f5f5;
    border: none;
    padding: 26px 20px;
    width: 80%;
    cursor: pointer
}

@media (min-width: 767px) {
    .privacy-check-cell-container .privacy-check-cell input[type=checkbox] {
        width: 45%
    }
}

.privacy-check-cell-container .privacy-check-cell input[type=checkbox]+span::before {
    display: block;
    content: "";
    background: #f5f5f5;
    width: 24px;
    height: 24px;
    position: absolute;
    top: -2px;
    left: 0;
    cursor: pointer
}

@media (min-width: 767px) {
    .privacy-check-cell-container .privacy-check-cell input[type=checkbox]+span::before {
        top: 0
    }
}

.privacy-check-cell-container .privacy-check-cell input[type=checkbox]+span::after {
    display: block;
    content: "";
    position: absolute;
    top: 2px;
    left: 8px;
    width: 6px;
    height: 10px;
    border-bottom: 2px solid #000;
    border-right: 2px solid #000;
    z-index: 1;
    transform: translateX(0) translateY(0) translateZ(0) rotate(45deg);
    opacity: 0;
    transition: all .3s
}

.privacy-check-cell-container .privacy-check-cell input[type=checkbox]:checked+span::after {
    opacity: 1
}

.privacy-check-cell-container .privacy-check-cell a {
    display: inline-block;
    position: relative
}

.privacy-check-cell-container .privacy-check-cell a::before {
    display: block;
    content: "";
    width: 100%;
    height: 1px;
    background: #355643;
    position: absolute;
    bottom: 0;
    left: 0
}

.btn-container .submit-cell {
    margin: 20px 0 80px 0;
    width: 100%;
    background: #000;
    transition: all .3s;
    cursor: pointer;
    opacity: 1;
    pointer-events: all
}

@media (min-width: 767px) {
    .btn-container .submit-cell {
        margin: 20px 0 120px 24%;
        width: 76%
    }

    .btn-container .submit-cell:hover {
        background: #355643
    }
}

.btn-container .submit-cell input {
    cursor: pointer;
    background: 0 0;
    color: #fff;
    border: none;
    padding: 20px;
    text-align: center;
    width: 100%;
    font-size: 1.5rem
}

@media (min-width: 767px) {
    .btn-container .submit-cell input {
        padding: 30px;
        font-size: 1.8rem
    }
}

.btn-container .back-cell {
    margin: 20px 0 80px 0;
    background: #000;
    transition: all .3s;
    cursor: pointer;
    opacity: 1;
    pointer-events: all
}

@media (min-width: 767px) {
    .btn-container .back-cell {
        margin: 20px 0 120px 24%;
        width: 76%
    }

    .btn-container .back-cell:hover {
        background: #355643
    }
}

.btn-container .back-cell input {
    cursor: pointer;
    background: 0 0;
    color: #fff;
    border: none;
    padding: 20px;
    text-align: center;
    width: 100%;
    font-size: 1.5rem
}

@media (min-width: 767px) {
    .btn-container .back-cell input {
        padding: 30px;
        font-size: 1.8rem
    }
}

.mw_wp_form .horizontal-item+.horizontal-item {
    margin-left: 0 !important
}

@media screen and (min-width: 767px) {
    #page-company .s4 .flex::after {
        content: "";
        display: block;
        width: 29%;
        margin-bottom: 4vw;
    }
}

/**202208**/
#calloutElm {
    position: fixed;
    right: 8px;
    bottom: 8px;
    z-index: 99;
}

#calloutElm.scroll-in {
    display: block;
}

#calloutElm a {
    display: block;
    width: 40vw;
    max-width: 210px;
    /**background: #000;**/
    transition: .2s;
}

#calloutElm a img {
    width: 100%;
    height: auto;
}

#calloutElm a:hover {
    opacity: .8;
}

.closebtn {
    position: absolute;
    top: -15px;
    right: 5px;
    color: white;
    background: #000;
    line-height: 1;
    cursor: pointer;
    z-index: 1;
    width: 30px;
    line-height: 30px;
    padding: 0;
    text-align: center;
    border-radius: 15px;
    font-size: 12px;
}

/**202209_iframe**/
#page-news-detail #fit-area .wysywig p iframe {
    display: block !important;
    position: inherit;
    max-width: 100%;
}

.js-lan {}

ul.lan {
    position: absolute;
    right: 0;
    top: 90%;
    display: none;
}

ul.lan>li {
    list-style: none;
    text-align: right;
    background: #355643;
}

ul.lan>li:hover {
    background-color: #000;
}

ul.lan>li>a,
ul.lan>li:hover a {
    color: #fff !important;
    text-align: center;
    padding: 10px 10px !important;
}

/*ul.lan>li>a:hover {
    color: #355643 !important;
}*/



#page-top .s3 .txts h3,
#page-top .s4 .txts h3,
#page-top .s3 .txts h4,
#page-top .s4 .txts h4,
#page-top .s6 h3,
#page-top .s6 h4,
#page-company .common-head h3,
#page-company .common-head h4,
#page-locations .common-head h3,
#page-locations .common-head h4,
#page-profile .common-head h3,
#page-profile .common-head h4 {
    color: #fff;
}

#page-company .common-link span {
    background: #fff;
}

#page-company .common-link span svg {
    fill: #355643;
}


#page-company .swiper-area .swiper .swiper-wrapper .swiper-slide {
    width: calc(100% / 2) !important;
    height: auto;
}

@media screen and (min-width: 767px) {
    #page-company .swiper-area .swiper .swiper-wrapper .swiper-slide {
        height: 41.7vw;
    }

    .radio-cell-item>span {
        width: calc(80% / 3);
    }

    .radio-cell-item>span:nth-child(3n+3) {
        width: 40%;
    }
}

.profilePage .link {
    width: 90%;
    max-width: 300px;
    line-height: 50px;
    background: #000;
    color: #fff;
    font-size: 16px;
    margin: 1% auto;
}

.profilePage table,
.profilePage tbody {
    display: block;
    width: 100%;
    font-size: 16px;
    max-width: 1000px;
}

.profilePage tbody td p,
.profilePage tbody td span{
    font-size: 16px !important;
}

.profilePage .info {
    text-align: center;
    margin: 2% 0 5% 0;
    font-size: 16px;
    line-height: 2;
}