@property --container-width {
    syntax: '<length>';
    initial-value: 1240px;
    inherits: false;
}
@property --main-color {
    syntax: "<color>";
    inherits: false;
    initial-value: #0442C0;
}
@property --main-hover-color {
    syntax: "<color>";
    inherits: false;
    initial-value: #0041C0;
}
@property --main-bg-color {
    syntax: "<color>";
    inherits: false;
    initial-value: #fbfbfb;
}
@property --base-color {
    syntax: "<color>";
    inherits: false;
    initial-value: #f2f2f2;
}
@property --gray-color {
    syntax: "<color>";
    inherits: false;
    initial-value: #666;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
}
iframe {
    width: 100%;
    height: 100%;
    display: block;
}
video {
    object-fit: cover;
    transform: translateZ(0);
}
a {
    color: #0442C0;
}
a:not(.banner-link,.news-link,.primary-btn,.footer-bnr-link,.content-link):hover {
    color: #0041C0;
    text-decoration: underline;
}

b {
    font-weight: 700;
}

@media(max-width: 740px) {
    .pconly{ display: none !important; }
}
@media(min-width: 741px) {
    .sponly{ display: none !important; }
}

.nowrap{
    white-space: nowrap;
}

.holdings-header__company {
    font-size: max(12px, min(2vw, 14px));
}

.container {
    width: min(100% - 30px, 1240px);
    max-width: 100%;
    margin-inline: auto;
    padding: 0;
}
@media (min-width: 741px) and ( max-width: 1440px ){
    .container {
        width: min(100% - 30px, 1000px);
    }
    .footer-bnr-container{
        width: min(100% - 30px, 900px);
    }
}

.m-auto {
    margin-inline: auto;
}
.mt-0 {
    margin-top: 0 !important;
}

.hr {
    margin: 0;
    height: 1px;
    background: #f2f2f2;
    border: 0;
}

.underline {
    text-decoration: underline;
}

.text-right {
    text-align: right;
}
.text-center {
    text-align: center;
}
@media(max-width: 740px) {
    .text-center .sp_br{
        display: block;
    }
}
@media(min-width: 741px) {
    .text-center .sp_br{
        display: none;
}
}
#hero-header {
    height: min(53vw, 650px);
    overflow: hidden;
    position: relative;
}
@media (min-width: 741px) and ( max-width: 1440px ){
    #hero-header {
        height: min(50vw, 560px);
    }    
}

.holdings-titlenav {
    background: #f7f7f7;
}
.holdings-titlenav #browsebar-in {
    position: absolute;
    top: 48%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100vw;
}
@media(min-width: 741px) {
    .holdings-titlenav #browsebar-in {
        top: 45%;
    }
}

.basic-page {
    background: #fff;
}

.sm-text {
    display: block;
    font-size: max(12px, min(2vw, 14px));
    line-height: 200%;
}

.content-padding {
    padding: 20px 0 0 0;
}

@media(max-width: 740px) {
    .holdings-header__fixarea {
        background: #f2f2f2;
    }
    .sp-newline {
        display: block;
    }
    
}
@media(min-width: 741px) {
    .spacer {
        padding: 20px 0;
    }
}

/* footer */
#footer {
    background: #fbfbfb;
}
.footer-section-title {
    display: flex;
    align-items: center;
    font-size: max(16px, min(3vw, 18px));
    font-weight: 600;
    margin-bottom: 30px;
    gap: .5em;
}
.footer-section-title::before {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #0442C0;
    margin-top: 2px;
}
.menu-box,
.submenu-box {
    display: grid;
    grid-template-columns: repeat(2, auto);
}
.footer-submenu-list .footer-submenu-item:not(:last-of-type) {
    margin-bottom: 10px;
}
.footer-submenu-item {
    font-size: max(12px, min(3vw, 14px));
    line-height: 1.6;
}
.footer-section-link,
.footer-submenu-link {
    color: #666;
}
@media(max-width: 740px) {
    #footer {
        border-top: solid 1px #ccc;
        padding: 15px 0 0 0;
    }
    .footer-logo {
        max-width: 104px;
    }
    .footer-menu {
        padding: 10px 0 5px 0;
    }
    .footer-menu .footer-section:not(:last-of-type) {
        border-bottom: solid 1px #ccc;
        padding: 0 0 20px 0;
        margin-bottom: 20px;
    }
    .menu-box,
    .submenu-box {
        gap: 0 20px;
        grid-template-columns: repeat(2, 1fr);
    }
}
@media(min-width: 741px) {
    #footer {
        padding: 30px 0 0 0;
    }
    .footer-logo {
        max-width: 147px;
        margin-bottom: 20px;
    }
    .footer-menu {
        display: flex;
        flex-wrap: wrap;
        gap: 40px 80px;
        padding-bottom: 60px;
    }
    .menu-box,
    .submenu-box {
        gap: 0 80px;
    }
    .footer-submenu-list {
        margin-left: calc(6px + .5em);
    }
}
@media (min-width: 741px) and ( max-width: 1440px ){
    .footer-menu {
        gap: 40px;
    }
    .menu-box,
    .submenu-box {
        gap: 0 40px;
    }
}

.footer-bottom {
    margin: 0 calc(50% - 50vw);
    padding: 20px calc(50vw - 50%);
    border-top: solid 1px #CCC;
    background: #f2f2f2;
}
.footer-links-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1em 1em;
}
.footer-links-list .footer-link-item:not(:last-of-type) {
    border-right: solid 1px #ccc;
    padding-right: 1em;
}
.footer-link-item,
.footer-country,
.footer-copyright {
    font-size: 12px;
}
.footer-link,
.footer-country,
.footer-copyright {
    color: #666;
}
.footer-country {
    display: flex;
    align-items: center;
    gap: 0 6px;
}
.areacountry-icon {
    display: block;
    width: 15px;
    height: 15px;
    background: url(../images/holdings-icn-areacountry.svg) no-repeat center / contain;
}
.footer-copyright {
    line-height: 1.6;
}
@media(max-width: 740px) {
    .footer-links-list {
        justify-content: center;
    }
    .footer-country {
        margin: 20px 0;
        justify-content: center;
    }
    .footer-copyright {
        text-align: center;
        display: block;
    }
}
@media(min-width: 741px) {
    .footer-bottom-links {
        display: flex;
    }
    .footer-country {
        margin-left: auto;
    }
    .footer-copyright {
        display: block;
        margin: 15px 0 0 0;
    }
}

/* breadcrumbs */
.breadcrumbs-box {
    padding: 20px 0;
}
.holdings-footer__breadcrumbs-list {
    display: flex;
    flex-wrap: wrap;
}
.holdings-footer__breadcrumbs__list__item {
    font-size: max(10px, min(3vw, 13px));
}
.holdings-footer__breadcrumbs__list__item a {
    color: #666;
}
@media (max-width: 740px) {
    .breadcrumbs-nav {
        background: #fff;
    }
    .breadcrumbs-box {
        padding: 10px 0;
    }
}
@media (min-width: 741px) {
    .breadcrumbs-nav {
        border-top: solid 1px #ccc;
    }
}

#footer-bnr {
    padding: 40px 0;
}
.footer-bnr-box {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 40px;
}
.footer-bnr-item.sustainability {
    background: url(../images/site-bnr-04-bg.jpg) no-repeat center / cover;
    background-size: 120%;
    background-position: -50px -136px;
}
@media (max-width: 740px) {
    .footer-bnr-item.sustainability {
        background-size: 100%;
        background-position: center;
    }
}
.footer-bnr-item.greeting {
    background: url(../images/site-bnr-05-bg.jpg) no-repeat center / cover;
}
.footer-bnr-link {
    color: #FFF;
    font-size: max(16px, min(3vw, 18px));
    font-weight: 700;
    text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.50);
    padding: 30px;
    display: flex;
    align-items: self-end;
    aspect-ratio: 6 / 1.6;
}
@media(max-width: 740px) {
    #footer-bnr {
        padding: 40px 0;
    }
    .footer-bnr-box {
        grid-template-columns: repeat(1, 1fr);
    }
    .footer-bnr-link {
        padding: 15px;
        aspect-ratio: 3 / 1;
    }
}

/* mv */
#browsebar-in video {
    display: block;
    margin: 0 auto;
    width: min(100vw, 1240px);
}
@media (min-width: 741px) and ( max-width: 1440px ){
    #browsebar-in video{
        width: min(100vw, 1000px);
    }
}

#banner-box {
    background: #fbfbfb;
}
.banner-container {
    width: min(100% - 30px, 1240px);
    margin-inline: auto;
    padding: 20px 0 10px 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px 20px;
}
@media (min-width: 741px) and ( max-width: 1440px ){
    .banner-container {
        width: min(100% - 30px, 1000px);
    }
}


@media (max-width: 740px) {
    .banner-image {
        width: 50vw;
    }
    .banner-item {
        display: flex;
        gap: 10px;
    }
}

.banner-text {
    padding: 14px 5px;
    display: flex;
    align-items: center;
    gap: 15px;
}
@media (max-width: 740px) {
    .banner-text {
        flex: 1;
        justify-content: center;
        padding: 0;
        flex-direction: column;
        gap: 10px;
    }
}
.banner-name {
    font-size: max(14px, min(1vw, 18px));
    font-weight: 600;
}
.banner-link {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: max(12px, min(1vw, 14px));
    margin-left: auto;
    padding: 8px 1em;
    border-radius: 999px;
    border: solid 1px #0442C0;
    color: #0442C0;
    transition: all 0.5s;
}
@media (max-width: 740px) {
    .banner-link {
        margin-left: initial;
    }
}
.banner-link:hover {
    color: white;
    box-shadow: 0 0 10em #0442C0 inset;
}
.banner-link::after {
    content: "";
    display: block;
    width: 5px;
    height: 5px;
    border-top: 1px solid #0442C0;
    border-right: 1px solid #0442C0;
    transform: rotate(45deg);
    margin-left: 5px;
    transition: all 0.5s;
}
.banner-link:hover::after {
    border-top: solid 1px white;
    border-right: solid 1px white;
}

@media(max-width: 740px) {
    .banner-container {
        grid-template-columns: repeat(1, 1fr);
        width: calc(100% - 30px);
        padding: 15px 0;
        gap: 15px;
    }
}

.news-link {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    padding: 0.8em 1.2em;
    border-radius: 999px;
    border: solid 1px #0442C0;
    color: #0442C0;
    transition: all 0.5s;

}
.news-link:hover {
    color: white;
    box-shadow: 0 0 10em #0442C0 inset;
}
.news-link::after {
    content: "";
    display: block;
    width: 5px;
    height: 5px;
    border-top: 1px solid #0442C0;
    border-right: 1px solid #0442C0;
    transform: rotate(45deg);
    margin-left: 5px;
    transition: all 0.5s;

}
.news-link:hover::after {
    border-top: solid 1px white;
    border-right: solid 1px white;
}

.news-title {
    margin-bottom: 2.5rem;
    font-size: max(24px, min(3vw, 40px));
    font-weight: 900;
    letter-spacing: 10px;
}
.news-date {
    font-size: max(12px, min(3vw, 14px));
    color: #999;
    margin-bottom: 10px;
}
.news-list .news-item:not(:last-of-type) {
    margin: 0 0 15px 0;
}
.news-item {
    font-size: max(16px, min(3vw, 16px));
    border-bottom: solid 1px #f2f2f2;
    padding: 0 0 10px 0;
    line-height: 1.4;
}
@media(max-width: 740px) {
    .news-box {
        display: flex;
        flex-direction: column;
    }
    
    .news-title {
        /* order: 1; */
        display: flex;
        align-items: center;
        gap: 30px;
        letter-spacing: 2.4px;
    }
    .news-title::after {
        content: "";
        display: block;
        flex: 1;
        height: 1px;
        background: #ccc;
    }
    .news-link {
        /* order: 3; */
        margin: 15px auto 0 auto;
    }
    .news-box .primary-btn{
        display: block;
        margin: 1em auto;
    }
    .news-content {
        /* order: 2; */
    }
}
@media(min-width: 741px) {
    .news-box-with-link {
        display: flex;
        align-items: center;
    }
    .news-title-box {
        width: 250px;
    }
    .news-content {
        flex: 1;
        border-left: solid 1px #f2f2f2;
        padding: 20px 0 20px 50px;
    }
}

#movie {
    padding: 50px 0;
}
.movie-title,
.new-office-title {
    font-size: max(24px, min(6vw, 60px));
    font-weight: 700;
    color: #0442C0;
}
@media (min-width: 741px) and ( max-width: 1440px ){
    .movie-title,
    .new-office-title {
        font-size: max(24px, min(6vw, 50px));
    }
}

.movie-description,
.new-office-description {
    font-size: max(16px, min(3vw, 18px));
    line-height: 1.8;
    margin-top: 20px;
}

.movie-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16/9;
}
.new-office-box .movie-video{
    aspect-ratio: auto;
}
.movie-video .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    cursor: pointer;
}
@media(max-width: 740px) {
    #movie {
        padding: 40px 0;
    }
    .movie-title,
    .new-office-title {
        text-align: center;
    }
    .movie-description,
    .new-office-description {
        text-align: center;
        margin: 25px 0;
    }
}
@media (min-width: 741px) and ( max-width: 1440px ){
    .movie-description,
    .new-office-description {
        font-size: max(16px, min(3vw, 16px));
    }
}

@media (min-width: 741px) {
    .movie-box {
        display: grid;
        grid-template-columns: 4fr 3fr;
        align-items: center;
        gap: 20px 40px;
    }
    .corporate-movie-box{
        grid-template-columns: 7fr 3fr; 
        align-items: flex-end;
    }
    .new-office-box{
        display: grid;
        grid-template-columns:repeat(2, 1fr);
        gap: 20px 40px;
    }
    .new-office-box iframe{
        aspect-ratio: 16 / 9;
    }
}
@media (min-width: 741px) and (max-width: 1440px) {
    .corporate-movie-box{
        grid-template-columns: 7fr 3fr;
        align-items: flex-end;
    }
    .new-office-box{
        grid-template-columns:repeat(2, 1fr);
    }
    .new-office-box iframe{
        aspect-ratio: 16 / 9;
    }
}

#onepanasonicit {
    padding: 30px 0;
}
.onepanasonicit-box {
    max-width: max-content;
    margin-left: auto;
}
.onepanasonicit-title {
    font-size: max(24px, min(6vw, 60px));
    font-weight: 700;
    color: #fff;
}
@media (min-width: 741px) and ( max-width: 1440px ){
    .onepanasonicit-title {
        font-size: max(24px, min(6vw, 50px));
    }
}

.onepanasonicit-description {
    font-size: max(16px, min(3vw, 18px));
    line-height: 1.8;
    margin-top: 40px;
    color: #fff;
    font-weight: 400;
    letter-spacing: 1px;
}
.primary-btn.onepanasonicit-link {
    border: solid 1px #fff;
    color: #fff;
    display: block;
    margin: 0 auto;
}

@media(max-width: 740px) {
    #onepanasonicit {
        padding: 40px 0 240px 0;
        background: url(../images/one-panasonic-it-bg-sp.jpg) no-repeat center / cover;
    }
    .onepanasonicit-title {
        text-align: center;
    }
    .onepanasonicit-description br {
        display: none;
    }
    .onepanasonicit-description {
        margin-bottom: 20px;
    }
}
@media(min-width: 741px) {
    #onepanasonicit {
        background: url(../images/one-panasonic-it-bg.jpg) no-repeat center / cover;
        background-size: cover;
        background-position-x: left;
    }
    .onepanasonicit-description {
        margin-bottom: 40px;
    }
}
@media (min-width: 741px) and ( max-width: 1440px ){
    .onepanasonicit-description {
        font-size: max(16px, min(3vw, 16px));
    }
}

@media(min-width: 1280px) {
    .onepanasonicit-box {
        padding-right: 100px;
    }
}

.page-container p {
    font-size: max(16px, min(3vw, 16px));
    line-height: 200%;
}
.page-container ul,
.page-container ol {
    font-size: max(16px, min(3vw, 16px));
    line-height: 200%;
}
.page-container h1 {
    font-size: max(24px, min(6vw, 40px));
    font-weight: 900;
    letter-spacing: 10px;
    line-height: normal;
}
.page-container h2 {
    font-size: max(24px, min(3vw, 40px));
    font-weight: 900;
    letter-spacing: 10px;
}
.page-container h3 {
    font-size: max(18px, min(3vw, 22px));
    font-weight: 900;
    letter-spacing: 5.5px;
    line-height: normal;
    margin-bottom: 20px;
}
.page-container h4,
.page-container h5 {
    font-size: max(16px, min(3vw, 18px));
    font-weight: 700;
    line-height: normal;
}
.decoration-text {
    background:#fbfbfb;
    border-radius: 5px;
    padding: 30px;
    letter-spacing: normal !important;
 }
 .text-right{
    text-align: right;
 }
 .text-left{
    text-align: left;
 }
.width-900 {
    max-width: 900px;
    margin-inline: auto;
}
.width-1000 {
    max-width: 1000px;
    margin-inline: auto;
}
@media(max-width: 740px) {
    .page-container h1,
    .page-container h2,
    .page-container h3 {
        letter-spacing: 2.4px;
    }
    .page-header {
        display: flex;
        flex-direction: column-reverse;
        background: #fbfbfb;
        margin: 0 calc(50% - 50vw);
        padding: 0 calc(50vw - 50%);
    }
    .page-title {
        padding: 13px 0 22px 0;
    }
    .decoration-text {
        padding: 15px;
    }
    .page-main-visual-bg {
        margin: 0 calc(50% - 50vw);
    }
    .page-main-images {
        object-fit: cover;
        width: 100%;
    }
}
@media(min-width: 741px) {
    .page-title {
        margin-bottom: 20px;
    }
    .page-main-visual-bg {
        position: relative;
        margin: 0 calc(50% - 50vw);
        padding: 0 calc(50vw - 50%);
    }
    .page-main-visual-bg::before {
        content: "";
        width: 100%;
        height: 50%;
        background: #fff;
        position: absolute;
        left: 0;
        bottom: 0;
    }
    .page-main-visual {
        position: relative;
        display: block;
    }
}

.bg-color {
    background: #fbfbfb;
}
.page-contents {
    background: #fff;
    margin: 0 calc(50% - 50vw);
    padding: 40px calc(50vw - 50%) 60px calc(50vw - 50%);
}
@media(max-width: 740px) {
    .page-contents {
        padding: 20px calc(50vw - 50%) 40px calc(50vw - 50%);
    }
}

.primary-btn {
    font-size: max(14px, min(3vw, 16px));
    display: inline-block;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: solid 1px #0442C0;
    color: #0442C0;
    max-width: max-content;
    margin-bottom: 20px;
    padding: 0.6em 1.6em;
    line-height: normal;
    gap: 10px;
    text-decoration: none !important;
    vertical-align: baseline;
}
.icon-s {
    margin-right: 0.5em;
}
.icon-e {
    margin-left: 0.5em;
}
.rss-icon {
    display: inline-block;
    width: 14px;
    height: 12px;
    background: url(../images/icon/rss-icon.svg) no-repeat center / contain;
}
.tag-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    background: url(../images/icon/tag-icon.svg) no-repeat center / contain;
}
.pdf-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    background: url(../images/icon/pdf-icon.svg) no-repeat center / contain;
}
.mail-icon {
    display: inline-block;
    width: 18px;
    height: 14px;
    background: url(../images/icon/mail-icon.svg) no-repeat center / contain;
}
.next-arrow {
    display: inline-block;
    width: 1em;
    height: 1em;
    background: url(../images/icon/next-arrow.svg) no-repeat center / contain;
    margin-bottom: -2px;
}
.next-arrow-w {
    display: inline-block;
    width: 1em;
    height: 1em;
    background: url(../images/icon/next-arrow-w.svg) no-repeat center / contain;
    margin-bottom: -2px;
}
.prev-arrow{
    display: inline-block;
    width: 16px;
    height: 16px;
    background: url(../images/icon/prev-arrow.svg) no-repeat center / contain;
    margin-bottom: -2px;
}
/* .back-arrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 1px solid #0442C0;
    border-right: 1px solid #0442C0;
    transform: rotate(230deg);
}
.next-arrow {
    margin-top: 3px;
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 1px solid #0442C0;
    border-right: 1px solid #0442C0;
    transform: rotate(45deg);
}
.previous-arrow{
    margin-top: 3px;
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 1px solid #0442C0;
    border-right: 1px solid #0442C0;
    transform: rotate(225deg);

} */
@media(max-width: 740px) {
    .tag-icon {
        width: 12px;
        height: 12px;
    }
    .primary-btn {
        /* min-width: 140px; */
    }
}

/* company/index */
.news-box-no-link {
    padding: 0 0 40px 0;
}
@media(max-width: 740px) {
    .news-box-no-link {
        padding: 0 0 20px 0;
    }
    .news-box-no-link .news-title {
        font-size: 20px;
        letter-spacing: 2px;
    }
}
@media(min-width: 741px) {
    .news-box-no-link {
        display: flex;
        /* grid-template: auto / 250px 1fr; */
        align-items: center;
    }
    .news-box-no-link .news-title {
        align-self: center;
        margin: 0;
    }
}

.page-section {
    margin: 0 calc(50% - 50vw);
    padding: 20px calc(50vw - 50%);
}
.section-title {
    margin-bottom: 20px;
}
.content-link {
    display: block;
}
p.content-text {
    font-size: max(16px, min(3vw, 18px));
    font-weight: 700;
    color: #000;
    line-height: normal;
}
@media(max-width: 740px) {
    .section-title {
        margin-bottom: 20px;
    }
    .content-text {
        margin: 10px 0 0 0;
    }
}
@media(min-width: 741px) {
    .content-text {
        margin: 18px 0 0 0;
        padding-left: 10px;
    }
}

.avtivity-items {
    display: grid;
    grid-template: auto / 4fr 5fr;
    gap: 20px;
}
@media(max-width: 740px) {
    .avtivity-items {
        grid-template: auto / 1fr 1fr;
        gap: 15px;
    }
}
@media(min-width: 741px) {
    .business-container {
        display: grid;
        grid-template: auto / 250px 1fr;
        align-items: center;
    }
    .avtivity-items {
        margin-left: 66px;
        flex: 1;
    }
}

.content-items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 50px 20px;
}
.content-image {
    background: #E6F3FF;
}
@media(max-width: 740px) {
    .content-items {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 10px;
    }
}

/* company/activity/ */
.lead-challenge {
    padding-bottom: 40px;
}
.challenge-section {
    background: #2E8AC0;
    padding: 60px 0 0 0;
}
.page-container .challenge-title {
    font-size: max(20px, min(3vw, 36px));
    font-weight: 700;
    color: #fff;
    text-align: center;
    letter-spacing: normal;
    line-height: normal;
}
.challenge-content {
    padding: 60px 0;
}
.challenge-image {
    max-width: 420px;
}
h3.description-title {
    font-size: max(18px, min(3vw, 28px));
    line-height: normal;
    letter-spacing: normal;
    color: #fff;
    margin: 0;
}
.challenge-description p {
    color: #fff;
    margin-top: 20px;
}
.challenge-flow {
    position: relative;
    background: #394C78;
}
.challenge-illustration {
    position: relative;
    z-index: 1;
    max-width: 530px;
    margin: 0 auto;
    padding: 35px 0 0 0;
}
.challenge-2nd-illustration {
    max-width: 670px;
    margin: 0 auto;
    padding: 70px 0 0 0;
}
.challenge-2nd-arrow {
    background: #FAFAFA;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}
.challenge-flow-2nd{
    background: linear-gradient(180deg, rgba(250, 250, 250, 1), rgba(255, 255, 255, 1));
}
@media(max-width: 740px) {
    .lead-challenge {
        padding-bottom: 20px;
    }
    .challenge-section {
        margin: 0 calc(50% - 50vw);
        padding: 40px calc(50vw - 50%) 0 calc(50vw - 50%);
    }
    .challenge-title br {
        display: none;
    }
    .challenge-content {
        padding: 20px 0;
    }
    .challenge-description {
        padding: 20px 0 0 0;
    }
    .description-title {
        font-weight: 700;
        text-align: center;
    }
    .challenge-flow {
        margin: 0 calc(50% - 50vw);
    }
    .challenge-illustration,
    .challenge-2nd-illustration {
        padding: 20px 0 0 0;
    }
    .challenge-section picture,
    .challenge-flow picture,
    .challenge-flow-2nd picture{
        width: 100%;
        display: block;
    }
    .challenge-section img,
    .challenge-flow img,
    .challenge-flow-2nd img {
        width: 100%;
    }
    .challenge-flow-2nd {
        margin: 0 calc(50% - 50vw);
        padding: 0 calc(50vw - 50%);
    }
}
@media(min-width: 741px) {
    .challenge-content {
        max-width: 900px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        align-items: center;
        gap: 20px;
    }
}

.page-container .message-title {
    font-size: max(18px, min(3vw, 28px));
    line-height: 200%;
    font-weight: 900;
    color: #394C78;
    letter-spacing: normal;
}
.text-contents p {
    margin-bottom: 20px;
}
.text-contents a {
    text-decoration: underline;
}
.text-contents ul {
    list-style: disc;
    margin: 0 0 20px 1em;
}
.text-contents h1,
.text-contents h2,
.text-contents h3,
.text-contents h4,
.text-contents h5 {
    margin-bottom: 20px;
}
.environment-text-contents h2{
    margin: 40px 0;
}
.text-contents ol {
    list-style: auto;
    margin: 0 0 20px 1.5em;
}
.text-contents ol.ol-style-a {
    counter-reset: number 0;
    list-style: none;
    margin: 0 0 20px 0;
}
.text-contents ol.ol-style-a li {
    text-indent: -2.2em;
    margin-left: 2.2em;
}
.text-contents ol.ol-style-a li::before {
    counter-increment: number 1;
    content: "(" counter(number) ")";
    margin-right: 1em;
}
.text-contents table {
    font-size: max(16px, min(3vw, 16px));
    border: solid #ccc;
    border-width: 1px 1px 0 1px;
    margin-bottom: 20px;
    line-height: normal;
    width: 100%;
}
.rss-table table{
    width: 280px;
}
.text-contents table th,
.text-contents table td {
    padding: 15px;
    text-align: left;
    border-bottom: solid 1px #ccc;
    vertical-align: middle;
}
.text-contents table th {
    background: #fbfbfb;
    border-right: solid 1px #ccc;
    width: 4em;
}
.text-contents table thead th {
    text-align: center;
}
.text-contents table td {
    border-right: solid 1px #ccc;
}
.text-contents table ol,
.text-contents table ul {
    margin-bottom: 0;
}

.article-content .center{
    text-align: center;
}
.article-content .flex{
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.article-content .around{
    justify-content: space-around;
}
.article-content dl{
    font-size: max(16px, min(3vw, 18px));
    line-height: 200%;
    margin-bottom: 20px;
}
.article-content dd{
    margin: 0 0 20px 1.5em;
}
.article-content figure{
    font-size: max(16px, min(3vw, 18px));
    line-height: 200%;
    margin-bottom: 20px;
}
.article-content figure figcaption {
    line-height: 150%;
}

.article-content .prees_companyArea{
    border: 1px solid #666;
    padding: 2em;
}

.article-content .corp {
    gap: 10px;
}
.article-content .corp dt {
    width: 5em;
}
.article-content .corp dd {
    margin: 0;
    width: calc(100% - (6em + 10px));
}

.spacer .message-signature {
    text-align: right;
    font-size: max(18px, min(3vw, 28px));
}
.message-signature-sub{
    font-size:max(16px, min(3vw, 20px));
}

.inline-image {
    max-width: 770px;
    width: 100%;
    display: block;
    margin: 0 auto 20px auto;
}
@media(max-width: 740px) {
    .message-title {
        margin-bottom: 20px;
    }
    .text-contents .sp-table-1col thead {
        display: none;
    }
    .text-contents .sp-table-1col tbody tr {
        display: grid;
        grid-template-columns: repeat(1, 1fr); 
    }
    .text-contents .sp-table-1col td {
        border-right: 0;
    }
    .text-contents .sp-table-1col td::before {
        content: attr(data-label);
        display: block;
        background: #fbfbfb;
        margin: -15px -15px 0 -15px;
        text-align: center;
        padding: 15px;
        margin-bottom: 15px;
    }
}
@media(min-width: 741px) {
    .message-title {
        margin-bottom: 58px;
    }
}

.info-list dt {
    font-size: max(12px, min(2vw, 16px));
    color: #666;
}
.info-list dd {
    font-size: max(16px, min(3vw, 16px));
    line-height: normal;
}
@media(max-width: 740px) {
    .info-list dt {
        padding: 0 0 10px 0;
    }
    .info-list dd {
        border-bottom: solid 1px #f2f2f2;
        padding-bottom: 20px;
        margin-bottom: 20px;
    }
}
@media(min-width: 741px) {
    .info-list {
        display: grid;
        grid-template-columns: 300px 1fr;
    }
    .info-list dt,
    .info-list dd {
        padding: 25px 0;
        border-bottom: solid 1px #f2f2f2;
    }
    .info-list dt {
        padding-left: 4em;
    }
}

@media(max-width: 740px) {
    .license-list {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 1em 0;
    }
}
@media(min-width: 741px) {
    .license-list li span {
        display: inline-block;
        min-width: 15em;
    }
}

.table-data {
    width: 100%;
    margin-bottom: 35px;
}
.table-2col tr {
    display: grid;
    grid-template-columns: 30% 1fr;
}
.table-3col tr {
    display: grid;
    grid-template-columns: 30% 20% 1fr;
}
.table-data thead {
    background: #fbfbfb;
    font-size: max(10px, min(2vw, 16px));
    text-align: left;
}
.table-data tbody tr {
    border-bottom: solid 1px #f2f2f2;
    line-height: normal;
}
.table-label {
    font-size: max(12px, min(2vw, 16px));
    color: #666;
}
.table-text {
    font-size: max(16px, min(2vw, 16px));
}
@media(max-width: 740px) {
    .table-3col tr {
        grid-template-columns: 30% 1fr;
    }
    .table-data thead th {
        padding: 12px 0;
    }
    .table-data tbody tr {
        padding: 20px 0;
    }
    .table-data th:first-of-type,
    .table-data td:first-of-type {
        padding-left: 5px;
    }
    .table-3col th:last-of-type {
        display: none;
    }
    .table-3col tbody td:last-of-type {
        grid-area: 2 / 1 / 2 / 3;
        padding: 10px 0 0 5px;
    }
}
@media(min-width: 741px) {
    .table-data tbody tr {
        padding: 25px 0;
    }
    .table-data thead tr {
        padding: 25px 0;
    }
    .table-data th:first-of-type,
    .table-data td:first-of-type {
        padding-left: 4em;
    }
}

p.update-date {
    font-size: max(12px, min(2vw, 18px));
    color: #666;
}
.page-contents .picture {
    display: block;
    margin: 20px 0;
}

#article-container {
    border-top: solid 1px #eee;
}
.article-item {
    border-bottom: solid 1px #eee;
    padding: 20px 0;
}
.article-item-info {
    display: flex;
    align-items: center;
    padding-bottom: 15px;
}
.article-item-date {
    font-size: max(14px, min(3vw, 14px));
    color: #6C6C6C;
    margin-right: 40px;
}
.article-item-category {
    font-size: max(12px, min(3vw, 14px));
    display: flex;
    align-items: center;
    gap: 5px;
}
p.article-item-title {
    line-height: 150%;
    font-weight: 500;
}
.pagenation-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 40px 0 0 0;
    gap: 20px 30px;
}
.pagenation-item {
    font-size: 14px;
}
.pagenation-item-link {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: solid 1px #0442C0;
    border-radius: 999px;
}
.current .pagenation-item-link{
    border: solid 1px #666;
    color: #666;
    pointer-events: none;
}
#categoey-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 20px;
}
.categoey-list-item {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: solid 1px #0442C0;
    font-size: max(12px, min(3vw, 14px));
    color: #0442C0;
    max-width: max-content;
    padding: 5px 10px;
    line-height: normal;
    gap: 6px;
}
.categoey-list-item.current{
    border: solid 1px #666;
    color: #666;
    pointer-events: none;
}
.categoey-list-item.current .tag-icon{
    background: url(../images/icon/tag-icon-gray.svg) no-repeat center / contain;
}
@media(max-width: 740px) {
    #categoey-list {
        padding-bottom: 20px;
        gap: 10px 10px;
    }
}
@media(min-width: 741px) {
    #categoey-list {
        padding-bottom: 40px;
    }
    .news-header {
        padding-bottom: 16px;
    }
}

.article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 15px;
    border-bottom: solid 1px #eee;
}
.article-date {
    font-size: 14PX;
    color: #6C6C6C;
}
.article-categories {
    margin-left: auto;
}
.article-footer {
    border-top: solid 1px #eee;
}
.article-footer .primary-btn {
    margin: 0 auto;
}
@media(max-width: 740px) {
    .article-meta {
        padding-bottom: 30px;
    }
    .article-content {
        padding: 20px 0;
    }
    .article-footer {
        padding-top: 20px;
    }
}
@media(min-width: 741px) {
    .article-meta {
        padding-bottom: 20px;
    }
    .article-content {
        padding: 30px 0;
    }
    .article-footer {
        padding-top: 40px;
    }
}

ul.icon-list {
    list-style: none;
    margin: 0;
}
.icon-list-item {
    display: flex;
    align-items: baseline;
    gap: 10px;
}


h2.ambition-heading {
    font-size: max(28px, min(3vw, 36px));
    color: #FFF;
    text-shadow: 0px 2px 6px #052F8B;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 9px;
    margin-bottom: 30px;
}
p.ambition-text {
    font-size: max(16px, min(3vw, 26px));
    color: #FFF;
    text-shadow: 0px 2px 6px #052F8B;
    line-height: 200%;
}
@media(max-width: 740px) {
    #ambition-box {
        background: url(../images/company/ambition-bg-sp.jpg) no-repeat center top / cover;
    }
    h2.ambition-heading {
        letter-spacing: normal;
        text-align: center;
        margin-bottom: 12px;
    }
    .concept-box {
        padding-top: 20px;
    }
    .concept-text {
        text-align: center;
    }
}
@media(min-width: 741px) {
    #ambition-box {
        background: url(../images/company/ambition-bg.jpg) no-repeat center bottom / cover;
    }
    .ambition-container {
        padding: 20px 0;
    }
    .concept-box {
        padding-top: 70px;
    }
    .pc-newline {
        display: block;
    }
}

/* 基本スタイル */
.switching-tab {
    display: flex;
    list-style: none;
    padding: 0 0 40px 0;
    margin: 0;
}
.layout-single-row {
    flex-wrap: wrap;
    gap: 15px 15px;
}
.switching-item {
    font-size: max(14px, min(3vw, 16px));
    font-weight: 600;
    text-decoration: underline;
    background: #fbfbfb;
    color: #0442C0;
    line-height: normal;
    border-radius: 5px;
    text-align: center;
    cursor: pointer;
}
.switching-link {
    display: block;
    padding: 15px 20px;
    border-radius: 5px;
    text-decoration: underline;
}
a.switching-link:hover,
.switching-item.is-active .switching-link {
    color: #fff;
    background: #0442C0;
}
@media (max-width: 740px) {
    .layout-single-column .switching-item {
        max-width: max-content;
    }
    .switching-tab {
        padding: 0 0 20px 0;
    }
    .layout-double-row-sp {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }
    .switching-link {
        padding: 12px 15px;
    }
}
@media (min-width: 741px) and (max-width: 980px) {
    .switching-link {
        padding: 15px 10px;
    }
}

.timeline-year {
    position: relative;
    font-size: max(12px, min(2vw, 18px));
    color: #666;
    line-height: 150%;
    display: flex;
    align-items: center;
}
.timeline-year::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #0442C0;
    z-index: 1;
}
.timeline-event {
    border-bottom: solid 1px #f2f2f2;
}
.timeline-date {
    font-size: max(14px, min(3vw, 16px));
    color: #666;
    line-height: 150%;
}
.page-container .timeline-description p {
    font-size: max(16px, min(3vw, 16px));
    line-height: 150%;
}
.page-container .timeline-description p:not(:last-of-type) {
    margin-bottom: 15px;
}
.timeline-details {
    display: grid;
    grid-template-columns: 20% 1fr;
}
.timeline-event .timeline-details:not(:last-of-type) {
    margin-bottom: 15px;
}
@media (max-width: 740px) {
    .timeline {
        position: relative;
        margin-left: 15px;
    }
    .timeline-year {
        padding: 20px 0;
    }
    .timeline-event {
        padding: 0 0 20px 0;
    }
    .timeline-year::before {
        width: 6px;
        height: 6px;
        position: absolute;
        left: -15px;
    }
    .timeline::after {
        content: "";
        display: inline-block;
        width: 1px;
        height: calc(100% - 26px);
        background: #f2f2f2;
        position: absolute;
        top: 26px;
        left: -13px;
    }
    .history-nav {
        padding: 30px 0 0 0;
    }
    .history-nav .primary-btn {
        margin: 0 auto;
    }
}
@media (min-width: 741px) {
    .timeline {
        display: grid;
        grid-template-columns: 16% 1fr;
        margin: 0 50px;
    }
    .timeline-year {
        border-bottom: solid 1px #f2f2f2;
    }
    .timeline-year,
    .timeline-event {
        padding: 40px 0;
    }
    .timeline-details {
        align-items: center;
    }
    .timeline-year::before {
        position: absolute;
        left: -50px;
    }
    .timeline-year::after {
        content: "";
        display: inline-block;
        width: 1px;
        height: 100%;
        background: #f2f2f2;
        position: absolute;
        top: 0;
        left: -45px;
    }
    .timeline-year:first-of-type::after {
        height: calc(100% - 40px);
        top: 50%;
        left: -45px;
    }
    .timeline-year:last-of-type::after {
        height: calc(100% - 40px);
        top: auto;
        bottom: 50%;
        left: -45px;
    }
    .history-nav {
        padding: 40px 0 0 0;
    }
    .history-next-nav .primary-btn {
        margin: 0 0 0 auto;
        cursor: pointer;
    }
    .history-prev-nav .primary-btn {
        margin: 0 auto 0 0;
        cursor: pointer;
    }
}

.switching-section {
    display: none;
}
.switching-section.active {
    display: block;
}

.office-list {
    display: flex;
    flex-wrap: wrap;
}
@media ( max-width: 740px ){
    .office-list {
        display: block;
        text-align: center;
    }
}
.office-list-item {
    font-size: max(12px, min(2vw, 16px));
    flex: auto;
    text-align: center;
}
.office-link {
    display: block;
    text-decoration: underline;
}
.office-link:hover {
    background: rgba(1, 69, 166, 0.03);
}
.dli-caret-down {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent;
    border-width: 10px 6px;
    border-top-color: #0442C0;
    margin: 0 auto;
}
@media (max-width: 740px) {
    .office-list-item {
        border-bottom: solid 1px #f2f2f2;
        display: inline-block;
        line-height: 200%;
    }
    .office-link {
        padding: 5px 10px 0;
        margin: 0 -2px;
    }
}
@media (min-width: 741px) {
    .office-list {
        gap: 10px 0;
    }
    .office-list-item {
        background: #fbfbfb;
    }
    .office-link {
        padding: 15px 10px 10px 10px;
    }
}

.office-detail:not(:last-of-type) {
    border-bottom: solid 1px #f2f2f2;
}
.office-address dt,
.office-access dt {
    font-size: max(12px, min(2vw, 16px));
    color: #666;
}
.office-address dd,
.office-access dd {
    font-size: max(16px, min(3vw, 16px));
    line-height: normal;
}
.office-title .annotation {
    font-size: max(12px, min(2vw, 16px));
    font-weight: 400;
    letter-spacing: normal;
    margin: 0 0 0 1em;
    color: #F00;
}
@media (max-width: 740px) {
    .office-detail {
        padding: 30px 0;
    }
    .office-address dt,
    .office-access dt {
        padding: 20px 0 10px 0;
    }
    .office-address dd {
        padding: 0 0 20px 0;
        border-bottom: solid 1px #f2f2f2;
    }
    .office-access dd {
        padding: 0 0 20px 0;
    }
}
@media (min-width: 741px) {
    .office-detail {
        padding: 40px 0;
    }
    .office-info {
        display: grid;
        grid-template-columns: 490px 1fr;
        gap: 40px 20px;
    }
    .office-title {
        grid-area: 1 / 1 / 2 / 3;
    }
    .office-address {
        grid-area: 2 / 1 / 3 / 3;
        display: grid;
        grid-template-columns: 6em 1fr;
        gap: 15px 0;
    }
    .office-access {
        grid-area: 3 / 2 / 4 / 3;
    }
    .office-access dt {
        margin-bottom: 20px;
    }
}

.leaflet-dl-image {
    padding: 50px;
    margin: 30px 0;
    background: #fbfbfb;
}
@media (max-width: 740px) {
    .leaflet-dl-image {
        padding: 15px;
        margin: 20px 0;
    }
}

.contact-section {
    border: solid 1px #ccc;
    margin-bottom: 20px;
}
.contact-title {
    font-size: max(16px, min(3vw, 16px));
    line-height: normal;
    padding: 25px 40px;
    background: #fbfbfb;
    border-bottom: solid 1px #ccc;
}
.contact-content {
    padding: 20px 40px 0 40px;
}
@media (max-width: 740px) {
    .contact-title {
        padding: 15px;
    }
    .contact-content {
        padding: 20px 15px 0 15px;
    }
}

.jaco-box {
    padding-bottom: 15px;
}
.jaco-2rows {
    display: flex;
    gap: 10px 40px;
    justify-content: center;
}
.jaco-item {
    max-width: 270px;
}
@media (max-width: 740px) {
    .jaco-2rows {
        flex-direction: column;
    }
}

.product-inquiry {
    padding: 20px 0 40px 0;
}
.inquiry-container {
    border-top: solid 1px #ccc;
    border-bottom: solid 1px #ccc;
}
.tel-list {
    font-size: max(16px, min(3vw, 16px));
    display: grid;
    grid-template-columns: 8em 1fr;
    gap: 1em 0;
    margin-bottom: 20px;
}
@media (max-width: 740px) {
    .inquiry-container {
        margin: 0 calc(50% - 50vw);
    }
    .inquiry-method {
        padding: 20px 15px 10px 15px;
    }
    .inquiry-method:first-of-type {
        border-bottom: solid 1px #ccc;
    }
}
@media (min-width: 741px) {
    .inquiry-container {
        margin: 0 calc(50% - 50vw);
        padding: 0 calc(50vw - 50%);
    }
    .inquiry-methods {
        display: grid;
        grid-template-columns: repeat(2, 1fr); 
    }
    .inquiry-method:first-of-type {
        border-right: solid 1px #ccc;
        padding: 20px 50px 10px 0;
    }
    .inquiry-method:last-of-type {
        padding: 20px 0 10px 50px;
    }
}

.onepanasonicit-lead {
    padding: 40px 0;
    background: #fff;
}
#onepanasonicit-movie {
    padding: 40px 0;
}
.onepanasonicit-bg-color {
    background: #F0F5F9;
}
.page-container #onepanasonicit-movie h2.movie-title,
.page-container #onepanasonicit-movie h2.new-office-title {
    font-size: max(20px, min(3vw, 32px));
    color: #000;
    letter-spacing: .1em;
    line-height: normal;
}
.movie-header,
.new-office-header{
    text-align: center;
    margin-bottom: 40px;
}
.movie-box-title{
    margin-top: 15px;
    text-align: center;
}
@media (max-width: 740px) {
    .onepanasonicit-lead {
        padding: 20px 0;
    }
    #onepanasonicit-movie .movie-description{
        text-align: left;
    }
}
@media (min-width: 741px) {
    .onepanasonicit-lead-text {
        text-align: center;
    }
}


.page-container h2.commitment-title {
    font-feature-settings: "palt";
    letter-spacing: .1em;
    font-size: max(20px, min(2.6vw, 32px));
    color: #fff;
    font-weight: 400;
    line-height: normal;
    text-align: center;
    margin-bottom: 1em;
}
.page-container p.commitment-description {
    color: #fff;
    line-height: 200%;
}
@media (max-width: 740px) {
    .commitment {
        background: url(../images/other/opi-section-bg-sp.png) ,linear-gradient(90deg, #223960 0%, #0045A6 100%);
        background-repeat: no-repeat;
        background-size: cover;
        background-position: bottom center;
        padding: 40px 0 60px 0;
    }
}
@media (min-width: 741px) {
    .commitment {
        background: url(../images/other/opi-section-bg.png) ,linear-gradient(90deg, #223960 0%, #0045A6 100%);
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center left;
        padding: 80px 0;
    }
    .commitment-content {
        width: 50%;
        margin-left: auto;
    }
}
@media (min-width: 741px) and (max-width: 1440px) {
    .commitment-content {
        width: 60%;
    }
}

.onepanasonicit-section {
    background: #fff;
}
.onepanasonicit-section {
    padding: 0 0 20px 0;
}
@media (max-width: 740px) {
    .section-block {
        padding: 40px 0 0 0;
    }
}
@media (min-width: 741px) {
    .section-block {
        padding: 60px 0 0 0;
    }
}

.mission-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px 17px;
    background: #fbfbfb;
    border-radius: 4px;
    padding: 37px 28px 22px 28px;
}
@media (max-width: 740px) {
    .mission-list {
        grid-template-columns: repeat(1, 1fr);
        padding: 30px 15px 20px 15px;
    }
}
@media (min-width: 741px) and (max-width: 1440px) {
    .mission-list {
        gap: 10px;
        padding: 37px 20px 22px 20px;
    }
}

.mission-item {
    font-size: max(16px, min(3vw, 18px));
    background: #fff;
    border-radius: 4px;
    line-height: normal;
    padding: 15px 5px;
    display: flex;
    align-items: center;
    gap: 15px 10px;
}
@media (min-width: 741px) and (max-width: 1440px) {
    .mission-item {
        font-size: max(16px, min(3vw, 16px));
    }
}
.gentle-icon {
    background: url(../images/icon/gentle-icon.svg) no-repeat center / contain;
    display: block;
    min-width: 30px;
    height: 30px;
}
.handshake-icon {
    background: url(../images/icon/handshake-icon.svg) no-repeat center / contain;
    display: block;
    min-width: 30px;
    height: 30px;
}
.graph2-icon {
    background: url(../images/icon/graph2-icon.svg) no-repeat center / contain;
    display: block;
    min-width: 30px;
    height: 30px;
}
.page-container p.mission-heading {
    position: relative;
    font-size: 20px;
    font-weight: 700;
    color: #FFF;
    border-radius: 100px;
    background: #394C78;
    line-height: normal;
    letter-spacing: 2px;
    max-width: 300px;
    text-align: center;
    margin: 0 auto -20px auto;
    padding: 5px 0;
}
@media (max-width: 740px) {
    .mission-description {
        padding: 20px 0 25px 0;
    }
    .mission-item {
        padding: 15px;
    }
}
@media (min-width: 741px) {
    .mission-content {
        display: grid;
        grid-template-columns: 35% 1fr;
        gap: 20px;
        align-items: center;
    }
    .mission-item {
        justify-content: center;
    }
}
@media (min-width: 741px) and (max-width: 1020px) {

    .mission-item {
        padding: 15px 0;
    }
    .gentle-icon,
    .handshake-icon,
    .graph2-icon {
        min-width: 20px;
        height: 20px;
    }
}


.vision-title {
    margin-bottom: 30px;
}
.vision-list dt {
    font-size: max(16px, min(3vw, 18px));
    padding: 15px 0 5px 0;
    line-height: normal;
    font-weight: 700;
    color: #394C78;
    display: flex;
    gap: 5px;
}
.vision-list dt::before {
    content: "";
    display: block;
    min-width: 16px;
    height: 20px;
    background: url(../images/icon/dia-icon.svg) no-repeat center / contain;
    margin-top: 2px;
}
.vision-list dd {
    font-size: max(14px, min(3vw, 16px));
    padding: 0 0 15px 0;
    line-height: normal;
}
@media (max-width: 740px) {
    .vision-title {
        margin-bottom: 20px;
    }
    .vision-image-wrapper {
        padding-bottom: 10px;
    }
    .vision-list dt {
        padding: 10px 0;
    }
    .vision-list dd {
        padding: 0 0 10px 0;
    }
    .vision-content{
        display: flex;
        flex-direction: column;
    }
    .vision-image-wrapper{
        order: 2;
    }

}
@media (min-width: 741px) {
    .vision-content {
        margin: 0 0 0 calc(50% - 50vw);
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        align-items: center;
        gap: 50px;
    }
    .vision-image-wrapper {
        height: 100%;
    }
    .vision-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center right;
    }
}

.value-title {
    margin-bottom: 40px;
}
.value-content {
    margin: 0 calc(50% - 50vw);
    padding: 20px calc(50vw - 50%) 40px calc(50vw - 50%);
    background-color: #fbfbfb;
}
.value-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.value-item {
    display: grid;
    grid-row: span 2;
}
.value-text {
    border-radius: 4px;
    background: #FFF;
    padding: 50px 15px 20px 15px;
}
.value-icon {
    position: relative;
    width: 100px;
    height: 100px;
    border-radius: 999px;
    background: #F0F5F9;
    display: grid;
    place-items: center;
    margin: 0 auto -50px auto;
}
.value-heading {
    font-size: 20px;
    font-weight: 700;
    line-height: normal;
    color: #163E7A;
    text-align: center;
    margin: 6px 0 12px 0;
}
.value-description {
    font-size: max(14px, min(3vw, 16px));
    line-height: normal;
    text-align: center;
}
@media (max-width: 740px) {
    .value-title {
        margin-bottom: 15px;
    }
    .value-content {
        padding: 10px calc(50vw - 50%) 25px calc(50vw - 50%);
    }
    .value-list {
        grid-template-columns: repeat(1, 1fr);
    }
}

.health-container {
    padding: 40px 0;
}
.health-image-container {
    padding: 20px 50px;
    background: #fbfbfb;
}
.health-image-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: center;
}
.health-image-01 {
    max-width: 250px;
    width: 100%;
    margin: 0 auto;
}
.health-image-02 {
    max-width: 330px;
    width: 100%;
    margin: 0 auto;
}
#health-management-initiatives .health-container {
    padding-bottom: 0;
}
.initiative-list {
    display: flex;
}
.initiative-description {
    margin-left: auto;
}
.text-contents ul.office-location {
    list-style: none;
    margin: 0;
    padding: 0;
}
.initiative-title {
    font-size: max(16px, min(3vw, 20px));
    font-weight: 900;
    line-height: normal;
}
.office-location-item {
    font-size: max(14px, min(3vw, 18px));
    display: flex;
    align-items: center;
    gap: 10px;
}
.map-icon-red {
    display: block;
    min-width: 30px;
    height: 30px;
    background: url(../images/icon/map-pin-red.svg) no-repeat center / contain;
}
.map-icon-blue {
    display: block;
    min-width: 30px;
    height: 30px;
    background: url(../images/icon/map-pin-blue.svg) no-repeat center / contain;
}
.workspace-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0 20px;
}
.workspace-image-wrapper {
    position: relative;
}
.workspace-image-wrapper .map-icon {
    position: absolute;
    top: 10px;
    left: 10px;
}
.workspace-description {
    padding-top: 5px;
}
.text-contents .workspace-description p {
    line-height: normal;
}
.health-actions {
    padding: 50px 0;
}
p.actions-summary {
    font-size: max(16px, min(3vw, 20px));
    font-weight: 900;
    line-height: normal;
}
.actions-content {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.actions-item {
    background: #fff;
}
.actions-header {
    position: relative;
    background: #0145A6;
}
.actions-image {
    display: block;
}
.actions-title {
    color: #FFF;
    font-size: 20px;
    font-weight: 900;
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    place-items: center;
    text-align: center;
    line-height: normal;
}
.actions-list {
    padding: 20px;
}
.actions-list-item {
    font-size: 16px;
    line-height: normal;
}
@media (max-width: 740px) {
    .health-container {
        padding: 20px 0;
    }
    .health-image-container {
        padding: 10px;
    }
    .initiative-list {
        padding: 10px 0;
    }
    .office-location-item .map-icon-red,
    .office-location-item .map-icon-blue {
        min-width: 20px;
        height: 20px;
    }
    .workspace-gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: 0 15px;
    }
    .health-actions {
        margin: 0 calc(50% - 50vw);
        padding: 40px calc(50vw - 50%);
    }
    .actions-content {
        grid-template-columns: repeat(1, 1fr);
    }
}
@media (min-width: 741px) {
    .initiative-list {
        padding: 30px 0 20px 0;
    }
    .text-contents ul.office-location {
        display: flex;
        gap: 10px 20px;
    }
    .workspace-gallery {
        padding-bottom: 30px;
    }
    .workspace-description {
        padding-left: 10px;
    }
}

.dei-initiatives {
    background: #F0F5F9;
    padding: 50px 5px;
}
.dei-content {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}
.dei-item {
    background: #fff;
}
.dei-heading {
    font-size: max(18px, min(3vw, 20px));
    font-weight: 900;
    line-height: normal;
    border-bottom: solid 1px #F0F5F9;
    text-align: center;
    background: #fbfbfb;
    padding: 10px 15px;
}
.dei-action {
    padding: 20px 20px 0 20px;
}
.dei-details .dei-action:not(:last-of-type) {
    border-bottom: solid 1px #F0F5F9;
}
.action-title {
    font-size: max(16px, min(3vw, 20px));
    font-weight: 900;
    line-height: normal;
    margin-bottom: 15px;
}
.page-container .dei-action p,
.dei-details li {
    line-height: 150%;
}
.action-image-container {
    padding-bottom: 20px;
}
@media (max-width: 740px) {
    .dei-initiatives {
        margin: 0 calc(50% - 50vw);
        padding: 40px 0;
    }
    .dei-content {
        grid-template-columns: repeat(1, 1fr);
    }
}

.health-metrics-section {
    padding: 50px 0 0 0;
}
.table-scroll {
    overflow: scroll;
}
table.health-metrics-table {
    font-size: max(14px, min(3vw, 16px));
    white-space: nowrap;
    margin: 0;
}
.metrics-header {
    font-weight: 600;
}
@media (max-width: 740px) {
    .health-metrics-section {
        padding: 40px 0 0 0;
    }
}

.notfound-header {
    border-top: solid 1px #ccc;
}
@media (max-width: 740px) {
    .notfound-header {
        padding-top: 10px;
    }
}
@media (min-width: 741px) {
    .notfound-header {
        margin: 0 calc(50% - 50vw);
        padding: 50px calc(50vw - 50%) 20px calc(50vw - 50%);
    }
    .notfound-container {
        padding: 60px 0 20px 0;
    }
}

.compliance-link-btn {
    padding: 20px 0 0 0;
}
.compliance-link-btn .primary-btn,
.inquiry-method .primary-btn {
    display: flex;
    text-align: left;
}

/* -------------- モーダル -------------- */
.open-modal-btn {
    cursor: pointer;
}
.modal {
    filter: opacity(0);
    visibility: hidden;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    transition: 0.5s;
}
.modal.show {
    filter: opacity(1);
    visibility: visible;
}
/* モーダルコンテンツ */
.modal-content {
    position: relative;
    width: min(100% - 30px, 1000px);
    background: #fff;
    box-sizing: border-box;
}
.modal-header {
    padding: 40px 20px;
    text-align: center;
}
.youtube-box {
    aspect-ratio: 9 / 5;
    width: min(100% - 30px, 700px);
    margin-inline: auto;
    padding-bottom: 40px;
}
.modal-close-js {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;

}
.modal-close-js .dli-close {
    display: inline-block;
    line-height: 1;
    width: 100%;
    height: 1px;
    background: #1C43C0;
    position: relative;
    transform: rotate(45deg);
}
.modal-close-js .dli-close::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: inherit;
    border-radius: inherit;
    transform: rotate(90deg);
}
.modal-var1 .modal-content,
.modal-var2 .modal-content,
.modal-var3 .modal-content {
    background: #ffffff00;
}
.modal-var1 .youtube-box,
.modal-var2 .youtube-box,
.modal-var3 .youtube-box {
    width: 100%;
    padding: 40px 0;
}
.modal-var1 .modal-close-js,
.modal-var2 .modal-close-js,
.modal-var3 .modal-close-js {
    top: 0;
    right: 0;
}
.modal-var1 .modal-close-js .dli-close,
.modal-var2 .modal-close-js .dli-close,
.modal-var3 .modal-close-js .dli-close {
    background: #fff;
}
@media (max-width: 740px) {
    .modal-header {
        padding: 20px 15px;
    }
    .modal-header .movie-description {
        margin: .5em 0 0 0;
    }
    .youtube-box {
        padding-bottom: 20px;
    }
    .modal-close-js {
        top: 15px;
        right: 15px;
        width: 30px;
        height: 30px;
    }
}