/* 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;
    letter-spacing: 0.03em;
    color: var(--color-black);
    margin: 0;
    padding: 0;
}

a {
    display: block;
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    width: 100%;
    height: auto;
    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.webp) 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-bg_color{
    position: relative;
    background: rgb(0 0 255 / 0.6);
}
.top-mv__link-btn.unso .top-mv__link-bg_color{
    padding: 5% 5% 5% 10%;
}
.top-mv__link-bg_color::before{
    position: absolute;
    content: "";
    top: 0;
    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-bg_color.kanko{
    position: relative;
    background: rgb(255 0 0 / 0.6);
}
.top-mv__link-btn.kanko .top-mv__link-bg_color{
    padding: 5% 10% 5% 5%;
}
.top-mv__link-bg_color.kanko::before{
    position: absolute;
    content: "";
    top: 0;
    left: -26%;
    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 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.webp) 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%;
}

/*============
greeting
=============*/
.greeting__title{
    margin-bottom: 1em;
    text-shadow: 6px 6px 6px #54c9ff;
}
.greeting__items {
    display: flex;
    column-gap: 5%;
}
.greeting__image {
    width: 45%;
    flex-shrink: 0;
}
.greeting__textarea {
    width: 55%;
}
.greeting__textarea p{
    line-height: 1.6;
    font-size: min(2vw, 20px);
    font-weight: 700;
}
.greeting__textarea p.name{
    font-family: "Noto Serif JP", serif;
    letter-spacing: 0.05em;
    padding-top: 20px;
    text-align: right;
}
.greeting__textarea p:not(:last-child){
    margin-bottom: 20px;
}
/*============
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.webp)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 {
    margin-left: min(50px,7vw);
    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.webp)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%;
}

/*============
introduction
=============*/
.introduction {
    padding: 0;
}

.introduction__main {
    padding: 60px 0;
    position: relative;
    aspect-ratio: 2560/1604;
    background: url(../images/sightseeing/introduction_bg.webp)no-repeat center center / cover;
}

.introduction__title {
    margin-bottom: 0.1em;
    text-shadow: 0 10px 10px var(--color-black);
    text-align: center;
    color: #fff;
    font-size: min(70px, 4.8vw);
    font-weight: 700;
}

.introduction__head-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    column-gap: 2%;
    row-gap: 3vw;
    text-shadow: 0 10px 10px var(--color-black);
    font-size: min(50px, 3.5vw);
    color: #fff;
}

.introduction__slide {
    /* margin-left: auto;
    width: 80%; */
    padding: 80px 0;
}

.swiper {
    width: 100%;
    height: 100%;
}

.swiper-wrapper {
    transition-timing-function: linear !important;
}

.swiper-slide {
    text-align: center;
    font-size: 18px;
    background: #444;
    display: flex;
    justify-content: center;
    align-items: center;
}

.swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.interior {
    padding: 80px 0;
}

.interior__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    column-gap: 2%;
    row-gap: 30px
}

.interior__list li {
    width: calc(50% - 2% * 1 / 2);
}