@charset "utf-8";

/*
 * style.css
 *
 *  version --- 1.0
 *  updated --- 2017/11/30
 */
/* !root
---------------------------------------------------------- */
:root {
    --basic-color: #333333;
    --basic-font: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;

    --font-alansans: "Alan Sans", sans-serif;

    --color-red: #9B003F;
    --color-blue: #080E5E;
    --color-white: #fff;
    --color-lightwhite: #F8F9FA;
    --color-gray: #EFEFEF;
    --color-darkgray: #BFBFBF;
    --color-lightgray: #F0F0F0;
    --color-black: #000;
}

/* !HTML5 elements
---------------------------------------------------------- */
header, 
footer, 
nav, 
section, 
aside, 
article {
    display: block;
}

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

fieldset {
  border: none;
}

ul,
ol,
li {
	list-style: none;
}

img {
	max-width: 100%;
    height: auto;
	vertical-align: top;
}

table {
	border-collapse: collapse;
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}

select::-ms-expand {
	display: none;
}

input[type=radio]::-ms-check,
input[type=checkbox]::-ms-check{
	display: none;
}

select,
input[type=radio],
input[type=checkbox],
input[type=text],
input[type=password],
input[type=email],
input[type=tel],
input[type=number],
input[type=reset],
input[type=button],
input[type=submit],
textarea {
	appearance: none;
	border-radius: 0;
	font-family: var(--basic-font);
    color: var(--basic-color);
}

input[type=text]::-ms-clear,
input[type=tel]::-ms-clear,
input[type=number]::-ms-clear{
	display: none;
}

input[type=reset],
input[type=button],
input[type=submit]  {
    font-family: var(--basic-font);
    color: var(--basic-color);
	cursor: pointer;
}

input::-webkit-input-placeholder, 
textarea::-webkit-input-placeholder { 
    color: #B8B8B8; 
} 
input:-moz-placeholder, 
textarea:-moz-placeholder { 
    color: #B8B8B8; 
} 
input::-moz-placeholder, 
textarea::-moz-placeholder { 
    color: #B8B8B8; 
} 
input:-ms-input-placeholder, 
textarea:-ms-input-placeholder { 
    color: #B8B8B8; 
} 

*,
*:before,
*::after {
	box-sizing: border-box;
}
/* !Clearfix
---------------------------------------------------------- */
.clearfix {
    display: block;
    min-height: 1%;
}

.clearfix:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}

* html .clearfix {
    height: 1%;
}

/* !Layout
---------------------------------------------------------- */
html {
    overflow-y: scroll;
    font-size: 62.5%;
}

html.no_move {
    overflow: hidden;
}

/*** タブレット 768x ~ 1200px***/
@media screen and (min-width: 768px) {
    html {
        font-size: calc(100vw / 192);
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    html {
        font-size: calc(100vw / 39);
    }
}

body {
    font-family: var(--basic-font);
    color: var(--basic-color);
    font-size: 1.8rem;
    -webkit-text-size-adjust: none;
    line-height: 1.6;
    letter-spacing:0.111em;
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
    background: var(--color-lightwhite);
}


/* !Base Fonts -------------------------------------------------------------- */
a {
    color: var(--basic-color);
    text-decoration: none;
}

/*** hover ***/
@media screen and (min-width: 960px) {
    a {
        transition: all 0.5s;
    }

    a:hover {
        text-decoration: none;
    }

    .hover-opacity {
        transition: opacity 0.5s ease-out;
    }

    .hover-opacity:hover {
        opacity: .7;
        text-decoration: none;
    }

    a[href^="tel:"] {
        cursor: default;
        pointer-events:none;
    }

    .hover-scale img {
        transition: transform .5s ease;
    }

    .hover-scale:hover img {
        transform: scale(1.05);
    }
}

.is-hide {
    display: none;
}

/*** 非スマホ 768px ~ ***/
@media screen and (min-width: 768px) {
    .is-sp {
        display: none;
    }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .is-pc {
        display: none;
    }
}

.color-red {
    color: var(--color-red);
}


/* ===================================================
   ヘッダーおよびフッターメニューのホバー時の文字色変更
=================================================== */

/* 1. PCヘッダーナビゲーション */
#g-navi .navi-list li a {
    transition: color 0.3s ease;
}

#g-navi .navi-list li a:hover {
    color: var(--color-red); /* またはお好みのカラーコード（例: #9B003F） */
}

/* 2. フッターナビゲーション */
.footer-navi li a {
    transition: color 0.3s ease;
}

.footer-navi li a:hover {
    color: var(--color-red); /* またはお好みのカラーコード */
}

/* 3. スマホ・タブレットメニュー（展開時のメニュー内リンク） */
@media screen and (max-width: 767px) {
    #g-navi .navi-list li a:hover,
    #g-navi .navi-list li a:active {
        color: var(--color-red);
    }
}



/* !js
---------------------------------------------------------- */
.js-image-scroll {
    overflow: hidden;
    display: flex;
}
.js-image-scroll ul {
    display: flex;
    align-items: flex-start;
}
.js-image-scroll ul:nth-child(odd) {
    animation-name: image-loop-left1;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
.js-image-scroll ul:nth-child(even) {
    animation-name: image-loop-left2;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
@keyframes image-loop-left1 {
    0% {
        transform: translateX(100%);
    }
    100% {
        transform: translateX(-100%);
    }
}
@keyframes image-loop-left2 {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-200%);
    }
}

.js-biggerlink {
    cursor: pointer;
}

.fadeline {
    position: relative;
    clip-path: inset(0 100% 0 0);
    transition: clip-path .3s ease;
    display: inline-block;
}

.fadeline:after {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    content: '';
    background: var(--color-blue);
    clip-path: inset(0 0 0 0);
    transition: clip-path .3s ease .3s;
}

.fadeline + .fadeline {
    transition-delay: .3s;
}
.fadeline + .fadeline:after {
    transition-delay: .6s;
}

.animated .fadeline {
    clip-path: inset(0 0 0 0);
}

.animated .fadeline:after {
    clip-path: inset(0 0 0 100%);
}

/* !heading
---------------------------------------------------------- */
.heading-large {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.heading-large .heading-large__en {
    font-size: 12rem;
    line-height: 1;
    font-family: var(--font-alansans);
    font-weight: 600;
    letter-spacing: .4rem;
    color: var(--color-blue);
}

.heading-large .heading-large__jp {
    font-size: 2.2rem;
    line-height: 1.27;
    font-weight: 800;
    letter-spacing: .3rem;
    color: var(--color-red);
}

.heading-large .heading-large__jp.fadeline:after {
    background: var(--color-red);
}

.heading-mediun {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1.6rem;
    margin-bottom: 9.8rem;
}

.heading-mediun .heading-mediun__en {
    font-size: 2.4rem;
    line-height: 1;
    font-family: var(--font-alansans);
    font-weight: 600;
    letter-spacing: .4rem;
    color: var(--color-red);
}

.heading-mediun .heading-mediun__en.fadeline:after {
    background: var(--color-red);
}

.heading-mediun .heading-mediun__jp {
    font-size: 6rem;
    line-height: 1.5;
    font-weight: 800;
    letter-spacing: .4rem;
    color: var(--color-blue);
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){

    .heading-large .heading-large__en {
        font-size: 6.5rem;
        letter-spacing: .2rem;
    }

    .heading-large .heading-large__jp {
        font-size: 1.6rem;
        letter-spacing: .1rem;
    }

    .heading-mediun {
        gap: 0;
        margin-bottom: 2rem;
    }

    .heading-mediun .heading-mediun__en {
        font-size: 1.6rem;
        letter-spacing: .2rem;
    }

    .heading-mediun .heading-mediun__jp {
        font-size: 2.3rem;
        line-height: 1.6;
        letter-spacing: .2rem;
    }
}

/* !button & link
---------------------------------------------------------- */

.btn-links {
    display: inline-flex;
    align-items: center;
    gap: 4rem;
    padding: 1.4rem 2rem;
    background: var(--color-blue);
    border-radius: .5rem;
    font-size: 2.2rem;
    line-height: 1.5;
    font-weight: bold;
    letter-spacing: .3rem;
    color: var(--color-white);
}

.btn-links:after {
    width: 3rem;
    height: 3rem;
    content: '';
    background: url(../img/common/icon_double_arrow_right_blue.svg) center center no-repeat;
    background-size: 100% auto;
    transition: background-image .5s ease;
}

.txt-links {
    display: inline-flex;
    align-items: center;
    gap: 3rem;
    padding: .675rem 0 2.125rem;
    border-bottom: .1rem solid var(--basic-color);
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .3rem;
}

.txt-links:after {
    width: 3rem;
    height: 3rem;
    content: '';
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100% auto;
    transition: background-image .5s ease;
}

.txt-links.arrow-red:after {
    background-image: url(../img/common/icon_link_right_red.svg);
}

.txt-links.arrow-blue:after {
    background-image: url(../img/common/icon_link_right_blue.svg);
}

/*** hover ***/
@media screen and (min-width: 960px) {
    .btn-links:hover {
        background: var(--color-red);
    }

    .btn-links:hover:after {
        background-image: url(../img/common/icon_double_arrow_right_red.svg);
    }

    .txt-links.arrow-red:hover {
        color: var(--color-red);
        border-bottom-color: var(--color-red);
    }

    .txt-links.arrow-red:hover:after {
        background-image: url(../img/common/icon_link_right_red_hover.svg);
    }

    .txt-links.arrow-blue:hover {
        color: var(--color-blue);
        border-bottom-color: var(--color-blue);
    }

    .txt-links.arrow-blue:hover:after {
        background-image: url(../img/common/icon_link_right_blue_hover.svg);
    }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .btn-links {
        gap: 3rem;
        padding: 1.02rem 1.456rem;
        border-radius: .364rem;
        font-size: 1.6rem;
        letter-spacing: .218rem;
    }

    .btn-links:after {
        width: 2.185rem;
        height: 2.185rem;
    }

    .txt-links {
        padding: 0 0 1.425rem;
        font-size: 1.8rem;
    }
}

/* !wrapper
---------------------------------------------------------- */
#wrapper {
    width: 100%;
    padding-top: 10rem;
    min-height: 100vh;
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    #wrapper {
        padding-top: 6.4rem;
    }
}

/* !header
---------------------------------------------------------- */
#header {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 999;
    width: 100%;
    background: var(--color-white);
}

.header-inner {
    padding: 0 5rem;
    width: 100%;
    height: 10rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
}

.header-logo {
    width: 31.9rem;
    font-size: 1px;
    line-height: 1;
}

.header-logo img {
    width: 100%;
}

.btn-menu {
    display: none;
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .header-inner {
        padding: 0 0 0 1.6rem;
        height: 6.4rem;
    }

    .header-logo {
        width: 18.4rem;
    }

    .btn-menu {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: .466rem;
        width: 6.4rem;
        height: 6.4rem;
        border-radius: 0 0 0 .5rem;
        background: var(--color-red);
    }

    .btn-menu:after {
        content: 'MENU';
        font-size: 1.275rem;
        line-height: 1.3;
        letter-spacing: 0;
        font-weight: 500;
        color: var(--color-white);
    }

    .btn-menu.is-active:after {
        content: 'CLOSE';
    }

    .btn-menu .btn-menu__line {
        width: 2.7rem;
        height: 1.8rem;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    .btn-menu .btn-menu__line .line {
        width: 100%;
        height: .3rem;
        background: var(--color-white);
        transition: all .5s ease;
    }

    .btn-menu .btn-menu__line .line:nth-child(2) {
        width: 1.8rem;
    }

    .btn-menu .btn-menu__line .line:nth-child(3) {
        width: .9rem;
    }

    .btn-menu.is-active .btn-menu__line .line:nth-child(1) {
        transform: translateY(.75rem) rotate(45deg);
    }

    .btn-menu.is-active .btn-menu__line .line:nth-child(2) {
        opacity: 0;
    }

    .btn-menu.is-active .btn-menu__line .line:nth-child(3) {
        width: 100%;
        transform: translateY(-.75rem) rotate(-45deg);
    }
}

/* !global navigation
---------------------------------------------------------- */
#g-navi {
    display: flex;
    align-items: center;
    gap: 4rem;
}

#g-navi .navi-list {
    display: flex;
    align-items: center;
    gap: 4rem;
}

#g-navi .navi-list li {
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: .2rem;
    font-weight: 600;
}

#g-navi .navi-tel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#g-navi .navi-tel a[href^="tel:"] {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    font-size: 2.8rem;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .2rem;
    color: var(--color-blue);
}

#g-navi .navi-tel a[href^="tel:"]:before {
    width: 3.2rem;
    height: 3.2rem;
    content: '';
    background: url(../img/common/icon_phone_blue.svg) center center no-repeat;
    background-size: 100% auto;
}

#g-navi .navi-tel p {
    display: flex;
    align-items: center;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .2rem;
    margin-top: -.3rem;
}

#g-navi .navi-tel p span {
    display: flex;
    align-items: center;
}

#g-navi .navi-tel p span:after {
    content: '：';
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .2rem;
}

#g-navi .navi-contact a {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    width: 20.4rem;
    height: 6rem;
    border-radius: .5rem;
    background: var(--color-red);
    font-size: 2rem;
    line-height: 1.5;
    font-weight: bold;
    letter-spacing: .2rem;
    color: var(--color-white);
}

#g-navi .navi-contact a:before {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    background: url(../img/common/icon_contact_white.svg) center center no-repeat;
    background-size: 100% auto;
}

/*** hover ***/
@media screen and (min-width: 960px) {
    #g-navi .navi-contact a:hover {
        background: var(--color-blue);
    }
}

/*** 非スマホ 768px ~ ***/
@media screen and (min-width: 768px) {
    #g-navi .navi-list li:nth-child(1),
    #g-navi .navi-list li:nth-child(6),
    #g-navi .navi-list li:nth-child(7) {
        display: none;
    }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    #g-navi {
        flex-direction: column;
        gap: 3rem;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 3rem 3.2rem 5.3rem;
        width: 100%;
        height: calc(100dvh - 6.4rem);
        position: fixed;
        left: 0;
        top: 6.4rem;
        z-index: 99;
        background: rgba(255, 255, 255, .8);
        backdrop-filter: blur(2.5rem);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .5s ease, visibility .5s ease;
    }

    #g-navi.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    #g-navi .navi-list {
        flex-direction: column;
        gap: 1.6rem;
        width: 100%;
    }

    #g-navi .navi-list li {
        width: 100%;
        border-bottom: .1rem solid #D2D2D2;
    }

    #g-navi .navi-list li a {
        display: block;
        width: 100%;
        padding: .8rem;
    }

    .navi-list li:nth-child(1) a {
        color: var(--color-red);
    }

    #g-navi .navi-tel {
        width: 100%;
    }

    #g-navi .navi-tel a[href^="tel:"] {
        gap: .75rem;
        font-size: 3.4rem;
        letter-spacing: .3rem;
    }

    #g-navi .navi-tel a[href^="tel:"]:before {
        width: 4rem;
        height: 4rem;
    }

    #g-navi .navi-tel p {
        font-size: 1.5rem;
        letter-spacing: .15rem;
        margin-top: .225rem;
        gap: .75rem;
        color: var(--color-blue);
    }

    #g-navi .navi-tel p span {
        padding: 0 .75rem;
        background: var(--color-blue);
        color: var(--color-white);
    }

    #g-navi .navi-tel p span:after {
        display: none;
    }

    #g-navi .navi-contact {
        width: 100%;
    }

    #g-navi .navi-contact a {
        gap: 1.316rem;
        width: 100%;
        height: 7rem;
        border-radius: .329rem;
        font-size: 2rem;
        line-height: 1.5;
        font-weight: bold;
        letter-spacing: .132rem;
        color: var(--color-white);
    }

    #g-navi .navi-contact a:before {
        width: 3rem;
        height: 3rem;
    }

    #g-navi .navi-contact a:after {
        width: 2.4rem;
        height: 2.4rem;
        content: '';
        background: url(../img/common/icon_double_arrow_right_red.svg) center center no-repeat;
        background-size: 100% auto;
    }
}

/* !main Visual
---------------------------------------------------------- */
#main-visual {
    position: relative;
    z-index: 2;
    padding: 3rem 5rem 0;
}

#main-visual .mv-copy {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    padding: 1rem 5rem 3.4rem .5rem;
    background: url(../img/top/bg_mv_ttl.png) left top no-repeat;
    background-size: 100% 100%;
    font-size: 1.8rem;
    line-height: 1.7;
    font-weight: 500;
    letter-spacing: .3rem;
}

#main-visual .mv-swiper {
    position: relative;
}

#main-visual .mv-swiper .swiper {
    border-radius: 1rem;
    overflow: hidden;
}

.mv-swiper .swiper-slide {
    position: relative;
}

.mv-swiper .swiper-slide:before {
    width: 100%;
    height: 100%;
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    background: var(--color-blue);
}

.mv-swiper .swiper-slide[class*=-active]:before {
    animation: mv-swiper-slide .4s linear .4s forwards;
}

/* アニメーション */
@keyframes mv-swiper-slide {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}

.mv-swiper .swiper-fade .swiper-slide {
    -webkit-transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, transform !important;
    transition-property: opacity, transform, -webkit-transform !important;
    pointer-events: none;
}

.mv-swiper .swiper-slide img {
    -webkit-transition: 7s 1s ease-out;
    transition: 7s 1s ease-out;
}

.mv-swiper .swiper-slide[class*=-active] img {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
}

#main-visual .mv-catchcopy {
    font-family: var(--font-alansans);
    font-size: calc(17.6 * 100vw / 192);
    line-height: 1;
    font-weight: 600;
    letter-spacing: calc(.5 * 100vw / 192);
    color: var(--color-red);
    padding-left: calc(13.6 * 100vw / 192);
    text-indent: calc(-13.6 * 100vw / 192);
    margin-left: calc(8 * 100vw / 192);
    margin-top: calc(-8.7 * 100vw / 192);
    position: relative;
    z-index: 2;
}

#main-visual .mv-heading {
    position: absolute;
    right: 9rem;
    top: 7rem;
    z-index: 2;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: upright;
}

#main-visual .mv-heading p {
    width: 9.454rem;
    height: 39rem;
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    overflow: hidden;
    color: var(--color-blue);
    letter-spacing: 0;
}

#main-visual .mv-heading p:before {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    background: var(--color-white);
    content: '';
}

#main-visual .mv-heading p:after {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    background: var(--color-blue);
    content: '';
}

#main-visual .mv-heading p.mv-heading__large {
    font-size: 7.3rem;
    font-weight: 900;
    justify-content: space-between;
}


#main-visual .mv-heading p.mv-heading__normal {
    font-size: 4.9rem;
    font-weight: 800;
    justify-content: flex-start;
}

#main-visual .mv-heading p:not(:nth-child(1)) {
    margin-right: -.2rem;
}

#main-visual .mv-heading p:nth-child(odd) {
    border-radius: 1rem 1rem 0 0;
}

#main-visual .mv-heading p:nth-child(even) {
    transform: translateY(2rem);
    border-radius: 0 0 1rem 1rem;
}

#main-visual .mv-heading p:first-child {
    border-bottom-right-radius: 1rem;
}

#main-visual .mv-heading p:last-child {
    border-bottom-left-radius: 1rem;
}

#main-visual .mv-heading p:nth-child(1),
#main-visual .mv-heading p:nth-child(3) {
    padding: 3.7rem 0 2.3rem;
}

#main-visual .mv-heading p:nth-child(2) {
    padding: 1.7rem 0 4.5rem;
}

#main-visual .mv-heading p:nth-child(4) {
    padding: 3rem 0 0;
}

#main-visual .mv-heading p:nth-child(5) {
    padding: 5.5rem 0 0;
}

#main-visual .mv-heading p span {
    opacity: 0;
    transition: opacity .04s ease;
}

#main-visual .mv-heading p:nth-child(1) span {
    transition-delay: .58s;
}

#main-visual .mv-heading p:nth-child(2) span {
    transition-delay: .98s;
}

#main-visual .mv-heading p:nth-child(3) span {
    transition-delay: 1.38s;
}

#main-visual .mv-heading p:nth-child(4) span,
#main-visual .mv-heading p:nth-child(5) span {
    transition-delay: 1.78s;
}

#main-visual .mv-heading p:before {
    transition: transform .18s linear;
    transform: translateY(-100%);
}

#main-visual .mv-heading p:nth-child(1):before {
    transition-delay: .4s;
}

#main-visual .mv-heading p:nth-child(2):before {
    transition-delay: .8s;
}

#main-visual .mv-heading p:nth-child(3):before {
    transition-delay: 1.2s;
}

#main-visual .mv-heading p:nth-child(4):before,
#main-visual .mv-heading p:nth-child(5):before {
    transition-delay: 1.6s;
}

#main-visual .mv-heading p:after {
    animation-duration: .4s;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
    transform: translateY(-100%);
}

#main-visual .mv-heading p:nth-child(1):after {
    animation-delay: .4s;
}

#main-visual .mv-heading p:nth-child(2):after {
    animation-delay: .8s;
}

#main-visual .mv-heading p:nth-child(3):after {
    animation-delay: 1.2s;
}

#main-visual .mv-heading p:nth-child(4):after,
#main-visual .mv-heading p:nth-child(5):after {
    animation-delay: 1.6s;
}

.is-loaded #main-visual .mv-heading p span {
    opacity: 1;
}

.is-loaded #main-visual .mv-heading p:before {
    transform: translateY(0);
}

.is-loaded #main-visual .mv-heading p:after {
    animation-name: mv-heading;
}

/* アニメーション */
@keyframes mv-heading {
  0% {
    transform: translateY(-100%);
  }
  43.75%, 56.25%{
    transform: translateY(0);
  }
  100% {
    transform: translateY(100%);
  }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    #main-visual {
        padding: 2rem 1rem 0;
    }

    #main-visual .mv-copy {
        display: none;
    }

    #main-visual .mv-catchcopy {
        font-size: calc(5.8 * 100vw / 39);
        letter-spacing: 0;
        padding-left: 0;
        text-indent: 0;
        margin-left: 0;
        margin-top: calc(-9 * 100vw / 39);
    }

    #main-visual .mv-heading {
        right: 2rem;
        top: 3rem;
    }

    #main-visual .mv-heading p {
        width: 4.847rem;
        height: 20rem;
    }

    #main-visual .mv-heading p.mv-heading__large {
        font-size: 3.76rem;
    }

    #main-visual .mv-heading p.mv-heading__normal {
        font-size: 2.544rem;
    }

    #main-visual .mv-heading p:not(:nth-child(1)) {
        margin-right: -.1rem;
    }

    #main-visual .mv-heading p:nth-child(odd) {
        border-radius: .5rem .5rem 0 0;
    }

    #main-visual .mv-heading p:nth-child(even) {
        transform: translateY(1rem);
        border-radius: 0 0 .5rem .5rem;
    }

    #main-visual .mv-heading p:first-child {
        border-bottom-right-radius: .5rem;
    }

    #main-visual .mv-heading p:last-child {
        border-bottom-left-radius: .5rem;
    }

    #main-visual .mv-heading p:nth-child(1),
    #main-visual .mv-heading p:nth-child(3) {
        padding: 1.897rem 0 1.298rem;
    }

    #main-visual .mv-heading p:nth-child(2) {
        padding: .872rem 0 2.426rem;
    }

    #main-visual .mv-heading p:nth-child(4) {
        padding: 1.538rem 0 0;
    }

    #main-visual .mv-heading p:nth-child(5) {
        padding: 2.82rem 0 0;
    }
}

/* !teaser
---------------------------------------------------------- */
#teaser {
    width: 100%;
    padding: 10.2rem 3.2rem 6.2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5.3rem;
    background: url(../img/common/bg_teaser_pc.png) center center no-repeat;
    background-size: cover;
}

#teaser .teaser-heading {
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: .4rem;
}

#teaser .teaser-heading .teaser-heading__jp {
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1.27;
    letter-spacing: .3rem;
    color: var(--color-red);
}

#teaser .teaser-heading .teaser-heading__jp.fadeline:after {
    background: var(--color-red);
}

#teaser .teaser-heading .teaser-heading__en {
    font-size: 12rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .4rem;
    color: var(--color-blue);
    font-family: var(--font-alansans);
}

#teaser h1 {
    font-size: 1.8rem;
    line-height: 1.7;
    font-weight: 500;
    letter-spacing: .3rem;
    color: var(--color-black);
    text-align: center;
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    #teaser {
        padding: 0 3.2rem;
        gap: 2rem;
        background-image: url(../img/common/bg_teaser_sp.png);
        height: 26rem;
    }

    #teaser .teaser-heading {
        gap: 0;
    }

    #teaser .teaser-heading .teaser-heading__jp {
        font-size: 1.6rem;
        line-height: 1.5;
        letter-spacing: .2rem;
    }

    #teaser .teaser-heading .teaser-heading__en {
        font-size: 4.5rem;
        letter-spacing: .2rem;
    }

    #teaser h1 {
        font-size: 1.6rem;
        line-height: 1.5;
        letter-spacing: .2rem;
    }
}


/* !breadcrumb
---------------------------------------------------------- */
#breadcrumb {
    padding: 2.5rem 0;
}

#breadcrumb ul {
    display: flex;
    align-items: flex-start;
}

#breadcrumb li {
    position: relative;
    color: var(--color-black);
    font-size: 1.4rem;
    line-height: 1.7;
    letter-spacing: .3rem;
    font-weight: 400;
}

#breadcrumb li:not(:first-child) {
    padding-left: 1em;
}

#breadcrumb li:not(:first-child):before {
    width: 1em;
    content: '>';
    text-align: center;
    font-size: 1.4rem;
    line-height: 1.7;
    letter-spacing: .3rem;
    font-weight: 400;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
}

#breadcrumb li:not(:last-child) {
    word-break: keep-all;
    white-space: nowrap;
}

#breadcrumb li a {
    display: block;
    color: var(--color-black);
}

/*** hover ***/
@media screen and (min-width: 960px) {}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    #breadcrumb {
        padding: 1rem 0;
    }

    #breadcrumb li {
        font-size: 1.2rem;
        letter-spacing: .1rem;
    }

    #breadcrumb li:not(:first-child):before {
        font-size: 1.2rem;
        letter-spacing: .1rem;
    }
}

/* !contents
---------------------------------------------------------- */
#contents {
    width: 100%;
}

.anchor-area {
    position: relative;
}

.anchor-area .anchor {
    position: absolute;
    top: -10rem;
    z-index: -1;
}

.inner {
    width: 100%;
    max-width: 166.4rem;
    padding: 0 3.2rem;
    margin: 0 auto;
}

.common-contact {
    position: relative;
    padding: 10.3rem 0 22rem;
}

.common-contact__scroll {
    filter: blur(.45rem);
    position: absolute;
    left: 0;
    top: -7rem;
    z-index: 1;
    width: 100%;
    pointer-events: none;
}

.common-contact__scroll li {
    font-size: 20rem;
    line-height: 1.7;
    letter-spacing: .4rem;
    font-family: var(--font-alansans);
    font-weight: 600;
    color: rgba(191, 191, 191, .18);
    word-break: keep-all;
    white-space: nowrap;
    padding-right: .25em;
    text-transform: uppercase;
}

.common-contact__inner {
    display: grid;
    grid-template-columns: 33.125% auto;
    position: relative;
    z-index: 2;
}

.common-contact__head {
    font-size: 1.8rem;
    line-height: 1.7;
    letter-spacing: .2rem;
}

.common-contact__head h2 {
    font-size: 6.4rem;
    line-height: 1.8;
    letter-spacing: .4rem;
    font-weight: bold;
    color: var(--color-blue);
    margin-bottom: 4.2rem;
}

.common-contact__body {
    border-left: .1rem solid #080E5E;
}

.common-contact__item {
    width: 100%;
    padding-left: 10%;
    display: flex;
    align-items: center;
    gap: 4.5rem;
}

.common-contact__item dt {
    width: 30rem;
    min-width: 30rem;
    font-size: 1.9rem;
    line-height: 1.3;
    letter-spacing: .2rem;
    font-weight: bold;
}

.common-contact__item dd {
    flex-grow: 1;
}

.common-contact-tel {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.common-contact-tel a[href^="tel:"] {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 4.8rem;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .4rem;
    color: var(--color-blue);
}

.common-contact-tel a[href^="tel:"]:before {
    width: 5rem;
    height: 5rem;
    content: '';
    background: url(../img/common/icon_phone_blue.svg) center center no-repeat;
    background-size: 100% auto;
}

.common-contact-tel p {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .2rem;
    margin-top: .3rem;
    color: var(--color-blue);
}

.common-contact-tel p span {
    display: flex;
    align-items: center;
    font-size: 1.8rem;
    line-height: 1.5;
    padding: 0 1rem;
    background: var(--color-blue);
    color: var(--color-white);
}

.common-contact-button a {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    width: 100%;
    max-width: 48.8rem;
    height: 10.5rem;
    border-radius: .5rem;
    background: var(--color-red);
    font-size: 3rem;
    line-height: 1.5;
    font-weight: bold;
    letter-spacing: .2rem;
    color: var(--color-white);
}

.common-contact-button a:before {
    width: 4rem;
    height: 4rem;
    content: '';
    background: url(../img/common/icon_contact_white.svg) center center no-repeat;
    background-size: 100% auto;
}

.common-contact-button a:after {
    width: 3rem;
    height: 3rem;
    content: '';
    background: url(../img/common/icon_double_arrow_right_red.svg) center center no-repeat;
    background-size: 100% auto;
    transition: background-image .5s ease;
}

/*** hover ***/
@media screen and (min-width: 960px) {
    .common-contact-button a:hover {
        background: var(--color-blue);
    }

    .common-contact-button a:hover:after {
        background-image: url(../img/common/icon_double_arrow_right_blue.svg);
    }
}

/*** 非スマホ 768px ~ ***/
@media screen and (min-width: 768px) {
    .common-contact__item + .common-contact__item {
        padding-top: 4rem;
        margin-top: 4rem;
        border-top: .1rem solid #080E5E;
    }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .anchor-area .anchor {
        top: -6.4rem;
    }

    .common-contact {
        padding: 3.7rem 0 5rem;
    }

    .common-contact__scroll {
        top: -2rem;
    }

    .common-contact__scroll li {
        font-size: 9rem;
        line-height: 1.7;
        letter-spacing: .102rem;
    }

    .common-contact__inner {
        display: block;
    }

    .common-contact__head {
        font-size: 1.6rem;
        line-height: 1.5;
        letter-spacing: .1rem;
        margin-bottom: 2.4rem;
    }

    .common-contact__head h2 {
        font-size: 4.2rem;
        line-height: 1.6;
        margin-bottom: 1.6rem;
        text-align: center;
    }

    .common-contact__head p {
        width: 100%;
        max-width: 27.1rem;
        margin: 0 auto;
    }

    .common-contact__body {
        border-left: 0;
    }

    .common-contact__item {
        padding: 2.4rem 0;
        display: block;
        border-top: .1rem solid #080E5E;
    }

    .common-contact__item dt {
        width: 100%;
        min-width: 100%;
        font-size: 1.8rem;
        text-align: center;
        margin-bottom: 1.6rem;
    }

    .common-contact__item dd {
        width: 100%;
    }

    .common-contact-tel {
        justify-content: center;
        align-items: center;
    }

    .common-contact-tel a[href^="tel:"] {
        gap: .75rem;
        font-size: 3.4rem;
        letter-spacing: .3rem;
    }

    .common-contact-tel a[href^="tel:"]:before {
        width: 4rem;
        height: 4rem;
    }

    .common-contact-tel p {
        gap: .75rem;
        font-size: 1.5rem;
        letter-spacing: .15rem;
    }

    .common-contact-tel p span {
        font-size: 1.5rem;
        padding: 0 .75rem;
    }

    .common-contact-button a {
        gap: 1.3rem;
        height: 7rem;
        font-size: 2rem;
        letter-spacing: .132rem;
    }

    .common-contact-button a:before {
        width: 3rem;
        height: 3rem;
    }

    .common-contact-button a:after {
        width: 2.4rem;
        height: 2.4rem;
    }
}

/* !page Top
---------------------------------------------------------- */
.page-top {
    position: fixed;
    right: -2.75rem;
    bottom: 0;
    transform: translateY(-300%) rotate(90deg);
    z-index: 998;
    display: none;
}

.page-top a {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .8rem;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .2rem;
    font-family: var(--font-alansans);
}

.page-top a:before {
    width: 2.8rem;
    height: 2.8rem;
    content: '';
    background: url(../img/common/icon_pagetop.svg) center center no-repeat;
    background-size: 100% auto;
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .page-top {
        right: -5.5rem;
    }
}

/* !footer
---------------------------------------------------------- */
#footer {
    width: 100%;
}

.footer-inner {
    width: 100%;
    background: url(../img/common/bg_footer.jpg) center center no-repeat;
    background-size: cover;
    padding: 13.9rem 0 12.6rem;
}

.footer-body {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2rem;
    padding-right: 18rem;
}

.footer-logo {
    width: 47.35rem;
    font-size: 1px;
    line-height: 1;
}

.footer-logo img {
    width: 100%;
}

.footer-address {
    font-size: 1.8rem;
    line-height: 1.7;
    letter-spacing: .2rem;
    margin-top: 5rem;
}

.footer-navi {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(4, auto);
    gap: 3.6rem 0;
    width: 100%;
    max-width: 64rem;
}

.footer-navi li {
    font-size: 2rem;
    line-height: 1.8;
    font-weight: 600;
    letter-spacing: .2rem;
}

.footer-navi li:hover a::after {
  color: var(--color-red);
}

.footer-catchcopy {
    font-size: 12rem;
    line-height: 1;
    font-weight: 600;
    font-family: var(--font-alansans);
    letter-spacing: .4rem;
    color: var(--color-blue);
    margin-top: 8rem;
}

.footer-tel {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.footer-tel a[href^="tel:"] {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    font-size: 2.8rem;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .2rem;
    color: var(--color-blue);
}

.footer-tel a[href^="tel:"]:before {
    width: 3.2rem;
    height: 3.2rem;
    content: '';
    background: url(../img/common/icon_phone_blue.svg) center center no-repeat;
    background-size: 100% auto;
}

.footer-tel p {
    display: flex;
    align-items: center;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .2rem;
    margin-top: -.3rem;
}

.footer-tel p span {
    display: flex;
    align-items: center;
}

.footer-tel p span:after {
    content: '：';
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .2rem;
}

.footer-contact {
    display: none;
}

.footer-contact a {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    width: 20.4rem;
    height: 6rem;
    border-radius: .5rem;
    background: var(--color-red);
    font-size: 2rem;
    line-height: 1.5;
    font-weight: bold;
    letter-spacing: .2rem;
    color: var(--color-white);
}

.footer-contact a:before {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    background: url(../img/common/icon_contact_white.svg) center center no-repeat;
    background-size: 100% auto;
}

#copyright {
    background: var(--color-white);
    text-align: center;
    font-size: 1.4rem;
    line-height: 1.7;
    letter-spacing: .2rem;
    padding: .8rem;
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .footer-inner {
        background-image: url(../img/common/bg_footer_sp.jpg);
        padding: 6rem 0 3.6rem;
    }

    .footer-body {
        display: block;
        padding-right: 0;
    }

    .footer-logo {
        width: 100%;
    }

    .footer-address {
        font-size: 1.6rem;
        line-height: 1.5;
        letter-spacing: .1rem;
        margin-top: 3rem;
    }

    .footer-navi {
        display: flex;
        flex-direction: column;
        gap: 1.6rem;
        max-width: 100%;
        margin-top: 3rem;
    }

    .footer-navi li {
        width: 100%;
        border-bottom: .1rem solid #D2D2D2;
        font-size: 1.8rem;
        line-height: 1.5;
    }

    .footer-navi li a {
        display: block;
        padding: .8rem;
    }

    .footer-catchcopy {
        font-size: 3.6rem;
        letter-spacing: .125rem;
        margin-top: 4rem;
        word-break: keep-all;
        white-space: nowrap;
    }

    .footer-tel {
        display: flex;
        width: 100%;
        margin-top: 3rem;
    }

    .footer-tel a[href^="tel:"] {
        gap: .75rem;
        font-size: 3.4rem;
        letter-spacing: .3rem;
    }

    .footer-tel a[href^="tel:"]:before {
        width: 4rem;
        height: 4rem;
    }

    .footer-tel p {
        font-size: 1.5rem;
        letter-spacing: .15rem;
        margin-top: .225rem;
        gap: .75rem;
    }

    .footer-tel p span {
        padding: 0 .75rem;
        background: var(--color-blue);
        color: var(--color-white);
    }

    .footer-tel p span:after {
        display: none;
    }

    .footer-contact {
        width: 100%;
        display: block;
        margin-top: 3rem;
    }

    .footer-contact a {
        gap: 1.316rem;
        width: 100%;
        height: 7rem;
        border-radius: .329rem;
        font-size: 2rem;
        line-height: 1.5;
        font-weight: bold;
        letter-spacing: .132rem;
        color: var(--color-white);
    }

    .footer-contact a:before {
        width: 3rem;
        height: 3rem;
    }

    .footer-contact a:after {
        width: 2.4rem;
        height: 2.4rem;
        content: '';
        background: url(../img/common/icon_double_arrow_right_red.svg) center center no-repeat;
        background-size: 100% auto;
    }

    #copyright {
        font-size: 1.2rem;
        padding: .5rem;
    }
}


/* !HOME
---------------------------------------------------------- */
.top-recruit {
    margin-bottom: 24rem;
    width: 100%;
    background: url(../img/top/bg_recruit_pc.jpg) center center no-repeat;
    background-size: cover;
    padding: 6rem 0 0;
    position: relative;
}

.top-recruit__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 4.6875%;
}

.top-recruit-image {
    width: 56.375%;
    font-size: 1px;
    line-height: 1;
}

.top-recruit-image img {
    width: 100%;
}

.top-recruit-box {
    flex-grow: 1;
    padding-top: 6rem;
}

.top-recruit-text {
    font-size: 3rem;
    line-height: 1.6;
    font-weight: 600;
    letter-spacing: .4rem;
    margin-top: 6.4rem;
}

.top-recruit-button {
    margin-top: 7.3rem;
}

.top-recruit .heading-large .heading-large__en {
    color: var(--color-red);
    font-size: 11rem;
}

.top-recruit .heading-large .heading-large__en.fadeline:after {
    background: var(--color-red);
}

.top-recruit .heading-large .heading-large__jp {
    color: var(--basic-color);
}

.top-recruit .heading-large .heading-large__jp.fadeline:after {
    background: var(--basic-color);
}

.top-recruit__scroll {
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 0;
    z-index: 2;
    transform: translateY(50%);
}

.top-recruit__scroll ul {
    align-items: center;
}

.top-recruit__scroll li {
    padding-right: 6rem;
    width: fit-content;
}

.top-recruit__scroll li span {
    font-size: 16rem;
    line-height: 1;
    word-break: keep-all;
    white-space: nowrap;
    font-weight: 600;
    letter-spacing: .4rem;
    color: rgba(255, 255, 255, .8);
    font-family: var(--font-alansans);
    display: block;
}

.top-recruit__scroll li img {
    min-width: 22rem;
    border-radius: 1rem;
    display: block;
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .top-recruit {
        margin-bottom: 9.3rem;
        background: url(../img/top/bg_recruit_sp.jpg) center center no-repeat;
        background-size: cover;
        padding: 5.2rem 0 0;
    }

    .top-recruit__inner {
        flex-direction: column-reverse;
        gap: 4rem;
    }

    .top-recruit-image {
        width: calc(100% + 6.4rem);
        margin: 0 -3.2rem;
    }

    .top-recruit-box {
        width: 100%;
        padding-top: 0;
    }

    .top-recruit-text {
        font-size: 2rem;
        line-height: 1.4;
        letter-spacing: .2rem;
        margin-top: 3rem;
        text-align: center;
    }

    .top-recruit-button {
        margin-top: 3rem;
        text-align: center;
    }

    .top-recruit .heading-large {
        justify-content: center;
        align-items: center;
    }

    .top-recruit .heading-large .heading-large__en {
        font-size: 6.5rem;
    }

    .top-recruit__scroll li {
        padding-right: 2.5rem;
    }

    .top-recruit__scroll li span {
        font-size: 6.6rem;
        letter-spacing: .165rem;
    }

    .top-recruit__scroll li img {
        min-width: 9.08rem;
        border-radius: .413rem;
    }
}

.top-news {
    padding: 16rem 0;
}

.top-news__inner {
    width: 100%;
    max-width: 96rem;
    margin: 0 auto;
}

.top-news__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 6rem;
}

.top-news__head .heading-large .heading-large__en {
    font-size: 8rem;
}

.top-news__head .txt-links {
    padding: 0 0 1rem;
}

.news-list {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.news-list li {
    width: 100%;
    border-bottom: .1rem solid #E4E4E4;
}

.news-block {
    display: block;
    width: 100%;
    padding: 0 15.6rem 2rem 1rem;
    background: url(../img/common/icon_link_right_blue.svg) right 1.2rem bottom 2rem no-repeat;
    background-size: 3rem auto;
}

.news-block .news-info {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3rem;
    margin-bottom: 1.7rem;
}

.news-block .news-info .news-info__date {
    font-size: 1.6rem;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: .2rem;
}

.news-block .news-info .news-info__cate {
    display: inline-flex;
    border: .1rem solid #ACACAC;
    background: var(--color-white);
    padding: .1rem 1.3rem;
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: .1rem;
    font-weight: 400;
}

.news-block .news-title {
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: .1rem;
    font-weight: 500;
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    transition: color .5s ease;
}

/*** hover ***/
@media screen and (min-width: 960px) {
    .news-block:hover {
        background-image: url(../img/common/icon_link_right_blue_hover.svg);
    }

    .news-block:hover .news-title {
        color: var(--color-darkgray);
    }
}


/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .top-news {
        padding: 5.56rem 0 9rem;
    }

    .top-news__head {
        display: block;
        margin-bottom: 3rem;
    }

    .top-news__head .heading-large {
        justify-content: center;
        align-items: center;
    }

    .top-news__head .heading-large .heading-large__en {
        font-size: 5.6rem;
    }

    .news-list {
        display: flex;
        flex-direction: column;
        gap: 2rem;
    }

    .news-block {
        display: block;
        width: 100%;
        padding: 0 3rem 2rem 0;
        background: url(../img/common/icon_link_right_blue.svg) right bottom 2rem no-repeat;
        background-size: 2.4rem auto;
    }

    .news-block .news-info {
        gap: 1.8rem;
        margin-bottom: 1rem;
    }

    .news-block .news-info .news-info__date {
        font-size: 1.4rem;
        letter-spacing: .1rem;
    }

    .news-block .news-info .news-info__cate {
        padding: .1rem 1rem;
        font-size: 1.3rem;
    }

    .news-block .news-title {
        font-size: 1.6rem;
    }

    .top-news__body .top-news__links {
        margin-top: 3rem;
        text-align: center;
    }

    .top-news__body .txt-links {
        padding: 0 0 1.425rem;
    }
}


.top-company .top-company__inner {
    width: 100%;
    max-width: 135.8rem;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 2rem;
    position: relative;
}

.top-company .top-company__image {
    width: 100%;
    aspect-ratio: 679 / 300;
}

.top-company .top-company__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-company .top-company__box {
    width: 69.8rem;
    height: 27.8rem;
    background: url(../img/top/bg_company_pc.png) center center no-repeat;
    background-size: 100% 100%;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 5rem;
    padding: 1.9rem 1.2rem;
}

.top-company .heading-large {
    align-items: flex-end;
}

.top-company .heading-large .heading-large__en {
    font-size: 7rem;
}

.top-company .top-company__links {
    display: flex;
    align-items: center;
    gap: 3rem;
}

.top-company .top-company__links a {
    border-bottom: .1rem solid #BFBFBF;
    display: inline-flex;
    padding: .2rem .5rem 1.1rem 0;
    gap: 3.5rem;
    align-items: center;
    font-size: 2rem;
    line-height: 1.7;
    letter-spacing: .3rem;
    font-weight: 500;
}


.top-company .top-company__links a:after {
    width: 3rem;
    height: 3rem;
    content: '';
    background: url(../img/common/icon_link_right_blue.svg) center center no-repeat;
    background-size: 100% auto;
    transition: background-image .5s ease;
}

/*** hover ***/
@media screen and (min-width: 960px) {
    .top-company .top-company__links a:hover {
        border-bottom-color: var(--color-blue);
        color: var(--color-blue);
    }

    .top-company .top-company__links a:hover:after {
        background-image: url(../img/common/icon_link_right_blue_hover.svg);
    }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .top-company .top-company__inner {
        max-width: 100%;
        border-radius: .5rem;
    }

    .top-company .top-company__image {
        aspect-ratio: 13 / 12;
    }

    .top-company .top-company__box {
        width: 100%;
        aspect-ratio: 325 / 154;
        height: auto;
        background: url(../img/top/bg_company_sp.png) center center no-repeat;
        background-size: 100% 100%;
        position: absolute;
        left: 0;
        top: 0;
        right: unset;
        bottom: unset;
        display: block;
        padding: 0
    }

    .top-company .heading-large {
        align-items: flex-start;
        margin-bottom: 3.5rem;
    }

    .top-company .heading-large .heading-large__en {
        font-size: 5.1rem;
    }

    .top-company .top-company__links {
        width: 22.7rem;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: .8rem;
    }

    .top-company .top-company__links li {
        width: 100%;
    }

    .top-company .top-company__links a {
        width: 100%;
        padding: 0 1rem .7rem;
        justify-content: space-between;
        align-items: center;
        font-size: 1.6rem;
        letter-spacing: .2rem;
    }


    .top-company .top-company__links a:after {
        width: 2.4rem;
        height: 2.4rem;
    }
}


.top-business {
    width: 100%;
    background: var(--color-gray);
    position: relative;
    padding: 15.6rem 0;
    margin-bottom: 16rem;
    border-radius: 2rem;
}

.top-business:before {
    width: 64.3rem;
    height: 26.2rem;
    content: '';
    background: url(../img/top/bg_business.png) center center no-repeat;
    background-size: 100% 100%;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 1;
}

.top-business .inner {
    position: relative;
    z-index: 2;
}

.top-business__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 9rem;
}

.top-business__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5.5rem;
}

.business-block {
    width: 100%;
    aspect-ratio: 77 / 41;
    overflow: hidden;
    display: block;
    border-radius: .5rem;
    position: relative;
}

.business-block:after {
    width: 6rem;
    height: 6rem;
    content: '';
    background: url(../img/common/icon_link_right_red.svg) center center no-repeat #fff;
    background-size: 100% auto;
    position: absolute;
    right: 2rem;
    bottom: 2rem;
    z-index: 2;
    border-radius: 100%;
    transition: background-image .5s ease;
}

.business-block img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.business-block .business-block__caption {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    width: 8rem;
    min-height: 22rem;
    background: url(../img/top/bg_business_ttl.png) center top no-repeat;
    background-size: 100% auto;
    padding: 0 1.5rem 1.5rem 1rem;
    display: flex;
    align-items: center;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size: 3.6rem;
    letter-spacing: .123em;
    font-weight: 800;
}

/*** hover ***/
@media screen and (min-width: 960px) {
    .business-block:hover:after {
        background-image: url(../img/common/icon_link_right_red_hover.svg);
    }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .top-business {
        padding: 6.5rem 0;
        margin-bottom: 6.5rem;
        border-radius: 1rem;
    }

    .top-business:before {
        display: none;
    }

    .top-business__head {
        display: block;
        margin-bottom: 3rem;
    }

    .top-business__head .heading-large {
        justify-content: center;
        align-items: center;
    }

    .top-business__list {
        grid-template-columns: repeat(1, 1fr);
        gap: 3rem;
    }

    .business-block {
        aspect-ratio: 325 / 173;
        border-radius: .3rem;
    }

    .business-block:after {
        display: none;
    }

    .business-block .business-block__caption {
        width: 4.649rem;
        min-height: 12.784rem;
        padding: 0 .3rem 1rem 0;
        font-size: 2.4rem;
        letter-spacing: .12em;
    }

    .top-business__links {
        text-align: center;
        margin-top: 3rem;
    }
}

.top-reason {
    background: url(../img/top/bg_reason_pc.svg) left top no-repeat;
    background-size: 154rem auto;
    padding: 23.2rem 0 100vh;
    width: 100%;
}

.top-reason .heading-large {
    justify-content: center;
    align-items: center;
    margin-bottom: 11.4rem;
}

.top-reason__item {
    width: 100%;
    height: 100vh;
}

.top-reason__inner {
    position: sticky;
    width: 100%;
    top: 10rem;
}

.top-reason__block {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: calc(100vh - 10rem);
    display: flex;
    align-items: center;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s ease, visibility .3s ease;
}

[data-scroll="1"] .top-reason__block:nth-child(1),
[data-scroll="2"] .top-reason__block:nth-child(2),
[data-scroll="3"] .top-reason__block:nth-child(3) {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.top-reason__body {
    position: relative;
    width: 100%;
}

.top-reason-image {
    width: 70.125%;
    height: calc(100vh - 10rem);
    max-height: 83rem;
    position: relative;
}

.top-reason-image:before {
    width: 100%;
    height: 100%;
    content: '';
    background: url(../img/top/bg_reason_image.png) center center no-repeat;
    background-size: 100% 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
}

.top-reason-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-reason-box {
    position: absolute;
    right: 1.6rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 60.3rem;
    aspect-ratio: 1 / 1;
    border-radius: 100%;
    background: rgba(248, 249, 250, .75);
    backdrop-filter: blur(1rem);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    padding: 7.2rem 0;
    text-align: center;
    font-size: 2rem;
    line-height: 1.4;
    letter-spacing: .3rem;
    font-weight: 500;
}

.top-reason-box:before {
    width: 63.5rem;
    aspect-ratio: 1 / 1;
    border-radius: 100%;
    position: absolute;
    left: -1.6rem;
    top: -1.6rem;
    z-index: 2;
    background: url(../img/top/bg_reason_round.svg) center center no-repeat;
    background-size: 100% auto;
    content: '';
    animation: rotation 30s linear infinite;
}

/* アニメーション */
@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.top-reason-number {
    color: var(--color-red);
    font-size: 3.2rem;
    line-height: 1.6;
    letter-spacing: .3rem;
    font-weight: 500;
    font-family: var(--font-alansans);
    margin-bottom: 2.666rem;
}

.top-reason-number .current {
    font-size: 6rem;
}

.top-reason-title {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 3.6rem;
    line-height: 1.6;
    letter-spacing: .3rem;
    font-weight: 800;
    margin-bottom: 4.145rem;
}

.top-reason-title .top-reason-title__top {
    border: .1rem solid var(--color-blue);
    background: var(--color-white);
    padding: .5rem 1.9rem;
    color: var(--color-blue);
}

.top-reason-title .top-reason-title__bottom {
    background: var(--color-blue);
    border: .1rem solid var(--color-blue);
    padding: .5rem 1.9rem;
    color: var(--color-white);
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .top-reason {
        background: url(../img/top/bg_reason_sp.svg) center top no-repeat;
        background-size: 100% auto;
        padding: 13.5rem 0 8rem;
    }

    .top-reason .heading-large {
        margin-bottom: 3.2rem;
    }

    .top-reason__item {
        display: none;
    }

    .top-reason__inner {
        position: relative;
        width: 100%;
        top: 0;
        display: flex;
        flex-direction: column;
        gap: 5rem;
    }

    .top-reason__block {
        position: relative;
        height: auto;
        display: block;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        width: 100%;
    }

    .top-reason__body {
        position: relative;
        width: 100%;
    }

    .top-reason-image {
        width: 100%;
        height: auto;
        max-height: auto;
    }

    .top-reason-box {
        position: relative;
        right: 0;
        top: 0;
        transform: unset;
        width: 100%;
        aspect-ratio: unset;
        border-radius: 0;
        background: none;
        backdrop-filter: unset;
        padding: 0;
        font-size: 1.8rem;
        letter-spacing: .2rem;
        margin-top: -4.5rem;
        z-index: 2;
    }

    .top-reason-box:before {
        display: none;
    }

    .top-reason-number {
        font-size: 1.6rem;
        letter-spacing: .15rem;
        margin-bottom: 0;
        width: 100%;
        text-align: center;
    }

    .top-reason-number .current {
        font-size: 3rem;
    }

    .top-reason-title {
        font-size: 2.7rem;
        letter-spacing: .233rem;
        margin-bottom: 2.2rem;
    }

    .top-reason-title .top-reason-title__top,
    .top-reason-title .top-reason-title__bottom {
        padding: .356rem 1.451rem;
    }
}


.top-message {
    width: 100%;
    position: relative;
    z-index: 1;
    padding-top: 9rem;
}

.top-message:before {
    width: 100%;
    height: calc(100% + 71.7rem);
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1;
    content: '';
    background: url(../img/top/bg_top.svg) center center repeat var(--color-gray);
    background-size: 16rem auto;
}

.top-message .top-message__inner {
    padding: 10rem 0 20rem;
    position: sticky;
    width: 100%;
    top: 10rem;
    z-index: 3;
}

.top-message .top-message-box {
    position: relative;
    z-index: 2;
}

.top-message h2 {
    font-size: 6rem;
    font-weight: 900;
    line-height: 1.27;
    letter-spacing: .2rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    margin-bottom: 5rem;
}

.top-message h2 > span {
    display: block;
    position: relative;
    clip-path: inset(0 100% 0 0);
    transition: clip-path .3s ease;
    overflow: hidden;
}

.top-message h2 > span:nth-child(2) {
    transition-delay: .3s;
}

.top-message h2.animated > span {
    clip-path: inset(0 0 0 0);
}

.top-message h2 > span:after {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    content: '';
    background: var(--color-blue);
    transition: transform .3s ease .3s;
}

.top-message h2 > span:nth-child(2):after {
    transition-delay: .6s;
}

.top-message h2.animated > span:after {
    transform: translateX(100%);
}

.top-message h2 .small {
    font-size: 3rem;
}

.top-message h2 .large {
    font-size: 10rem;
    line-height: 1.2;
    letter-spacing: .3rem;
    color: var(--color-red);
}

.top-message h3 {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    margin-bottom: 4.4rem;
    font-size: 2.6rem;
    line-height: 1.6;
    font-weight: 800;
    letter-spacing: .4rem;
    color: var(--color-white);
}

.top-message h3 > span {
    padding: .4rem 1.6rem;
    position: relative;
    z-index: 2;
    overflow: hidden;
}

.top-message h3 > span:before {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -2;
    content: '';
    background: var(--color-darkgray);
}

.top-message h3 > span:after {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    content: '';
    background: var(--color-blue);
    clip-path: inset(0 100% 0 0);
    transition: clip-path .3s ease;
}

.top-message h3 > span:nth-child(2):after {
    transition-delay: .3s;
}

.top-message h3.animated > span:after {
    clip-path: inset(0 0 0 0);
}

.top-message-text {
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: .3rem;
}

.top-message-text p {
    position: relative;
}

.top-message-text p + p {
    margin-top: 1.6em;
}

.top-message-text .back,
.top-message-text .front {
    display: block;
}

.top-message-text .back {
    color: var(--color-darkgray);
}

.top-message-text .front {
    color: var(--basic-color);
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 1s ease;
}

.top-message-text .animated .front {
    clip-path: inset(0 0 0 0);
}

.top-message-image {
    width: 78rem;
    position: absolute;
    right: -2.4rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}

.top-message-image .back {
    display: none;
}

.top-message-image .front {
    /*position: absolute;
    left: 0;
    top: 0;*/
    width: 100%;
}

.top-message-image img {
    width: 100%;
}

.top-message-gallery {
    height: 200vh;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    position: relative;
    z-index: 2;
    margin-top: -100vh;
}

.top-message-gallery ul {
    width: 66.3rem;
}

.top-message-gallery ul li:nth-child(1) {
    text-align: right;
}

.top-message-gallery ul li:nth-child(1) img {
    width: 28rem;
    border-radius: .5rem;
}

.top-message-gallery ul li:nth-child(2) {
    text-align: left;
    margin-top: -15.4rem;
}

.top-message-gallery ul li:nth-child(2) img {
    width: 26rem;
    border-radius: .5rem;
}

.top-message-gallery ul li:nth-child(3) {
    text-align: center;
    margin-top: 4.9rem;
}

.top-message-gallery ul li:nth-child(3) img {
    width: 32.3rem;
}

.top-message-back {
    width: 100%;
    position: sticky;
    top: 10rem;
    z-index: 1;
    display: flex;
    justify-content: flex-end;
}

.top-message-back .back {
    width: 78rem;
    position: absolute;
    right: -2.4rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}

.top-message-back .back img {
    clip-path: inset(100% 0 0 0);
}


/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .top-message {
        padding-top: 0;
    }

    .top-message:before {
        height: calc(100% + 58.9rem);
        background-size: 8rem auto;
    }

    .top-message .top-message__inner {
        padding: 9rem 0 8.25rem;
        position: relative;
        top: 0;
    }

    .top-message h2 {
        font-size: 3.8rem;
        letter-spacing: .1rem;
        margin-bottom: 4rem;
        line-height: 1.5;
    }

    .top-message h2 .small {
        font-size: 2.2rem;
    }

    .top-message h2 .large {
        font-size: 6.3rem;
        letter-spacing: .2rem;
    }

    .top-message h3 {
        margin-bottom: 3rem;
        font-size: 2rem;
        letter-spacing: .2rem;
    }

    .top-message h3 > span {
        padding: .4rem 1rem;
    }

    .top-message-text {
        line-height: 1.7;
        letter-spacing: .2rem;
    }

    .top-message-text p + p {
        margin-top: 1.7em;
    }

    .top-message-image {
        width: 100%;
        position: relative;
        right: 0;
        top: 0;
        transform: unset;
        margin-top: 4rem;
    }

    .top-message-image .back {
        display: block;
        clip-path: inset(0 0 100% 0);
        transition: clip-path 1s ease;
    }

    .top-message-image.animated .back {
        clip-path: inset(0 0 0 0);
    }

    .top-message-image .front {
        display: none;
    }

    .top-message-gallery,
    .top-message-back {
        display: none;
    }
}


/* !おしらせ
---------------------------------------------------------- */
.news-wrap {
    padding: 8rem 0 20rem;
}

.news-wrap .news-inner {
    width: 100%;
    padding-left: 16rem;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16rem;
}

.news-wrap .news-side {
    width: 32rem;
}

.news-wrap .news-side .news-side__item + .news-side__item {
    margin-top: 4rem;
}

.news-wrap .news-side h2 {
    text-align: center;
    background: var(--color-blue);
    border-radius: .5rem;
    font-size: 2rem;
    line-height: 1.5;
    font-weight: bold;
    letter-spacing: .2rem;
    color: var(--color-white);
    padding: .5rem;
    margin-bottom: 2rem;
}

.news-category-list li + li {
    margin-top: 2rem;
}

.news-category-list li a {
    padding: 0 3rem .5rem 0;
    background: url(../img/common/icon_arrow_right_blue.svg) right .1rem no-repeat;
    background-size: 2.4rem auto;
    font-size: 1.6rem;
    line-height: 1.6;
    letter-spacing: .1rem;
    font-weight: 500;
    display: block;
    border-bottom: .1rem solid #D2D2D2;
}

.news-archive-list li + li {
    margin-top: 2rem;
}

.news-archive-list a {
    padding: 0 3rem .5rem 0;
    background: url(../img/common/icon_arrow_right_blue.svg) right .1rem no-repeat;
    background-size: 2.4rem auto;
    font-size: 1.6rem;
    line-height: 1.6;
    letter-spacing: .1rem;
    font-weight: 500;
    display: block;
    border-bottom: .1rem solid #D2D2D2;
}

.news-archive-list > li > a {
    background: none;
    position: relative;
}

.news-archive-list > li > a:after {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    background: url(../img/common/icon_arrow_right_blue.svg) center center no-repeat;
    background-size: 2.4rem auto;
    position: absolute;
    right: 0;
    top: .1rem;
    z-index: 2;
    transform: rotate(90deg);
}

.news-archive-list > li > a.is-active:after {
    transform: rotate(-90deg);
}

.news-archive-list ul {
    margin-top: 2rem;
    display: none;
}

.news-wrap .news-contents {
    width: calc(100% - 48rem);
}

.wp-pagenavi {
    margin-top: 6rem;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wp-pagenavi .pages,
.wp-pagenavi .first,
.wp-pagenavi .last {
    display: none;
}

.wp-pagenavi .page,
.wp-pagenavi .current {
    width: 4rem;
    height: 4rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-size: 1.8rem;
    line-height: 1.4;
    font-weight: 500;
    border: .133rem solid var(--color-blue);
    background: var(--color-white);
    margin: 0 .8rem;
}

.wp-pagenavi .current {
    border-color: var(--color-red);
    background: var(--color-red);
    color: var(--color-white);
}

.wp-pagenavi .extend {
    font-size: 2.133rem;
    line-height: 1.4;
    color: var(--color-black);
    display: flex;
    align-items: center;
    justify-content: center;
}

.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
    width: 4rem;
    height: 4rem;
    border: .133rem solid var(--color-blue);
    background: url(../img/common/icon_next_white.svg) center center no-repeat var(--color-blue);
    background-size: .988rem auto;
    display: inline-block;
    text-indent: -999rem;
    overflow: hidden;
}

.wp-pagenavi .previouspostslink {
    transform: scale(-1);
}

.single-post .news-wrap .news-side h2 {
    border: .1rem solid var(--color-blue);
    background: var(--color-white);
    color: var(--color-blue);
}

.news-head {
    border-bottom: .1rem solid var(--color-blue);
    margin-bottom: 3rem;
    padding-bottom: 2rem;
}

.news-head .news-info {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3.2rem;
    margin-bottom: 1.5rem;
}

.news-head .news-info .news-info__date {
    font-size: 1.6rem;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: .2rem;
}

.news-head .news-info .news-info__cate {
    display: inline-flex;
    border: .1rem solid #BFBFBF;
    background: var(--color-white);
    padding: .1rem 1.3rem;
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: .1rem;
    font-weight: 400;
}

.news-head .news-title {
    font-size: 2.4rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: bold;
}

.news-body {
    font-size: 1.6rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: 500;
}

.news-body .wp-block-group + .wp-block-group {
    margin-top: 6rem;
}

.news-body figure {
    display: block;
    margin-bottom: 2.6rem;
}

.news-body figure img {
    width: 100%;
}

.news-body p {
    margin-bottom: 1.4em;
}

.news-body h2 {
    font-size: 2.6rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: bold;
    color: var(--color-blue);
    border-left: .6rem solid var(--color-blue);
    padding: 1.2rem 2.2rem;
    background: var(--color-gray);
    margin-bottom: 4.5rem;
}

.news-body h3 {
    position: relative;
    font-size: 2.2rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: bold;
    color: var(--color-blue);
    border-bottom: .1rem solid #D2D2D2;
    padding: 0 2.2rem 1.2rem 2.8rem;
    margin-bottom: 4.5rem;
}

.news-body h3:before {
    width: .3rem;
    height: calc(100% - 1.2rem);
    background: var(--color-blue);
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
}

.news-body h4 {
    position: relative;
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: .2rem;
    font-weight: bold;
    color: var(--color-blue);
    padding-left: 3.4rem;
    margin-bottom: 4.5rem;
}

.news-body h4:before {
    width: 1.4rem;
    height: 1.4rem;
    background: var(--color-blue);
    content: '';
    position: absolute;
    left: .5rem;
    top: .65rem;
    z-index: 2;
    transform: rotate(45deg);
}

.page-ctrl {
    margin-top: 12rem;
    position: relative;
    width: 100%;
    text-align: center;
}

.page-ctrl .page-ctrl__back {
    display: inline-flex;
    justify-content: space-between;
    align-items: center;
    width: 36rem;
    height: 6rem;
    padding: 0 2.6rem;
    font-size: 1.8rem;
    line-height: 1.5;
    font-weight: bold;
    color: var(--color-white);
    background: var(--color-blue);
    border: .1rem solid var(--color-blue);
}

.page-ctrl .page-ctrl__back:after {
    width: 5.2rem;
    height: 2.8rem;
    border: .114rem solid var(--color-white);
    border-radius: 2.4rem;
    content: '';
    background: url(../img/common/icon_link_white.svg) center center no-repeat;
    background-size: 1.288rem auto;
    transition: border-color .5s ease, background-image .5s ease;
}

.page-ctrl .page-ctrl__next {
    position: absolute;
    right: .5rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1.3;
    letter-spacing: .2rem;
}

.page-ctrl .page-ctrl__next:after {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    background: url(../img/common/icon_arrow_right_red.svg) center center no-repeat;
    background-size: 100% auto;
}

.page-ctrl .page-ctrl__prev {
    position: absolute;
    left: .5rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1.3;
    letter-spacing: .2rem;
}

.page-ctrl .page-ctrl__prev:before {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    background: url(../img/common/icon_arrow_right_red.svg) center center no-repeat;
    background-size: 100% auto;
    transform: scale(-1);
}



/*** hover ***/
@media screen and (min-width: 960px) {
    .wp-pagenavi .page:hover {
        border-color: var(--color-red);
        background: var(--color-red);
        color: var(--color-white);
    }

    .wp-pagenavi .previouspostslink:hover,
    .wp-pagenavi .nextpostslink:hover {
        background-image: url(../img/common/icon_next_blue.svg);
        background-color: var(--color-white);
    }

    .page-ctrl .page-ctrl__back:hover {
        color: var(--color-blue);
        background: var(--color-white);
    }

    .page-ctrl .page-ctrl__back:hover:after {
        border-color: var(--color-blue);
        background-image: url(../img/common/icon_link_blue.svg);
    }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .news-wrap {
        padding: 3rem 0 5rem;
    }

    .news-wrap .news-inner {
        padding-left: 0;
        flex-direction: column;
        gap: 3rem;
    }

    .news-wrap .news-side {
        width: 100%;
    }

    .news-wrap .news-side .news-side__item + .news-side__item {
        margin-top: 2rem;
    }

    .news-wrap .news-side h2 {
        margin-bottom: 1rem;
    }

    .news-category-select select {
        width: 100%;
        height: 4rem;
        border: .1rem solid #B8B8B8;
        border-radius: .5rem;
        padding: 0 4rem 0 .8rem;
        background: url(../img/common/icon_select.svg) right 1.2rem center no-repeat;
        background-size: 1.273rem auto;
        font-size: 1.8rem;
        font-weight: 500;
        letter-spacing: .2rem;
    }

    .news-wrap .news-contents {
        width: 100%;
    }

    .wp-pagenavi {
        margin-top: 3rem;
    }

    .wp-pagenavi .page,
    .wp-pagenavi .current {
        width: 3rem;
        height: 3rem;
        font-size: 1.6rem;
        border-width: .1rem;
        margin: 0 .4rem;
    }

    .wp-pagenavi .extend {
        font-size: 1.8rem;
    }

    .wp-pagenavi .previouspostslink,
    .wp-pagenavi .nextpostslink {
        width: 3rem;
        height: 3rem;
        border-width: .1rem;
        background-size: .7rem auto;
    }

    .news-head {
        border-bottom: .1rem solid var(--color-blue);
        margin-bottom: 3rem;
        padding-bottom: 2rem;
    }

    .news-head .news-info {
        gap: 1.8rem;
        margin-bottom: 1rem;
    }

    .news-head .news-info .news-info__date {
        font-size: 1.4rem;
        letter-spacing: .1rem;
    }

    .news-head .news-info .news-info__cate {
        padding: .1rem 1rem;
        font-size: 1.3rem;
    }

    .news-head .news-title {
        font-size: 1.8rem;
        letter-spacing: .1rem;
    }

    .news-body {
        font-size: 1.4rem;
        letter-spacing: .1rem;
    }

    .news-body .wp-block-group + .wp-block-group {
        margin-top: 3rem;
    }

    .news-body h2 {
        font-size: 2rem;
        letter-spacing: .1rem;
        margin-bottom: 3rem;
        padding: 1rem 1rem 1rem 1.6rem;
    }

    .news-body h3 {
        font-size: 1.8rem;
        letter-spacing: .1rem;
        padding: 0 1rem 1rem 2rem;
        margin-bottom: 3rem;
    }

    .news-body h4 {
        font-size: 1.6rem;
        letter-spacing: .1rem;
        padding-left: 2.4rem;
        margin-bottom: 3rem;
    }

    .news-body h4:before {
        width: 1.2rem;
        height: 1.2rem;
        position: absolute;
        left: 0;
    }

    .page-ctrl {
        margin-top: 6rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
    }

    .page-ctrl .page-ctrl__back {
        margin-top: 3rem;
        width: 100%;
    }

    .page-ctrl .page-ctrl__next,
    .page-ctrl .page-ctrl__prev {
        position: static;
        transform: unset;
    }

}


/* !プライバシーポリシー
---------------------------------------------------------- */
.privacy-wrap {
    padding: 8rem 0 20rem;
}

.privacy-inner {
    width: 100%;
    max-width: 112.3rem;
    margin: 0 auto;
}

.privacy-head {
    margin-bottom: 5.3rem;
    padding-bottom: 5.3rem;
    font-size: 2rem;
    line-height: 1.7;
    letter-spacing: .2rem;
    border-bottom: .1rem dashed var(--color-darkgray);
}

.privacy-head h2 {
    text-align: center;
    position: relative;
    font-size: 2.8rem;
    line-height: 1.5;
    font-weight: bold;
    color: var(--color-blue);
    letter-spacing: .3rem;
    padding-bottom: 2.5rem;
    margin-bottom: 2.1rem;
}

.privacy-head h2:after {
    width: 10rem;
    height: .4rem;
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
    z-index: 2;
    background: var(--color-red);
}

.privacy-body  {
    font-size: 1.8rem;
    line-height: 1.7;
    letter-spacing: .2rem;
}

.privacy-body h3 {
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .3rem;
    color: var(--color-blue);
    margin-bottom: 1.6rem;
}

.privacy-item + .privacy-item {
    border-top: .1rem dashed var(--color-darkgray);
    padding-top: 4rem;
    margin-top: 4rem;
}

.privacy-item p + ul {
    margin-top: 1.5em;
}

.privacy-item ul li {
    padding-left: 1em;
    text-indent: -1em;
}

.privacy-foot  {
    font-size: 1.8rem;
    line-height: 1.7;
    letter-spacing: .2rem;
    margin-top: 4rem;
}

.privacy-foot h3 {
    font-size: 2.2rem;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: .2rem;
    color: #001E58;
    margin-bottom: 1.2rem;
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    #privacy #teaser .teaser-heading .teaser-heading__en {
        font-size: 4.2rem;
    }

    .privacy-wrap {
        padding: 3rem 0 5rem;
    }

    .privacy-head {
        margin-bottom: 2.8rem;
        padding-bottom: 2.8rem;
        font-size: 1.6rem;
        letter-spacing: .1rem;
    }

    .privacy-head h2 {
        font-size: 2rem;
        letter-spacing: .15rem;
        padding-bottom: 1.8rem;
        margin-bottom: 1.5rem;
    }

    .privacy-head h2:after {
        width: 8rem;
        height: .3rem;
    }

    .privacy-body  {
        font-size: 1.6rem;
        letter-spacing: .1rem;
    }

    .privacy-body h3 {
        font-size: 1.8rem;
        letter-spacing: .15rem;
        margin-bottom: 1.2rem;
    }

    .privacy-item + .privacy-item {
        padding-top: 2.5rem;
        margin-top: 2.5rem;
    }

    .privacy-foot  {
        font-size: 1.6rem;
        letter-spacing: .1rem;
        margin-top: 2.5rem;
    }

    .privacy-foot h3 {
        font-size: 1.7rem;
        letter-spacing: .1rem;
    }
}



/* !お問い合わせ
---------------------------------------------------------- */
.contact-wrap {
    padding: 8rem 0 20rem;
}

.contact-inner {
    width: 100%;
    max-width: 127.7rem;
    margin: 0 auto;
}

.contact-head {
    margin-bottom: 6.7rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 5rem;
    font-size: 1.8rem;
    line-height: 1.8;
    font-weight: 500;
    letter-spacing: .1rem;
}

.contact-tel {
    width: 100%;
    max-width: 64rem;
    border-radius: 1rem;
    border: .3rem solid var(--color-blue);
    padding: 1.7rem 2rem 2.4rem;
    background: var(--color-white);
}

.contact-tel .contact-tel__title {
    font-size: 2.5rem;
    line-height: 2;
    letter-spacing: .3rem;
    font-weight: bold;
}

.contact-tel .contact-tel__phone a {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.885rem;
    font-size: 4.797rem;
    line-height: 1.5;
    letter-spacing: .343rem;
    font-weight: bold;
    color: var(--color-blue);
}

.contact-tel .contact-tel__phone a:before {
    width: 5.482rem;
    height: 5.482rem;
    content: '';
    background: url(../img/common/icon_phone_blue.svg) center center no-repeat;
    background-size: 100% auto;
}

.contact-tel .contact-tel__notes {
    font-size: 2rem;
    line-height: 1.5;
    letter-spacing: .3rem;
    font-weight: 500;
}

.contact-body {
    width: 100%;
    background: var(--color-white);
    padding: 8rem 4rem;
}

.contact-heading {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 3rem;
    gap: 1rem;
    font-size: 3rem;
    line-height: 1.8;
    letter-spacing: .3rem;
    font-weight: bold;
}

.contact-heading:before {
    width: 5rem;
    height: 5rem;
    content: '';
    background: url(../img/common/icon_contact_red.svg) center center no-repeat;
    background-size: 100% auto;
}

.contact-body > p {
    text-align: center;
    font-size: 1.8rem;
    line-height: 1.6;
    letter-spacing: .1rem;
    font-weight: 500;
}

.contact-form {
    border: .1rem solid #DFDFDF;
    border-radius: 2rem;
    width: 100%;
    max-width: 96rem;
    margin: 0 auto;
    padding: 8rem;
    margin-top: 5rem;
}

.contact-form .contact-form__inner {
    width: 100%;
    max-width: 64rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 3rem;
}

.contact-form .contact-item {
    width: 100%;
}

.contact-form .contact-item__label {
    font-size: 1.6rem;
    line-height: 1.4;
    font-weight: bold;
    letter-spacing: .2rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.contact-form .contact-item__label .is-required {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 4rem;
    height: 2rem;
    border-radius: .5rem;
    background: #E53935;
    font-size: 1.4rem;
    line-height: 1.3;
    font-weight: bold;
    color: var(--color-white);
    letter-spacing: .2rem;
}

.contact-form .contact-item__label .is-any {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 4rem;
    height: 2rem;
    border-radius: .5rem;
    background: #F5F5F5;
    font-size: 1.4rem;
    line-height: 1.3;
    font-weight: bold;
    color: #BDBDBD;
    letter-spacing: .2rem;
}


.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"] {
    width: 100%;
    max-width: 43rem;
    height: 4rem;
    border-radius: .5rem;
    border: .1rem solid #B8B8B8;
    background: var(--color-white);
    padding: 0 .8rem;
    font-size: 1.8rem;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: .2rem;
}

.contact-form textarea {
    width: 100%;
    max-width: 43rem;
    height: 16rem;
    border-radius: .5rem;
    border: .1rem solid #B8B8B8;
    background: var(--color-white);
    padding: .8rem;
    font-size: 1.8rem;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: .2rem;
    resize: vertical;
}

.contact-form select {
    width: 100%;
    max-width: 20.7rem;
    height: 4rem;
    border: .1rem solid #B8B8B8;
    border-radius: .5rem;
    padding: 0 4rem 0 .8rem;
    background: url(../img/common/icon_select.svg) right 1.2rem center no-repeat;
    background-size: 1.273rem auto;
    font-size: 1.8rem;
    font-weight: 500;
    letter-spacing: .2rem;
}


.contact-addr {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 1rem;
}

.contact-addr .contact-addr__item {
    width: 100%;
}

.contact-addr .contact-addr__item--label {
    font-size: 1.6rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: 400;
    margin-bottom: .5rem;
}

.contact-zip {
    display: flex;
    align-items: flex-start;
}

.contact-zip .contact-zip__item {
    width: 100%;
    max-width: 8.7rem;
    position: relative;
}

.contact-zip .contact-zip__item + .contact-zip__item {
    display: flex;
    align-items: flex-start;
}

.contact-zip .contact-zip__item + .contact-zip__item:before {
    width: 1.7rem;
    height: 4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    content: 'ｰ';
    font-size: 1.6rem;
    line-height: 1.4;
    font-weight: 400;

}

.contact-check {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 1rem;
}

.contact-check label {
    width: 100%;
    position: relative;
    z-index: 2;
    cursor: pointer;
}

.contact-check label input {
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    opacity: 0;
}

.contact-check label span {
    width: 100%;
    display: block;
    border: .1rem solid #B8B8B8;
    background: var(--color-white);
    position: relative;
    padding: .8rem .8rem .8rem 5.1rem;
    font-size: 1.6rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: 500;
    color: var(--color-black);
    border-radius: .5rem;
}

.contact-check label span:before,
.contact-check label span:after {
    position: absolute;
    left: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    width: 2.4rem;
    height: 2.4rem;
    content: '';
}

.contact-check label span:before {
    border: .2rem solid #B8B8B8;
    background: var(--color-white);
}

.contact-check label span:after {
    background: var(--color-red);
    transform: translateY(-50%) scale(.5);
    opacity: 0;
}

.contact-check label input[type="radio"] + span:before,
.contact-check label input[type="radio"] + span:after {
    border-radius: 100%;
}

.contact-check label input[type="checkbox"] + span:before,
.contact-check label input[type="checkbox"] + span:after {
    border-radius: .5rem;
}

.contact-check label input[type="radio"]:checked + span:after,
.contact-check label input[type="checkbox"]:checked + span:after {
    opacity: 1;
}

.contact-argee {
    font-size: 1.6rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: 500;
    color: #7E7E7E;
    padding: 1rem 0;
    margin-bottom: .7rem;
}

.contact-argee a {
    color: #1E88E5;
}

.contact-item__button input[type=submit] {
    width: 100%;
    height: 6rem;
    border: .2rem solid #1E88E5;
    background: #1E88E5;
    border-radius: .5rem;
    font-size: 1.6rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: 500;
    color: var(--color-white);
    text-align: center;
    cursor: pointer;
    transition: all .5s ease;
}


/*** hover ***/
@media screen and (min-width: 960px) {
    .contact-item__button input[type=submit]:hover {
        color: #1E88E5;
        background: var(--color-white);
    }

    .contact-argee a:hover {
        text-decoration: underline;
    }
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .contact-wrap {
        padding: 3rem 0 5rem;
    }

    .contact-head {
        margin-bottom: 3.5rem;
        gap: 3rem;
        font-size: 1.6rem;
        text-align: left;
    }

    .contact-tel {
        text-align: center;
        border-width: .2rem;
        padding: 1rem 1rem 1.5rem;
    }

    .contact-tel .contact-tel__title {
        font-size: 2.4rem;
        letter-spacing: .15rem;
    }

    .contact-tel .contact-tel__phone a {
        gap: 1rem;
        font-size: 3.6rem;
        letter-spacing: .15rem;
    }

    .contact-tel .contact-tel__phone a:before {
        width: 3.6rem;
        height: 3.6rem;
    }

    .contact-tel .contact-tel__notes {
        font-size: 1.6rem;
        letter-spacing: .15rem;
    }

    .contact-body {
        padding: 3rem 2rem;
    }

    .contact-heading {
        margin-bottom: 2rem;
        gap: .5rem;
        font-size: 2.2rem;
        letter-spacing: .1rem;
    }

    .contact-heading:before {
        width: 2.8rem;
        height: 2.8rem;
    }

    .contact-body > p {
        font-size: 1.4rem;
    }

    .contact-form {
        border-radius: 1rem;
        padding: 3rem 2rem;
        margin-top: 3rem;
    }

    .contact-form .contact-form__inner {
        gap: 2rem;
    }

    .contact-form input[type="text"],
    .contact-form input[type="email"],
    .contact-form input[type="tel"],
    .contact-form textarea,
    .contact-form select {
        font-size: 1.6rem;
    }

    .contact-check label span {
        font-size: 1.4rem;
        padding-left: 4.5rem;
    }

    .contact-check label span:before,
    .contact-check label span:after {
        width: 2.2rem;
        height: 2.2rem;
    }

    .contact-check label span:before {
        border-width: .1rem ;
    }
}


/* MW WP Form */
.contact-form .mw_wp_form {
    width: 100%;
}

.contact-check .mwform-radio-field,
.contact-check .mwform-checkbox-field {
    width: 100%;
    margin: 0;
}

.contact-check .mwform-radio-field label,
.contact-check .mwform-checkbox-field label {
    width: 100%;
    display: block;
    border: .1rem solid #B8B8B8;
    background: var(--color-white);
    position: relative;
    padding: .8rem .8rem .8rem 5.1rem;
    font-size: 1.6rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: 500;
    color: var(--color-black);
    border-radius: .5rem;
}

.contact-check .mwform-radio-field label:before,
.contact-check .mwform-radio-field label:after,
.contact-check .mwform-checkbox-field label:before,
.contact-check .mwform-checkbox-field label:after {
    position: absolute;
    left: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    width: 2.4rem;
    height: 2.4rem;
    content: '';
}

.contact-check .mwform-radio-field label:before,
.contact-check .mwform-checkbox-field label:before {
    border: .2rem solid #B8B8B8;
    background: var(--color-white);
}

.contact-check .mwform-radio-field label:after,
.contact-check .mwform-checkbox-field label:after {
    background: var(--color-red);
    transform: translateY(-50%) scale(.5);
    opacity: 0;
}

.contact-check .mwform-radio-field label:before,
.contact-check .mwform-radio-field label:after {
    border-radius: 100%;
}

.contact-check .mwform-checkbox-field label:before,
.contact-check .mwform-checkbox-field label:after {
    border-radius: .5rem;
}

.contact-check .mwform-radio-field label:has(input:checked):after,
.contact-check .mwform-checkbox-field label:has(input:checked):after {
    opacity: 1;
}

.contact-check .mwform-radio-field label > span,
.contact-check .mwform-checkbox-field label > span {
    width: auto;
    display: inline;
    border: 0;
    background: transparent;
    position: static;
    padding: 0;
    font: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
}

.contact-check .mwform-radio-field label > span:before,
.contact-check .mwform-radio-field label > span:after,
.contact-check .mwform-checkbox-field label > span:before,
.contact-check .mwform-checkbox-field label > span:after {
    display: none;
}

.contact-form .error {
    display: block;
    margin-top: .6rem;
    font-size: 1.4rem;
    line-height: 1.5;
    font-weight: 500;
    color: #E53935;
}

.contact-item__button {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}

.mw_wp_form_confirm .contact-form__inner {
    max-width: 80rem;
}

.mw_wp_form_confirm .contact-item:not(:last-child) {
    display: grid;
    grid-template-columns: 20rem minmax(0, 1fr);
    gap: 3rem;
    padding-bottom: 2rem;
    border-bottom: .1rem solid #DFDFDF;
}

.mw_wp_form_confirm .contact-item__label {
    margin-bottom: 0;
}

.mw_wp_form_confirm .contact-item__label .is-required,
.mw_wp_form_confirm .contact-item__label .is-any {
    display: none;
}

.mw_wp_form_confirm .contact-item__input {
    font-size: 1.6rem;
    line-height: 1.7;
    letter-spacing: .1rem;
    font-weight: 500;
}
.mw_wp_form_confirm .agree_item{
    display: none!important
}
.mw_wp_form_confirm .contact-zip .contact-zip__item + .contact-zip__item:before{
    content: none;
}
.mw_wp_form_confirm .contact-zip .contact-zip__item{
    width: auto;
}

.mw_wp_form_confirm .contact-check {
    display: block;
}

.mw_wp_form_confirm .contact-addr {
    gap: 1.5rem;
}

.mw_wp_form_confirm .contact-addr__item--label {
    color: #7E7E7E;
}

.mw_wp_form_confirm .contact-argee {
    display: none;
}

.mw_wp_form_confirm .contact-form__inner .contact-item.contact-item--agree {
    display: none;
}

.contact-item__button input.contact-button-back {
    color: #1E88E5;
    background: var(--color-white);
}

.contact-complete {
    text-align: center;
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .1rem;
    font-weight: 500;
}

.contact-complete .contact-complete__title {
    margin-bottom: 2rem;
    font-size: 2.4rem;
    line-height: 1.5;
    letter-spacing: .2rem;
    font-weight: bold;
}

.contact-complete p + p {
    margin-top: 1.5rem;
}

.contact-complete .contact-complete__button {
    width: 100%;
    max-width: 43rem;
    margin: 4rem auto 0;
}

.contact-complete .contact-complete__button a {
    height: 6rem;
    display: flex;
    justify-content: center;
    align-items: center;
    border: .2rem solid #1E88E5;
    background: #1E88E5;
    border-radius: .5rem;
    font-size: 1.6rem;
    line-height: 1.4;
    letter-spacing: .2rem;
    font-weight: 500;
    color: var(--color-white);
    transition: all .5s ease;
}

body#confirm .contact-head,
body#thanks .contact-head {
    display: none;
}

@media screen and (min-width: 960px) {
    .contact-complete .contact-complete__button a:hover {
        color: #1E88E5;
        background: var(--color-white);
    }
}

@media only screen and (max-width : 767px){
    .contact-check .mwform-radio-field label,
    .contact-check .mwform-checkbox-field label {
        padding-left: 4.5rem;
        font-size: 1.4rem;
    }

    .contact-check .mwform-radio-field label:before,
    .contact-check .mwform-radio-field label:after,
    .contact-check .mwform-checkbox-field label:before,
    .contact-check .mwform-checkbox-field label:after {
        width: 2.2rem;
        height: 2.2rem;
        border-width: .1rem;
    }

    .mw_wp_form_confirm .contact-item:not(:last-child) {
        display: block;
        padding-bottom: 1.5rem;
    }

    .mw_wp_form_confirm .contact-item__label {
        margin-bottom: .8rem;
    }

    .contact-item__button {
        flex-direction: column-reverse;
        gap: 1rem;
    }

    .contact-complete {
        text-align: left;
        font-size: 1.4rem;
    }

    .contact-complete .contact-complete__title {
        font-size: 2rem;
    }
}


/* !事業内容について
---------------------------------------------------------- */
.business-wrap {
    width: 100%;
    padding: 8rem 0 10rem;
}

.business-can {
    padding: 0 0 13.7rem;
}

.business-can .business-can__item + .business-can__item {
    margin-top: 10.8rem;
}

.business-can .business-can__item {
    position: relative;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.business-can .business-can-image {
    width: 67.5%;
    position: relative;
}

.business-can .business-can-image:before {
    width: 100%;
    height: 100%;
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    background: url(../img/business/bg_business_image.png) center center no-repeat;
    background-size: 100% 100%;
}

.business-can .business-can-image img {
    width: 100%;
}

.business-can .business-can-box {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 68.5rem;
    background: rgba(248, 249, 250, .75);
    backdrop-filter: blur(1rem);
    border-radius: .5rem;
    padding: 5rem 7rem;
    font-size: 1.8rem;
    line-height: 1.8;
    letter-spacing: .2rem;
    font-weight: 500;
}

.business-can h3 {
    font-size: 4.5rem;
    font-weight: 800;
    line-height: 1.7;
    letter-spacing: .3rem;
    color: var(--color-blue);
    margin-bottom: 2.6rem;
    text-align: center;
}

.business-can h4 {
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: .2rem;
    color: var(--color-red);
    margin-bottom: 2rem;
    text-align: center;
}

.business-can .business-can__plan {
    margin-top: 15.4rem;
}

.business-can .business-can__plan h3 {
    line-height: 1.5;
    margin-bottom: 5rem;
}

.business-can-list {
    background: var(--color-blue);
    border-radius: .5rem;
    padding: 3.2rem 6.5rem 2.2rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5rem;
}

.business-can-list figure {
    display: block;
    font-size: 1px;
    line-height: 1;
    width: 100%;
}

.business-can-list figure img {
    width: 100%;
    border-radius: .5rem;
}

.business-can-list figure figcaption {
    display: block;
    text-align: center;
    margin-top: 2rem;
    font-size: 2.8rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--color-white);
    letter-spacing: .3rem;
}

.business-reason {
    padding: 22rem 0 16.7rem;
    width: 100%;
    background: url(../img/business/bg_business.png) center top no-repeat var(--color-gray);
    background-size: 100% 6.9rem;
}

.business-reason .business-reason__item {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 142.2rem;
    margin: 0 auto;
}

.business-reason .business-reason__item + .business-reason__item {
    margin-top: 9rem;
}

.business-reason .business-reason-image {
    width: 52.743%;
}

.business-reason .business-reason-image img {
    width: 100%;
    border-radius: 1rem;
}

.business-reason .business-reason-box {
    width: 40.225%;
    font-size: 2rem;
    line-height: 2;
    letter-spacing: .2rem;
    font-weight: 500;
    color: var(--color-black);
}

.business-reason .business-reason-number {
    font-size: 1.8rem;
    line-height: 1;
    font-weight: 600;
    color: var(--color-red);
    font-family: var(--font-alansans);
    margin-bottom: 3rem;
}

.business-reason .business-reason-title {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    margin-bottom: 4rem;
    font-size: 3.6rem;
    line-height: 1.6;
    font-weight: 800;
    letter-spacing: .293rem;
}

.business-reason .business-reason-title .business-reason-title__top {
    border: .1rem solid var(--color-blue);
    background: var(--color-white);
    color: var(--color-blue);
    padding: .5rem 1.9rem;
}

.business-reason .business-reason-title .business-reason-title__bottom {
    border: .1rem solid var(--color-blue);
    background: var(--color-blue);
    color: var(--color-white);
    padding: .5rem 1.9rem;
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .business-wrap {
        padding: 3rem 0 5rem;
    }

    .business-can {
        padding: 0 0 6.8rem;
    }

    .business-can .business-can__item + .business-can__item {
        margin-top: 5.4rem;
    }

    .business-can .business-can__item {
        display: block;
    }

    .business-can .business-can-image {
        width: 100%;
        margin-top: -4.1rem;
        margin-left: 3.2rem;
    }

    .business-can .business-can-box {
        position: relative;
        left: 0;
        top: 0;
        z-index: 3;
        transform: unset;
        width: calc(100% + 2.4rem);
        margin: 0 -1.2rem;
        border-radius: .272rem;
        padding: 1.5rem 2rem 2.5rem;
        font-size: 1.6rem;
        letter-spacing: .1rem;
    }

    .business-can h3 {
        font-size: 2.4rem;
        font-weight: bold;
        line-height: 1.5;
        letter-spacing: .2rem;
        margin-bottom: 1rem;
    }

    .business-can h4 {
        font-size: 1.8rem;
        line-height: 1.5;
        margin-bottom: 1rem;
    }

    .business-can .business-can__plan {
        margin-top: 7.7rem;
    }

    .business-can .business-can__plan h3 {
        font-size: 2.2rem;
        letter-spacing: .3rem;
        margin-bottom: 1rem;
    }

    .business-can-list {
        padding: 3rem;
        grid-template-columns: repeat(1, 1fr);
        gap: 2rem;
    }

    .business-can-list figure figcaption {
        margin-top: .5rem;
        font-size: 2rem;
        font-weight: bold;
        line-height: 1.5;
        letter-spacing: .2rem;
    }

    .business-reason {
        padding: 11rem 0 8.4rem;
        width: 100%;
        background: url(../img/business/bg_business.png) center top no-repeat var(--color-gray);
        background-size: auto 2.6rem;
    }

    .business-reason .business-reason__item {
        flex-direction: column;
        gap: 2rem;
    }

    .business-reason .business-reason__item + .business-reason__item {
        margin-top: 4.5rem;
    }

    .business-reason .business-reason-image {
        width: 100%;
    }

    .business-reason .business-reason-image img {
        border-radius: .5rem;
    }

    .business-reason .business-reason-box {
        width: 100%;
        font-size: 1.6rem;
        line-height: 1.6;
        letter-spacing: .1rem;
    }

    .business-reason .business-reason-number {
        font-size: 1.4rem;
        margin-bottom: 1.5rem;
    }

    .business-reason .business-reason-title {
        font-size: 2.7rem;
        letter-spacing: .233rem;
        margin-bottom: 2.2rem;
    }

    .business-reason .business-reason-title .business-reason-title__top,
    .business-reason .business-reason-title .business-reason-title__bottom {
        padding: .356rem 1.451rem;
    }
}


/* !会社概要
---------------------------------------------------------- */
.company-wrap {
    width: 100%;
    padding: 1.2rem 0 18rem;
}

.company-greeting {
    width: 100%;
    position: relative;
    background: url(../img/company/bg_greeting.png) center bottom no-repeat;
    background-size: 100% 100%;
    padding-top: 8.8rem;
}

.company-greeting__scroll {
    position: absolute;
    left: 0;
    top: -6.3rem;
    z-index: 1;
    width: 100%;
    pointer-events: none;
}

.company-greeting__scroll li {
    font-size: 20rem;
    line-height: 1.7;
    letter-spacing: .4rem;
    font-family: var(--font-alansans);
    font-weight: 600;
    color: rgba(191, 191, 191, .18);
    word-break: keep-all;
    white-space: nowrap;
    padding-right: .25em;
    text-transform: uppercase;
}

.company-greeting__inner {
    width: 100%;
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-end;
    justify-content: space-between;
    position: relative;
    z-index: 2;
}

.company-greeting .company-greeting-image {
    width: 43.25%;
}

.company-greeting .company-greeting-image img {
    width: 100%;
}

.company-greeting .company-greeting-box {
    width: 49.5%;
    font-size: 1.8rem;
    line-height: 1.7;
    letter-spacing: .2rem;
    font-weight: 500;
    padding: .7rem 0 11.3rem;
}

.company-greeting .company-greeting-heading {
    display: flex;
    align-items: center;
    gap: 2.7rem;
    margin-bottom: 7.9rem;
}

.company-greeting .company-greeting-heading .company-greeting-heading__jp {
    font-size: 2.6rem;
    line-height: 1.5;
    font-weight: bold;
    letter-spacing: .9rem;
    color: var(--color-blue);
}

.company-greeting .company-greeting-heading .company-greeting-heading__en {
    font-size: 3.2rem;
    line-height: 1;
    font-weight: 600;
    letter-spacing: .4rem;
    color: var(--color-red);
    font-family: var(--font-alansans);
}

.company-greeting .company-greeting-title {
    font-size: 3.6rem;
    line-height: 1.48;
    font-weight: bold;
    letter-spacing: .2rem;
    margin-bottom: 4rem;
    color: var(--color-blue);
}

.company-greeting .company-greeting-text {
    width: 100%;
    max-width: 64rem;
}

.company-greeting .company-greeting-sign {
    display: flex;
    align-items: center;
    margin-top: 4rem;
    font-size: 2rem;
    line-height: 1.7;
    font-weight: 600;
    letter-spacing: .3rem;
    gap: 1em;
}

.company-greeting .company-greeting-sign span {
    font-size: 2.2rem;
}

.company-overview {
    padding: 18rem 0 13.3rem;
}

.company-overview-list {
    width: 100%;
    max-width: 128rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 2.4rem;
}

.company-overview-list .company-overview-list__item {
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 1.8rem;
    position: relative;
    padding: 0 2rem 2rem;
}

.company-overview-list .company-overview-list__item:before {
    width: 16%;
    height: .1rem;
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
    background: var(--color-blue);
}

.company-overview-list .company-overview-list__item:after {
    width: 100%;
    height: .1rem;
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 1;
    background: var(--color-darkgray);
}

.company-overview-list .company-overview-list__item dt {
    font-size: 2rem;
    line-height: 1.6;
    font-weight: bold;
    letter-spacing: .2rem;
    color: var(--color-blue);
    width: 28rem;
}

.company-overview-list .company-overview-list__item dd {
    font-size: 1.8rem;
    line-height: 1.7;
    font-weight: 500;
    letter-spacing: .3rem;
    color: var(--color-black);
    width: calc(100% - 29.8rem);
}

.company-equipment {
    padding: 29.8rem 0 27.8rem;
    width: 100%;
    background: url(../img/company/bg_equipment.png) center top no-repeat var(--color-gray);
    background-size: 100% 6.9rem;
}

.company-equipment-list {
    width: 100%;
    max-width: 128rem;
    margin: 0 auto;
}

.company-equipment-list table {
    width: 100%;
    border: .1rem solid var(--color-darkgray);
}

.company-equipment-list table thead th {
    background: var(--color-blue);
    color: var(--color-white);
    text-align: center;
    font-size: 2.2rem;
    line-height: 1.3;
    font-weight: 600;
    letter-spacing: .2rem;
    padding: 3rem 1rem;
    border: .1rem solid var(--color-darkgray);
}

.company-equipment-list table tbody td {
    text-align: center;
    font-size: 1.8rem;
    line-height: 1.3;
    font-weight: 600;
    letter-spacing: .2rem;
    padding: 2.85rem 1rem;
    border: .1rem solid var(--color-darkgray);
}

.company-equipment-list table tbody tr:nth-child(odd) {
    background: var(--color-white);
}

.company-equipment-list table tbody tr:nth-child(even) {
    background: var(--color-gray);
}

.company-history {
    padding: 13.3rem 0 0;
    width: 100%;
    position: relative;
    background: var(--color-lightwhite);
}

.company-history:before {
    width: 100%;
    height: 6.9rem;
    background: url(../img/company/bg_history.png) center bottom no-repeat;
    background-size: 100% 100%;
    content: '';
    position: absolute;
    left: 0;
    bottom: 100%;
    z-index: 2;
}

.company-history-list {
    width: 100%;
    max-width: 128rem;
    margin: 0 auto;
}

.company-history-list .company-history-list__item {
    padding: 4.6rem 4.6rem 4.6rem 23rem;
    position: relative;
    display: flex;
    align-items: center;
}

.company-history-list .company-history-list__item:nth-child(odd) {
    background: var(--color-white);
}

.company-history-list .company-history-list__item:before {
    width: 2rem;
    height: 2rem;
    border-radius: 100%;
    background: var(--color-blue);
    content: '';
    position: absolute;
    left: 8rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.company-history-list .company-history-list__item:after {
    width: .1rem;
    height: 100%;
    background: var(--color-blue);
    content: '';
    position: absolute;
    left: 9rem;
    top: 0;
    z-index: 1;
}

.company-history-list .company-history-list__item:first-child:after {
    height: 50%;
    top: 50%;
}

.company-history-list .company-history-list__item:last-child:after {
    height: 50%;
}

.company-history-list .company-history-list__item dt {
    width: 20.8rem;
}

.company-history-list .company-history-list__item .gre-year {
    display: block;
    font-size: 5rem;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .2rem;
    color: var(--color-blue);
}

.company-history-list .company-history-list__item .jap-year {
    display: block;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: .1rem;
}

.company-history-list .company-history-list__item dd {
    width: calc(100% - 20.8rem);
    font-size: 1.8rem;
    line-height: 1.8;
    font-weight: 500;
    letter-spacing: .1rem;
}

.company-img{
    max-width:128rem;
    margin-bottom:3rem;   
    margin: auto;
}

.company-img img{
    width:100%;
    padding-bottom: 5rem;
}


/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    
    .company-wrap {
        padding: 0 0 9rem;
    }

    .company-greeting {
        background-size: auto 100%;
        padding-top: 4.4rem;
    }

    .company-greeting__scroll {
        top: -2rem;
    }

    .company-greeting__scroll li {
        font-size: 9rem;
        line-height: 1.7;
        letter-spacing: .102rem;
    }

    .company-greeting__inner {
        display: block;
    }

    .company-greeting .company-greeting-image {
        width: 100%;
        margin-top: 3rem;
    }

    .company-greeting .company-greeting-box {
        width: 100%;
        font-size: 1.6rem;
        line-height: 1.5;
        letter-spacing: .1rem;
        padding: 0;
    }

    .company-greeting .company-greeting-heading {
        gap: 1.5rem;
        margin-bottom: 3rem;
    }

    .company-greeting .company-greeting-heading .company-greeting-heading__jp {
        font-size: 2rem;
        letter-spacing: .5rem;
    }

    .company-greeting .company-greeting-heading .company-greeting-heading__en {
        font-size: 2.4rem;
        letter-spacing: .2rem;
    }

    .company-greeting .company-greeting-title {
        font-size: 2.4rem;
        letter-spacing: .1rem;
        margin-bottom: 2rem;
    }
    .company-greeting .company-greeting-sign {
        margin-top: 3rem;
        font-size: 1.6rem;
        letter-spacing: .14rem;
    }

    .company-greeting .company-greeting-sign span {
        font-size: 2rem;
    }

    .company-overview {
        padding: 9rem 0 6.6rem;
    }

    .company-overview .company-overview-list {
        gap: 2rem;
    }

    .company-overview-list .company-overview-list__item {
        width: 100%;
        display: block;
        padding: 0 0 2rem;
    }

    .company-overview-list .company-overview-list__item:before {
        width: 25%;
    }

    .company-overview-list .company-overview-list__item dt {
        font-size: 1.8rem;
        letter-spacing: .1rem;
        width: 100%;
        margin-bottom: 1rem;
    }

    .company-overview-list .company-overview-list__item dd {
        font-size: 1.6rem;
        letter-spacing: .15rem;
        width: 100%;
    }

    .company-equipment {
        padding: 10rem 0 14rem;
        background-size: auto 2.6rem;
    }

    .company-equipment-list {
        width: calc(100% + 6.4rem);
        margin: 0 -3.2rem;
        padding: 0 3.2rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .company-equipment-list table {
        min-width: 80rem;
    }

    .company-equipment-list table thead th {
        font-size: 1.8rem;
        letter-spacing: .1rem;
        padding: 1.5rem 1rem;
    }

    .company-equipment-list table tbody td {
        font-size: 1.6rem;
        letter-spacing: .1rem;
        padding: 1.4rem 1rem;
    }

    .company-history {
        padding: 5rem 0 0;
    }

    .company-history:before {
        height: 2.6rem;
        background-size: auto 2.6rem;
    }

    .company-history-list .company-history-list__item {
        padding: 2rem 2rem 2rem 6rem;
        display: block;
    }

    .company-history-list .company-history-list__item:before {
        width: 1.4rem;
        height: 1.4rem;
        left: 2.3rem;
        top: 3.4rem;
        transform: unset;
    }

    .company-history-list .company-history-list__item:after {
        left: 3rem;
    }

    .company-history-list .company-history-list__item:first-child:after {
        height: calc(100% - 3.4rem);
        top: 3.4rem;
    }

    .company-history-list .company-history-list__item:last-child:after {
        height: 3.4rem;
    }

    .company-history-list .company-history-list__item dt {
        width: 100%;
        margin-bottom: 1rem;
    }

    .company-history-list .company-history-list__item .gre-year {
        font-size: 2.4rem;
        letter-spacing: .1rem;
    }

    .company-history-list .company-history-list__item .jap-year {
        display: block;
        font-size: 1.4rem;
        line-height: 1.6;
    }

    .company-history-list .company-history-list__item dd {
        width: 100%;
        font-size: 1.4rem;
        line-height: 1.6;
    }
}


/* !採用情報
---------------------------------------------------------- */
.recruit-top {
    position: relative;
    padding: 18rem 0 17.8rem;
    font-size: 2.6rem;
    line-height: 1.79;
    letter-spacing: .2rem;
    font-weight: 600;
    text-align: center;
    color: var(--color-blue);
}

.recruit-top:before {
    width: 100%;
    height: 100%;
    content: '';
    background: url(../img/recruit/bg_recruit.webp) center top no-repeat;
    background-size: 192rem auto;
    position: absolute;
    left: 0;
    top: -7.4rem;
    z-index: -1;
}

.recruit-top h2 {
    text-align: center;
    font-size: 6.5rem;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: .2rem;
    margin-bottom: 7rem;
}

.recruit-top p span {
    font-size: 3.5rem;
    font-weight: bold;
}

.recruit-top__scroll {
    width: 100%;
    display: none;
}

.recruit-top__scroll ul {
    align-items: center;
}

.recruit-top__scroll li {
    padding-right: 6rem;
    width: fit-content;
}

.recruit-top__scroll li:nth-child(odd) img {
    min-width: 70.2rem;
    display: block;
}

.recruit-top__scroll li:nth-child(even) img {
    min-width: 22rem;
    border-radius: 1rem;
    display: block;
}

.recruit-business {
    background: var(--color-gray);
    padding: 24.7rem 0 25.8rem;
    position: relative;
}

.recruit-business:before,
.recruit-business:after {
    width: 100%;
    height: 6.9rem;
    content: '';
    position: absolute;
    left: 0;
    z-index: 2;
    background: url(../img/recruit/bg_business.png) center center no-repeat;
    background-size: 100% 100%;
}

.recruit-business:before {
    top: 0;
}

.recruit-business:after {
    bottom: 0;
    transform: scaleY(-1);
}

.recruit-business .business-block:after {
    display: none;
}

.recruit-business .business-text {
    margin-top: 3.5rem;
    padding: 0 4.5rem;
    font-size: 1.8rem;
    line-height: 1.8;
    letter-spacing: .2rem;
    font-weight: 500;
}

.recruit-appeal {
    width: 100%;
    padding: 15.4rem 0 21rem;
}

.recruit-appeal-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7.8rem;
}

.recruit-appeal-list .recruit-appeal-list__item {
    font-size: 1.8rem;
    line-height: 1.7;
    letter-spacing: .2rem;
    font-weight: 500;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.recruit-appeal-list .recruit-appeal-list__item figure {
    display: block;
    width: 100%;
    background: var(--color-white);
    padding: 4rem;
    text-align: center;
}

.recruit-appeal-list .recruit-appeal-list__item figure img {
    width: 100%;
    max-width: 16rem;
}

.recruit-appeal-list .recruit-appeal-list__item h3 {
    width: 100%;
    font-size: 3.4rem;
    font-weight: 800;
    line-height: 1.7;
    letter-spacing: .3rem;
    color: var(--color-blue);
    text-align: center;
}

.recruit-bottom {
    background: url(../img/top/bg_top.svg) center center repeat var(--color-white);
    background-size: 16rem auto;
    padding: 19rem 0;
    display: flex;
    flex-direction: column;
    gap: 19rem;
}

.recruit-numbers {
    width: 100%;
}

.recruit-numbers-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5rem 3.3rem;
}

.recruit-numbers-list .recruit-numbers-list__item {
    width: 100%;
    border: .1rem solid var(--color-blue);
    border-radius: 1rem;
    padding: 0 2rem 2rem;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;
    gap: 2.2rem;
    font-size: 3.5rem;
    line-height: 1.7;
    font-weight: bold;
    letter-spacing: .3rem;
    color: var(--color-blue);
    background: var(--color-white);
}

.recruit-numbers-list .recruit-numbers-list__item h3 {
    width: 100%;
    max-width: 26rem;
    background: var(--color-blue);
    color: var(--color-white);
    text-align: center;
    font-size: 2.4rem;
    line-height: 1.7;
    font-weight: 600;
    letter-spacing: .2rem;
    padding: 1rem;
    border-radius: 0 0 1rem 1rem;
}

.recruit-numbers-list .recruit-numbers-list__item .numbers {
    color: var(--color-red);
    font-size: 6.5rem;
    letter-spacing: .3rem;
}

.recruit-numbers-list .recruit-numbers-list__item figure {
    width: 100%;
    max-width: 18rem;
}

.recruit-numbers-list .recruit-numbers-list__item figure img {
    width: 100%;
}

.recruit-inner {
    display: grid;
    grid-template-columns: 28.125% auto;
}

.recruit-inner .heading-mediun {
    justify-content: flex-start;
    align-items: flex-start;
    gap: 1.2rem;
}

.recruit-inner .heading-mediun .heading-mediun__en {
    font-size: 1.8rem;
}

.recruit-inner .heading-mediun .heading-mediun__jp {
    font-size: 5.5rem;
}

.recruit-benefits-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2.4rem;
}

.recruit-benefits-list li {
    background: var(--color-white);
    border: .1rem solid var(--color-blue);
    border-radius: .5rem;
    padding: 2.45rem 1rem;
    font-size: 2.2rem;
    line-height: 1.7;
    letter-spacing: .3rem;
    font-weight: bold;
    color: var(--color-blue);
    text-align: center;
}

.recruit-recruitment .company-overview-list .company-overview-list__item dt {
    width: 24.6rem;
    line-height: 1.7;
}

.recruit-recruitment .company-overview-list .company-overview-list__item dd {
    font-size: 2rem;
    font-weight: 600;
    width: calc(100% - 26.4rem);
}

/*** スマホ 375 ~ 767px ***/
@media only screen and (max-width : 767px){
    .recruit-top {
        padding: 8.7rem 0 7.1rem;
        font-size: 1.8rem;
        line-height: 1.5;
        letter-spacing: .1rem;
    }

    .recruit-top:before {
        background: url(../img/recruit/bg_recruit_sp.webp) center top no-repeat;
        background-size: 100% auto;
        top: -4rem;
    }

    .recruit-top h2 {
        font-size: 2.8rem;
        letter-spacing: .1rem;
        margin-bottom: 2.4rem;
    }

    .recruit-top p span {
        font-size: 2.1rem;
    }

    .recruit-top__scroll {
        display: flex;
        margin-top: 8rem;
    }

    .recruit-top__scroll li {
        padding-right: 3rem;
    }

    .recruit-top__scroll li:nth-child(odd) img {
        min-width: 35.1rem;
    }

    .recruit-top__scroll li:nth-child(even) img {
        min-width: 11rem;
        border-radius: .5rem;
    }

    .recruit-business {
        padding: 12rem 0 9.7rem;
    }

    .recruit-business:before,
    .recruit-business:after {
        height: 2.6rem;
        background-size: auto 2.6rem;
    }

    .recruit-business .heading-mediun {
        margin-bottom: 4.6rem;
    }

    .recruit-business .top-business__list {
        gap: 4.6rem;
    }

    .recruit-business .business-block {
        aspect-ratio: 65 / 52;
    }

    .recruit-business .business-block .business-block__caption {
        width: 6.693rem;
        min-height: 13.493rem;
        background-size: 100% 100%;
    }

    .recruit-business .business-text {
        margin-top: 1.6rem;
        padding: 0;
        font-size: 1.6rem;
        letter-spacing: .1rem;
    }

    .recruit-appeal {
        padding: 7rem 0;
    }

    .recruit-appeal .heading-mediun {
        margin-bottom: 4.6rem;
    }

    .recruit-appeal-list {
        grid-template-columns: repeat(1, 1fr);
        gap: 4rem;
    }

    .recruit-appeal-list .recruit-appeal-list__item {
        font-size: 1.6rem;
        line-height: 1.6;
        letter-spacing: .1rem;
        gap: 1rem;
    }

    .recruit-appeal-list .recruit-appeal-list__item figure {
        padding: 2rem;
    }

    .recruit-appeal-list .recruit-appeal-list__item figure img {
        max-width: 10rem;
    }

    .recruit-appeal-list .recruit-appeal-list__item h3 {
        font-size: 2rem;
        letter-spacing: .15rem;
    }

    .recruit-bottom {
        background-size: 8rem auto;
        padding: 10rem 0;
        gap: 10rem;
    }

    .recruit-bottom .heading-mediun {
        margin-bottom: 4.6rem;
    }

    .recruit-numbers {
        width: 100%;
    }

    .recruit-numbers-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem 1rem;
    }

    .recruit-numbers-list .recruit-numbers-list__item {
        border-radius: .5rem;
        padding: 0 1rem 1rem;
        gap: 1.1rem;
        font-size: 1.4rem;
        letter-spacing: .15rem;
    }

    .recruit-numbers-list .recruit-numbers-list__item h3 {
        max-width: 15rem;
        font-size: 1.4rem;
        line-height: 1.6;
        letter-spacing: .1rem;
        padding: .5rem;
        border-radius: 0 0 .5rem .5rem;
    }

    .recruit-numbers-list .recruit-numbers-list__item .numbers {
        font-size: 2.4rem;
        letter-spacing: .15rem;
    }

    .recruit-numbers-list .recruit-numbers-list__item figure {
        width: 100%;
        max-width: 10rem;
    }

    .recruit-numbers-list .recruit-numbers-list__item figure img {
        width: 100%;
    }

    .recruit-inner {
        display: block;
    }

    .recruit-inner .heading-mediun {
        justify-content: center;
        align-items: center;
    }

    .recruit-inner .heading-mediun .heading-mediun__en {
        font-size: 1.6rem;
    }

    .recruit-inner .heading-mediun .heading-mediun__jp {
        font-size: 2.3rem;
    }

    .recruit-benefits-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }

    .recruit-benefits-list li {
        padding: 1.6rem 0;
        font-size: 1.6rem;
        letter-spacing: .15rem;
    }

    .recruit-recruitment .company-overview-list .company-overview-list__item dt {
        width: 100%;
    }

    .recruit-recruitment .company-overview-list .company-overview-list__item dd {
        font-size: 1.6rem;
        width: 100%
    }

    .news-side{
        display: none;
    }

}

.mt60{
    margin-top: 3vw !important;;
}

.all_staff{
    width:90%;
    max-width: 1280px;
    margin: auto;
}

/* ===================================================
   サイト内全テキストリンクのホバー時カラー変更
=================================================== */

/* 1. 通常のテキストリンクの初期設定（滑らかな色変化） */
a:not(.btn-links):not(.common-contact-button a):not(.header-logo a):not(.footer-logo a) {
    transition: color 0.3s ease, opacity 0.3s ease;
}

/* 2. マウスホバー時の文字色変更 */
a:not(.btn-links):not(.common-contact-button a):not(.header-logo a):not(.footer-logo a):hover {
    color: var(--color-red) !important; /* お好みのカラー（例: #9B003F） */
}

