/*------------------------------------------------------------
	FOR PC LAYOUT CSS
------------------------------------------------------------*/
@media screen and (min-width:768px){

/*------------------------------------------------------------
	BODY BASIC
------------------------------------------------------------*/
body{
font-size:1rem;
line-height:1.75;
color:#333;
letter-spacing:.05em;
font-feature-settings:'palt';
width:100%;
overflow:hidden;
}

/*------------------------------------------------------------
	RESPONSIVE
------------------------------------------------------------*/
.pconly{ display:block; }
.sponly{ display:none; }


/*------------------------------------------------------------
	HEADER
------------------------------------------------------------*/
header{
position:fixed;
width:100%;
height:94px;
top:0;
left:0;
z-index:9999;
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{
min-width:1000px;
width:94%;
height:94px;
margin:0 auto;
display:flex;
align-items:center;
justify-content:space-between;
}
.site-logo{
width:calc(226px + 5.21vw);
height:64px;
padding-left:5.21vw;
}
.head-navi{
width:auto;
}
.head-navi ul{
display:flex;
justify-content:space-between;
height:94px;
gap:0;
}

.head-navi ul li{
display:flex;
align-items:center;
font-size:1rem;
font-weight:500;
}
.head-navi ul li.acc{
padding:0;
}

.head-navi ul li:hover{
background:#ddf0fa;
color:#09f;
}
.head-navi ul li a:hover{
background:#ddf0fa;
color:#09f;
}

.head-navi li a{
color:#333;
display:flex;
align-items:center;
height:94px;
padding:0 1.5rem;
}
.navi-sub-wrap{
display:none;
width:100%;
position:absolute;
top:94px;
left:0;
background:rgba(221, 240, 250, .95);
padding:2rem 0;
}
.navi-sub-inner{
width:1100px;
margin:0 auto;
display:flex;
justify-content:space-between;
}
.navi-sub-ttl{
width:200px;
display:flex;
align-items:center;
text-align:center;
justify-content:center;
font-size:1.1rem;
}

.head-navi ul li:hover .navi-sub-ttl{
color:#333;
}


.navi-sub{
width:800px;
display:flex;
flex-wrap:wrap;
gap:1rem 0;
height:auto !important;
justify-content:flex-start !important;
}
.navi-sub li{
width:calc(33.33% - 1.5rem);
height:auto;
}
.navi-sub li a{
padding:.5rem 0 .5rem 1rem;
height:auto !important;
position:relative;
}
.navi-sub li a::before{
content:'';
width:5px;
height:5px;
background:#09f;
position:absolute;
top:50%;
left:0;
margin-top:-2.5px;
}

.navi-sub li:hover,
.navi-sub li a:hover{
background:none !Important;
}



/*------------------------------------------------------------
	TOPPAGE
------------------------------------------------------------*/
#kv{
width:100%;
height: 92.6vw;
background:url(img/kv-bg.webp) no-repeat;
background-size:cover;
position:relative;
}

.catch-copy {
position: absolute;
top: 11.45vw;
left: 7.5%;
z-index: 3;
}

.catch-copy h1 {
font-size: 4.27vw;
line-height: 1;
display: flex;
flex-direction: column;
gap: 9.89vw 0;
}
.catch-copy h1 span{
position:relative;
}

.catch-copy h1 span::after {
  content: '';
  width: 4vw;
  height: 4vw;
  background: url(img/cross-3d3.svg) no-repeat;
  background-size: cover;
  position: absolute;
  bottom: -7.4vw;
  left: 0.52vw;
}
.catch-copy h1 span:last-child::after{
background:none;
}

.kv-photos {
  width: 87.86vw;
  height: 76.4vw; 
  background: url(img/kv-img.webp) no-repeat;
  background-size: contain; /* 横幅に合わせて自動調整 */
  position: absolute;
  right: -16.66vw;
  top: 8.43vw;
  z-index: 2;
}


#kv::after{
content:'';
width:30.42vw;
height:25.36vw;
background:url(img/dots-bl.svg) no-repeat;
background-size:30.36vw;
position:absolute;
bottom:0;
left:0;
}



#index1{
background:#009fe8;
padding:6rem 0 8rem;
position:relative;
}

#index1::after{
content:'';
width:12.60vw;
height:10.52vw;
background:url(img/dots-br.svg) no-repeat right bottom;
background-size:12.60vw;
position:absolute;
bottom:0;
right:0;
}

.i1-inner{
width:1100px;
margin:0 auto;
}
#index1 h2 span{
font-size:1.375rem;
display:block;
}
#index1 h2{
color:#fff;
font-size:3.625rem;
line-height:1.25;
font-weight:500;
margin:0 0 2.5rem;
}
.i1-col{
display:flex;
justify-content:space-between;
flex-direction:row;
gap:0;
}
.i1-img{
width:500px;
}
.i1-txt{
width:535px;
color:#fff;
}
.i1-txt p{
margin-bottom:1.5em;
}


#index2{
padding:6rem 0;
}

.i2-inner{
width:1100px;
margin:0 auto;
}
#index2 h2{
font-size:3.625rem;
line-height:1.25;
font-weight:500;
margin:0 0 2.5rem;
}

#index2 h2 span{
font-size:1.375rem;
display:block;
}

.com-list{
display:flex;
justify-content:space-between;
flex-direction:row;
gap:0;
}
.com-list li{
width:340px;
box-shadow:2px 2px 7.5px rgba(190,190,190,.75);
border-radius:1.625rem;
padding:1rem;
display:flex;
flex-direction:column;
gap:1rem 0;
transition:all .2s;
}
.com-thumb{
border-radius:1rem;
overflow:hidden;
}
.com-thumb img{
width:308px;
height:174px;
object-fit:cover;
}

.com-txt{
padding:0 .5rem;
}

.com-txt p.adj{
letter-spacing:-.03em;
}

.com-list li:hover{
transform:scale(1.05);
}



h3.com-logo1{
width:120px;
}
h3.com-logo2{
width:185px;
}
h3.com-logo3{
width:129px;
}

#index2 h3{
margin-bottom:.5rem;
}


#index3{
padding:0 0 6rem;
}
.i3-inner{
width:1100px;
margin:0 auto;
}
#index3 h3{
font-size:3.625rem;
line-height:1.25;
font-weight:500;
margin:0 0 2.5rem;
}

#index3 h3 span{
font-size:1.375rem;
display:block;
}


.i3-col{
display:flex;
justify-content:space-between;
flex-direction:row;
gap:0;
}

.i3-l{
width:310px;
}
.i3-r{
padding:4rem 0 0;
width:790px;
}

.feed li{
display:flex;
position:relative;
padding:1rem 2rem 1rem 0;
border-bottom:1px solid #eee;
transition:all .2s;
}
.feed-date{
width:140px;
padding:0 10px;
}
.feed-ttl{
width:650px;
}
.feed li:hover{
background:#f8f8f8;
}


.feed li::after{
content:'';
width:8px;
height:8px;
border-right:1px solid #ccc;
border-bottom:1px solid #ccc;
transform:rotate(-45deg);
position:absolute;
top:50%;
right:.5rem;
margin-top:-4px;
}

.feed li a{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
display:block;
z-index:2;
}
.feed li:hover .feed-ttl{
text-decoration:underline;
}


.site-menu{
width:100%;
display:flex;
flex-direction:row;
}
.site-menu li{
width: 33.333vw;
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:2rem;
height:2rem;
background:url(img/icon-arrow-circle.svg) no-repeat;
background-size:2rem;
position:absolute;
bottom:1rem;
right:1rem;
z-index:4;
transition:all .2s;
}

.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: 1.5vw;
font-weight: bold;
z-index: 3;
background-color: rgba(0, 0, 0, 0.4);
transition: background-color 0.5s ease;
}

.site-menu li a:hover {
background-color: rgba(0, 0, 0, 0.1);
}


/*------------------------------------------------------------
	PANKUZU
------------------------------------------------------------*/
#pankuzu{
font-size:.75rem;
line-height:1.8;
margin:0 auto;
padding:10px 0;
width:1100px;
}
.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 .5rem;
}
.pankuzu-item a{
color:#666;
text-decoration:none;
}
.pankuzu-item a:hover{
color:#2c3e50;
text-decoration:underline;
}
.pankuzu-item.current{
color:#333;
font-weight:normal;
}

/*------------------------------------------------------------
	PAGE
------------------------------------------------------------*/

/*------------------------------------------------------------
	SIDE
------------------------------------------------------------*/

/*------------------------------------------------------------
	CATEGORY ARCHIVE
------------------------------------------------------------*/

/*------------------------------------------------------------
	ニュース
------------------------------------------------------------*/

/* ヒーロー */
.news-hero{
align-items:center;
background:linear-gradient(135deg, #0d4a5c 0%, #1f8f8c 100%);
color:#fff;
display:flex;
height:180px;
position:relative;
}
.news-hero-inner{
margin:0 auto;
padding:0;
position:relative;
width:1100px;
z-index:1;
}
.news-hero-sub{
font-size:.875rem;
letter-spacing:.15em;
margin:0 0 .5rem;
opacity:.8;
}
.news-hero-ttl{
align-items:center;
display:flex;
font-size:2rem;
font-weight:700;
margin:0;
}
.news-sub-ttl{
font-size:1.25rem;
font-weight:400;
margin-left:.5rem;
}

/*------------------------------------------------------------
	IR情報
------------------------------------------------------------*/

/* ヒーロー */
.ir-hero{
align-items:center;
background:linear-gradient(135deg, #0d3a6e 0%, #1f8fc6 100%);
color:#fff;
display:flex;
height:180px;
position:relative;
}
.ir-hero-inner{
margin:0 auto;
padding:0;
position:relative;
width:1100px;
z-index:1;
}
.ir-hero-sub{
font-size:.875rem;
letter-spacing:.15em;
margin:0 0 .5rem;
opacity:.8;
}
.ir-hero-ttl{
align-items:center;
display:flex;
font-size:2rem;
font-weight:700;
gap:0 .5em;
line-height:1.25;
margin:0;
}
.ir-sub-ttl{
font-size:1.25rem;
font-weight:400;
opacity:.85;
}

/* セクション */
.ir-section{
padding:4rem 0 6rem;
}
.ir-inner{
margin:0 auto;
width:1100px;
}

/* タブナビ */
.ir-tabs{
border-bottom:2px solid #e0e8ef;
display:flex;
gap:0;
margin-bottom:2.5rem;
}
.ir-tab{
background:none;
border:none;
border-bottom:3px solid transparent;
color:#666;
cursor:pointer;
font-size:.9375rem;
font-weight:500;
margin-bottom:-3px;
padding:.875rem 1.5rem;
transition:color .2s, border-color .2s;
}
.ir-tab:hover{
color:#1f8fc6;
}
.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{
align-items:center;
border-bottom:1px solid #e8eef4;
display:flex;
flex-wrap:nowrap;
gap:0 1rem;
padding:1rem .5rem;
position:relative;
transition:background .15s;
}
.ir-item:first-child{
border-top:1px solid #e8eef4;
}
.ir-item:hover{
background:#f5f8fb;
}
.ir-date{
color:#888;
flex-shrink:0;
font-size:.875rem;
width:100px;
}
.ir-cat-badge{
background:#e8f4fb;
border-radius:3px;
color:#1f8fc6;
flex-shrink:0;
font-size:.75rem;
padding:2px 8px;
text-align:center;
width:130px;
}
.ir-ttl{
color:#333;
flex:1;
font-size:.9375rem;
text-decoration:none;
}
.ir-ttl:hover{
color:#1f8fc6;
}


.ir-pdf-badge{
background:#e74c3c;
border-radius:3px;
color:#fff;
font-size:.6875rem;
font-weight:700;
margin-left:.5em;
padding:1px 6px;
vertical-align:middle;
}
.ir-empty{
color:#888;
padding:2rem 0;
text-align:center;
}

/* もっと見るリンク */
.ir-more{
margin-top:2rem;
text-align:right;
}
.ir-more-link{
border:1px solid #1f8fc6;
border-radius:3px;
color:#1f8fc6;
display:inline-block;
font-size:.875rem;
padding:.5rem 1.5rem;
text-decoration:none;
transition:background .2s, color .2s;
}
.ir-more-link:hover{
background:#1f8fc6;
color:#fff;
}

/* 年度フィルター */
.ir-year-filter{
margin-bottom:2rem;
}
.ir-year-form{
align-items:center;
display:flex;
gap:0.75rem;
}
.ir-year-label{
color:#555;
font-size:0.875rem;
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 0.75rem center;
border:1px solid #c8d8e4;
border-radius:4px;
color:#333;
cursor:pointer;
font-size:0.875rem;
padding:0.4rem 2.25rem 0.4rem 0.75rem;
transition:border-color 0.2s;
}
.ir-year-select:focus{
border-color:#1f8fc6;
outline:none;
}

/* ページナビ */
.ir-pagenavi{
margin-top:2.5rem;
text-align:center;
}

/* IR記事ページ */
.ir-post{
margin:0 0 4rem;
}
.ir-post-header{
border-bottom:2px solid #e0e8ef;
margin-bottom:3rem;
padding-bottom:1.5rem;
}
.ir-post-meta{
align-items:center;
display:flex;
gap:0 1rem;
margin-bottom:1rem;
}
.ir-post-ttl{
font-size:1.75rem;
font-weight:700;
line-height:1.5;
margin:0;
}

/* 記事本文 */
.ir-post-body{
line-height:1.9;
}
.ir-post-body p{
font-size:1rem;
margin-bottom:1.5em;
}
.ir-post-body h2{
background:#f0f7fb;
border-left:4px solid #1f8fc6;
font-size:1.375rem;
font-weight:700;
line-height:1.4;
margin:3rem 0 1.5rem;
padding:.875rem 1.25rem;
}
.ir-post-body h3{
border-bottom:2px solid #1f8fc6;
font-size:1.1875rem;
font-weight:700;
line-height:1.4;
margin:2.5rem 0 1.25rem;
padding-bottom:.5rem;
}
.ir-post-body h4{
font-size:1.0625rem;
font-weight:700;
line-height:1.5;
margin:2rem 0 1rem;
padding-left:1em;
position:relative;
}
.ir-post-body h4::before{
background:#1f8fc6;
content:'';
height:1em;
left:0;
margin-top:.25em;
position:absolute;
top:0;
width:4px;
}
.ir-post-body h5{
color:#1f8fc6;
font-size:1rem;
font-weight:700;
line-height:1.5;
margin:1.75rem 0 .75rem;
}
.ir-post-body ul,
.ir-post-body ol{
margin:0 0 1.5em 1.5em;
}
.ir-post-body li{
font-size:1rem;
margin-bottom:.5em;
}
.ir-post-body img{
height:auto;
max-width:100%;
}

/* prev / next / 戻るナビ */
.ir-post-nav{
border-top:1px solid #e0e8ef;
margin-top:3rem;
padding-top:2rem;
}
.ir-post-nav-inner{
align-items:stretch;
display:flex;
flex-direction:row;
gap:0 1rem;
justify-content:space-between;
}
.ir-nav-prev,
.ir-nav-next{
flex:1;
max-width:38%;
}
.ir-nav-prev a,
.ir-nav-next a{
border:1px solid #e0e8ef;
border-radius:4px;
color:#333;
display:flex;
flex-direction:column;
gap:.375rem 0;
height:100%;
padding:1rem 1.25rem;
text-decoration:none;
transition:border-color .2s, background .2s;
}
.ir-nav-prev a:hover,
.ir-nav-next a:hover{
background:#f5f8fb;
border-color:#1f8fc6;
}
.ir-nav-prev a{
align-items:flex-start;
}
.ir-nav-next a{
align-items:flex-end;
text-align:right;
}
.ir-nav-label{
color:#1f8fc6;
font-size:.75rem;
font-weight:700;
letter-spacing:.05em;
}
.ir-nav-ttl{
font-size:.875rem;
line-height:1.5;
}
.ir-nav-disabled{
color:#bbb;
display:block;
font-size:.75rem;
padding:1rem 0;
}
.ir-nav-back{
align-items:center;
display:flex;
flex-shrink:0;
justify-content:center;
margin-top:0;
width:20%;
}
.ir-nav-back-link{
border:1px solid #1f8fc6;
border-radius:4px;
color:#1f8fc6;
font-size:.8125rem;
padding:.625rem 1rem;
text-align:center;
text-decoration:none;
transition:background .2s, color .2s;
}
.ir-nav-back-link:hover{
background:#1f8fc6;
color:#fff;
}

/*------------------------------------------------------------
	CSR
------------------------------------------------------------*/

/* ヒーロー */
.csr-hero{
align-items:center;
background:linear-gradient(135deg, #1a5c3a 0%, #2d9e6b 100%);
color:#fff;
display:flex;
height:180px;
position:relative;
}
.csr-hero-inner{
margin:0 auto;
padding:0;
position:relative;
width:1100px;
z-index:1;
}
.csr-hero-sub{
font-size:.75rem;
letter-spacing:.15em;
margin:0 0 .5rem;
opacity:.8;
}
.csr-hero-ttl{
font-size:2rem;
font-weight:700;
margin:0;
}

/* 共通インナー */
.csr-inner{
margin:0 auto;
width:1100px;
}

/* リードセクション */
.csr-lead-section{
padding:4rem 0;
}
.csr-lead{
color:#555;
font-size:1.125rem;
line-height:1.9;
text-align:center;
}

/* CSRセクション */
.csr-section{
padding:5rem 0;
}
.csr-section--alt{
background:#f7f9fb;
}

/* CSRブロック */
.csr-block{
align-items:flex-start;
display:flex;
gap:0 5rem;
}
.csr-block-head{
flex-shrink:0;
width:260px;
}
.csr-block-en{
color:#2d9e6b;
font-size:1rem;
font-weight:700;
letter-spacing:.15em;
margin:0 0 .5rem;
}
.csr-block-ttl{
border-left:4px solid #2d9e6b;
font-size:2.5rem;
font-weight:700;
line-height:1.4;
margin:0 0 1.5rem;
padding-left:1rem;
white-space:nowrap;
}
.csr-block-body{
flex:1;
}
.csr-block-body p{
color:#444;
font-size:1rem;
line-height:1.9;
margin:0;
}

/*------------------------------------------------------------
	お問い合わせ
------------------------------------------------------------*/

/* ヒーロー */
.inquiry-hero{
align-items:center;
background:linear-gradient(135deg, #2c3e50 0%, #4a6880 100%);
color:#fff;
display:flex;
height:180px;
position:relative;
}
.inquiry-hero-inner{
margin:0 auto;
padding:0;
position:relative;
width:1100px;
z-index:1;
}
.inquiry-hero-sub{
font-size:.875rem;
letter-spacing:.15em;
margin:0 0 .5rem;
opacity:.8;
}
.inquiry-hero-ttl{
font-size:2rem;
font-weight:700;
margin:0;
}

/* セクション */
.inquiry-section{
padding:4rem 0 7rem;
}
.inquiry-inner{
margin:0 auto;
width:1100px;
}

/* ステップナビ */
.inquiry-steps{
align-items:center;
display:flex;
justify-content:center;
margin-bottom:3.5rem;
}
.inquiry-step{
background:#f0f4f7;
border:1px solid #d0d8e0;
border-radius:3px;
color:#999;
font-size:.875rem;
font-weight:700;
letter-spacing:.05em;
min-width:120px;
padding:.5rem 1.5rem;
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:48px;
}

/* メッセージボックス */
.inquiry-message{
margin:0 auto 2.5rem;
max-width:760px;
text-align:center;
}
.inquiry-message.is-error .inquiry-result-icon{
color:#c0392b;
}
.inquiry-message-ttl{
align-items:center;
display:flex;
gap:.75rem;
justify-content:center;
margin-bottom:1rem;
}
.inquiry-message-ttl .inquiry-result-icon{
font-size:1.5rem;
margin-bottom:0;
}
.inquiry-message-ttl .inquiry-result-ttl{
margin-bottom:0;
}

/* フォームラッパー */
.inquiry-form-wrap{
margin:0 auto;
max-width:760px;
}

/* フォーム行（dl/dt/dd構造） */
.mw_wp_form dl{
border-bottom:1px solid #e8eef4;
display:flex;
gap:.5rem 2rem;
margin:0;
padding:1.5rem 0;
}
.mw_wp_form dl:first-of-type{
border-top:1px solid #e8eef4;
}
.mw_wp_form dt{
align-items:flex-start;
color:#333;
display:flex;
flex-shrink:0;
font-size:.9375rem;
font-weight:700;
gap:0 .5rem;
padding-top:.3rem;
width:200px;
}
.mw_wp_form dd{
flex:1;
margin:0;
}

/* 必須バッジ */
.mw_wp_form .req{
background:#c0392b;
border-radius:3px;
color:#fff;
font-size:.6875rem;
font-weight:700;
letter-spacing:.03em;
padding:2px 6px;
}

/* テキスト入力 */
.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:1rem;
padding:.625rem .875rem;
transition:border-color .2s;
width:100%;
}
.mw_wp_form input[type="text"]:focus,
.mw_wp_form input[type="email"]:focus,
.mw_wp_form input[type="tel"]:focus{
border-color:#2c3e50;
outline:none;
}

/* テキストエリア */
.mw_wp_form textarea{
border:1px solid #ccd5de;
border-radius:4px;
color:#333;
font-size:1rem;
height:180px;
padding:.625rem .875rem;
resize:vertical;
transition:border-color .2s;
width:100%;
}
.mw_wp_form textarea:focus{
border-color:#2c3e50;
outline:none;
}

/* ラジオ・チェックボックス */
.mw_wp_form input[type="radio"],
.mw_wp_form input[type="checkbox"]{
accent-color:#2c3e50;
height:1rem;
margin-right:.375rem;
width:1rem;
position:relative;
top:2px;
}
.mwform_radio_field label,
.mwform_check_field label{
align-items:center;
cursor:pointer;
display:inline-flex;
font-size:.9375rem;
gap:0 .375rem;
margin-right:1.5rem;
}

/* バリデーションエラー */
.mw_wp_form .error{
color:#c0392b;
display:block;
font-size:.8125rem;
margin-top:.375rem;
}

/* 送信・戻るボタン */
.form-btn{
align-items:center;
display:flex;
gap:1rem;
justify-content:center;
list-style:none;
margin-top:3.5rem;
padding:0;
}
.back-btn input[type="submit"]{
background:#fff;
border:1px solid #ccd5de;
border-radius:4px;
color:#666;
cursor:pointer;
font-size:1rem;
font-weight:700;
letter-spacing:.1em;
padding:1rem 2.5rem;
transition:background .2s, border-color .2s;
}
.back-btn input[type="submit"]:hover{
background:#e8ecf0;
border-color:#2c3e50;
}
.sbm-btn input[type="submit"]{
background:#2c3e50;
border:none;
border-radius:4px;
color:#fff;
cursor:pointer;
font-size:1rem;
font-weight:700;
letter-spacing:.1em;
padding:1rem 3rem;
transition:background .2s;
}
.sbm-btn input[type="submit"]:hover{
background:#4a6880;
}

/* 送信完了・エラー */
.inquiry-result-icon{
color:#2c3e50;
font-size:3rem;
margin-bottom:1.5rem;
}
.inquiry-result-ttl{
font-size:1.5rem;
font-weight:700;
margin-bottom:1.5rem;
}
.inquiry-result-body{
color:#555;
font-size:1rem;
line-height:1.75;
margin-bottom:2.5rem;
}
.inquiry-result-link{
border:1px solid #2c3e50;
border-radius:4px;
color:#2c3e50;
display:inline-block;
font-size:.9375rem;
font-weight:700;
padding:.75rem 2.5rem;
text-decoration:none;
transition:background .2s, color .2s;
}
.inquiry-result-link:hover{
background:#2c3e50;
color:#fff;
}

/*------------------------------------------------------------
	SINGLE
------------------------------------------------------------*/

/*------------------------------------------------------------
	FOOTER
------------------------------------------------------------*/
footer{
padding:4.25rem 0 10rem;
position:relative;
background:linear-gradient(to right, rgba(233, 236, 247, 0.3), rgba(255, 255, 255, 0.3));
}

footer::after{
content:'';
width:242px;
height:202px;
background:url(img/dots-footer.svg) no-repeat;
background-size:242px;
position:absolute;
bottom:0;
right:0;
z-index:2;
pointer-events: none;
}


.footer-inner{
width:1100px;
margin:0 auto;
}

.f-col-1{
display:flex;
justify-content:space-between;
padding:0 0 5rem;
border-bottom:1px solid #555;
}
.foot-logo{
width:346px;
margin:0;
}
.foot-navi{
width:656px;
display:flex;
justify-content:space-between;
}




.fnavi dt{
margin:0 0 2rem;
}
.fnavi dt a{
color:#333;
font-weight:500;
}
.fnavi dt a:hover{
color:#09f;
}

.fnavi dd a{
color:#333;
}

.fnavi-sub li a:hover{
text-decoration:underline;
}



.f-col-2{
display:flex;
justify-content:space-between;
align-items:center;
padding:2rem 0 0;
text-align:left;
}
.copy{
font-size:.75rem;
line-height:1;
}
.copy-navi{
width:auto;
font-size:.75rem;
line-height:1;
display:flex;
}
.copy-navi li a{
padding:0 1.5rem;
border-right:1px solid #333;
color:#333;
}
.copy-navi li:last-child a{
border:0;
}
.copy-navi li a:hover{
text-decoration:underline;
}








/*------------------------------------------------------------
	ABOUT 1
------------------------------------------------------------*/



/* 共通 */
.container {
  margin: 0 auto;
  padding: 0;
  width: 1100px;
}

main#page{
margin:94px 0 0;
}



.section {
  padding: 80px 0;
}

.a1-section-title {
  font-size: 2rem;
  margin-bottom: 32px;
  padding-bottom: 16px;
}

/* KV */
.a1-kv {
background:url(img/kv-about.webp) no-repeat center center;
background-size:cover;
  align-items: center;
 height: 500px;
overflow: hidden;
position:relative;
}

.a1-kv::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;         /* 全体を覆うサイズ */
  height: 100%;
  background-color: rgba(217, 232, 255, .85); /* #dcedff のアルファ0.9 */
  z-index: 1;

  /* 斜めにぶった切る設定 */
  /* 左上(0,0)、右上(60%,0)、右下(40%,100%)、左下(0,100%) の順 */
  clip-path: polygon(0 0, 60% 0, 40% 100%, 0 100%);
  
  pointer-events: none; /* 重なっている背景がクリックを邪魔しないように */
}


.a1-kv-inner {
  margin: 0 auto;
  padding: 0;
  width: 1100px;
display:flex;
justify-content:center;
flex-direction:column;
position:relative;
z-index:10;
}

.kv-en {
  font-size: 1.875rem;
  margin-bottom: .5rem;
}

.kv-title {
  font-size: 2.625rem;
  margin-bottom: 1.5rem;
}

.kv-tagline {
  font-size: 2.25rem;
}

/* ステートメント */
.statement-label {
  font-size: 1.75rem;
margin:0 0 12px;
}



.a1-company,
.a1-history{
padding-bottom:0 !important;
}


/* 会社概要 */
.co-row {
  flex-direction: row;
}
.co-row:first-child{
border-top:1px solid #e0e8ef;
}

.co-row:first-child dt{
padding:24px;
font-size:1rem;
}


.co-table dt {
  flex-shrink: 0;
  margin-bottom: 0;
  width: 180px;
background:#f5f8fb;
  padding: 24px;
font-size:1rem;
}
.co-table dd{
padding:24px;
}

.officers th{
font-weight:normal;
text-align:right;
padding:0 2em 0 0;
}



p.office-label {
  color: #1f8fc6;
  font-weight: 700;
font-size:1.125rem;
margin:0 0 8px !important;
}


/* 沿革 */
.a1-timeline {
  padding-left: 50px;
}

.a1-timeline::before {
  bottom: 8px;
  left: 12px;
  top: 10px;
  width: 2px;
}

.a1-timeline li {
  flex-wrap: nowrap;
  gap: 0 30px;
  margin-bottom: 32px;
}

.a1-timeline li::before {
  height: 14px;
  left: -44px;
  top: 6px;
  width: 14px;
}

.tl-date {
  width: 160px;
}

/* グループ紹介 */
.group-dots {
  gap: 6px;
  margin-bottom: 24px;
}

.group-dots span {
  height: 8px;
  width: 8px;
}

.group-link {
  font-size: 0.875rem;
  padding-top: 16px;
}

.group-note {
  font-size: 0.75rem;
  margin-top: 12px;
}

/*------------------------------------------------------------
	ABOUT 2
------------------------------------------------------------*/

/* ステートメント */
.a2-statement {
  overflow: hidden;
  position: relative;
}

.a2-statement-lead {
  font-size: 2rem;
  margin: 0 0 40px;
}
.a2-statement-body{
margin-bottom:40px;
}

.a2-statement-body p {
  font-size: 1rem;
  line-height: 2;
}



.typo{
font-size:10rem;
line-height:1;
font-weight:900;
color:#f5f8fb;
position:absolute;
bottom:0;
right:0;
z-index:-1;
}

.sign-wrap{
position:absolute;
bottom:-10rem;
right:0;
}
.sign-photo{
float: right;
margin:0 0 0 2rem;
shape-image-threshold: 0.1;
shape-margin: 3.5rem;
shape-outside: url(img/ceo.png);
width:240px;
}
.sign{
align-items:center;
display:flex;
font-size:1.35rem;
gap:0 1em;
justify-content:flex-end;
line-height:2;
text-align:right;
}
.sign-post{
font-size:1rem;
line-height:2;
}



/* MVV */

.purpose-label {
  font-size: 1.75rem;
margin:0 0 12px;
}


.a2-mvv-item {
display: flex;
gap:0;
margin-bottom: 32px;
flex-direction:column;
flex-wrap:wrap;
}

.a2-mvv-head {
  flex-shrink: 0;
  gap: 24px;
  margin-bottom: 0;
}

.a2-mvv-en {
  font-size: 2.5rem;
}

.a2-mvv-ja {
  font-size: 1.125rem;
line-height:1;
}

.a2-mvv-body {
  flex: 1;
  font-size: 1.25rem;
}

/* グループ紹介 */
.a2-group-item {
  border-radius: 8px;
  flex: 1;
  flex-direction: column;
}

.a2-group-list {
  flex-direction: row;
  gap: 30px;
  margin-bottom: 12px;
}

.a2-group-body {
  padding: 32px 24px 20px;
background:#fff;
}

.a2-group-logo {
  height: 80px;
  margin-bottom:0;
}

.a2-group-logo img {
  max-height: 60px;
  max-width: 160px;
}

.group-desc {
  font-size: .875rem;
  margin-bottom: 16px;
min-height:4.6rem;
}

.group-desc-adj {
  font-size: .875rem;
  margin-bottom: 16px;
min-height:4.6rem;
}

/* 組織図・体制図 */
.org-chart-pc img,
.org-chart-sp img {
  height: auto;
  width: 100%;
}

/*------------------------------------------------------------
	利用規約・プライバシーポリシー
------------------------------------------------------------*/

/* ヒーロー */
.legal-hero {
  align-items: center;
  background: linear-gradient(135deg, #2c3749 0%, #4a6080 100%);
  color: #fff;
  display: flex;
  height: 180px;
  position: relative;
}
.legal-hero-inner {
  margin: 0 auto;
  padding: 0;
  position: relative;
  width: 1100px;
  z-index: 1;
}
.legal-hero-sub {
  font-size: .875rem;
  letter-spacing: .15em;
  margin: 0 0 .5rem;
  opacity: .8;
}
.legal-hero-ttl {
  font-size: 2rem;
  font-weight: 700;
  margin: 0;
}

/* セクション */
.legal-section {
  padding: 5rem 0 7rem;
}
.legal-inner {
  margin: 0 auto;
  width: 1100px;
}

/* リード・制定日 */
.legal-lead {
  font-size: 1rem;
  line-height: 1.9;
  margin-bottom: 2.5rem;
}
.legal-date {
  color: #666;
  font-size: .875rem;
  margin-bottom: 3rem;
  text-align: right;
}

/* 各条文 */
.legal-article {
  border-bottom: 1px solid #e0e8ef;
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
}
.legal-article:last-child {
  border-bottom: none;
  margin-bottom: 0;
}
.legal-article-ttl {
  border-left: 4px solid #4a6080;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 1.25rem;
  padding: .5rem 0 .5rem 1rem;
}
.legal-article p {
  font-size: 1rem;
  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: 1.5em;
}
.legal-article li {
  font-size: 1rem;
  line-height: 1.9;
  margin-bottom: .5em;
}
.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: .5rem;
  margin-top: 1.5rem;
  padding: 1.5rem 2rem;
}
.legal-contact-box p {
  font-size: 1rem;
  line-height: 1.9;
  margin-bottom: .5em;
}
.legal-contact-box p:last-child {
  margin-bottom: 0;
}

/* サブ見出し（条文内カテゴリー） */
.legal-article-sub-ttl {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.75;
  margin-bottom: .5em;
  margin-top: 1.5em;
}

/* 注釈・補足テキスト */
.legal-note {
  color: #666;
  font-size: .875rem;
  line-height: 1.75;
  margin-top: .5em;
}

/* 共同利用 定義リスト */
.legal-dl dt {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.75;
  margin-top: 1.25em;
}
.legal-dl dd {
  font-size: 1rem;
  line-height: 1.9;
  margin-left: 1em;
}

/* 番号付きリスト（申請手続） */
.legal-ol {
  list-style: decimal;
  margin: 0 0 1em 1.5em;
}
.legal-ol li {
  font-size: 1rem;
  line-height: 1.9;
  margin-bottom: .5em;
}
.legal-ol li:last-child {
  margin-bottom: 0;
}

/* プレースホルダー（準備中） */
.legal-placeholder {
  color: #999;
  font-style: italic;
}

/*------------------------------------------------------------
	サイトマップ
------------------------------------------------------------*/

/* セクション */
.sitemap-section {
padding: 5rem 0 7rem;
}
.sitemap-inner {
margin: 0 auto;
width: 1100px;
}

/* グリッド */
.sitemap-grid {
display: grid;
gap: 3rem 2.5rem;
grid-template-columns: repeat(3, 1fr);
}

/* グループ */
.sitemap-group {
border-top: 2px solid #1f8fc6;
padding-top: 1.25rem;
}

.sitemap-group-dammy{
}


/* グループタイトル */
.sitemap-group-ttl {
font-size: 1.0625rem;
font-weight: 700;
line-height: 1.5;
margin-bottom: .875rem;
}
.sitemap-group-ttl a {
color: #333;
}
.sitemap-group-ttl a:hover {
color: #1f8fc6;
}
.sitemap-group-ttl--small {
color: #666;
font-size: .9375rem;
font-weight: 700;
}

/* リスト */
.sitemap-list {
display: flex;
flex-direction: column;
gap: .5rem 0;
}
.sitemap-list li {
padding-left: 1rem;
position: relative;
}
.sitemap-list li::before {
border-bottom: 1px solid #1f8fc6;
border-right: 1px solid #1f8fc6;
content: '';
height: 6px;
left: 0;
margin-top: -3px;
position: absolute;
top: .95em;
transform: rotate(-45deg);
width: 6px;
}
.sitemap-list li a {
color: #555;
font-size: .9375rem;
line-height: 1.75;
}
.sitemap-list li a:hover {
color: #1f8fc6;
text-decoration: underline;
}

/*------------------------------------------------------------
	RECRUIT
------------------------------------------------------------*/

/* ヒーロー */
.recruit-hero{
align-items:center;
background:linear-gradient(135deg, #1565a8 0%, #1f8fc6 100%);
color:#fff;
display:flex;
height:180px;
position:relative;
}
.recruit-hero-inner{
margin:0 auto;
padding:0;
position:relative;
width:1100px;
z-index:1;
}
.recruit-hero-sub{
font-size:.75rem;
letter-spacing:.15em;
margin:0 0 .5rem;
opacity:.8;
}
.recruit-hero-ttl{
font-size:2rem;
font-weight:700;
margin:0;
}

/* アナウンス */
.recruit-announce{
padding:80px 0 100px;
}
.recruit-inner{
margin:0 auto;
width:1100px;
}
.recruit-announce-txt{
color:#333;
font-size:1.25rem;
font-weight:700;
line-height:1.75;
text-align:center;
}
.recruit-announce-sub{
color:#666;
font-size:.9375rem;
line-height:1.75;
margin-top:1rem;
text-align:center;
}

/*------------------------------------------------------------
	END PC LAYOUT CSS
------------------------------------------------------------*/
}