@charset "utf-8";

body.companyProfileV2 #contents_left{
    line-height: 1.8;
}

body.companyProfileV2 #contents_left,
body.companyProfileV2 #contents_left p,
body.companyProfileV2 #contents_left li,
body.companyProfileV2 #contents_left dd,
body.companyProfileV2 #contents_left td{
    color: #1f2933;
}

body.companyProfileV2 .companyHeroFacts strong{
    font-weight: 700;
    color: inherit;
}

body.companyProfileV2 .companyHeroCopy{
    align-self: center;
}


body.companyProfileV2 #contents_left img{
    max-width: 100%;
    height: auto;
}

body.companyProfileV2 #contents_left .contentsBlock{
    box-sizing: border-box;
}

body.companyProfileV2 #contents_left .paragraph p{
    margin: 0 0 1.1em;
}

body.companyProfileV2 #contents_left .paragraph p:last-child{
    margin-bottom: 0;
}

body.companyProfileV2 .companyHero{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    padding: 28px;
    margin: 0 auto 22px;
    border: 1px solid #dbe4ef;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fafe 100%);
    box-sizing: border-box;
}

body.companyProfileV2 .companyEyebrow,
body.companyProfileV2 .companySectionEyebrow{
    display: inline-block;
    margin: 0 0 10px;
    font-size: 12px;
    line-height: 1;
    letter-spacing: 0.14em;
    font-weight: 700;
    color: #56789d;
}

body.companyProfileV2 .companyHero h1{
    margin: 0 0 14px;
    font-size: 34px;
    line-height: 1.35;
    letter-spacing: 0.02em;
    color: #1b2b3c;
}

body.companyProfileV2 .companyHeroLead{
    margin: 0 0 18px;
    font-size: 15px;
    line-height: 1.9;
    color: #1f2933;
}

body.companyProfileV2 .companyHeroFacts{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 18px;
}

body.companyProfileV2 .companyHeroFacts span{
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 13px;
    border-radius: 999px;
    border: 1px solid #d7e2ef;
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    color: #27415c;
    box-sizing: border-box;
}

body.companyProfileV2 .companyHeroActions,
body.companyProfileV2 .companyFinalActions{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

body.companyProfileV2 .companyButton{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 190px;
    min-height: 48px;
    padding: 0 18px;
    border-radius: 999px;
    box-sizing: border-box;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: opacity .2s ease;
}

body.companyProfileV2 .companyButton:hover{
    opacity: 0.86;
}

body.companyProfileV2 .companyButtonPrimary{
    color: #fff;
    background: #214b77;
    border: 1px solid #214b77;
}

body.companyProfileV2 .companyButtonGhost{
    color: #214b77;
    background: #fff;
    border: 1px solid #cfdceb;
}

body.companyProfileV2 .companyHeroMedia{
    position: relative;
    display: block;
    align-self: start;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 16px;
    text-decoration: none;
    background: #000;
    margin-top: 15px;
}

body.companyProfileV2 .companyHeroMedia img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.companyProfileV2 .companyHeroShade{
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(15,25,35,0.08) 0%, rgba(15,25,35,0.55) 100%);
}

body.companyProfileV2 .companyPlayButton{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 78px;
    height: 78px;
    border-radius: 50%;
    background: rgba(255,255,255,0.92);
    color: #1f4064;
    font-size: 26px;
    line-height: 78px;
    text-align: center;
    box-shadow: 0 8px 20px rgba(0,0,0,.18);
}

body.companyProfileV2 .companyMediaLabel{
    position: absolute;
    left: 18px;
    bottom: 16px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

body.companyProfileV2 .companyLocalNav{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 28px;
    padding: 0;
}

body.companyProfileV2 .companyLocalNav a{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: #f3f7fb;
    border: 1px solid #dde7f1;
    color: #28455f;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

body.companyProfileV2 .companyIntro{
    margin-bottom: 34px;
}

body.companyProfileV2 .companySection{
    margin: 0 0 42px;
}

body.companyProfileV2 .companySectionHead{
    margin: 0 0 18px;
}

body.companyProfileV2 .companySectionHead h2{
    margin: 0 0 10px;
    font-size: 28px;
    line-height: 1.45;
    color: #1b2b3c;
}

body.companyProfileV2 .companySectionHead p{
    margin: 0;
    font-size: 14px;
    color: #26333f;
}

body.companyProfileV2 .companyQuoteBox{
    margin: 0 0 20px;
    padding: 24px 20px;
    border: 1px solid #d5e8da;
    border-radius: 14px;
    background: #fff;
    text-align: center;
    box-shadow: 0 10px 24px rgba(32,56,85,.04);
}

body.companyProfileV2 .companyQuoteBox p{
    margin: 0;
    font-size: 24px;
    line-height: 1.8;
    font-weight: 700;
    color: #4a5965;
}

body.companyProfileV2 .companyInfoLinks{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
}

body.companyProfileV2 .companyInfoLinks a{
    display: block;
    padding: 18px 16px;
    border: 1px solid #dde7f1;
    border-radius: 14px;
    background: #fff;
    text-decoration: none;
    box-sizing: border-box;
}

body.companyProfileV2 .companyInfoLinks a strong{
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    color: #20394f;
}

body.companyProfileV2 .companyInfoLinks a span{
    font-size: 13px;
    color: #31404d;
}

body.companyProfileV2 .companyChartBox{
    margin: 0 0 20px;
    padding: 12px;
    border: 1px solid #dde6ef;
    border-radius: 14px;
    background: #fff;
}

body.companyProfileV2 .companyChartBox img{
    display: block;
    margin: 0 auto;
}

body.companyProfileV2 .companyPhaseGrid{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 22px;
}

body.companyProfileV2 .companyPhaseCard{
    padding: 18px 16px;
    border-radius: 14px;
    background: #f7fafe;
    border: 1px solid #dde7f1;
    box-sizing: border-box;
}

body.companyProfileV2 .companyPhaseLabel{
    display: inline-block;
    margin-bottom: 10px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #e8f0f8;
    color: #41617f;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

body.companyProfileV2 .companyPhaseCard h3{
    margin: 0 0 8px;
    font-size: 18px;
    color: #20384d;
}

body.companyProfileV2 .companyPhaseCard p{
    margin: 0;
    font-size: 13px;
    line-height: 1.8;
    color: #31404d;
}

body.companyProfileV2 .companyVideoFrame{
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    overflow: hidden;
    border-radius: 16px;
    background: #000;
}

body.companyProfileV2 .companyVideoFrame iframe{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

body.companyProfileV2 .companyTableWrap{
    border: 1px solid #dce6ef;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

body.companyProfileV2 .companySummaryTable{
    width: 100%;
    border-collapse: collapse;
}

body.companyProfileV2 .companySummaryTable th,
body.companyProfileV2 .companySummaryTable td{
    padding: 16px 18px;
    border-bottom: 1px solid #e7eef5;
    vertical-align: top;
    box-sizing: border-box;
}

body.companyProfileV2 .companySummaryTable tr:last-child th,
body.companyProfileV2 .companySummaryTable tr:last-child td{
    border-bottom: none;
}

body.companyProfileV2 .companySummaryTable th{
    width: 160px;
    background: #f8fbfd;
    color: #2d465f;
    font-size: 14px;
    font-weight: 700;
}

body.companyProfileV2 .companySummaryTable td{
    font-size: 14px;
    color: #26333f;
}

body.companyProfileV2 .companySummaryTable td ol{
    margin: 0;
    padding-left: 1.4em;
}

body.companyProfileV2 .companyTrademarkBlock{
    margin: 20px 0 0;
    padding: 24px 20px;
    border: 1px solid #dde7f1;
    border-radius: 14px;
    text-align: center;
    background: #fff;
}

body.companyProfileV2 .companyTrademarkBlock p{
    margin: 0 0 16px;
    font-size: 15px;
    color: #485c6d;
}

body.companyProfileV2 .companyTrademarkNumber{
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

body.companyProfileV2 .companyTrademarkNumber .imgBox{
    width: 54px;
}

body.companyProfileV2 .companyTrademarkNumber p{
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: #20384d;
}

body.companyProfileV2 .companyLinkGrid{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

body.companyProfileV2 .companyLinkCard{
    display: block;
    position: relative;
    padding: 20px 18px 18px;
    border-radius: 14px;
    border: 1px solid #dce6ef;
    background: #fff;
    text-decoration: none;
    box-sizing: border-box;
    min-height: 138px;
}

body.companyProfileV2 .companyLinkNo{
    display: inline-block;
    margin-bottom: 12px;
    color: #7a8fa2;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

body.companyProfileV2 .companyLinkCard strong{
    display: block;
    margin-bottom: 8px;
    font-size: 17px;
    line-height: 1.5;
    color: #20394f;
}

body.companyProfileV2 .companyLinkCard span{
    font-size: 13px;
    line-height: 1.7;
    color: #31404d;
}

body.companyProfileV2 .companyFinalCta{
    padding: 28px 24px;
    margin: 0 0 34px;
    border-radius: 16px;
    background: linear-gradient(180deg, #f7fafe 0%, #eef4fb 100%);
    border: 1px solid #dce6ef;
}

body.companyProfileV2 .companyFinalCta h2{
    margin: 0 0 10px;
    font-size: 28px;
    line-height: 1.45;
    color: #1b2b3c;
}

body.companyProfileV2 .companyFinalCta p{
    margin: 0 0 16px;
    font-size: 14px;
    color: #26333f;
}

@media only screen and (max-width: 860px){
    body.companyProfileV2 .companyHero{
        grid-template-columns: 1fr;
    }

    body.companyProfileV2 .companyHeroMedia img{
        min-height: 230px;
    }

    body.companyProfileV2 .companyInfoLinks,
    body.companyProfileV2 .companyPhaseGrid,
    body.companyProfileV2 .companyLinkGrid{
        grid-template-columns: 1fr;
    }
}

@media only screen and (max-width: 700px){
    body.companyProfileV2 .companyHero{
        gap: 18px;
        padding: 20px 16px;
        margin-bottom: 16px;
        border-radius: 14px;
    }

    body.companyProfileV2 .companyHero h1{
        font-size: 28px;
    }

    body.companyProfileV2 .companyHeroLead{
        font-size: 14px;
        line-height: 1.85;
    }

    body.companyProfileV2 .companyButton{
        width: 100%;
        min-width: 0;
    }

    body.companyProfileV2 .companyLocalNav{
        gap: 8px;
    }

    body.companyProfileV2 .companyLocalNav a{
        width: auto;
        padding: 0 10px;
        font-size: 12px;
    }

    body.companyProfileV2 .companySection{
        margin-bottom: 34px;
    }

    body.companyProfileV2 .companySectionHead h2,
    body.companyProfileV2 .companyFinalCta h2{
        font-size: 24px;
    }

    body.companyProfileV2 .companyQuoteBox{
        padding: 18px 14px;
    }

    body.companyProfileV2 .companyQuoteBox p{
        font-size: 19px;
        line-height: 1.75;
    }

    body.companyProfileV2 .companySummaryTable th,
    body.companyProfileV2 .companySummaryTable td{
        display: block;
        width: 100%;
        padding: 12px 14px;
    }

    body.companyProfileV2 .companySummaryTable th{
        border-bottom: none;
        padding-bottom: 4px;
    }

    body.companyProfileV2 .companySummaryTable td{
        padding-top: 0;
    }

    body.companyProfileV2 .companyTrademarkBlock{
        padding: 18px 14px;
    }

    body.companyProfileV2 .companyTrademarkNumber{
        display: flex;
        justify-content: center;
        align-items: center;
    }

    body.companyProfileV2 .companyTrademarkNumber .imgBox{
        width: 48px;
    }

    body.companyProfileV2 .companyFinalCta{
        padding: 22px 16px;
    }
}

body.companyProfileV2 .companyGrowthChart{
    margin: 0 0 22px;
    padding: 22px 20px 18px;
    border: 1px solid #d9e3ed;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(29,46,65,.06);
    box-sizing: border-box;
}

body.companyProfileV2 .companyChartHeader{
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

body.companyProfileV2 .companyChartHeader strong{
    display: block;
    margin-bottom: 4px;
    font-size: 18px;
    color: #17212b;
}

body.companyProfileV2 .companyChartHeader span{
    font-size: 12px;
    color: #35424f;
}

body.companyProfileV2 .companyChartLatest{
    text-align: right;
}

body.companyProfileV2 .companyChartLatest span{
    display: block;
    margin-bottom: 2px;
    font-size: 11px;
    letter-spacing: .08em;
}

body.companyProfileV2 .companyChartLatest strong{
    margin: 0;
    font-size: 22px;
    color: #214b77;
}

body.companyProfileV2 .companyChartPlot{
    position: relative;
    display: grid;
    grid-template-columns: 32px 1fr;
    height: 330px;
    padding-top: 8px;
}

body.companyProfileV2 .companyChartScale{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0 6px 28px 0;
    text-align: right;
}

body.companyProfileV2 .companyChartScale span{
    font-size: 10px;
    color: #52606d;
}

body.companyProfileV2 .companyBars{
    position: relative;
    display: grid;
    grid-template-columns: repeat(24, minmax(12px, 1fr));
    grid-template-rows: 100%;
    gap: 5px;
    align-items: end;
    padding: 15px 4px 28px;
    border-left: 1px solid #cbd6e1;
    border-bottom: 1px solid #cbd6e1;
    background-image: linear-gradient(to top, rgba(201,213,225,.42) 1px, transparent 1px);
    background-size: 100% 25%;
    overflow: hidden;
}

body.companyProfileV2 .companyBarItem{
    position: relative;
    display: flex;
    height: 100%;
    align-items: flex-end;
    justify-content: center;
}

body.companyProfileV2 .companyBar{
    display: block;
    width: 78%;
    height: var(--bar-height);
    min-height: 3px;
    border-radius: 5px 5px 0 0;
    background: linear-gradient(180deg, #2b6aa3 0%, #214b77 100%);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform .72s cubic-bezier(.2,.8,.2,1) var(--delay);
}

body.companyProfileV2 .companyGrowthChart.is-visible .companyBar{
    transform: scaleY(1);
}

body.companyProfileV2 .companyBarValue{
    position: absolute;
    bottom: calc(var(--bar-height) + 4px);
    left: 50%;
    transform: translateX(-50%);
    font-size: 9px;
    line-height: 1;
    color: #17212b;
    opacity: 0;
    transition: opacity .3s ease calc(var(--delay) + .48s);
}

body.companyProfileV2 .companyGrowthChart.is-visible .companyBarValue{
    opacity: 1;
}

body.companyProfileV2 .companyBarYear{
    position: absolute;
    left: 50%;
    bottom: -20px;
    transform: translateX(-50%) rotate(-55deg);
    transform-origin: center;
    font-size: 9px;
    color: #344250;
}

body.companyProfileV2 .companyChartNote{
    margin: 18px 0 0;
    font-size: 12px;
    color: #26333f;
}

@media only screen and (max-width: 700px){
    body.companyProfileV2 .companyHero{
        grid-template-columns: 1fr;
    }
    body.companyProfileV2 .companyHeroMedia{
        aspect-ratio: 16 / 9;
    }
    body.companyProfileV2 .companyGrowthChart{
        padding: 18px 12px 14px;
        overflow-x: auto;
    }
    body.companyProfileV2 .companyChartPlot{
        width: 760px;
        height: 300px;
    }
    body.companyProfileV2 .companyChartHeader{
        align-items: flex-start;
    }
}


/* =========================================================
   company_v3 mobile/tablet layout fix
   common.css の #contents width:100% に合わせる
========================================================= */
@media only screen and (max-width: 1080px){
    body.companyProfileV2 .companyHero,
    body.companyProfileV2 .companyLocalNav,
    body.companyProfileV2 .companyIntro,
    body.companyProfileV2 .companySection,
    body.companyProfileV2 .companyFinalCta{
        width: 91.75%;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
    }

    body.companyProfileV2 .companyHero{
        margin-bottom: 4.7%;
    }

    body.companyProfileV2 .companyLocalNav{
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin-bottom: 4.7%;
    }

    body.companyProfileV2 .companyLocalNav a{
        width: auto;
        min-width: 0;
        box-sizing: border-box;
        padding-left: 10px;
        padding-right: 10px;
    }

    /* 5項目目は最下段で全幅にして、片側だけ空く見た目を避ける */
    body.companyProfileV2 .companyLocalNav a:last-child:nth-child(odd){
        grid-column: 1 / -1;
    }

    body.companyProfileV2 .companyIntro,
    body.companyProfileV2 .companySection,
    body.companyProfileV2 .companyFinalCta{
        margin-bottom: 4.7%;
    }
}

@media (prefers-reduced-motion: reduce){
    body.companyProfileV2 .companyBar{
        transition: none;
        transform: scaleY(1);
    }
    body.companyProfileV2 .companyBarValue{
        transition: none;
        opacity: 1;
    }
}

.contentsBlock.paragraph {
    padding-bottom: 15px;
}