/* CSS変数 */
:root {
    --color-blue: #1100FF;
    --color-red: #FF0000;
    --color-yellow: #FFDD00;
    --color-white: #ffffff;
    --color-black: #333333;
}
/*============
common
=============*/
html {
    scroll-behavior: smooth;
}
* {
    box-sizing: border-box;
}
body {
    font-family: 'Noto Sans JP', sans-serif;
    line-height: 1.6;
    color: var(--color-black);
    margin: 0;
    padding: 0;
}
a{
    display: block;
	color: inherit;
	text-decoration: none;
}
img{
    display: block;
    width: 100%;
    max-height: 100%;
}
section{
    padding: min(100px, 10vw) 0;
}
.section__title{
    font-size: min(80px,5vw);
    font-weight: 700;
}
.inner{
    margin: 0 auto;
    width: 90%;
    max-width: 1200px;
}
.inline_block{
    display: inline-block;
}
.t-section__title{
    background: var(--color-blue);
    padding: 0.3em 0.6em;
    width: 54%;
    font-size: min(48px,4.8vw);
    font-weight: 700;
    color: #fff;
}
.t-section__lead{
    margin-top: -1em;
    box-shadow: -10px 10px 15px var(--color-yellow);
    width: 52%;
    padding: 0.3em 0.6em;
    background: var(--color-blue);
    font-size: min(40px,3.6vw);
    color: #fff;
}
.tel-mb0 .tel__box:first-child{
    margin-bottom: 0;
}

/*============
header
=============*/
.header{
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    margin-top: 20px;
    height: 90px;
    z-index: 100;
}
.header::after{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #001182;
    opacity: 0.6;
    z-index: -1;
}
.header__inner{
    margin: 0 auto;
    width: 90%;
    max-width: 1920px;
    height: 100%;
}
.header__content{
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: 5%;
    height: 100%;
}
.header__logo-main{
    max-width: 240px;
    max-height: 100%;
}
.header__nav ul{
    display: flex;
    align-items: center;
    column-gap: 40px;
}
.header__nav-menu a{
    text-align: center;
    text-shadow: 0 10px 10px var(--color-black);
    color: #ffffff;
    font-size: min(3vw,40px);
    font-weight: 700;
    word-break: keep-all;
    transition: .3s;
}
.header__nav-menu a:hover{
    opacity: 0.7;
}
.header__nav-menu a img{
    vertical-align: text-bottom;
}
/* .header-sub .header__content{
    justify-content: flex-start;
    column-gap: 0;
} */
.header__logo-wrapper{
    display: flex;
    align-items: center;
}
/*============
drawer
=============*/
.header__drawer{
    display: none;
}
/*============
top-mv
=============*/
.top-mv{
    position: relative;
    padding: min(150px,10vw) 0 min(100px,6vw);
    /* background: url(../images/top/mv.jpg) no-repeat center center / cover; */
    max-height: 100vh;
    overflow: hidden;
}
.top-mv__video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}
.top-mv__textarea{
    margin-bottom: 3%;
}
.top-mv__textarea .top-mv__title{
    margin: 0 auto;
    max-width: 600px;
    width: 34%;
}
.top-mv__text-wrapper{
    display: flex;
    justify-content: center;
    column-gap: 10px;
    margin: 0 auto;
    width: 50%;
    max-width: 1200px;
}
.top-mv__linkarea{
    display: flex;
    column-gap: 15%;
    margin: 0 auto;
    width: 90%;
    max-width: 1500px;
}
.top-mv__link{
    width: calc(50% - 15% * 1 / 2);
}
.top-mv__link-image{
    margin: 0 auto;
    width: 60%;
    aspect-ratio: 504/209;
}
.top-mv__link-btn{
    position: relative;
}
.top-mv__link-btn::after{
    position: absolute;
    content: "";
    top: 0;
    width: 100%;
    height: 100%;
}
.top-mv__link-btn::before{
    position: absolute;
    content: "";
}
.top-mv__link-btn.unso::after{
    left: 0;
    background: rgb(0 0 255 / 0.6);
}
.top-mv__link-btn.unso::before{
    right: -26%;
    width: 26%;
    height: 100%;
    background: rgb(0 0 255 / 0.6);
    clip-path: polygon(100% 0, 0 0, 0 100%);
}
.top-mv__link-btn.kanko::after{
    left: 0;
    background: rgb(255 0 0 / 0.6);
}
.top-mv__link-btn.kanko::before{
    left: -25.9%;
    width: 26%;
    height: 100%;
    background: rgb(255 0 0 / 0.6);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.top-mv__link-btn a{
    position: relative;
    z-index: 1;
    transition: .3s;
}
.top-mv__link-btn a:hover{
    opacity: 0.7;
}
.top-mv__link-btn.unso a{
    padding: 5% 5% 5% 10%;
}
.top-mv__link-btn.kanko a{
    padding: 5% 10% 5% 5%;
}
.top-mv__link-btn a p{
    line-height: 1;
    font-size: min(56px,3.8vw);
    color: #fff;
}
/*============
top-mv animation
=============*/
.top-mv__link {
    transform: translateX(-100vw);
    transition: all 0.8s ease-out;
}

.top-mv__link.link02 {
    transform: translateX(100vw);
}

.top-mv__link.link01.animate {
    transform: translateX(0);
}

.top-mv__link.link02.animate {
    transform: translateX(0);
}

.top-mv__link-image {
    transform: translateX(100vw);
    transition: all 0.7s ease-out;
    opacity: 0;
}

.top-mv__link-image.animate {
    transform: translateX(0);
    opacity: 1;
}
/*============
sdgs
=============*/
.sdgs{
    background: url(../images/top/sdgs_bg.jpg) no-repeat center / cover;
}
.sdgs__title{
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 40px;
    width: 80%;
}
.sdgs__title img{
    width: 40%;
}
.sdgs__textarea{
    margin: 0 auto 70px;
    width: 60%;
}
.sdgs__icon-wrapper{
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 620px;
}
.sdgs__icon{
    width: 30%;
}
/*============
map
=============*/
.map__title{
    margin-left: auto;
    margin-bottom: 30px;
    width: 24%;
    max-width: 290px;
}
.map__body{
    position: relative;
    margin-bottom: 20px;
    width: 100%;
    aspect-ratio: 16/6;
}
.map__body::after{
    position: absolute;
    content: "";
    bottom: 10%;
    right: 5%;
    width: 25%;
    aspect-ratio: 714/318;
    background: url(../images/top/track_bus.png)no-repeat center / contain;
}
.map__body iframe{
    width: 100%;
    height: 100%;
}
.map__add-text{
    line-height: 1.4;
    font-size: min(3vw,36px);
    font-weight: 700;
}
/*============
tel
=============*/
.tel{
    padding-top: 0;
    padding-bottom: 0;
}
.tel__title{
    margin-bottom: 0.2em;
    padding: 0 0.5em;
    text-align: center;
    text-shadow: 0 8px 8px #40B9FF;
}
.tel__content{
    padding: min(60px,3vw);
    background: var(--color-yellow);
}
.tel__wrapper{
    margin: 0 auto;
    width: 90%;
}
.tel__box{
    display: flex;
    column-gap: 30px;
    align-items: center;
    text-decoration: none;
    color: inherit;
}
.tel__box:first-child{
    margin-bottom: 60px;
}
.tel__box-image{
    width: 50%;
}
.tel__box-textarea{
    width: calc(100% - 3% + 2em);
    flex-shrink: 0;
}
.tel__box-number-wrapper{
    display: flex;
    align-items: center;
    column-gap: 3%;
    line-height: 1.2;
    letter-spacing: 0.05em;
    font-size: min(3.5vw,50px);
    font-weight: 700;
}
.tel__box-icon{
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: solid 5px var(--color-black);
    width: 2em;
    aspect-ratio: 1/1;
    flex-shrink: 0;
}
.tel__box-icon img{
    width: 60%;
}
/*--------------transportation--------------*/

/*============
header-unso
=============*/
.header__logo-unso{
    width: 230px;
}
.header-unso__track-image{
    margin-left: auto;
    width: 180px;
}
/*============
mv-unso
=============*/
.unso-mv{
    padding: 0;
    overflow: hidden;
    max-height: 94vh;
}
.unso-mv img{
    object-fit: cover;
}
/*============
service
=============*/
.service{
    position: relative;
    margin-top: -88px;
    padding-top: 0;
}
.service__lead{
    margin-left: auto;
}
.service__item{
    display: flex;
    column-gap: 3%;
    align-items: center;
}
.service__item.item01{
    margin-bottom: 60px;
}
.service__item.item02{
    flex-direction: row-reverse;
}
.service__item-imagearea,
.service__textarea{
    width: calc(50% - 3% * 1 / 2);
}
.service__item-imagearea{
    aspect-ratio: 335/200;
}
.service__textarea .icon{
    margin: 0 auto;
    width: 20%;
}
.service__textarea .icon.icon02{
    width: 14%;
}
.service__item-title{
    text-align: center;
    font-size: min(40px,6vw);
    font-weight: 700;
}
.service01__title-image{
    margin: 0 auto;
    width: 66%;
}
.service__textarea p{
    text-align: center;
    font-size: min(30px,2.4vw);
}
.service__content{
    padding-top: 80px;
}
/*============
overview
=============*/
.overview{
    padding-top: 0;
}
.overview__title{
    position: relative;
    margin-left: auto;
    width: 56%;
    text-align: right;
}
.overview__lead{
    box-shadow: 10px 10px 15px var(--color-yellow);
    width: 50%;
}
.overview__content{
    padding-top: 80px;
}
.overview__text{
    margin-bottom: 30px;
    text-align: center;
    font-size: min(34px,2.8vw);
    font-weight: 700;
}
.overview__list-wrapper{
    margin: 0 auto;
    width: fit-content;
    font-size: min(34px,2.8vw);
}
.overview__list-item{
    display: flex;
}
.overview__list-item dt{
    min-width: 6em;
}
.overview__list{
    margin-bottom: 40px;
}
.overview__list02 .overview__list-item dt{
    min-width: 7em;
}
/*============
header-kanko
=============*/
.header__logo-kanko{
    width: 230px;
    filter: drop-shadow(0 5px 5px var(--color-black));
}
/*============
kanko-mv
=============*/
.kanko-mv{
    position: relative;
    max-height: 100vh;
    overflow: hidden;
    padding: 0;
}
.kanko-mv__text{
    position: absolute;
    top: calc(100px + 3vh);
    width: 60%;
}
/*============
h-kanko
=============*/
.h-kanko{
    padding: 60px 0 40px;
}
.h-kanko__top-text{
    margin: 0 auto 20px;
    width: 70%;
}
.h-kanko__bus{
    margin: 0 auto 20px;
    width: 25%;
    min-width: 100px;
}
.h-kanko__bottom-text{
    margin: 0 auto 30px;
    width: 80%;
}
.h-kanko__icon-wrapper{
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: 2%;
    row-gap: 3vw;
}
/*============
rental
=============*/
.rental{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 30px 0 0;
    aspect-ratio: 2560/1258;
    background: url(../images/sightseeing/rental_bg.jpg)no-repeat center center / contain;
}
.rental__title{
    width: 30%;
}
.rental__text{
    padding: 30px 0 10px;
    background: rgb(51 51 51 / 0.7);
}
.rental__text img{
    margin: 0 auto;
    width: 60%;
}
