@charset "UTF-8";

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
	/* font-size: clamp(12px, calc(100vw / 1400 * 15), 18px); */
	font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt";
    letter-spacing: 0.12em;
}



/*------配置------*/
.left {float: left;}
.right {float: right;}
/*
.clear {clear: both;}
*/
.textLeft {text-align: left;}
.textRight {text-align: right;}
.textCenter {text-align: center;}
.hidden {display: none;}

/*------テキスト------*/
.bold {font-weight: bold;}
.normal {font-weight: normal;}

.relative{
	position: relative;
}

.wrapper {
	width: 80%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

.width100{
	width: 100%;
}

/* ========================
共通
==========================*/

a{
    transition : all 0.5s ease 0s;
}

a:hover{
	opacity: 0.8!important;
}

.sp{
    display: none;
}

.section_container {
    width: 100%;
    overflow: hidden;
}

.slick-slider {
  overflow: visible;
}

.slick-list {
  overflow: hidden;
}

p {
	font-size: var(--fontSize-18px);
}

.section_op{
	margin-top: 120px;
}

.footer-bottom {
  display: flex;
  justify-content: center;
  gap: 16px; 
}

.footer-bottom p{
	font-size: var(--fontSize-12px);
	color: #666;
}


/* ===================================
サブページ　ファーストビュー
=====================================*/
.subpage_FV {
    padding: 15% 0 11%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.subpage_h1 {
    font-size: clamp(42px,3vw,54px);
    color: #fff;
    font-weight: 600;
}

.subpage_h1 span {
    display: block;
    font-size: var(--fontSize-25px);
    margin-top: 1%;
}


/* ========================
メインの右向きコンテンツ（mcはMainContainerの略）
==========================*/

.mc_right {
	margin-right: calc(50% - 50vw);	
	position: relative;
    display: flex;
    gap: 2vw;
    overflow: hidden;
}

.title_flex {
    display: flex;
    gap: 2vw;
}

.mc_right_title h2{
    font-size: var(--fontSize-28px);
    font-weight: bold;
    position: relative;
}

.mc_right_title h2 span {
    text-orientation: upright;
}

.mc_right_title {
	display: flex;
}

.mc_right_title img {
    width: 15px;
    display: block;
    margin: 10px auto 10px;
}

.mc_right_title p,.mc_right_title h2 {
    writing-mode: vertical-rl;
    font-feature-settings: initial;
    font-weight: 600;
    letter-spacing: 0.05em;
}

.mc_right_title p {
    color: var(--primary-blue);
    font-family: "Outfit", sans-serif;
    font-size: var(--fontSize-14px);
    font-weight: 600;
    letter-spacing: 0.2em;
    line-height: 2;
    margin-top: 35px;
}

.mc_right_band {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    height: calc(100vh / 1.8);
    position: relative;
}


.mc_right_txt {
    background-color: #fff;
    border-radius: 0 500px 0 0;
    width: auto;
    padding: 1.5% 5% 1.5% 2%;
    position: absolute;
    bottom: -1px;
    left: -1px;
}

.mc_right_txt_gray{
	background-color: var(--background-blue);
}

.mc_right_txt p {
    font-size: var(--fontSize-22px);
    line-height: 2;
    width: 100%;
}

.mc_left_txt_blue p,
.mc_right_txt_blue p {
    color: var(--primary-blue);
    font-size: var(--fontSize-24px);
    font-weight: 600;
}

.mc_left_txt_gray_blue,
.mc_right_txt_gray_blue {
	background-color: var(--background-blue)!important;
    color: var(--primary-blue);
    font-weight: 600;
}



/* ========================
メインの左向きコンテンツ（mcはMainContainerの略）
==========================*/

.mc_left {
	margin-left: calc(50% - 50vw);
    display: flex;
    flex-direction: row-reverse;
    gap: 2vw;
}

.mc_left_title h2{
    font-size: var(--fontSize-28px);
    font-weight: 600;
}

.mc_left_title h2 span {
    text-orientation: upright;
}

.mc_left_title {
	display: flex;
}

.mc_left_title img {
    width: 15px;
    display: block;
    margin: 10px auto 10px;
}

.mc_left_title p,.mc_left_title h2 {
    writing-mode: vertical-rl;
    font-feature-settings: initial;
}

.mc_left_title p {
    color: var(--primary-blue);
    font-family: "Outfit", sans-serif;
    font-size: var(--fontSize-14px);
    font-weight: 600;
    margin-top: 35px;
}

.mc_left_band {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    height: calc(100vh / 1.8);
    position: relative;
	text-align: right;
}

.mc_left_band_top{
    background-image: url(../images/top_img01.webp);
}

.mc_left_txt {
    background-color: #fff;
    border-radius: 500px 0 0 0;
    width: auto;
    padding: 1.5% 2% 1.5% 7%;
    position: absolute;
    bottom: -1px;
    right: -1px;
	left: auto;
	text-align: right;
}

.mc_left_txt_gray{
	background-color: var(--background-blue);
}

.mc_left_txt p {
    font-size: var(--fontSize-24px);
    line-height: 1.7;
    width: 100%;
    text-align: start;
}





/* ========================
サブのヘコミコンテンツ（dcはDentContainerの略）
==========================*/

.dc_img {
    position: relative;
}

.dc_img img{
	border-radius: 20px;
}

.dc_title {
    position: absolute;
	font-size: var(--fontSize-25px);
    font-weight: 600;
    display: flex;
	z-index: 5;
	background-color: #fff;
	padding: 3%;
	padding-right: 3%;
	border-bottom-right-radius: 20px;
    letter-spacing: 0.05em;
    margin-top: -1px;
    margin-left: -1px;
}

.dc_title::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background-color: var(--primary-blue);
    border-radius: 50px;
    transform: translateY(11px);
    margin-right: 15px;
}

.dc_title_gray{
	background-color: var(--background-blue);
}


/* ========================
ボタンブロック
==========================*/

.btn_Box {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 10%;
}

.blue_btn a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 20px 50px;
    min-width: 250px;
    max-width: 100%;
    background-color: var(--primary-blue);
    border-radius: 100px;
    color: #fff;
    text-align: center;
    text-decoration: none;
    flex-shrink: 0;
    white-space: nowrap;
}

.blue_btn a::after {
    content: '';
    width: 6px;
    height: 6px;
    border-right: solid 2px #fff;
    border-top: solid 2px #fff;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 34px;
	transition : all 0.3s ease 0s;
}

.blue_btn a:hover::after {
    right: 30px;
}



/* ========================
次ページ遷移ボタン
==========================*/
.nextPage_btn {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 25px;
}

.bus_btn {
    background-image: url(../images/top_AS_img03.webp);
}

.truck_btn {
    background-image: url(../images/top_AS_img04.webp);
}

.nextPage_btn a {
    padding: 3.5% 5%;
    background-color: rgba(19, 69, 92,0.5);
    border-radius: 25px;
    display: flex;
    gap: 50px;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.nextPage_btn_title {
    font-size: var(--fontSize-24px);
    color: #fff;
    font-weight: 600;
}

.nextPage_btn_txt {
    width: 50%;
    color: #fff;
    line-height: 2;
}

.nextPage_btn_arrow {
    width: 60px;
}

.nextPage_btn a:hover {
    background-color: rgba(19, 69, 92,0.8);
    opacity: 1!important;
}


/* ========================
header
==========================*/
header {
    position: fixed;
    width: 90%;
    background-color: #fff;
    display: flex;	
    margin-right: 8%;
    border-radius: 0 0 250px 0;
    padding: 15px 2.6% 15px;
    align-items: center;
    justify-content: space-between;
    z-index: 100;
}

header p {
    width: 13.3vw;
}

header nav {
    flex: 1;
}

header nav ul {
    display: flex;
    /* gap: 35px; */
    justify-content: flex-end;
    align-items: center;
}

header nav ul li {
    margin-right: calc(100vw / 60);
	font-size: clamp(8px, calc(100vw / 1400 * 14), 18px);
	white-space: nowrap;
}

.inquiryBtn {
    margin-right: 20px;
}

.inquiryBtn a {
    display: inline-block;
    color: #fff;
    background-color: var(--primary-blue);
    padding: 8px 20px;
    border-radius: 50px;
}

.lgBtn {
    display: flex;
    gap: 10px;
}

.jp a,.en_en a {
    display: block;
    color: #fff;
    background-color: var(--primary-blue);
    width: min(3.5vw,45px);
    height: min(3.5vw,45px);
    border: solid 1px var(--primary-blue);
    border-radius: 50px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

.en a,.jp_en a {
    display: block;
    color: var(--primary-blue);
    width: min(3.5vw,45px);
    height: min(3.5vw,45px);
    border: solid 1px var(--primary-blue);
    border-radius: 50px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}


/* ===================================
footer
=====================================*/
footer {
    width: 100%;
    border-top: solid 1px var(--primary-blue);
    margin-bottom: 40px;
}

.footer_flex {
    display: flex;
    justify-content: center;
    margin: 65px auto 50px;
    gap: 90px;
}

.footer_logo {
    width: 230px;
}

.footer_wrapper {
    max-width: 1120px;
    margin: 0 auto;
}

.footer_menu {
    display: flex;
    gap: 40px;
}

.footer_btn {
    margin-top: 0;
    height: fit-content;
}
footer li {
    font-size: var(--fontSize-16px);
    line-height: 2.3;
}

small {
    max-width: 1120px;
    font-size: var(--fontSize-12px);
    margin: 0 auto;
}



/* ===================================
パンくずリスト
=====================================*/


.breadcrumb {
  margin-top: 30px;
}

.breadcrumb_list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
}

.breadcrumb_item {
	position: relative;
	font-size: var(--fontSize-18px);
	line-height: 1.6;
	color: #0f78b9;
	letter-spacing: 0.04em;
}

.breadcrumb_item:not(:last-child) {
	padding-right: 18px;
}

.breadcrumb_item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 4px;
	width: 6px;
	height: 6px;
	border-top: 1.5px solid #9ca3af;
	border-right: 1.5px solid #9ca3af;
	transform: translateY(-50%) rotate(45deg);
}

.breadcrumb_item a {
	color: #6b7280;
	text-decoration: none;
	transition: color 0.25s ease, opacity 0.25s ease;
}

.breadcrumb_item a:hover {
	color: #0f78b9;
	opacity: 1;
}

.breadcrumb_item[aria-current="page"] {
	color: #0f78b9;
	font-weight: 600;
}


/* ===================================
タイトルアニメーション
=====================================*/
.title_anim {
    clip-path: inset(0 0 100% 0);
    transition: 1.5s cubic-bezier(0.37, 0, 0.63, 1);
}

.title_anim.animated {
    clip-path: inset(0);
}

/* ===================================
fade in
=====================================*/
.fadeIn {
    opacity: 0;
    visibility: hidden;
    transition: all 1.2s;
    transform: translateY(30px);
}

.fadeIn.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* ===================================
その他
=====================================*/

.clear:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

.clear {
	display: inline-table;
}

* html .clear {
	height: 1%;
}

.clear {
	display: block;
}

img {
	width: 100%;
	height: auto;
}

.inner{
	width: 900px;
	margin: 0 auto;
	background: #FFF;
}

hr {
	clear:both;
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #CCC;
	margin: 2em 0;
}

.mb10{ margin-bottom:10px; }
.mb20{ margin-bottom:20px; }
.mb30{ margin-bottom:30px; }
.mb40{ margin-bottom:40px; }
.mb50{ margin-bottom:50px!important; }
.mb60{ margin-bottom:60px!important; }
.mb70{ margin-bottom:70px; }
.mb80{ margin-bottom:80px; }
.mb90{ margin-bottom:90px; }
.mb100{ margin-bottom:100px; }
.mb110{ margin-bottom: 110px;}
.mb120{ margin-bottom:120px; }

.mt10{ margin-top:10px; }
.mt20{ margin-top:20px; }
.mt30{ margin-top:30px; }
.mt40{ margin-top:40px; }
.mt50{ margin-top:50px; }
.mt60{ margin-top:60px; }
.mt70{ margin-top:70px; }
.mt80{ margin-top:80px; }
.mt90{ margin-top:90px; }
.mt100{ margin-top:100px; }
.mt110{ margin-top:110px; }
.mt120{ margin-top:120px; }
.mt130{ margin-top:130px; }

:root {
	--primary-blue:#0f78b9;
	--background-blue:#f0f4f7;
	/* PC font size */
	--fontSize-12px:clamp(10px, 0.6vw, 12px);
	--fontSize-14px:clamp(12px, 0.7vw, 14px);
	--fontSize-16px:clamp(14px, 0.8vw, 16px);
	--fontSize-18px:clamp(16px,0.9vw,18px);
	--fontSize-20px:clamp(14px, calc(100vw / 1400 * 16), 20px);
    --fontSize-22px:clamp(16px, 1.15vw, 22px);
	--fontSize-24px:clamp(20px, 1.25vw, 24px);
	--fontSize-25px:clamp(23px,1.3vw,25px);
	--fontSize-27px:clamp(24px, 1.4vw, 27px);
	--fontSize-28px:clamp(24px, 1.4vw, 28px);
	--fontSize-36px:clamp(28px, 1.5vw, 36px);
}



@media screen and (max-width:999px) {

/* ========================
    共通SP
==========================*/
	
html, body {
	overflow-x: hidden;
}
	
    .sp {
        display: block;
    }

    .pc {
        display: none;
    }

    .section_container {
        width: 100%;
        overflow: hidden;
    }

	.wrapper {
		width: 92%;
		max-width: 640px;
	}
	
	p {
	font-size: 16px;
}
	

/* ===================================
サブページ　ファーストビュー SP
=====================================*/
.subpage_FV {
    padding: 35% 0 20% 5%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
.subpage_h1 {
    font-size: clamp(20px,5vw,36px);
}

.subpage_h1 span {
    display: block;
    font-size: clamp(8px,calc(100vw / 30),25px);
    margin-top: 1%;
}


/* ========================
メインの右向きコンテンツ（mcはMainContainerの略）SP
==========================*/

.mc_right {
    flex-direction: column;
	position: relative;
}

.mc_right_title div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.title_flex {
    flex-direction: column;
}

.mc_right_title h2{
    font-size: var(--fontSize-28px);
    font-weight: bold;
    position: relative;
	text-align: left;
	width: 100%;
}

.mc_right_title {
	display: block;
}

.mc_right_title img {
    margin: 14px auto 0;
}

.mc_right_title p,.mc_right_title h2 {
    writing-mode: inherit;
    line-height: 1.7;
}

.mc_right_title p {
    color: var(--primary-blue);
    font-family: "Outfit", sans-serif;
    font-size: var(--fontSize-14px);
    font-weight: bold;
    margin: 0 0 0 25px;
}

.mc_right_band {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    height: 50vh;
    position: relative;
}

.mc_right_band_top{
    background-image: url(../images/top_img01.webp);
}

.mc_right_band_topAS{
    background-image: url(../images/top_AS_img01.webp);
}

.mc_right_txt {
    background-color: #fff;
    border-radius: 0 500px 0 0;
	width: 100%;
	max-width: 640px;
    padding: 6% 4% 3%;
    position: absolute;
    bottom: -1px;
    left: -1px;
}

.mc_right_txt_gray{
	background-color: var(--background-blue);
}

.mc_right_txt p {
    font-size: var(--fontSize-16px);
    line-height: 1.7;
    width: 90%;
}
	
	
	
/* ========================
メインの左向きコンテンツ（mcはMainContainerの略）SP
==========================*/

.mc_left {
	margin-left: calc(50% - 50vw);
    flex-direction: column;
}

.mc_left_title div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.mc_left_title h2{
    font-size: var(--fontSize-28px);
    font-weight: 600;
    position: relative;
	text-align: left;
	width: 100%;
}

.mc_left_title {
	display: block;
	/* position: relative;
	left: auto;
	top: auto; */
	margin-left: 35px;
	margin-bottom: 10px;
	right:auto;
	padding-left: calc(50vw - 50%);
}

.mc_left_title img {
    margin: 14px auto 0;
}

.mc_left_title p,.mc_left_title h2 {
    writing-mode: inherit;
}

.mc_left_title p {
    color: var(--primary-blue);
    font-family: "Outfit", sans-serif;
    font-size: var(--fontSize-14px);
    font-weight: bold;
    margin: 0 0 0 25px;
}

.mc_left_band {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    height: 50vh;
    position: relative;
}

.mc_left_band_top{
    background-image: url(../images/top_img01.webp);
}

.mc_left_band_topAS{
    background-image: url(../images/top_AS_img01.webp);
}

.mc_left_txt {
    background-color: #fff;
    border-radius: 500px 0 0 0;
    width: 95%;
	max-width: 640px;
    padding: 3% 4%;
    position: absolute;
    bottom: -1px;
    right: -1px;
}

.mc_left_txt_gray{
	background-color: var(--background-blue);
}

.mc_left_txt p {
    font-size: var(--fontSize-16px);
    line-height: 1.7;
    width: 100%;
	padding-left: 10%;
}	
	


/* ========================
サブのヘコミコンテンツ（dcはDentContainerの略）SP
==========================*/

.dc_img {
    position: relative;
}

.dc_img img{
	border-radius: 20px;
}

.dc_title {
    position: absolute;
	fontSize-20px:clamp(12px, calc(100vw / 640 * 16), 18px);
    font-weight: 600;
    display: flex;
	z-index: 5;
	background-color: #fff;
	padding: 3%;
	padding-right: 10%;
	border-bottom-right-radius: 20px;
}

.dc_title::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background-color: var(--primary-blue);
    border-radius: 50px;
    transform: translateY(50%);
    margin-right: 20px;
}

.dc_title_gray{
	background-color: var(--background-blue);
}
	
	
	
/* ========================
ボタンブロック SP
==========================*/

.btn_Box {
    display: block;
	justify-content: center;
	align-items: center;
	gap: 10%;
	flex-wrap: wrap;
}

.blue_btn {
    display: flex;
    justify-content: center;
}

.blue_btn a {
    padding: 20px 10%;
    background-color: var(--primary-blue);
    border-radius: 100px;
    color: #fff;
    display: flex;
    justify-content: center;
    position: relative;
	min-width: 350px;
	margin-bottom: 20px;
	font-size: var(--fontSizeSP-16px);
	width: 80%;
}

.blue_btn a::after {
    content: '';
    display: block;
    width: 6px;
    height: 6px;
    border-right: solid 2px #fff;
    border-top: solid 2px #fff;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 10%;
}
	
/* ========================
次ページ遷移ボタン SP
==========================*/
	
    .nextPage_btn a {
        padding: 20px 5%;
        background-color: rgba(19, 69, 92,0.5);
        border-radius: 25px;
        display: flex;
        flex-direction: column;
        gap: 20px;
        justify-content: center;
        align-items: center;
        position: relative;
    }

    .nextPage_btn_title {
        font-size: var(--fontSize-24px);
        color: #fff;
        font-weight: 600;
    }

    .nextPage_btn_txt {
        width: 100%;
        color: #fff;
    }


    .bus_btn {
        background-image: url(../images/top_AS_img03.webp);
    }

    .truck_btn {
        background-image: url(../images/top_AS_img04.webp);
    }

 
    
    /* ========================
    header SP
    ==========================*/
    header {
        position: fixed;
        width: 100%;
        display: flex;
        margin-right: 0;
        border-radius: 0 0 0 0;
        padding: 10px 2.6% 10px;
        align-items: center;
        justify-content: space-between;
        z-index: 100;
    }

    header p {
        width: clamp(150px,33.3vw,160px);
    }



	
	
	
/* ===================================
    footer SP
=====================================*/

    footer {
        width: 100%;
        border-top: solid 1px var(--primary-blue);
        margin-bottom: 40px;
    }
    .footer_flex {
        display: block;
        margin: 65px auto 30px;
    }

    .footer_logo {
        width: 230px;
        margin: 0 auto;
    }

    .footer_wrapper {
        max-width: 1120px;
        margin: 0 auto;
    }

    .footer_menu {
        display: flex;
        flex-direction: column;
        gap: 0;
        justify-content: center;
        align-items: center;
    }

    .footer_btn {
        height: fit-content;
        width: 90%;
		max-width: 360px;
        margin: 0 auto;
		text-align: center!important;
		display: block!important;
    }
	
    footer li {
        font-size: var(--fontSizeSP-14px);
        line-height: 2.3;
    }

    small {
        display: block;
        width: 90%;
        font-size: var(--fontSize-12px);
        margin: 0 auto;
        text-align: center;
    }
	
	footer .inquiryBtn {
		margin-right: auto;
	}
	

/* ===================================
タイトルアニメーション
=====================================*/
.title_anim {
    clip-path: inset(0 100% 0 0);
    transition: 1.4s cubic-bezier(0.37, 0, 0.63, 1);
}

.title_anim.animated {
    clip-path: inset(0);
}
	
/* ===================================
    その他
=====================================*/
	
.mb10{ margin-bottom:10px; }
.mb20{ margin-bottom:10px; }
.mb30{ margin-bottom:20px; }
.mb40{ margin-bottom:25px; }
.mb50{ margin-bottom:30px; }
.mb60{ margin-bottom:35px; }
.mb70{ margin-bottom:40px; }
.mb80{ margin-bottom:45px; }
.mb90{ margin-bottom:50px; }
.mb100{ margin-bottom:60px; }
.mb120{ margin-bottom:80px; }

.mt10{ margin-top:10px; }
.mt20{ margin-top:10px; }
.mt30{ margin-top:20px; }
.mt40{ margin-top:25px; }
.mt50{ margin-top:30px; }
.mt60{ margin-top:35px; }
.mt70{ margin-top:40px; }
.mt80{ margin-top:45px; }
.mt90{ margin-top:50px; }
.mt100{ margin-top:60px; }
.mt100{ margin-top:70px; }
.mt120{ margin-top:80px; }
.mt130{ margin-top:90px; }
	
	
:root {
	--primary-blue:#0f78b9;
	--background-blue:#f0f4f7;
	/* SP font size */
	--fontSize-12px:14px;
	--fontSize-14px:14px;
	--fontSize-16px:16px;
	--fontSize-18px:16px;
	--fontSize-20px:18px;
    --fontSize-22px:18px;
	--fontSize-24px:20px;
	--fontSize-25px:20px;
	--fontSize-27px:21px;
	--fontSize-28px:24px;
	--fontSize-36px:27px;
}
	
}
