/*------------------------------------------------------------
BODY BASIC
------------------------------------------------------------*/
body{
font-size:3.5vw;
line-height:1.75;
color:#333;
letter-spacing:.05em;
font-feature-settings:'palt';
width:100%;
overflow:hidden;
}

/*------------------------------------------------------------
RESPONSIVE
------------------------------------------------------------*/
.pconly{ display:none; }
.sponly{ display:block; }


/*------------------------------------------------------------
HEADER
------------------------------------------------------------*/
header{
position:fixed;
width:100%;
height:16vw;
top:0;
left:0;
z-index:999;
transition:all .5s;
}

.is-scrolled header{
background:rgba(255,255,255, .9);
}

header::before{
content:'';
width:7.60vw;
height:6.20vw;
background:url(img/dots-tl.svg) no-repeat;
background-size:7.6vw;
position:absolute;
top:0;
left:0;
z-index:-1;
}

.header-inner{
width:92vw;
height:16vw;
margin:0 auto;
display:flex;
align-items:center;
justify-content:space-between;
}
.site-logo{
width:40vw;
padding-left:4vw;
}

/*------------------------------------------------------------
DRAWER MENU
------------------------------------------------------------*/
/*------------------------------------------------------------
DRAWER MENU
------------------------------------------------------------*/
#menubtn{
position:fixed;
right:4vw;
top:23.5px;
width:6vw;
height:6vw;
cursor:pointer;
z-index:9999;
}
#menubtn span{
display:block;
position:absolute;
height:2px;
width:100%;
background:#09f;
left:0;
transition:all 0.2s ease-in-out;
}

#menubtn span:nth-child(1){
top:0;
}
#menubtn span:nth-child(2){
top:calc(3vw - 1px);
}
#menubtn span:nth-child(3){
top:calc(6vw - 2px);
}

.is-active#menubtn span:nth-child(1){
top:11px;
transform:rotate(45deg);
}
.is-active#menubtn span:nth-child(2){
width:0;
left:50%;
}

.is-active#menubtn span:nth-child(3){
top:11px;
transform:rotate(-45deg);
}

#menubox{
display:none;
width:100%;
background:rgba(255,255,255,0.95);
height:100vh;
position:fixed;
top:0;
left:0;
box-sizing:border-box;
z-index:9998;
}

#menubox.is-active{
display:block;
}

.menu-logo-area{
width:92vw;
height:16vw;
margin:0 auto 12vw;
display:flex;
align-items:center;
}

.menu-logo{
width:40vw;
padding:0 0 0 4vw;
}

.sp-menu-wrap{
width:100%;
height:calc(100vh - 48vw);
overflow:auto;
padding:6vw 0;
}

.sp-menu{
width:70vw;
margin:0 auto 2vw;
display:flex;
flex-direction:column;
gap:2vw 0;
}

.sp-menu li{
position:relative;
}

.sp-menu li a{
display:block;
color:#333;
font-size:3.75vw;
line-height:2;
font-weight:bold;
}

.accmenu{
width:70vw;
margin:0 auto 2vw;
display:flex;
flex-direction:column;
gap:2vw 0;
}
.accmenu dt{
font-size:3.75vw;
font-weight:bold;
color:#333;
padding-right:6vw;
position:relative;
}
.accmenu dt::before{
background:#333;
content:'';
height:2px;
position:absolute;
right:0;
top:50%;
transform:translateY(-50%);
width:3.75vw;
}
.accmenu dt::after{
background:#333;
content:'';
height:3.75vw;
position:absolute;
right:calc(1.875vw - 1px);
top:50%;
transform:translateY(-50%);
transition:opacity .3s, transform .3s;
width:2px;
}
.accmenu dt.open::after{
opacity:0;
transform:translateY(-50%) scaleY(0);
}
.accmenu dd{
margin:0 0 0 1em;
max-height:0;
overflow:hidden;
transition:max-height .4s ease;
}
.accmenu dt.open + dd{
max-height:60vw;
}

.sp-sub{
display:flex;
flex-direction:column;
font-size:3.5vw;
gap:2vw 0;
margin:0 0 4vw;
}
.sp-sub li a{
color:#333;
font-weight:500;
}



/*------------------------------------------------------------
TOPPAGE
------------------------------------------------------------*/


/*------------------------------------------------------------
	TOPPAGE
------------------------------------------------------------*/

#kv {
width:100%;
background:url(img/kv-bg.webp) no-repeat;
background-size:cover;
position:relative;
height: 140vw;
background-position: center;
}

.catch-copy {
position: absolute;
top: 20vw;
left: 5%;
width: 90%;
z-index:110;
}

.catch-copy h1 {
font-size: 6.5vw; 
line-height: 1;
display: flex;
flex-direction: column;
gap: 15vw 0;
}

.catch-copy h1 span{
position:relative;
}

.catch-copy h1 span::after {
content: '';
width: 8vw;
height: 8vw;
bottom: -11.5vw;
left: 2vw;
background: url(img/cross-3d3.svg) no-repeat;
background-size: cover;
position: absolute;

}


.catch-copy h1 span:last-child::after{
background:none;
}
.kv-photos {
width: 120vw;
height: 100vw;
position: absolute;
right: -30vw;
top: 30vw;
opacity: 1;
background: url(img/kv-img.webp) no-repeat;
background-size: contain;
z-index: 2;
}


#kv::after {
content:'';
width: 25vw;
height: 20vw;
background:url(img/dots-bl.svg) no-repeat;
background-size: contain;
position:absolute;
bottom:0;
left:0;
}




#index1{
background:#009fe8;
padding:12vw 0 16vw;
position:relative;
}

#index1::after{
content:'';
width:24vw;
height:20vw;
background:url(img/dots-br.svg) no-repeat right bottom;
background-size:24vw;
position:absolute;
bottom:0;
right:0;
}

.i1-inner{
width:92vw;
margin:0 auto;
}
#index1 h2 span{
font-size:3.5vw;
display:block;
}
#index1 h2{
color:#fff;
font-size:7vw;
line-height:1.25;
font-weight:500;
margin:0 0 6vw;
}

.i1-col{
display:flex;
flex-direction:column;
gap:6vw 0;
}
.i1-img{
width:100%;
}
.i1-txt{
width:100%;
color:#fff;
}
.i1-txt p{
margin-bottom:1.5em;
}




#index2{
padding:12vw 0;
}

.i2-inner{
width:92vw;
margin:0 auto;
}
#index2 h2{
font-size:7vw;
line-height:1.25;
font-weight:500;
margin:0 0 6vw;
}

#index2 h2 span{
font-size:3.5vw;
display:block;
}


.com-list{
display:flex;
flex-direction:column;
gap:4vw 0;
}
.com-list li{
width:100%;
box-shadow:.4vw .4vw 1.5vw rgba(190,190,190,.75);
border-radius:3.2vw;
padding:3.2vw;
display:flex;
flex-direction:column;
gap:3vw 0;
}
.com-thumb{
border-radius:2.6vw;
overflow:hidden;
}
.com-thumb img{
width: 100%;
aspect-ratio: 16 / 9;
object-fit: cover;
}

.com-txt{
padding:0 1.5vw;
}
#index2 h3{
margin-bottom:2vw;
}

h3.com-logo1{
width:32.00vw;
}
h3.com-logo2{
width:49.33vw;
}
h3.com-logo3{
width:34.40vw;
}





#index3{
padding:0 0 12vw;
}
.i3-inner{
width:92vw;
margin:0 auto;
}
#index3 h3{
font-size:7vw;
line-height:1.25;
font-weight:500;
margin:0 0 5vw;
}

#index3 h3 span{
font-size:3.5vw;
display:block;
}


.i3-col{
display:flex;
flex-direction:column;
}

.i3-l{
}
.i3-r{
}

.feed li{
display:flex;
position:relative;
padding:3vw 0;
border-bottom:1px solid #eee;
}
.feed-date{
width:24vw;
padding:0 1vw;
}
.feed-ttl{
width:68vw;
}

.feed li::after{
content:'';
width:1.6vw;
height:1.6vw;
border-right:1px solid #ccc;
border-bottom:1px solid #ccc;
transform:rotate(-45deg);
position:absolute;
top:50%;
right:1vw;
margin-top:-.8vw;
}

.feed li a{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
display:block;
z-index:2;
}




.site-menu{
width:100%;
display:flex;
flex-direction:column;
}
.site-menu li{
width:100%;
aspect-ratio: 640 / 400; 
background-repeat: no-repeat;
background-position: center;
background-size: cover;
display:flex;
align-items:center;
justify-content:center;
position:relative;
}
.site-menu li::after{
content:'';
width:6.4vw;
height:6.4vw;
background:url(img/icon-arrow-circle.svg) no-repeat;
background-size:6.4vw;
position:absolute;
bottom:3.2vw;
right:3.2vw;
z-index:4;
}

.site-menu li:hover::after{
right:.75rem;
}




.menu-1{ background:url(img/menu-about.webp) no-repeat; background-size:cover; }
.menu-2{ background:url(img/menu-ir.webp) no-repeat; background-size:cover; }
.menu-3{ background:url(img/menu-recruit.webp) no-repeat; background-size:cover; }


.site-menu li a {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
text-decoration: none;
color: #fff;
font-size: 6vw;
font-weight: bold;
z-index: 3;
background-color: rgba(0, 0, 0, 0.4);
}


/*------------------------------------------------------------
PAGE
------------------------------------------------------------*/

/*------------------------------------------------------------
SIDE
------------------------------------------------------------*/

/*------------------------------------------------------------
CATEGORY ARCHIVE
------------------------------------------------------------*/

/*------------------------------------------------------------
ニュース
------------------------------------------------------------*/

/* ヒーロー */
.news-hero{
align-items:center;
background:linear-gradient(135deg, #0d4a5c 0%, #1f8f8c 100%);
color:#fff;
display:flex;
height:30vw;
position:relative;
}
.news-hero-inner{
margin:0 auto;
padding:0 4vw;
position:relative;
width:92vw;
z-index:1;
}
.news-hero-sub{
font-size:3vw;
letter-spacing:.15em;
margin:0 0 1.5vw;
opacity:.8;
}
.news-hero-ttl{
align-items:center;
display:flex;
font-size:6vw;
font-weight:700;
margin:0;
}
.news-sub-ttl{
font-size:4vw;
font-weight:400;
margin-left:1.5vw;
}

/*------------------------------------------------------------
IR情報
------------------------------------------------------------*/

/* ヒーロー */
.ir-hero{
align-items:center;
background:linear-gradient(135deg, #0d3a6e 0%, #1f8fc6 100%);
color:#fff;
display:flex;
height:30vw;
position:relative;
}
.ir-hero-inner{
margin:0 auto;
padding:0 4vw;
position:relative;
width:92vw;
z-index:1;
}
.ir-hero-sub{
font-size:3vw;
letter-spacing:.15em;
margin:0 0 1.5vw;
opacity:.8;
}
.ir-hero-ttl{
align-items:center;
display:flex;
font-size:6vw;
font-weight:700;
gap:0 .5em;
line-height:1.3;
margin:0;
}
.ir-sub-ttl{
font-size:3.5vw;
font-weight:400;
opacity:.85;
}

/* セクション */
.ir-section{
padding:8vw 0 12vw;
}
.ir-inner{
margin:0 auto;
width:92vw;
}

/* タブナビ */
.ir-tabs{
border-bottom:1px solid #e0e8ef;
display:flex;
flex-wrap:nowrap;
gap:0;
margin-bottom:6vw;
overflow-x:auto;
-webkit-overflow-scrolling:touch;
-ms-overflow-style:none;
scrollbar-width:none;
}
.ir-tabs::-webkit-scrollbar{
display:none;
}
.ir-tab{
background:none;
border:none;
border-bottom:3px solid transparent;
color:#666;
cursor:pointer;
flex-shrink:0;
font-size:3.25vw;
font-weight:500;
margin-bottom:-2px;
padding:3vw 3.5vw;
transition:color .2s, border-color .2s;
}
.ir-tab.is-active{
border-bottom-color:#1f8fc6;
color:#1f8fc6;
font-weight:700;
}

/* パネル */
.ir-panel{
display:none;
}
.ir-panel.is-active{
display:block;
}

/* 投稿リスト */
.ir-list{
list-style:none;
margin:0;
padding:0;
}
.ir-item{
border-bottom:1px solid #e8eef4;
display:flex;
flex-wrap:wrap;
gap:2vw;
padding:4vw 2vw;
}
.ir-item:first-child{
border-top:1px solid #e8eef4;
}
.ir-date{
color:#888;
flex-shrink:0;
font-size:3vw;
}
.ir-cat-badge{
background:#e8f4fb;
border-radius:3px;
color:#1f8fc6;
font-size:2.75vw;
padding:.5vw 2vw;
}
.ir-ttl{
color:#333;
flex-basis:100%;
font-size:3.5vw;
line-height:1.6;
text-decoration:none;
}
.ir-ttl:active{
color:#1f8fc6;
}
.ir-pdf-badge{
background:#e74c3c;
border-radius:2px;
color:#fff;
font-size:2.5vw;
font-weight:700;
margin-left:.5em;
padding:.5vw 1.5vw;
vertical-align:middle;
}
.ir-empty{
color:#888;
padding:6vw 0;
text-align:center;
}

/* もっと見るリンク */
.ir-more{
margin-top:6vw;
text-align:right;
}
.ir-more-link{
border:1px solid #1f8fc6;
border-radius:3px;
color:#1f8fc6;
display:inline-block;
font-size:3.25vw;
padding:2vw 4vw;
text-decoration:none;
}

/* 年度フィルター */
.ir-year-filter{
margin-bottom:6vw;
}
.ir-year-form{
align-items:center;
display:flex;
gap:3vw;
}
.ir-year-label{
color:#555;
font-size:3.5vw;
white-space:nowrap;
}
.ir-year-select{
appearance:none;
background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231f8fc6' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 3vw center;
border:1px solid #c8d8e4;
border-radius:4px;
color:#333;
cursor:pointer;
font-size:3.5vw;
padding:2vw 8vw 2vw 3vw;
}

/* ページナビ */
.ir-pagenavi{
margin-top:8vw;
text-align:center;
}

/* IR記事ページ */
.ir-post{
margin:0 0 10vw;
}
.ir-post-header{
border-bottom:2px solid #e0e8ef;
margin-bottom:7vw;
padding-bottom:4vw;
}
.ir-post-meta{
align-items:center;
display:flex;
gap:0 3vw;
margin-bottom:3vw;
}
.ir-post-ttl{
font-size:5vw;
font-weight:700;
line-height:1.5;
margin:0;
}

/* 記事本文 */
.ir-post-body{
line-height:1.9;
}
.ir-post-body p{
font-size:3.5vw;
margin-bottom:1.5em;
}
.ir-post-body h2{
background:#f0f7fb;
border-left:4px solid #1f8fc6;
font-size:4.5vw;
font-weight:700;
line-height:1.4;
margin:8vw 0 4vw;
padding:3vw 4vw;
}
.ir-post-body h3{
border-bottom:2px solid #1f8fc6;
font-size:4vw;
font-weight:700;
line-height:1.4;
margin:7vw 0 3.5vw;
padding-bottom:1.5vw;
}
.ir-post-body h4{
font-size:3.75vw;
font-weight:700;
line-height:1.5;
margin:6vw 0 3vw;
padding-left:3vw;
position:relative;
}
.ir-post-body h4::before{
background:#1f8fc6;
content:'';
height:1em;
left:0;
margin-top:.25em;
position:absolute;
top:0;
width:3px;
}
.ir-post-body h5{
color:#1f8fc6;
font-size:3.5vw;
font-weight:700;
line-height:1.5;
margin:5vw 0 2.5vw;
}
.ir-post-body ul,
.ir-post-body ol{
margin:0 0 1.5em 5vw;
}
.ir-post-body li{
font-size:3.5vw;
margin-bottom:1.5vw;
}
.ir-post-body img{
height:auto;
max-width:100%;
}

/* prev / next / 戻るナビ */
.ir-post-nav{
border-top:1px solid #e0e8ef;
margin-top:8vw;
padding-top:6vw;
}
.ir-post-nav-inner{
display:flex;
flex-direction:column;
gap:3vw;
}
.ir-nav-prev a,
.ir-nav-next a{
border:1px solid #e0e8ef;
border-radius:4px;
color:#333;
display:flex;
flex-direction:column;
gap:1.5vw 0;
padding:3.5vw 4vw;
text-decoration:none;
}
.ir-nav-label{
color:#1f8fc6;
font-size:2.75vw;
font-weight:700;
letter-spacing:.05em;
}
.ir-nav-ttl{
font-size:3.25vw;
line-height:1.5;
}
.ir-nav-disabled{
color:#bbb;
display:block;
font-size:3vw;
padding:2vw 0;
}
.ir-nav-back{
display:flex;
justify-content:center;
margin-top:1vw;
}
.ir-nav-back-link{
border:1px solid #1f8fc6;
border-radius:4px;
color:#1f8fc6;
font-size:3.25vw;
padding:2.5vw 6vw;
text-align:center;
text-decoration:none;
}

/*------------------------------------------------------------
CSR
------------------------------------------------------------*/

/* ヒーロー */
.csr-hero{
align-items:center;
background:linear-gradient(135deg, #1a5c3a 0%, #2d9e6b 100%);
color:#fff;
display:flex;
height:30vw;
position:relative;
}
.csr-hero-inner{
margin:0 auto;
padding:0 4vw;
position:relative;
width:92vw;
z-index:1;
}
.csr-hero-sub{
font-size:2.5vw;
letter-spacing:.12em;
margin:0 0 1.5vw;
opacity:.8;
}
.csr-hero-ttl{
font-size:6vw;
font-weight:700;
margin:0;
}

/* 共通インナー */
.csr-inner{
margin:0 auto;
width:92vw;
}

/* リードセクション */
.csr-lead-section{
padding:8vw 0;
}
.csr-lead{
color:#555;
font-size:3.5vw;
line-height:1.9;
text-align:left;
}

/* CSRセクション */
.csr-section{
padding:10vw 0;
}
.csr-section--alt{
background:#f7f9fb;
}

/* CSRブロック */
.csr-block{
display:flex;
flex-direction:column;
gap:5vw 0;
}
.csr-block-en{
color:#2d9e6b;
font-size:3.5vw;
font-weight:700;
letter-spacing:.15em;
margin:0 0 1.5vw;
}
.csr-block-ttl{
border-left:4px solid #2d9e6b;
font-size:6vw;
font-weight:700;
line-height:1.4;
margin:0;
padding-left:3vw;
}
.csr-block-body p{
color:#444;
font-size:3.5vw;
line-height:1.9;
margin:0;
}

/*------------------------------------------------------------
お問い合わせ
------------------------------------------------------------*/

/* ヒーロー */
.inquiry-hero{
align-items:center;
background:linear-gradient(135deg, #2c3e50 0%, #4a6880 100%);
color:#fff;
display:flex;
height:30vw;
position:relative;
}
.inquiry-hero-inner{
margin:0 auto;
padding:0 4vw;
position:relative;
width:92vw;
z-index:1;
}
.inquiry-hero-sub{
font-size:3vw;
letter-spacing:.15em;
margin:0 0 1.5vw;
opacity:.8;
}
.inquiry-hero-ttl{
font-size:6vw;
font-weight:700;
margin:0;
}

/* セクション */
.inquiry-section{
padding:8vw 0 14vw;
}
.inquiry-inner{
margin:0 auto;
width:92vw;
}

/* ステップナビ */
.inquiry-steps{
align-items:center;
display:flex;
justify-content:center;
margin-bottom:8vw;
}
.inquiry-step{
background:#f0f4f7;
border:1px solid #d0d8e0;
border-radius:3px;
color:#999;
font-size:3vw;
font-weight:700;
letter-spacing:.03em;
min-width:18vw;
padding:1.5vw 2vw;
text-align:center;
}
.inquiry-step.is-active{
background:#2c3e50;
border-color:#2c3e50;
color:#fff;
}
.inquiry-step-arrow{
border-top:1px solid #ccd5de;
flex:1;
max-width:6vw;
}

/* メッセージボックス */
.inquiry-message{
margin:0 auto 6vw;
text-align:center;
width:100%;
}
.inquiry-message.is-error .inquiry-result-icon{
color:#c0392b;
}
.inquiry-message-ttl{
align-items:center;
display:flex;
gap:3vw;
justify-content:center;
margin-bottom:3vw;
}
.inquiry-message-ttl .inquiry-result-icon{
font-size:6vw;
margin-bottom:0;
}
.inquiry-message-ttl .inquiry-result-ttl{
margin-bottom:0;
}

/* フォームラッパー */
.inquiry-form-wrap{
margin:0 auto;
width:100%;
}

/* フォーム行 */
.mw_wp_form dl{
border-bottom:1px solid #e8eef4;
display:flex;
flex-direction:column;
gap:2.5vw 0;
margin:0;
padding:4vw 0;
}
.mw_wp_form dl:first-of-type{
border-top:1px solid #e8eef4;
}
.mw_wp_form dt{
align-items:center;
color:#333;
display:flex;
font-size:3.5vw;
font-weight:700;
gap:0 2vw;
}
.mw_wp_form dd{
margin:0;
}

/* 必須バッジ */
.mw_wp_form .req{
background:#c0392b;
border-radius:3px;
color:#fff;
font-size:2.75vw;
font-weight:700;
padding:1px 4px;
}

/* テキスト入力 */
.mw_wp_form input[type="text"],
.mw_wp_form input[type="email"],
.mw_wp_form input[type="tel"]{
border:1px solid #ccd5de;
border-radius:4px;
color:#333;
font-size:3.75vw;
padding:3vw 3.5vw;
width:100%;
}

/* テキストエリア */
.mw_wp_form textarea{
border:1px solid #ccd5de;
border-radius:4px;
color:#333;
font-size:3.75vw;
height:40vw;
padding:3vw 3.5vw;
resize:vertical;
width:100%;
}

/* ラジオ・チェックボックス */
.mw_wp_form input[type="radio"],
.mw_wp_form input[type="checkbox"]{
accent-color:#2c3e50;
height:4vw;
width:4vw;
position:relative;
top:.5vw;
}
.mwform_radio_field label,
.mwform_check_field label{
align-items:center;
cursor:pointer;
display:inline-flex;
font-size:3.5vw;
gap:0 1.5vw;
margin-right:4vw;
}

/* バリデーションエラー */
.mw_wp_form .error{
color:#c0392b;
display:block;
font-size:3vw;
margin-top:1.5vw;
}

/* ボタン */
.form-btn{
align-items:center;
display:flex;
gap:3vw;
justify-content:center;
list-style:none;
margin-top:8vw;
padding:0;
}
.back-btn input[type="submit"]{
background:#fff;
border:1px solid #ccd5de;
border-radius:4px;
color:#666;
cursor:pointer;
font-size:4vw;
font-weight:700;
letter-spacing:.1em;
padding:4vw 6vw;
}
.sbm-btn input[type="submit"]{
background:#2c3e50;
border:none;
border-radius:4px;
color:#fff;
cursor:pointer;
font-size:4vw;
font-weight:700;
letter-spacing:.1em;
padding:4vw 8vw;
}

/* 送信完了・エラー */
.inquiry-result-icon{
color:#2c3e50;
font-size:12vw;
margin-bottom:4vw;
}
.inquiry-result-ttl{
font-size:5vw;
font-weight:700;
margin-bottom:4vw;
}
.inquiry-result-body{
color:#555;
font-size:3.5vw;
line-height:1.75;
margin-bottom:7vw;
}
.inquiry-result-link{
border:1px solid #2c3e50;
border-radius:4px;
color:#2c3e50;
display:inline-block;
font-size:3.5vw;
font-weight:700;
padding:3.5vw 8vw;
text-decoration:none;
}

/*------------------------------------------------------------
SINGLE
------------------------------------------------------------*/

/*------------------------------------------------------------
FOOTER
------------------------------------------------------------*/
footer{
padding:12vw 0;
position:relative;
}

footer::after{
content:'';
width:24.2vw;
height:20.2vw;
background:url(img/dots-footer.svg) no-repeat;
background-size:24.2vw;
position:absolute;
bottom:0;
right:0;
z-index:2;
}


.footer-inner{
width:92vw;
margin:0 auto;
}

.f-col-1{
padding:0 0 8vw;
border-bottom:1px solid #555;
}
.foot-logo{
width:30vw;
margin:0 auto;
}



.f-col-2{
padding:6vw 0 0;
text-align:center;
}
.copy{
font-size:2.75vw;
line-height:1;
}





/* ======================
 ABOUT 1
====================== */


/* KV */
.a1-kv {
  align-items: center;
background:url(img/kv-about-sp.webp) no-repeat center center;
align-items: center;
  display: flex;
  height: 93vw;
  position: relative;
background-size:cover;
}

.a1-kv::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(217, 232, 255, .85);
  z-index: 1;
  clip-path: polygon(0 0, 80% 0, 20% 100%, 0 100%);
  pointer-events: none;
}


.a1-kv-inner{
width:90vw;
margin:0 auto;
display:flex;
justify-content:center;
flex-direction:column;
position:relative;
z-index:10;
}


.kv-en {
  color: #1f8fc6;
  font-size: 4.5vw;
  font-weight: 700;
  letter-spacing: .1em;
  margin-bottom: 1vw;
}

.kv-title {
  font-size: 7vw;
  font-weight: 700;
  margin-bottom: 2vw;
}

.kv-tagline {
  font-size: 5.5vw;
  font-weight: 700;
  line-height: 1.55;
}

/* 共通 */
.container {
  margin: 0 auto;
  max-width: 1100px;
  padding: 0 5vw;
}

.section {
  padding: 10vw 0;
}

.a1-section-title {
  border-bottom: 1px solid #ddd;
  font-size: 5vw;
  font-weight: 700;
  margin-bottom: 7vw;
  padding-bottom: 3vw;
}


main#page{
margin:16vw 0 0;
}


/* ステートメント */
.a1-statement {
  background: #f5f8fb;
}

.statement-box {
  background: #fff;
  border: 1px solid #e0e8ef;
  padding: 8vw 6vw;
}

.statement-label {
  font-size: 4.5vw;
  font-weight: 700;
margin:0 0 1.5vw;
}

.statement-lead {
  color: #1f8fc6;
  font-size: 5vw;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 6vw;
}

.statement-col {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.statement-col p {
  margin-bottom: 1em;
}

/* MVV */
.mvv-grid {
  display: flex;
  flex-direction: column;
  gap: 4vw;
}

.mvv-card {
  background: #fff;
  border: 1px solid #e0e8ef;
  padding: 6vw;
  text-align: center;
position:relative;
}

.mvv-card-dots {
position:absolute;
top:0;
left:0;
width:18vw;
height:15vw;
}
.mvv-card-en {
  color: #1f8fc6;
  font-size: 7.5vw;
  font-weight: 700;
  margin-bottom: 1vw;
}

.mvv-card-ja {
  color: #666;
  font-size: 3vw;
  margin-bottom: 0;
}

.mvv-divider {
  border: none;
  border-top: 1px solid #e0e8ef;
  margin: 4vw 0;
}

.mvv-card p {
  font-size: 3.5vw;
  line-height: 1.8;
}

.mvv-list {
  list-style: none;
  padding: 0;
  text-align: left;
}

.mvv-list li {
  font-size: 3.5vw;
  line-height: 1.7;
  margin-bottom: 2vw;
  padding-left: 1.2em;
  position: relative;
}

.mvv-list li::before {
  content: '・';
  left: 0;
  position: absolute;
}

/* 会社概要 */
.co-table {
  width: 100%;
}

.co-row {
  border-bottom: 1px solid #e0e8ef;
  display: flex;
  flex-direction: column;
}

.co-row:first-child {
}
.co-row:first-child dt{
padding:0 4vw 2vw;
}


.officers th{
font-weight:normal;
text-align:right;
padding:0 2em 0 0;
}

.co-table dt {
padding:4vw 4vw 2vw;
  font-weight: 600;
font-size:4vw;
}

.co-table dd {
padding:2vw 4vw 4vw;
  flex: 1;
}

.office-label {
  color: #1f8fc6;
  font-weight: 700;
margin:0 0 1vw !important;
font-size:4vw;
}

.co-table dd p {
  margin-bottom: 1em;
}

.co-table dd p:last-child {
  margin-bottom: 0;
}

/* 沿革 */
.a1-timeline {
  list-style: none;
  padding-left: 10vw;
  position: relative;
}

.a1-timeline::before {
  background: #1f8fc6;
  bottom: 2vw;
  content: '';
  left: 2.5vw;
  position: absolute;
  top: 2.5vw;
  width: 0.5vw;
}

.a1-timeline li {
  display: flex;
  flex-wrap: wrap;
  gap: 1vw 4vw;
  margin-bottom: 6vw;
  position: relative;
}

.a1-timeline li:last-child {
  margin-bottom: 0;
}

.a1-timeline li::before {
  background: #1f8fc6;
  border-radius: 50%;
  content: '';
  height: 3.5vw;
  left: -9vw;
  position: absolute;
  top: 1.5vw;
  width: 3.5vw;
}

.tl-date {
  flex-shrink: 0;
  font-weight: 600;
  width: 32vw;
}

.tl-text {
  flex: 1;
  min-width: 0;
}

/* グループ紹介 */
.group-grid {
  display: flex;
  flex-direction: column;
  gap: 4vw;
  margin-bottom: 2.5vw;
}

.group-card {
  align-items: center;
  border: 1px solid #e0e8ef;
  border-radius: 2vw;
  display: flex;
  flex-direction: column;
  padding: 6vw 5vw 4vw;
  text-align: center;
}

.group-logo {
  align-items: center;
  display: flex;
  height: 18vw;
  justify-content: center;
  margin-bottom: 3.5vw;
}

.group-logo img {
  max-height: 16vw;
  max-width: 42vw;
  object-fit: contain;
}

.group-name {
  font-size: 3.5vw;
  margin-bottom: 3.5vw;
}

.group-dots {
  display: flex;
  gap: 1.5vw;
  justify-content: center;
  margin-bottom: 4vw;
}

.group-dots span {
  background: #1f8fc6;
  border-radius: 50%;
  display: inline-block;
  height: 2vw;
  width: 2vw;
}

.group-link {
  border-top: 1px solid #e0e8ef;
  color: #1f8fc6;
  display: block;
  font-size: 3.5vw;
  padding-top: 3vw;
  text-align: right;
  text-decoration: none;
  width: 100%;
}

.group-link:hover {
  opacity: .7;
}

.group-note {
  color: #666;
  font-size: 3vw;
  margin-top: 2vw;
}

/* 役員一覧 */
.a1-officer-list {
  display: grid;
  gap: 5vw 4vw;
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
  padding: 0;
}

.a1-officer-card {
  border: 1px solid #e0e8ef;
  border-radius: 2vw;
  overflow: hidden;
  text-align: center;
}

.a1-officer-photo img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
}

.a1-officer-info {
  padding: 3.5vw 3.5vw 4vw;
}

.a1-officer-role {
  background: #1f8fc6;
  border-radius: 1vw;
  color: #fff;
  display: inline-block;
  font-size: 3vw;
  margin-bottom: 2vw;
  padding: 1vw 2.5vw;
}

.a1-officer-name {
  font-size: 3.75vw;
  font-weight: 700;
  margin-bottom: 0.5vw;
}

.a1-officer-name-en {
  color: #999;
  display: block;
  font-size: 2.5vw;
  font-weight: normal;
  margin-bottom: 2vw;
}

.a1-officer-bio {
  font-size: 3vw;
  line-height: 1.75;
  text-align: left;
}


/* ======================
 ABOUT 2
====================== */

.a2-section-title {
  font-size: 5vw;
  font-weight: 700;
  margin-bottom: 7vw;
  padding-bottom: 3vw;
  position: relative;
}
.a2-section-title::after {
  background: #1f8fc6;
  bottom: -0.5vw;
  content: '';
  height: 4px;
  left: 0;
  position: absolute;
  width: 35vw;
  z-index: 2;
}

/* ステートメント */
.a2-statement {
position:relative;
}

.a2-statement-lead {
  color: #1f8fc6;
  font-size: 5vw;
  font-style: normal;
  font-weight: 700;
  line-height: 1.65;
  margin: 0 0 6vw;
}

.a2-statement-body{
position:relative;
}

.a2-statement-body p {
  font-size: 3.5vw;
  line-height: 2;
  margin-bottom: 1em;
}

.sign-wrap {
display:flex;
flex-direction:column;
  align-items: flex-end;
}
.sign-photo {
  margin-bottom: 0;
  width: 40vw;
}
.sign {
  font-size: 4.5vw;
  gap: 0 3vw;
  line-height: 2;
display:flex;
justify-content:flex-end;
align-items:flex-end;
}
.sign-post {
  font-size: 3.5vw;
  line-height: 2;
}

.typo {
  bottom: 0;
  color: #f5f8fb;
  font-size: 14vw;
  font-weight: 900;
  line-height: 1;
  position: absolute;
  right: 0;
  z-index: -1;
}

.a1-mvv,
.a1-company,
.a1-history{
padding-bottom:0 !important;
}

.a1-company,
.a1-history,
.a1-org-chart{
position:relative;
}



/* MVV */


.purpose-label {
  font-size: 4.5vw;
  font-weight: 700;
margin:0 0 1.5vw;
}


.a2-mvv{
position:relative;
}

.a2-mvv-item {
  display: flex;
  flex-direction: column;
  margin-bottom: 8vw;
}

.a2-mvv-item:last-child {
  margin-bottom: 0;
}

.a2-mvv-head {
  display: flex;
  gap: 4vw;
  margin-bottom: 3vw;
align-items:center;
}

.a2-mvv-en {
  color: #1f8fc6;
  font-size:6vw;
  font-weight: 700;
}

.a2-mvv-ja {
  color: #666;
  font-size: 3vw;
}

.a2-mvv-body {
  font-size: 3.5vw;
  line-height: 1.75;
}

.a2-mvv-val {
  list-style: none;
  padding: 0;
}

.a2-mvv-val li {
  padding-left: 1.2em;
  position: relative;
}

.a2-mvv-val li::before {
  content: '・';
  left: 0;
  position: absolute;
}

/* 会社概要 */
.a2-company{
position:relative;
}

.a2-co-table {
  width: 100%;
}

.a2-co-row {
  display: flex;
  flex-direction: column;
  padding: 4vw 5vw;
}

.a2-co-row:nth-child(odd) {
  background: #f5f8fb;
}

.a2-co-table dt {
  font-weight: 600;
  margin-bottom: 1.5vw;
}

.a2-co-table dd {
  flex: 1;
}

.a2-co-table dd p {
  margin-bottom: 1em;
}

.a2-co-table dd p:last-child {
  margin-bottom: 0;
}

/* 沿革 */
.a2-history{
position:relative;
}

.a2-timeline {
  list-style: none;
  padding: 0;
}

.a2-timeline li {
  border-bottom: 1px solid #e0e8ef;
  display: flex;
  flex-direction: column;
  gap: 2vw;
  padding: 5vw 0;
}

.a2-timeline li:first-child {
  border-top: 0px solid #e0e8ef;
}

.a2-tl-year {
  color: #1f8fc6;
  font-size: 8vw;
  font-weight: 700;
  line-height: 1;
}

.a2-tl-year span {
  font-size: 3.5vw;
  font-weight: 400;
}

.a2-tl-text {
  font-size: 3.5vw;
  line-height: 1.75;
}

/* グループ紹介 */
.a2-group{
position:relative;
}

.a2-group-list {
  display: flex;
  flex-direction: column;
  gap: 5vw;
  list-style: none;
  margin-bottom: 2.5vw;
  padding: 0;
}

.a2-group-item {
  border: 1px solid #e0e8ef;
  border-radius: 2vw;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.a2-group-thumb img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
}

.a2-group-body {
  padding: 5vw 5vw 4vw;
  text-align: center;
}

.a2-group-logo {
  align-items: center;
  display: flex;
  height: 14vw;
  justify-content: center;
}

.a2-group-logo img {
  max-height: 12vw;
  max-width: 40vw;
  object-fit: contain;
}

.group-desc {
  font-size: 3.5vw;
  margin-bottom: 3.5vw;
text-align:left;
}
.group-desc-adj {
  font-size: 3.5vw;
  margin-bottom: 3.5vw;
text-align:left;
}
/* 役員一覧 */
.a2-officers{
position:relative;
}

.a2-officer-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  padding: 0;
}

.a2-officer-list li {
  border-bottom: 1px solid #e0e8ef;
  padding: 4vw 0;
}

.a2-officer-list li:first-child {
  border-top: 0;
}

.officer-name-area {
  display: flex;
  gap: 0 4vw;
  margin: 0 0 3vw;
}

.officer-photo {
  width: 22vw;
}

.a2-officer-role {
  background: #1f8fc6;
  border-radius: 1vw;
  color: #fff;
  display: inline-block;
  font-size: 3vw;
  margin-bottom: 2vw;
  padding: 1vw 3vw;
}

.a2-officer-name {
  display: block;
  font-size: 4.5vw;
  font-weight: 700;
  margin-bottom: 2vw;
}

.a2-officer-name span.officer-name-en {
  color: #ccc;
  display: block;
  font-size: 3vw;
  font-weight: normal;
}

.a2-officer-bio {
  color: #666;
  font-size: 3.5vw;
  line-height: 1.75;
}


/* ======================
 ABOUT 3
====================== */

/* ステートメント（青背景） */
.a3-statement {
  background: #009fe8;
  padding: 16vw 0;
}

.a3-statement-label {
  color: rgba(255,255,255,.75);
  font-size: 3.5vw;
  font-weight: 700;
  margin-bottom: 4vw;
}

.a3-statement-lead {
  color: #fff;
  font-size: 4.5vw;
  font-weight: 700;
  line-height: 1.65;
}

/* ステートメント本文 */
.a3-statement-body {
  background: #f5f8fb;
}

.a3-statement-col {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.a3-statement-col p {
  font-size: 3.5vw;
  line-height: 1.75;
  margin-bottom: 1em;
}

/* MVV */
.a3-mvv-row {
  display: flex;
  flex-direction: column;
}

.a3-mvv-item {
  border-top: 2px solid #1f8fc6;
  padding: 6vw 0;
}

.a3-mvv-item:last-child {
  border-bottom: 2px solid #1f8fc6;
}

.a3-mvv-en {
  color: #1f8fc6;
  font-size: 5.5vw;
  font-weight: 700;
  margin-bottom: 1vw;
}

.a3-mvv-ja {
  color: #666;
  font-size: 3vw;
  margin-bottom: 3vw;
}

.a3-mvv-body {
  font-size: 3.5vw;
  line-height: 1.75;
}

.a3-mvv-val {
  list-style: none;
  padding: 0;
}

.a3-mvv-val li {
  margin-bottom: 2vw;
  padding-left: 1.2em;
  position: relative;
}

.a3-mvv-val li::before {
  content: '・';
  left: 0;
  position: absolute;
}

/* 会社概要 */
.a3-co-table {
  width: 100%;
}

.a3-co-row {
  display: flex;
  flex-direction: column;
  padding: 4vw 0;
}

.a3-co-table dt {
  color: #1f8fc6;
  font-size: 3vw;
  font-weight: 700;
  letter-spacing: .08em;
  margin-bottom: 1.5vw;
  text-transform: uppercase;
}

.a3-co-table dd {
  flex: 1;
  font-size: 3.5vw;
}

.a3-co-table dd p {
  margin-bottom: 1em;
}

.a3-co-table dd p:last-child {
  margin-bottom: 0;
}

/* 沿革 */
.a3-timeline {
  list-style: none;
  padding: 0;
}

.a3-timeline li {
  border-bottom: 1px solid #e0e8ef;
  display: flex;
  flex-wrap: wrap;
  gap: 2vw;
  padding: 4vw 0;
}

.a3-timeline li:first-child {
  border-top: 1px solid #e0e8ef;
}

.a3-tl-num {
  color: #1f8fc6;
  font-size: 4.5vw;
  font-weight: 700;
  width: 8vw;
}

.a3-tl-date {
  font-size: 3.5vw;
  font-weight: 600;
  width: 30vw;
}

.a3-tl-text {
  flex: 1;
  font-size: 3.5vw;
  line-height: 1.75;
  min-width: 0;
}

/* グループ紹介 */
.a3-group-row {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  margin-bottom: 2.5vw;
  padding: 0;
}

.a3-group-item {
  border-top: 1px solid #e0e8ef;
  display: flex;
  flex-direction: column;
  gap: 3vw;
  padding: 5vw 0;
  text-align: center;
}

.a3-group-item:last-child {
  border-bottom: 1px solid #e0e8ef;
}

.a3-group-logo {
  align-items: center;
  display: flex;
  height: 14vw;
  justify-content: center;
}

.a3-group-logo img {
  max-height: 12vw;
  max-width: 40vw;
  object-fit: contain;
}

.a3-group-name {
  font-size: 3.5vw;
}

.a3-group-link {
  color: #1f8fc6;
  font-size: 3.5vw;
  text-decoration: none;
}

.a3-group-link:hover {
  opacity: .7;
}

/*------------------------------------------------------------
	利用規約・プライバシーポリシー
------------------------------------------------------------*/

/* ヒーロー */
.legal-hero {
  align-items: center;
  background: linear-gradient(135deg, #2c3749 0%, #4a6080 100%);
  color: #fff;
  display: flex;
  height: 32vw;
  position: relative;
}
.legal-hero-inner {
  margin: 0 auto;
  padding: 0;
  position: relative;
  width: 90vw;
  z-index: 1;
}
.legal-hero-sub {
  font-size: 2.5vw;
  letter-spacing: .1em;
  margin: 0 0 1.5vw;
  opacity: .8;
}
.legal-hero-ttl {
  font-size: 6vw;
  font-weight: 700;
  margin: 0;
}

/* セクション */
.legal-section {
  padding: 10vw 0 14vw;
}
.legal-inner {
  margin: 0 auto;
  width: 90vw;
}

/* リード・制定日 */
.legal-lead {
  font-size: 3.5vw;
  line-height: 1.9;
  margin-bottom: 6vw;
}
.legal-date {
  color: #666;
  font-size: 3vw;
  margin-bottom: 8vw;
  text-align: right;
}

/* 各条文 */
.legal-article {
  border-bottom: 1px solid #e0e8ef;
  margin-bottom: 6vw;
  padding-bottom: 6vw;
}
.legal-article:last-child {
  border-bottom: none;
  margin-bottom: 0;
}
.legal-article-ttl {
  border-left: 1vw solid #4a6080;
  font-size: 4vw;
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 3vw;
  padding: 1.5vw 0 1.5vw 3vw;
}
.legal-article p {
  font-size: 3.5vw;
  line-height: 1.9;
  margin-bottom: 1em;
}
.legal-article p:last-child {
  margin-bottom: 0;
}
.legal-article ul {
  list-style: none;
  margin: 0 0 1em 0;
  padding-left: 1.5em;
}
.legal-article ol {
  list-style: decimal;
  margin: 0 0 1em 0;
  padding-left: 5vw;
}
.legal-article li {
  font-size: 3.5vw;
  line-height: 1.9;
  margin-bottom: 1.5vw;
}
.legal-article ul > li {
  position: relative;
}
.legal-article ul > li::before {
  background: #aaa;
  border-radius: 50%;
  content: '';
  height: 6px;
  left: -1em;
  position: absolute;
  top: calc(0.95em - 3px);
  width: 6px;
}

/* お問い合わせ窓口ボックス */
.legal-contact-box {
  background: #f5f8fb;
  border-radius: 2vw;
  margin-top: 4vw;
  padding: 5vw;
}
.legal-contact-box p {
  font-size: 3.5vw;
  line-height: 1.9;
  margin-bottom: 1.5vw;
}
.legal-contact-box p:last-child {
  margin-bottom: 0;
}

/* サブ見出し（条文内カテゴリー） */
.legal-article-sub-ttl {
  font-size: 3.5vw;
  font-weight: 700;
  line-height: 1.75;
  margin-bottom: 1.5vw;
  margin-top: 4vw;
}

/* 注釈・補足テキスト */
.legal-note {
  color: #666;
  font-size: 3vw;
  line-height: 1.75;
  margin-top: 1.5vw;
}

/* 共同利用 定義リスト */
.legal-dl dt {
  font-size: 3.5vw;
  font-weight: 700;
  line-height: 1.75;
  margin-top: 3vw;
}
.legal-dl dd {
  font-size: 3.5vw;
  line-height: 1.9;
  margin-left: 3vw;
}

/* 番号付きリスト（申請手続） */
.legal-ol {
  list-style: decimal;
  margin: 0 0 1em 5vw;
}
.legal-ol li {
  font-size: 3.5vw;
  line-height: 1.9;
  margin-bottom: 1.5vw;
}
.legal-ol li:last-child {
  margin-bottom: 0;
}

/* プレースホルダー（準備中） */
.legal-placeholder {
  color: #999;
  font-style: italic;
}

/*------------------------------------------------------------
	PANKUZU
------------------------------------------------------------*/
#pankuzu{
color:#666;
font-size:3vw;
line-height:1.5;
margin:0 auto;
padding:3vw 0;
width:90vw;
}
.pankuzu-list{
align-items:center;
display:flex;
flex-wrap:wrap;
list-style:none;
margin:0;
padding:0;
}
.pankuzu-item + .pankuzu-item::before{
color:#aaa;
content:'›';
margin:0 2vw;
}
.pankuzu-item a{
color:#666;
text-decoration:none;
}
.pankuzu-item.current{
color:#333;
font-weight:normal;
}

/*------------------------------------------------------------
	サイトマップ
------------------------------------------------------------*/

/* セクション */
.sitemap-section {
padding: 14vw 0 18vw;
}
.sitemap-inner {
margin: 0 auto;
width: 92vw;
}

/* グリッド */
.sitemap-grid {
display: flex;
flex-direction: column;
gap: 8vw 0;
}

/* グループ */
.sitemap-group {
border-top: 2px solid #1f8fc6;
padding-top: 4vw;
}

/* グループタイトル */
.sitemap-group-ttl {
font-size: 4vw;
font-weight: 700;
line-height: 1.5;
margin-bottom: 3vw;
}
.sitemap-group-ttl a {
color: #333;
}
.sitemap-group-ttl--small {
color: #666;
font-size: 3.5vw;
font-weight: 700;
}

/* リスト */
.sitemap-list {
display: flex;
flex-direction: column;
gap: 2vw 0;
}
.sitemap-list li {
padding-left: 4vw;
position: relative;
}
.sitemap-list li::before {
border-bottom: 1px solid #1f8fc6;
border-right: 1px solid #1f8fc6;
content: '';
height: 5px;
left: 0;
margin-top: -2.5px;
position: absolute;
top: .6em;
transform: rotate(-45deg);
width: 5px;
}
.sitemap-list li a {
color: #555;
font-size: 3.5vw;
line-height: 1.75;
}

/*------------------------------------------------------------
	RECRUIT
------------------------------------------------------------*/

/* ヒーロー */
.recruit-hero{
align-items:center;
background:linear-gradient(135deg, #1565a8 0%, #1f8fc6 100%);
color:#fff;
display:flex;
height:30vw;
position:relative;
}
.recruit-hero-inner{
margin:0 auto;
padding:0 4vw;
position:relative;
width:92vw;
z-index:1;
}
.recruit-hero-sub{
font-size:2.5vw;
letter-spacing:.12em;
margin:0 0 1.5vw;
opacity:.8;
}
.recruit-hero-ttl{
font-size:6vw;
font-weight:700;
margin:0;
}

/* アナウンス */
.recruit-announce{
padding:14vw 0 18vw;
}
.recruit-inner{
margin:0 auto;
width:92vw;
}
.recruit-announce-txt{
color:#333;
font-size:4.5vw;
font-weight:700;
line-height:1.75;
text-align:center;
}
.recruit-announce-sub{
color:#666;
font-size:3.5vw;
line-height:1.75;
margin-top:3vw;
text-align:center;
}

/*------------------------------------------------------------
	PARTICLES HERO（共通）
------------------------------------------------------------*/
#particles-hero{
background:transparent;
bottom:0;
left:0;
position:absolute;
right:0;
top:0;
}


