/* utility – text
---------------------------------------------*/
* {
    margin: 0;
    padding: 0;
}
html {
    font-size: 16px;
}
body {
    font-feature-settings: "palt";
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
}
.pc { display: block !important; }
.sp { display: none !important; }

.en_h1 {
    font-family: akagi-pro, sans-serif;
    font-weight: 500;
    font-size: 2.369rem;
    line-height: 1.1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.en_h4 {
    font-family: akagi-pro, sans-serif;
    font-weight: 500;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.en_Body {
    font-family: akagi-pro, sans-serif;
    font-weight: 500;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 0.05em;
}
.en_Caption {
    font-family: akagi-pro, sans-serif;
    font-weight: 500;
    font-size: 0.75rem;
    line-height: 1;
    letter-spacing: 0.05em;
}
.jp_h1 {
    font-weight: 500;
    font-size: calc(37.9 / 1440 * 100vw);
    line-height: 1.85;
    letter-spacing: 0.18em;
}
.jp_h2 {
    font-weight: 500;
    font-size: 1.777rem;
    line-height: 1.7;
    letter-spacing: 0.1em;
    margin-bottom: 24px;
}
.jp_h3 {
    font-weight: 500;
    font-size: 1.333rem;
    line-height: 1.85;
    letter-spacing: 0.05em;
}
.jp_h3_responsive {
    font-weight: 400;
    font-size: calc(21.33 / 1440 * 100vw);
    line-height: 1.85;
    letter-spacing: 0.18em;
}
.jp_h4 {
    font-weight: 400;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 0.15em;
    margin-bottom: 40px;
}
.jp_Body {
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.85;
    letter-spacing: 0.05em;
}
.jp_Caption {
    font-weight: 500;
    font-size: 0.75rem;
    line-height: 1.75;
    letter-spacing: 0.03em;
}
.jp_Button {
    font-weight: 500;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 0.08em;
}
.privacy_policy p,
.privacy_policy ol li, 
.privacy_policy ul li,
.privacy_policy .targeting a, 
.privacy_policy .inquiry a {
    font-weight: 400;
    font-size: 0.875rem;
    line-height: 1.75;
    letter-spacing: 0.05em;
}

/* utility – color
---------------------------------------------*/
/* Purple1 */
.kv_contents .copy .jp_h1,
.company_mission .copy .jp_h1,
.services_kv .copy .jp_h1,
.jp_h2,
.privacy_policy .title {
    color: #4E495F;
}
/* Blue1 */
.news li .date,
.privacy_policy .targeting a, 
.privacy_policy .inquiry a {
    color: #6A8BC7;
}
/* Black */
.en_h1,
.en_Caption,
.jp_h3,
.jp_h3_responsive,
.jp_h4,
.jp_Body,
.jp_Caption,
.privacy_policy p,
.privacy_policy ol li, 
.privacy_policy ul li,
nav li a,
.footer_nav li a,
.company .card p,
.services .card p,
.pick_up .card p, 
.contact .button p {
    color: #1F1F1F;
}
.company .card .button_wrapper,
.services .card .button_wrapper,
.pick_up .card .button_wrapper,
.services_service .card .button_wrapper {
    background: #1F1F1F;
}
.company .card .button_wrapper:hover,
.services .card .button_wrapper:hover,
.pick_up .card .button_wrapper:hover,
.services_service .card .button_wrapper:hover {
    background:rgba(31, 31, 31, 0.9);
}
/* White */
.company_kv .copy .jp_h1,
.company .card .button p, 
.services .card .button p,
.pick_up .card .button p,
.services_service .button p,
.contact .en_h1,
.contact .jp_Body,
.contact .jp_h4 {
    color: #ffffff;
}
header,
.company .card,
.services .card,
.pick_up .card,
.services_service .card,
.contact .button_wrapper {
    background: #ffffff;
}
/* Gray2 */
nav li a:hover,
.footer_nav li a:hover,
.contact .button_wrapper:hover .button p {
    color: #5c5c5c;
}

/* utility – shadow
---------------------------------------------*/
header { 
    box-shadow: 0px 0px 2px rgba(31, 31, 31, 0.15);
}
.company .card,
.services .card,
.pick_up .card,
.services_service .card {
    box-shadow: 0px 1px 8px rgba(78, 73, 95, 0.1);
}

/* utility – button & links
---------------------------------------------*/
nav li a,
.footer_nav li a,
.company .card .button_wrapper a, 
.services .card .button_wrapper a,
.pick_up .card .button_wrapper a,
.services_service .card .button_wrapper a, 
.contact .button_wrapper a {
    text-decoration: none;
}
nav li a,
.footer_nav li a,
.company .card .button_wrapper,
.services .card .button_wrapper,
.pick_up .card .button_wrapper,
.services_service .card .button_wrapper,
.contact .button_wrapper {
    display: inline-block;
    transition-duration: .3s;
    transition-timing-function: ease;
}
.company .card .button_wrapper,
.pick_up .card .button_wrapper,
.contact .button_wrapper {
    width: calc(432 / 1440 * 100vw);
    max-width: 432px;
    border-radius: 12px;
}
.services .card .button_wrapper {
    width: calc(484 / 1440 * 100vw);
    max-width: 484px;
    border-radius: 12px;
}
.services_service .card .button_wrapper {
    width: calc(380 / 1440 * 100vw);
    max-width: 380px;
    border-radius: 12px;
}
nav li a:hover,
.footer_nav li a:hover,
.company .card .button_wrapper:hover,
.services .card .button_wrapper:hover,
.pick_up .card .button_wrapper:hover,
.services_service .card .button_wrapper:hover, 
.contact .button_wrapper:hover, 
.contact .button p {
    transition-duration: .3s;
    transition-timing-function: ease;
}
.company .card .button p, 
.services .card .button p,
.pick_up .card .button p,
.services_service .card .button p,
.contact .button p {
    padding: 16px 0;
    text-align: center;
    margin-block-end: 0;
}

/* utility – header
---------------------------------------------*/
header {
    height: 72px;
	width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: fixed;
    z-index: 99999;
}
header .logo {
    margin: auto 0 auto calc(96 / 1440 * 100vw);
}
nav ul {
    display: flex;
    margin-right: calc(96 / 1440 * 100vw);
}
nav li {
    display: flex;
    align-items: center;
    text-align: center;
}
nav li:not(:last-child) {
    margin-left: calc(48 / 1440 * 100vw);
}

/* utility – contact
---------------------------------------------*/
.contact {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-right: calc(128 / 1440 * 100vw);
}
.contact .contact_wrapper {
    padding: 96px;
    background-color: #1F1F1F;
}
.contact_wrapper .jp_Body {
    margin-bottom: 48px;
}
.footer_nav .logo {
    margin-top: 168px;
    margin-left: calc(128 / 1440 * 100vw);
}
.footer_nav ul {
    margin-left: calc(128 / 1440 * 100vw);
    padding-top: 64px;
}
.footer_nav li {
    display: flex;
    align-items: center;
    text-align: center;
    padding-top: 12px;
}

/* utility – footer
---------------------------------------------*/
footer {
    display: flex;
    justify-content: space-between;
    padding: 144px 0 48px 0;
    margin: 0 calc(96 / 1440 * 100vw);
}
footer .link_privacy_policy a {
    text-decoration: none;
} 
footer .link_privacy_policy p {
    transition-duration: .3s;
}
footer .link_privacy_policy p:hover {
    transition-duration: .3s;
    transition-timing-function: ease;
    color: #5c5c5c;
}

/* home – kv
---------------------------------------------*/
.kv {
    height: 100vh;
    background: url(/assets/img/pc_kv_small.png);
    background-repeat: no-repeat;
    background-position: right;
}
.kv_contents .copy h1 {
    text-align: left;
    position: absolute;
    left: calc(128 / 1440 * 100vw);
    top: calc(224 / 1440 * 100vw);
}
.kv_contents .copy h3 {
    text-align: left;
    position: absolute;
    left: calc(128 / 1440 * 100vw);
    top: calc(562 / 1440 * 100vw);
}

/* home – kv - utility - scrolling down
---------------------------------------------*/
.scrolldown1{
 	position:absolute;
	right: 48px;
	bottom: 40px;
	height:50px;
    z-index: 9999;
}
.scrolldown1 span{
	position: absolute;
	left:-15px;
	top: -15px;
	color: #4E495F;
}
.scrolldown1::after{
	content: "";
	position: absolute;
	top: 0;
	width: 1.25px;
	height: 30px;
	background: #4E495F;
	animation: pathmove 1.75s ease-in-out infinite;
	opacity:0;
}

@keyframes pathmove{
	0%{
		height:0;
		top:0;
		opacity: 0;
	}
	30%{
		height:30px;
		opacity: 1;
	}
	100%{
		height:0;
		top:50px;
		opacity: 0;
	}
}

/* home – company
---------------------------------------------*/
.company {
    padding-bottom: 96px;
    display: flex;
    position: relative;
    justify-content: space-between;
    background: url(/assets/img/pc_company_triangle.svg), linear-gradient(180deg, #F6F8F9 0%, #ffffff 55%, #ffffff 100%);
    background-repeat: no-repeat;
    background-position-x: 100%;
    background-position-y: 100%;
}
.company .eye {
    width: 35%;
    margin-top: 96px;
    margin-left: calc(128 / 1440 * 100vw);
}
.company .card {
    padding: 72px;
    margin-top: 240px;
    margin-right: 96px;
}
.company .card h2 {
    width: calc(432 / 1440 * 100vw);
    max-width: 432px;
}
.company .card p {
    width: calc(432 / 1440 * 100vw);
    max-width: 432px;
    margin-bottom: 40px;
}

/* home – services
---------------------------------------------*/
.services {
    display: flex;
    justify-content: space-between;
    background: url(/assets/img/pc_services_triangle.svg);
    background-repeat: no-repeat;
    padding-top: 96px;
    padding-bottom: 128px;
    padding-left: 96px;
    margin-bottom: 96px;
}
.services .services_img {
    margin-top: calc(180 / 1440 * 100vw);
    position: absolute;
    right: calc(128 / 1440 * 100vw);
    z-index: -1;
}
.services .services_img img {
    width: 100%;
}
.services .card {
    padding: 72px;
}
.services .card h1, .services .card .jp_h2 {
    width: calc(484 / 1440 * 100vw);
    max-width: 500px;
}
.services .card p {
    width: calc(484 / 1440 * 100vw);
    max-width: 500px;
    margin-bottom: 40px;
}

/* home – pick_up
---------------------------------------------*/
.pick_up {
    padding: 96px 96px 96px calc(128 / 1440 * 100vw);
    background: linear-gradient(180deg, #F7F9FA 0%, #FFFFFF 35.42%);
}
.pick_up .cards {
    display: flex;
    gap: calc(64 / 1440 * 100vw);
    justify-content: center;
    margin-top: 96px;
}
.pick_up .card {
    height: 732px;
}
.pick_up .card .cover img {
    width: calc(560 / 1440 * 100vw);
    max-width: 560px;
}
.pick_up .text_wrapper {
    width: calc(432 / 1440 * 100vw);
    max-width: 432px;
    margin: auto;
}
.pick_up .card .jp_Body {
    margin: 48px 0;
}
.pick_up .buttons {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* home – news
---------------------------------------------*/
.news {
    margin-left: calc(128 / 1440 * 100vw);
}
.news .card {
    display: inline-block;
    padding: 96px;
    background: #F7F9FA;
}
.news ul {
    width: calc(734 / 1440 * 100vw);
}
.news li a {
    text-decoration: none;
}
.news li {
    list-style: none;
}
.news li .date {
    margin: 16px 0 2px 0;
}
.news li .heading {
    transition-duration: .3s;
    transition-timing-function: ease;
}
.news li .heading:not(:last-child) {
    margin-bottom: 16px;
}
.news li:hover .heading {
    color: #5c5c5c;
    transition-duration: .3s;
    transition-timing-function: ease;
}
.news li:hover .date {
    color: #879fcc;
    transition-duration: .3s;
    transition-timing-function: ease;
}
.news li .heading::after {
    position: absolute;
    content: '';
    background: url(/assets/img/target_blank.svg) no-repeat;
    width: 16px;
    height: 16px;
    margin-top: 4px;
    margin-left: 8px;
}

/* services – kv
---------------------------------------------*/
.services_kv {
    padding-top: 72px;
    padding-bottom: calc(304 / 1440 * 100vw);
    position: relative;
}
.services_kv .copy {
    position: absolute;
    left: calc(128 / 1440 * 100vw);
    top: calc(312 / 1440 * 100vw);
}
.services_kv img {
    width: 100%;
}
.services_service {
    background: linear-gradient(#ffffff 0%, #F6F8F9 100%);
}
.services_service .heading {
    margin-left: calc(128 / 1440 * 100vw);
}
.services_service .card .cover img {
    width: calc(1112 / 1440 * 100vw);
    max-width: 1112px;
}
.services_service .cards {
    display: flex;
    gap: 64px;
    flex-direction: column;
    align-items: center;
    padding: 72px 0 96px 0;
}
.services_service .card {
    padding-bottom: 96px;
}
.services_service .text_wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.services_service .card .jp_Body {
    width: calc(904 / 1440 * 100vw);
    max-width: 904px;
    margin: 48px 0;
}
.services_service .buttons {
    display: flex;
    gap: 96px;
}

/* company – kv
---------------------------------------------*/
.company_kv {
    padding-top: 72px;
    position: relative;
}
.company_kv .copy h1 {
    text-align: right;
}
.company_kv .copy {
    position: absolute;
    right: calc(128 / 1440 * 100vw);
    bottom: calc(96 / 1440 * 100vw);
}
.company_kv img {
    width: 100%;
}

/* company – company
---------------------------------------------*/
.company_company {    
    background: #F6F8F9;
}
.company_company .jp_h2 {
    width: 30vw;
}
.company_company .flex_wrapper {
    display: flex;
    padding: 96px 0;
    margin-right: calc(128 / 1440 * 100vw);
    justify-content: space-between;
    background: #ffffff;
}
.company_company .left {
    margin-left: calc(128 / 1440 * 100vw);
}
.company_company .left p {
    width: 30vw;
}
.company_company .right {
    margin-right: calc(96 / 1440 * 100vw);
}
.company_company .right img {
    margin-bottom: 32px;
}
.company_company .right p {
    width: calc(339 / 1440 * 100vw);
    min-width: 339px;
}

/* company – cases
---------------------------------------------*/
.cases {
    background: #F6F8F9;
}
.cases::before {
    content: url(/assets/img/cases_title.svg);   
}
.cases ul {
    display: flex;
    justify-content: flex-end;
    transform: translateY(-50%);
    gap: calc(16 / 1440 * 100vw);
    z-index: 111;
}
.cases ul .name {
    font-weight: 500;
    letter-spacing: 0;
    text-align: center;
    padding-bottom: 16px;
    width: calc(286 / 1440 * 100vw)
}
.cases ul p {
    font-weight: 400;
    width: calc(286 / 1440 * 100vw)
}
.cases .logo {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cases li {
    padding: calc(32 / 1440 * 100vw) calc(24 / 1440 * 100vw);
    background: #ffffff;
    list-style-type: none;
}

/* company – our mission
---------------------------------------------*/
.company_mission {
    display: flex;
    position: relative;
    background: url(/assets/img/pc_mission_triangle.svg);
    background-repeat: no-repeat;
    background-position-y: 100%;
    padding: calc(128 / 1440 * 100vw) 0;
}
.company_mission .copy h1 {
    margin-bottom: 88px;
}
.company_mission .left {
    margin-left: calc(128 / 1440 * 100vw);
    width: 40%;
}
.company_mission .right {
    display: block;
    width: 50%;
    margin-top: 64px;
    margin-right: 64px;
}
.company_mission .mission_text {
    background: #F6F8F9;
    padding: 64px;
}
.company_mission .mission_text p:not(:last-child) {
    padding-bottom: 16px;
}

/* company – company profile
---------------------------------------------*/
.company_profile {
    display: block;
    background: url(/assets/img/pc_profile_right_triangle.svg), #F6F8F9;
    background-repeat: no-repeat;
    background-position-x: 100%;
    padding: calc(128 / 1440 * 100vw) 0;
}
.company_profile .card {
    background: #ffffff;
    padding: 96px 64px;
    margin: 0 96px 0 10vw;
}
.company_profile .outer {
    background: #F6F8F9;
    margin: 64px 0 0 calc(96 / 1440 * 100vw);
    padding: 16px;
}
.company_profile .outer th {
    min-width: 96px;
}
.company_profile .outer {
    border-spacing: 32px;
}    
.company_profile .outer th {
    font-weight: 500;
    text-align: left;
}
.company_profile .inner th {
    font-weight: 400;
    text-align: right;
}
.company_profile .inner td {
    padding-left: 1.333rem;
}

/* privacy policy
---------------------------------------------*/
.privacy_policy .info_wrapper {
    padding: 64px 80px;
    background: #F6F8F9;
}
.privacy_policy .heading {
    text-align: center;
    padding-top: 144px;
}
.privacy_policy .info_wrapper {
    margin: calc(128 / 1440 * 100vw);
}
.privacy_policy .title_wrapper {
    margin-bottom: 48px;
}
.privacy_policy .title {
    margin-bottom: 8px;
}
.privacy_policy .sub_title {
    padding-top: 2px;    
}
.privacy_policy ol {
    padding: 0 0 16px 24px;
}
.privacy_policy ul {
    padding: 0 0 2px 16px;
    list-style-type: disc;
}
.privacy_policy .first_paragraph {
    padding-top: 16px;
}
.privacy_policy ol li, .privacy_policy ul li {
    margin-bottom: 8px;
    padding-left: 4px;
}
.privacy_policy .inquiry {
    padding: 8px 0;
}

/* mobile
---------------------------------------------*/
@media only screen and (max-width: 767px) {
    /* mobile: utility 
    ---------------------------------------------*/
    *:focus {
        outline: none;
    }
    .pc { display: none !important; }
    .sp { display: block !important; }

    .en_h1 {
        font-size: 1.777rem;
        margin-bottom: 4px;
    }
    .en_h4 {
        font-size: 0.875rem;
    }
    .en_Body {
        font-size: 0.75rem;
    }
    .en_Caption {
        font-size: 0.6875rem;
    }
    .jp_h1 {
        font-weight: 500;
        font-size: calc(21.33 / 376 * 100vw);
    }
    .jp_h2 {
        font-size: 1.333rem;
        line-height: 1.7;
        letter-spacing: 0.1em;
        margin-bottom: calc(24 / 376 * 100vw);
    }
    .jp_h3 {
        font-weight: 600;
        font-size: 1rem;
        line-height: 1.7;
        letter-spacing: 0.05em;
    }
    .jp_h3_responsive {
        font-size: calc(14 / 376 * 100vw);
    }
    .jp_h4 {
        font-size: 0.75rem;
        line-height: 1;
        letter-spacing: 0.03em;
        margin-top: calc(4 / 376 * 100vw);
        margin-bottom: calc(24 / 376 * 100vw);
    }
    .jp_Body {
        font-size: 0.875rem;
    }
    .jp_Caption {
        font-size: 0.75rem;
    }
    .jp_Button {
        font-size: 0.875rem;
    }
    .privacy_policy p,
    .privacy_policy ol li, 
    .privacy_policy ul li,
    .privacy_policy .targeting a, 
    .privacy_policy .inquiry a {
        font-size: 0.875rem;
    }

    /* mobile: utility - color
    ---------------------------------------------*/
    .footer_nav li a:hover,
    .news li .heading:hover {
        color: #1F1F1F;
    }
    .company .card .button_wrapper:hover,
    .services .card .button_wrapper:hover,
    .pick_up .card .button_wrapper:hover,
    .services_service .card .button_wrapper:hover,
    .contact .button_wrapper:hover .button p {
        background: #1F1F1F;
    }

    /* mobile: utility - button
    ---------------------------------------------*/
    .company .card .button_wrapper, 
    .services .card .button_wrapper,
    .pick_up .card .button_wrapper,
    .services_service .card .button_wrapper {
        width: calc(280 / 376 * 100vw);
    }
    .contact .button_wrapper {
        width: calc(312 / 376 * 100vw);
    }
    .company .card .button p, 
    .services .card .button p,
    .pick_up .card .button p,
    .services_service .card .button p,
    .contact .button p {
        padding: 12px 0;
    }

    /* mobile: header 
    ---------------------------------------------*/
    header {
        height: auto;
    }
    header .logo {
        margin: 24px 0 16px calc(32 / 376 * 100vw);
    }
    nav ul {
        display: flex;
        justify-content: space-between;
        flex-direction: column;
        margin-right: 0;
    }
    nav li:not(:last-child) {
        margin-left: 0;
    }

    /* mobile: nav panel 
    ---------------------------------------------*/
    #g-nav{
        position:fixed;
        z-index: 999;
        top:0;
        right: -100%;
        width:30%;
        height: 100vh;
        background: rgba(246,248,249,.95);
        transition: all 0.6s;
    }
    #g-nav.panelactive{
        right: 0;
    }

    @media only screen and (max-width: 768px) {
        #g-nav,
        #g-nav.panelactive #g-nav-list{
            width:100%;
        }
    }
    #g-nav ul {
        position: absolute;
        z-index: 999;
        top:50%;
        left:50%;
        transform: translate(-50%,-50%);
    }
    #g-nav li{
        list-style: none;
        text-align: center;
    }
    #g-nav li a{
        padding:16px 0;
        display: block;
        transition: all .5s;
    }

    /* mobile: hamburger menu 
    ---------------------------------------------*/
    .openbtn{
        position:fixed;
        z-index: 9999;
        top:10px;
        right: 10px;
        cursor: pointer;
        width: 50px;
        height:50px;
    }
    .openbtn span{
        display: inline-block;
        transition: all .4s;
        position: absolute;
        left: 14px;
        height: 1.5px;
        border-radius: 2px;
        background-color: #1F1F1F;
        width: 45%;
    }
    .openbtn span:nth-of-type(1) {
        top:15px;	
    }
    .openbtn span:nth-of-type(2) {
        top:23px;
    }
    .openbtn span:nth-of-type(3) {
        top:31px;
    }
    .openbtn.active span:nth-of-type(1) {
        top: 18px;
        left: 18px;
        transform: translateY(6px) rotate(-45deg);
        width: 30%;
    }
    .openbtn.active span:nth-of-type(2) {
        opacity: 0;
    }
    .openbtn.active span:nth-of-type(3){
        top: 30px;
        left: 18px;
        transform: translateY(-6px) rotate(45deg);
        width: 30%;
    }

    /* mobile: utility – contact
    ---------------------------------------------*/
    .contact {
        flex-direction: column;
        margin-right: 0;
    }
    .contact .contact_wrapper {
        padding: calc(64 / 376 * 100vw) calc(32 / 376 * 100vw);
    }
    .contact .jp_h4 {
        padding-bottom: 16px;
    }
    .contact .footer_nav {
        order: 2;
        margin-top: 48px;
        margin-left: 0;
    }
    .footer_nav ul {
        padding: 32px 0 0 0;
        margin-left: calc(32 / 376 * 100vw);
    }
    .footer_nav li {
        padding-top: 10px;
    }
    .footer_nav .logo {
        margin-top: 16px;
        margin-left: calc(32 / 376 * 100vw);
    }

    /* mobile: utility – footer
    ---------------------------------------------*/
    footer {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        padding: 16px 0;
        margin: 0 calc(32 / 376 * 100vw);
        gap: 8px;
    }
    footer .copyright {
        order: 2;
        padding-bottom: 32px;
        text-align: center;
    }
    footer .link_privacy_policy {
        order: 1;
        padding-bottom: 48px;
    }

    /* mobile: home – kv
    ---------------------------------------------*/
    .kv {
        background: url(/assets/img/sp/sp_kv.png);
        background-position: right bottom;
        background-repeat: no-repeat;
    }
    .kv_contents .copy h1 {
        text-align: center;
        position: relative;
        top: calc(96 / 376 * 100vw);
        left: 0;
    }
    .kv_contents .copy h3 {
        text-align: center;
        position: relative;
        top: calc(112 / 376 * 100vw);
        left: 0;
    }

    /* mobile: home – company
    ---------------------------------------------*/
    .company {
        padding-bottom: 40px;
        display: flex;
        flex-direction: column;
        background: url(/assets/img/sp/sp_company_triangle.svg), linear-gradient(180deg, #F6F8F9 0%, #ffffff 100%);
        background-repeat: no-repeat;
        background-position-y: 100%;
    }
    .company .eye {
        margin-top: 40px;
        margin-left: 0;
    }
    .company .card {
        padding: 40px 32px;
        margin-top: -32px;
        margin-right: 0;
        margin-left: 32px;
    }
    .company .card .jp_h2 {
        width: calc(280 / 376 * 100vw);
    }
    .company .card p, .services .card p {
        width: calc(280 / 376 * 100vw);
        margin-bottom: 32px;
    }

    /* mobile: home – services
    ---------------------------------------------*/
    .services {
        display: flex;
        flex-direction: column;
        padding-top: 40px;
        background: url(/assets/img/sp/sp_services_triangle.svg);
        background-repeat: no-repeat;
        background-position-x: 100%;
        margin-bottom: 0;
        padding-bottom: 0;
        padding-left: 0;
    }
    .services .services_img img {
        width: 100%;
        margin-top: -194px;
    }
    .services .services_img {
        position: relative;
        z-index: -1;
        right: 0;
    }
    .services .card {
        padding: 40px 32px;
        margin-left: 0;
        margin-right: 32px;
    }
    .services .card h1, .services .card .jp_h2 {
        width: calc(280 / 376 * 100vw);
    }

    /* mobile: home – pick up
    ---------------------------------------------*/
    .pick_up {
        padding: 64px calc(32 / 376 * 100vw) 64px 0;
    }
    .pick_up .heading {
        padding-left: calc(32 / 376 * 100vw);
    }
    .pick_up .cards {
        flex-direction: column;
        gap: 40px;
        margin-top: 40px;
    }
    .pick_up .card {
        height: auto;
        padding-bottom: 40px;
    }
    .pick_up .card .cover img {
        width: calc(344 / 376 * 100vw);
        max-width: auto;
    }
    .pick_up .text_wrapper {
        width: calc(280 / 376 * 100vw);
        max-width: auto;
    }
    .pick_up .card .jp_Body {
        margin: 24px 0;
    }

    /* mobile: home – news
    ---------------------------------------------*/
    .news {
        margin-left: 0;
    }
    .news .card {
        padding: 64px 32px;
    }
    .news ul {
        width: auto;
    }
    .news li .heading {
        display: flex;
        align-items: center;
    }
    .news li .heading::after {
        content: none;
    }

    /* mobile: services – kv
    ---------------------------------------------*/
    .services_service .heading {
        padding-bottom: calc(32 / 376 * 100vw);
    }
    .services_kv {
        padding-top: 64px;
        padding-bottom: calc(64 / 376 * 100vw);
    }
    .services_kv .copy {
        left: calc(32 / 376 * 100vw);
        top: calc(176 / 376 * 100vw);
    }
    .services_service {
        background: none;
        padding-top: calc(32 / 376 * 100vw);
        background: linear-gradient(#ffffff 0%,  #F6F8F9 30%, #F6F8F9 100%);
    }
    .services_card {
        margin-left: 0;
        padding: 0;
        background: none;
    }
    .services_service .heading {
        margin: 0 calc(32 / 376 * 100vw);
    }
    .services_service .card .cover img {
        width: calc(344 / 376 * 100vw);
        max-width: auto;
    }
    .services_service .cards {
        gap: 40px;
        align-items: flex-start;
        padding: 0 0 64px 0;
    }
    .services_service .card {
        padding-bottom: 40px;
    }
    .services_service .card .jp_Body {
        width: calc(280 / 376 * 100vw);
        max-width: auto;
        margin: 24px 0;
    }
    .services_service .buttons {
        flex-direction: column;
        gap: 16px;
    }

    /* mobile: company – kv
    ---------------------------------------------*/
    .company_kv {
        padding-top: 64px;
    }

    /* mobile: company – company
    ---------------------------------------------*/
    .company_company {    
        background: #F6F8F9;
    }
    .company_company .jp_h2 {
        width: calc(312 / 376 * 100vw);
    }
    .company_company .flex_wrapper {
        display: flex;
        flex-direction: column;
        padding: calc(48 / 376 * 100vw) 0;
        margin-right: 0;
        justify-content: space-between;
        background: #ffffff;
    }
    .company_company .left {
        margin-left: calc(32 / 376 * 100vw);
        margin-bottom: calc(32 / 376 * 100vw);
    }
    .company_company .left p {
        width: calc(312 / 376 * 100vw);
    }
    .company_company .right {
        margin-right: 0;
    }
    .company_company .right img {
        margin: calc(24 / 376 * 100vw) auto calc(24 / 376 * 100vw) auto;
    }
    .company_company .right p {
        margin: auto;
        width: calc(312 / 376 * 100vw);
        min-width: 312px;
    }

    /* mobile: company – cases
    ---------------------------------------------*/
    .cases {
        background: linear-gradient(90deg, #ffffff 0%, #ffffff 0%, #F6F8F9 0%, #F6F8F9 100%);
        width: 100%;
        padding: 0;
        display: flex;
        flex-direction: column;
    }
    .cases::before {
        content: none;   
    }
    .cases .title {
        width: auto;
        padding: calc(48 / 376 * 100vw) calc(32 / 376 * 100vw) calc(16 / 376 * 100vw) calc(32 / 376 * 100vw);
    }
    .cases ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        margin: 0 0 calc(48 / 376 * 100vw) 0;
        transform: none;
    }
    .cases ul .name {
        width: calc(150 / 376 * 100vw);
    }
    .cases ul p {
        width: calc(150 / 376 * 100vw);
    }
    .cases .logo {
        margin-bottom: 8px;
    }
    .cases li {
        padding: calc(16 / 376 * 100vw) calc(12 / 376 * 100vw);
    }

    /* mobile: company – our mission
    ---------------------------------------------*/
    .company_mission {
        display: flex;
        flex-direction: column;
        position: relative;
        background: url(/assets/img/sp/sp_mission_triangle.svg);
        background-repeat: no-repeat;
        background-position-y: 100%;
        padding: 0;
    }
    .company_mission .copy h1 {
        margin-bottom: calc(32 / 376 * 100vw);
    }
    .company_mission .left {
        width: auto;
        margin: calc(48 / 376 * 100vw) calc(32 / 376 * 100vw);
    }
    .company_mission .left .copy {
        padding-top: 24px;
        padding-bottom: 8px;
    }
    .company_mission .eye {
        margin-left: calc(-32 / 376 * 100vw);
    }
    .company_mission .right {
        display: block;
        width: auto;
        margin: 0 0 calc(32 / 376 * 100vw) calc(32 / 376 * 100vw);
    }
    .company_mission .mission_text {
        padding: calc(32 / 376 * 100vw);
        margin-top: calc(-80 / 376 * 100vw);
    }

    /* mobile: company – company profile
    ---------------------------------------------*/
    .company_profile {
        display: block;
        background: url(/assets/img/sp/sp_profile_triangle.svg), linear-gradient(180deg, #F6F8F9 0%, #F6F8F9 100%, #ffffff 55%, #ffffff 100%);
        background-repeat: no-repeat;
        background-position-x: 100%;
        padding: calc(32 / 376 * 100vw) 0 calc(48 / 376 * 100vw) 0;
    }
    .company_profile .heading {
        margin-left: calc(32 / 376 * 100vw);
        margin-bottom: calc(32 / 376 * 100vw);
    }
    .company_profile .card {
        padding: calc(32 / 376 * 100vw) calc(32 / 376 * 100vw) calc(32 / 376 * 100vw) 0;
        margin: 0 calc(32 / 376 * 100vw) 0 0;
    }
    .company_profile .outer {
        padding: calc(16 / 376 * 100vw) calc(16 / 376 * 100vw) calc(16 / 376 * 100vw) calc(24 / 376 * 100vw);
        margin: 0;
    }
    .company_profile .outer th {
        min-width: 64px;
    }
    .company_profile .outer {
        border-spacing: 8px;
    }
    .company_profile .inner th {
        min-width: 80px;
    }

    /* mobile: privacy policy
    ---------------------------------------------*/
    .privacy_policy {
        word-break: break-all;
    }
    .privacy_policy .info_wrapper {
        padding: 24px 24px;
    }
    .privacy_policy .heading {
        padding-top: 112px;
        padding-bottom: 8px;
    }
    .privacy_policy .info_wrapper {
        margin: calc(24 / 376 * 100vw);
    }
    .privacy_policy .title_wrapper {
        margin-bottom: 24px;
    }
    .privacy_policy .title {
        margin-bottom: 4px;
    }
    .privacy_policy .sub_title {
        padding-top: 0;    
    }
    .privacy_policy ol {
        padding: 0 0 0 16px;
    }
    .privacy_policy ul {
        padding: 0 0 0 16px;
    }
    .privacy_policy .first_paragraph {
        padding-top: 8px;
    }
    .privacy_policy ol li, .privacy_policy ul li {
        padding-left: 2px;
    }

}