@charset "UTF-8"; /* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
汎用
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.main_area {
    overflow: hidden;
}

p.cmn_page_btn {
    text-align: center;
}

.cmn_page_btn button ,p.cmn_page_btn a {
    font-size: 1.4rem;
    font-weight: 500;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24rem;
    padding: 1rem 1.5rem;
    min-height: 4rem;
    border-radius: 2rem;
    position: relative;
    border: 1px solid;
    margin: 0 auto;
    transition: .2s ease-in;
    cursor: pointer;
    opacity: 1;
    line-height: normal;
    font-family: "Shippori Mincho","Noto Sans JP","游ゴシック体", "Yu Gothic", "yugothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
    background: #fff;
    color: inherit;
}

.cmn_page_btn button::after ,p.cmn_page_btn a::after {
    position: absolute;
    content: "";
    mask: url("../images/common/arrow.svg") no-repeat 50% / contain;
    width: 2.6rem;
    height: .6rem;
    top: 0;
    bottom: 0;
    margin: auto 0;
    right: 1.5rem;
    background: #000;
}

.return {
    margin-top: 6rem;
    /* 60px */
}

.return a {
    position: relative;
}

.return a::before {
    position: absolute;
    content: "";
    background: url(../images/common/arrow_w.svg) no-repeat 50% / contain;
    width: 1.5rem;
    /* 15px */
    height: 2rem;
    /* 20px */
    top: 50%;
    left: 3.5rem;
    /* 35px */
    transition: .2s ease-in;
    transform: translateY(-50%) rotateY(180deg);
}

.cmn_txt_wrap {
}

.cmn_txt_wrap p:not(:last-child) {
    margin-bottom: 5rem;
}

@media screen and (min-width: 769px) {
    .cmn_page_btn button:hover , p.cmn_page_btn a:hover {
        background: #FD7E00;
        color: #fff;
        opacity: 1;
    }

    .cmn_page_btn button:hover::after, p.cmn_page_btn a:hover::after {
        background: #fff;
    }

    .return a:hover {
        opacity: 1;
        color: var(--theme_m_color);
        background-color: #fff;
    }

    .return a:hover::before {
        background-image: url("../images/common//images/common/arrow_b.svg");
    }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
プロモ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page_promo {
}

.page_promo .base02_width {
    max-width: 119rem;
}

.page_promo .promo_inner .ttl_wrap {
    margin-top: 6.2rem;
}

.page_promo .promo_inner .promo_ttl {
    font-size: 2em;
    font-family: "Cormorant Garamond", serif;
    font-weight: 500;
}

.page_promo .promo_inner h1 .slug, .page_promo .promo_inner p .slug {
    font-family: "Oswald", sans-serif;
    font-size: 12.4rem;
    display: block;
    margin-bottom: 0.6rem;
    color: var(--theme_m_color);
}

.page_promo .promo_inner h1 .ja, .page_promo .promo_inner p .ja {
    font-size: 2.6rem;
    letter-spacing: .08em;
    font-weight: 500;
    padding-left: 3.5rem;
}

.page_main_img {
    max-width: 120rem;
    margin: 0 auto;
    position: relative;
    padding: 7rem 0 4rem;
    margin-bottom: 2rem;
}

.page_main_img::before, .page_main_img::after {
    position: absolute;
    content: "";
    background: no-repeat 50% /contain;
}

.page_main_img img {
    border-radius: 2rem;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
プライバシーポリシー
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-privacypolicy .page_promo .promo_inner .promo_ttl , .page-environmentalpolicy .page_promo .promo_inner .promo_ttl {
    font-size: 5.6rem;
}

.page-privacypolicy .page_promo .page_width , .page-environmentalpolicy .page_promo .page_width {
    max-width: 110rem;
}

.policy_wrap ul.indent {
    padding-left: 2.6rem;
    margin-bottom: 0;
}

.policy_wrap ul.indent li {
    text-indent: -1em;
    padding-left: 1em;
    margin-bottom: 0;
    line-height: 2;
}

.policy_wrap {
}

.policy_wrap p.main_lead {
    letter-spacing: .03em;
    line-height: 1.875;
    margin-bottom: 8rem;
}

.policy_wrap .box {
}

.policy_wrap .box:not(:last-child) {
    margin-bottom: 5.5rem;
}

.policy_wrap .box h3.ttl {
    font-size: 2.2rem;
    font-weight: 400;
    margin-bottom: 1rem;
}

.policy_wrap .box p {
    letter-spacing: .03em;
    line-height: 1.875;
}

.policy_wrap .box ul.indent {
    margin-top: 1.5rem;
    padding-left: 0rem;
}

.policy_wrap .box ul.indent li {
}

.policy_wrap .box p.seitei {
    text-align: right;
    letter-spacing: .03em;
    margin-top: 4rem;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
404
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page_promo.letter404 {
    background: url("../images/page/404.jpg") no-repeat 50% / cover;
    height: 72rem;
}

.page_promo.letter404 .promo_inner .ttl_wrap {
    margin: 0;
}

.page_404 > .page_width {
    padding: 3.5rem 0 20rem;
}

.page_404 p.txt {
    letter-spacing: .03em;
    text-align: center;
    line-height: 2.25;
    margin-bottom: 2.5rem;
}

.page_404 p.btn {
}

.page_404 p.btn a {
    margin: 0 auto;
    text-align: center;
    font-size: 1.4rem;
    font-weight: 500;
    width: 24rem;
    height: 4rem;
    display: grid;
    align-items: center;
    justify-content: center;
    border: 1px solid;
    border-radius: 2rem;
}

.page_404 p.btn a:hover {
    background: #FD7E00;
    border-color: #FD7E00;
    color: #fff;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VISION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.promo_vision {
    background: url("../images/page/vision/vision_promo.jpg") no-repeat 50% /cover;
    height: 80rem;
}

.promo_vision .base_width {
    position: relative;
    height: 100%;
}

.promo_vision .promo_ttl_wrap {
    position: absolute;
    top: 56%;
    transform: translateY(-50%);
    right: 12rem;
}

.promo_vision .promo_ttl_wrap p.lead {
    font-size: 2.4rem;
    font-weight: 500;
    letter-spacing: .06em;
    color: #fff;
    margin-bottom: 1.5rem;
    text-align: center;
}

.promo_vision .promo_ttl_wrap h2.main_ttl {
    font-family: "Cormorant Garamond", serif;
    font-size: 10rem;
    letter-spacing: .03em;
    font-weight: 500;
    color: #fff;
    line-height: 1;
}

.page_vision > .page_width {
    max-width: 110rem;
}

.page-vision .message {
    max-width: 72rem;
    margin: 0 auto 16.5rem;
}

.page-vision .message h2.main_ttl {
    font-size: 3rem;
    letter-spacing: .06em;
    margin-bottom: 3.5rem;
    text-align: center;
    font-weight: 400;
    line-height: 1.666666666;
}

.page-vision .message .cmn_txt_wrap {
}

.page-vision .message .cmn_txt_wrap p {
    font-size: 1.6rem;
    line-height: 2.5;
}

.page-vision .vision_about {
    position: relative;
}

.page-vision .vision_about::after {
    position: absolute;
    content: "";
    top: 40%;
    transform: translateY(-50%);
    left: -27rem;
    right: 0;
    margin: 0 auto;
    background: url("../images/home/evolving-into-LIFE-TECH.png") no-repeat 50% / contain;
    width: 165.6rem;
    height: 20.2rem;
    z-index: -1;
}

.page-vision .vision_about ul.items.grid {
    display: grid;
    /* 横幅を均等に2分割 */
    grid-template-columns: repeat(2, 1fr);
    /* 縦に3マス分のエリアを作る（1と4が単独で行を使い、2と3が同じ行をシェアするため） */
    grid-template-rows: auto auto auto;
    /* アイテム同士の隙間（カンプに合わせて調整してください） */
    gap: 7rem 10rem;
    position: relative;
    justify-content: space-around;
    margin-bottom: 15.5rem;
}

.page-vision .vision_about ul.items.grid::before, .page-vision .vision_about ul.items.grid::after {
    position: absolute;
    content: "";
    width: 120rem;
    height: 1px;
    top: 55%;
    left: 50%;
    /* bottom: 0; */
    /* right: 0; */
    margin: auto;
    background: #000;
}

.page-vision .vision_about ul.items.grid::before {
    transform: translate(-50% , -50%) rotate(45deg);
}

.page-vision .vision_about ul.items.grid::after {
    transform: translate(-50% , -50%) rotate(-45deg);
}

.page-vision .vision_about ul.items.grid li {
    width: 40rem;
}

/* 1つ目の要素（T）：1行目の「中央（2マスぶち抜き）」に配置 */
.page-vision .vision_about ul.items.grid li:nth-child(1) {
    grid-column: 1 / 3;
    grid-row: 1 / 2;
    justify-self: center;
}

/* 2つ目の要素（H）：2行目の「左側」に配置 */
.page-vision .vision_about ul.items.grid li:nth-child(2) {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
    margin-left: -2rem;
}

/* 3つ目の要素（E）：2行目の「右側」に配置 */
.page-vision .vision_about ul.items.grid li:nth-child(3) {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
    margin-left: auto;
    margin-right: -3rem;
}

/* 4つ目の要素（C）：3行目の「中央（2マスぶち抜き）」に配置 */
.page-vision .vision_about ul.items.grid li:nth-child(4) {
    grid-column: 1 / 3;
    grid-row: 3 / 4;
    justify-self: center;
}

.page-vision .vision_about ul.items.grid li p.initial {
    font-family: "Cormorant Garamond", serif;
    font-size: 12rem;
    line-height: 1;
    font-weight: 500;
    letter-spacing: .03em;
    text-align: center;
}

.page-vision .vision_about ul.items.grid li h2.main_ttl {
    font-family: "Cormorant Garamond", serif;
    font-size: 3rem;
    letter-spacing: .03em;
    font-weight: 500;
    text-align: center;
    margin-bottom: 0.5rem;
}

.page-vision .vision_about ul.items.grid li p.main_txt {
    font-size: 1.8rem;
    letter-spacing: .03em;
    text-align: center;
    line-height: 2.1111111;
}

.page-vision .vision_about ul.bnr_items {
    min-height: 20rem;
    display: flex;
}

.page-vision .vision_about ul.bnr_items li {
    flex: 1;
    background: no-repeat 50%/ cover;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
}

.page-vision .vision_about ul.bnr_items li.emotion {
    background-image: url("../images/page/vision/vision_img01.jpg");
}

.page-vision .vision_about ul.bnr_items li.innovation {
    background-image: url("../images/page/vision/vision_img02.jpg");
    padding-top: 4rem;
}

.page-vision .vision_about ul.bnr_items li.innovation h2 {
    font-size: 3.2rem;
    color: #fff;
    font-family: "Cormorant Garamond", serif;
    letter-spacing: .03em;
}

.page-vision .vision_about ul.bnr_items li.innovation p.btn {
}

.page-vision .vision_about ul.bnr_items li.innovation p.btn a {
    color: #fff;
    margin: 0 auto 0;
}

.page-vision .vision_about ul.bnr_items li.innovation p.btn a::after {
    background: #fff;
}

.page-vision .vision_about ul.bnr_items li.creation {
    background-image: url("../images/page/vision/vision_img03.jpg");
}

.page-vision .vision_about ul.bnr_items li .hover0 {
    transition: 0.3s ease-in;
    opacity: 0;
}

.page-vision .vision_about ul.bnr_items li .hover_txt {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    opacity: 0;
    transition: 0.3s ease-in;
}

.page-vision .vision_about ul.bnr_items li .hover_txt h3.ttl {
}

.page-vision .vision_about ul.bnr_items li .hover_txt h3.ttl a {
    color: #fff;
}

.page-vision .vision_about ul.bnr_items li .hover_txt h3.ttl span {
    display: block;
}

.page-vision .vision_about ul.bnr_items li .hover_txt h3.ttl .ja {
    font-size: 3rem;
    font-weight: 400;
    letter-spacing: .1em;
    text-align: center;
}

.page-vision .vision_about ul.bnr_items li .hover_txt h3.ttl .en {
    font-size: 1.6rem;
    font-family: "Cormorant Garamond", serif;
    text-align: center;
}

@media (min-width:769px){
    .page-vision .vision_about ul.bnr_items:hover li .hover0 {
        opacity: 1;
}

.page-vision .vision_about ul.bnr_items li:hover .hover_txt {
    opacity: 1;
}
} 

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VALUE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-value-creation .page_promo .promo_inner .promo_ttl {
    font-size: 5.6rem;
}

.page_value-creation > .base_width {
    max-width: none;
}

.page-value-creation .value_sec:not(:last-child) {
    margin-bottom: 30rem;
}

.page-value-creation .value_sec .main_bg {
    background: no-repeat 50% / cover;
    min-height: 60rem;
    display: grid;
    align-items: center;
    justify-content: center;
    margin-bottom: 8.5rem;
}

.page-value-creation .value_sec01 .main_bg {
    background-image: url("../images/page/value/value_main_img01.jpg");
}

.page-value-creation .value_sec02 .main_bg {
    background-image: url("../images/page/value/value_main_img02.jpg");
}

.page-value-creation .value_sec03 .main_bg {
    background-image: url("../images/page/value/value_main_img03.jpg");
}

.page-value-creation .value_sec .main_bg h2.main_ttl {
    color: #fff;
    display: grid;
    gap: 1rem;
}

.page-value-creation .value_sec .main_bg h2.main_ttl > span {
    display: flex;
    align-items: center;
    justify-content: center;
}

.page-value-creation .value_sec .main_bg h2.main_ttl span.en_txt {
    font-family: "Cormorant Garamond", serif;
    font-size: 2.4rem;
    font-weight: 500;
    letter-spacing: .03em;
}

.page-value-creation .value_sec .main_bg h2.main_ttl span.en span.num {
    font-size: 2.2rem;
    letter-spacing: .03em;
    font-weight: 500;
}

.page-value-creation .value_sec .main_bg h2.main_ttl span.ja {
    font-size: 4rem;
    letter-spacing: .1em;
    font-weight: 400;
}

.page-value-creation .value_sec {
}

.page-value-creation .value_sec > .base_width {
    max-width: 120rem;
    min-width: 120rem;
}

.page-value-creation .value_sec .contents {
    margin-bottom: 15rem;
}

.page-value-creation .value_sec .contents p {
    line-height: 3.25;
    letter-spacing: .03em;
    text-align: center;
}

.page-value-creation .value_sec .inner {
    padding-left: 5rem;
}

.page-value-creation .value_sec .inner .ttl_wrap {
    justify-content: space-between;
    align-items: center;
    padding: 0 5rem 0 0;
    margin-bottom: 4rem;
}

.page-value-creation .value_sec .inner .ttl_wrap h2.main_ttl {
    font-size: 3rem;
    letter-spacing: .1em;
    font-weight: 400;
}

.page-value-creation .value_sec .inner .ttl_wrap p.txt {
    letter-spacing: .03em;
}

.page-value-creation .value_sec .inner ul.items {
    grid-template-columns: repeat(2 , 1fr);
    gap: 3rem;
}

.page-value-creation .value_sec .inner ul.items li {
    max-width: 56rem;
}

.page-value-creation .value_sec .inner ul.items li p.img {
    position: relative;
    margin-bottom: 1rem;
}

.page-value-creation .value_sec .inner ul.items li p.img::after {
    position: absolute;
    content: "";
    background: url("../images/common/arrow02.svg") no-repeat 50% /1.6rem .7rem;
    width: 3rem;
    height: 3rem;
    bottom: 1.5rem;
    right: 1.5rem;
    border: 1px solid #fff;
    transition: .2s ease-in;
}

@media (min-width:769px){
    .page-value-creation .value_sec .inner ul.items li:hover p.img::after {
        background-color: #FD7E00;
        border-color: #FD7E00;
    }  
} 

.page-value-creation .value_sec .inner ul.items li p.img img {
    border-radius: 1rem;
}

.page-value-creation .value_sec .inner ul.items li h3.ttl {
    font-weight: 400;
}

.page-value-creation .value_sec .inner ul.items li h3.ttl a {
}

.page-value-creation .value_sec .inner ul.items li h3.ttl a span.en {
    font-size: 2rem;
    letter-spacing: .1em;
    position: relative;
    padding-right: 1.5rem;
    margin-right: 1.5rem;
}

.page-value-creation .value_sec .inner ul.items li h3.ttl a span.en::after {
    position: absolute;
    content: "";
    width: 1px;
    height: 80%;
    top: 0.5rem;
    bottom: 0;
    margin: auto 0;
    right: 0;
    background: #000000;
}

.page-value-creation .value_sec .inner ul.items li h3.ttl a span.ja {
    font-size: 1.4rem;
    letter-spacing: .1em;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
engineering-philosophy
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-engineering-philosophy {
    background: #1E1E1E;
    color: #fff;
}

.page-engineering-philosophy .page_promo .promo_inner .promo_ttl {
    font-size: 5.6rem;
}

.page-engineering-philosophy .page_promo .promo_inner .page_width {
    max-width: 110rem;
}

.page_engineering-philosophy h3.h3_ttl {
    font-size: 3rem;
    letter-spacing: .06em;
    margin: 0;
    font-weight: 400;
}

.page_engineering-philosophy p.btn a {
    font-size: 1.8rem;
    font-weight: 500;
    color: #fff;
}

.page_engineering-philosophy p.btn a::after {
    background: #fff;
}

.page_engineering-philosophy .inner {
    margin-bottom: 13rem;
}

.page_engineering-philosophy .inner:nth-child(2) {
    margin-bottom: 19rem;
}

.page_engineering-philosophy .inner h2.message {
    font-size: 3.8rem;
    line-height: 1.63157894;
    letter-spacing: .06em;
    margin-bottom: 8rem;
    font-weight: 400;
}

.page_engineering-philosophy .inner .contents {
}

.page_engineering-philosophy .inner .contents .f_wrap {
    justify-content: space-between;
}

.page_engineering-philosophy .inner .contents h3.ttl {
    font-size: 2.8rem;
    letter-spacing: .06em;
    margin-bottom: 3rem;
    font-weight: 400;
}

.page_engineering-philosophy .inner .contents p.txt {
    letter-spacing: .03em;
    line-height: 2.25;
    margin-bottom: 5rem;
}

.page_engineering-philosophy .inner .contents .f_wrap p.btn {
}

.page_engineering-philosophy .inner .contents .f_wrap p.btn a {
}

.page_engineering-philosophy .inner .contents .f_wrap p.btn a::after {
}

.page_engineering-philosophy .inner .contents .txt_wrap {
}

.page_engineering-philosophy .inner .contents .txt_wrap p.txt:not(:last-child) {
    margin-bottom: 1.5rem;
}

.page_engineering-philosophy .inner:first-child p.img {
    width: 60rem;
    margin: 0 auto;
}

.page_engineering-philosophy .inner:nth-child(2) p.img {
    width: 78.9rem;
    margin: 0 auto;
}

.page_engineering-philosophy .inner:first-child p.img img {
    margin-left: 3.5rem;
}

.page_engineering-philosophy .service {
    margin-bottom: 20.5rem;
}

.page_engineering-philosophy .service .f_wrap {
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.page_engineering-philosophy .service .f_wrap h3.ttl {
    /* font-size: 2.4rem; */
}

.page_engineering-philosophy .service .f_wrap p.txt {
    letter-spacing: .03em;
}

.page_engineering-philosophy .service .f_wrap p.btn {
}

.page_engineering-philosophy .service .f_wrap p.btn a {
}

.page_engineering-philosophy .service p.lead {
    margin-bottom: 3.5rem;
}

.page_engineering-philosophy .service ul.items.f_wrap {
    display: flex;
    gap: 2rem;
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}

.page_engineering-philosophy .service ul.items.f_wrap li {
    flex: 1;
    min-height: 30rem;
    position: relative;
    padding: 3rem 2.5rem;
    background: no-repeat 50% / cover;
    overflow: hidden;
}

.page_engineering-philosophy .service ul.items.f_wrap li:nth-child(1) {
    background-image: url("../images/page/service/service_img01.jpg");
}

.page_engineering-philosophy .service ul.items.f_wrap li:nth-child(2) {
    background-image: url("../images/page/service/service_img02.jpg");
}

.page_engineering-philosophy .service ul.items.f_wrap li::after {
    position: absolute;
    content: "";
    background: url(../images/common/plus.svg) no-repeat 50% / 1.4rem;
    width: 3rem;
    height: 3rem;
    bottom: 2rem;
    right: 2rem;
    border: 1px solid #fff;
    z-index: 2;
}

.page_engineering-philosophy .service ul.items.f_wrap li::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    z-index: 1;
}

/* ─── ここからtxt_blockと子要素の初期定義 ─── */
.page_engineering-philosophy .service ul.items.f_wrap li .txt_block {
    position: absolute;
    /* 初期位置は左上 */
    top: 2rem;
    left: 2.5rem;
    width: calc(100% - 5rem);
    z-index: 3;
}

.page_engineering-philosophy .service ul.items.f_wrap li h3.ttl, .page_engineering-philosophy .service ul.items.f_wrap li p.txt, .page_engineering-philosophy .service ul.items.f_wrap li p.hover_txt {
    text-align: left;
    margin: 0;
    width: 100%;
}

.page_engineering-philosophy .service ul.items.f_wrap li h3.ttl {
    margin-bottom: 0.5rem;
}

.page_engineering-philosophy .service ul.items.f_wrap li p.hover_txt {
    margin-top: 1.5rem;
    font-size: 1.6rem;
    line-height: 1.8;
    color: #fff;
    opacity: 0;
    visibility: hidden;
}

.page_engineering-philosophy .service ul.items.f_wrap li .txt_block h3.ttl a {
    font-size: 2.4rem;
    font-weight: 400;
    color: #fff;
}

.page_engineering-philosophy .service ul.items.f_wrap li .txt_block p.txt {
    font-size: 1.2rem;
}

/* ─── PCのみホバーアニメーションを実行 ─── */
@media screen and (min-width: 1025px) {
    .page_engineering-philosophy .service ul.items.f_wrap li {
        transition: flex 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    }

    .page_engineering-philosophy .service ul.items.f_wrap li::after {
        transition: opacity 0.4s ease;
    }

    .page_engineering-philosophy .service ul.items.f_wrap li::before {
        transition: opacity 0.4s ease;
    }

    /* 塊ごと中央へ移動させる transition */
    .page_engineering-philosophy .service ul.items.f_wrap li .txt_block {
        transition: top 0.6s cubic-bezier(0.25, 1, 0.5, 1), left 0.6s cubic-bezier(0.25, 1, 0.5, 1), transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    }

    /* 各テキストが中央揃えになる transition */
    .page_engineering-philosophy .service ul.items.f_wrap li h3.ttl, .page_engineering-philosophy .service ul.items.f_wrap li p.txt {
        transition: text-align 0.6s ease;
    }

    /* hover_txtが出現する transition */
    .page_engineering-philosophy .service ul.items.f_wrap li p.hover_txt {
        transition: opacity 0.4s ease 0.2s, visibility 0.4s ease 0.2s;
    }

    /* 7:3の可変 */
    .page_engineering-philosophy .service ul.items.f_wrap:hover li:hover {
        flex: 2.33;
    }

    .page_engineering-philosophy .service ul.items.f_wrap:hover li:not(:hover) {
        flex: 1;
    }

    .page_engineering-philosophy .service ul.items.f_wrap li:hover::before {
        opacity: 1;
    }

    .page_engineering-philosophy .service ul.items.f_wrap li:hover::after {
        opacity: 1;
        background-image: url("../images/common/arrow02.svg");
        border-color: #FD7E00;
        background-color: #FD7E00;
    }

    /* 【ホバー時】ブロックごと完全に中央配置（50%）に移動して、真ん中補正 */
    .page_engineering-philosophy .service ul.items.f_wrap li:hover .txt_block {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 85%;
        /* 横幅を少し絞って中央にまとめる */
    }

    /* 【ホバー時】テキストを中央揃えに切り替え */
    .page_engineering-philosophy .service ul.items.f_wrap li:hover h3.ttl, .page_engineering-philosophy .service ul.items.f_wrap li:hover p.txt, .page_engineering-philosophy .service ul.items.f_wrap li:hover p.hover_txt {
        text-align: center;
    }

    /* 【ホバー時】下にいるhover_txtを可視化 */
    .page_engineering-philosophy .service ul.items.f_wrap li:hover p.hover_txt {
        opacity: 1;
        visibility: visible;
    }
}

.issue {
}

.issue .f_wrap {
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5rem;
}

.issue .f_wrap h3.ttl {
    font-size: 3rem;
    font-weight: 400;
    margin: 0;
}

.issue .f_wrap p.txt {
    letter-spacing: .03em;
}

.issue ol.items {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 2rem;
}

.issue ol.items li {
    border: 1px solid #646464;
    /* min-height: 33rem; */
    padding: 3.5rem 4.5rem 3.5rem 3.5rem;
}

.issue ol.items li p.en {
    color: #646464;
    font-size: 1.2rem;
    letter-spacing: .03em;
    position: relative;
    display: table;
    padding-right: 2.2rem;
    margin-bottom: 0.9rem;
}

.issue ol.items li p.en::before {
    position: absolute;
    content: "";
    width: 1px;
    height: 1.2rem;
    background: #646464;
    bottom: 0.4rem;
    right: 1.4rem;
}

.issue ol.items li p.en::after {
    content: counter(ol_cnt);
    position: absolute;
    right: 0;
    bottom: 0.1rem;
}

.issue ol.items li h3.ttl {
    font-size: 2rem;
    line-height: 1.5;
    min-height: 6rem;
    letter-spacing: .03em;
    margin-bottom: 1.5rem;
    font-weight: 400;
}

.issue ol.items li p.txt {
    line-height: 1.875;
    letter-spacing: .03em;
}

.issue ol.items.pc_big {
    grid-template-columns: 1fr;
    margin-top: 2rem;
}

.issue ol.items.pc_big li {
    padding: 3.5rem 3.5rem 3.5rem 3.5rem;
}

.issue ol.items.pc_big li p.en::after {
    content: "9";
}

.issue ol.items.pc_big li p.img {
    width: 102.1rem;
    margin-bottom: 2rem;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BIZ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-business-scope .page_promo .promo_inner .promo_ttl {
    font-size: 5.6rem;
}

.page-business-scope > .page_promo .page_width {
    max-width: 110rem;
}

.page-business-scope {
}

.page_business-scope .inner {
    gap: 7rem;
    flex-wrap: nowrap;
    margin-bottom: 10rem;
}

.page_business-scope .inner p.main_lead {
    font-size: 3rem;
    letter-spacing: .06em;
    line-height: 1.66666666;
}

.page_business-scope .inner p.main_txt {
    letter-spacing: .03em;
    line-height: 2.25;
    width: 60%;
    flex-grow: 1;
}

.page-business-scope .inner02 {
    margin-bottom: 15rem;
}

.page-business-scope .inner02 .ttl_wrap {
    border-bottom: 1px solid;
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 5.5rem;
}

.page-business-scope .inner02 .ttl_wrap h3.ttl {
    font-size: 3.6rem;
    font-weight: 500;
    font-family: "Cormorant Garamond", serif;
    letter-spacing: .07em;
}

.page-business-scope .inner02 .ttl_wrap p.txt {
    letter-spacing: .03em;
}

.page-business-scope .inner02 .box {
}

.page-business-scope .inner02 .box p.slug {
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: .03em;
    margin-bottom: 2rem;
}

.page-business-scope .inner02 .box h3.ttl {
    font-size: 2.4rem;
    letter-spacing: .06em;
    font-weight: 400;
    margin-bottom: 1.5rem;
}

.page-business-scope .inner02 .box p.txt {
    letter-spacing: .03em;
    line-height: 2.125;
    margin-bottom: 4.5rem;
}

.page-business-scope .inner02 .box p.img {
    width: calc(100% + 1px);
}

.page-business-scope .inner03 {
    display: grid;
    gap: 0rem;
}

.page-business-scope .inner03:not(:last-child) {
    margin-bottom: 14rem;
}

.page-business-scope .inner03 .box {
}

.page-business-scope .inner03 .box p.slug {
    font-size: 2.4rem;
    margin-bottom: 2rem;
    position: relative;
    font-family: "Cormorant Garamond", serif;
    display: table;
}

.page-business-scope .inner03 .box p.slug::after {
    position: absolute;
    content: "";
    width: 1px;
    height: 50%;
    background: #000;
    top: 0;
    bottom: 0;
    margin: auto 0;
    right: 2rem;
}

.page-business-scope .inner03 .box p.slug .num {
    font-family: "Shippori Mincho","Noto Sans JP","游ゴシック体", "Yu Gothic", "yugothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
    margin-left: 2rem;
}

.page-business-scope .inner03 .box h3.ttl {
    font-size: 2.4rem;
    font-weight: 400;
    margin-bottom: 3rem;
    letter-spacing: .06em;
}

.page-business-scope .inner03 .box p.txt {
    line-height: 2.125;
    margin-bottom: 5.5rem;
    letter-spacing: .03em;
}

.page-business-scope .inner03 .box ul.img_wrap.grid {
    grid-template-columns: repeat(3 , 1fr);
    gap: 4rem;
}

.page-business-scope .inner03 .box ul.img_wrap.grid li {
}

.page-business-scope .inner03 .box ul.img_wrap.grid li p.main_img {
    margin-bottom: 1.5rem;
}

.page-business-scope .inner03 .box ul.img_wrap.grid li h3.ttl {
    font-size: 2rem;
    margin-bottom: 1rem;
    letter-spacing: .06em;
}

.page-business-scope .inner03 .box ul.img_wrap.grid li p.txt {
    line-height: 1.875;
}

.page-business-scope .inner03 .box02 {
}

.page-business-scope .inner03 .box02 h4.ttl {
    padding-left: 1rem;
    font-size: 1.8rem;
    font-weight: 500;
    border-left: 4px solid #000000;
    margin-bottom: 3rem;
    font-family: "Cormorant Garamond", serif;
}

.page-business-scope .inner03 .box02 ul.items {
    display: grid;
    gap: 3rem;
}

.page-business-scope .inner03 .box02 ul.items li {
    display: grid;
    grid-template-columns: 13.5rem 1fr;
    align-items: center;
}

.page-business-scope .inner03 .box02 ul.items li h5.ttl {
    font-size: 2rem;
    letter-spacing: .06em;
    font-weight: 400;
    border-right: 1px solid;
    height: 100%;
    display: grid;
    align-items: center;
}

.page-business-scope .inner03 .box02 ul.items li p.txt {
    line-height: 1.875;
    padding: 0 1rem 0 3rem;
}

.page-business-scope .faq_wrap {
}

.page-business-scope .faq_wrap .ttl_wrap {
}

.page-business-scope .faq_wrap .ttl_wrap h2.main_ttl {
}

.page-business-scope .faq_wrap .ttl_wrap p.txt {
}

.page-business-scope .faq_wrap ol.items {
}

.page-business-scope .faq_wrap ol.items li {
}

.page-business-scope .faq_wrap ol.items li p.en {
}

.page-business-scope .faq_wrap ol.items li h3.ttl {
}

.page-business-scope .faq_wrap ol.items li p.main_txt {
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SERVICE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-services .page_promo .promo_inner .promo_ttl {
    font-size: 5.6rem;
}

.page-services > .page_promo .page_width {
    max-width: 110rem;
}

.page-services {
    background: #1E1E1E;
    color: #fff;
}

.page-services h2.message {
    line-height: 1.631578947;
    font-size: 3.8rem;
    margin-bottom: 8rem;
    font-weight: 400;
}

.page-services .se_inner {
    margin-bottom: 17.5rem;
}

.page-services .se_inner .box {
}

.page-services .se_inner .box:not(:last-of-type) {
    margin-bottom: 7.5rem;
}

.page-services .se_inner .box h3.ttl {
    font-size: 2.8rem;
    margin-bottom: 2rem;
    letter-spacing: .06em;
    font-weight: 400;
}

.page-services .se_inner .box p.txt {
    letter-spacing: .03em;
    line-height: 2.25;
}

.page-services .process:not(.process02) {
    margin-bottom: 18rem;
}

.page-services .process .ttl_wrap.f_wrap {
    justify-content: space-between;
    margin: 0 0 6rem;
    align-items: center;
}

.page-services .process .ttl_wrap.f_wrap h3.ttl {
    font-size: 3rem;
    letter-spacing: .06em;
    font-weight: 400;
}

.page-services .process .ttl_wrap.f_wrap p.txt {
    letter-spacing: .03em;
    font-size: 1.8rem;
}

.page-services .process ol.items {
    display: grid;
    grid-template-columns: repeat(2 , 1fr);
    gap: 7.5rem 6rem;
}

.page-services .process ol.items li p.en {
    position: relative;
    font-size: 1.2rem;
    color: #646464;
    display: table;
    padding-right: 2.5rem;
    margin-bottom: 1rem;
}

.page-services .process ol.items li:nth-child(n+10) p.en {
    padding-right: 3rem;
}

.page-services .process ol.items li p.en::before {
    position: absolute;
    content: "";
    width: 1px;
    height: 1.2rem;
    background: #646464;
    bottom: 0.4rem;
    right: 1.4rem;
}

.page-services .process ol.items li:nth-child(n+10) p.en::before {
    right: 2rem;
}

.page-services .process ol.items li p.en::after {
    content: counter(ol_cnt);
    position: absolute;
    right: 0;
    bottom: 0.1rem;
}

.page-services .process ol.items li h4.ttl {
    font-size: 3rem;
    letter-spacing: .06em;
    font-weight: 400;
    margin-bottom: 0.2rem;
}

.page-services .process ol.items li .f_wrap.english {
    justify-content: space-between;
}

.page-services .process ol.items li .f_wrap.english span {
    font-size: 1.2rem;
    color: #646464;
}

.page-services .process ol.items li p.txt {
    letter-spacing: .03em;
    border-top: 1px solid #fff;
    margin-top: .6rem;
    padding-top: 2.4rem;
    line-height: 2.25;
    margin-bottom: 2.5rem;
}

.page-services .process ol.items li.GRINDER p.txt {
    margin-bottom: 6rem;
}

.page-services .process ol.items li p.img img {
    width: 100%;
}

.page-services .issue.flow {
    margin-bottom: 18rem;
}

.page-services .issue.flow .f_wrap {
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6rem;
}

.page-services .issue.flow .f_wrap h3.ttl.h3_ttl {
    font-size: 3rem;
    letter-spacing: .1em;
    margin: 0;
}

.page-services .issue.flow .f_wrap p.txt {
    letter-spacing: .03em;
}

.page-services .issue.flow ol.items {
    grid-template-columns: repeat(4,1fr);
    gap: 2.8rem 2rem;
}

.page-services .issue.flow ol.items li.nav-open-sp {
    border-left: none;
    border-right: none;
    padding: 2rem 0rem;
}

.page-services .issue.flow ol.items li.nav-open-sp nav p.txt {
    font-size: 1.4rem;
    line-height: 1.714285714;
    margin-bottom: 3rem;
    min-height: 12rem;
}

.page-services .issue.flow ol.items li.nav-open-sp nav .list_items {
    display: grid;
    gap: 0.5rem;
}

.page-services .issue.flow ol.items li.nav-open-sp nav .list_items p.ttl {
    font-size: 1.4rem;
    position: relative;
    padding-left: 1.5rem;
    line-height: 1.42857142;
}

.page-services .issue.flow ol.items li.nav-open-sp nav .list_items p.ttl::before {
    position: absolute;
    content: "";
    width: 2px;
    height: 100%;
    top: 0;
    margin: 0;
    margin: auto 0;
    left: 0;
    background: #fff;
}

.page-services .issue.flow ol.items li.nav-open-sp nav .list_items p.sub_txt {
    font-size: 1.4rem;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
tech-action
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-tech-action .page_promo .promo_inner .promo_ttl {
    position: relative;
    font-weight: 400;
}

.page-tech-action .page_promo .promo_inner .page_width {
    max-width: 110rem;
}

.page-tech-action .page_promo .promo_inner .promo_ttl::after {
    position: absolute;
    content: "";
    background: #000;
    width: 85rem;
    height: 1px;
    top: 0;
    bottom: 0;
    margin: auto 0;
    right: 0;
}

.page_tech-action {
}

.page_tech-action > .base_width {
    max-width: none;
}

.page_tech-action .base_width {
}

.page_tech-action .base_width .inner {
}

.page_tech-action .base_width .inner h2.main_ttl {
    font-size: 3rem;
    letter-spacing: .06em;
    line-height: 1.6666666;
    margin-bottom: 2rem;
    font-weight: 400;
}

.page_tech-action .base_width .inner .txt_wrap {
    width: 59.5rem;
    margin-left: auto;
}

.page_tech-action .base_width .inner .txt_wrap p {
    letter-spacing: .03em;
    line-height: 2.25;
}

.page_tech-action .base_width .inner .txt_wrap p:not(:last-child):not(.pc):not(.sp) {
    margin-bottom: 2.8rem;
}

.page_tech-action ul.items {
    width: 91.1rem;
    display: flex;
    margin-top: 9.5rem;
}

.page_tech-action ul.items li {
    min-height: 30rem;
    flex: 1;
    padding: 2rem 2rem;
    overflow: hidden;
    position: relative;
    z-index: 0;
}

.page_tech-action ul.items li::after {
    z-index: -1;
    position: absolute;
    content: "";
    background: no-repeat 50% / cover;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transition: .3s ease-in;
}

.page_tech-action ul.items li:nth-child(1)::after {
    background-image: url("../images/common/cmn/ag.jpg");
}

.page_tech-action ul.items li:nth-child(2)::after {
    background-image: url("../images/common/cmn/bee.jpg");
}

.page_tech-action ul.items li h3.ttl {
    margin-bottom: 2rem;
}

.page_tech-action ul.items li h3.ttl a {
    display: flex;
    align-items: center;
    gap: 3rem;
    position: relative;
    color: #fff;
}

.page_tech-action ul.items li h3.ttl a .en::after {
    position: absolute;
    content: "";
    width: 1px;
    height: 100%;
    background: #fff;
    top: 50%;
    right: -1.5rem;
    transform: translateY(-50%);
    transition: .3s ease-in;
}

.page_tech-action ul.items li h3.ttl a span {
    letter-spacing: .1em;
}

.page_tech-action ul.items li h3.ttl a span.en {
    font-size: 2rem;
    position: relative;
}


.page_tech-action ul.items li h3.ttl a span.ja {
    font-size: 1.4rem;
}

.page_tech-action ul.items li p.slug {
    font-size: 1.4rem;
    letter-spacing: .03em;
    color: #fff;
}

@media (min-width: 768px) {
    .page_tech-action ul.items li h3.ttl a, .page_tech-action ul.items li p.slug {
        opacity: 0;
        transition: .3s ease-in;
    }

    .page_tech-action ul.items li:hover::after {
        transform: scale(1.1);
    }

    .page_tech-action ul.items li:hover h3.ttl a, .page_tech-action ul.items li:hover p.slug {
        opacity: 1;
    }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ABOUT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-about .page_promo {
}

.page-about .page_promo .page_width {
    max-width: 110rem;
}

.page-about .page_promo .promo_inner .promo_ttl {
    font-size: 5.6rem;
    font-family: "Cormorant Garamond", serif;
    font-weight: 500;
}

.page_about {
}

.page_about .about_inner {
}

.page_about .about_inner .box.biggelink {
    min-height: 50rem;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 2.5rem;
}

.page_about .about_inner .box.biggelink p.bg {
    position: absolute;
    top: 0;
    left: 0;
}

.page_about .about_inner .box.biggelink p.bg img {
    width: 100%;
}

.page_about .about_inner .box.biggelink .contents {
    position: relative;
    color: #fff;
    position: absolute;
    top: 21rem;
    left: 10rem;
}

.page_about .about_inner .box.biggelink .contents h2.main_ttl {
    font-size: 2.4rem;
    font-weight: 400;
    letter-spacing: .06em;
    line-height: 1.66666666;
    margin-bottom: 0.5rem;
}

.page_about .about_inner .box.biggelink .contents h3.sub_ttl {
    margin-bottom: 3.5rem;
}

.page_about .about_inner .box.biggelink .contents h3.sub_ttl span {
    display: table;
}

.page_about .about_inner .box.biggelink .contents h3.sub_ttl span.en {
    font-size: 2.8rem;
    font-weight: 500;
    font-family: "Cormorant Garamond", serif;
    letter-spacing: .03em;
}

.page_about .about_inner .box.biggelink .contents h3.sub_ttl span.ja {
    font-size: 1.6rem;
    margin-top: -0.5rem;
}

.page_about .about_inner .box.biggelink .contents p.btn {
}

.page_about .about_inner .box.biggelink .contents p.btn a {
    color: #fff;
    font-size: 1.8rem;
    letter-spacing: .03em;
    font-family: "Cormorant Garamond", serif;
    position: relative;
    padding-right: 3.5rem;
}

.page_about .about_inner .box.biggelink .contents p.btn a::after {
    position: absolute;
    content: "";
    mask: url("../images/common/arrow.svg") no-repeat 50% / contain;
    width: 2.6rem;
    height: .6rem;
    bottom: 0;
    right: 0;
    background: #fff;
    top: 0;
    margin: auto 0;
}

.page_about .about_inner ul.items.grid {
    grid-template-columns: repeat(2 , 1fr);
    gap: 3rem;
}

.page_about .about_inner ul.items.grid li.biggerlink {
    min-height: 35rem;
    position: relative;
    overflow: hidden;
    border-radius: 12px;
}

.page_about .about_inner ul.items.grid li.biggerlink::after {
    position: absolute;
    content: "";
    background: url("../images/common/arrow02.svg") no-repeat 50% /1.6rem .7rem;
    width: 3rem;
    height: 3rem;
    bottom: 2rem;
    right: 2.5rem;
    border: 1px solid #fff;
}

.page_about .about_inner ul.items.grid li.biggerlink p.bg {
    position: absolute;
    top: 0;
    left: 0;
}

.page_about .about_inner ul.items.grid li.biggerlink p.bg img {
    width: 100%;
}

.page_about .about_inner ul.items.grid li.biggerlink h3.sub_ttl {
    position: absolute;
    bottom: 2rem;
    left: 3.5rem;
}

.page_about .about_inner ul.items.grid li.biggerlink h3.sub_ttl a {
    color: #fff;
}

.page_about .about_inner ul.items.grid li.biggerlink h3.sub_ttl a span {
    display: table;
}

.page_about .about_inner ul.items.grid li.biggerlink h3.sub_ttl a span.en {
    font-size: 2.8rem;
    font-weight: 500;
    font-family: "Cormorant Garamond", serif;
}

.page_about .about_inner ul.items.grid li.biggerlink h3.sub_ttl a span.ja {
    font-size: 1.6rem;
    margin-top: -0.5rem;
}

@media (min-width: 769px) {
    .page_about .about_inner .box.biggelink .contents p.btn a:hover::after {
        right: -2rem;
    }

    .page_about .about_inner ul.items.grid li.biggerlink::after {
        transition: .2s ease-in;
    }

    .page_about .about_inner ul.items.grid li.biggerlink:hover::after {
        background-color: #FD7E00;
    }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MESSAGE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.promo_message {
    background: url("../images/page/about/message/message_mv.jpg") no-repeat 50% /cover;
    height: 80rem;
}

.promo_message {
    background: url("../images/page/about/message/message_mv.jpg") no-repeat 50% /cover;
    height: 80rem;
}

.page_message {
}

.page_message .page_width {
    max-width: 110rem;
}

.page_message .inner {
}

.page_message .inner h2.main_ttl {
    font-size: 3rem;
    line-height: 1.66666666;
    letter-spacing: .03em;
    font-weight: 400;
    margin-bottom: 4rem;
}

.page_message .inner .txt_wrap {
    margin-bottom: 4.5rem;
}

.page_message .inner .txt_wrap p {
    line-height: 3.125;
}

.page_message .inner .txt_wrap p:not(:last-child) {
    margin-bottom: 2.5rem;
}

.page_message .inner .profile_wrap {
}

.page_message .inner .profile_wrap p.company {
    text-align: right;
    letter-spacing: .03em;
}

.page_message .inner .profile_wrap p.position {
    text-align: right;
    letter-spacing: .03em;
}

.page_message .inner .profile_wrap p.name {
    width: 14.5rem;
    margin-left: auto;
    margin-top: 1.5rem;
}

.page_message .inner .profile_wrap p.name img.alignnone.size-full {
}

ul.about_btn_wrap.f_wrap {
    justify-content: center;
    gap: 7rem;
    margin-top: 10rem;
}

ul.about_btn_wrap.f_wrap li {
    width: 20rem;
}

ul.about_btn_wrap.f_wrap li a {
    letter-spacing: .03em;
    font-weight: 500;
    position: relative;
    border-bottom: 1px solid;
    padding-right: 5rem;
    display: block;
    padding: 0 1rem;
}

ul.about_btn_wrap.f_wrap li a::after {
    position: absolute;
    content: "";
    mask: url("../images/common/arrow.svg") no-repeat 50% / contain;
    width: 2.6rem;
    height: 5.5rem;
    top: 0;
    bottom: 1rem;
    margin: auto 0;
    right: .8rem;
    background: #000;
}

@media (min-width:769px){
    ul.about_btn_wrap.f_wrap li a:hover::after {
        right: -.8rem;
    }
} 

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HISTORY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.promo_history {
    background: url("../images/page/about/history/history_mv.jpg") no-repeat 50% /cover;
    height: 80rem;
}

.page_history > .page_width {
    max-width: 110rem;
}

.history_wrap {
}

.history_wrap .inner {
}

.history_wrap .inner:not(:last-of-type) dl {
    padding-bottom: 8.5rem;
}

.history_wrap .inner:has(.small):not(:last-of-type) dl {
    padding-bottom: 3.5rem;
}

.history_wrap .inner.mb_under_small dl {
    padding-bottom: 3rem;
}

.history_wrap .inner.mb_under_big dl {
    padding-bottom: 7.5rem !important;
}

.history_wrap .inner dl {
    position: relative;
    display: grid;
    grid-template-columns: 16rem 1fr;
    padding: 2rem 0 0;
}

.history_wrap .inner:last-of-type dl {
    padding-bottom: 8.5rem;
}

.history_wrap .inner dl dt {
}

.history_wrap .inner dl::before {
    position: absolute;
    content: "";
    width: 1px;
    height: 100%;
    background: #000;
    top: 0;
    left: 0;
}

.history_wrap .inner dl dt p.period {
    letter-spacing: .03em;
    display: table;
    position: relative;
    padding: 0 2.4rem;
    margin-bottom: 3rem;
    white-space: nowrap;
}

.history_wrap .inner dl dt p.period::after {
    position: absolute;
    content: "";
    background: #000;
    width: 120%;
    height: 1px;
    left: -3rem;
    bottom: 0;
}

.history_wrap .inner dl dt p.year {
    font-size: 2.4rem;
    position: relative;
    display: table;
    padding: 0 0 0 2.5rem;
}

.history_wrap .inner dl dt p.year.small {
    font-size: 1.6rem;
}

.history_wrap .inner dl dt p.year::before, .history_wrap .inner dl dt p.year::after {
    position: absolute;
    content: "";
    background: #000;
}

.history_wrap .inner dl dt p.year::before {
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 100%;
    left: -0.6rem;
    bottom: 0;
    top: 0;
    margin: auto 0;
}

.history_wrap .inner dl dt p.year::after {
    width: 2rem;
    height: 1px;
    top: 0;
    bottom: 0;
    margin: auto 0;
    left: 0;
}

.history_wrap .inner dl dd {
}

.history_wrap .inner dl dd h3.ttl {
    font-size: 2.4rem;
    letter-spacing: .03em;
    font-weight: 400;
    margin-bottom: 2rem;
}

.history_wrap .inner dl:has(.period) dd {
    margin-top: 6rem;
}

.history_wrap .inner dl dd .contents.grid {
}

.history_wrap .inner dl dd .contents.grid:has(p.img) {
    grid-template-columns: 1fr 38rem;
    gap: 5rem;
}

.history_wrap .inner dl dd .contents.grid p.txt {
    line-height: 1.875;
}

.history_wrap .inner dl dd .contents.grid:not(:has(p.img)) p.txt {
    padding-right: 16rem;
}

.history_wrap .inner dl dd .contents.grid p.txt span {
    display: block;
}

.history_wrap .inner dl dd .contents.grid p.txt span:not(:last-child) {
    margin-bottom: 1.5rem;
}

.history_wrap .inner dl dd .contents.grid p.img {
}

.history_wrap .inner dl dd .contents.grid p.img img.alignnone.size-full {
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERVIEW
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.promo_overview {
    background: url("../images/page/about/overview/overview_mv.jpg") no-repeat 50% /cover;
    height: 80rem;
}

.page_overview > .page_width {
    max-width: 110rem;
}

.page_overview {
}

.page_overview dl.info_list {
    display: grid;
    gap: 4.5rem;
}

.page_overview dl.info_list .item.grid {
    grid-template-columns: 13rem 1fr;
    gap: 3.5rem;
}

.page_overview dl.info_list .item.grid dt, .page_overview dl.info_list .item.grid dd {
    letter-spacing: .03em;
}

.page_overview dl.info_list .item.grid dt {
    font-weight: 600;
}

.page_overview dl.info_list .item.grid dd {
    line-height: 1.625;
}

.page_overview dl.info_list .item.grid dd .txt_wrap {
}

.page_overview dl.info_list .item.grid dd .txt_wrap p {
}

.page_overview dl.info_list .item.grid dd .txt_wrap p:not(:last-child) {
    margin-bottom: 2rem;
}

.page_overview dl.info_list .item.grid dd .f_wrap.inner {
    width: 55.4rem;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}

.page_overview dl.info_list .item.grid dd .f_wrap.inner:not(:last-child) {
    margin-bottom: 3rem;
}

.page_overview dl.info_list .item.grid dd .f_wrap.inner p.addr {
}

.page_overview dl.info_list .item.grid dd .f_wrap.inner p.map {
    margin-bottom: 2rem;
}

.page_overview dl.info_list .item.grid dd .f_wrap.inner p.map a {
    letter-spacing: .03em;
    position: relative;
    padding-right: 2.5em;
}

.page_overview dl.info_list .item.grid dd .f_wrap.inner p.map a::before , .page_overview dl.info_list .item.grid dd .f_wrap.inner p.map a::after {
    position: absolute;
    content: "";
    width: 3rem;
    height: 3rem;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto 0;
}

.page_overview dl.info_list .item.grid dd .f_wrap.inner p.map a::before {
    border: 1px solid #000;
}

.page_overview dl.info_list .item.grid dd .f_wrap.inner p.map a::after {
    mask: url("../images/common/arrow02.svg") no-repeat 50% /1.6rem auto;
    background: #000;
}

@media (min-width:769px){
    .page_overview dl.info_list .item.grid dd .f_wrap.inner p.map a:hover::before {
        background-color: #FD7E00;
        border-color: #FD7E00;
    }  
    
    .page_overview dl.info_list .item.grid dd .f_wrap.inner p.map a:hover::after {
        background: #fff;
    }
} 


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TECHACTION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.single-tech-action p.slug {
    font-size: 2.4rem;
    letter-spacing: .05em;
    margin-bottom: 1rem;
}

.single-tech-action h1 {
    font-size: 3.8rem;
    font-weight: 400;
    letter-spacing: .05em;
    margin-bottom: 9rem;
}

.filed_wrap:not(:last-child) {
    margin-bottom: 20rem;
}

.filed_wrap:not(:first-child) {
    margin-top: 7rem;
}

.filed_wrap .inner.mb {
    margin-bottom: 16rem;
}

.filed_wrap .inner img {
}

.filed_wrap .inner h2.main_ttl {
    font-size: 3rem;
    letter-spacing: .06em;
    font-weight: 400;
    line-height: 1.66666666;
    margin-bottom: 1.5rem;
}

.filed_wrap .inner .col02 {
    display: grid;
    grid-template-columns: 34rem 1fr;
    gap: 6rem;
}

.filed_wrap:not(:last-child) .inner .col02 {
    margin-bottom: 7rem;
}

.filed_wrap .inner .col02 p.img img {
    width: 100%;
}

.filed_wrap .inner .col02 .txt_area {
    font-size: 1.6rem;
    letter-spacing: .06em;
    line-height: 2.5;
}

.filed_wrap .inner .col02 .txt_area p {
}

.filed_wrap .inner .col02 .txt_area p:not(:last-child) {
    margin-bottom: 6.5rem;
}

.filed_wrap .inner .full_bg {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    height: 30rem;
    margin: 9rem 0 20rem;
    background: no-repeat 50% / cover;
}

.filed_wrap .inner .col01_img {
    margin-bottom: 20rem;
    margin-top: 7rem;
}

.filed_wrap .inner .col01_img h3.ttl {
    font-size: 2.2rem;
    font-weight: 400;
    margin-bottom: 6rem;
}

.filed_wrap .inner .col01_img p.img {
    text-align: center;
}

.filed_wrap .inner .col02_img {
    margin-bottom: 20rem;
    margin-top: 7.5rem;
}

.filed_wrap .inner .col02_img ul.items.grid {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 4rem;
}

.filed_wrap .inner .col02_img ul.items.grid li {
}

.filed_wrap .inner .col02_img ul.items.grid li h3.ttl {
    font-size: 1.8rem;
    font-weight: 400;
    margin-bottom: 1rem;
}

.filed_wrap .inner .col02_img ul.items.grid li p.img {
}

.filed_wrap .inner .col02_img ul.items.grid li p.img video {
    width: 100%;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TECHACTION ARCHIVE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.tec-action_archive .bg {
    background: rgba(181,181,181,.1);
    padding: 16rem 0;
}

.tec-action_archive h2.main_ttl {
    font-size: 3rem;
    letter-spacing: .05em;
    margin-bottom: 1rem;
    font-weight: 400;
}

.tec-action_archive p.lead {
    font-size: 1.8rem;
    letter-spacing: .03em;
    margin-bottom: 0;
}

.tec-action_archive ul.cmn_tec-action_list {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    margin-top: 4rem;
    gap: 4rem;
    margin-bottom: 4rem;
}

.tec-action_archive ul.cmn_tec-action_list li {
    position: relative;
    z-index: 0;
}

.tec-action_archive ul.cmn_tec-action_list li::after {
    z-index: -1;
    position: absolute;
    content: "";
    background: no-repeat 50% / cover;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transition: .3s ease-in;
}

.tec-action_archive ul.cmn_tec-action_list li p.img {
    padding-top: 60%;
}

.tec-action_archive ul.cmn_tec-action_list li .contents {
    position: absolute;
    top: 2rem;
    left: 2rem;
}

.tec-action_archive ul.cmn_tec-action_list li h3.ttl {
    margin-bottom: 2rem;
}

.tec-action_archive ul.cmn_tec-action_list li h3.ttl a {
    display: flex;
    align-items: center;
    gap: 3rem;
    position: relative;
    color: #fff;
    font-weight: 400;
}

.tec-action_archive ul.cmn_tec-action_list li h3.ttl a .en::after {
    position: absolute;
    content: "";
    width: 1px;
    height: 100%;
    background: #fff;
    top: 50%;
    right: -1.5rem;
    transform: translateY(-50%);
    transition: .3s ease-in;
}

.tec-action_archive ul.cmn_tec-action_list li h3.ttl a span {
    letter-spacing: .1em;
}

.tec-action_archive ul.cmn_tec-action_list li h3.ttl a span.en {
    font-size: 2rem;
    position: relative;
}

.tec-action_archive ul.cmn_tec-action_list li h3.ttl a span.ja {
    font-size: 1.4rem;
}

.tec-action_archive ul.cmn_tec-action_list li p.slug {
    font-size: 1.4rem;
    letter-spacing: .03em;
    color: #fff;
}

@media (min-width: 768px) {
    .tec-action_archive ul.cmn_tec-action_list li h3.ttl a, .tec-action_archive ul.cmn_tec-action_list li p.slug {
        opacity: 0;
        transition: .3s ease-in;
    }

    .tec-action_archive ul.cmn_tec-action_list li:hover::after {
        transform: scale(1.1);
    }

    .tec-action_archive ul.cmn_tec-action_list li:hover h3.ttl a, .tec-action_archive ul.cmn_tec-action_list li:hover p.slug {
        opacity: 1;
    }
}

/* メイン > ページナビ */
.wp_page_navi_wrap {
    padding-top: 3.5rem;
    /* 30px */
}

.wp_page_navi_wrap , .tec-action_archive .wp-pagenavi {
    display: flex;
    justify-content: center;
    padding: 0;
}

.wp_page_navi_wrap a, .wp_page_navi_wrap .dot, .wp_page_navi_wrap .extend, .wp_page_navi_wrap .current {
    width: 3rem;
    /* 30px */
    height: 3rem;
    /* 28px */
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.6rem;
    border: 1px solid #000 !important;
    color: inherit !important;
    margin: 0 .4rem;
    /* 0 4px */
    background: #fff !important;
}

.wp_page_navi_wrap a:hover {
    opacity: .7;
}

.wp_page_navi_wrap #current, .wp_page_navi_wrap .current {
    color: #fff;
    border: none;
    background: #003559;
}

.wp_page_navi_wrap .previous_link, .wp_page_navi_wrap .previouspostslink {
    margin-right: 4rem;
    /* 40px */
}

.wp_page_navi_wrap .next_link, .wp_page_navi_wrap .nextpostslink {
    margin-left: 4rem;
    /* 40px */
}

@media (max-width: 767px) {
    /* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TECHACTION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */.single-tech-action p.slug {
        font-size: 4rem;
        margin-bottom: 3rem;
    }

    .single-tech-action h1 {
        font-size: 4.4rem;
        margin-bottom: 10rem;
        white-space: nowrap;
    }

    .filed_wrap:not(:last-child) {
        margin-bottom: 29rem;
    }

    .filed_wrap:not(:first-child) {
        margin-top: 12rem;
        padding-bottom: 30rem;
    }

    .filed_wrap .inner {
    }

    .filed_wrap .inner img {
    }

    .filed_wrap .inner h2.main_ttl {
        font-size: 4rem;
        margin-bottom: 7rem;
        white-space: nowrap;
    }

    .filed_wrap .inner .col02 {
        display: flex;
        flex-direction: column-reverse;
    }

    .filed_wrap:not(:last-child) .inner .col02 {
        display: flex;
        flex-direction: column-reverse;
    }

    .filed_wrap .inner .col02 p.img img {
        display: none;
    }

    .filed_wrap .inner .col02 .txt_area {
        font-size: 3.2rem;
        line-height: 2;
    }

    .filed_wrap .inner .full_bg {
        /* display: none; */
        width: 100%;
        position: static;
        transform: none;
        height: auto;
        margin: 0 0 35rem;
    }

    .filed_wrap .inner .col01_img {
        margin-bottom: 36rem;
    }

    .filed_wrap .inner .col01_img h3.ttl {
        font-size: 4rem;
    }

    .filed_wrap .inner .col01_img p.img {
    }

    .filed_wrap .inner .col02_img {
        margin-bottom: 36rem;
    }

    .filed_wrap .inner .col02_img ul.items.grid {
        display: flex;
        flex-direction: column;
        gap: 7rem;
    }

    .filed_wrap .inner .col02_img ul.items.grid li {
        display: flex;
        flex-direction: column-reverse;
    }

    .filed_wrap .inner .col02_img ul.items.grid li h3.ttl {
        font-size: 2.4rem;
        margin: 1.5rem 0 0;
    }

    .filed_wrap .inner .col02_img ul.items.grid li p.img {
    }

    /* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TECHACTION ARCHIVE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
    .tec-action_archive .bg {
        padding-bottom: 7rem;
    }

    .tec-action_archive h2.main_ttl {
        font-size: 4rem;
        margin-bottom: 2rem;
        margin: 0 0 2rem;
    }

    .tec-action_archive p.lead {
        font-size: 3.2rem;
        margin: 0;
    }

    .tec-action_archive ul.cmn_tec-action_list {
        grid-template-columns: 1fr;
        margin-top: 3rem;
    }

    .tec-action_archive ul.cmn_tec-action_list li {
    }

    .tec-action_archive ul.cmn_tec-action_list li::after {
    }

    .tec-action_archive ul.cmn_tec-action_list li p.img {
        padding-top: 70%;
        margin-bottom: 1rem;
    }

    .tec-action_archive ul.cmn_tec-action_list li .contents {
        position: static;
    }

    .tec-action_archive ul.cmn_tec-action_list li h3.ttl {
    }

    .tec-action_archive ul.cmn_tec-action_list li h3.ttl a {
        color: inherit;
    }

    .tec-action_archive ul.cmn_tec-action_list li h3.ttl a .en::after {
        background: #000;
    }

    .tec-action_archive ul.cmn_tec-action_list li h3.ttl a span {
    }

    .tec-action_archive ul.cmn_tec-action_list li h3.ttl a span.en {
        font-size: 2.4rem;
        font-weight: 400;
    }

    .tec-action_archive ul.cmn_tec-action_list li h3.ttl a span.ja {
        font-size: 2.4rem;
        font-weight: 400;
    }

    .tec-action_archive ul.cmn_tec-action_list li p.slug {
        display: none;
    }

    /* メイン > ページナビ */
    .wp_page_navi_wrap {
    }

    .wp_page_navi_wrap , .tec-action_archive .wp-pagenavi {
    }

    .wp_page_navi_wrap a, .wp_page_navi_wrap .dot, .wp_page_navi_wrap .extend, .wp_page_navi_wrap .current {
        font-size: 1.6rem;
    }

    .wp_page_navi_wrap a:hover {
    }

    .wp_page_navi_wrap #current, .wp_page_navi_wrap .current {
    }

    .wp_page_navi_wrap .previous_link, .wp_page_navi_wrap .previouspostslink {
    }

    .wp_page_navi_wrap .next_link, .wp_page_navi_wrap .nextpostslink {
    }
}


/**********************************
TECHACTION > VISIon
***********************************/
.page_tec-action_list.tec-action_archive {
    position: relative;
}

.page_tec-action_list.tec-action_archive.tec-action_archive .bg {
    background: transparent;
}

.page_tec-action_list.tec-action_archive p.btn {
    position: absolute;
    top: 16rem;
    right: 0;
}

.page_tec-action_list.tec-action_archive p.btn a {
    font-size: 2rem;
    letter-spacing: .03em;
    font-weight: 500;
    font-family: "Cormorant Garamond", serif;
    padding-right: 3.5rem;
    position: relative;
    display: table;
}

.page_tec-action_list.tec-action_archive p.btn a::after {
    position: absolute;
    content: "";
    mask: url(../images/common/arrow.svg) no-repeat 50% / contain;
    width: 2.6rem;
    height: .6rem;
    top: 0;
    bottom: 0;
    margin: auto 0;
    right: 0;
    background: #000;
    transition: transform 2s ease;
}

.page_tec-action_list.tec-action_archive p.btn a:hover::after {
    transform: rotate3d(1,0,0,720deg);
    transition: 2s;
}

.page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li {
    /* border-radius: 10px; */
    overflow: hidden;
}

.page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li p.img {
    padding-top: 85%;
    border-radius: 10px;
}

.page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li .contents {
    display: flex;
    flex-direction: column-reverse;
}

.page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li h3.ttl {
    margin-bottom: 1rem;
}

@media screen and (max-width: 768px) {
    .page_tec-action_list.tec-action_archive.tec-action_archive .bg {
        padding-bottom: 0;
    }
    
    .page_tec-action_list.tec-action_archive.tec-action_archive .base_width {
        width: 100%;
    }
    
    .page_tec-action_list.tec-action_archive p.btn  {
        display: none
    }

    .tec-action_archive ul.cmn_tec-action_list {
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li p.img {
        padding-top: 70%;
        border-radius: 0;
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li .contents {
        display: flex;
        flex-direction: column-reverse;
        position: absolute;
        top: 4rem;
        left: 2rem;
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li::after {
        position: absolute;
        content: "";
        background: url(../images/common/arrow02.svg) no-repeat 50% / 1.6rem .7rem;
        bottom: 4rem;
        right: 4rem;
        width: 3rem;
        height: 3rem;
        border: 1px solid #fff;
        transition: .2s ease-in;
        top: auto;
        left: auto;
        z-index: 2;
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li p.slug {
        display: block;
        position: absolute;
        font-size: 2.4rem;
        top: 2rem;
        right: 3rem;
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li h3.ttl {
        margin-bottom: 1rem;
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li h3.ttl a {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li h3.ttl a span.en {
        font-size: 4rem;
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li h3.ttl a > * {
        color: #fff;
    }

    .page_tec-action_list.tec-action_archive ul.cmn_tec-action_list li h3.ttl a .en::after {
        content: none;
    }
}
