/*!
Template:rishun
Theme Name: rishun_child
Theme URI: https://rishuntrading.co.jp
Description: Rishun is a very simple & easy to customize theme which is based on the Bootstrap. It is also very friendly with custom post types and custom taxonomies. When you add a new one, the breadcrumbs will be adjusted and posts will look beautifully without editing or adding a template files.
Author: RishunTrading Limited.
Author URI: https://rishuntrading.co.jp
Version: 1.0.0
Requires at least: 1.0
Tested up to: 1.0.0
Requires PHP: 5.6.0
Tags: blog, one-column, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks

License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Rishun WordPress theme, Copyright (C) 2022 RishunTrading Limited.
Rishun WordPress theme is licensed under the GPL.
Update Author:RishunTrading Limited
Update Author URI:https://rishuntrading.co.jp/
Version:1.0.0
*/
@charset "utf-8";
/************************************************************/
:root{
    --main-color1:#082964;
    --main-color2:#12357F;
    --sub-color:#7CA9DB;
    --font-color:#172439;
    --font-color2:#425466;
    --sp-pgheader-height: 200px;
    --tb-pgheader-height: 250px;
    --pc-pgheader-height: 350px;
    --noto-sans: 'Noto Sans JP', 'Inter', 'Yu Gothic', sans-serif;
    --noto-serif: 'Noto Serif JP', '游明朝', 'Yu Mincho', serif;
    --ptnB-pc-header-height:100px;
    --global-menu-height:50px;
}
/* English pages: default text alignment */
body.tmtech-english {
    --tmtech-default-text-align: left;
}

/*==========================================================*/
/* defalt define											*/
/*==========================================================*/
body, p{
    font-size:17px;
    letter-spacing:0.1em;
    text-align: var(--tmtech-default-text-align, justify);
    font-family:var(--noto-sans);
}
.nodata{
    color:#ff0000;
}
img{
    width:100%;
    height:auto;
}
.entry-body img{
    display:unset;
    width:auto;
    height: auto;
    max-width: 100%;
}
@media print {
    #mobile-menu {
        display: none !important;
    }
}
/*==========================================================*/
/* header       											*/
/*==========================================================*/
.site-header-logo a{
    display:flex;
    align-items:center;
    font-family:var(--noto-sans);
    letter-spacing: 0;
    font-size:32px;
}
.site-header-logo a img{
    width:60px;
    margin-right:5px;
}
/*==========================================================*/
/* header menu     											*/
/*==========================================================*/
.ptnB .site-header-wrap{
    width: 100%;
    height: var(--ptnB-sp-header-height);
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1800;
    background: var(--header-bk-color);
    box-shadow:none;
}
.site-header-menu>li>a{
    font-family:var(--noto-sans);
    font-size:16px;
    font-weight:400;
    height:var(--global-menu-height);
    display:flex;
    justify-content:center;
    align-items:center;
    padding:0 15px;
    background:var(--main-color2);
    transition:filter 0.3s;
}
.site-header-menu>li>a::before{
    content:none;
}
.site-header-menu>li>a:hover{
    filter:brightness(1.2);
}
.site-header-menu>li>.menu-trigger{
    font-family:var(--noto-sans);
    font-size:17px;
    font-weight:500;
    height:var(--global-menu-height);
    display:flex;
    justify-content:center;
    align-items:center;
    padding:0 15px;
}
.site-header-menu>li>.menu-trigger:hover{
    color:var(--main-color2);
    opacity:1;
}
.site-header-menu>.menu-item-has-children:hover>.menu-trigger{
    color:var(--main-color2);
    opacity:1;
}
.site-header-menu>li>.menu-trigger::before{
    content:none;
}
.site-header-menu ul.sub-menu{
    padding:0;
    transform:unset;
    pointer-events:none;
}
.site-header-menu>.menu-item-has-children:hover ul.sub-menu{
    pointer-events:auto;
}
.site-header-menu ul.sub-menu>li{
    width:100%;
    background:#fff;
    padding:0;
}
.site-header-menu ul.sub-menu .submenu-div{
    position:fixed;
    top:var(--ptnB-pc-header-height);
    left:0;
    width:100vw;
    background:#ffffff;
    opacity:0;
    transform:translateY(-12px);
    transition:
        opacity 0.3s ease,
        transform 0.3s ease;    
}
.site-header-menu>.menu-item-has-children:hover ul.sub-menu .submenu-div{
    opacity:1;
    transform:translateY(0);
}
.site-header-menu>.menu-item-has-children::after{
    content:none;
    border:0;
}
.site-header-menu>.menu-item-has-children:hover:after {
    content:none;
    border:0;
}
.submenu-menu{
    margin:0;
    padding:0;
    list-style: none;
    display:grid;
    grid-template-columns: repeat(4,1fr);
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    max-width:920px;
    margin-left:auto;
    margin-right:auto;
}
.submenu-menu>li{
    width:100%;
}
.submenu-menu>li>a{
    display:flex;
    width:100%;
    height:var(--global-menu-height);
    justify-content:center;
    align-items:center;
    color:var(--main-color2);
    background:#fff;
    font-size:17px;
    font-weight:500;
    position:relative;
}
.submenu-menu>li>a::before{
    content: "\f105";
    font-family: "Font Awesome 7 Free";
    font-weight: 900;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
    position: absolute;
    left: 0;
    top: 50%;
    translate: 0 -50%;
    color: var(--main-color1);
    transition: left 0.3s;    
}
.site-header-menu ul.sub-menu>li .submenu-menu>li>a:hover{
    background:#fff;
    color:var(--sub-color);
}
.sub-menu-item{
    display:table;
}
.gl-topmenu-div{
    display:flex;
}
.gl-topmenu-menu{
    margin:0;
    padding:0;
    list-style: none;
    display:flex;
    flex-flow:row nowrap;
    gap:20px;
}
.gl-topmenu-menu>li>a{
    color:var(--font-color);
    position:relative;
}
.gl-topmenu-menu>li>a::before{
    content:'';
    width:100%;
    height:1px;
    position:absolute;
    bottom:0;
    left:0;
    background:var(--font-color);
    transform:scale(0, 1);
    transform-origin: right center;
    transition:transform 0.3s
}
.gl-topmenu-menu>li>a:hover::before{
    transform:scale(1,1);
    transform-origin: left center;
}
.switch-language{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0;
}
.switch-language a{
    font-weight:700;
    color:#777777;
    font-size:17px;
    transition:color 0.3s;
}
.switch-language a:hover{
    color:var(--main-color1);
}
.switch-language a.active_lang{
    pointer-events:none;
    color:var(--main-color1);
}
.switch-language a:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:3px;
}
.pc-header-submenu{
    display:none;
}
.mobile-navi-btn.right{
    position:fixed;
}
/* mobile menu */
.site-mobile-body-lang{
    display:flex;
    justify-content: center;
    width:100%;
}
.site-mobile-body-lang .switch-language a{
    font-size:20px;
    color:var(--sub-color);
}
.site-mobile-body-lang .switch-language a:hover{
    color:#fff;
}
.site-mobile-body-lang .switch-language a.active_lang{
    color:#fff;
}
.site-mobile-body-lang .switch-language span{
    color:var(--sub-color);
    font-size:20px;
}
@media(min-width:992px){
    .ptnB .site-header-wrap{
        height:var(--ptnB-pc-header-height);
    }
    .ptnB .container.site-header-container{
        max-width:unset;
        padding:0;
        grid-template-columns: 230px calc(100% - 230px);
        grid-template-rows:50px var(--global-menu-height);
    }
    .site-header-inner-wrap{
        grid-column:1/3;
        grid-row:1/2;
        width:100%;
        padding-left:calc( (100vw - 960px) / 2  + 20px );
        padding-right:calc( (100vw - 960px) / 2 + 20px );
        display:grid;
        grid-template-columns: auto auto;
        height:100%;
    }
    .ptnB .site-header-inner{
        height:100%;
        align-items:center;
        display:block;
    }
    .site-header-logo a img{
        width:auto;
        height:50px;
    }
    .ptnB .site-header-nav{
        grid-column:1/3;
        grid-row:2/3;
        background:var(--main-color2);
        padding-left:calc( (100vw - 960px) / 2  + 20px );
        padding-right:calc( (100vw - 960px) / 2 + 20px );
        display:flex;
        justify-content: center;
    }
    .pc-header-submenu{
        grid-column:2/3;
        grid-row:1/2;
        display:flex;
        justify-content:flex-end;
        align-items:center;
        gap:30px;
    }
    .menu-globalmenu-container{
        display:flex;
        width:100%;
        justify-content: center;
    }
    .site-header-menu{
        width:100%;
        justify-content: space-between;
    }
    html.is-hero-opening-scroll-locked .site-header-nav{
        pointer-events:none;
    }
}
@media(min-width:1200px){
    .site-header-inner-wrap{
        padding-left:calc( (100vw - 1140px) / 2  + 20px );
        padding-right:calc( (100vw - 1140px) / 2 + 20px );
    }
    .ptnB .site-header-nav{
        padding-left:calc( (100vw - 1140px) / 2  + 20px );
        padding-right:calc( (100vw - 1140px) / 2 + 20px );
    }
}
@media(min-width:1400px){
    .site-header-inner-wrap{
        padding-left:calc( (100vw - 1320px) / 2  + 20px );
        padding-right:calc( (100vw - 1320px) / 2 + 20px );
    }
    .ptnB .site-header-nav{
        padding-left:calc( (100vw - 1320px) / 2  + 20px );
        padding-right:calc( (100vw - 1320px) / 2 + 20px );
    }
}
/*==========================================================*/
/* common       											*/
/*==========================================================*/
.page-section{
    padding:60px 0;
}
@media(min-width:992px){
    .page-section{
        padding:100px 0;
    }
}
/*==========================================================*/
/* mobile menu     											*/
/*==========================================================*/
.mobile-menu-slide{
    overflow-y: hidden;
}
.site-mobile-nav>div{
    overflow-y:auto;
    height:calc(100vh - 60px - 200px);
    height:calc(100dvh - 60px - 200px);
}
/*==========================================================*/
/* inner page initial animation                             */
/*==========================================================*/
body:not(.front-page) .site-header.ptnB .site-header-wrap{
    opacity:0;
    transform:translateY(-100%);
    animation:tmtech-inner-header-drop 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.4s forwards;
    will-change:transform, opacity;
}
@keyframes tmtech-inner-header-drop{
    0%{
        opacity:0;
        transform:translateY(-100%);
    }
    100%{
        opacity:1;
        transform:none;
    }
}
body:not(.front-page) .page-header-ttl{
    opacity:0;
    filter:blur(5px);
    animation:tmtech-inner-page-header-title-blur 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.25s forwards;
    will-change:opacity, filter;
}
@keyframes tmtech-inner-page-header-title-blur{
    0%{
        opacity:0;
        filter:blur(5px);
    }
    100%{
        opacity:1;
        filter:blur(0);
    }
}
@media (prefers-reduced-motion: reduce){
    body:not(.front-page) .site-header.ptnB .site-header-wrap{
        opacity:1;
        transform:none;
        animation:none;
        will-change:auto;
    }
    body:not(.front-page) .page-header-ttl{
        opacity:1;
        filter:blur(0);
        animation:none;
        will-change:auto;
    }
}
/*==========================================================*/
/* top slide       											*/
/*==========================================================*/
.topslide-sec{
    padding:0;
}
.topslide-wrap{
    --opening-overlay-opacity: 1;
    width:100%;
    height:90vh;
    position:relative;
    z-index:1;
    overflow:visible;
}
.topslide-wrap.is-opening-position{
    z-index:2100;
}
.hero-slider,
.slider-wrapper{
    position:relative;
    width:100%;
    height:100%;
    min-height:inherit;
}
.slider-wrapper{
    overflow:hidden;
}
.slide{
    position:absolute;
    inset:0;
    z-index:1;
    opacity:0;
    visibility:hidden;
}
.slide:first-child{
    opacity:1;
    visibility:visible;
    z-index:2;
}
.slide img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    display:block;
    transform-origin:center center;
}
.topslide-wrap::before{
    content:'';
    width:100%;
    height:100%;
    background:linear-gradient(45deg,rgb(18, 53, 127,0.6) 20%, rgb(18, 53, 127, 0.05) 100%);
    position:absolute;
    top:0;
    left:0;
    z-index:10;
    pointer-events:none;
}
.topslide-wrap::after{
    content:'';
    width:100vw;
    height:100vh;
    height:100svh;
    background:var(--main-color2);
    position:fixed;
    top:0;
    left:0;
    z-index:3000;
    opacity:var(--opening-overlay-opacity);
    pointer-events:none;
}
.topslide-wrap.is-opening-finished::after{
    visibility:hidden;
}
.catchcopy{
    width:100%;
    position:absolute;
    top:50%;
    left:0;
    translate:0 -50%;
    z-index:3010;
    pointer-events:none;
}
.topslide-wrap.is-opening-position .catchcopy{
    position:fixed;
    top:50%;
    left:0;
    width:100vw;
    translate:0 -50%;
    z-index:3010;
}
.catchcopy img,
.catchcopy .tmtech_logo{
    display:table;
    width:120px;
    text-align:center;
    margin:0 auto 20px auto;
    opacity:0;
    visibility:hidden;
}
.catchcopy-desc{
    display:flex;
    justify-content:center;
    width:fit-content;
    max-width:100%;
    box-sizing:border-box;
    margin-left:auto;
    margin-right:auto;
}
.topslide-wrap.is-catchcopy-positioned .catchcopy-desc{
    width:fit-content;
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
    justify-content:center;
}
.scroll-wrap{
    position:absolute;
    bottom:10px;
    left:50%;
    translate:-50% 0;
    color:#fff;
    z-index:10;
}
.scroll-wrap a{
    color:#fff;
    display:flex;
    justify-content:center;
    transition:all 0.5s;
}
.scroll-wrap a:hover{
    color:#fff;
}
.scroll-wrap a .wrap{
    text-align:center;
}
.scroll-text{
    font-size:14px;
    display:block;
    letter-spacing:1px;
    font-family:var(--russo);
}
.icon-outer{
    display:flex;
    justify-content:center;
    position:relative;
    height:18px;
    overflow:hidden;
}
.icon-outer i{
    display:block;
    transform:translateY(-100%);
    animation:scrollArrow 2s ease-in-out infinite;
}
@keyframes scrollArrow {
    0%{
        transform:translateY(-100%);
        opacity:0;
    }
    30%{
        opacity:1;
    }
    60%{
        transform:translateY(0);
        opacity:1;
    }
    100%{
        transform:translateY(100%);
        opacity:0;
    }
}
@media screen and (min-width: 768px){
    .topslide-wrap.is-catchcopy-positioned .catchcopy-desc{
        margin-left:calc((100vw - 720px) / 2);
        margin-right:0;
        justify-content:flex-start;
    }
    .topslide-wrap.is-catchcopy-positioned .catchcopy-item{
        margin-left:0;
        margin-right:0;
    }
}
.catchcopy-item{
    overflow:hidden;
    display:inline-block;
    width:0;
    max-width:100%;
    white-space:nowrap;
}
.catchcopy-item.is-typewriter-complete{
    width:max-content;
    max-width:none;
    overflow:visible;
    animation:none;
}
.catchcopy-desc h2{
    display:table;
    white-space:nowrap;
    font-size:24px;
    font-weight:700;
    margin-bottom:20px;
    font-family:var(--noto-serif);
    letter-spacing:0.1em;
    color:#fff;
}
.catchcopy-desc h2 span{
    color:#fff;
}
.catchcopy-desc p{
    display:table;
    white-space:nowrap;
    font-size:14px;
    font-weight:500;
    color:#fff;
}
.anim-typewriter{
	animation: typewriter1 2s cubic-bezier(0.77, 0, 0.175, 1) 500ms both;
}
@keyframes typewriter1{
  from{width: 0;}
  to{width: 19em;}
}
@keyframes typewriter2{
    from{width: 0;}
    to{width: 33em;}
}
@keyframes typewriter3{
    from{width: 0;}
    to{width: 40em;}
}
@keyframes typewriter4{
    from{width: 0;}
    to{width: 49em;}
}
.hero-slider, .slider-wrapper{
    width:100%;
    height:90vh
}
.slide{
    height:90vh;
}
@media (prefers-reduced-motion: reduce){
    .anim-typewriter{
        animation:none;
    }
    .topslide-wrap.is-reduced-motion .catchcopy-item{
        overflow:visible;
    }
    .topslide-wrap.is-reduced-motion{
        --opening-overlay-opacity: 0;
    }
    .topslide-wrap.is-reduced-motion::after{
        visibility:hidden;
    }
    .topslide-wrap.is-reduced-motion .tmtech_logo{
        opacity:0;
        visibility:hidden;
        display:none;
    }
}
@media(min-width:768px){
    .topslide-wrap{
        aspect-ratio:unset;
        height:auto;
        min-height:unset;
    }
    .hero-slider, .slider-wrapper{
        width:100%;
        height:80vh;
    }
    .slide{
        height:80vh;
    }
    .catchcopy img,
    .catchcopy .tmtech_logo{
        width:150px;
        margin-bottom:30px;
    }
    .catchcopy-desc h2{
        font-size:40px;
    }
    .catchcopy-desc p{
        font-size:18px;
    }
    .anim-typewriter{
        animation: typewriter2 2s cubic-bezier(0.77, 0, 0.175, 1) 500ms both;
    }
}
@media(min-width:992px){
    .topslide-wrap.is-catchcopy-positioned .catchcopy-desc{
        margin-left:calc((100vw - 920px) / 2);
    }
    .catchcopy-desc h2{
        font-size:50px;
    }
    .catchcopy-desc p{
        font-size:20px;
    }
    .anim-typewriter{
        animation: typewriter3 2s cubic-bezier(0.77, 0, 0.175, 1) 500ms both;
    }
}
@media(min-width:1200px){
    .topslide-wrap.is-catchcopy-positioned .catchcopy-desc{
        margin-left:calc((100vw - 1120px) / 2);
    }
    .catchcopy-desc h2{
        font-size:60px;
    }
    .catchcopy-desc p{
        font-size:20px;
    }
    .anim-typewriter{
        animation: typewriter4 2s cubic-bezier(0.77, 0, 0.175, 1) 500ms both;
    }
}
@media(min-width:1400px){
    .topslide-wrap.is-catchcopy-positioned .catchcopy-desc{
        margin-left:calc((100vw - 1300px) / 2);
    }
}
/*==========================================================*/
/* home                                                     */
/*==========================================================*/
.home-role-sec,
.home-strength-sec,
.home-value-sec,
.home-links-sec,
.home-news-sec,
.home-contact-sec{
    position:relative;
    overflow:hidden;
}
.home-section-heading{
    margin-bottom:40px;
}
.home-section-number{
    margin:0 0 10px;
    color:#6B5AA6;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.home-section-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
    text-align:left;
    overflow-wrap:anywhere;
}
.home-section-ttl{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    text-align:left;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.home-section-line{
    display:block;
    width:60px;
    height:1px;
    background:#6B5AA6;
}
.home-section-heading--light .home-section-number{
    color:var(--sub-color);
}
.home-section-heading--light .home-section-en{
    color:var(--sub-color);
}
.home-section-heading--light .home-section-ttl{
    color:#ffffff;
}
.home-section-heading--light .home-section-line{
    background:rgba(124,169,219,0.8);
}
.home-btn-wrap{
    margin-top:40px;
}
.home-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:60px;
    min-width:0;
    border:1px solid var(--main-color1);
    color:var(--main-color1);
    background:#ffffff;
    font-size:16px;
    font-weight:500;
    letter-spacing:0.08em;
    line-height:1.4;
    text-decoration:none;
    transition:color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
    position:relative;
}
.home-btn i{
    position:absolute;
    top:50%;
    right:20px;
    translate:0 -50%;
    transition:right 0.3s;
}
.home-btn:hover i{
    right:10px;
}
.home-btn:hover{
    color:#ffffff;
    background:var(--main-color2);
    border-color:var(--main-color2);
}
.home-btn:focus-visible,
.home-news-more:focus-visible,
.home-link-card:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
.home-btn--light{
    color:#ffffff;
    border-color:rgba(255,255,255,0.7);
    background:transparent;
}
.home-btn--light:hover{
    color:var(--main-color1);
    background:#ffffff;
    border-color:#ffffff;
}
.home-btn--light:focus-visible{
    outline-color:#ffffff;
}
/* for before footer */
.site-beforefooter{
    padding:0;
}
.site-beforefooter a.home-btn--light{
    color:#ffffff;
}
.site-beforefooter a.home-btn--light:hover{
    color:var(--main-color1);
}
/*********************/
.home-media-frame{
    position:relative;
    overflow:hidden;
    background:#EAF4FB;
    border:1px solid #D9E2EC;
}
.home-media-frame img{
    display:block;
    width:100%;
    height:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
    object-position:center center;
}
html.is-home-reveal-ready .js-home-reveal,
html.is-home-reveal-ready .js-home-reveal-left,
html.is-home-reveal-ready .js-home-reveal-right{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change:opacity, transform;
}
html.is-home-reveal-ready .js-home-reveal-left,
html.is-home-reveal-ready .js-home-reveal-right{
    transform:translateY(24px);
}
html.is-home-reveal-ready .js-home-reveal.is-visible,
html.is-home-reveal-ready .js-home-reveal-left.is-visible,
html.is-home-reveal-ready .js-home-reveal-right.is-visible{
    opacity:1;
    transform:translate(0, 0);
}
@media (prefers-reduced-motion: reduce){
    html.is-home-reveal-ready .js-home-reveal,
    html.is-home-reveal-ready .js-home-reveal-left,
    html.is-home-reveal-ready .js-home-reveal-right{
        opacity:1;
        transform:none;
        transition:none;
        transition-delay:0s;
    }
}
/*==========================================================*/
/* home role                                                */
/*==========================================================*/
.home-role-sec{
    background:#ffffff;
}
.home-role-inner{
    display:grid;
    gap:40px;
    margin-bottom:40px;
}
.home-role-text,
.home-strength-lead,
.home-strength-text,
.home-value-lead,
.home-value-step-text,
.home-links-lead,
.home-link-card-text,
.home-contact-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
.home-role-text:last-child{
    margin-bottom:0;
}
.home-role-panels{
    display:grid;
    gap:20px;
    margin-bottom:40px;
}
.home-role-panel{
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#F8FBFE;
}
.home-role-panel--parent{
    border-color:var(--main-color1);
    background:var(--main-color1);
}
.home-role-panel--parent .home-role-panel-ttl,
.home-role-panel--parent .ul-home-role-points li{
    color:#ffffff;
}
.home-role-panel-ttl{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.ul-home-role-points{
    margin:0;
    padding:0 0 0 1.2em;
}
.ul-home-role-points li{
    margin:0 0 10px;
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.08em;
    line-height:1.8;
}
.ul-home-role-points li:last-child{
    margin-bottom:0;
}
.ol-home-role-items{
    display:grid;
    gap:12px;
    margin:0 0 10px;
    padding:0;
    list-style:none;
    counter-reset:none;
}
.home-role-item{
    display:grid;
    grid-template-columns:56px minmax(0, 1fr);
    gap:16px;
    align-items:center;
    padding:18px 16px;
    border:1px solid #D9E2EC;
    background:#ffffff;
}
.home-role-item-number{
    margin:0;
    color:#6B5AA6;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.home-role-item-ttl{
    margin:0;
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
/*==========================================================*/
/* home strength                                            */
/*==========================================================*/
.home-strength-sec{
    background:#F5F8FB;
}
.home-strength-lead{
    margin-bottom:40px;
}
.ul-home-strength-cards{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.home-strength-card{
    height:100%;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#ffffff;
}
.home-strength-card .pict{
    width:100%;
    margin-bottom:20px;
}
.home-strength-number{
    margin:0 0 12px;
    color:#6B5AA6;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.home-strength-ttl{
    margin:0 0 16px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.home-strength-text{
    margin-bottom:0;
}
/*==========================================================*/
/* home value                                               */
/*==========================================================*/
.home-value-sec{
    background:linear-gradient(145deg, var(--main-color1) 0%, #0B3F8C 60%, var(--main-color2) 100%);
}
.home-value-lead{
    margin-bottom:40px;
    color:rgba(255,255,255,0.92);
}
.ol-home-value-flow{
    display:grid;
    gap:20px;
    margin:0 0 10px;
    padding:0;
    list-style:none;
}
.home-value-step{
    position:relative;
    padding:28px 20px;
    border:1px solid rgba(255,255,255,0.22);
    background:rgba(255,255,255,0.08);
}
.home-value-step:not(:last-child)::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-12px;
    width:10px;
    height:10px;
    border-right:2px solid #6B5AA6;
    border-bottom:2px solid #6B5AA6;
    transform:translateX(-50%) rotate(45deg);
    z-index:1;
}
.home-value-step-number{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:13px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.home-value-step-ttl{
    margin:0 0 12px;
    color:#ffffff;
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.home-value-step-text{
    margin-bottom:0;
    color:rgba(255,255,255,0.9);
}
/*==========================================================*/
/* home links                                               */
/*==========================================================*/
.home-links-sec{
    background:#ffffff;
}
.home-links-lead{
    margin-bottom:40px;
}
.ul-home-link-cards{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.home-link-card{
    display:flex;
    flex-direction:column;
    height:100%;
    border:1px solid #D9E2EC;
    background:#ffffff;
    text-decoration:none;
    overflow:hidden;
    transition:border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.home-link-card:hover{
    border-color:var(--main-color2);
    box-shadow:0 10px 24px rgba(15,45,84,0.08);
    transform:translateY(-4px);
}
.home-link-card--accent{
    border-color:rgba(107,90,166,0.35);
}
.home-link-card--accent .home-link-card-en,
.home-link-card--accent .home-link-card-arrow{
    color:#6B5AA6;
}
.home-link-card-media{
    aspect-ratio:16 / 10;
    overflow:hidden;
    background:#EAF4FB;
}
.home-link-card-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
}
.home-link-card-body{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    padding:24px 20px 28px;
}
.home-link-card-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.home-link-card-ttl{
    margin:0 0 16px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.home-link-card-text{
    flex:1 1 auto;
    margin-bottom:20px;
}
.home-link-card-arrow{
    display:inline-flex;
    color:var(--main-color2);
    transition:transform 0.3s ease;
}
.home-link-card:hover .home-link-card-arrow{
    transform:translateX(4px);
}
/*==========================================================*/
/* home news                                                */
/*==========================================================*/
.home-news-sec{
    background:#F5F8FB;
}
.home-news-header{
    display:flex;
    flex-direction:column;
    gap:20px;
    margin-bottom:20px;
}
.home-news-header .home-section-heading{
    margin-bottom:0;
}
.home-news-more{
    display:inline-flex;
    align-items:center;
    gap:8px;
    align-self:flex-start;
    color:var(--main-color1);
    font-size:15px;
    font-weight:700;
    letter-spacing:0.08em;
    text-decoration:none;
}
.home-news-more i{
    color:var(--main-color2);
    transition:transform 0.3s ease;
}
.home-news-more:hover i{
    transform:translateX(3px);
}
.ul-tpinfo{
    display:block;
    width:100%;
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid #D9E2EC;
}
.ul-tpinfo li{
    width:100%;
    margin:0;
    border-bottom:1px solid #D9E2EC;
}
.ul-tpinfo li a.img_link,
.ul-tpinfo li a{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 20px;
    padding:20px 0;
    text-decoration:none;
    filter:none;
}
.tpinfolist-img,
.tpinfolist-txt{
    display:contents;
}
.tpinfolist-img .pict,
.tpinfolist-img .new-mark{
    display:none;
}
.tpinfolist-txt time{
    order:1;
    position:static;
    flex:0 0 auto;
    min-width:100px;
    color:var(--font-color2);
    font-size:14px;
    letter-spacing:0.06em;
}
.info-cat{
    order:2;
    position:static;
    padding:10px;
    border-radius:0;
    background:#EAF4FB;
    color:var(--main-color1);
    font-size:14px;
    font-weight:500;
    letter-spacing:0.06em;
}
.tpinfolist-txt h3{
    order:3;
    flex:1 1 220px;
    margin:0;
    color:var(--main-color1);
    font-size:17px;
    font-weight:500;
    letter-spacing:0.04em;
    line-height:1.6;
    transition:color 0.3s ease;
}
.img_link:hover{
    filter:none;
}
.img_link:hover .tpinfolist-txt{
    opacity:1;
}
.img_link:hover .tpinfolist-txt h3{
    color:var(--main-color2);
}
.nodata{
    color:var(--font-color2);
}
.nodata p{
    margin:0;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
/*==========================================================*/
/* home contact                                             */
/*==========================================================*/
.home-contact-sec{
    background:var(--main-color1);
    color:#ffffff;
}
.home-contact-media{
    position:absolute;
    inset:0;
    z-index:0;
}
.home-contact-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
}
.home-contact-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(120deg, rgba(8,41,100,0.92) 0%, rgba(4,44,161,0.78) 100%);
}
.home-contact-inner{
    position:relative;
    z-index:2;
}
.home-contact-text{
    margin:0;
    color:rgba(255,255,255,0.92);
}
@media (min-width:768px){
    .home-section-ttl{
        font-size:34px;
    }
    .home-section-ttl .br_sp{
        display:none;
    }
    .home-btn{
        width:auto;
        min-width:300px;
    }
    html.is-home-reveal-ready .js-home-reveal-left{
        transform:translateX(-30px);
    }
    html.is-home-reveal-ready .js-home-reveal-right{
        transform:translateX(30px);
    }
    html.is-home-reveal-ready .js-home-reveal.is-visible,
    html.is-home-reveal-ready .js-home-reveal-left.is-visible,
    html.is-home-reveal-ready .js-home-reveal-right.is-visible{
        transform:translate(0, 0);
    }
    .home-role-panels{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:20px;
    }
    .ol-home-role-items{
        grid-template-columns:repeat(5, minmax(0, 1fr));
        gap:12px;
    }
    .home-role-item{
        grid-template-columns:1fr;
        gap:10px;
        min-height:120px;
        align-content:center;
    }
    .ul-home-strength-cards{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:20px;
    }
    .ol-home-value-flow{
        grid-template-columns:repeat(4, minmax(0, 1fr));
        gap:16px;
    }
    .home-value-step:not(:last-child)::after{
        left:auto;
        right:-10px;
        bottom:50%;
        transform:translateY(50%) rotate(-45deg);
    }
    .ul-home-link-cards{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:20px;
    }
    .home-news-header{
        flex-direction:row;
        justify-content:space-between;
        align-items:flex-end;
    }
    .home-news-more{
        align-self:auto;
        margin-bottom:10px;
    }
    .home-news-sec .ul-tpinfo li a.img_link,
    .home-news-sec .ul-tpinfo li a{
        flex-wrap:nowrap;
        gap:20px;
        padding:20px 0;
    }
    .home-news-sec .info-cat{
        min-width:120px;
        text-align:center;
    }
    .post-sec .ul-tpinfo li a.img_link,
    .post-sec .ul-tpinfo li a{
        flex-wrap:nowrap;
        gap:20px;
        padding:20px 0;
    }
    .post-sec .info-cat{
        min-width:120px;
        text-align:center;
    }
}
@media (min-width:768px) and (prefers-reduced-motion: reduce){
    html.is-home-reveal-ready .js-home-reveal,
    html.is-home-reveal-ready .js-home-reveal-left,
    html.is-home-reveal-ready .js-home-reveal-right{
        opacity:1;
        transform:none;
        transition:none;
        transition-delay:0s;
    }
}
@media (min-width:992px){
    .home-contact-sec{
        padding:140px 0;
    }
    .home-section-ttl{
        font-size:32px;
    }
    .home-role-inner{
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        gap:50px;
        align-items:flex-start;
    }
    .ul-home-strength-cards{
        grid-template-columns:repeat(4, minmax(0, 1fr));
        gap:16px;
    }
    .ul-home-link-cards{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
    }
    .home-btn-wrap{
        display:flex;
        justify-content:center;
    }
}
@media (min-width:1200px){
    .home-role-inner{
        gap:70px;
    }
    .home-section-ttl{
        font-size:40px;
    }
    .ul-home-strength-cards{
        gap:20px;
    }
}
@media (prefers-reduced-motion: reduce){
    .home-btn i,
    .home-news-more i,
    .home-link-card,
    .home-link-card-arrow{
        transition:none;
    }
}
/*==========================================================*/
/* footer                                                   */
/*==========================================================*/
.site-footer{
    width:100%;
    padding:60px 0 30px;
    background:#f5f8fc;
    color:var(--font-color2);
    font-family:var(--noto-sans);
}
.site-footer .container{
    width:100%;
}
.site-footer-wrap{
    width:100%;
}
.site-footer .footerwidget{
    display:block;
    width:100%;
}
.site-footer-body{
    display:flex;
    flex-direction:column;
    gap:40px;
    width:100%;
    min-width:0;
    padding-bottom:40px;
}
.site-footer-body-left{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    width:100%;
    min-width:0;
}
.site-footer-body-logo{
    margin-bottom:20px;
    display:flex;
    justify-content: center;
    width:100%;
}
.site-footer-body-logo > a{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--main-color1);
    font-size:32px;
    font-weight:700;
    letter-spacing:0.04em;
    line-height:1.3;
    text-decoration:none;
    transition:color 0.3s ease, opacity 0.3s ease;
}
.site-footer-body-logo > a:hover{
    color:var(--main-color2);
}
.site-footer-body-logo > a:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:3px;
}
.site-footer-body-logo > a img{
    display:block;
    width:60px;
    height:auto;
    flex-shrink:0;
}
.site-footer-brand-wrap{
    width:100%;
    display:flex;
    justify-content:center;
}
.site-footer-brand-copy{
    margin:0 0 10px;
    color:var(--main-color1);
    font-family:var(--noto-serif);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    text-align:left;
}
.site-footer-brand-copy-en{
    margin:0 0 30px;
    color:var(--font-color2);
    font-size:14px;
    font-weight:500;
    letter-spacing:0.04em;
    line-height:1.7;
    text-align:left;
}

.site-footer-body-ctn-btn{
    width:100%;
    margin-bottom:30px;
    display:flex;
    justify-content: center;
}
.site-footer-body-ctn-btn a{
    display:flex;
    max-width:300px;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:50px;
    padding:10px 20px;
    border:1px solid var(--main-color1);
    background:#ffffff;
    color:var(--main-color1);
    font-size:14px;
    font-weight:500;
    letter-spacing:0.08em;
    line-height:1.4;
    text-decoration:none;
    transition:color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
    position:relative;
}
.site-footer-body-ctn-btn a span{
    display:inline-flex;
    align-items:center;
    gap:10px;
}
.site-footer-body-ctn-btn i{
    position:absolute;
    top:50%;
    right:20px;
    transition:right 0.3s ease;
    translate:0 -50%;
}
.site-footer-body-ctn-btn a:hover{
    color:#ffffff;
    background:var(--main-color2);
    border-color:var(--main-color2);
}
.site-footer-body-ctn-btn a:hover i{
    right:10px;
}
.site-footer-body-ctn-btn a:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:3px;
}
.site-footer-body-lang{
    width:100%;
    display:flex;
    justify-content: center;
}
.site-footer-body-right{
    display:flex;
    flex-direction:column;
    gap:40px;
    width:100%;
    min-width:0;
}
.site-footer-body-right .footer_widget,
.site-footer-body-right .footer_widget1,
.site-footer-body-right .footer_widget2,
.site-footer-body-right .footer_widget3,
.site-footer-body-right .footer_widget_first,
.site-footer-body-right .footer_widget_second{
    width:100%;
    min-width:0;
    margin:0;
    padding:0;
}
.site-footer-body-right .footer_widget_title{
    margin:0 0 10px;
    padding:0 0 10px;
    border-bottom:2px solid var(--main-color1);
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
    text-align:left;
}
.site-footer-body-right .menu{
    margin:0;
    padding:0;
    list-style:none;
}
.site-footer-body-right .menu > li{
    margin:0;
    padding:0;
    border-bottom:1px solid rgba(8, 41, 100, 0.1);
}
.site-footer-body-right .menu > li > a{
    display:block;
    padding:20px 0;
    color:var(--main-color1);
    font-size:14px;
    font-weight:500;
    letter-spacing:0.04em;
    line-height:1.6;
    text-decoration:none;
    transition:color 0.3s ease, opacity 0.3s ease;
}
.site-footer-body-right .menu > li > a:hover{
    color:var(--sub-color);
}
.site-footer-body-right .menu > li > a:focus-visible{
    outline:2px solid var(--sub-color);
    outline-offset:2px;
}
.site-footer-bottom{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
    width:100%;
    min-width:0;
    margin:0;
    padding:30px 0 0;
    border-top:1px solid rgba(8, 41, 100, 0.4);
}
.site-footer-bottom-menu{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    justify-content: center;
    width:100%;
}
.site-footer-bottom-menu a{
    color:var(--font-color2);
    font-size:14px;
    font-weight:500;
    letter-spacing:0.04em;
    line-height:1.6;
    text-decoration:none;
    transition:color 0.3s ease, opacity 0.3s ease;
}
.site-footer-bottom-menu a + a::before{
    content:"|";
    margin-right:10px;
    color:rgba(8, 41, 100, 0.35);
}
.site-footer-bottom-menu a:hover{
    color:var(--main-color2);
}
.site-footer-bottom-menu a:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:2px;
}
.site-footer .copyright{
    margin:0;
    padding:0;
    color:var(--font-color2);
    font-size:14px;
    font-weight:500;
    letter-spacing:0.04em;
    line-height:1.6;
    text-align:left;
    width:100%;
    text-align:center;
}
@media (prefers-reduced-motion: reduce){
    .site-footer-body-logo > a,
    .site-footer-body-ctn-btn a,
    .site-footer-body-ctn-btn i,
    .site-footer .switch-language a,
    .site-footer-body-right .menu > li > a,
    .site-footer-bottom-menu a{
        transition:none;
    }
}
@media (min-width:768px){
    .site-footer .footerwidget{
        display:block;
    }
    .site-footer-body{
        flex-direction:column;
    }
/*    
    .site-footer-body-right{
        display:flex;
        flex-direction:column;
        gap:40px;
    }
*/
    .site-footer-body-right{
        display:grid;
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
        align-items:start;
    }

    .site-footer-body-right .footer_widget,
    .site-footer-body-right .footer_widget1,
    .site-footer-body-right .footer_widget2,
    .site-footer-body-right .footer_widget3,
    .site-footer-body-right .footer_widget_first,
    .site-footer-body-right .footer_widget_second{
        width:100%;
    }
    .site-footer-bottom{
        flex-direction:column;
        align-items:flex-start;
    }
}
@media (min-width:992px){
    .site-footer{
        padding:80px 0 30px;
    }
    .site-footer-body{
        display:grid;
        grid-template-columns:minmax(300px, 0.9fr) minmax(0, 2fr);
        gap:20px;
        align-items:start;
        padding-bottom:60px;
    }
    .site-footer-body-left{
        padding-right:20px;
        border-right:1px solid rgba(8, 41, 100, 0.18);
    }
    .site-footer-body-right{
        display:grid;
        gap:20px;
        align-items:start;
    }
    .site-footer-body-right .footer_widget,
    .site-footer-body-right .footer_widget1,
    .site-footer-body-right .footer_widget2,
    .site-footer-body-right .footer_widget3,
    .site-footer-body-right .footer_widget_first,
    .site-footer-body-right .footer_widget_second{
        width:100%;
        min-width:0;
    }
    .site-footer-bottom{
        display:grid;
        grid-template-columns:1fr auto 1fr;
        align-items:center;
        gap:20px;
        padding-top:30px;
    }
    .site-footer-bottom-menu{
        justify-self:start;
        grid-column:1;
    }
    .site-footer .copyright{
        grid-column:2;
        justify-self:center;
        text-align:center;
    }
    /* add */
    .site-footer-body-logo > a{
        font-size:24px;
    }
    .site-footer-body-logo{
        justify-content: flex-start;
    }
}
@media (min-width:1200px){
    .site-footer-body{
        gap:50px;
    }
    .site-footer-body-left{
        padding-right:50px;
    }
    .site-footer-body-right{
        gap:40px;
    }
}
/*==========================================================*/
/* business page                                            */
/*==========================================================*/
.page-business .business-intro-sec,
.page-business .business-fields-sec,
.page-business .business-strength-sec,
.page-business .business-network-sec,
.page-business .business-future-sec,
.page-business .business-related-sec,
.page-business .business-contact-sec{
    position:relative;
    overflow:hidden;
}
.page-business .business-section-heading{
    margin-bottom:40px;
}
.page-business .business-section-number{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.page-business .business-section-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.page-business .business-section-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.page-business .business-section-heading--light .business-section-number,
.page-business .business-section-heading--light .business-section-en{
    color:var(--sub-color);
}
.page-business .business-section-heading--light .business-section-title{
    color:#ffffff;
}
.page-business .business-intro-sec{
    background:#ffffff;
}
.page-business .business-intro-inner{
    display:grid;
    gap:40px;
}
.page-business .business-intro-lead,
.page-business .business-intro-text,
.page-business .business-fields-lead,
.page-business .business-field-text,
.page-business .business-strength-lead,
.page-business .business-strength-text,
.page-business .business-network-text,
.page-business .business-future-text,
.page-business .business-related-text,
.page-business .business-contact-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
.page-business .business-intro-text{
    margin-bottom:0;
}
.page-business .business-intro-media,
.page-business .business-field-media,
.page-business .business-future-media{
    position:relative;
    width:100%;
    aspect-ratio:4 / 3;
    overflow:hidden;
    background:#EAF4FB;
    border:1px solid #D9E2EC;
}
.business-field-media{
    margin-bottom:20px;
}
.page-business .business-intro-media img,
.page-business .business-field-media img,
.page-business .business-future-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.page-business .business-fields-sec{
    background:#F4F8FC;
}
.page-business .business-fields-lead{
    margin-bottom:40px;
}
.page-business .ul-business-fields{
    display:grid;
    gap:30px;
    margin:0;
    padding:0;
    list-style:none;
}
.page-business .business-field-card{
    padding:30px 20px;
    background:#ffffff;
    border:1px solid #D9E2EC;
    align-items: flex-start;
}
.page-business .business-field-number{
    margin:0;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
    margin-bottom:20px;
}
.page-business .business-field-en{
    margin:0;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
    margin-bottom:20px;
}
.page-business .business-field-title{
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
    margin-bottom:20px;
}
.page-business .ul-business-field-points{
    margin:0;
    padding:0 0 0 1.2em;
    color:var(--font-color2);
    font-size:15px;
    letter-spacing:0.08em;
    line-height:2;
}
.business-link-wrap{
    display:flex;
    width:100%;
    justify-content: center;
}
.page-business .business-field-link,
.page-business .business-network-link,
.page-business .business-future-link,
.page-business .business-contact-link{
    display:inline-flex;
    align-items:center;
    justify-content: center;
    gap:10px;
    color:var(--main-color1);
    font-size:16px;
    font-weight:500;
    letter-spacing:0.08em;
    line-height:1.4;
    position:relative;
    transition:color 0.3s ease;
    margin:10px auto 0 auto;
}
.page-business .business-field-link::before,
.page-business .business-network-link::before,
.page-business .business-future-link::before,
.page-business .business-contact-link::before{
    content:'';
    width:100%;
    height:1px;
    background:var(--main-color1);
    position:absolute;
    left:0;
    bottom:0;
    transform:scale(0,1);
    transform-origin: right center;
    transition:transform 0.5s;
}
.page-business .business-field-link:hover::before,
.page-business .business-network-link:hover::before,
.page-business .business-future-link:hover::before,
.page-business .business-contact-link:hover::before{
    transform:scale(1,1);
    transform-origin: left center;
}
.page-business .business-field-link i,
.page-business .business-network-link i,
.page-business .business-future-link i,
.page-business .business-contact-link i{
    font-size:12px;
    transition:transform 0.3s ease;
}
.page-business .business-field-link:hover,
.page-business .business-network-link:hover,
.page-business .business-future-link:hover,
.page-business .business-contact-link:hover{
    color:var(--main-color2);
}
.page-business .business-field-link:hover i,
.page-business .business-network-link:hover i,
.page-business .business-future-link:hover i,
.page-business .business-contact-link:hover i{
    transform:translateX(4px);
}
.page-business .business-field-link:focus-visible,
.page-business .business-network-link:focus-visible,
.page-business .business-future-link:focus-visible,
.page-business .business-related-card:focus-visible,
.page-business .business-contact-link:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
.page-business .business-strength-sec{
    background:var(--main-color1);
}
.page-business .business-strength-lead{
    margin-bottom:40px;
    color:rgba(255,255,255,0.9);
}
.page-business .ul-business-strengths{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.page-business .business-strength-item{
    padding:30px 20px;
    border:1px solid rgba(124,169,219,0.35);
    background:rgba(255,255,255,0.04);
}
.page-business .business-strength-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    margin-bottom:20px;
    border:1px solid rgba(124,169,219,0.6);
    color:var(--sub-color);
    font-size:16px;
}
.page-business .business-strength-keyword{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
    line-height:1.4;
}
.page-business .business-strength-title{
    margin:0 0 20px;
    color:#ffffff;
    font-size:20px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
}
.page-business .business-strength-text{
    margin:0;
    color:rgba(255,255,255,0.88);
}
.page-business .business-network-sec{
    background:#ffffff;
}
.page-business .business-network-inner{
    display:grid;
    gap:40px;
    margin-bottom:40px;
}
.page-business .business-network-message-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.page-business .business-network-diagram{
    --business-network-line-color:rgba(124,169,219,0.75);
    --business-network-gap:24px;
    position:relative;
    display:grid;
    gap:var(--business-network-gap);
    width:100%;
    max-width:560px;
    margin:0 auto;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:
        linear-gradient(rgba(124,169,219,0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(124,169,219,0.08) 1px, transparent 1px);
    background-size:28px 28px;
    overflow:hidden;
}
.page-business .business-network-center{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:70px;
    margin:0;
    padding:10px;
    border:1px solid var(--main-color2);
    border-radius:50%;
    background:rgba(255,255,255,0.96);
    color:var(--main-color1);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.06em;
    text-align:center;
    line-height:1.4;
}
.page-business .ul-business-network-nodes{
    position:relative;
    z-index:2;
    display:grid;
    gap:var(--business-network-gap);
    margin:0;
    padding:0;
    list-style:none;
}
.page-business .business-network-node,
.page-business .business-network-partners{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:54px;
    margin:0;
    padding:10px;
    border:1px solid #D9E2EC;
    background:#ffffff;
    color:var(--main-color1);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.06em;
    text-align:center;
    line-height:1.4;
}
.page-business .business-network-center::after,
.page-business .business-network-node::before,
.page-business .business-network-partners::before{
    content:"";
    position:absolute;
    left:50%;
    width:1px;
    background:var(--business-network-line-color);
    transform:translateX(-50%);
    pointer-events:none;
}
.page-business .business-network-center::after{
    top:100%;
    height:var(--business-network-gap);
}
.page-business .business-network-node::before,
.page-business .business-network-partners::before{
    top:calc(var(--business-network-gap) * -1);
    height:var(--business-network-gap);
}
.page-business .ul-business-network-nodes > .business-network-node:first-child::before{
    content:none;
}
.page-business .business-network-partners--external{
    border-color:var(--sub-color);
    background:#F4F8FC;
}
.page-business .business-network-line{
    display:none;
}
.page-business .business-future-sec{
    background:#F4F8FC;
}
.page-business .business-future-inner{
    display:grid;
    gap:40px;
}
.page-business .business-future-catch{
    margin:0 0 10px;
    color:var(--main-color1);
    font-size:28px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.page-business .business-future-en{
    margin:0 0 20px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
    line-height:1.4;
}
.page-business .business-future-media{
    aspect-ratio:16 / 10;
}
.page-business .business-related-sec{
    background:#ffffff;
}
.page-business .ul-business-related{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.page-business .business-related-card{
    display:block;
    height:100%;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    border-left:3px solid var(--main-color1);
    background:#ffffff;
    text-decoration:none;
    transition:border-color 0.3s ease, background-color 0.3s ease;
}
.page-business .business-related-card:hover{
    border-color:var(--main-color2);
    background:#F4F8FC;
}
.page-business .business-related-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.page-business .business-related-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
}
.page-business .business-related-text{
    margin:0 0 20px;
}
.page-business .business-related-arrow{
    display:inline-flex;
    align-items:center;
    color:var(--main-color1);
    font-size:14px;
    transition:transform 0.3s ease, color 0.3s ease;
}
.page-business .business-related-card:hover .business-related-arrow{
    color:var(--main-color2);
    transform:translateX(4px);
}
.page-business .business-contact-sec{
    background:var(--main-color1);
}
.page-business .business-contact-inner{
    position:relative;
    max-width:760px;
    margin:0 auto;
    padding:20px 0;
    text-align:center;
}
.page-business .business-contact-inner::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:60px;
    height:1px;
    background:rgba(124,169,219,0.8);
}
.page-business .business-contact-en{
    margin:0 0 20px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.page-business .business-contact-title{
    margin:0 0 20px;
    color:#ffffff;
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.page-business .business-contact-text{
    margin:0 0 30px;
    color:rgba(255,255,255,0.9);
    text-align: var(--tmtech-default-text-align, justify);
}
.page-business .business-contact-link{
    color:#ffffff;
    border:1px solid rgba(255,255,255,0.7);
    padding:0 30px;
    height:60px;
    text-decoration:none;
    justify-content:center;
}
.page-business .business-contact-link:hover{
    color:#ffffff;
    background:rgba(255,255,255,0.08);
    border-color:#ffffff;
}
@media (min-width:768px){
    .page-business .business-section-title,
    .page-business .business-contact-title{
        font-size:32px;
    }
    .page-business .business-section-title .br_sp{
        display:none;
    }
    .page-business .business-future-catch{
        font-size:36px;
    }
    .page-business .ul-business-fields{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:30px;
    }
    .page-business .ul-business-strengths{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
    }
    .page-business .business-intro-inner,
    .page-business .business-network-inner{
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        gap:50px;
        align-items:flex-start;
    }
    .page-business .business-network-diagram{
        max-width:none;
    }
}
@media (min-width:992px){
    .page-business .business-future-inner{
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        gap:50px;
        align-items:flex-start;
    }
    .page-business .ul-business-related{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
    }
    .page-business .business-field-card{
        padding:40px 30px;
    }
    .page-business .business-strength-item{
        padding:40px 30px;
    }
    .page-business .business-related-card{
        padding:40px 30px;
    }
    .page-business .business-network-diagram{
        --business-network-gap:40px;
        display:grid;
        grid-template-columns:repeat(3, minmax(0, 1fr));
        grid-template-rows:auto auto auto;
        gap:var(--business-network-gap) 16px;
        align-items:center;
        justify-items:center;
        padding:40px 30px;
    }
    .page-business .business-network-center{
        grid-column:2;
        grid-row:1;
        width:140px;
        height:140px;
        border-radius:50%;
    }
    .page-business .business-network-center::after,
    .page-business .business-network-node::before,
    .page-business .business-network-partners::before{
        content:none;
    }
    .page-business .ul-business-network-nodes{
        grid-column:1 / -1;
        grid-row:2;
        width:100%;
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:16px;
    }
    .page-business .ul-business-network-nodes::after{
        content:"";
        position:absolute;
        top:100%;
        left:50%;
        width:1px;
        height:var(--business-network-gap);
        background:var(--business-network-line-color);
        transform:translateX(-50%);
        pointer-events:none;
    }
    .page-business .business-network-node{
        min-height:70px;
    }
    .page-business .business-network-partners--group{
        grid-column:1 / 3;
        grid-row:3;
        width:100%;
    }
    .page-business .business-network-partners--external{
        grid-column:3;
        grid-row:3;
        width:100%;
    }
    .page-business .business-network-partners--external::before{
        content:"";
        position:absolute;
        top:50%;
        left:-16px;
        width:16px;
        height:1px;
        background:var(--business-network-line-color);
        transform:none;
        pointer-events:none;
    }
    .page-business .business-network-line{
        display:block;
        position:absolute;
        z-index:1;
        background:var(--business-network-line-color);
        pointer-events:none;
    }
    .page-business .business-network-line--1{
        top:180px;
        left:50%;
        width:1px;
        height:20px;
        transform:translateX(-50%);
    }
    .page-business .business-network-line--2{
        top:200px;
        left:calc(16.666% );
        width:66.668%;
        height:1px;
        transform:translateX(0);
    }
    .page-business .business-network-line--3{
        top:200px;
        left:16.666%;
        width:1px;
        height:20px;
        transform:translateX(-50%);
    }
    .page-business .business-network-line--4{
        top:200px;
        left:50%;
        width:1px;
        height:20px;
        transform:translateX(-50%);
    }
    .page-business .business-network-line--5{
        top:200px;
        left:83.334%;
        width:1px;
        height:20px;
        transform:translateX(-50%);
    }
    .page-business .business-contact-inner::before{
        left:50%;
        transform:translateX(-50%);
    }
    .page-business .business-contact-inner .business-contact-en{
        text-align:center;
    }
    .page-business .business-contact-title br{
        display:none;
    }
    .page-business .business-contact-text{
        text-align:center;
    }
}
@media (min-width:1200px){
    .page-business .business-intro-inner{
        gap:60px;
    }
    .page-business .ul-business-fields{
        gap:40px;
    }
}
@media (prefers-reduced-motion: reduce){
    .page-business .business-field-link,
    .page-business .business-network-link,
    .page-business .business-future-link,
    .page-business .business-contact-link,
    .page-business .business-related-card,
    .page-business .business-related-arrow,
    .page-business .business-field-link i,
    .page-business .business-network-link i,
    .page-business .business-future-link i,
    .page-business .business-contact-link i{
        transition:none;
    }
}
/*==========================================================*/
/* business scroll reveal animation                         */
/*==========================================================*/
html.is-business-reveal-ready .page-business .js-business-reveal,
html.is-business-reveal-ready .page-business .js-business-reveal-left,
html.is-business-reveal-ready .page-business .js-business-reveal-right{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change:opacity, transform;
}
html.is-business-reveal-ready .page-business .js-business-reveal.is-visible,
html.is-business-reveal-ready .page-business .js-business-reveal-left.is-visible,
html.is-business-reveal-ready .page-business .js-business-reveal-right.is-visible{
    opacity:1;
    transform:translate(0, 0);
    will-change:auto;
}
@media (min-width:768px){
    html.is-business-reveal-ready .page-business .js-business-reveal-left{
        transform:translateX(-30px);
    }
    html.is-business-reveal-ready .page-business .js-business-reveal-right{
        transform:translateX(30px);
    }
    html.is-business-reveal-ready .page-business .js-business-reveal.is-visible,
    html.is-business-reveal-ready .page-business .js-business-reveal-left.is-visible,
    html.is-business-reveal-ready .page-business .js-business-reveal-right.is-visible{
        transform:translate(0, 0);
    }
}
@media (prefers-reduced-motion: reduce){
    html.is-business-reveal-ready .page-business .js-business-reveal,
    html.is-business-reveal-ready .page-business .js-business-reveal-left,
    html.is-business-reveal-ready .page-business .js-business-reveal-right{
        opacity:1;
        transform:none;
        transition:none;
        transition-delay:0s;
        will-change:auto;
    }
}
/*==========================================================*/
/* group business page                                      */
/*==========================================================*/
.page-group-business .business-intro-sec,
.business-areas-sec,
.business-capabilities-sec,
.business-value-flow-sec,
.business-dx-sec,
.page-group-business .business-related-sec{
    position:relative;
    overflow:hidden;
}
.page-group-business .page-section{
    padding:60px 0;
}
.page-group-business .business-section-heading{
    margin-bottom:40px;
}
.page-group-business .business-section-number{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.page-group-business .business-section-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.12em;
    line-height:1.5;
    overflow-wrap:anywhere;
}
.page-group-business .business-section-title{
    margin:0;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.page-group-business .business-section-heading--light .business-section-en{
    color:var(--sub-color);
}
.page-group-business .business-intro-sec,
.business-areas-sec,
.business-value-flow-sec{
    background:#ffffff;
}
.business-capabilities-sec{
    background:#F5F8FB;
}
.business-dx-sec{
    background:var(--main-color1);
    color:#ffffff;
}
.page-group-business .business-related-sec{
    background:#ffffff;
}
.business-intro-catch{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.page-group-business .business-intro-text,
.business-areas-lead,
.business-areas-note,
.business-area-text,
.business-capabilities-lead,
.business-capability-text,
.business-value-flow-lead,
.business-value-flow-text,
.business-value-flow-note,
.business-value-outcome-text,
.business-dx-lead,
.business-dx-policy-text,
.business-related-lead,
.page-group-business .business-related-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
    overflow-wrap:anywhere;
}
.page-group-business .business-intro-text,
.business-areas-note,
.business-area-text,
.business-capability-text,
.business-value-flow-text,
.business-value-flow-note,
.business-value-outcome-text,
.business-dx-policy-text,
.page-group-business .business-related-text{
    margin-bottom:0;
}
.business-intro-copy{
    max-width:860px;
}
.business-areas-lead,
.business-capabilities-lead,
.business-value-flow-lead,
.business-dx-lead,
.business-related-lead{
    margin-bottom:40px;
}
.business-dx-sec .business-section-heading--light{
    margin-bottom:24px;
}
.business-dx-sec .business-section-heading--light .business-section-number{
    color:var(--sub-color);
}
.business-dx-sec .business-section-heading--light .business-section-en{
    color:var(--sub-color);
    text-align: left;
}
.business-dx-sec .business-section-heading--light .business-section-title{
    color:#ffffff;
    white-space: nowrap;
}
.business-dx-hero{
    position:relative;
    margin:0 0 40px;
}
.business-dx-hero-copy{
    position:relative;
    z-index:2;
}
.business-dx-sec .business-dx-lead{
    margin:0 0 30px;
    color:rgba(255,255,255,0.92);
    font-size:16px;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
.business-dx-media{
    position:relative;
    width:100%;
    margin:0 0 40px;
    overflow:hidden;
    border:0;
    background:rgba(8,41,100,0.35);
}
.business-dx-media::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg, rgba(8,41,100,0.18) 0%, rgba(8,41,100,0.42) 100%);
}
.business-dx-media img{
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:4 / 3;
    object-fit:cover;
    object-position:center 30%;
}
.business-dx-media .business-media-note{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:2;
    margin:0;
    padding:10px 14px;
    background:rgba(8,41,100,0.72);
    color:rgba(255,255,255,0.92);
    font-size:13px;
    letter-spacing:0.08em;
    line-height:1.5;
}
.business-dx-content{
    position:relative;
    z-index:1;
}
.business-dx-sec .ul-business-dx-policies{
    display:grid;
    gap:0;
    margin:0 0 40px;
    padding:0;
    list-style:none;
    counter-reset:none;
}
.business-dx-sec .business-dx-policy-card{
    position:relative;
    display:grid;
    gap:14px;
    margin:0;
    padding:28px 0;
    border:0;
    border-top:1px solid rgba(124,169,219,0.35);
    background:transparent;
    height:auto;
    min-height:0;
}
.business-dx-sec .business-dx-policy-card:last-child{
    border-bottom:1px solid rgba(124,169,219,0.35);
}
.business-dx-policy-number{
    display:inline-flex;
    align-items:center;
    gap:14px;
    margin:0;
    color:var(--sub-color);
    font-size:18px;
    font-weight:700;
    letter-spacing:0.18em;
    line-height:1.4;
}
.business-dx-policy-number::after{
    content:"";
    display:block;
    width:36px;
    height:1px;
    background:var(--sub-color);
}
.business-dx-policy-icon{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    color:var(--sub-color);
    font-size:28px;
    line-height:1;
}
.business-dx-sec .business-dx-policy-title{
    margin:0;
    color:#ffffff;
    font-size:18px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.business-dx-sec .business-dx-policy-text{
    margin:0;
    color:rgba(255,255,255,0.86);
    font-size:15px;
    letter-spacing:0.08em;
    line-height:1.95;
    text-align: var(--tmtech-default-text-align, justify);
}
.business-dx-candidates{
    margin:0;
    padding:28px 20px;
    border-radius:18px;
    background:rgba(234,244,251,0.96);
    color:var(--main-color1);
}
.business-dx-candidates-heading{
    margin:0 0 24px;
}
.business-dx-sec .business-dx-candidates-title{
    margin:0;
    padding-bottom:12px;
    border-bottom:1px solid rgba(21,94,181,0.28);
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.business-dx-sec .ul-business-dx-candidates{
    display:grid;
    gap:0;
    margin:0;
    padding:0;
    list-style:none;
}
.business-dx-sec .business-dx-candidate-card{
    display:grid;
    gap:12px;
    margin:0;
    padding:22px 0;
    border:0;
    border-top:1px solid rgba(21,94,181,0.22);
    background:transparent;
    height:auto;
    min-height:0;
}
.business-dx-sec .business-dx-candidate-card:first-child{
    border-top:0;
    padding-top:0;
}
.business-dx-candidate-icon{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    color:var(--main-color2);
    font-size:24px;
    line-height:1;
}
.business-dx-sec .business-dx-candidate-theme{
    margin:0;
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.business-dx-sec .dl-business-dx-candidate{
    display:grid;
    gap:14px;
    margin:0;
    padding:0;
}
.business-dx-sec .business-dx-candidate-row{
    display:grid;
    gap:6px;
}
.business-dx-sec .business-dx-candidate-row dt{
    margin:0;
    color:var(--main-color2);
    font-size:13px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
}
.business-dx-sec .business-dx-candidate-row dd{
    margin:0;
    color:var(--font-color2);
    font-size:15px;
    letter-spacing:0.08em;
    line-height:1.85;
    overflow-wrap:anywhere;
}
.business-media-note{
    margin:10px 0 0;
    color:var(--font-color2);
    font-size:14px;
    letter-spacing:0.08em;
    line-height:1.6;
}
/* business-areas showcase (01) */
.business-areas-sec{
    position:relative;
    overflow:hidden;
    background:#ffffff;
}
.business-areas-showcase{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    grid-template-areas:
        "heading"
        "media"
        "feature";
    gap:30px;
}
/*
.business-areas-showcase > .business-section-heading{
    grid-area:heading;
    display:grid;
    grid-template-columns:max-content 1px minmax(0, 1fr);
    grid-template-areas:
        "number divider english"
        "title title title";
    align-items:center;
    column-gap:20px;
    row-gap:20px;
    margin:0;
}
.business-areas-showcase > .business-section-heading::before{
    content:"";
    grid-area:divider;
    width:1px;
    height:48px;
    background:var(--sub-color);
}
.business-areas-sec .business-areas-showcase .business-section-number{
    grid-area:number;
    margin:0;
    color:rgba(124,169,219,0.55);
    font-size:54px;
    font-weight:500;
    letter-spacing:0;
    line-height:1;
    font-family:var(--noto-serif);
}
.business-areas-sec .business-areas-showcase .business-section-en{
    grid-area:english;
    margin:0;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.5;
}
.business-areas-sec .business-areas-showcase .business-section-title{
    grid-area:title;
    margin:0;
    color:var(--main-color1);
    font-size:32px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
*/
.business-areas-media{
    grid-area:media;
    position:relative;
    width:100%;
    margin:0;
    overflow:hidden;
    border:0;
    background:#EAF4FB;
}
.business-areas-media::before,
.business-areas-media::after{
    content:"";
    position:absolute;
    z-index:2;
    pointer-events:none;
}
.business-areas-media::before{
    top:0;
    left:0;
    width:96px;
    height:72px;
    background:linear-gradient(145deg, #082964 0%, #155EB5 100%);
    clip-path:polygon(0 0, 100% 0, 0 100%);
}
.business-areas-media::after{
    bottom:0;
    left:0;
    width:112px;
    height:64px;
    background:linear-gradient(145deg, #0B3F8C 0%, #2D7FC4 100%);
    clip-path:polygon(0 0, 0 100%, 100% 100%);
}
.business-areas-media img{
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:4 / 3;
    object-fit:cover;
    object-position:center;
}
.business-areas-media .business-media-note{
    position:absolute;
    left:16px;
    bottom:16px;
    z-index:3;
    margin:0;
    padding:6px 10px;
    color:#ffffff;
    background:rgba(8,41,100,0.72);
    font-size:14px;
    letter-spacing:0.06em;
    line-height:1.5;
}
.business-area-feature{
    grid-area:feature;
}
.business-area-feature-title{
    margin:0 0 12px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.business-area-feature-catch{
    margin:0 0 30px;
    color:var(--font-color);
    font-size:18px;
    font-weight:500;
    letter-spacing:0.08em;
    line-height:1.8;
    overflow-wrap:anywhere;
}
.dl-business-area-highlights{
    display:grid;
    gap:14px;
    margin:0;
    padding:0;
}
.business-area-highlight{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    margin:0;
    background:#F3F8FD;
}
.business-area-highlight dt,
.business-area-highlight dd{
    margin:0;
}
.business-area-highlight dt{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:24px 20px;
    color:#ffffff;
    background:linear-gradient(145deg, #0B3F8C 0%, #155EB5 100%);
    text-align:center;
}
.business-area-highlight:nth-child(2) dt{
    background:linear-gradient(145deg, #2D7FC4 0%, #68AFE5 100%);
}
.business-area-highlight-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:30px;
    line-height:1;
}
.business-area-highlight-label{
    font-size:17px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
}
.business-area-highlight dd{
    padding:24px 20px;
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.08em;
    line-height:2;
    text-align:left;
    overflow-wrap:anywhere;
}
.business-area-details{
    display:grid;
    gap:0;
    margin-top:60px;
    border-top:1px solid #D9E2EC;
}
.business-area-detail{
    padding:40px 0;
    border-bottom:1px solid #D9E2EC;
    background:transparent;
}
.business-area-detail-heading{
    margin-bottom:24px;
}
.business-area-detail-copy .business-areas-lead{
    margin-bottom:20px;
}
.business-areas-note{
    margin-top:40px;
}
.business-area-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.business-area-catch{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.7;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.dl-business-area-points{
    display:grid;
    gap:0;
    margin:20px 0;
    padding:0;
    border-top:1px solid #D9E2EC;
}
.business-area-point-row{
    display:grid;
    gap:10px;
    margin:0;
    padding:20px 0;
    border-bottom:1px solid #D9E2EC;
}
.business-area-point-row dt{
    margin:0;
    color:var(--main-color1);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
}
.business-area-point-row dd{
    margin:0;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    overflow-wrap:anywhere;
}
.business-external-link-wrap{
    margin-top:20px;
}
.business-external-link{
    position:relative;
    display:block;
    padding:20px 50px 20px 20px;
    border:1px solid var(--main-color2);
    background:#ffffff;
    color:var(--main-color1);
    text-decoration:none;
    transition:background 0.3s, color 0.3s;
}
.business-external-link-main{
    display:block;
    font-size:15px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.7;
    overflow-wrap:anywhere;
}
.business-external-link i{
    position:absolute;
    top:50%;
    right:20px;
    font-size:14px;
    transform:translateY(-50%);
}
.business-external-link:hover{
    background:var(--main-color2);
    color:#ffffff;
}
.business-external-link:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
.page-group-business .business-related-card:focus-visible{
    outline:3px solid #ffffff;
    outline-offset:4px;
}
.ul-business-capabilities,
.ul-business-dx-policies,
.ul-business-value-outcomes,
.ul-business-dx-candidates,
.page-group-business .ul-business-related{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}

.business-capability-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    margin:0 0 20px;
    color:var(--main-color2);
    font-size:40px;
}
.business-capability-title,
.business-dx-policy-title,
.business-value-outcome-title,
.business-dx-candidates-title,
.business-dx-candidate-theme{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.business-capability-catch{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.7;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.business-capability-keywords{
    margin:20px 0 0;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    overflow-wrap:anywhere;
}
.business-capabilities-diagram{
    position:relative;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    justify-items:center;
    align-items:center;
    gap:20px 16px;
    margin:10px 0 0;
    padding:20px 0 40px;
    background-image:url("./img/business-capabilities-background.png");
    background-repeat:no-repeat;
    background-position:center bottom;
    background-size:100% auto;
}
.business-capabilities-orbit,
.business-capability-connector{
    display:none;
}
.business-capability-core{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:center;
    width:160px;
    height:160px;
    margin:0 auto 8px;
    border-radius:50%;
    aspect-ratio:1;
    color:#ffffff;
    background:radial-gradient(circle at 35% 30%, #1A5FAE 0%, var(--main-color1) 62%, #061F4A 100%);
    box-shadow:0 0 0 1px rgba(255,255,255,0.28), 0 0 0 8px rgba(124,169,219,0.18), 0 0 28px rgba(21,94,181,0.22);
    text-align:center;
    z-index:3;
}
.business-capability-core-label{
    font-size:18px;
    font-weight:700;
    letter-spacing:0.12em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.business-capability-node{
    position:relative;
    display:block;
    width:132px;
    height:132px;
    overflow:hidden;
    border-radius:50%;
    aspect-ratio:1;
    border:2px solid rgba(255,255,255,0.75);
    box-shadow:0 8px 18px rgba(8,41,100,0.16);
    z-index:3;
}
.business-capability-node-media,
.business-capability-node-media img{
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
}
.business-capability-node-shade{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg, rgba(8,41,100,0.82) 0%, rgba(8,41,100,0.45) 45%, rgba(8,41,100,0.08) 100%);
}
.business-capability-node-icon{
    position:absolute;
    left:50%;
    top:34%;
    z-index:2;
    color:#ffffff;
    font-size:22px;
    line-height:1;
    transform:translate(-50%, -50%);
}
.business-capability-node-label{
    position:absolute;
    left:10px;
    right:10px;
    bottom:40px;
    white-space:nowrap;
    z-index:2;
    color:#ffffff;
    font-size:13px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.4;
    text-align:center;
}
.ul-business-capabilities{
    gap:0;
    margin-top:50px;
    counter-reset:business-capability;
}
.business-capability-card{
    position:relative;
    height:auto;
    min-height:0;
    padding:28px 8px 28px 24px;
    border:0;
    border-left:1px solid #D9E2EC;
    background:transparent;
    counter-increment:business-capability;
}
.business-capability-card::before{
    content:counter(business-capability, decimal-leading-zero);
    display:block;
    margin:0 0 14px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
    line-height:1.4;
}
.business-capability-card .business-capability-icon{
    margin-bottom:20px;
}
.business-capability-card .business-capability-title{
    display:inline-block;
    width:calc(100% - 60px);
    margin-left:10px;
    margin-bottom:0;
}
.business-capability-card .business-capability-catch{
    margin-bottom:14px;
    font-size:17px;
}
.business-capability-card .business-capability-text{
    margin-bottom:0;
}
.business-value-flow-sec{
    position:relative;
    overflow:hidden;
    background:#ffffff;
}
.business-value-flow-sec::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background-image:
        linear-gradient(rgba(124,169,219,0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(124,169,219,0.08) 1px, transparent 1px);
    background-size:48px 48px;
    opacity:0.55;
}
.business-value-flow-sec::after{
    content:"";
    position:absolute;
    left:-10%;
    right:-10%;
    bottom:8%;
    height:180px;
    z-index:0;
    pointer-events:none;
    background:radial-gradient(ellipse at center, rgba(124,169,219,0.16) 0%, rgba(124,169,219,0) 70%);
}
.business-value-flow-sec > .contains-frm{
    position:relative;
    z-index:1;
}
.business-value-flow-visual{
    margin-top:10px;
}
.ol-business-value-flow{
    display:grid;
    gap:34px;
    margin:0;
    padding:0;
    list-style:none;
}
.business-value-flow-step{
    position:relative;
    display:grid;
    justify-items:center;
    gap:18px;
    margin:0;
    padding:0 0 8px;
    text-align:center;
}
.business-value-flow-number{
    margin:0;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.business-value-flow-stage-media{
    position:relative;
    width:220px;
    overflow:hidden;
    border-radius:50%;
    aspect-ratio:1;
    border:2px solid rgba(255,255,255,0.9);
    box-shadow:0 0 0 1px rgba(124,169,219,0.55), 0 0 0 8px rgba(124,169,219,0.12), 0 10px 24px rgba(8,41,100,0.12);
}
.business-value-flow-stage-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    background:transparent;
}
.business-value-flow-stage-shade{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg, rgba(8,41,100,0.08) 0%, rgba(8,41,100,0.35) 45%, rgba(8,41,100,0.78) 100%);
}
.business-value-flow-stage-media .business-value-flow-title{
    position:absolute;
    left:14px;
    right:14px;
    bottom:40%;
    z-index:2;
    margin:0;
    color:#ffffff;
    font-size:22px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.4;
    font-family:var(--noto-serif);
    text-align:center;
    text-shadow:0 1px 2px rgba(8,41,100,0.45), 0 0 10px rgba(8,41,100,0.35);
}
.business-value-flow-step--value .business-value-flow-stage-media{
    box-shadow:0 0 0 2px rgba(124,169,219,0.85), 0 0 0 10px rgba(124,169,219,0.18), 0 12px 28px rgba(8,41,100,0.16);
}
.business-value-flow-panel-note{
    margin:0;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    text-align:center;
}
.ul-business-value-flow-keywords{
    display:flex;
    flex-wrap:nowrap;
    justify-content:center;
    margin:0;
    padding:0;
    list-style:none;
    width:100%;
}
.ul-business-value-flow-keywords li{
    width:calc(100% / 5);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:var(--main-color1);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
    text-align:center;
}
.business-value-flow-step--activity .ul-business-value-flow-keywords li{
    width:calc(100% / 2);
}
.business-value-flow-step--value .ul-business-value-flow-keywords li{
    width:calc(100% / 4);
}
.ul-business-value-flow-keywords li i{
    color:var(--main-color2);
    font-size:20px;
    line-height:1;
}
.ul-business-value-flow-keywords li span{
    display:block;
    white-space:nowrap;
}
.business-value-flow-step .business-value-flow-text{
    margin:0;
    text-align: var(--tmtech-default-text-align, justify);
}
.business-value-flow-arrow{
    display:block;
    width:2px;
    height:28px;
    margin:4px auto 0;
    background:var(--sub-color);
    position:relative;
}
.business-value-flow-arrow::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-2px;
    width:8px;
    height:8px;
    border-right:2px solid var(--sub-color);
    border-bottom:2px solid var(--sub-color);
    transform:translateX(-50%) rotate(45deg);
}
.business-value-flow-step--value .business-value-flow-arrow{
    display:none;
}
.business-value-flow-feedback{
    position:relative;
    display:grid;
    justify-items:center;
    gap:14px;
    margin:28px 0 0;
    padding:8px 0 0;
    text-align:center;
}
.business-value-flow-feedback-line{
    display:block;
    width:2px;
    height:28px;
    background:var(--sub-color);
    position:relative;
}
.business-value-flow-feedback-line::before{
    content:"";
    position:absolute;
    left:50%;
    top:-2px;
    width:8px;
    height:8px;
    border-left:2px solid var(--sub-color);
    border-top:2px solid var(--sub-color);
    transform:translateX(-50%) rotate(45deg);
}
.business-value-flow-feedback .business-value-flow-note{
    position:relative;
    z-index:1;
    margin:0;
    padding:14px 16px;
    background:#ffffff;
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.08em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
.ul-business-value-outcomes{
    display:grid;
    gap:0;
    margin:40px 0 0;
    padding:0;
    list-style:none;
}
.business-value-outcome-card{
    height:auto;
    min-height:0;
    padding:24px 8px 24px 0;
    border:0;
    border-top:1px solid #D9E2EC;
    background:transparent;
}
.business-value-outcome-card .business-value-outcome-title{
    margin:0 0 12px;
}
.business-value-outcome-card .business-value-outcome-text{
    margin:0;
}
.page-group-business .business-related-card{
    display:block;
    height:100%;
    padding:30px 20px;
    border:1px solid rgba(255,255,255,0.25);
    background:var(--main-color1);
    color:#ffffff;
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:filter 0.3s ease, transform 0.3s ease;
}
.page-group-business .business-related-card:hover{
    transform:translateY(-4px);
    filter:brightness(1.2);
}
.page-group-business .business-related-en{
    margin:0 0 10px;
    color:#fff;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    overflow-wrap:anywhere;
}
.page-group-business .business-related-title{
    margin:0 0 20px;
    color:#fff;
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.page-group-business .business-related-text{
    margin-bottom:20px;
    color:#fff;
}
.business-related-action{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:#fff;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
}
.business-related-action i{
    font-size:14px;
    transition:transform 0.3s ease;
}
.page-group-business .business-related-card:hover .business-related-action i{
    transform:translateX(4px);
}
@media (min-width:768px){
    .page-group-business .business-section-title,
    .business-intro-catch{
        font-size:32px;
    }
    .ul-business-capabilities,
    .ul-business-value-outcomes{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:30px;
    }
    .business-dx-sec .business-dx-lead{
        font-size:17px;
        margin-bottom:36px;
    }
    .business-dx-media{
        margin-bottom:48px;
    }
    .business-dx-media img{
        aspect-ratio:16 / 9;
        object-position:center 28%;
    }
    .business-dx-sec .ul-business-dx-policies{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:0;
        margin-bottom:48px;
        border-top:1px solid rgba(124,169,219,0.35);
    }
    .business-dx-sec .business-dx-policy-card{
        padding:28px 24px;
        border-top:0;
        border-bottom:1px solid rgba(124,169,219,0.35);
        border-right:1px solid rgba(124,169,219,0.35);
    }
    .business-dx-sec .business-dx-policy-card:nth-child(2n){
        border-right:0;
    }
    .business-dx-sec .business-dx-policy-card:last-child{
        border-bottom:1px solid rgba(124,169,219,0.35);
    }
    .business-dx-candidates{
        padding:36px 28px;
    }
    .business-dx-sec .ul-business-dx-candidates{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:0;
        border-top:1px solid rgba(21,94,181,0.22);
    }
    .business-dx-sec .business-dx-candidate-card{
        padding:24px 20px;
        border-top:0;
        border-bottom:1px solid rgba(21,94,181,0.22);
        border-right:1px solid rgba(21,94,181,0.22);
    }
    .business-dx-sec .business-dx-candidate-card:nth-child(2n){
        border-right:0;
    }
    .business-dx-sec .business-dx-candidate-card:first-child{
        padding-top:24px;
    }
    .business-area-point-row{
        grid-template-columns:140px minmax(0, 1fr);
        gap:20px;
        align-items:start;
    }
    .business-area-highlight{
        grid-template-columns:190px minmax(0, 1fr);
    }
    .business-capabilities-diagram{
        display:block;
        height:640px;
        margin-top:20px;
        padding:0;
        background-size:92% auto;
    }
    .business-capabilities-orbit{
        display:block;
        position:absolute;
        left:50%;
        top:50%;
        width:410px;
        height:410px;
        border:1px solid rgba(124,169,219,0.55);
        border-radius:50%;
        transform:translate(-50%, -50%);
        z-index:1;
        pointer-events:none;
    }
    .business-capability-connector{
        display:block;
        position:absolute;
        left:50%;
        top:50%;
        z-index:1;
        pointer-events:none;
        background:linear-gradient(180deg, rgba(124,169,219,0.15) 0%, var(--sub-color) 50%, rgba(124,169,219,0.15) 100%);
    }
    .business-capability-connector--top,
    .business-capability-connector--bottom{
        width:1px;
        height:108px;
    }
    .business-capability-connector--top{
        transform:translate(-50%, calc(-100% - 100px));
    }
    .business-capability-connector--bottom{
        transform:translate(-50%, 100px);
    }
    .business-capability-connector--left,
    .business-capability-connector--right{
        width:108px;
        height:1px;
        background:linear-gradient(90deg, rgba(124,169,219,0.15) 0%, var(--sub-color) 50%, rgba(124,169,219,0.15) 100%);
    }
    .business-capability-connector--left{
        transform:translate(calc(-100% - 100px), -50%);
    }
    .business-capability-connector--right{
        transform:translate(100px, -50%);
    }
    .business-capability-core{
        position:absolute;
        left:50%;
        top:50%;
        grid-column:auto;
        width:200px;
        height:200px;
        margin:0;
        transform:translate(-50%, -50%);
    }
    .business-capability-core-label{
        font-size:22px;
    }
    .business-capability-node{
        position:absolute;
        width:160px;
        height:160px;
    }
    .business-capability-node--management{
        left:50%;
        top:18px;
        transform:translateX(-50%);
    }
    .business-capability-node--expertise{
        left:28px;
        top:50%;
        transform:translateY(-50%);
    }
    .business-capability-node--market{
        right:28px;
        top:50%;
        transform:translateY(-50%);
    }
    .business-capability-node--people-dx{
        left:50%;
        bottom:18px;
        transform:translateX(-50%);
    }
    .business-capability-node-icon{
        font-size:26px;
    }
    .business-capability-node-label{
        bottom:50px;
        font-size:15px;
    }
    .ul-business-capabilities{
        margin-top:60px;
        gap:0 40px;
    }
    .business-value-flow-step{
        grid-template-columns:minmax(0, 240px) minmax(0, 1fr);
        column-gap:28px;
        row-gap:14px;
        justify-items:stretch;
        align-items:center;
        text-align:left;
        padding-bottom:18px;
    }
    .business-value-flow-step:nth-child(even){
        grid-template-columns:minmax(0, 1fr) minmax(0, 240px);
    }
    .business-value-flow-number{
        grid-column:1 / -1;
    }
    .business-value-flow-stage-media{
        width:230px;
        justify-self:center;
    }
    .business-value-flow-step:nth-child(odd) .business-value-flow-stage-media{
        grid-column:1;
        grid-row:2 / 5;
    }
    .business-value-flow-step:nth-child(even) .business-value-flow-stage-media{
        grid-column:2;
        grid-row:2 / 5;
    }
    .business-value-flow-step:nth-child(odd) .business-value-flow-panel-note,
    .business-value-flow-step:nth-child(odd) .ul-business-value-flow-keywords,
    .business-value-flow-step:nth-child(odd) .business-value-flow-text{
        grid-column:2;
    }
    .business-value-flow-step:nth-child(even) .business-value-flow-panel-note,
    .business-value-flow-step:nth-child(even) .ul-business-value-flow-keywords,
    .business-value-flow-step:nth-child(even) .business-value-flow-text{
        grid-column:1;
    }
    .ul-business-value-flow-keywords{
        justify-content:flex-start;
    }
    .business-value-flow-arrow{
        grid-column:1 / -1;
    }
    .business-value-flow-feedback{
        margin-top:20px;
    }
    .ul-business-value-outcomes{
        margin-top:50px;
        gap:0 40px;
    }
}
@media (min-width:992px){
    .page-group-business .page-section{
        padding:80px 0;
    }
    .business-dx-hero{
        position:relative;
        display:block;
        margin:0 0 56px;
        min-height:520px;
        padding:20px 0 40px;
    }
    .business-dx-hero .contains-frm,
    .business-dx-hero .contains-wrap{
        height:100%;
    }
    .business-dx-hero-copy{
        width:42%;
        padding:20px 28px 20px 0;
    }
    .business-dx-sec .business-section-heading--light{
        margin-bottom:28px;
    }
    .business-dx-sec .business-dx-lead{
        margin:0;
        font-size:16px;
    }
    .business-dx-media{
        position:absolute;
        top:0;
        right:0;
        bottom:0;
        left:42%;
        z-index:1;
        width:auto;
        margin:0;
        clip-path:polygon(14% 0, 100% 0, 100% 100%, 0 100%);
    }
    .business-dx-media::before{
        background:
            linear-gradient(90deg, var(--main-color1) 0%, rgba(8,41,100,0.55) 28%, rgba(8,41,100,0.18) 58%, rgba(8,41,100,0.28) 100%),
            linear-gradient(180deg, rgba(8,41,100,0.12) 0%, rgba(8,41,100,0.35) 100%);
    }
    .business-dx-media img{
        width:100%;
        height:100%;
        aspect-ratio:auto;
        object-fit:cover;
        object-position:62% center;
    }
    .business-dx-media .business-media-note{
        left:auto;
        right:0;
        bottom:0;
        width:auto;
        padding:10px 18px;
        background:rgba(8,41,100,0.78);
    }
    .business-dx-sec .ul-business-dx-policies{
        grid-template-columns:repeat(4, minmax(0, 1fr));
        gap:20px;
        margin-bottom:56px;
        border-top:0;
    }
    .business-dx-sec .business-dx-policy-card{
        display:block;
        border:0;
        padding:0;
    }
    .business-dx-sec .business-dx-policy-card:last-child{
        border-right:0;
        border-bottom:0;
    }
    .business-dx-policy-number{
        width:100%;
        margin-bottom:10px;
        font-size:24px;
    }
    .business-dx-policy-icon{
        width:100%;
        margin-bottom:10px;
    }
    .business-dx-sec .business-dx-policy-title{
        font-size:18px;
        margin-bottom:10px;
    }
    .business-dx-sec .business-dx-policy-text{
        font-size:14px;
        line-height:1.9;
    }
    .business-dx-candidates{
        padding:40px 36px;
    }
    .business-capabilities-diagram{
        height:740px;
        background-size:100% auto;
    }
    .business-capabilities-orbit{
        width:500px;
        height:500px;
    }
    .business-capability-connector--top,
    .business-capability-connector--bottom{
        height:140px;
    }
    .business-capability-connector--top{
        transform:translate(-50%, calc(-100% - 130px));
    }
    .business-capability-connector--bottom{
        transform:translate(-50%, 130px);
    }
    .business-capability-connector--left,
    .business-capability-connector--right{
        width:140px;
    }
    .business-capability-connector--left{
        transform:translate(calc(-100% - 130px), -50%);
    }
    .business-capability-connector--right{
        transform:translate(130px, -50%);
    }
    .business-capability-core{
        width:250px;
        height:250px;
    }
    .business-capability-core-label{
        font-size:26px;
    }
    .business-capability-node{
        width:200px;
        height:200px;
    }
    .business-capability-node--management{
        top:10px;
    }
    .business-capability-node--expertise{
        left:40px;
    }
    .business-capability-node--market{
        right:40px;
    }
    .business-capability-node--people-dx{
        bottom:10px;
    }
    .business-capability-node-icon{
        font-size:30px;
    }
    .business-capability-node-label{
        bottom:60px;
        font-size:17px;
    }
    .ul-business-capabilities{
        margin-top:70px;
    }
    .business-areas-showcase{
        --business-areas-left-bleed:calc(50vw - 460px);
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        grid-template-areas:
            "media heading"
            "media feature";
        gap:0;
        align-items:stretch;
    }
    .business-areas-showcase > .business-section-heading{
        padding:50px 0 20px 20px;
    }
    .business-area-feature{
        padding:20px 0 50px 20px;
    }
    .business-areas-media{
        width:calc(100% + var(--business-areas-left-bleed));
        margin-left:calc(0px - var(--business-areas-left-bleed));
        height:100%;
        clip-path:polygon(0 0, 100% 0, 90% 100%, 0 100%);
    }
    .business-areas-media img{
        height:100%;
        min-height:720px;
        aspect-ratio:auto;
    }
    .business-area-detail{
        display:grid;
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        column-gap:40px;
        align-items:start;
        padding:56px 0;
    }
    .business-area-detail--primary{
        grid-template-areas:
            "copy points"
            "copy link";
    }
    .business-area-detail--primary .business-area-detail-copy{
        grid-area:copy;
    }
    .business-area-detail--primary .dl-business-area-points{
        grid-area:points;
        margin-top:0;
    }
    .business-area-detail--primary .business-external-link-wrap{
        grid-area:link;
    }
    .business-area-detail--support{
        grid-template-areas:
            "heading points"
            "text points"
            "text link";
    }
    .business-area-detail--support .business-area-detail-heading{
        grid-area:heading;
        margin-bottom:0;
    }
    .business-area-detail--support > .business-area-text{
        grid-area:text;
        margin-top:24px;
    }
    .business-area-detail--support .dl-business-area-points{
        grid-area:points;
        margin-top:0;
    }
    .business-area-detail--support .business-external-link-wrap{
        grid-area:link;
    }
    .business-dx-sec .ul-business-dx-candidates{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
    .page-group-business .ul-business-related{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
    }
}
@media (min-width:1200px){
    .business-areas-showcase{
        --business-areas-left-bleed:calc(50vw - 550px);
    }
}
@media (min-width:1200px){
    .business-dx-hero{
        min-height:560px;
        padding:28px 0 48px;
        margin-bottom:64px;
    }
    .business-dx-hero-copy{
        width:40%;
        padding-right:36px;
    }
    .business-dx-media{
        left:40%;
        clip-path:polygon(12% 0, 100% 0, 100% 100%, 0 100%);
    }
    .business-dx-sec .ul-business-dx-policies{
        margin-bottom:60px;
        gap:40px;
    }
    .business-dx-candidates{
        padding:44px 40px;
    }
    .business-dx-candidates-heading{
        margin-bottom:28px;
    }
    .business-dx-sec .ul-business-dx-candidates{
        grid-template-columns:repeat(4, minmax(0, 1fr));
        gap:0;
        border-top:1px solid rgba(21,94,181,0.22);
    }
    .business-dx-sec .business-dx-candidate-card{
        padding:28px 22px;
        border-top:0;
        border-bottom:0;
        border-right:1px solid rgba(21,94,181,0.22);
    }
    .business-dx-sec .business-dx-candidate-card:nth-child(2n){
        border-right:1px solid rgba(21,94,181,0.22);
    }
    .business-dx-sec .business-dx-candidate-card:last-child{
        border-right:0;
    }
    .business-dx-sec .business-dx-candidate-card:first-child{
        padding-top:28px;
    }
    .business-dx-sec .business-dx-candidate-theme{
        font-size:16px;
    }
    .business-dx-sec .business-dx-candidate-row dd{
        font-size:14px;
        line-height:1.8;
    }
}
@media (min-width:1400px){
    .business-areas-showcase{
        --business-areas-left-bleed:calc(50vw - 640px);
    }
}
@media (min-width:1200px){
    .ol-business-value-flow{
        grid-template-columns:repeat(4, minmax(0, 1fr));
        gap:40px;
        align-items:start;
    }
    .business-value-flow-step,
    .business-value-flow-step:nth-child(even){
        display:block;
        grid-template-columns:unset;
        justify-items:unset;
        text-align:unset;
        gap:0;
        padding:0;
    }
    .business-value-flow-number{
        text-align:center;
        margin-bottom:20px;
    }
    .business-value-flow-stage-media{
        margin-bottom:20px;
    }
    .business-value-flow-number,
    .business-value-flow-stage-media,
    .business-value-flow-panel-note,
    .ul-business-value-flow-keywords,
    .business-value-flow-text,
    .business-value-flow-arrow,
    .business-value-flow-step:nth-child(odd) .business-value-flow-stage-media,
    .business-value-flow-step:nth-child(even) .business-value-flow-stage-media,
    .business-value-flow-step:nth-child(odd) .business-value-flow-panel-note,
    .business-value-flow-step:nth-child(odd) .ul-business-value-flow-keywords,
    .business-value-flow-step:nth-child(odd) .business-value-flow-text,
    .business-value-flow-step:nth-child(even) .business-value-flow-panel-note,
    .business-value-flow-step:nth-child(even) .ul-business-value-flow-keywords,
    .business-value-flow-step:nth-child(even) .business-value-flow-text{
        grid-column:auto;
        grid-row:auto;
    }
    .ul-business-value-flow-keywords li span{
        font-size:11px;
    }
    .business-value-flow-stage-media{
        width:min(100%, 210px);
    }
    .business-value-flow-stage-media .business-value-flow-title{
        font-size:clamp(18px, 1.6vw, 24px);
        bottom:30%;
    }
    .ul-business-value-flow-keywords{
        width:110%;
        justify-content:center;
        gap:10px;
        min-height:90px;
        align-content:flex-start;
    }
    .ul-business-value-flow-keywords li{
        flex:0 1 72px;
    }
    .business-value-flow-step--activity .business-value-flow-panel-note{
        min-height:30px;
    }
    .business-value-flow-step--activity .ul-business-value-flow-keywords{
        min-height:60px;
    }
    .business-value-flow-panel-note{
        min-height:24px;
    }
    .business-value-flow-arrow{
        position:absolute;
        top:136px;
        right:-34px;
        width:24px;
        height:2px;
        margin:0;
        background:var(--sub-color);
    }
    .business-value-flow-arrow::after{
        left:auto;
        right:-1px;
        bottom:auto;
        top:50%;
        width:8px;
        height:8px;
        border-right:2px solid var(--sub-color);
        border-bottom:2px solid var(--sub-color);
        transform:translateY(-50%) rotate(-45deg);
    }
    .business-value-flow-step--value .business-value-flow-arrow{
        display:none;
    }
    .business-value-flow-feedback{
        position:relative;
        display:block;
        margin-top:36px;
        padding:60px 0 10px;
        text-align:center;
    }
    .business-value-flow-feedback-line{
        position:absolute;
        left:12.5%;
        right:12.5%;
        top:0;
        width:auto;
        height:44px;
        background:transparent;
        border-left:2px solid var(--sub-color);
        border-right:2px solid var(--sub-color);
        border-bottom:2px solid var(--sub-color);
        border-radius:0 0 18px 18px;
    }
    .business-value-flow-feedback-line::before{
        left: 0;
        top:-2px;
        width:8px;
        height:8px;
        border-left:2px solid var(--sub-color);
        border-top:2px solid var(--sub-color);
    }
    .business-value-flow-feedback .business-value-flow-note{
        display:inline-block;
        padding:12px 22px;
        background:#ffffff;
        text-align:center;
    }
    .ul-business-value-outcomes{
        margin-top:56px;
    }
}
@media (prefers-reduced-motion: reduce){
    .business-external-link,
    .page-group-business .business-related-card,
    .business-related-action i{
        transition:none;
    }
}
/*==========================================================*/
/* group business scroll reveal                             */
/*==========================================================*/
html.is-business-reveal-ready .page-group-business .js-business-reveal,
html.is-business-reveal-ready .page-group-business .js-business-reveal-left,
html.is-business-reveal-ready .page-group-business .js-business-reveal-right{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change:opacity, transform;
}
html.is-business-reveal-ready .page-group-business .js-business-reveal.is-visible,
html.is-business-reveal-ready .page-group-business .js-business-reveal-left.is-visible,
html.is-business-reveal-ready .page-group-business .js-business-reveal-right.is-visible{
    opacity:1;
    transform:translate(0, 0);
    will-change:auto;
}
@media (min-width:768px){
    html.is-business-reveal-ready .page-group-business .js-business-reveal-left{
        transform:translateX(-30px);
    }
    html.is-business-reveal-ready .page-group-business .js-business-reveal-right{
        transform:translateX(30px);
    }
    html.is-business-reveal-ready .page-group-business .js-business-reveal.is-visible,
    html.is-business-reveal-ready .page-group-business .js-business-reveal-left.is-visible,
    html.is-business-reveal-ready .page-group-business .js-business-reveal-right.is-visible{
        transform:translate(0, 0);
    }
}
@media (prefers-reduced-motion: reduce){
    html.is-business-reveal-ready .page-group-business .js-business-reveal,
    html.is-business-reveal-ready .page-group-business .js-business-reveal-left,
    html.is-business-reveal-ready .page-group-business .js-business-reveal-right{
        opacity:1;
        transform:none;
        transition:none;
        transition-delay:0s;
        will-change:auto;
    }
}
/*==========================================================*/
/* global page                                              */
/*==========================================================*/
.global-pgheader{
    background:linear-gradient(135deg, #082964 0%, #12357F 55%, #1a4a9c 100%);
}
.global-pgheader .page-header-wrap{
    background:transparent;
}
.global-intro-sec,
.global-purpose-sec,
.global-support-sec,
.global-network-sec,
.global-partnership-sec,
.global-related-sec{
    position:relative;
    overflow:hidden;
}
.page-global .page-section{
    padding:60px 0;
}
.global-intro-sec,
.global-purpose-sec,
.global-network-sec,
.global-related-sec{
    background:#ffffff;
}
.global-support-sec,
.global-partnership-sec{
    background:#F5F8FB;
}
.global-section-heading{
    margin-bottom:40px;
}
.global-section-number{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.global-section-en{
    text-align:left;
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.12em;
    line-height:1.5;
    overflow-wrap:anywhere;
}
.global-section-title{
    margin:0;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.global-intro-catch,
.global-partnership-catch{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.global-intro-text,
.global-purpose-text,
.global-support-lead,
.global-support-text,
.global-support-note,
.global-network-lead,
.global-network-diagram-text,
.global-network-diagram-note,
.global-network-area-text,
.global-network-role-text,
.global-partnership-text,
.global-partnership-step-text,
.global-partnership-steps-note,
.global-partnership-cta-text,
.global-related-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
    overflow-wrap:anywhere;
}
.global-intro-text,
.global-purpose-text:last-child,
.global-support-text,
.global-support-note,
.global-network-area-text,
.global-network-role-text,
.global-partnership-text:last-child,
.global-partnership-step-text,
.global-related-text{
    margin-bottom:0;
}
.global-intro-copy{
    max-width:860px;
}
.global-support-lead,
.global-network-lead{
    margin-bottom:40px;
}
.global-purpose-top{
    display:grid;
    gap:30px;
    margin-bottom:30px;
}
.global-purpose-media{
    position:relative;
    width:100%;
    margin:0;
    overflow:hidden;
    background:#EAF4FB;
    border:1px solid #D9E2EC;
}
.global-purpose-media img{
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:3 / 2;
    object-fit:cover;
}
.global-media-note{
    margin:10px 0 0;
    color:var(--font-color2);
    font-size:14px;
    letter-spacing:0.08em;
    line-height:1.6;
}
.ul-global-purpose-labels{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:0;
    padding:0;
    list-style:none;
}
.ul-global-purpose-labels li{
    padding:10px 20px;
    border:1px solid #D9E2EC;
    background:#F8FBFE;
    color:var(--main-color1);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
}
.ul-global-supports{
    display:grid;
    gap:20px;
    margin:0 0 30px;
    padding:0;
    list-style:none;
}
.global-support-item{
    display:grid;
    gap:20px;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#ffffff;
}
.global-support-number{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.global-support-title,
.global-network-area-title,
.global-network-role-name,
.global-partnership-step-title,
.global-related-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.global-support-title,
.global-partnership-step-title{
    margin-bottom:0;
}
.ul-global-support-points{
    display:grid;
    gap:10px;
    margin:20px 0 0;
    padding:0 0 0 20px;
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.08em;
    line-height:1.8;
}
.global-network-diagram-title,
.global-network-areas-title,
.global-network-roles-title,
.global-partnership-cases-title,
.global-partnership-steps-title{
    margin:40px 0 20px 0;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.global-network-diagram{
    display:grid;
    gap:20px;
    margin:0 0 20px;
}
.global-network-node{
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#F8FBFE;
}
.global-network-node--group{
    background:var(--main-color1);
    border-color:var(--main-color1);
}
.global-network-node-label{
    margin:0 0 10px;
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.global-network-node--group .global-network-node-label{
    color:#ffffff;
}
.global-network-node-text{
    margin:0;
    color:var(--font-color2);
    font-size:14px;
    letter-spacing:0.08em;
    line-height:1.7;
    overflow-wrap:anywhere;
}
.global-network-node--group .global-network-node-text{
    color:rgba(255,255,255,0.9);
}
.global-network-connector{
    display:grid;
    gap:10px;
    justify-items:center;
    text-align:center;
}
.global-network-arrow{
    display:block;
    width:2px;
    height:20px;
    background:var(--sub-color);
    position:relative;
}
.global-network-arrow::before,
.global-network-arrow::after{
    content:"";
    position:absolute;
    left:50%;
    width:8px;
    height:8px;
    border-right:2px solid var(--sub-color);
    border-bottom:2px solid var(--sub-color);
    transform:translateX(-50%) rotate(45deg);
}
.global-network-arrow::before{
    top:-2px;
    transform:translateX(-50%) rotate(-135deg);
}
.global-network-arrow::after{
    bottom:-2px;
}
.global-network-connector-text{
    margin:0;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    overflow-wrap:anywhere;
}
.global-network-diagram-text{
    margin-bottom:10px;
}
.global-network-diagram-note{
    margin-bottom:40px;
    font-size:14px;
}
.ul-global-network-areas,
.ul-global-network-roles,
.ul-global-related{
    display:grid;
    gap:20px;
    margin:0 0 40px;
    padding:0;
    list-style:none;
}
.ul-global-network-roles{
    margin-bottom:0;
}
.global-network-area-card,
.global-network-role-item{
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#F8FBFE;
}
.global-partnership-catch{
    margin-bottom:30px;
}
.global-partnership-message{
    margin-bottom:40px;
}
.ul-global-partnership-cases{
    display:grid;
    gap:10px;
    margin:0 0 40px;
    padding:0 0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
}
.ol-global-partnership-steps{
    display:grid;
    gap:20px;
    margin:0 0 20px;
    padding:0;
    list-style:none;
}
.global-partnership-step{
    display:grid;
    gap:10px;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#ffffff;
}
.global-partnership-step-number{
    margin:0;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.global-partnership-steps-note{
    margin-bottom:40px;
}
.global-partnership-cta{
    padding:40px 20px;
    background:var(--main-color1);
    text-align:center;
}
.global-partnership-cta-text{
    max-width:720px;
    margin:0 auto 30px;
    color:rgba(255,255,255,0.92);
    text-align:center;
}
.global-partnership-cta-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    max-width:100%;
    padding:10px 30px;
    background:#ffffff;
    color:var(--main-color1);
    font-size:16px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:background 0.3s, color 0.3s;
}
.global-partnership-cta-link:hover{
    background:var(--sub-color);
    color:#ffffff;
}
.global-partnership-cta-link:focus-visible,
.global-related-card:focus-visible{
    outline:2px solid var(--sub-color);
    outline-offset:4px;
}
.ul-global-related{
    margin-bottom:0;
}
.global-related-card{
    display:block;
    height:100%;
    min-height:44px;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#ffffff;
    color:var(--main-color1);
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:border-color 0.3s ease, box-shadow 0.3s ease;
}
.global-related-card:hover{
    border-color:var(--main-color2);
    box-shadow:0 10px 20px rgba(15,45,84,0.08);
}
.global-related-en{
    text-align:left;
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    overflow-wrap:anywhere;
}
.global-related-text{
    margin-bottom:20px;
}
.global-related-action{
    display:inline-flex;
    align-items:center;
    gap:10px;
    min-height:44px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
}
.global-related-action i{
    font-size:14px;
}
@media (min-width:768px){
    .global-section-title,
    .global-intro-catch,
    .global-partnership-catch{
        font-size:32px;
    }
    .global-support-item{
        grid-template-columns:minmax(180px, 280px) minmax(0, 1fr);
        gap:30px;
        align-items:start;
        padding:30px;
    }
    .global-partnership-step{
        grid-template-columns:120px minmax(0, 1fr);
        gap:20px;
        align-items:start;
        padding:30px;
    }
    .ul-global-network-areas{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
    }
}
@media (min-width:992px){
    .page-global .page-section{
        padding:80px 0;
    }
    .global-purpose-top{
        grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr);
        gap:40px;
        align-items:flex-start;
    }
    .global-network-diagram{
        grid-template-columns:minmax(0, 1fr) 140px minmax(0, 1fr) 140px minmax(0, 1fr);
        gap:10px;
        align-items:stretch;
    }
    .global-network-connector{
        align-content:center;
        padding-top:20px;
    }
    .global-network-arrow{
        width:40px;
        height:2px;
    }
    .global-network-arrow::before,
    .global-network-arrow::after{
        top:50%;
        bottom:auto;
        left:auto;
        transform:translateY(-50%) rotate(-45deg);
    }
    .global-network-arrow::before{
        left:-2px;
        transform:translateY(-50%) rotate(135deg);
    }
    .global-network-arrow::after{
        right:-2px;
        left:auto;
        transform:translateY(-50%) rotate(-45deg);
    }
    .ul-global-related{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
    }
    .global-partnership-cta{
        padding:50px 40px;
    }
}
@media (prefers-reduced-motion: reduce){
    .global-partnership-cta-link,
    .global-related-card{
        transition:none;
    }
}
/*==========================================================*/
/* about page                                               */
/*==========================================================*/
/*==========================================================*/
/* about common                                             */
/*==========================================================*/
.about-intro-sec,
.about-role-sec,
.about-value-sec,
.about-future-sec,
.about-related-sec{
    position:relative;
    overflow:hidden;
}
.about-section-heading{
    margin-bottom:40px;
}
.about-section-number{
    margin:0 0 10px;
    color:#6B5AA6;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.about-section-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
    overflow-wrap:anywhere;
}
.about-section-title{
    margin:0;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.about-section-title span{
    display:inline-block;
}
.about-section-heading--light .about-section-number,
.about-section-heading--light .about-section-en{
    color:#EAF4FB;
}
.about-section-heading--light .about-section-number{
    color:#C9BEE8;
}
.about-section-heading--light .about-section-title{
    color:#ffffff;
}
.about-intro-sec,
.about-value-sec{
    background:#ffffff;
}
/*==========================================================*/
/* about intro and future shared                            */
/*==========================================================*/
.about-intro-catch,
.about-future-catch{
    margin:0 0 30px;
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
}
.about-intro-catch{
    color:var(--main-color1);
}
.about-intro-inner,
.about-future-inner{
    display:grid;
    gap:40px;
    min-width:0;
}
.about-intro-text,
.about-role-lead,
.about-role-text,
.about-value-lead,
.about-benefit-text,
.about-future-text,
.about-position-note,
.about-related-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
.about-intro-text:last-child,
.about-role-lead,
.about-role-text,
.about-value-lead,
.about-benefit-text,
.about-future-text:last-of-type,
.about-position-note,
.about-related-text{
    margin-bottom:0;
}
.about-intro-media,
.about-future-media{
    position:relative;
    width:100%;
    min-width:0;
    overflow:hidden;
    background:#EAF4FB;
}
.about-intro-media img,
.about-future-media img{
    display:block;
    width:100%;
    height:auto;
}
/*==========================================================*/
/* about position diagram                                   */
/*==========================================================*/
.about-position-diagram{
    width:100%;
    margin:40px auto 0;
}
.about-position-caption{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    text-align:center;
    font-family:var(--noto-serif);
}
.about-position-parent,
.about-position-companies,
.about-position-audience{
    min-width:0;
    padding:20px;
}
.about-position-parent{
    background:var(--main-color1);
    color:#ffffff;
}
.about-position-companies{
    background:#ffffff;
    border:1px solid var(--main-color2);
    color:var(--main-color1);
}
.about-position-audience{
    margin:0;
    background:#EAF4FB;
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    text-align:center;
}
.about-position-parent-label,
.about-position-companies-label{
    margin:0 0 10px;
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    text-align:center;
    font-family:var(--noto-serif);
}
.about-position-parent-label{
    color:#ffffff;
}
.about-position-companies-label{
    color:var(--main-color1);
}
.about-position-parent-desc,
.about-position-companies-desc{
    margin:0;
    font-size:14px;
    letter-spacing:0.06em;
    line-height:1.6;
    text-align:center;
}
.about-position-parent-desc{
    color:#ffffff;
}
.about-position-companies-desc{
    color:var(--font-color2);
}
.ul-about-position-functions,
.ul-about-position-company-roles{
    display:grid;
    gap:10px;
    margin:20px 0 0;
    padding:0;
    list-style:none;
}
.ul-about-position-functions li,
.ul-about-position-company-roles li{
    min-width:0;
    margin:0;
    padding:10px;
    font-size:16px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    text-align:center;
    overflow-wrap:anywhere;
}
.ul-about-position-functions li{
    background:rgba(255,255,255,0.12);
    color:#ffffff;
}
.ul-about-position-company-roles li{
    background:#F5F8FB;
    color:var(--main-color1);
}
.about-position-exchanges{
    display:grid;
    gap:10px;
    margin:10px 0;
}
.about-position-arrow{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin:10px 0;
    color:var(--main-color1);
    font-size:16px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    text-align:center;
}
.about-position-arrow-mark{
    width:0;
    height:0;
    border-right:6px solid transparent;
    border-left:6px solid transparent;
}
.about-position-arrow--down .about-position-arrow-mark{
    border-top:8px solid var(--main-color2);
}
.about-position-arrow--up .about-position-arrow-mark{
    border-bottom:8px solid #6B5AA6;
}
.about-position-note{
    margin-top:30px;
}
/*==========================================================*/
/* about role                                               */
/*==========================================================*/
.about-role-sec,
.about-related-sec{
    background:#F5F8FB;
}
.about-role-lead{
    margin-bottom:40px;
}
.ul-about-roles{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.about-role-card{
    min-width:0;
    margin:0;
    padding:30px 20px;
    background:#ffffff;
    border:1px solid #D9E2EC;
}
.about-role-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:60px;
    height:60px;
    margin-bottom:20px;
    color:var(--main-color2);
    font-size:40px;
}
.about-role-number{
    margin:0 0 10px;
    color:#6B5AA6;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.about-role-title,
.about-benefit-title,
.about-related-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.ul-about-role-points{
    margin:20px 0 0;
    padding:0;
    list-style:none;
}
.ul-about-role-points li{
    position:relative;
    margin:0 0 10px;
    padding-left:16px;
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.06em;
    line-height:1.6;
}
.ul-about-role-points li:last-child{
    margin-bottom:0;
}
.ul-about-role-points li::before{
    content:"";
    position:absolute;
    top:0.55em;
    left:0;
    width:6px;
    height:6px;
    background:var(--main-color2);
}
/*==========================================================*/
/* about value                                              */
/*==========================================================*/
.ul-about-benefits{
    margin:40px 0 0;
    padding:0;
    list-style:none;
    border-top:1px solid #D9E2EC;
}
.about-benefit-item{
    display:grid;
    gap:10px;
    min-width:0;
    margin:0;
    padding:30px 0;
    border-bottom:1px solid #D9E2EC;
}
.about-benefit-head{
    min-width:0;
}
.about-benefit-number{
    margin:0 0 10px;
    color:#6B5AA6;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.about-benefit-title{
    margin-bottom:0;
}
/*==========================================================*/
/* about future                                             */
/*==========================================================*/
.about-future-sec{
    background:var(--main-color1);
    color:#ffffff;
}
.about-future-catch,
.about-future-text{
    color:#ffffff;
}
.about-link-wrap{
    margin-top:30px;
}
.about-future-link{
    display:flex;
    align-items:center;
    justify-content: center;
    margin-left:auto;
    margin-right:auto;
    gap:10px;
    width:100%;
    max-width:280px;
    height:60px;
    border:1px solid #ffffff;
    color:#ffffff;
    font-size:17px;
    letter-spacing:0.1em;
    line-height:1.6;
    text-decoration:none;
}
.about-future-link:hover{
    background:#ffffff;
    color:var(--main-color1);
}
.about-future-link:focus-visible,
.about-related-card:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
.about-future-link:focus-visible{
    outline-color:#ffffff;
}
/*==========================================================*/
/* about related                                            */
/*==========================================================*/
.ul-about-related{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.ul-about-related > li{
    min-width:0;
    margin:0;
}
.about-related-card{
    display:flex;
    flex-direction:column;
    height:100%;
    min-width:0;
    padding:30px 20px;
    background:#ffffff;
    border:1px solid #D9E2EC;
    color:inherit;
    text-decoration:none;
    transition:border-color 0.3s ease;
}
.about-related-card:hover{
    border-color:var(--main-color2);
}
.about-related-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    overflow-wrap:anywhere;
}
.about-related-arrow{
    display:inline-flex;
    margin-top:auto;
    padding-top:20px;
    color:var(--main-color2);
    transition:transform 0.3s ease;
}
.about-related-card:hover .about-related-arrow{
    transform:translateX(4px);
}
/*==========================================================*/
/* about responsive                                         */
/*==========================================================*/
@media (min-width:768px){
    .about-section-title{
        font-size:32px;
    }
    .about-intro-catch,
    .about-future-catch{
        font-size:24px;
    }
    .ul-about-roles{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}
@media (min-width:992px){
    .about-intro-inner,
    .about-future-inner{
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        align-items:flex-start;
        gap:40px;
    }
    .about-future-media{
        order:-1;
    }
    .ul-about-position-functions,
    .ul-about-position-company-roles{
        grid-template-columns:repeat(4, minmax(0, 1fr));
    }
    .about-benefit-item{
        grid-template-columns:minmax(220px, 340px) minmax(0, 1fr);
        gap:20px;
        align-items:start;
    }
    .ul-about-related{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }
}
/*==========================================================*/
/* about reduced motion                                     */
/*==========================================================*/
@media (prefers-reduced-motion: reduce){
    .about-future-link,
    .about-related-card,
    .about-related-arrow{
        transition:none;
    }
}
/*==========================================================*/
/* philosophy page                                          */
/*==========================================================*/
.philosophy-intro-sec,
.philosophy-statement-sec,
.philosophy-values-sec,
.philosophy-vision-sec,
.philosophy-commitment-sec,
.philosophy-related-sec,
.philosophy-future-sec{
    position:relative;
    overflow:hidden;
}
.philosophy-statement-sec#philosophy,
.philosophy-vision-sec#vision,
.philosophy-values-sec#values,
.philosophy-commitment-sec#practice{
    scroll-margin-top:90px;
}
.philosophy-section-heading{
    margin-bottom:40px;
}
.philosophy-section-number{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.philosophy-section-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.12em;
    line-height:1.5;
    overflow-wrap:anywhere;
}
.philosophy-section-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.philosophy-section-heading--light .philosophy-section-number,
.philosophy-section-heading--light .philosophy-section-en{
    color:var(--sub-color);
}
.philosophy-section-heading--light .philosophy-section-title{
    color:#ffffff;
}
.philosophy-intro-sec,
.philosophy-vision-sec,
.philosophy-related-sec,
.philosophy-future-sec{
    background:#ffffff;
}
.philosophy-values-sec{
    background-color:#F7FAFE;
    background-image:
        linear-gradient(
            to right,
            rgba(18,53,127,0.045) 1px,
            transparent 1px
        ),
        linear-gradient(
            to bottom,
            rgba(18,53,127,0.04) 1px,
            transparent 1px
        );
    background-size:240px 100%, 100% 240px;
}
.philosophy-values-sec::before,
.philosophy-values-sec::after{
    content:"";
    position:absolute;
    border:1px solid rgba(124,169,219,0.55);
    border-radius:50%;
    pointer-events:none;
    z-index:0;
}
.philosophy-values-sec::before{
    top:-42%;
    right:-28%;
    width:92%;
    height:78%;
}
.philosophy-values-sec::after{
    bottom:-48%;
    left:-34%;
    width:98%;
    height:82%;
}
.philosophy-values-sec > .contains-frm{
    position:relative;
    z-index:1;
}
.philosophy-values-sec .philosophy-values-lead{
    margin:0;
    color:var(--main-color1);
    font-size:18px;
    font-weight:500;
    letter-spacing:0.12em;
    line-height:2;
    text-align:left;
}
.philosophy-intro-text,
.philosophy-values-lead,
.philosophy-commitment-lead,
.philosophy-statement-text,
.philosophy-value-text,
.philosophy-vision-text,
.philosophy-vision-point-text,
.philosophy-commitment-text,
.philosophy-future-text,
.philosophy-related-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
    overflow-wrap:anywhere;
}
.philosophy-intro-text:last-child,
.philosophy-statement-text:last-child,
.philosophy-value-text,
.philosophy-vision-text:last-child,
.philosophy-vision-point-text,
.philosophy-commitment-text:last-child,
.philosophy-future-text:last-of-type,
.philosophy-related-text{
    margin-bottom:0;
}

.ul-philosophy-page-nav{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:10px;
    margin:30px 0 0;
    padding:0;
    list-style:none;
}
.philosophy-page-nav-link{
    display:block;
    height:100%;
    padding:20px 20px;
    border:1px solid #D9E2EC;
    background:#F8FBFE;
    color:var(--main-color1);
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:border-color 0.3s ease, background 0.3s ease;
}
.philosophy-page-nav-link:hover{
    border-color:var(--main-color2);
    background:#ffffff;
}
.philosophy-page-nav-link:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
.philosophy-page-nav-title{
    display:block;
    margin:0 0 10px;
    color:var(--main-color1);
    font-size:15px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.philosophy-page-nav-text{
    display:block;
    color:var(--font-color2);
    font-size:14px;
    letter-spacing:0.06em;
    line-height:1.5;
}
.philosophy-vision-layout{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    grid-template-areas:
        "heading"
        "body"
        "media"
        "points";
    gap:30px;
    align-items:start;
}
.philosophy-vision-heading{
    grid-area:heading;
    margin-bottom:0;
}
.philosophy-vision-body{
    grid-area:body;
    min-width:0;
}
.philosophy-vision-sec .philosophy-section-number{
    color:var(--main-color1);
}
.philosophy-vision-sec .philosophy-section-en{
    letter-spacing:0.22em;
}
.philosophy-vision-sec .philosophy-section-title{
    color:var(--main-color2);
}
.philosophy-vision-catch{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.philosophy-vision-sec .philosophy-vision-catch{
    font-size:26px;
    letter-spacing:0.06em;
    line-height:1.6;
}
.philosophy-vision-sec .philosophy-vision-text,
.philosophy-vision-sec .philosophy-vision-point-text{
    text-align:left;
}
.philosophy-vision-media{
    grid-area:media;
    position:relative;
    width:100%;
    overflow:hidden;
    background:#EAF4FB;
    aspect-ratio:3 / 2;
}
.philosophy-vision-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 40%;
}
.ul-philosophy-vision-points{
    grid-area:points;
    display:grid;
    gap:0;
    margin:0;
    padding:0;
    list-style:none;
    counter-reset:vision-point;
    border-top:1px solid #D9E2EC;
}
.philosophy-vision-point{
    display:grid;
    grid-template-columns:auto auto minmax(0, 1fr);
    column-gap:10px;
    align-items:start;
    padding:20px 0;
    border:0;
    border-bottom:1px solid #D9E2EC;
    background:transparent;
    counter-increment:vision-point;
}
.philosophy-vision-point::before{
    content:counter(vision-point, decimal-leading-zero);
    color:var(--sub-color);
    font-size:16px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.2;
    font-family:var(--noto-serif);
    padding-top:8px;
}
.philosophy-vision-point-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border:1px solid #B7D3EE;
    border-radius:50%;
    color:var(--main-color1);
    background:#ffffff;
    flex:0 0 auto;
}
.philosophy-vision-point-icon i{
    font-size:15px;
    line-height:1;
}
.philosophy-vision-point-body{
    min-width:0;
}
.philosophy-vision-point-title{
    margin:0 0 10px;
    color:var(--main-color1);
    font-size:18px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.philosophy-future-catch{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.philosophy-statement-sec{
    background:url('./img/philosophy-statement-network.png') center right / cover no-repeat #082964;
    position:relative;
}
.philosophy-statement-sec::before{
    content:'';
    width:100%;
    height:100%;
    background:rgb(8, 41, 100, 0.7);
    position:absolute;
    top:0;
    left:0;
}
.philosophy-statement-inner{
    max-width:860px;
    margin:0 auto;
}
.philosophy-statement-title{
    margin:0 0 30px;
    color:#ffffff;
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
    text-align:left;
    overflow-wrap:anywhere;
}
.philosophy-statement-line{
    display:block;
    width:60px;
    height:2px;
    margin:0 auto 30px;
    background:var(--sub-color);
    box-shadow:0 0 12px rgba(124,169,219,0.55);
    pointer-events:none;
}
.philosophy-statement-text{
    color:rgba(255,255,255,0.9);
    text-align:left;
}
.philosophy-values-sec .philosophy-section-number{
    color:var(--main-color);
}
.philosophy-values-sec .ul-philosophy-values{
    counter-reset:philosophy-value;
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:0;
    margin:70px 0 0;
    padding:0;
    list-style:none;
}
.philosophy-values-sec .philosophy-value-card{
    counter-increment:philosophy-value;
    display:grid;
    grid-template-columns:max-content 60px minmax(0, 1fr);
    align-content:start;
    column-gap:16px;
    padding:40px 0;
    background:transparent;
    border:0;
    border-bottom:1px solid rgba(124,169,219,0.5);
}
.philosophy-values-sec .philosophy-value-card:last-child{
    border-bottom:0;
}
.philosophy-values-sec .philosophy-value-card::before{
    content:counter(philosophy-value, decimal-leading-zero);
    grid-column:1;
    align-self:center;
    color:var(--main-color2);
    font-size:18px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1;
    font-family:var(--noto-serif);
}
.philosophy-values-sec .philosophy-value-card::after{
    content:"";
    grid-column:2;
    align-self:center;
    width:100%;
    height:1px;
    background:var(--sub-color);
}
.philosophy-values-sec .philosophy-value-title,
.philosophy-values-sec .philosophy-value-en,
.philosophy-values-sec .philosophy-value-catch,
.philosophy-values-sec .philosophy-value-text{
    grid-column:1 / -1;
}
.philosophy-values-sec .philosophy-value-title{
    margin:28px 0 4px;
    color:var(--main-color1);
    font-size:clamp(36px, 10vw, 40px);
    font-weight:500;
    letter-spacing:0.12em;
    line-height:1.2;
    font-family:var(--noto-serif);
}
.philosophy-values-sec .philosophy-value-en{
    margin:0 0 24px;
    color:var(--main-color2);
    font-size:15px;
    font-weight:700;
    letter-spacing:0.28em;
    line-height:1.6;
    overflow-wrap:break-word;
}
.philosophy-values-sec .philosophy-value-catch{
    margin:0 0 12px;
    color:var(--main-color1);
    font-size:18px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.8;
    font-family:var(--noto-serif);
}
.philosophy-values-sec .philosophy-value-text{
    margin:0;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.08em;
    line-height:2;
    text-align:left;
}
.philosophy-commitment-sec{
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(
            90deg,
            rgba(240,247,254,0.9) 0%,
            rgba(255,255,255,1) 48%,
            rgba(255,255,255,1) 100%
        );
}
.philosophy-commitment-sec::before{
    content:"";
    display:none;
    position:absolute;
    left:0;
    bottom:0;
    width:min(48vw, 760px);
    height:62%;
    background:
        url("./img/philosophy-practice-cityscape.png")
        left bottom / contain no-repeat;
    pointer-events:none;
    z-index:0;
}
.philosophy-commitment-sec::after{
    content:"";
    position:absolute;
    left:-34vw;
    bottom:-36%;
    width:82vw;
    height:110%;
    border:1px solid rgba(124,169,219,0.55);
    border-radius:50%;
    transform:rotate(-8deg);
    pointer-events:none;
    z-index:1;
}
.philosophy-commitment-sec > .contains-frm{
    position:relative;
    z-index:2;
}
.philosophy-commitment-sec .philosophy-section-heading{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    margin:0;
}
.philosophy-commitment-sec .philosophy-section-number{
    color:var(--main-color);
}
.philosophy-commitment-sec .philosophy-commitment-lead{
    margin:28px 0 0;
    text-align:left;
}
.philosophy-commitment-lead-catch{
    display:block;
    margin-bottom:20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
}
.philosophy-commitment-lead-text{
    display:block;
    color:var(--font-color2);
    font-size:17px;
    font-weight:400;
    letter-spacing:0.1em;
    line-height:2;
}
.philosophy-commitment-sec .ol-philosophy-commitments{
    --philosophy-timeline-x:18px;
    position:relative;
    display:grid;
    gap:0;
    margin:40px 0 0;
    padding:0 0 0 42px;
    list-style:none;
}
.philosophy-commitment-sec .ol-philosophy-commitments::before{
    content:"";
    position:absolute;
    top:34px;
    bottom:-60px;
    left:var(--philosophy-timeline-x);
    width:1px;
    background:rgba(32,105,224,0.7);
    pointer-events:none;
}
.philosophy-commitment-sec .philosophy-commitment-item{
    position:relative;
    display:block;
    padding:30px 0;
    border:0;
}
.philosophy-commitment-sec .philosophy-commitment-item::before{
    content:"";
    position:absolute;
    top:36px;
    left:-22px;
    width:14px;
    height:14px;
    border:3px solid #ffffff;
    border-radius:50%;
    background:#2069E0;
    box-shadow:0 0 0 1px #2069E0;
    transform:translate(-50%, -50%);
    z-index:1;
}
.philosophy-commitment-sec .philosophy-commitment-number{
    grid-column:1;
    margin:0 0 16px;
    color:var(--main-color1);
    font-size:28px;
    font-weight:500;
    letter-spacing:0.04em;
    line-height:1;
    font-family:var(--noto-serif);
}
.philosophy-commitment-sec .philosophy-commitment-body{
    grid-column:2;
    min-width:0;
}
.philosophy-commitment-sec .philosophy-commitment-title{
    margin:0 0 16px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.philosophy-commitment-sec .philosophy-commitment-text{
    margin:0 0 12px;
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.08em;
    line-height:2;
    text-align:left;
}
.philosophy-commitment-sec .philosophy-commitment-text:last-child{
    margin-bottom:0;
}
.ul-philosophy-related{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.philosophy-related-card{
    display:block;
    height:100%;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#ffffff;
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.philosophy-related-card:hover{
    border-color:var(--main-color2);
    box-shadow:0 10px 24px rgba(15,45,84,0.08);
    transform:translateY(-4px);
}
.philosophy-related-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    overflow-wrap:anywhere;
    text-align:left;
}
.philosophy-related-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.philosophy-related-text{
    margin-bottom:20px;
}
.philosophy-related-arrow{
    display:inline-flex;
    color:var(--main-color2);
    transition:transform 0.3s ease;
}
.philosophy-related-card:hover .philosophy-related-arrow{
    transform:translateX(4px);
}
.philosophy-related-card:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
.philosophy-vision-text, .philosophy-vision-point-text{
    font-weight:500;
}
@media (min-width:375px){
    .ul-philosophy-page-nav{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
    .philosophy-vision-point{
        column-gap:14px;
        padding:24px 0;
    }
    .philosophy-vision-point::before{
        font-size:20px;
        padding-top:10px;
    }
    .philosophy-vision-point-icon{
        width:48px;
        height:48px;
    }
    .philosophy-vision-point-icon i{
        font-size:18px;
    }
}
@media (min-width:768px){
    .philosophy-statement-sec#philosophy,
    .philosophy-vision-sec#vision,
    .philosophy-values-sec#values,
    .philosophy-commitment-sec#practice{
        scroll-margin-top:120px;
    }
    .philosophy-section-title{
        font-size:32px;
    }
    .philosophy-future-catch{
        font-size:28px;
        letter-spacing:0.05em;
    }
    .philosophy-vision-sec .philosophy-vision-catch{
        font-size:30px;
        letter-spacing:0.05em;
    }
    .philosophy-vision-point::before{
        font-size:22px;
        padding-top:12px;
    }
    .philosophy-vision-point-icon{
        width:52px;
        height:52px;
    }
    .philosophy-statement-title{
        font-size:32px;
        text-align:center;
    }

    .philosophy-values-sec .ul-philosophy-values{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
    .philosophy-values-sec .philosophy-value-card{
        padding:40px 0;
        border-bottom:1px solid rgba(124,169,219,0.5);
    }
    .philosophy-values-sec .philosophy-value-card:nth-child(odd){
        padding-right:40px;
        border-right:1px solid rgba(124,169,219,0.5);
    }
    .philosophy-values-sec .philosophy-value-card:nth-child(even){
        padding-left:40px;
    }
    .philosophy-values-sec .philosophy-value-card:nth-child(n+3){
        border-bottom:0;
    }
    .philosophy-values-sec .philosophy-value-card:last-child{
        border-bottom:0;
    }
    .philosophy-values-sec .philosophy-value-title{
        font-size:clamp(46px, 5vw, 64px);
    }
    .philosophy-commitment-lead-catch{
        font-size:clamp(22px, 2.2vw, 28px);
        white-space: nowrap;
    }
    .philosophy-commitment-sec .ol-philosophy-commitments{
        --philosophy-timeline-x:-22px;
        margin-top:48px;
        padding-left:0;
    }
    .philosophy-commitment-sec .ol-philosophy-commitments::before{
        top:50px;
        bottom:-60px;
    }
    .philosophy-commitment-sec .philosophy-commitment-item{
        display:grid;
        grid-template-columns:64px minmax(0, 1fr);
        column-gap:44px;
        align-items:start;
        gap:0;
        padding:40px 0;
    }
    .philosophy-commitment-sec .philosophy-commitment-item::before{
        top:52px;
    }
    .philosophy-commitment-sec .philosophy-commitment-number{
        margin-bottom:0;
        font-size:clamp(34px, 3.5vw, 48px);
    }
    .philosophy-commitment-sec .philosophy-commitment-title{
        font-size:clamp(21px, 2vw, 28px);
    }
    .ul-philosophy-related{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:20px;
    }
}
@media (min-width:992px){
    .philosophy-vision-layout{
        grid-template-columns:minmax(0, 0.5fr) minmax(0, 1.5fr);
        grid-template-areas:
            "heading media"
            "body media"
            "points media";
        column-gap:48px;
        row-gap:28px;
        align-items:stretch;
    }
    .philosophy-vision-heading,
    .philosophy-vision-body,
    .ul-philosophy-vision-points{
        padding-right:20px;
    }
    .philosophy-vision-heading{
        position:relative;
        z-index:10;
    }
    .philosophy-vision-catch{
        font-size:32px;
        line-height:1.55;
        white-space:nowrap;
        text-shadow:
            -1px -1px 10px #ffffff,
             0    -1px 10px #ffffff,
             1px  -1px 10px #ffffff,
            -1px   0   10px #ffffff,
             1px   0   10px #ffffff,
            -1px   1px 10px #ffffff,
             0     1px 10px #ffffff,
             1px   1px 10px #ffffff,
             0     0   6px rgba(255,255,255,0.9);
    }
    .philosophy-vision-body{
        width:700px;
        position:relative;
        z-index:10;
    }
    .philosophy-vision-text{
        text-shadow:
            -1px -1px 10px #ffffff,
             0    -1px 10px #ffffff,
             1px  -1px 10px #ffffff,
            -1px   0   10px #ffffff,
             1px   0   10px #ffffff,
            -1px   1px 10px #ffffff,
             0     1px 10px #ffffff,
             1px   1px 10px #ffffff,
             0     0   6px rgba(255,255,255,0.9);
    }
    .philosophy-vision-sec .philosophy-section-en{
        white-space:nowrap;
    }
    .philosophy-vision-sec .philosophy-section-title{
        white-space:nowrap;
        text-shadow:
            -1px -1px 10px #ffffff,
             0    -1px 10px #ffffff,
             1px  -1px 10px #ffffff,
            -1px   0   10px #ffffff,
             1px   0   10px #ffffff,
            -1px   1px 10px #ffffff,
             0     1px 10px #ffffff,
             1px   1px 10px #ffffff,
             0     0   6px rgba(255,255,255,0.9);
    }
    .ul-philosophy-vision-points{
        width:700px;
        z-index:10;
        background:linear-gradient(to right,  #fff 50%, rgba(255,255,255,0) 100%);
    }
    .philosophy-vision-media{
        --philosophy-vision-right-bleed:calc(50vw - 460px);
        aspect-ratio:auto;
        width:calc(100% + var(--philosophy-vision-right-bleed));
        max-width:none;
        height:100%;
        min-height:520px;
        margin-right:calc(0px - var(--philosophy-vision-right-bleed));
        align-self:stretch;
        border:0;
    }
    .philosophy-vision-media::before{
        content:"";
        position:absolute;
        top:-1px;
        left:-1px;
        bottom:-1px;
        width:calc(22% - 1px);
        max-width:141px;
        background:#ffffff;
        clip-path:polygon(0 0, 100% 0, 0 100%);
        pointer-events:none;
        z-index:1;
    }
    .philosophy-vision-media img{
        object-position:left 35%;
    }
    .philosophy-vision-point{
        column-gap:18px;
        padding:28px 0;
    }
    .philosophy-vision-point-title, .philosophy-vision-point-text{
        text-shadow:
            -1px -1px 10px #ffffff,
             0    -1px 10px #ffffff,
             1px  -1px 10px #ffffff,
            -1px   0   10px #ffffff,
             1px   0   10px #ffffff,
            -1px   1px 10px #ffffff,
             0     1px 10px #ffffff,
             1px   1px 10px #ffffff,
             0     0   6px rgba(255,255,255,0.9);
    }
    .ul-philosophy-page-nav{
        grid-template-columns:repeat(4, minmax(0, 1fr));
        gap:20px;
    }
    .philosophy-values-sec .ul-philosophy-values{
        margin-top:0;
    }
    .philosophy-values-sec .philosophy-value-card{
        padding-top:56px;
        padding-bottom:56px;
    }
    .philosophy-values-sec .philosophy-value-card:nth-child(odd){
        padding-right:56px;
    }
    .philosophy-values-sec .philosophy-value-card:nth-child(even){
        padding-left:56px;
    }
    .philosophy-values-sec .philosophy-value-title{
        font-size:clamp(52px, 4.5vw, 76px);
    }
    .philosophy-commitment-sec{
        padding-bottom:0;
    }
    .philosophy-commitment-sec::before{
        display:block;
    }
    .philosophy-commitment-sec .contains-wrap{
        display:grid;
        grid-template-columns:minmax(0, 0.8fr) minmax(0, 1.2fr);
        grid-template-areas:
            "heading commitments"
            "lead commitments";
        column-gap:clamp(60px, 7vw, 110px);
        gap: 30px;
        align-items:start;
    }
    .philosophy-commitment-sec .philosophy-section-heading{
        grid-area:heading;
    }
    .philosophy-commitment-sec .philosophy-commitment-lead{
        grid-area:lead;
        margin-top:0;
    }
    .philosophy-commitment-sec .ol-philosophy-commitments{
        grid-area:commitments;
        --philosophy-timeline-x:70px;
        margin-top:0;
    }
    .philosophy-commitment-sec .philosophy-commitment-item::before{
        top:60px;
        left:var(--philosophy-timeline-x);
    }
    .philosophy-commitment-sec .philosophy-commitment-item{
        grid-template-columns:60px minmax(0, 1fr);
        column-gap:40px;
        padding:40px 0;
    }
    .ul-philosophy-related{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
    }
}
@media (min-width:1200px){
    .philosophy-vision-media{
        --philosophy-vision-right-bleed:calc(50vw - 550px);
    }
    .philosophy-vision-layout {
        grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    }
}
@media (min-width:1400px){
    .philosophy-vision-media{
        --philosophy-vision-right-bleed:calc(50vw - 640px);
    }
}
@media (prefers-reduced-motion: reduce){
    .philosophy-related-card,
    .philosophy-related-arrow,
    .philosophy-page-nav-link{
        transition:none;
    }
}
/*==========================================================*/
/* philosophy scroll reveal animation                       */
/*==========================================================*/
html.is-philosophy-reveal-ready .js-philosophy-reveal,
html.is-philosophy-reveal-ready .js-philosophy-reveal-left,
html.is-philosophy-reveal-ready .js-philosophy-reveal-right{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change:opacity, transform;
}
html.is-philosophy-reveal-ready .js-philosophy-reveal.is-visible,
html.is-philosophy-reveal-ready .js-philosophy-reveal-left.is-visible,
html.is-philosophy-reveal-ready .js-philosophy-reveal-right.is-visible{
    opacity:1;
    transform:translate(0, 0);
    will-change:auto;
}
@media (min-width:768px){
    html.is-philosophy-reveal-ready .js-philosophy-reveal-left{
        transform:translateX(-30px);
    }
    html.is-philosophy-reveal-ready .js-philosophy-reveal-right{
        transform:translateX(30px);
    }
    html.is-philosophy-reveal-ready .js-philosophy-reveal.is-visible,
    html.is-philosophy-reveal-ready .js-philosophy-reveal-left.is-visible,
    html.is-philosophy-reveal-ready .js-philosophy-reveal-right.is-visible{
        transform:translate(0, 0);
    }
}
@media (prefers-reduced-motion: reduce){
    html.is-philosophy-reveal-ready .js-philosophy-reveal,
    html.is-philosophy-reveal-ready .js-philosophy-reveal-left,
    html.is-philosophy-reveal-ready .js-philosophy-reveal-right{
        opacity:1;
        transform:none;
        transition:none;
        transition-delay:0s;
        will-change:auto;
    }
}
/*==========================================================*/
/* company profile                                          */
/*==========================================================*/
.page-company .company-intro-sec,
.page-company .company-profile-sec,
.page-company .company-business-sec,
.page-company .company-access-sec,
.page-company .company-navigation-sec{
    position:relative;
    overflow:hidden;
}
.page-company .company-section-heading{
    margin-bottom:40px;
}
.page-company .company-section-number{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.page-company .company-section-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.page-company .company-section-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.page-company .company-intro-sec,
.page-company .company-business-sec,
.page-company .company-navigation-sec{
    background:#ffffff;
}
.page-company .company-profile-sec,
.page-company .company-access-sec{
    background:#F5F8FB;
}
.page-company .company-intro-catch{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
}
.page-company .company-intro-text,
.page-company .company-business-text,
.page-company .company-related-text,
.page-company .company-access-address,
.page-company .company-access-tel{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
}
.page-company .company-intro-text:last-child,
.page-company .company-business-text:last-of-type{
    margin-bottom:0;
}
.page-company .dl-company-profile{
    margin:0;
}
.page-company .company-profile-row{
    display:grid;
    gap:12px;
    margin:0 0 16px;
    padding:20px;
    background:#ffffff;
    border:1px solid #D9E2EC;
}
.page-company .company-profile-row:last-child{
    margin-bottom:0;
}
.page-company .company-profile-row dt{
    margin:0;
    color:#ffffff;
    background:var(--main-color1);
    padding:10px 14px;
    font-size:15px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
}
.page-company .company-profile-row dd{
    margin:0;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.08em;
    line-height:1.9;
    word-break:break-word;
}
.page-company .company-profile-postcode{
    display:block;
}
.page-company .company-profile-address{
    display:block;
}
.page-company .ul-company-business{
    margin:0;
    padding:0 0 0 1.2em;
}
.page-company .ul-company-business li{
    margin:0 0 6px;
}
.page-company .ul-company-business li:last-child{
    margin-bottom:0;
}
.page-company .company-profile-link-wrap{
    margin-top:30px;
    display:flex;
    justify-content: center;
    width:100%;
}
.page-company .company-text-link{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width:300px;
    height: 60px;
    min-width: 0;
    border: 1px solid var(--main-color1);
    color: var(--main-color1);
    background: #ffffff;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.4;
    text-decoration: none;
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
    position: relative;
}
.page-company .company-text-link i{
    position:absolute;
    top:50%;
    right:20px;
    translate:0 -50%;
    transition:right 0.3s;
}
.page-company .company-text-link:hover i{
    right:10px;
}
.page-company .company-text-link:hover, .page-company .company-text-link:focus-visible{
    color:#ffffff;
    background:var(--main-color2);
    border-color:var(--main-color2);
}
.page-company .company-related-card:focus-visible,
.page-company .company-profile-row dd a:focus-visible,
.page-company .company-access-tel a:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
.page-company .company-access-name{
    margin:0 0 16px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.page-company .company-access-body{
    padding:30px 20px;
    background:#ffffff;
    border:1px solid #D9E2EC;
}
.page-company .ul-company-related{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.page-company .company-related-card{
    display:block;
    height:100%;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#ffffff;
    text-decoration:none;
    transition:border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.page-company .company-related-card:hover{
    border-color:var(--main-color2);
    box-shadow:0 10px 24px rgba(15,45,84,0.08);
    transform:translateY(-4px);
}
.page-company .company-related-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.page-company .company-related-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.page-company .company-related-text{
    margin-bottom:20px;
}
.page-company .company-related-arrow{
    display:inline-flex;
    color:var(--main-color2);
    transition:transform 0.3s ease;
}
.page-company .company-related-card:hover .company-related-arrow{
    transform:translateX(4px);
}
.telnolink, .urllink{
    color:var(--main-color1);
    font-weight:500;
    position:relative;
}
.telnolink::before, .urllink::before{
    content:'';
    width:100%;
    height:1px;
    background:var(--main-color1);
    position:absolute;
    bottom:0;
    left:0;
    transform:scale(0, 1);
    transform-origin: right center;
    transition:transform 0.3s
}
.telnolink:hover::before, .urllink:hover::before{
    transform:scale(1,1);
    transform-origin: left center;
}
.company-access-map{
    width:100%;
    padding-top:100%;
    position:relative;
}
.company-access-map iframe{
    width:100%;
    height:100%;
    position:absolute;
    top:0;
    left:0;
}
@media (min-width:768px){
    .page-company .company-section-title{
        font-size:32px;
    }
    .page-company .company-intro-catch{
        font-size:24px;
        letter-spacing:0.05em;
    }
    .page-company .company-intro-catch br{
        display:none;
    }
    .page-company .company-profile-row{
        grid-template-columns:minmax(0, 28%) minmax(0, 1fr);
        gap:0;
        padding:0;
        overflow:hidden;
    }
    .page-company .company-profile-row dt{
        display:flex;
        align-items:center;
        padding:24px 20px;
    }
    .page-company .company-profile-row dd{
        padding:24px 28px;
        background:#ffffff;
    }
    .page-company .company-access-body{
        padding:40px;
    }
    .page-company .ul-company-related{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:20px;
    }
    .telnolink{
        color:var(--font-color2);
        font-weight:400;
        pointer-events: none;
    }
    .company-access-map{
        padding-top:500px;
    }
}
@media (prefers-reduced-motion: reduce){
    .page-company .company-related-card,
    .page-company .company-related-arrow,
    .page-company .company-text-link,
    .page-company .company-text-link::before,
    .page-company .company-text-link i{
        transition:none;
    }
}
/*==========================================================*/
/* company scroll reveal animation                          */
/*==========================================================*/
html.is-company-reveal-ready .page-company .js-company-reveal{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change:opacity, transform;
}
html.is-company-reveal-ready .page-company .js-company-reveal.is-visible{
    opacity:1;
    transform:translate(0, 0);
    will-change:auto;
}
@media (prefers-reduced-motion: reduce){
    html.is-company-reveal-ready .page-company .js-company-reveal{
        opacity:1;
        transform:none;
        transition:none;
        transition-delay:0s;
        will-change:auto;
    }
}
/*==========================================================*/
/* message page                                             */
/*==========================================================*/
.page-message .message-intro-sec,
.page-message .message-body-sec,
.page-message .message-president-sec,
.page-message .message-related-sec{
    position:relative;
    overflow:hidden;
}
.page-message .message-section-heading{
    margin-bottom:40px;
}
.page-message .message-section-number{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.page-message .message-section-en,
.page-message .message-theme-en,
.page-message .message-related-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    overflow-wrap:anywhere;
}
.page-message .message-section-title{
    margin:0;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.page-message .message-intro-sec,
.page-message .message-body-sec,
.page-message .message-related-sec{
    background:#ffffff;
}
.page-message .message-president-sec{
    background:#F5F8FB;
}
.page-message .message-intro-inner{
    display:grid;
    gap:20px;
}
.page-message .message-intro-inner > .message-section-heading{
    margin-bottom:0;
}
.page-message .message-intro-media{
    position:relative;
    width:100%;
    max-width:400px;
    margin:0 auto;
    aspect-ratio:4 / 5;
    overflow:hidden;
    background:#EAF4FB;
    border:1px solid #D9E2EC;
}
.page-message .message-intro-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:right center;
}
.page-message .message-intro-media--placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
}
.page-message .message-intro-placeholder-label{
    margin:0;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.7;
    text-align:center;
}
.page-message .message-intro-catch{
    margin:0;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
}
.page-message .message-intro-text,
.page-message .message-theme-text p,
.page-message .message-related-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    text-align:left;
}
.page-message .message-intro-text:last-child,
.page-message .message-theme-text > p:last-child{
    margin-bottom:0;
}
.page-message .message-body-inner{
    margin:0 auto;
}
.page-message .message-theme{
    padding:0 0 40px;
    margin:0 0 40px;
    border-bottom:1px solid var(--sub-color);
}
.page-message .message-theme:last-child{
    margin-bottom:0;
    padding-bottom:0;
    border-bottom:none;
}
.page-message .message-theme-heading{
    margin:0 0 30px;
}
.page-message .message-theme-title{
    margin:0;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.page-message .message-theme-text p{
    margin:0 0 28px;
}
.page-message .message-priority{
    margin:0 0 30px;
}
.page-message .message-priority:last-of-type{
    margin-bottom:30px;
}
.page-message .message-priority-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:18px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
}
.page-message .message-president-inner{
    margin:0 auto;
}
.page-message .message-president-company,
.page-message .message-president-status{
    margin:0;
    color:var(--main-color1);
    font-size:17px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
}
.page-message .message-president-company{
    margin-bottom:10px;
    font-size:20px;
}
.page-message .message-president-status{
    font-size:20px;
}
.page-message .ul-message-related{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.page-message .message-related-card{
    display:flex;
    flex-direction:column;
    min-height:44px;
    height:100%;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#ffffff;
    text-decoration:none;
    transition:border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.page-message .message-related-card:hover{
    border-color:var(--main-color2);
    box-shadow:0 10px 24px rgba(15,45,84,0.08);
    transform:translateY(-4px);
}
.page-message .message-related-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.page-message .message-related-text{
    flex:1 1 auto;
    margin-bottom:20px;
}
.page-message .message-related-arrow{
    display:inline-flex;
    color:var(--main-color2);
    transition:transform 0.3s ease;
}
.page-message .message-related-card:hover .message-related-arrow{
    transform:translateX(4px);
}
.page-message .message-related-card:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
@media (min-width:768px){
    .page-message .message-section-title{
        font-size:32px;
    }
    .page-message .message-intro-catch{
        font-size:28px;
        letter-spacing:0.05em;
    }
    .page-message .message-theme-title{
        font-size:24px;
    }
    .page-message .message-priority-title{
        font-size:20px;
    }
}
@media (min-width:992px){
    .page-message .message-intro-inner{
        grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr);
        grid-template-areas:
            "heading heading"
            "media catch"
            "media copy";
        column-gap:40px;
        row-gap:20px;
        align-items:start;
    }
    .page-message .message-intro-inner > .message-section-heading{
        grid-area:heading;
    }
    .page-message .message-intro-catch{
        grid-area:catch;
        font-size:32px;
    }
    .page-message .message-intro-media{
        grid-area:media;
        width:100%;
        margin:0;
    }
    .page-message .message-intro-copy{
        grid-area:copy;
    }
    .page-message .message-related-card{
        padding:30px 20px;
    }
    .page-message .ul-message-related{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:20px;
    }
}
@media (prefers-reduced-motion: reduce){
    .page-message .message-related-card,
    .page-message .message-related-arrow{
        transition:none;
    }
}
/*==========================================================*/
/* message scroll reveal animation                          */
/*==========================================================*/
html.is-message-reveal-ready .page-message .js-message-reveal,
html.is-message-reveal-ready .page-message .js-message-reveal-left,
html.is-message-reveal-ready .page-message .js-message-reveal-right{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change:opacity, transform;
}
html.is-message-reveal-ready .page-message .js-message-reveal.is-visible,
html.is-message-reveal-ready .page-message .js-message-reveal-left.is-visible,
html.is-message-reveal-ready .page-message .js-message-reveal-right.is-visible{
    opacity:1;
    transform:translate(0, 0);
    will-change:auto;
}
@media (min-width:768px){
    html.is-message-reveal-ready .page-message .js-message-reveal-left{
        transform:translateX(-30px);
    }
    html.is-message-reveal-ready .page-message .js-message-reveal-right{
        transform:translateX(30px);
    }
    html.is-message-reveal-ready .page-message .js-message-reveal.is-visible,
    html.is-message-reveal-ready .page-message .js-message-reveal-left.is-visible,
    html.is-message-reveal-ready .page-message .js-message-reveal-right.is-visible{
        transform:translate(0, 0);
    }
}
@media (prefers-reduced-motion: reduce){
    html.is-message-reveal-ready .page-message .js-message-reveal,
    html.is-message-reveal-ready .page-message .js-message-reveal-left,
    html.is-message-reveal-ready .page-message .js-message-reveal-right{
        opacity:1;
        transform:none;
        transition:none;
        transition-delay:0s;
        will-change:auto;
    }
}
/*==========================================================*/
/* group companies page                                     */
/*==========================================================*/
.page-group .group-intro-sec,
.page-group .group-structure-sec,
.page-group .group-company-sec,
.page-group .group-related-sec,
.page-group .group-synergy-sec,
.page-group .group-links-sec,
.page-group .group-future-sec{
    position:relative;
    overflow:hidden;
}
.page-group .page-section{
    padding:60px 0;
}
.page-group .group-section-heading{
    margin-bottom:40px;
}
.page-group .group-section-number{
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
}
.page-group .group-section-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.12em;
    line-height:1.5;
    overflow-wrap:anywhere;
}
.page-group .group-section-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0;
    line-height:1.5;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.page-group .group-section-heading--light .group-section-number,
.page-group .group-section-heading--light .group-section-en{
    color:var(--sub-color);
}
.page-group .group-section-heading--light .group-section-title{
    color:#ffffff;
}
.page-group .group-intro-sec,
.page-group .group-company-sec{
    background:#ffffff;
}
.page-group .group-structure-sec,
.page-group .group-related-sec,
.page-group .group-synergy-sec{
    background:#F5F8FB;
}
.page-group .group-intro-catch,
.page-group .group-company-catch,
.page-group .group-related-catch,
.page-group .group-future-catch{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    font-family:var(--noto-serif);
}
.page-group .group-intro-text,
.page-group .group-structure-lead,
.page-group .group-structure-note,
.page-group .group-company-lead,
.page-group .group-company-text,
.page-group .group-related-text,
.page-group .group-synergy-lead,
.page-group .group-synergy-text,
.page-group .group-links-lead,
.page-group .group-future-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
    overflow-wrap:anywhere;
}
.page-group .group-intro-text:last-child,
.page-group .group-company-text:last-child,
.page-group .group-related-text:last-of-type,
.page-group .group-future-text:last-of-type{
    margin-bottom:0;
}
.page-group .group-company-media,
.page-group .group-synergy-media{
    margin:0;
    width:100%;
    overflow:hidden;
}
.page-group .group-company-media img,
.page-group .group-synergy-media img{
    display:block;
    width:100%;
    height:auto;
    object-fit:cover;
    border:1px solid #D9E2EC;
    background:#EAF4FB;
}
.page-group .group-company-media img{
    aspect-ratio:3 / 2;
}
.page-group .group-synergy-media img{
    aspect-ratio:4 / 3;
}
.page-group .group-company-media-note,
.page-group .group-synergy-media-note{
    margin:10px 0 0;
    padding:0;
    color:var(--font-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    text-align:left;
}
.page-group .group-structure-lead{
    margin-bottom:40px;
}
.page-group .group-structure-diagram{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    max-width:560px;
    margin:0 auto;
}
.page-group .group-structure-company{
    padding:30px 20px;
    background:#ffffff;
    border:1px solid #D9E2EC;
    overflow-wrap:anywhere;
}
.page-group .group-structure-company--parent{
    border-color:var(--main-color1);
    background:var(--main-color1);
}
.page-group .group-structure-company--parent .group-structure-company-name,
.page-group .group-structure-company--parent .group-structure-company-en,
.page-group .group-structure-company--parent .group-structure-company-text{
    color:#ffffff;
}
.page-group .group-structure-company--group{
    border-color:var(--main-color2);
}
.page-group .group-structure-company--related{
    background:#F8FBFE;
}
.page-group .group-structure-label{
    display:inline-block;
    margin:0 0 10px;
    padding:10px 20px;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.12em;
    line-height:1.4;
}
.page-group .group-structure-company--parent .group-structure-label{
    color:#ffffff;
    border:1px solid rgba(255,255,255,0.55);
}
.page-group .group-structure-company--group .group-structure-label{
    color:var(--main-color2);
    border:1px solid var(--main-color2);
}
.page-group .group-structure-company-name{
    margin:0 0 10px;
    color:var(--main-color1);
    font-size:18px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.page-group .group-structure-company-en{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.14em;
    line-height:1.4;
}
.page-group .group-structure-company-text{
    margin:0;
    color:var(--font-color2);
    font-size:15px;
    letter-spacing:0.06em;
    line-height:1.8;
}
.page-group .group-structure-connector{
    width:2px;
    height:28px;
    margin:10px auto;
    background:var(--main-color2);
}
.page-group .group-structure-relation{
    display:flex;
    width:200px;
    min-height:48px;
    justify-content:center;
    align-items:center;
    max-width:100%;
    margin:0 auto;
    padding:10px 20px;
    border:1px solid var(--main-color2);
    color:var(--main-color2);
    background:#ffffff;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.4;
    text-align:center;
    overflow-wrap:anywhere;
}
.page-group .group-structure-note{
    margin:40px 0 0;
}
.page-group .group-company-type{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.page-group .group-company-name{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:22px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.page-group .group-company-lead{
    margin-bottom:40px;
}
.page-group .group-company-catch{
    margin-bottom:40px;
}
.page-group .group-company-inner{
    display:grid;
    gap:30px;
    margin-bottom:40px;
}
.page-group .dl-group-company-profile{
    margin:0 0 40px;
}
.page-group .group-company-profile-row{
    display:grid;
    gap:10px;
    margin:0 0 20px;
    padding:20px;
    background:#F5F8FB;
    border:1px solid #D9E2EC;
    overflow-wrap:anywhere;
}
.page-group .group-company-profile-row:last-child{
    margin-bottom:0;
}
.page-group .group-company-profile-row dt{
    margin:0;
    color:#ffffff;
    background:var(--main-color1);
    padding:10px 20px;
    font-size:15px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
}
.page-group .group-company-profile-row dd{
    margin:0;
    color:var(--font-color2);
    font-size:17px;
    letter-spacing:0.08em;
    line-height:1.9;
    text-align:left;
}
.page-group .group-company-postcode,
.page-group .group-company-address{
    display:block;
}
.page-group .group-external-link-wrap{
    margin-top:10px;
    display:flex;
    justify-content:center;
}
.page-group .group-external-link,
.page-group .group-future-link{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    width:100%;
    min-height:80px;
    max-width:500px;
    color:var(--main-color1);
    font-size:16px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    text-decoration:none;
    overflow-wrap:anywhere;
    border:1px solid var(--main-color1);
    background:#ffffff;
    padding:20px 50px 20px 20px;
    transition:background 0.3s, color 0.3s;
}
.page-group .group-external-link-main{
    display:block;
}
.page-group .group-external-link-sub{
    display:block;
    margin-top:10px;
    font-size:14px;
    font-weight:500;
    letter-spacing:0.06em;
    line-height:1.5;
}
.page-group .group-external-link i,
.page-group .group-future-link i{
    color:var(--main-color2);
    transition:right 0.3s ease, color 0.3s;
    position:absolute;
    top:50%;
    right:20px;
    translate:0 -50%;
}
.page-group .group-external-link:hover,
.page-group .group-future-link:hover{
    background:var(--main-color1);
    color:#fff;
}
.page-group .group-external-link:hover i,
.page-group .group-future-link:hover i{
    right:10px;
    color:#fff;
}
.page-group .group-external-link:focus-visible,
.page-group .group-future-link:focus-visible{
    outline:2px solid var(--main-color2);
    outline-offset:4px;
}
.page-group .group-related-card{
    padding:30px 20px;
    background:#ffffff;
    border:1px solid #D9E2EC;
}
.page-group .group-related-label{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.16em;
    line-height:1.4;
}
.page-group .group-related-name{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:22px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.page-group .ul-group-related-points{
    display:grid;
    gap:10px;
    margin:30px 0;
    padding:0;
    list-style:none;
}
.page-group .ul-group-related-points li{
    display:grid;
    gap:10px;
    padding:20px;
    background:#F5F8FB;
    border:1px solid #D9E2EC;
    overflow-wrap:anywhere;
}
.page-group .group-related-point-label{
    color:var(--main-color1);
    font-size:16px;
    font-weight:700;
    letter-spacing:0.1em;
}
.page-group .group-related-point-value{
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.06em;
    line-height:1.7;
}
.page-group .group-synergy-top{
    display:grid;
    gap:30px;
    margin-bottom:40px;
}
.page-group .group-synergy-lead{
    margin-bottom:0;
}
.page-group .ul-group-synergy{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.page-group .group-synergy-card{
    display:flex;
    flex-direction:column;
    height:auto;
    min-height:0;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    background:#ffffff;
}
.page-group .group-synergy-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:60px;
    height:60px;
    margin-bottom:20px;
    border:1px solid rgba(4,44,161,0.35);
    color:var(--main-color2);
    font-size:32px;
}
.page-group .group-synergy-title{
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:18px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
}
.page-group .group-synergy-text{
    margin-bottom:0;
}
.page-group .group-links-sec{
    background:linear-gradient(145deg, var(--main-color1) 0%, #0B3F8C 55%, var(--main-color2) 100%);
}
.page-group .group-links-lead{
    margin-bottom:40px;
    color:rgba(255,255,255,0.92);
}
.page-group .ul-group-links{
    display:grid;
    gap:20px;
    margin:0;
    padding:0;
    list-style:none;
}
.page-group .group-link-card{
    display:block;
    height:100%;
    padding:30px 20px;
    background:rgba(255,255,255,0.96);
    border:1px solid rgba(255,255,255,0.35);
    color:var(--main-color1);
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:background 0.3s, border-color 0.3s, color 0.3s;
}
.page-group .group-link-card-label{
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.12em;
    line-height:1.4;
}
.page-group .group-link-card-title{
    margin:0 0 10px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.06em;
    line-height:1.5;
    font-family:var(--noto-serif);
}
.page-group .group-link-card-text{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:15px;
    letter-spacing:0.06em;
    line-height:1.8;
    text-align:left;
}
.page-group .group-link-card-action{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
}
.page-group .group-link-card-action i{
    font-size:14px;
}
.page-group .group-link-card:hover{
    background:#ffffff;
    border-color:var(--sub-color);
}
.page-group .group-link-card:focus-visible{
    outline:2px solid #ffffff;
    outline-offset:4px;
}
.page-group .group-future-sec{
    background:linear-gradient(145deg, var(--main-color1) 0%, #0B3F8C 55%, var(--main-color2) 100%);
}
.page-group .group-future-inner{
    position:relative;
    padding:20px 0;
}
.page-group .group-future-catch{
    color:#ffffff;
}
.page-group .group-future-text{
    color:rgba(255,255,255,0.9);
}
.page-group .group-future-link-wrap{
    margin-top:30px;
    display:flex;
    justify-content:center;
}
.page-group .group-future-link{
    transition:background 0.3s;
}
.page-group .group-future-link:hover{
    color:#ffffff;
    background:rgba(255,255,255,0.08);
}
@media (min-width:768px){
    .page-group .group-section-title{
        font-size:32px;
        letter-spacing:0.1em;
    }
    .page-group .group-intro-catch,
    .page-group .group-company-catch,
    .page-group .group-related-catch,
    .page-group .group-future-catch{
        font-size:24px;
        letter-spacing:0.05em;
    }
    .page-group .group-company-name{
        font-size:26px;
    }
    .page-group .group-company-profile-row{
        grid-template-columns:minmax(0, 28%) minmax(0, 1fr);
        gap:0;
        padding:0;
        overflow:hidden;
    }
    .page-group .group-company-profile-row dt{
        display:flex;
        align-items:center;
        padding:20px 20px;
    }
    .page-group .group-company-profile-row dd{
        padding:20px 30px;
        background:#ffffff;
    }
    .page-group .ul-group-related-points li{
        grid-template-columns:120px minmax(0, 1fr);
        align-items:start;
        gap:20px;
    }
    .page-group .group-related-card{
        padding:40px;
    }
    .page-group .ul-group-synergy,
    .page-group .ul-group-links{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:20px;
    }
    .page-group .group-synergy-card{
        padding:40px 20px;
    }
}
@media (min-width:992px){
    .page-group .page-section{
        padding:80px 0;
    }
    .page-group .group-company-inner{
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        align-items:start;
        gap:50px;
    }
    .page-group .group-company-sec .contains-wrap{
        max-width:1080px;
    }
    .page-group .group-synergy-top{
        grid-template-columns:minmax(0, 1.05fr) minmax(0, 0.95fr);
        align-items:start;
        gap:50px;
    }
    .page-group .group-structure-diagram{
        max-width:640px;
    }
    .page-group .group-link-card{
        min-height:240px;
    }
}
@media (min-width:1200px){
    .page-group .group-link-card{
        min-height:210px;
    }
}
@media (prefers-reduced-motion: reduce){
    .page-group .group-external-link i,
    .page-group .group-future-link i{
        transition:none;
    }
}
/*==========================================================*/
/* group scroll reveal animation                            */
/*==========================================================*/
html.is-group-reveal-ready .page-group .js-group-reveal,
html.is-group-reveal-ready .page-group .js-group-reveal-left,
html.is-group-reveal-ready .page-group .js-group-reveal-right{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change:opacity, transform;
}
html.is-group-reveal-ready .page-group .js-group-reveal.is-visible,
html.is-group-reveal-ready .page-group .js-group-reveal-left.is-visible,
html.is-group-reveal-ready .page-group .js-group-reveal-right.is-visible{
    opacity:1;
    transform:translate(0, 0);
    will-change:auto;
}
@media (min-width:768px){
    html.is-group-reveal-ready .page-group .js-group-reveal-left{
        transform:translateX(-30px);
    }
    html.is-group-reveal-ready .page-group .js-group-reveal-right{
        transform:translateX(30px);
    }
    html.is-group-reveal-ready .page-group .js-group-reveal.is-visible,
    html.is-group-reveal-ready .page-group .js-group-reveal-left.is-visible,
    html.is-group-reveal-ready .page-group .js-group-reveal-right.is-visible{
        transform:translate(0, 0);
    }
}
@media (prefers-reduced-motion: reduce){
    html.is-group-reveal-ready .page-group .js-group-reveal,
    html.is-group-reveal-ready .page-group .js-group-reveal-left,
    html.is-group-reveal-ready .page-group .js-group-reveal-right{
        opacity:1;
        transform:none;
        transition:none;
        transition-delay:0s;
        will-change:auto;
    }
}

/*==========================================================*/
/* privacy policy                                           */
/*==========================================================*/
.privacy-policy-sec{
    background:#F5F8FB;
}
.privacy-policy-document{
    max-width:960px;
    margin:0 auto;
    padding:30px 20px;
    border:1px solid #D9E2EC;
    border-top:4px solid var(--main-color1);
    background:#ffffff;
    box-shadow:0 8px 24px rgba(8,41,100,0.06);
}
.privacy-policy-intro{
    margin:0 0 40px;
    padding:0 0 40px;
    border-bottom:1px solid #D9E2EC;
}
.privacy-policy-intro p,
.privacy-policy-item p,
.ul-privacy-policy-exceptions li{
    margin:0 0 20px;
    color:var(--font-color2);
    font-size:17px;
    font-family:var(--noto-sans);
    letter-spacing:0.1em;
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
    overflow-wrap:anywhere;
}
.privacy-policy-intro p:last-child,
.privacy-policy-item p:last-child{
    margin-bottom:0;
}
.privacy-policy-item{
    margin:0;
    padding:40px 0;
    border-bottom:1px solid #D9E2EC;
}
.privacy-policy-item:last-child{
    border-bottom:0;
    padding-bottom:0;
}
.privacy-policy-heading{
    position:relative;
    margin:0 0 20px;
    padding:0 0 0 20px;
    color:var(--main-color1);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    font-family:var(--noto-serif);
    overflow-wrap:anywhere;
}
.privacy-policy-heading::before{
    content:"";
    position:absolute;
    left:0;
    top:0.35em;
    bottom:0.35em;
    width:3px;
    background:var(--main-color2);
}
.ul-privacy-policy-exceptions{
    margin:20px 0 0;
    padding:0 0 0 1.5em;
    list-style:disc;
}
.ul-privacy-policy-exceptions li{
    margin:0 0 10px;
    padding:0;
}
.ul-privacy-policy-exceptions li:last-child{
    margin-bottom:0;
}
@media (min-width:768px){
    .privacy-policy-document{
        padding:50px;
    }
    .privacy-policy-heading{
        font-size:24px;
    }
}
@media (min-width:992px){
    .privacy-policy-document{
        padding:70px 80px;
    }
}
/*==========================================================*/
/* contact                                                  */
/*==========================================================*/
.contact-intro-sec,
.contact-form-sec {
    background:#ffffff;
}
.contact-intro-copy {
    max-width:900px;
    margin:0 auto;
}
.contact-intro-catch {
    margin:0 0 20px;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.6;
    text-align:left;
}
.contact-intro-text {
    margin:0;
    color:var(--font-color2);
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
.contact-intro-text + .contact-intro-text { /* rishun-check-disable-line redundant-parent-class -- 同一classの隣接要素だけに余白を付けるため */
    margin-top:20px;
}
.contact-guide-sec {
    background:#f4f7fb;
}
.contact-section-heading {
    margin-bottom:30px;
}
.contact-section-number {
    margin:0 0 10px;
    color:var(--sub-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
    text-align:left;
}
.contact-section-en {
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    line-height:1.4;
    text-align:left;
}
.contact-section-title {
    margin:0;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.5;
    text-align:left;
}
.contact-section-title span{
    display:inline-block;
}
.contact-guide-card {
    margin:0 auto;
    padding:40px 20px;
    border-left:4px solid var(--main-color2);
    border-radius:10px;
    background:#ffffff;
    box-shadow:0 10px 30px rgba(8, 41, 100, 0.08);
}
.contact-guide-text {
    margin:0;
    color:var(--font-color2);
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
.contact-guide-text + .contact-guide-text { /* rishun-check-disable-line redundant-parent-class -- 同一classの隣接要素だけに余白を付けるため */
    margin-top:20px;
}
.contact-guide-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:60px;
    margin-top:60px;
    border:1px solid var(--main-color1);
    background:var(--main-color1);
    color:#ffffff;
    font-size:17px;
    font-weight:700;
    line-height:1.5;
    text-align:center;
    text-decoration:none;
    transition:opacity 0.3s ease;
    position:relative;
    padding-right:20px;
}
.contact-guide-link i{
    position:absolute;
    top:50%;
    right:15px;
    translate:0 -50%;
    transition:right 0.3s;
}
.contact-guide-link:hover i{
    right:5px;
}
.contact-guide-link:hover,
.contact-guide-link:focus-visible {
    opacity:0.8;
}
.contact-form-lead {
    max-width:900px;
    margin:0 auto 30px;
    color:var(--font-color2);
    line-height:2;
    text-align: var(--tmtech-default-text-align, justify);
}
.contact-form-shell {
    margin:0 auto;
    padding:20px;
    border:1px solid #dbe3ee;
    border-radius:10px;
    background:#f7f9fc;
    box-shadow:0 10px 30px rgba(8, 41, 100, 0.08);
}
.contact-form-shell .rch-form-wrap {
    margin:0;
}
.contact-form-shell .rch-form > label,
.contact-form-shell .rch-form > p:not(.rch-submit-wrap) { /* rishun-check-disable-line redundant-parent-class -- 送信段落を除外する構造指定のため */
    margin:0 0 30px;
    color:var(--font-color);
    font-size:17px;
    font-weight:600;
    letter-spacing:0.05em;
    line-height:1.8;
    text-align:left;
}
.contact-form-shell .rch-form > label{
    margin:30px 0 10px 0;
}
.contact-form-shell .rch-form .required,
.contact-form-shell .rch-form .optional {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    margin-left:10px;
    padding:0 10px;
    border-radius:999px;
    color:#ffffff;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.05em;
    line-height:1.4;
    vertical-align:middle;
}
.contact-form-shell .rch-form .required {
    background:var(--rch-form-error-color);
}
.contact-form-shell .rch-form .optional {
    background:var(--rch-form-muted-color);
}
.contact-form-shell .rch-form .rch-radio-group { /* rishun-check-disable-line redundant-parent-class -- RCHの.rch-form .rch-radio-group { display:block } より詳細度を上げてgridを適用するため */
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:10px;
    margin-top:10px;
}
.contact-form-shell .rch-form .rch-radio-item { /* rishun-check-disable-line redundant-parent-class -- RCHの.rch-form .rch-radio-item より詳細度を上げて余白を上書きするため */
    margin:0;
}
.contact-form-shell .rch-form textarea {
    min-height:220px;
}
.contact-form-shell .rch-form .rch-acceptance { /* rishun-check-disable-line redundant-parent-class -- RCHの.rch-form .rch-acceptance より詳細度を上げて余白を上書きするため */
    margin:30px 0;
}
.contact-form-shell .rch-form .rch-submit-wrap { /* rishun-check-disable-line redundant-parent-class -- RCHの.rch-form .rch-submit-wrap より詳細度を上げて余白と配置を上書きするため */
    margin:30px 0 0;
    text-align:center;
}
.contact-form-shell .rch-form .rch-acceptance a{
    transition:opacity 0.3s;
}
.contact-form-shell .rch-form .rch-acceptance a:hover{
    opacity:0.8;
    text-decoration: none;
}
@media(min-width:768px) {
    .contact-intro-catch,
    .contact-section-title {
        font-size:32px;
    }
    .contact-guide-card,
    .contact-form-shell {
        padding:40px;
    }
    .contact-form-shell .rch-form .rch-radio-group { /* rishun-check-disable-line redundant-parent-class -- RCHの.rch-form .rch-radio-group { display:block } より詳細度を上げて2列gridを適用するため */
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:10px 20px;
    }
    .contact-form-shell .rch-form .rch-acceptance{
        display:flex;
        justify-content:center;
    }
}
@media(min-width:992px) {
    .contact-form-shell {
        padding:60px;
    }
}
@media(prefers-reduced-motion:reduce) {
    .contact-guide-link {
        transition:none;
    }
    .contact-guide-link:hover {
        transform:none;
    }
}
/*==========================================================*/
/* sitemap                                                  */
/*==========================================================*/
.sitemap-index-sec {
    background:#ffffff;
}
.sitemap-index-lead {
    max-width:900px;
    margin:0 auto 40px;
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    text-align:center;
}
.sitemap-index-nav {
    max-width:1100px;
    margin:0 auto;
}
.sitemap-index-grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:20px;
}
.sitemap-group-card {
    padding:20px;
    border:1px solid #dbe3ee;
    border-top:4px solid var(--main-color2);
    border-radius:10px;
    background:#f7f9fc;
    box-shadow:0 10px 30px rgba(8, 41, 100, 0.08);
}
.sitemap-group-en {
    margin:0 0 10px;
    color:var(--main-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.12em;
    line-height:1.4;
}
.sitemap-group-title {
    margin:0;
    color:var(--main-color1);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.05em;
    line-height:1.5;
}
.ul-sitemap-links {
    margin:20px 0 0;
    padding:0;
    border-top:1px solid #dbe3ee;
    list-style:none;
}
.ul-sitemap-links li {
    margin:0;
    border-bottom:1px solid #dbe3ee;
}
.sitemap-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:60px;
    padding:10px 0 10px 10px;
    color:var(--font-color);
    font-size:16px;
    font-weight:600;
    line-height:1.6;
    text-decoration:none;
    transition:color 0.3s ease, background 0.3s;
}
.sitemap-link:hover {
    color:var(--main-color2);
    text-decoration:none;
    background:#fff;
}
.sitemap-link:focus-visible {
    outline:3px solid var(--sub-color);
    outline-offset:3px;
}
.sitemap-link i {
    flex:0 0 auto;
    color:var(--main-color2);
    transition:transform 0.3s ease;
}
.sitemap-link:hover i {
    transform:translateX(4px);
}
@media(min-width:768px) {
    .sitemap-index-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
    .sitemap-group-card {
        padding:30px;
    }
    .sitemap-group-card:last-child {
        grid-column:1 / -1;
    }
}
@media(min-width:1200px) {
    .sitemap-index-grid {
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }
    .sitemap-group-card:last-child {
        grid-column:auto;
    }
}
@media(prefers-reduced-motion:reduce) {
    .sitemap-link,
    .sitemap-link i {
        transition:none;
    }
}

/*==========================================================*/
/* English HOME (tmtech-english-home) hero adjustments      */
/*==========================================================*/
.tmtech-english-home .catchcopy-desc{
    max-width:100%;
    padding-left:16px;
    padding-right:16px;
    box-sizing:border-box;
}
/* English: final text layout from start; center-origin reveal via clip-path + translateX */
.tmtech-english-home .catchcopy-item{
    white-space:normal;
    width:auto;
    max-width:100%;
    overflow:hidden;
    clip-path:inset(0 100% 0 0);
    transform:translateX(50%);
}
.tmtech-english-home .catchcopy-item.is-typewriter-complete{
    width:auto;
    max-width:100%;
    overflow:visible;
    clip-path:none;
    transform:none;
    animation:none;
}
.tmtech-english-home .catchcopy-item.anim-tmtech-english-catchcopy{
    animation:tmtech-english-catchcopy-reveal 2s cubic-bezier(0.77, 0, 0.175, 1) 500ms both;
}
@keyframes tmtech-english-catchcopy-reveal{
    from{
        clip-path:inset(0 100% 0 0);
        transform:translateX(50%);
    }
    to{
        clip-path:inset(0 0 0 0);
        transform:translateX(0);
    }
}
@media (prefers-reduced-motion: reduce){
    .tmtech-english-home .catchcopy-item.anim-tmtech-english-catchcopy{
        animation:none;
    }
    .tmtech-english-home .topslide-wrap.is-reduced-motion .catchcopy-item,
    .tmtech-english-home .catchcopy-item.is-typewriter-complete{
        clip-path:none;
        transform:none;
        overflow:visible;
    }
}
.tmtech-english-home .catchcopy-desc h2{
    display:block;
    white-space:normal;
    max-width:100%;
    font-size:16px;
    line-height:1.35;
    letter-spacing:0.04em;
    margin-bottom:0;
}
@media(min-width:768px){
    .tmtech-english-home .catchcopy-desc{
        padding-left:0;
        padding-right:0;
    }
    .tmtech-english-home .catchcopy-desc h2{
        font-size:32px;
        line-height:1.35;
        letter-spacing:0.06em;
    }
}
@media(min-width:992px){
    .tmtech-english-home .catchcopy-desc h2{
        font-size:40px;
    }
}
@media(min-width:1200px){
    .tmtech-english-home .catchcopy-desc h2{
        font-size:46px;
    }
}
.tmtech-english-home .home-role-sec .home-section-heading .home-section-number,
.tmtech-english-home .home-news-sec .home-section-heading .home-section-number{
    margin-bottom:10px;
}
.tmtech-english-home .home-link-card-body{
    padding-top:8px;
}
.tmtech-english-home .home-strength-ttl,
.tmtech-english-home .home-value-step-ttl,
.tmtech-english-home .home-link-card-ttl{
    overflow-wrap:anywhere;
    line-height:1.4;
}
.tmtech-english-home .home-btn span{
    text-align:center;
    line-height:1.4;
}

/*==========================================================*/
/* English About: layout tweaks (section/titles, catch, position arrow, cards) */
/*==========================================================*/
.tmtech-english .about-section-title,
.tmtech-english .about-role-title,
.tmtech-english .about-benefit-title,
.tmtech-english .about-related-title,
.tmtech-english .about-position-caption,
.tmtech-english .about-position-arrow-label,
.tmtech-english .ul-about-position-functions li,
.tmtech-english .ul-about-position-company-roles li,
.tmtech-english .ul-about-role-points li{
    overflow-wrap:anywhere;
    word-break:normal;
}
.tmtech-english .about-section-title{
    letter-spacing:0.04em;
    line-height:1.4;
}
.tmtech-english .about-role-title,
.tmtech-english .about-benefit-title,
.tmtech-english .about-related-title{
    letter-spacing:0.04em;
    line-height:1.4;
}
.tmtech-english .about-intro-catch,
.tmtech-english .about-future-catch{
    letter-spacing:0.04em;
    line-height:1.5;
}
.tmtech-english .about-intro-catch span{
    display:inline;
}
.tmtech-english .about-position-arrow{
    align-items:center;
}
.tmtech-english .about-position-arrow-label{
    flex:1 1 12em;
    min-width:0;
    letter-spacing:0.04em;
    line-height:1.5;
    text-align:left;
}
.tmtech-english .about-role-card{
    padding:28px 18px;
}
.tmtech-english .ul-about-related .about-related-title{
    margin-bottom:12px;
}
.tmtech-english .about-position-parent-desc{
    text-align:left;
}
.tmtech-english .ul-about-position-functions li{
    display:flex;
    width:100%;
    height:80px;
    justify-content: center;
    align-items:center;
    line-height:1.2;
}
.tmtech-english .about-position-companies-desc{
    text-align:left;
}
.tmtech-english .ul-about-position-company-roles li{
    display:flex;
    width:100%;
    height:80px;
    justify-content: center;
    align-items:center;
    line-height:1.2;
}
@media(min-width:768px){
    .tmtech-english .about-section-title{
        font-size:22px;
        letter-spacing:0.05em;
    }
    .tmtech-english .about-position-arrow-label{
        text-align:center;
    }
    .tmtech-english .about-position-arrow-label{
        flex:unset;
    }
    .tmtech-english .about-position-parent-desc{
        text-align:center;
    }
    .tmtech-english .about-position-companies-desc{
        text-align:center;
    }
}
@media(min-width:992px){
    .tmtech-english .about-section-title{
        font-size:24px;
    }
}

/*==========================================================*/
/* English Philosophy: layout tweaks (section titles, Vision catch, values) */
/*==========================================================*/
.tmtech-english .philosophy-section-title,
.tmtech-english .philosophy-page-nav-title,
.tmtech-english .philosophy-page-nav-text,
.tmtech-english .philosophy-vision-catch,
.tmtech-english .philosophy-vision-point-title,
.tmtech-english .philosophy-value-title,
.tmtech-english .philosophy-value-catch,
.tmtech-english .philosophy-commitment-title,
.tmtech-english .philosophy-related-title,
.tmtech-english .philosophy-statement-title{
    overflow-wrap:anywhere;
    word-break:normal;
}
.tmtech-english .philosophy-section-title{
    letter-spacing:0.04em;
    line-height:1.4;
}
.tmtech-english .philosophy-vision-sec .philosophy-section-title{
    white-space:normal;
    min-width:0;
}
.tmtech-english .philosophy-vision-sec .philosophy-vision-catch{
    white-space:normal;
    max-width:100%;
    min-width:0;
}
.tmtech-english .philosophy-page-nav-title{
    letter-spacing:0.04em;
    line-height:1.4;
    margin-bottom:8px;
}
.tmtech-english .philosophy-page-nav-text{
    letter-spacing:0.04em;
    line-height:1.5;
}
.tmtech-english .philosophy-vision-catch,
.tmtech-english .philosophy-statement-title{
    letter-spacing:0.04em;
    line-height:1.5;
}
.tmtech-english .philosophy-values-sec .philosophy-value-title{
    margin:28px 0 16px;
    font-size:clamp(28px, 7vw, 36px);
    letter-spacing:0.04em;
    line-height:1.25;
}
.tmtech-english .philosophy-values-sec .philosophy-value-catch{
    margin:0 0 16px;
    letter-spacing:0.04em;
    line-height:1.6;
}
.tmtech-english .philosophy-commitment-sec .philosophy-commitment-title{
    letter-spacing:0.04em;
    line-height:1.4;
}
.tmtech-english .philosophy-related-title{
    letter-spacing:0.04em;
    line-height:1.4;
    margin-bottom:12px;
}
@media(min-width:768px){
    .tmtech-english .philosophy-section-title{
        font-size:22px;
        letter-spacing:0.05em;
    }
    .tmtech-english .philosophy-values-sec .philosophy-value-title{
        font-size:32px;
    }
}
@media(min-width:992px){
    .tmtech-english .philosophy-section-title{
        font-size:24px;
    }
}

/*==========================================================*/
/* English Group Business: layout tweaks (diagram labels, keywords, DX titles) */
/*==========================================================*/
.tmtech-english .business-section-title,
.tmtech-english .business-area-feature-title,
.tmtech-english .business-area-title,
.tmtech-english .business-capability-title,
.tmtech-english .business-capability-catch,
.tmtech-english .business-capability-keywords,
.tmtech-english .business-capability-node-label,
.tmtech-english .business-capability-core-label,
.tmtech-english .business-value-flow-title,
.tmtech-english .business-value-flow-panel-note,
.tmtech-english .business-dx-policy-title,
.tmtech-english .business-related-title,
.tmtech-english .business-related-action,
.tmtech-english .business-external-link-main,
.tmtech-english .business-intro-catch{
    overflow-wrap:anywhere;
    word-break:normal;
}
.tmtech-english .business-section-title{
    letter-spacing:0.04em;
    line-height:1.4;
}
.tmtech-english .business-dx-sec .business-section-heading--light .business-section-title{
    white-space:normal;
    max-width:100%;
    min-width:0;
}
.tmtech-english .business-capability-node-label{
    white-space:normal;
    max-width:100%;
    min-width:0;
    line-height:1.3;
    font-size:12px;
    letter-spacing:0.02em;
}
.tmtech-english .business-capability-core-label{
    white-space:normal;
    line-height:1.3;
    letter-spacing:0.04em;
    font-size:14px;
}
.tmtech-english .ul-business-value-flow-keywords{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    width:100%;
    gap:12px;
}
.tmtech-english .ul-business-value-flow-keywords li{
    width:auto;
    min-width:0;
}
.tmtech-english .ul-business-value-flow-keywords li span{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
}
.tmtech-english .business-capability-keywords{
    white-space:normal;
    overflow-wrap:anywhere;
    line-height:1.5;
}
.tmtech-english .business-dx-policy-title,
.tmtech-english .business-area-title,
.tmtech-english .business-external-link-main{
    letter-spacing:0.04em;
    line-height:1.4;
}
.tmtech-english .business-intro-catch{
    letter-spacing:0.04em;
    line-height:1.5;
}
@media(min-width:768px){
    .tmtech-english .business-section-title{
        font-size:22px;
        letter-spacing:0.05em;
    }
}
@media(min-width:992px){
    .tmtech-english .business-section-title{
        font-size:24px;
    }
}
/* English Group Companies: wrap long labels/names without mid-word breaks */
.tmtech-english .group-section-title,
.tmtech-english .group-intro-catch,
.tmtech-english .group-structure-company-name,
.tmtech-english .group-structure-company-text,
.tmtech-english .group-structure-relation,
.tmtech-english .group-company-name,
.tmtech-english .group-company-catch,
.tmtech-english .group-synergy-title,
.tmtech-english .group-link-card-title,
.tmtech-english .group-link-card-action,
.tmtech-english .group-external-link-main,
.tmtech-english .group-company-profile-row{
    overflow-wrap:normal;
    word-break:normal;
}
.tmtech-english .group-section-title{
    letter-spacing:0.04em;
    line-height:1.45;
}
.tmtech-english .group-intro-catch{
    letter-spacing:0.04em;
    line-height:1.5;
}
.tmtech-english .group-structure-relation{
    width:auto;
    min-width:200px;
    max-width:100%;
    white-space:normal;
    letter-spacing:0.06em;
    line-height:1.5;
}
.tmtech-english .group-structure-company-name,
.tmtech-english .group-company-name,
.tmtech-english .group-link-card-title,
.tmtech-english .group-external-link-main{
    letter-spacing:0.04em;
    line-height:1.45;
}
.tmtech-english .group-external-link-main{
    white-space: nowrap;
}
.tmtech-english .group-synergy-title{
    letter-spacing:0.04em;
    line-height:1.5;
}
.tmtech-english .group-company-profile-row dd{
    white-space:normal;
}
@media(min-width:768px){
    .tmtech-english .group-section-title{
        font-size:22px;
        letter-spacing:0.05em;
    }
}
@media(min-width:992px){
    .tmtech-english .group-section-title{
        font-size:24px;
    }
}
/* English Global Presence: wrap long headings/labels without mid-word breaks */
.tmtech-english .global-section-title,
.tmtech-english .global-intro-catch,
.tmtech-english .global-partnership-catch,
.tmtech-english .global-support-title,
.tmtech-english .global-network-diagram-title,
.tmtech-english .global-network-areas-title,
.tmtech-english .global-network-roles-title,
.tmtech-english .global-network-node-label,
.tmtech-english .global-network-node-text,
.tmtech-english .global-network-connector-text,
.tmtech-english .global-network-area-title,
.tmtech-english .global-network-role-name,
.tmtech-english .global-partnership-step-title,
.tmtech-english .global-partnership-cta-link,
.tmtech-english .global-related-title{
    overflow-wrap:normal;
    word-break:normal;
}
.tmtech-english .global-section-title{
    letter-spacing:0.04em;
    line-height:1.45;
}
.tmtech-english .global-intro-catch,
.tmtech-english .global-partnership-catch{
    letter-spacing:0.04em;
    line-height:1.5;
}
.tmtech-english .global-support-title,
.tmtech-english .global-partnership-step-title,
.tmtech-english .global-network-node-label,
.tmtech-english .global-related-title{
    letter-spacing:0.04em;
    line-height:1.45;
}
.tmtech-english .global-network-connector-text{
    white-space:normal;
    letter-spacing:0.04em;
    line-height:1.5;
}
.tmtech-english .global-partnership-cta-link{
    white-space:normal;
    text-align:center;
    letter-spacing:0.04em;
    line-height:1.5;
}
@media(min-width:768px){
    .tmtech-english .global-section-title{
        font-size:22px;
        letter-spacing:0.05em;
    }
    .tmtech-english .global-intro-catch,
    .tmtech-english .global-partnership-catch{
        font-size:28px;
    }
    .tmtech-english.page-message .message-intro-catch{
        font-size:24px;
    }
}
@media(min-width:992px){
    .tmtech-english .global-section-title{
        font-size:24px;
    }
    .tmtech-english .home-link-card-ttl{
        font-size:18px;
    }
}
@media(min-width:1200px){
    .tmtech-english .home-link-card-ttl{
        font-size:20px;
    }
}
/* English Privacy Policy: headings and link wrapping */
.tmtech-english .privacy-policy-intro p,
.tmtech-english .privacy-policy-item p,
.tmtech-english .ul-privacy-policy-exceptions li,
.tmtech-english .privacy-policy-heading{
    overflow-wrap:normal;
    word-break:normal;
    white-space:normal;
}
.tmtech-english .privacy-policy-heading{
    min-width:0;
}
.tmtech-english .privacy-policy-item a{
    text-decoration:underline;
}

/* English Site Map: long link names wrapping */
.tmtech-english .sitemap-index-lead,
.tmtech-english .sitemap-group-title,
.tmtech-english .sitemap-link span{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
}
.tmtech-english .sitemap-link span{
    min-width:0;
    flex:1 1 auto;
}

/* English News list / category */
body.tmtech-english .tmtech-en-news-sec .tmtech-en-news-list h3,
body.tmtech-english .tmtech-en-news-sec .tmtech-en-news-category-nav a span{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    min-width:0;
}
body.tmtech-english .tmtech-en-news-category-nav{
    display:flex;
    flex-wrap:wrap;
    gap:10px 16px;
    margin:0 0 30px;
    padding:0;
    list-style:none;
}
body.tmtech-english .tmtech-en-news-category-nav .tmtech-en-news-category-item a{
    display:inline-block;
    padding:8px 14px;
    border:1px solid #dbe3ee;
    color:var(--main-color1);
    text-decoration:none;
    letter-spacing:0.06em;
}
body.tmtech-english .tmtech-en-news-category-nav .tmtech-en-news-category-item.current a,
body.tmtech-english .tmtech-en-news-category-nav .tmtech-en-news-category-item a:hover,
body.tmtech-english .tmtech-en-news-category-nav .tmtech-en-news-category-item a:focus-visible{
    background:var(--main-color1);
    border-color:var(--main-color1);
    color:#fff;
}
body.tmtech-english .tmtech-en-news-pagination .nav-links{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    justify-content:center;
    align-items:center;
}
body.tmtech-english .tmtech-en-news-pagination .page-numbers{
    white-space:normal;
}

/* English news single */
body.tmtech-english.single-news .tmtech-en-news-single .page-ttl,
body.tmtech-english.single-news .tmtech-en-news-single .page-ttl .jp,
body.tmtech-english.single-news .tmtech-en-news-single .entry-body{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    min-width:0;
}
body.tmtech-english.single-news .tmtech-en-news-single .entry-body a{
    overflow-wrap:break-word;
}
body.tmtech-english.single-news .tmtech-en-news-single-header .page-header-ttl .en{
    display:none;
}

/* English Contact: form labels, required/optional, help text */
.tmtech-english .contact-section-title,
.tmtech-english .contact-guide-text,
.tmtech-english .contact-form-lead,
.tmtech-english .contact-form-shell .rch-form > label,
.tmtech-english .contact-form-shell .rch-form > p:not(.rch-submit-wrap),
.tmtech-english .contact-form-shell .rch-radio-item label,
.tmtech-english .contact-form-shell .rch-acceptance{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    min-width:0;
}
.tmtech-english .contact-section-title{
    letter-spacing:0.04em;
}
.tmtech-english .contact-form-shell .rch-form > label .required,
.tmtech-english .contact-form-shell .rch-form > label .optional,
.tmtech-english .contact-form-shell .rch-form > p .required,
.tmtech-english .contact-form-shell .rch-form > p .optional{
    white-space:nowrap;
    flex-shrink:0;
}
.tmtech-english .contact-guide-link span{
    white-space:normal;
    padding-right:8px;
}
.tmtech-english .contact-form-shell .rch-form > p.contact-inquiry-help{
    margin:12px 0 24px;
    color:var(--font-color2);
    font-size:15px;
    font-weight:400;
    letter-spacing:0.02em;
    line-height:1.8;
    text-align:left;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    min-width:0;
}
.tmtech-english .contact-form-shell .rch-form > p.contact-inquiry-help + .rch-acceptance{
    margin-top:24px;
}

/* English mobile menu: long labels wrap naturally */
body.tmtech-english #mobile-menu .site-mobile-menu > li > a,
body.tmtech-english #mobile-menu .site-mobile-menu > li > button.menu-trigger{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    min-width:0;
}

/* English PC main / top menus: long labels wrap; do not force JP-style nowrap squeeze */
@media(min-width:992px){
    body.tmtech-english #site-header-nav .site-header-menu > li{
        min-width:0;
    }
    body.tmtech-english #site-header-nav .site-header-menu > li > a,
    body.tmtech-english #site-header-nav .site-header-menu > li > button.menu-trigger{
        white-space:normal;
        overflow:visible;
        overflow-wrap:normal;
        word-break:normal;
        line-height:1.3;
        text-align:center;
    }
    body.tmtech-english .pc-header-submenu .gl-topmenu-menu > li > a{
        white-space:normal;
        overflow:visible;
        overflow-wrap:normal;
        word-break:normal;
        min-width:0;
    }
}

/* English PC main: controlled 2-line labels (992–1199px only) */
body.tmtech-english #site-header-nav .tmtech-menu-label-part {
    display:inline;
}
@media (min-width:992px) and (max-width:1399px) {
    /* Parent links are display:flex; column so display:block spans stack */
    body.tmtech-english #site-header-nav .site-header-menu > li > a:has(.tmtech-menu-label-part),
    body.tmtech-english #site-header-nav .site-header-menu > li > button.menu-trigger:has(.tmtech-menu-label-part) {
        flex-direction:column;
    }
    body.tmtech-english #site-header-nav .tmtech-menu-label-part {
        display:block;
        white-space:nowrap;
    }
}
/* English footer */
@media(min-width:768px){
    .tmtech-english .site-footer-body-right .footer_widget_title{
        height:60px;
        display:flex;
        align-items: center;
        letter-spacing: 0;
        line-height: 1.2;
    }
    .tmtech-english .site-footer-body-right .menu > li > a{
        height:60px;
        display:flex;
        align-items: center;
        letter-spacing: 0;
        line-height: 1.2;
    }
}
/* English header */
@media(min-width:992px){
    .tmtech-english .site-header-menu>li>a{
        display:gird;
        grid-template-columns: 1fr;
        gap:0;
        letter-spacing: 0.1em;
    }
}
@media(min-width:1200px){
    .tmtech-english .site-header-menu>li>a{
        padding:0 20px;
    }
}
@media(min-width:1400px){
    body.tmtech-english #site-header-nav .site-header-menu > li > a{
        white-space:nowrap;
        padding:0 15px;
        letter-spacing:0.02em;
    }
    body.tmtech-english #site-header-nav .tmtech-menu-label-part:first-of-type{
        margin-right:5px;
    }
}
