@charset "UTF-8";
/* ============================================== */
/*                    共通設定                    */
/* ============================================== */
:root{
    /* 共通 ========================== */
    /* 色 */
    --txtColor: #010c1c;
    --txtColor_sub01: #44494c;
    --txtColor_sub02: #7d8489;
    --txtColor_sub03: #000a1e;
    --mainBlue: #00388e;
    --mainRed: #990000;
    --bg_gray01: #eeeeee;
    --bg_gray02: #7d8489;
    --bg_gray03: #d8e0e3;
    --bg_figGray: #e0e0e0;
    --bg_figBlue: #00388e80;
    /* グラデーション */
    --gradient_blue: linear-gradient(to right, var(--mainBlue), transparent);
    --gradient_green: linear-gradient(to right, #38A881, transparent);
    /* フォント */
    --ff_notoSans: "Noto Sans JP", serif;
    --ff_roboto: "Roboto Condensed", sans-serif;
    /* 高さ、幅、余白など */
    --headerHeight: 110px;
    --breadcrumbHeight: 40px;
    --sectionPadding: 90px;
    --hvr_bright: brightness(1.15);
    /* コーポレート ========================== */
    /* 色 */
    --comp_skyblue: #bfdef7;
    --comp_txtColor: #000a1e;
    --c_ir: #990000;
    --c_sustain: #00b99c;
    /* フォント */
    --c_recruit: #36aaea;
    --ff_notoSerif: "Noto Serif JP", serif;
}
html:has(body){margin-top: 0 !important;}
body{
    position: relative;
    z-index: 0;
    overflow-x: hidden;
    color: var(--txtColor);
    font-family: var(--ff_notoSans);
    font-size: 16px;
    line-height: 1.75;
    word-break: break-all;
    counter-reset: number 0;
}
body:has(.ham.open){overflow: hidden;}
figure,
img{
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}
a{transition: .3s;}
a:hover{opacity: 0.5;}
a[href*=tel]{pointer-events: none;}
textarea{resize: none;}
.inner{
    width: 100%;
    max-width: 1420px;
    padding: 0 50px;
    margin: 0 auto;
}
.flex{display: flex;}
.pc_cont{display: block !important;}
.sp_cont{display: none !important;}
/* ============================================== */
/*                 追加CSSクラス                  */
/* ============================================== */
.mt0  {margin-top: 0 !important;}
.mt10 {margin-top: 10px !important;}
.mt20 {margin-top: 20px !important;}
.mt30 {margin-top: 30px !important;}
.mt40 {margin-top: 40px !important;}
.mt50 {margin-top: 50px !important;}
.mt60 {margin-top: 60px !important;}
.mt70 {margin-top: 70px !important;}
.mt80 {margin-top: 80px !important;}
.mt90 {margin-top: 90px !important;}
.mt100{margin-top: 100px !important;}
.mb0  {margin-bottom: 0 !important;}
.mb10 {margin-bottom: 10px !important;}
.mb20 {margin-bottom: 20px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb40 {margin-bottom: 40px !important;}
.mb50 {margin-bottom: 50px !important;}
.mb60 {margin-bottom: 60px !important;}
.mb70 {margin-bottom: 70px !important;}
.mb80 {margin-bottom: 80px !important;}
.mb90 {margin-bottom: 90px !important;}
.mb100{margin-bottom: 100px !important;}
.wp-block-image figure{width: initial;}
/* ============================================== */
/*            スクロールアニメーション            */
/* ============================================== */
.scrollin {
    visibility: hidden;
    opacity: 0;
    transition: 1.2s;
}
.scrollin.bottom {transform: translateY(30px);}
.scrollin.left {transform: translateX(-30px);}
.scrollin.right {transform: translateX(30px);}
.scrollin.active,
.scrollin.bottom.active,
.scrollin.left.active,
.scrollin.right.active {
    visibility: visible;
    opacity: 1;
    transform: translate(0,0);
}
/* -----------------------------------------------------------
template
----------------------------------------------------------- */
main{
    margin: var(--headerHeight) auto 0;
    overflow-x: hidden;
}
/* ============================================== */
/*                    ヘッダー                    */
/* ============================================== */
.header_cont{
    position: fixed;
    z-index: 10;
    inset: 0 0 auto;
}
header{
    position: relative;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff;
    height: var(--headerHeight);
    padding: 0 40px;
}
header > .flex{
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
/* header left */
.logo{
    width: 280px;
    height: 44px;
}
/* header right */
header .header_r{
    font-size: 18px;
    font-weight: 500;
}
header .header_r ul{
    display: flex;
    column-gap: .8em;
}
header .header_r ul li{
    cursor: pointer;
    transition: 0.3s;
}
header .header_r ul li a{transition: 0s;}
header .header_r ul li:hover,
header .header_r ul li.menu_active,
header .header_r ul li.current{color: var(--mainBlue);}
header .header_r ul li a:hover{opacity: 1;}


/* コーポレート
===============================================*/
/* header right */
.cp-header .header_r > p{margin-bottom: 8px;}
.cp-header .header_r > p a{
    position: relative;
    z-index: 0;
    display: flex;
    align-items: center;
    column-gap: 6px;
    color: var(--mainRed);
    line-height: 1.3;
    width: fit-content;
    margin-inline: auto 0;
}
.cp-header .header_r > p a:hover{
    opacity: 1;
    color: var(--mainBlue);
}
.cp-header .header_r > p a::before{
    content: '';
    display: block;
    width: 1.5em;
    height: auto;
    aspect-ratio: 28 / 20.4;
    background: currentColor;
    -webkit-mask: url(../img/common/ico/contact.svg) no-repeat center / contain;
            mask: url(../img/common/ico/contact.svg) no-repeat center / contain;
}

/* ============================================== */
/*                    メガメニュー                    */
/* ============================================== */
.menu_wrapper .menu_cont{
    --bgHeight: 320px;
    position: fixed;
    z-index: 9;
    top: var(--headerHeight);
    background: var(--mainBlue);
    color: #fff;
    width: 100%;
    padding: 60px 0;
    /* clip-path: inset(0 0 100%); */
    transform: translateY(calc(-120% - var(--bgHeight)));
    transition: transform .6s;
}
.menu_wrapper .menu_cont.is_open{
    /* clip-path: inset(0); */
    transform: translateY(0);
}
.menu_wrapper .menu_cont .menu_bg{
    position: absolute;
    z-index: 0;
    inset: auto 0 calc(var(--bgHeight) * -1);
    margin: auto;
    content: '';
    width: 100vw;
    height: var(--bgHeight);
    background: linear-gradient(to bottom, #000, transparent);
    /* pointer-events: none; */
    opacity: 0.6;
}
.menu_wrapper .menu_cont .inner{max-width: 1060px;}
.menu_wrapper .menu_cont .flex{
    justify-content: center;
    column-gap: 90px;
}
.menu_wrapper .menu_cont .flex > picture{max-width: 320px;}
.menu_wrapper .menu_cont .flex > .menu_nav{
    width: 100%;
    max-width: 570px;
}

.menu_wrapper .menu_cont .menu_ttl{
    font-weight: 500;
    font-size: 24px;
    line-height: 1.4;
    padding-bottom: .9em;
    margin-bottom: .9em;
    border-bottom: 2px solid currentColor;
    width: 100%;
}
.menu_wrapper .menu_cont .menu_nav > ul > li{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    column-gap: 1.9em;
    font-size: 18px;
    width: 100%;
}
.menu_wrapper .menu_cont .menu_nav > ul > li:not(:last-of-type){margin: 0 0 .2em;}
.menu_wrapper .menu_cont .menu_nav > ul > li > p{
    min-width: 4em;
    min-width: fit-content;
    font-weight: 500;
}
.menu_wrapper .menu_cont .menu_nav > ul > li > ul{
    width: calc(100% - 4em);
    font-weight: 400;
}
.menu_wrapper .menu_cont .menu_nav > ul > li > ul li{line-height: 1.6;}

/* ============================================== */
/*                 パンくずリスト                  */
/* ============================================== */
.breadcrumbs{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    height: var(--breadcrumbHeight);
    background: rgba(255, 255, 255, .6);
    padding: 0 45px;
    color: var(--txtColor);
}
.breadcrumbs > span{
    position: relative;
    z-index: 0;
    display: inline-block;
    font-size: 14px;
    font-weight: 500;
    margin-right: 1.3em;
}
.breadcrumbs > span:last-of-type{margin: 0;}
.breadcrumbs > span a:hover,
.breadcrumbs span.current-item{
    opacity: 1;
    color: var(--mainBlue);
}
.breadcrumbs span:has(> .current-item){
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 35vw;
}
.breadcrumbs > span:not(:last-of-type)::before{
    position: absolute;
    z-index: 0;
    inset: 0 -1.1em 0 auto;
    margin: auto;
    content: '／';
    display: block;
}
/* ============================================== */
/*              ハンバーガーメニュー              */
/* ============================================== */
.ham {
    position: relative;
    z-index: 10;
    /* inset: 45px 45px auto auto; */
    width: 55px;
    height: 55px;
    border: 1px solid #c8c8c8;
    transition: .3s;
    cursor: pointer;
    display: none;
}
.ham span,
.ham::before,
.ham::after {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0;
    display: block;
    width: 25px;
    height: 2px;
    border-radius: 1px;
    background: #333;
    transition: .5s;
}
.ham::before,
.ham::after{content: '';}
.ham::before{top: calc(50% - 10px);}
.ham::after{top: calc(50% + 10px);}
.ham.open span{opacity: 0;}
.ham.open::before {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
}
.ham.open::after {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
}
/* ============================================== */
/*     ナビゲーション（ヘッダー、フッター共通）      */
/* ============================================== */
nav{
    padding: 60px 0;
    background: var(--bg_gray01);
}
.header_cont + nav{
    position: fixed;
    z-index: 8;
    top: var(--headerHeight);
    width: 100%;
    clip-path: inset(0 0 100%);
    transition: .4s;
    display: none;
}
.header_cont:has(.ham.open) + nav{clip-path: inset(0);}
nav .inner > ul{
    display: flex;
    justify-content: center;
    align-items: flex-start;
    column-gap: 20px;
}
nav .inner > ul > li {flex: 1;}
nav .inner > ul > li > p,
nav .inner > ul > li  li > p{
    font-size: 16px;
    color: var(--txtColor);
    padding: 0.4em 1em 0 0;
    border-top: 1px solid currentColor;
    line-height: 1.4;
}
nav .inner > ul > li > p{margin: 0 0 0.2em;}
nav .inner > ul > li li > p.ac{margin-top: 0.875em;}
nav .inner > ul > li li > p:not(.ac){margin: 0 0 1em;}
nav .inner > ul > li li{
    font-size: 14px;
    color: var(--txtColor_sub01);
}
nav .inner > ul > li li.third{
    font-size: 13px;
    color: var(--txtColor_sub02);
    padding-left: 0.6em;
}
nav .inner > ul li a:hover{
    opacity: 1;
    color: var(--mainBlue);
}
/* ac */
nav .inner > ul > li > .ac{
    position: relative;
    z-index: 0;
}
nav .inner > ul > li > .ac:not(:first-of-type){margin-top: 1em;}
nav .inner > ul > li > .ac > span{
    position: absolute;
    z-index: 1;
    inset: -100% 0 -100% auto;
    margin: auto;
    display: none;
    width: auto;
    height: 100%;
    aspect-ratio: 1;
    cursor: pointer;
}
nav .inner > ul > li > .ac > span::before{
    position: absolute;
    z-index: 0;
    inset: -100% -100% -100%;
    margin: auto;
    content: '';
    width: 18px;
    height: auto;
    aspect-ratio: 18 / 10;
    background: var(--txtColor);
    -webkit-mask: url(../img/common/ico/arw_menu.svg) no-repeat center / contain;
            mask: url(../img/common/ico/arw_menu.svg) no-repeat center / contain;
    transform: rotateX(180deg);
    transition: 0.3s;
}
nav .inner > ul > li > .ac > span.ac_open::before{transform: rotateX(0);}
nav .inner > ul > li > ul{display: block;}
nav .inner > ul > li > ul:not(:has(p)){display: block;}
.header_cont + nav + .nav_bg{
    position: fixed;
    z-index: 8;
    top: 0;
    content: '';
    width: 100%;
    height: 100%;
    background: rgba(51, 51, 51, .5);
    opacity: 0;
    visibility: hidden;
    transition: 0.3s;
    display: none;
}
.header_cont:has(.ham.open) + nav + .nav_bg{
    opacity: 1;
    visibility: visible;
}
/* ============================================== */
/*                    フッター                    */
/* ============================================== */
footer{
    position: relative;
    z-index: 1;
    background: #fff;
}
footer nav li a{font-feature-settings: "halt";}
/* サブメニュー */
footer .f_middle{
    color: #fff;
    background: var(--mainBlue);
    font-size: 14px;
    height: fit-content;
}
footer .f_middle ul{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 80px;
}
footer .f_middle ul li{
    padding-inline: 1em;
    border-left: 1px solid currentColor;
    line-height: 1.1;
}
footer .f_middle ul li:first-of-type{border: none;}
/* コピーライト */
footer .f_bottom{
    text-align: center;
    padding: 23px 0 20px;
}
footer .f_bottom .logo{margin: 0 auto 20px;}
footer .f_bottom p{
    font-size: 14px;
    line-height: 1;
    color: var(--mainRed);
    letter-spacing: 0.1em;
}
/* pagetop */
.pagetop{
    position: fixed;
    z-index: 7;
    inset: auto 28px 28px auto;
}
.pagetop a{
    position: relative;
    z-index: 0;
    font-size: 0;
    display: block;
    width: 42px;
    height: auto;
    aspect-ratio: 1;
    background: var(--mainRed);
}
.pagetop a::before{
    position: absolute;
    z-index: 1;
    inset: -100%;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    content: '';
    width: 26px;
    height: 19px;
    background: url(../img/common/ico/pagetop.svg) no-repeat center / contain;
}

/* -----------------------------------------------------------
common_parts
----------------------------------------------------------- */
/* キービジュアル */
.kv_wrapper{
    position: relative;
    z-index: 0;
}
.kv_wrapper::before{
    position: absolute;
    z-index: -1;
    inset: -100% auto -100% 0;
    margin: auto;
    content: '';
    width: 65%;
    min-width: 750px;
    height: 100%;
    background: var(--gradient_blue);
}
.kv_wrapper:has(> picture),
.kv_wrapper:has(> picture) .kv_sub{background: transparent;}
/* KV */
.kv_wrapper > picture,
.kv_sub picture{
    position: absolute;
    z-index: -2;
    inset:  -100%;
    margin: auto;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.kv_wrapper > picture img,
.kv_sub picture img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.home .kv_home video,
.kv_wrapper > picture img,
.kv_sub picture img{
    transition: 1.8s .1s;
    transform: scale(1.05);
    filter: blur(8px);
}
.is_loaded .home .kv_home video,
.is_loaded .kv_wrapper > picture img,
.is_loaded .kv_sub picture img{
    transform: scale(1);
    filter: blur(0);
}
.kv_sub{
    position: relative;
    z-index: 0;
    --kvHeight: 500px;
    color: #fff;
    background: var(--mainBlue);
    padding-top: var(--breadcrumbHeight);
    min-height: var(--kvHeight);
}
.kv_sub:not(:has(.en)){--kvHeight: 250px;}
.kv_sub .inner{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    min-height: var(--kvHeight);
    /* min-height: calc(var(--kvHeight) - var(--breadcrumbHeight)); */
}
.kv_sub .flex{
    justify-content: flex-start;
    align-items: center;
    column-gap: 25px;
    width: 100%;
}
.kv_sub .flex figure{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 160px;
    height: auto;
    aspect-ratio: 1;
    background: var(--bg_figGray);
}
.kv_sub .en{
    font-family: var(--ff_roboto);
    font-weight: 600;
    font-size: 36px;
    line-height: 1.4;
    margin: 0 0 .3em;
}
.page .kv_sub .en{font-weight: 400;}
.kv_sub h1,
.kv_sub .kv_ttl{
    font-weight: 700;
    font-size: 48px;
    line-height: 1.4;
}
.kv_sub .cap{
    font-size: 14px;
    color: var(--txtColor_sub01);
}
/* キービジュアル - 事業ページ */
.page_business:not(.service) .kv_sub .flex > div{width: calc(100% - 160px);}

/* ボタン */
.btn{
    text-align: center;
    width: fit-content;
    min-width: 110px;
    min-height: 30px;
    border: 1px solid currentColor;
    padding: 0 .2em;
}

/* その他の事業 */
.other_business{padding: var(--sectionPadding) 0;}
.other_business h2{
    margin: 0 0 1.3em;
    padding-bottom: .9em;
    border-bottom: 1px solid currentColor;
}
.other_business ul{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 35px 22px;
}
.other_business ul:not(:last-of-type){margin: 0 0 75px;}
.other_business ul li{width: calc((100% / 3) - 15px);}
.other_business ul.other li{
    width: 100%;
    pointer-events: none;
}
.other_business ul li a{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    column-gap: 25px;
}
.other_business ul li a p{
    font-weight: 700;
    font-size: 21px;
    color: var(--txtColor_sub01);
    transition: .3s;
}
.other_business ul li a figure{
    background: var(--bg_figGray);
    max-width: 80px;
    height: auto;
    aspect-ratio: 1;
    transition: .3s;
}
.other_business ul li a:hover,
.other_business ul li.current a{opacity: 1;}
.other_business ul li.current a{pointer-events: none;}
.other_business ul li a:hover figure,
.other_business ul li.current a figure{background: var(--bg_figBlue);}
.other_business ul li a:hover p,
.other_business ul li.current a p{color: var(--mainBlue);}
/* サービス回遊セクション */
.crosslink_srv{
    color: #fff;
    padding: calc(var(--sectionPadding) * 1.1) 0 var(--sectionPadding);
}
.crosslink_srv .ttl_cont{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    column-gap: 30px;
    margin: 0 0 30px;
}
.page_service .crosslink_srv .ttl_cont .ttl *,
.page_service .crosslink_srv .ttl_cont ul *{
    pointer-events: none;
    color: var(--txtColor_sub01);
}
.page_service .crosslink_srv .ttl_cont ul li::before{background: var(--txtColor_sub01);}
.crosslink_srv .ttl_cont .ttl a{
    display: block;
    width: 300px;
}
.crosslink_srv .ttl_cont .ttl .en{
    font-family: var(--ff_roboto);
    font-weight: 400;
    font-size: 60px;
    line-height: 1.4;
}
.crosslink_srv .ttl_cont .ttl h2{
    font-weight: 700;
    font-size: 21px;
}
.crosslink_srv .ttl_cont ul{width: calc(100% - 300px - 30px);}
.crosslink_srv .ttl_cont ul li{
    position: relative;
    z-index: 0;
    font-weight: 700;
    font-size: 21px;
    padding: 0 0 0 1.8em;
}
.crosslink_srv .ttl_cont ul li::before{
    position: absolute;
    z-index: 0;
    inset: .4em auto auto 0;
    content: '';
    width: 0.81em;
    height: auto;
    aspect-ratio: 17 / 20;
    background: #fff;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.crosslink_srv .ttl_cont + p,
.crosslink_srv .ttl_cont .ttl .cap{
    font-weight: 500;
    font-size: 14px;
    margin: 0 0 35px;
}
.crosslink_srv .inner > ul,
.crosslink_srv > ul{
    display: flex;
    justify-content: space-between;
    width: 100%;
}
.crosslink_srv .inner > ul li,
.crosslink_srv > ul li{
    font-weight: 700;
    font-size: 21px;
    width: 24.2%;
    max-width: 320px;
}
.crosslink_srv > ul li a{display: block;}
.crosslink_srv > ul li a:hover{opacity: 1;}
.crosslink_srv > ul li figure{
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 0 0 10px;
    transition: 0.3s;
}
.crosslink_srv > ul li a:hover figure{filter: var(--hvr_bright);}
.crosslink_srv > ul li figure img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.crosslink_srv > ul li p:nth-of-type(1){margin: 0 0 2px;}
.crosslink_srv > ul li p:nth-of-type(2){
    font-weight: 400;
    font-size: 14px;
}
.crosslink_srv > ul li a p{transition: 0.3s;}
.crosslink_srv > ul li a:hover p{opacity: .5;}
/* -----------------------------------------------------------
subpage
----------------------------------------------------------- */
/* 共通設定
============================================ */
.editor_contents{
    padding: var(--sectionPadding) 0;
    color: var(--txtColor_sub01);
}
hr + .editor_contents{padding-top: 0;}
.editor_contents .inner > *:first-child{margin-top: 0 !important;}
.editor_contents .inner > *:last-child{margin-bottom: 0 !important;}
/* 見出し */
.editor_contents h2,
.editor_contents h3,
.editor_contents h4,
.editor_contents h5,
.editor_contents h6{line-height: 1.4;}
/* 見出し - h2 */
.editor_contents h2,
main section h2,
.other_business h2{
    position: relative;
    z-index: 0;
    font-weight: 700;
    font-size: 36px;
    line-height: 1.4;
    color: var(--mainBlue);
    padding-left: 1.1em;
}
.editor_contents h2::before,
main section h2::before,
.other_business h2::before{
    position: absolute;
    z-index: 0;
    inset: .35em auto auto 0;
    content: '';
    width: .8em;
    height: auto;
    aspect-ratio: 1;
    background: currentColor;
}
.editor_contents h2{margin: .3em 0 .5em;}
.editor_contents h2.h2_privacy{
    padding-left: 0;
    font-size: 18px;
}
.editor_contents h2.h2_privacy::before{display: none;}
/* 見出し - h3 */
.editor_contents h3{
    font-weight: 700;
    font-size: 24px;
    color: var(--mainRed);
    margin: 1em 0 .6em;
}
/* 見出し - h4 */
.editor_contents h4{
    font-weight: 700;
    font-size: 21px;
    margin: 1em 0 .6em;
}
/* 見出し - h5 */
.editor_contents h5{
    font-weight: 700;
    font-size: 18px;
    margin: 1em 0 .6em;
}
/* 見出し - h6 */
.editor_contents h6{
    font-weight: 700;
    margin: 1em 0 .6em;
}
/* edit ----------- */
.editor_contents.edit h2,
.editor_contents.edit h3,
.editor_contents.edit h4,
.editor_contents.edit h5,
.editor_contents.edit h6{margin: 2em 0 0.6em;}
.editor_contents.edit .wp-block-table table tr td:nth-of-type(1){font-weight: 400;}
.editor_contents.edit table td ul:last-of-type{margin-bottom: 0;}
/* /edit ----------- */
/* link list */
.editor_contents .link_list{margin: 15px 0;}
.editor_contents .link_list li a{
    text-decoration: underline;
    text-underline-offset: 2px;
}
/* dl_wrapper */
.editor_contents .dl_wrapper{margin: 30px 0 50px;}
.editor_contents .dl_wrapper dl dt{
    display: inline-block;
    font-weight: 700;
}
.editor_contents .dl_wrapper dl dt::after{
    content: ':';
    display: inline-block;
    margin-inline: .3em .1em;
}
.editor_contents .dl_wrapper dl dd{display: inline;}
/* カラム */
.wp-block-columns{
    display: flex;
    column-gap: 45px;
}
.wp-block-columns > div > *:nth-child(1){margin-top: 0 !important;}
.wp-block-columns > div > *:nth-last-child(1){margin-bottom: 0 !important;}
/* カラム - 2 / 1(ベース) */
.wp-block-columns.two_one > div > *:first-child{margin-top: 0 !important;}
.wp-block-columns.two_one > div{
    flex-basis: initial !important;
    flex-grow: initial !important;
}
.wp-block-columns.two_one > div:nth-of-type(1){width: calc((100% / 3) * 2);}
.wp-block-columns.two_one > div:nth-of-type(2){width: calc((100% / 3) * 1);}
/* カラム - 1 / 1 */
.wp-block-columns.half > div{width: 50%;}
h3 + .wp-block-columns{margin-top: calc(var(--sectionPadding) / 2);}
/* テーブル */
.editor_contents .wp-block-table td,
.editor_contents .wp-block-table th{border: none;}
.editor_contents figure:has(table){
    margin: 45px auto;
    padding-bottom: 1px;
}
.editor_contents figure table{width: 100%;}
.editor_contents figure table tr{border-bottom: 1px solid var(--bg_gray02);}
.editor_contents figure table tr:first-of-type{border-top: 3px solid var(--bg_gray02);}
.editor_contents .wp-block-table table tr td{
    /* --hWidth: 150px; */
    --hWidth: 25%;
    position: relative;
    z-index: 0;
    min-height: 64px;
    padding: 1.05em 1em 1.05em 1.375em;
    /* vertical-align: middle; */
}
.editor_contents .wp-block-table.table_normal table tr td{width: auto !important;}
.editor_contents .wp-block-table table tr td[rowspan]{vertical-align: middle;}
.editor_contents .wp-block-table table tr td a{color: var(--txtColor_sub01);}
.editor_contents .wp-block-table table tr td:nth-of-type(1){
    font-weight: 700;
    width: var(--hWidth);
}
.editor_contents .wp-block-table table tr td:not(:first-of-type)::before{
    position: absolute;
    z-index: 0;
    inset: -100% auto -100% 0;
    margin: auto;
    content: '';
    width: 1px;
    height: 100%;
    background: repeating-linear-gradient(180deg, #000000, #000000 1px, transparent 1px, transparent 9px) repeat-y right top / 1px 100%;
}
.editor_contents .wp-block-table table tr td:nth-of-type(2){width: calc(100% - var(--hWidth));}
.page_profile .editor_contents .wp-block-table table tr td:nth-of-type(2) dl{--dtWidth: 130px;}
.page_history .editor_contents .wp-block-table table tr td:nth-of-type(2) dl{--dtWidth: 35px;}
.editor_contents .wp-block-table table tr td:nth-of-type(2) dl{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    column-gap: 1.5em;
}
/* .editor_contents .wp-block-table table tr td:nth-of-type(2) dl:not(:last-of-type){margin: 0 0 0.7em;} */
.editor_contents .wp-block-table table tr td:nth-of-type(2) dl dt{width: var(--dtWidth);}
.editor_contents .wp-block-table table tr td:nth-of-type(2) dl dd{width: calc(100% - 1.5em - var(--dtWidth));}

.editor_contents .wp-block-table.yoko table tr:nth-of-type(1) td{
    font-weight: 400;
    background: var(--bg_gray03);
}
.editor_contents .wp-block-table.tate table tr td:nth-of-type(1){background: var(--bg_gray03);}
.simplebar-content:after, .simplebar-content:before{display: none !important;}
/* ファイル */
.editor_contents .wp-block-file{
    display: flex;
    flex-wrap: wrap;
    gap: .5em 1em;
    padding: 10px 15px;
    background: #eee;
}
.editor_contents .wp-block-file a{font-size: 16px;}
.editor_contents .wp-block-file .wp-block-file__button{
    background: var(--mainBlue);
    color: #fff;
    margin: 0;
    padding: .1em 1.3em .2em;
    text-decoration: none;
}
.editor_contents .wp-block-file .wp-block-file__button:hover{opacity: 0.5;}

/* マップ */
.editor_contents .map_cont{
    margin: calc(var(--sectionPadding) * 0.9) 0 0;
}
.editor_contents .map_cont p{
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 1em;
}
.editor_contents .map_cont div{
    position: relative;
    z-index: 0;
    padding-bottom: 75%;
    height: 0;
    overflow: hidden;
    border: 1px solid var(--txtColor_sub02);
}
.editor_contents .map_cont div iframe{
    position: absolute;
    z-index: 0;
    inset: 0 auto auto 0;
    width: 100%;
    height: 100%;
}
/* リスト */
.editor_contents.edit ul,
.editor_contents.edit ol{
    margin: .6em 0 2.5em;
}
.editor_contents.edit ul li,
.editor_contents.edit ol li{
    position: relative;
    z-index: 0;
    padding-left: 1.3em;
}
.editor_contents.edit ul li::before,
.editor_contents.edit ol li::before{
    position: absolute;
    z-index: 0;
    inset: 0 auto auto 0;
    color: var(--mainBlue);
    font-weight: 700;
}
.editor_contents.edit ul li::before{content: '・';}
.editor_contents.edit ol li::before{
    counter-increment: number 1;
    content: counter(number) ".";
}
/* 背景色ありエリア */
.bg_blue{
    padding: var(--sectionPadding) 0;
    background: var(--mainBlue) !important;
}
.bg_blue *{color: #fff !important;}
/* その他 */
/* .editor_contents p{margin: .5em 0 1em;} */
.editor_contents p{margin: .5em 0 1.5em;}
.editor_contents a,
.editor_contents .wp-block-table table tr td a{
    color: var(--mainBlue);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: transparent;
}
.editor_contents a:hover,
.editor_contents .wp-block-table table tr td a:hover{
    opacity: 1;
    text-decoration-color: currentColor;
}
.editor_contents a:has(img):hover{opacity: 0.5;}
.editor_contents a[target="_blank"]:not(:has(img))::after{
    content: '';
    display: inline-block;
    width: .95em;
    height: auto;
    aspect-ratio: 1;
    background: url(../img/common/ico/blank.svg) no-repeat center / contain;
    margin: .05em .2em -.1em;
}
.editor_contents .wp-block-separator,
article hr{
    width: 100%;
    margin: var(--sectionPadding) 0;
    border-top: 1px solid #c8c8c8;
}
.editor_contents .wp-block-separator.h2_hr,
article hr.h2_hr{
    margin: calc(var(--sectionPadding) / 2) 0;
    border-color: var(--mainBlue);
}
.editor_contents .indent_box{padding-left: 50px;}
.editor_contents .indent_box .indent_box{padding-left: 25px;}


/* 事業領域
============================================ */
.page_business .editor_contents{background: var(--bg_gray03);}
/* crosslink_srv */
body:has(.page_business) .crosslink_srv{background: var(--bg_gray02);}
body:has(.page_business) .crosslink_srv .inner > ul li a{
    display: flex;
    min-height: 76px;
    justify-content: center;
    align-items: center;
    padding: .4em;
    border: 1px solid #fff;
    line-height: 1.4;
}
body:has(.page_business) .crosslink_srv .inner > ul li.current a,
body:has(.page_business) .crosslink_srv .inner > ul li a:hover{
    opacity: 1;
    background: var(--txtColor_sub01);
}
body:has(.page_business) .crosslink_srv .inner > ul li.current a{pointer-events: none;}

/* 事業領域 - サービス
============================================ */
/* KV - about_srv */
.page_business.service .about_srv{
    position: relative;
    z-index: 0;
    padding: var(--sectionPadding) 0;
}
.page_business.service .about_srv::before{
    position: absolute;
    z-index: -1;
    inset: -100%;
    margin: auto;
    content: '';
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, .6);
}
/* 共通 */
.page_business.service .about_srv h2,
.page_business.service .editor_contents h2,
.page_business.service .msg h2{margin: 0 0 1em;}

/* editor contents */
.page_business.service .editor_contents{background: #fff;}
/* メッセージ */
.page_business.service .msg{
    color: #fff;
    background: var(--mainBlue);
    padding: var(--sectionPadding) 0;
}
.page_business.service .msg h2{color: #fff;}
/* crosslink_srv */
.page_business .crosslink_srv h2{
    color: #fff;
    padding-left: 0;
}
.page_business .crosslink_srv h2::before{display: none;}
/* 扉共通
============================================ */
.page_portal .kv_wrapper::before{display: none;}

/* 事業領域 - 扉（portal01）
============================================ */
/* KV */
.portal01.page_business.service .kv_sub{background: rgba(255, 255, 255, .3);}
.portal01 .kv_sub .en{
    font-size: 72px;
    color: var(--mainBlue);
    line-height: 1;
    margin: 0 0 .15em;
}
.portal01 .kv_sub h1{
    color: var(--txtColor_sub03);
    font-size: 72px;
    margin: 0 0 0.3em;
}
/* about_srv */
.portal01.page_business.service .about_srv::before{
    z-index: -2;
    background: var(--mainBlue);
    opacity: 0.25;
}
.portal01.page_business.service .about_srv::after{
    position: absolute;
    z-index: -1;
    inset: -100%;
    margin: auto;
    content: '';
    width: 100%;
    height: 100%;
    background: var(--gradient_blue);
    opacity: 0.85;
}
.portal01.page_business.service .about_srv h2{color: #fff;}
.portal01.page_business.service .crosslink_srv h2{
    margin-bottom: 0;
    padding-left: 0;
}
.portal01.page_business.service .crosslink_srv h2::before{display: none;}
/* crosslink_srv */
.portal01.page_business .crosslink_srv{
    background: transparent !important;
    padding: 0 !important;
}
.portal01.page_business .crosslink_srv h2{color: var(--mainBlue);}
/* other_business */
.portal01.page_business.service .other_business .ttl_cont{
    align-items: center;
    color: var(--txtColor_sub01);
    margin: 0 0 calc(var(--sectionPadding) * 0.72);
    padding: 0 0 calc(var(--sectionPadding) * 0.61);
    border-bottom: 1px solid var(--mainBlue);
}
.portal01.page_business.service .other_business .ttl_cont .ttl{color: var(--mainBlue);}
.portal01.page_business.service .other_business .ttl_cont .ttl h2{
    border: none;
    padding: 0;
}
.portal01.page_business.service .other_business .ttl_cont > p{
    font-size: 14px;
}

/* 企業情報 - 社長挨拶
============================================ */
.page_message .message_area{background: var(--bg_gray03);}
.page_message .message_area .inner{max-width: 1470px;}
.page_message .message_area .flex{
    justify-content: center;
    align-items: center;
    column-gap: 10px;
}
.page_message .message_area h2{
    font-weight: 700;
    font-size: min(36px, 2.3vw);
}
.page_message .message_area figure{
    width: 43%;
    max-width: 600px;
}
.page_message .editor_contents p{margin-bottom: 1.5em;}
.editor_contents .pres_sign{
    max-width: 260px;
    margin: 70px 0 0 auto;
}
.editor_contents .pres_sign p{margin: 0 0 .5em;}
/* 企業情報 - CPフィロソフィー
============================================ */
.page_philosophy{
    position: relative;
    z-index: 0;
    padding-bottom: var(--sectionPadding);
}
.page_philosophy .editor_contents.edit{
    background: rgba(255, 255, 255, 0.6);
    padding: calc(var(--sectionPadding) * 0.8) 0 calc(var(--sectionPadding) * 0.9);
}
.page_philosophy .editor_contents.edit .inner > .philo_copy,
.page_philosophy .editor_contents.edit .inner > .philo_copy p{
    font-family: var(--ff_notoSerif);
    color: var(--mainBlue);
}
.page_philosophy .editor_contents.edit .inner > .philo_copy{margin: 0 0 45px;}
.page_philosophy .editor_contents h2{
    font-weight: 600;
    padding-left: 0;
    font-feature-settings: "halt";
}
.page_philosophy .editor_contents h2::before{display: none;}
.page_philosophy .editor_contents h2:nth-of-type(1){
    font-size: 60px;
    line-height: 1.2;
    margin: 0 0 0.1em;
}
.page_philosophy .editor_contents h2:nth-of-type(2){
    font-size: 24px;
    margin: 0 0 0.6em;
}
.page_philosophy .editor_contents.edit .inner .philo_copy p{font-weight: 700;}
.page_philosophy .editor_contents p{color: #000;}

/* グループ拠点一覧
============================================ */
/* group_anc */
.page_group .group_anc,
.page_group .group_anc ul{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    margin-block: 0;
}
.page_group .group_anc{margin: 0 0 calc(var(--sectionPadding) * 0.75);}
.page_group .group_anc ul{column-gap: 1.5em;}
.page_group .group_anc p{
    margin: 0;
    margin-right: 1.5em;
    padding-right: 1.5em;
    border-right: 1px solid var(--txtColor_sub02);
    line-height: 1.1;
}
.page_group .group_anc p a,
.page_group .group_anc ul li a{
    font-weight: 700;
    font-size: 18px;
    color: var(--txtColor_sub02);
    text-decoration: none;
    font-feature-settings: "halt";
}
.page_group .group_anc ul li a::after{
    content: '▼';
    display: inline-block;
    margin: 0 0 0 0.3em;
}
.page_group .group_anc p a:hover,
.page_group .group_anc p.current a,
.page_group .group_anc ul li a:hover,
.page_group .group_anc ul li.current a{color: var(--mainBlue);}
/* コンテンツ */
.page_group .editor_contents h2{
    margin-bottom: 1.65em;
    padding-bottom: 0.15em;
    border-bottom: 3px solid currentColor;
}
.page_group .editor_contents h3{
    padding-bottom: 0.3em;
    border-bottom: 1px solid var(--txtColor_sub02);
}
.page_group .editor_contents h3:has(+ .indent_box){margin-bottom: 0;}
/* 拠点リスト */
.page_group .editor_contents .indent_box ul{margin: 0 0 var(--sectionPadding);}
.page_group .editor_contents .indent_box ul li a,
.page_group .editor_contents .indent_box ul li:not(:has(a)){
    position: relative;
    z-index: 0;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    column-gap: 2em;
    padding: 25px 25px 30px 35px;
    text-decoration: none;
}
.page_group .editor_contents .indent_box ul li a:hover{background: var(--bg_gray03);}
.page_group .editor_contents .indent_box ul li a::after,
.page_group hr + .editor_contents .indent_box ul li::before,
.page_group .editor_contents .indent_box ul li:not(:has(a))::after{
    position: absolute;
    z-index: 0;
    inset: auto auto 0 0;
    content: '';
    width: 100%;
    height: 1px;
    background: repeating-linear-gradient(40deg, #000000, #000000 1px, transparent 1px, transparent 9px) repeat-x right top / 100% 1px;
}
.page_group hr + .editor_contents .indent_box ul li::before{inset: 0 auto auto 0;}

.page_group .editor_contents .indent_box ul li h1,
.page_group .editor_contents .indent_box ul li h4{
    color: var(--mainBlue);
    font-weight: 700;
    font-size: 26px;
    margin: 0 0 0.4em;
    line-height: 1.4;
}
.page_group .editor_contents .indent_box ul li div{width: calc(100% - 123px);}
.page_group .editor_contents .indent_box ul li div p{color: var(--txtColor_sub01);}
.page_group .editor_contents .indent_box ul li p{
    color: #a0a0a0;
    margin: 0;
}
.page_group .editor_contents .indent_box ul li div p span{
    display: inline-block;
    margin: 0 0.7em 0 0;
}
.page_group .editor_contents .indent_box ul li .btn{width: 130px;}

/* グループ拠点 下層
============================================ */
.page_group.page_sub article > .inner {padding-bottom: var(--sectionPadding);}
.page_group.page_sub .group_anc ul li a::after{content: '＞';}
.page_group.page_sub .editor_contents .wp-block-table table tr td:nth-of-type(1){width: 25%;}
.page_group.page_sub .editor_contents .wp-block-table table tr td:nth-of-type(2),
.page_group.page_sub .editor_contents .wp-block-table table tr td:nth-of-type(3){width: 37.5%;}
.page_group.page_sub hr{margin-top: 0;}
.page_group.page_sub article > .inner > .btn,
hr + .btn{
    margin: 0 auto;
    width: fit-content;
    color: var(--txtColor_sub02);
    border: none;
}
.page_group.page_sub article > .inner > .btn a,
hr + .btn a{
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: .5em;
    font-size: 18px;
    min-width: 200px;
    min-height: 50px;
    border: 1px solid var(--txtColor_sub02);
    text-decoration: none;
}
.page_group.page_sub article > .inner > .btn a:hover,
hr + .btn a:hover{
    opacity: 1;
    color: #fff;
    background: var(--mainBlue);
}
.page_group.page_sub article > .inner > .btn a::before,
hr + .btn a::before{
    content: '＜';
    display: inline-block;
}

/* 企業情報 扉
============================================ */
/* KV */
.portal02 .kv_sub{--shadow: drop-shadow(0 0 10px #093f00);}
.portal02 .kv_sub .en{
    font-weight: 400;
    font-size: 72px;
    opacity: 0.5;
    filter: var(--shadow);
    margin: 0 0 -.05em;
}
.portal02 .kv_sub h1{
    font-size: 72px;
    filter: var(--shadow);
    margin: 0 0 0.3em;
}
.portal02 .kv_sub .cap{color: #fff;}
/* card_links */
.portal02 .editor_contents{padding-top: 0;}
.portal02 .editor_contents .bg_area {background: var(--comp_skyblue);}
.portal02 .editor_contents .bg_area .inner{
    padding: 0;
    max-width: 1600px;
}
.portal02 .card_links > section{
    /* max-width: 1400px; */
    margin-bottom: 0 !important;
}
/* .portal02 .card_links > section:nth-of-type(2n-1){margin-inline: auto 0;} */
/* .portal02 .card_links > section:nth-of-type(2n){margin-inline: 0 auto;} */
.portal02 .card_links > section a{
    position: relative;
    z-index: 0;
    justify-content: flex-end;
    text-decoration: none;
}
.portal02 .card_links > section a:hover{opacity: 0.6;}
.portal02 .card_links > section a figure{
    position: absolute;
    z-index: -1;
    inset: -100%;
    margin: auto;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.portal02 .card_links > section a > div{padding: 90px 0;}
.portal02 .card_links > section a > div .ttl::before{
    width: 20vw;
    max-width: unset;
    pointer-events: none;
}
.portal02 .card_links > section a > div .ttl .en{
    font-weight: 400;
    word-break: auto-phrase;
    line-height: 1.1;
}
.portal02 .card_links > section a .desc p{
    color: var(--comp_txtColor);
}
/* 奇数 */
.portal02 .card_links > section:nth-of-type(2n-1) a{flex-direction: row-reverse;}
/* 偶数 */
.portal02 .card_links > section:nth-of-type(2n) a{flex-direction: row;}
/* section_links */
.section_links{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: var(--sectionPadding) 0;
    gap: 60px 50px;
}
.section_links > section{width: calc(50% - 25px);}
.section_links > section a{
    --sidePadding: 30px;
    display: block;
    background: var(--comp_skyblue);
    text-decoration: none;
}
.section_links > section a:hover{opacity: 0.6;}
.section_links > section a picture,
.section_links > section a figure{
    width: 100%;
    height: auto;
    aspect-ratio: 630 / 324;
}
.section_links > section a .flex{
    justify-content: space-between;
    align-items: flex-end;
    column-gap: 1em;
    background: var(--mainBlue);
    color: #fff;
    padding: 20px var(--sidePadding);
}
.section_links > section a .flex h2{
    color: #fff;
    font-size: 24px;
    margin: 0;
    padding-left: 0;
    border-bottom: none;
}
.section_links > section a .flex h2::before{display: none;}
.section_links > section a .flex .btn{margin: 0;}
.section_links > section a > p{
    color: var(--comp_txtColor);
    min-height: 5.4em;
    margin: 0;
    padding: 15px var(--sidePadding);
}
.portal02 .card_links + ul{
    display: flex;
    max-width: 1600px;
    margin: 0 auto;
    column-gap: 2em;
    padding: 1.2em 0 1.2em 50px;
}
.portal02 .card_links + ul li{padding-left: 0;}
.portal02 .card_links + ul li::before{display: none;}
.portal02 .card_links + ul li a{
    font-weight: 700;
    font-size: 21px;
    font-feature-settings: "halt";
    text-decoration: none;
}
.portal02 .card_links + ul li a:hover{opacity: 0.5;}
.portal02 .card_links + ul li a::after{
    content: '＞';
    display: inline-block;
    margin: 0 0 0 .2em;
}

/* IR情報
============================================ */
/* kv */
.page_ir.page_portal .kv_wrapper::before{display: block;}
.page_ir.portal02 .kv_sub .en,
.page_ir.portal02 .kv_sub h1{filter: none;}
.page_ir.portal02 .news_cont.ir{
    margin: 0;
    padding: var(--sectionPadding) 0;
}
.news_cont.ir dl dd a img,
.news_cont.ir dl dd a span{display: inline-block;}
.news_cont.ir dl dd a img{
    margin: 0 0.3em 4px;
    width: 0.8em;
    height: auto;
    aspect-ratio: 13 / 14;
    vertical-align: middle;
}
/* IR Cross */
.ir_cross{
    background: url(../img/page/ir/bg_ircross.jpg) no-repeat center / cover;
    margin-top: var(--sectionPadding);
    padding: var(--sectionPadding) 0;
}
.ir_cross .box_wrapper{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 30px;
    margin: 0 auto calc(var(--sectionPadding) / 3 * 2 );
}
.ir_cross .box_wrapper > div{
    background: #eee;
    width: 32%;
}
.ir_cross .box_wrapper > div > div{padding: 0.6rem 1.5rem;}
.ir_cross .box_wrapper > div > div:nth-of-type(1){
    background: var(--bg_gray03);
    display: flex;
    justify-content: flex-start;
    align-items: center;
    min-height: 65px;
    color: var(--mainBlue);
}
.ir_cross .box_wrapper > div > div:nth-of-type(2){
    background: var(--bg_gray01);
    padding-bottom: 1.5em;
}
.ir_cross .box_wrapper > div > div:nth-of-type(1) p{
    font-weight: 700;
    font-size: 21px;
}
.ir_cross .ir_bottom{
    background: var(--bg_gray03);
    padding: 1.2em;
}
.ir_cross .ir_bottom ul{
    display: flex;
    justify-content: center;
    align-items: center;
}
.ir_cross .ir_bottom ul li{
    line-height: 1.4;
    border-left: 1px solid currentColor;
    padding: 0 1em;
}
.ir_cross .ir_bottom ul li:last-of-type{border-right: 1px solid currentColor;}
/* 扉ページ */
.page_ir .section_links{padding: 0;}
.page_ir .section_links > section a{background: var(--bg_gray01);}
.page_ir .section_links > section a > div:nth-of-type(2){padding: 15px var(--sidePadding) var(--sidePadding);}
.page_ir .section_links > section a p{
    margin-top: 0;
    color: var(--txtColor);
}
.page_ir .section_links > section a .btn{
    margin: 0 0 0 auto;
    color: #fff;
    background: var(--mainBlue);
}
/* 下層ページ */
.page_ir.page_sub .group_anc ul li{
    position: static;
    padding: 0;
}
.page_ir.page_sub .ac{margin: 0 0 var(--sectionPadding);}
.page_ir.page_sub .ac h2{
    font-size: 24px;
    margin: 0;
    padding: 0 3.5em .5em 0;
    border-color: var(--mainRed);
    cursor: pointer;
}
.page_ir.page_sub .ac h2::before,
.page_ir.page_sub .ac h2::after{
    position: absolute;
    z-index: 0;
    inset: 0 3% 0 auto;
    margin: auto;
    content: '';
    width: 18px;
    height: 2px;
    background: var(--mainBlue);
    transition: 0.3s;
}
.page_ir.page_sub .ac h2::after{transform: rotate(90deg);}
.page_ir.page_sub .ac.open h2::after{transform: rotate(180deg);}
.page_ir.page_sub .ac .news_cont{margin: 0;}
.page_ir.page_sub .ac:not(.open) .news_cont{display: none;}
/* 自動連携系 */
.page_ir.automation .irc_financetable tr td,
.page_ir.automation .irc_financetable tr th{
    color: var(--txtColor) !important;
    border-color: #00388e !important;
}
.page_ir.automation .irc_financetable tr td{background: #fff !important;}
.page_ir.automation .irc_financetable tr th{background: var(--bg_gray03) !important;}
/* 関連企業の決算公示 */

.page_group.page_ir .group_anc ul li.current a{pointer-events: none;}
body:has(.page_kouji) .breadcrumbs > span:nth-last-of-type(2){display: none;}
.page_kouji .irc_ac{
    display: none;
    margin: 0 !important;
}
.page_kouji.page_dus #page1 + .irc_ac{display: block;}
.page_kouji.page_dic #page2 + .irc_ac{display: block;}
.page_kouji.page_mrt #page3 + .irc_ac{display: block;}
.page_kouji.page_miz #page4 + .irc_ac{display: block;}
/* サステナビリティ
============================================ */
.portal02.sustainability .kv_sub h1 {filter: none;}
.page_portal.portal02.sustainability .kv_wrapper::before,
.page_sub.page_sustainability .kv_wrapper::before{
    display: block;
    background: var(--gradient_green);
}
.portal02.sustainability .editor_contents .bg_area {
    background: #E5F8F5;
}
.portal02.sustainability .editor_contents .sustainability_heading {
    padding: 80px 50px;
    text-align: center;
}
.portal02.sustainability .editor_contents .sustainability_heading h2 {
    font-size: 42px;
    margin: 0 auto 1em;
    padding: 0;
}
.portal02.sustainability .editor_contents .sustainability_heading h2::before {display: none;}
.portal02.sustainability .editor_contents .sustainability_heading p {
    font-size: 20px;
    line-height: 2;
    margin: 0;
}
.portal02.sustainability .card_links > section a{min-height: 600px;}
.portal02.sustainability .card_links > section a > div .ttl h2 {
  font-size: 36px;
  margin: 0 0 0.75em;
}
.portal02.sustainability .card_links > section a > div .ttl .btn {margin: 0;}

.portal02.sustainability .card_links > section:nth-of-type(2n-1) a > div .card_inner {
    width: fit-content;
    /* min-width: 430px; */
    margin-left: auto;
    margin-right: clamp(50px, 8vw, 150px);
}
.portal02.sustainability .card_links > section:nth-of-type(2n) a > div .card_inner {margin-left: 50px;}
.portal02.sustainability .bottom{
    justify-content: space-between;
    column-gap: 60px;
    padding-top: 2em;
}
.portal02.sustainability .bottom > section{
    max-width: 615px;
    flex: 1;
}
.portal02.sustainability .bottom section h2{
    border-bottom: 2px solid currentColor;
    padding-bottom: .35em;
}
.portal02.sustainability .bottom section p{font-size: 1.125em;}
.portal02.sustainability .bottom section figure{
    max-width: 440px;
    margin: 0 auto 1em;
}
.portal02.sustainability .bottom section figure a{
    text-decoration: none;
    color: var(--txtColor_sub01);
    text-align: center;
}
.portal02.sustainability .bottom section figure figcaption{
    position: relative;
    z-index: 0;
    margin: 0.7em 0 0;
    font-size: 1.125em;
}
.portal02.sustainability .bottom section figure figcaption::after{
    content: '';
    display: inline-block !important;
    width: .95em;
    height: auto;
    aspect-ratio: 1;
    background: url(../img/common/ico/pdf.svg) no-repeat center / contain;
    margin: 0 0 -.1em;
}
.portal02.sustainability .bottom section 
/* 下層 */
.page_sub.page_sustainability .heading_anc {text-align: center;}
.page_sub.page_sustainability .heading_anc p {
    font-size: 42px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--mainBlue);
    margin: 0 auto 1em;
}
.page_sub.page_sustainability .heading_anc ul {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  margin: 0 auto 80px;
}
.page_sub.page_sustainability .heading_anc ul li {
  height: 160px;
  padding: 0;
}
.page_sub.page_sustainability.page_policy .heading_anc ul li {width: 31.5%;}
.page_sub.page_sustainability.page_materiality .heading_anc ul li {width: 23.5%;}
.page_sub.page_sustainability .heading_anc ul li a {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--mainBlue);
  color: #FFF;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  padding: 20px;
  text-decoration: none;
  transition: 0.5s;
}
.page_sub.page_sustainability .heading_anc ul li a:hover {opacity: 0.5;}
.page_sub.page_sustainability .heading_anc ul li::before {display: none;}
.page_sub.page_sustainability .heading_anc ul li a::before {
  position: static;
  order: 1;
  width: 0.65em;
  height: auto;
  aspect-ratio: 1 / 1;
  content: "";
  border-right: solid 2px #FFFFFF;
  border-bottom: solid 2px #FFFFFF;
  transform: rotate(45deg);
}
.page_sub.page_sustainability .editor_contents h3 {color: var(--txtColor_sub01);}
.page_sub.page_sustainability .editor_contents h3 span {
  color: var(--mainBlue);
  margin: 0 0.25em 0 0;
}
.materiality_process {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  margin: 40px auto 0;
}
.materiality_process dl {
  position: relative;
  z-index: 0;
  width: 31%;
  background: var(--bg_gray01);
}
.materiality_process dl dt {
  font-size: 24px;
  font-weight: 700;
  color: var(--txtColor_sub01);
  padding: 20px;
  background: var(--bg_gray03);
  line-height: 1.5;
}
.materiality_process dl dt span {
  display: block;
  color: var(--mainBlue);
}
.materiality_process dl dd {padding: 20px;}
.materiality_process dl::after {
  position: absolute;
  display: block;
  content: "";
  width: 5%;
  height: 12%;
  aspect-ratio: 5 / 6;
  background: var(--mainBlue);
  clip-path: polygon(0 0,100% 50% ,0 100%);
  margin: auto;
  inset: 0 auto 0 103%;
}
.materiality_process dl:nth-last-of-type(1)::after {display: none;}

.page_sub.page_sustainability .editor_contents #anc03 + figure table th {
  background: var(--bg_gray03);
  padding: 1em 1.5em;
}
.page_sub.page_sustainability .editor_contents #anc03 + figure table th + th {width: 300px;}
.page_sub.page_sustainability .editor_contents #anc03 + figure table td + td {color: var(--mainBlue);}
.page_sub.page_sustainability .editor_contents .sdgs_flex {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
  margin: 0 auto 50px;
}
.page_sub.page_sustainability .editor_contents .sdgs_flex > section {
  width: 49%;
  margin: 0 0 2%;
  background: var(--bg_gray01);
}
.page_sub.page_sustainability .editor_contents .sdgs_flex section > div {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  background: var(--mainBlue);
  min-height: 200px;
}
.page_sub.page_sustainability .editor_contents .sdgs_flex section > div h3 {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  width: calc(100% - 200px);
  padding: 50px 10px 20px 20px;
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 400;
  text-align: left;
  margin: 0;
}
.page_sub.page_sustainability .editor_contents .sdgs_flex section > div h3 span {color: #FFFFFF;}
.page_sub.page_sustainability .editor_contents .sdgs_flex section > div h3 span span {
  display: block;
  font-size: 1.75em;
}
.page_sub.page_sustainability .editor_contents .sdgs_flex section > div > div {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  flex-wrap: wrap;
  width: 200px;
}
.page_sub.page_sustainability .editor_contents .sdgs_flex section > div > div img {
  display: block;
  width: 100px;
}
.page_sub.page_sustainability .editor_contents .sdgs_flex > section section {padding: 20px;}
.page_sub.page_sustainability .editor_contents .sdgs_flex > section section h4 {
  font-size: 16px;
  color: var(--mainBlue);
  margin: 0 0 0.5em;
}
.page_sub.page_sustainability .editor_contents .sdgs_flex > section section ul {margin: 0;}
.page_sub.page_sustainability .editor_contents .sdgs_flex + p {
  font-size: 20px;
  line-height: 2;
  font-weight: 700;
  text-align: center;
}

/* ひと目で解る大東港運
============================================ */
/* inner */
.page_aboutus .inner_s{max-width: 1000px;}
.page_aboutus .inner_m{max-width: 1190px;}
/* KV */
.page_aboutus .kv_wrapper::before{display: none;}
.page_aboutus .kv_sub::before{
    position: absolute;
    z-index: -1;
    inset: -100% auto -100% 0;
    margin: auto;
    content: '';
    width: 70%;
    min-width: 750px;
    height: 100%;
    background: var(--gradient_blue);
}
.page_aboutus .kv_sub .flex{justify-content: center;}
.page_aboutus .kv_sub .flex *{text-align: center;color: #fff;}
.page_aboutus .kv_sub .en{
    font-size: 72px;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
}
.page_aboutus .kv_sub .kv_ttl{
    font-size: 72px;
    margin: 0 auto .2em;
}
.page_aboutus .kv_sub .cap{line-height: 1.7;}
.page_aboutus.page_business.service .about_srv::before{
    background: #005bab;
    opacity: 0.7;
}
/* コンテンツ */
.page_aboutus article > section{
    position: relative;
    z-index: 0;
    padding: var(--sectionPadding) 0;
    overflow: hidden;
}
.page_aboutus article > section > picture{
    position: absolute;
    z-index: -1;
    inset: -100%;
    margin: auto;
    width: 101%;
    height: 101%;
}
.page_aboutus article > section > picture img{
    height: 100%;
    object-fit: cover;
}
.page_aboutus article > section .inner > h2{
    position: relative;
    z-index: 0;
    color: #fff;
    background: var(--mainRed);
    border-radius: 16px;
    text-align: center;
    max-width: 540px;
    margin: 0 auto 25px;
    padding: 0.3em .5em 0.4em;
}
.page_aboutus article > section .inner > h2::before{
    position: absolute;
    z-index: -1;
    inset: auto calc(-100% + 7em) -22px -100%;
    margin: auto;
    content: '';
    width: 35px;
    height: auto;
    aspect-ratio: 1;
    background: var(--mainRed);
    clip-path: polygon(0 0, 100% 100%, 100% 0);
}
/* bg_about */
.page_aboutus .bg_about{
    background: #d8e0e3;
    border-radius: 16px;
    padding: 1.4em;
}
.page_aboutus .bg_about.bg_white{background: #fff;}
.page_aboutus .bg_about *{
    text-align: center;
    margin: 0 auto;
    color: var(--mainBlue);
}
.page_aboutus .bg_about h3{
    font-size: 36px;
    font-weight: 700;
    /* min-height: calc(2em * 1.7); */
}
.page_aboutus .bg_about h3 span{font-size: 30px;}
.page_aboutus .bg_about h3 + p{
    font-size: 24px;
    font-weight: 700;
}
.page_aboutus .bg_about p:has(img){
    max-width: 100%;
    max-height: 170px;
}
.page_aboutus .bg_about p img{
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    max-height: 170px;
    object-fit: contain;
}
.page_aboutus .bg_about .captions{
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 74px;
}
.page_aboutus .bg_about .cap01{font-weight: 700;}
.page_aboutus .bg_about .cap02{font-size: 18px;}
/* flex */
.page_aboutus .flex{
    flex-wrap: wrap;
    justify-content: space-between;
}
.page_aboutus .bg_about > .ttl{margin: 0 auto 10px;}
.page_aboutus .bg_about > .flex{
    max-width: 1200px;
    row-gap: 60px;
}
/* flex - col2 */
.page_aboutus .flex.col2{row-gap: 60px;}
.page_aboutus .flex.col2 > li{width: 48%;}
/* flex - col3 */
.page_aboutus .flex.col3{row-gap: 30px;}
.page_aboutus .flex.col3 > li{width: 32%;}

/* 強み */
.page_aboutus .sec_strength .inner_s{margin-top: 65px;}
.page_aboutus .sec_strength .flex .flex{
    align-items: center;
    column-gap: 10px;
}
/* グラフ */
.page_aboutus .graph{
    aspect-ratio: 1;
    border-radius: 50%;
    background: #fff;
    display: block;
    pointer-events: none;
}
/* 働き方 */
/* 性格 */
.page_aboutus .sec_personality {padding-bottom: calc(var(--sectionPadding) * 2);}
.page_aboutus .sec_personality .bg_about{padding: 60px 80px;}
.page_aboutus .sec_personality .bg_about figure{max-width: 900px;}
.page_aboutus .sec_personality .bg_about h3{font-size: 24px;}
.page_aboutus .sec_personality .bg_about .captions p{font-weight: 400;}
.page_aboutus .sec_personality .bg_about .captions .cap01{font-size: 18px;}
.page_aboutus .sec_personality .bg_about .captions .cap02{font-size: 16px;}
.page_aboutus .sec_personality .bg_about .captions .cap02 a{text-decoration: underline;}
.page_aboutus .sec_personality .bg_about .captions .cap02 a::after{
    content: '';
    display: inline-block;
    margin: 0 0 0 0.3em;
    width: auto;
    height: .9em;
    aspect-ratio: 18 / 20;
    background: currentColor;
    -webkit-mask: url(../img/common/ico/blank.svg) no-repeat center / contain;
            mask: url(../img/common/ico/blank.svg) no-repeat center / contain;
}
/* サイトマップ */
.page_sitemap .editor_contents *{
    font-size: 16px !important;
    margin-block: 0 !important;
    /* padding-block: .5em !important; */
    font-weight: 400;
    line-height: 1.75;
}
.page_sitemap .editor_contents.edit ul li{padding-left: 0;}
.page_sitemap .editor_contents li:before{display: none !important;}
.page_sitemap .editor_contents h2{
    font-weight: 700 !important;
    padding-left: 0;
    border-top: 2px solid var(--mainBlue);
}
.page_sitemap .editor_contents h2::before{display: none;}
.page_sitemap .sitemap_cont {
  border-top: 2px solid var(--main_color);
  border-bottom: 1px dashed #8a8a8a;
}
.page_sitemap .sitemap_cont .top {border-bottom: 1px dashed #8a8a8a;}
.page_sitemap .sitemap_cont .top a{font-weight: 700;}
.page_sitemap .sitemap_cont a {
  display: block;
  padding: 15px 20px;
  color: var(--txtColor);
}
.page_sitemap .sitemap_cont a:hover{color: var(--mainBlue);}
.page_sitemap .sitemap_cont ul.page {margin: 0 0 0 4em;}
.page_sitemap .sitemap_cont ul.subpage {margin: 15px 0 15px 4em;}
.page_sitemap .sitemap_cont ul.page > li.menu {border-bottom: 1px dashed #8a8a8a;}
.page_sitemap .sitemap_cont ul.page > li.menu:last-of-type{border-bottom: none;}
.page_sitemap .sitemap_cont ul.page > li a,
.page_sitemap .sitemap_cont ul.subpage > li a {display: block;}
.page_sitemap .sitemap_cont .top a:hover,
.page_sitemap .sitemap_cont ul.page > li a:hover,
.page_sitemap .sitemap_cont ul.subpage > li a:hover {color: var(--mainBlue);}
.page_sitemap .sitemap_cont ul.page > li > a {padding: 15px 20px;}
.page_sitemap .sitemap_cont ul.page > li:has(ul) > p a{border-bottom: 1px dashed #8a8a8a;}
.page_sitemap .sitemap_cont ul.page > li.pre a {
  pointer-events: none;
  color: #999 !important;
}
.page_sitemap .sitemap_cont ul.page > li:last-child > a {border: none;}
.page_sitemap .sitemap_cont ul.page > li > ul {margin: 0 0 0 4em;}
.page_sitemap .sitemap_cont ul.page > li > ul > li > a,
.page_sitemap .sitemap_cont ul.subpage > li > a {padding: 10px 20px;}
.page_sitemap .sitemap_cont ul.page > li > ul > li:nth-of-type(2) {margin-top: 15px;}
.page_sitemap .sitemap_cont ul.page > li > ul > li:last-child {margin-bottom: 15px;}
.page_sitemap .sitemap_cont ul.page > li > ul > li.third{padding-left: calc(1.3em + 2em);}

/* お問い合わせ
============================================ */
/* reset */
.smf-form .smf-text-control__control:active,
.smf-form .smf-text-control__control:focus,
.smf-form .smf-text-control__control:focus-within,
.smf-form .smf-text-control__control[aria-selected=true]{
    border-color: var(--mainBlue) !important;
}
.smf-error-messages{color: var(--mainRed) !important;}
.smf-form [data-invalid="1"]{border-color: var(--mainRed) !important;}
/* form */
form .wp-block-snow-monkey-forms-item{margin: 0 0 1em;}
form .smf-item__label,
form .smf-checkbox-control__label{
    font-weight: 700;
    font-feature-settings: "halt";
    margin: 0 0 0.1em;
}
form .smf-form .smf-text-control__control{width: 100%;}
form .wp-block-snow-monkey-forms-item:has([data-validations~="required"]) .smf-item__label__text::after,
form .privacy_box .smf-checkboxes-control__control[data-validations~="required"] .smf-checkbox-control__label::after{
    display: inline-block;
    margin: 0 0 0 .6em;
    content: '［必須］';
    font-size: .85em;
    color: var(--mainRed);
}
/* 個人情報保護 同意 */
form .privacy_box{
    text-align: center;
    margin-top: calc(var(--sectionPadding) / 2);
}
form .smf-label label{cursor: pointer;}
form .smf-radio-button-control__control,
form .privacy_box .smf-checkbox-control__control{margin-top: 0.4em !important;}
/* 送信ボタン */
form .smf-action .smf-button-control .smf-button-control__control{
    appearance: none;
    border: none;
    display: block;
    color: #fff;
    font-size: 21px;
    font-weight: 700;
    background: var(--mainBlue);
    cursor: pointer;
    padding: 15px;
    margin: calc(var(--sectionPadding) / 2) auto 0;
    border-radius: 6px;
    min-width: 320px;
    min-height: 80px;
    line-height: 1;
    text-align: center;
    transition: 0.3s;
    pointer-events: initial;
}
form .smf-action .smf-button-control .smf-button-control__control:hover{opacity: 0.6;}

body:has(form[data-screen=invalid]) .disp_confirm{display: none;}
/* 入力画面のみ */
body:has(form[data-screen=input]) .disp_input{display: block;}
body:has(form[data-screen=input]) .disp_confirm{display: none;}

/* 確認画面のみ*/
body:has(form[data-screen=confirm]) .disp_input{display: none;}
body:has(form[data-screen=confirm]) .disp_confirm{display: block;}
body:has(form[data-screen=confirm]) .confirm_txt_first{margin-bottom: calc(var(--sectionPadding) / 2);}
body:has(form[data-screen=confirm]) .confirm_txt_last{margin-top: calc(var(--sectionPadding) / 2);}

/* 完了画面 */
body:has(form[data-screen=complete]) .disp_input,
body:has(form[data-screen=complete]) .disp_confirm{display: none;}
/* -----------------------------------------------------------
用語集
----------------------------------------------------------- */
.post_dict .column.left nav,
.post_dict .column.left nav .inner{padding: 0;}
.post_dict .column.left nav .inner > ul > li > .ac > span{display: block;}
.post_dict .dictionary_bloc {
    position: relative;
    z-index: 0;
    display: flex;
    align-items: flex-start;
    column-gap: 40px;
}
/* html:has(.post_dict),
body:has(.post_dict),
.post_dict{overflow-x: clip;} */
.post_dict .column.left {
    width: 430px;
    /* position: sticky;
    z-index: 0;
    top: calc(var(--headerHeight) + var(--sectionPadding));
    min-height: 150px;
    max-height: calc(100svh - var(--headerHeight) - var(--sectionPadding) * 1.5);
    overflow-y: auto; */
}
/* .post_dict.single_dict .column.left{
    position: relative;
    top: auto;
    min-height: initial;
    max-height: initial;
    overflow-y: initial;
} */
.post_dict .column.right {width: calc(100% - 430px - 40px);}
.post_dict .column.right > *:first-child{margin-top: 0 !important;}
.post_dict .column.right > *:last-child{margin-bottom: 0 !important;}

/* 左メニュー 検索関連 */
.post_dict .column.left > div:not(:last-of-type) {margin: 0 0 20px;}
.post_dict input[type="text"] {
    border: 1px solid #ccc;
    display: inline-block;
    width: 100%;
}
.post_dict .search-box {
    display: flex;
    border: 1px solid var(--txtColor_sub01);
    width: 100%;
    height: 40px;
    align-items: center;
    padding: 0 8px;
    box-sizing: border-box;
}
.post_dict .search-box input,
.post_dict .search-box input::placeholder{
    color: var(--mainBlue);
    font-weight: 700;
    font-size: 18px !important;
}
.post_dict .search-box input::placeholder{opacity: 0.5;}

.post_dict #s {
    flex: 1;
    border: none;
    outline: none;
    font-size: 16px;
    color: var(--mainBlue);
}
.post_dict .search-button {
    background: none;
    border: none;
    font-size: 22px;
    cursor: pointer;
}
.post_dict .search-button::after {
    content: '';
    display: inline-block;
    width: 1em;
    height: auto;
    aspect-ratio: 1/1;
    background: url(../img/common/ico/search.svg) no-repeat center / contain;
    vertical-align: middle;
    margin-bottom: 6px;
}
/* 左メニュー 共通 */
.post_dict .left_menu {}
.post_dict .left_menu ul {}
.post_dict .left_menu ul li {}
.post_dict .left_menu ul li a,
.post_dict .left_menu ul li .nolink {
    border: 1px solid #ccc;
    display: block;
    padding: 6px;
}
/* 左メニュー 用語関連 */
.post_dict .left_menu.nav {
    background: initial;
    padding: 0;
}
/* 左メニュー PDF関連 */
.post_dict .left_menu.link nav .inner > ul > li a::before{display: none;}
.post_dict .left_menu.link nav .inner > ul > li li a{
    position: relative;
    z-index: 0;
}
.post_dict .left_menu.link.pdf nav .inner > ul > li li a::after,
.post_dict .left_menu.link:not(.pdf) nav .inner > ul > li li a[target="_blank"]::after{
    content: '';
    display: inline-block;
    margin: 0 0 0 0.3em;
    width: auto;
    height: .9em;
    aspect-ratio: 18 / 20;
}
.post_dict .left_menu.link.pdf nav .inner > ul > li li a::after{
    background: url(../img/common/ico/pdf.svg) no-repeat center / contain;
}
.post_dict .left_menu.link:not(.pdf) nav .inner > ul > li li a[target="_blank"]::after{

    background: currentColor;
    -webkit-mask: url(../img/common/ico/blank.svg) no-repeat center / contain;
            mask: url(../img/common/ico/blank.svg) no-repeat center / contain;;
}
/* ■ 右カラム ■ */
.post_dict .column.right  > section{margin-bottom: 50px;}
.post_dict .column.right  > section:last-of-type{margin-bottom: 0;}
.post_dict .column.right h2{
    padding-left: 0;
    font-size: 24px;
    border-bottom: 3px solid currentColor;
    margin-bottom: 1.1em;
    padding-bottom: .3em;
}
.post_dict .column.right h2::before{display: none;}
.post_dict .column.right h3 {
    margin: 1.25em 0 0;
    padding-bottom: 0.5em;
}
.post_dict .column.right .item_list li{border-top: 1px solid var(--txtColor_sub02);}
.post_dict .column.right .item_list li:last-of-type{border-bottom: 1px solid var(--txtColor_sub02);}
.post_dict .column.right .item_list li a{
    display: block;
    text-decoration: none;
    color: var(--txtColor_sub01);
}
.post_dict .column.right .item_list li a:hover{background: var(--bg_gray03);}
.post_dict .column.right .item_list li a > div > div{padding: 20px 20px 25px 35px;}
.post_dict .column.right .item_list li p{margin: 0;}
.post_dict .column.right .item_list li .eng{
    position: relative;
    z-index: 0;
}
.post_dict .column.right .item_list li .eng::before{
    position: absolute;
    z-index: 0;
    inset: auto auto 0 0 ;
    content: '';
    width: 100%;
    height: 1px;
    background: repeating-linear-gradient(40deg, #000000, #000000 1px, transparent 1px, transparent 9px) repeat-x right top / 100% 1px;;
}
.post_dict .column.right .item_list li .jp{
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    column-gap: 20px;
}
.post_dict .column.right .item_list li .jp div{width: calc(100% - 20px - 130px);}
.post_dict .column.right .item_list li .jp .btn{width: 130px;}
/* テキスト */
.post_dict .column.right .item_list li h4{
    font-weight: 700;
    margin-bottom: 5px;
}
.post_dict .column.right .item_list li .eng h4{color: var(--mainBlue);}
.post_dict .column.right .item_list li .eng h4 span,
.post_dict.search_dict .column.right .item_list li .eng h2 span{display: inline-block;}
.post_dict .column.right .item_list li .eng h4 span:nth-of-type(1),
.post_dict.search_dict .column.right .item_list li .eng h2 span:nth-of-type(1){
    font-size: 36px;
    margin: 0 14px 0 0;
}
.post_dict .column.right .item_list li .eng h4 span:nth-of-type(2),
.post_dict.search_dict .column.right .item_list li .eng h2 span:nth-of-type(2){font-size: 28px;}
.post_dict .column.right .item_list li .jp h4,
.post_dict.search_dict .column.right .item_list li .jp h4,
.post_dict.search_dict .column.right .item_list li .jp h2{font-size: 26px;}
/* ■ 検索結果ページ ■ */
.post_dict.search_dict .column.right h2.search-result{
    border-bottom: none;
    padding: 0;
}
.post_dict.search_dict .column.right .item_list li h2{
    border-bottom: none;
    margin: 0 0 5px;
    padding: 0;
}
.post_dict.search_dict .column.right .item_list li .jp h2{color: var(--txtColor_sub01);}
/* 用語詳細ページ */
.post_dict.single_dict .column.right .eng h1,
.post_dict.single_dict .column.right .jp h2{margin: 0 0 5px;}
.post_dict.single_dict .column.right .eng h1{
    color: var(--mainBlue);
    font-weight: 700;
    line-height: 1.4;
}
.post_dict.single_dict .column.right .eng h1 span{display: inline-block;}
.post_dict.single_dict .column.right .eng h1 span:nth-of-type(1){
    font-size: 36px;
    margin: 0 0.3em 0 0;
}
.post_dict.single_dict .column.right .eng h1 span:nth-of-type(2){font-size: 28px;}
.post_dict.single_dict .column.right .jp h2{
    color: var(--txtColor_sub01);
    border: none;
    padding: 0;
}
.post_dict.single_dict .column.right .detail_bloc{color: var(--txtColor_sub01);}
.post_dict.single_dict .column.right > .detail_bloc:nth-of-type(1){border-top: 1px solid var(--txtColor_sub02);}
.post_dict.single_dict .column.right .detail_bloc > div,
.post_dict.single_dict .column.right .detail_bloc:has(h3){
    position: relative;
    z-index: 0;
    padding: 20px 20px 25px 35px;
}
.post_dict.single_dict .column.right .detail_bloc:has(h3){padding-bottom: 0 !important;}
.post_dict .column.right .detail_bloc > div::before{
    position: absolute;
    z-index: 0;
    inset: auto auto 0 0 ;
    content: '';
    width: 100%;
    height: 1px;
    background: repeating-linear-gradient(40deg, #000000, #000000 1px, transparent 1px, transparent 9px) repeat-x right top / 100% 1px;;
}
.post_dict.single_dict .column.right .detail_bloc p{margin: 0;}
.post_dict.single_dict .column.right .detail_bloc h3{
    font-size: 18px;
    color: var(--txtColor_sub01);
    margin: 0 0 0.5em;
    padding: 0;
}
.post_dict .dictionary_bloc + hr + .btn{
    border: none;
    margin: 0 auto;
}
.post_dict .dictionary_bloc + hr + .btn a{text-decoration: none;}


/* ナビ */
.post_dict nav{padding: 0;}
.post_dict nav .inner{padding: 0;}
.post_dict nav .inner > ul{flex-direction: column;}
.post_dict nav .inner > ul li{width: 100%;}
.post_dict nav .inner > ul > li li.third{padding: 0;}
.post_dict nav .inner > ul > li > p,
.post_dict nav .inner > ul > li li > p{
    background: #e0e0e0;
    border-color: #ccc;
    padding: 0;
}
.post_dict nav .inner > ul li p,
.post_dict nav .inner > ul li a{
    position: relative;
    z-index: 0;
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    min-height: 40px;
    padding: 0.8em 50px;
}
.post_dict nav .inner > ul > li a::before{
    position: absolute;
    z-index: 0;
    inset: -100% 21px -100% auto;
    margin: auto;
    content: '';
    display: block;
    width: auto;
    height: 100%;
    aspect-ratio: 1;
    transform: rotate(90deg);
    background: var(--txtColor_sub02);
    -webkit-mask: url(../img/common/ico/arw_menu.svg) no-repeat center / 19px 10px;
    mask: url(../img/common/ico/arw_menu.svg) no-repeat center / 19px 10px;
}
.post_dict nav .inner > ul > li li a,
.post_dict nav .inner > ul > li > .ac{
    display: flex;
    align-items: center;
    font-size: 18px;
    color: var(--txtColor_sub02);
    min-height: 50px;
    padding: 0 50px;
    border: 1px solid #ccc;
    border-bottom: none;
    background: #eee;
    cursor: pointer;
}
.post_dict nav .inner > ul > li li:last-of-type a{border-bottom: 1px solid #ccc;}
.post_dict nav .inner > ul > li li a{text-decoration: none;}
.post_dict nav .inner > ul > li li a:hover{opacity: 0.5;}
/* ac */
.post_dict nav .inner > ul > li > ul:not(:has(p)){display: none;}
.post_dict nav .inner > ul > li > .ac{
    margin: 0;
    padding: 0 32px 0 1.25em;
    font-weight: 700;
    color: var(--mainBlue);
    background: #e0e0e0;
}
.post_dict nav .inner > ul > li > .ac > span{
    display: block;
    right: 25px;
}
.post_dict nav .inner > ul > li li > p{padding-top: 0;}
.post_dict nav .inner > ul > li li > p:not(.ac){margin: 0;}
/* -----------------------------------------------------------
information
----------------------------------------------------------- */
.post_info .news_cont{padding: var(--sectionPadding) 0;}
.post_info .news_cont .year_list,
.irc_release_yyyyselect{
    position: relative;
    z-index: 0;
    display: flex !important;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 0.4em;
    margin: 0 0 calc(var(--sectionPadding) / 3);
}
.post_info .news_cont .year_list::before,
.irc_release_yyyyselect::before{
    display: inline-block;
    margin: 0 0.1em 0 0;
    font-weight: 700;
}
.post_info .news_cont .year_list:not(.category_list)::before,
.irc_release_yyyyselect::before{content: '年別：';}
.post_info .news_cont .year_list.category_list::before{content: 'カテゴリー：';}
.post_info .news_cont .year_list li,
.irc_release_yyyyselect li{
    line-height: 1.4;
    padding: 0 .65em !important;
    border-right: 1px solid currentColor;
    min-width: 4.75em;
    float: initial !important;
}
.post_info .news_cont .year_list li:nth-of-type(1),
.irc_release_yyyyselect li:nth-of-type(1){padding-left: 0 !important;min-width: 1px;}
.irc_release_yyyyselect li a{
    color: var(--txtColor);
    text-decoration: none;
}
.post_info .news_cont .year_list li.current a,
.irc_release_yyyyselect li.current a{
    color: var(--mainBlue);
    font-weight: 700;
}
.post_info .news_cont .year_list li a:hover,
.irc_release_yyyyselect li a:hover{
    opacity: 1;
    color: var(--mainBlue);
}
.post_info .editor_contents.edit .date{
    font-size: 14px;
    line-height: 1.2;
}
.post_info .editor_contents.edit h1{
    font-weight: 700;
    font-size: 32px;
    line-height: 1.4;
    margin: 1.4em 0 1.2em;
    padding: 0 0 1.4em;
    border-bottom: 1px solid #c8c8c8;
}
/* ページネーション */
.pagination{margin: calc(var(--sectionPadding) / 2) auto 0;}
.pagination .wp-pagenavi{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: .4em .6em;
}
.pagination .wp-pagenavi > span,
.pagination .wp-pagenavi > a{
    --baseColor: #898989;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 14px;
    margin: 0;
    padding: 3px 10px;
    transition: 0.3s;
    border-color: var(--baseColor);
}
.pagination .wp-pagenavi > .current,
.pagination .wp-pagenavi > a:hover{
    opacity: 1;
    background: var(--baseColor);
    color: #fff;
    border-color: var(--baseColor);
}
/* -----------------------------------------------------------
home
----------------------------------------------------------- */
.home article > *:not(.kv_home){
    position: relative;
    z-index: 1;
    background: #fff;
}
/* KV
========================== */
.home .kv_home{
    position: fixed;
    z-index: 0;
    top: var(--headerHeight);
    width: 100%;
    height: auto;
    aspect-ratio: 1680 / 835;
}
.home .kv_home video{
    position: absolute;
    z-index: -1;
    inset: -100%;
    margin: auto;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.home .kv_home .inner,
.home .kv_home .inner .flex{height: 100%;}
.home .kv_home .inner .flex{align-items: center;}
.home .kv_home .inner .flex p{
    width: 55%;
    max-width: 670px;
    transform: scale(1.04);
    filter: blur(2px);
    transition: 2s;
}
.is_loaded .home .kv_home .inner .flex p{
    transform: scale(1);
    filter: blur(0);
}
.home .kv_home .inner .flex p a{
    filter:
        drop-shadow(3px 3px 10px #000)
        drop-shadow(0px 0px 1px #000)
    ;
}

/* ニュース
========================== */
.home .sec_news{
    /* margin-top: calc((100vw / (1700 / 835)) + var(--headerHeight)); */
    margin-top: calc(100vw / (1700 / 835));
    padding: var(--sectionPadding) 0;
}
/* news_cont */
.news_cont .flex{
    justify-content: space-between;
    border-bottom: 2px solid var(--mainRed);
}
.news_cont h2{
    font-weight: 700;
    font-size: 21px;
    padding: 0 0 .4em 0;
}
.news_cont h2::before{display: none;}
.news_cont .flex ul{
    display: flex;
    justify-content: flex-end;
    justify-content: center;
    column-gap: 30px;
}
.news_cont .flex ul li a{font-size: 18px;}
.news_cont .flex ul li a:hover{
    opacity: 1;
    color: var(--mainBlue);
}
.news_cont .flex ul li a::after{
    display: inline-block;
    content: '→';
    margin: 0 0 0 0.3em;
}
/* ニュース（IR、投稿共通化） */
.news_cont .ir_news li,
.news_cont dl{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    column-gap: 40px;
    color: var(--txtColor_sub02);
    border-bottom: 1px solid #c8c8c8;
    padding: 1.907em 1em;
    min-height: 90px;
}
.news_cont .ir_news li div:nth-of-type(1),
.news_cont dl dt{width: 121px;}
.news_cont .ir_news li div a,
.news_cont dl dd a{
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 2px;
    color: var(--txtColor_sub02);
}
.news_cont dl dd a[href$=".pdf"]{
    position: relative;
    z-index: 0;
}
.news_cont dl dd a[href$=".pdf"]::after{
    content: '';
    display: inline-block !important;
    width: .95em;
    height: auto;
    aspect-ratio: 1;
    background: url(../img/common/ico/pdf.svg) no-repeat center / contain;
    margin: 0 0 -.1em 0.2em;
}
.home .news_cont dl dd a[href$=".pdf"]::after{display: none;}
.news_cont .ir_news li div a:hover,
.news_cont dl dd a:hover{
    opacity: 1;
    color: var(--mainBlue);
    text-decoration-color: currentColor;
}
/* PDFアイコン */
.news_cont .ir_news li div a[href$=".pdf"] img{
    display: inline-block;
    margin-left: 0.3em;
    width: 13px;
    height: auto;
    aspect-ratio: 13 / 14;
    vertical-align: middle;
    margin-bottom: 5px;
}
.news_cont .ir_news li div a[href$=".pdf"] img + span{
    display: inline-block;
    margin-left: 0.3em;
}

/* IRニュースのみ */
.news_cont.ir{margin: 0 0 var(--sectionPadding);}
.news_cont .ir_news li:last-of-type{border-bottom: none;}
.news_cont.ir dl dd{width: calc(100% - 121px - 40px);}
/* ニュースリリースのみ */
.news_cont dl dt{font-weight: 400;}
.news_cont:not(.ir) dl dd:nth-of-type(1){
    font-size: 14px;
    color: var(--txtColor_sub01);
    width: 127px;
    padding-top: .1em;/* fz下げているので高さ調整 */
}
.news_cont:not(.ir) dl dd:nth-of-type(1) span{display: block;}
.news_cont:not(.ir) dl dd:nth-of-type(2){width: calc(100% - 121px - 127px - 40px - 40px);}
/* サービス
========================== */
.home .sec_service{
    background: url(../img/page/home/bg_service.jpg) no-repeat center / cover !important;
    padding: calc(var(--sectionPadding) * 1.75) 0 calc(var(--sectionPadding) *1.3);
}
.home .sec_service::before{
    position: absolute;
    z-index: -1;
    inset: 0;
    content: '';
    width: 100%;
    height: 100%;
    background: #00578a;
    opacity: .7;
}
.home .sec_service .crosslink_srv .ttl_cont{margin: 0 0 110px;}
.home .sec_service .crosslink_srv .ttl_cont a{width: fit-content;}
.home .sec_service .crosslink_srv .ttl_cont .ttl h2{
    color: #fff;
    margin: 0 0 1.3em;
}
/* 下層カードリンク
========================== */
.home .sec_lower{padding: calc(var(--sectionPadding) * 1.3) 0;}
/* card_link */
.card_links > section:not(:last-of-type){margin: 0 0 100px;}
/* 色設定 */
.card_links > section{--themeColor: var(--mainBlue);}
/* .card_links > section.ir{--themeColor: var(--c_ir);} */
/* .card_links > section.sustainability{--themeColor: var(--c_sustain);} */
/* .card_links > section.recruit{--themeColor: var(--c_recruit);} */
/* 共通 */
.card_links > section a{display: flex;}
.card_links > section a > *{width: 50%;}
.card_links > section a figure{
    height: auto;
    aspect-ratio: 659 / 428;
    overflow: hidden;
}
.card_links > section a figure img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.card_links > section.recruit a > div{background: #b1c6db;}
.card_links > section a > div .ttl{
    position: relative;
    z-index: 0;
    display: flex;
    align-items: center;
    color: #fff;
    background: var(--themeColor);
    min-height: 200px;
    margin: 0 0 16px;
}
.card_links > section a > div .ttl::before{
    position: absolute;
    z-index: 0;
    top: 0;
    content: '';
    width: 15%;
    max-width: 120px;
    height: 100%;
    background: var(--themeColor);
}
.card_links > section a > div .ttl .en{
    font-family: var(--ff_roboto);
    font-weight: 700;
    font-size: 60px;
    line-height: .9;
    margin: 0 0 0.1em;
}
.card_links > section a > div .ttl h2{
    font-size: 21px;
    color: #fff;
    padding-left: 0;
}
.card_links > section a > div .ttl h2::before{display: none;}
.card_links > section.recruit a > div .desc p:not(.btn){font-size: 14px;}
.card_links > section a > div .desc .btn{
    margin: 1.2em 0;
    color: #fff;
    background: var(--themeColor);
    border-color: var(--themeColor);
}
/* 奇数 */
.card_links > section:nth-of-type(2n-1) a > div .card_inner{margin-left: 50px;}
.card_links > section:nth-of-type(2n-1) a > div .ttl{padding-right: 25px;}
.card_links > section:nth-of-type(2n-1) a > div .ttl::before{right: 100%;}
.card_links > section:nth-of-type(2n-1) a > div .desc{padding-right: 40px;}
/* 偶数 */
.card_links > section:nth-of-type(2n) a{flex-direction: row-reverse;}
.card_links > section:nth-of-type(2n) a > div .card_inner{
    width: fit-content;
    /* min-width: 430px; */
    margin-left: auto;
    margin-right: clamp(50px, 8vw, 150px);
}
.card_links > section:nth-of-type(2n) a > div .ttl{padding-left: 25px;}
.card_links > section:nth-of-type(2n) a > div .ttl::before{left: 100%;}
.card_links > section:nth-of-type(2n) a > div .desc{padding-left: 40px;}
/* 採用情報 */
.card_links > section.recruit a > div .ttl::before{display: none;}
/* special feature
========================== */
.home .sec_special{
    background: url(../img/page/home/bg_special.jpg) no-repeat center / cover !important;
    padding: var(--sectionPadding) 0;
}
.home .sec_special::before{
    position: absolute;
    z-index: -1;
    inset: 0;
    content: '';
    width: 100%;
    height: 100%;
    background: #8395c4;
    opacity: 0.7;
}
.home .sec_special h2{
    font-family: var(--ff_roboto);
    font-size: 36px;
    color: #fff;
    text-align: center;
    margin: 0 auto 50px;
    padding: 0;
}
.home .sec_special h2::before{display: none;}
.home .sec_special .flex{column-gap: 50px;}
.home .sec_special .flex a:hover{
    opacity: 1;
    filter: var(--hvr_bright);
}
/* バナー
========================== */
.home_bnr{
    position: fixed;
    z-index: 8;
    inset: auto 0 0 auto;
    width: 35vw;
    max-width: 500px;
    height: auto;
    transform: translateY(calc(100% + 44px));
    transition: transform 1s .2s;
    filter: drop-shadow(0 0 16px #070101);
}
.is_loaded .home_bnr.is_scrolled{transform: none;}
.is_loaded .home_bnr.is_scrolled.is_closed{transform: translateY(calc(100% + 44px));transition-delay: 0s;}
.home_bnr a:hover{
    opacity: 1;
    filter: var(--hvr_bright);
}
.home_bnr span{
    position: absolute;
    z-index: 0;
    inset: -19px 6px auto auto;
    font-size: 0;
    width: 20%;
    max-width: 38px;
    height: auto;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    filter: drop-shadow(0 0 4px #000);
    transition: 0.3s;
}
.home_bnr span:hover{opacity: .5;}
.home_bnr span::before,
.home_bnr span::after{
    position: absolute;
    z-index: 0;
    inset: -100%;
    margin: auto;
    content: '';
    width: 30px;
    height: 3px;
    border-radius: 2px;
    background: #8a8a8a;
}
.home_bnr span::before{transform: rotate(45deg);}
.home_bnr span::after{transform: rotate(-45deg);}