@charset "utf-8";

/* フォント・ユーティリティクラス
============================================================================================================ */
.ff_en, #container .ff_en {
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    letter-spacing: .05em;
}

#container .ff_jp {
    font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
    font-weight: 500;
    letter-spacing: .05em;
}

#container .fwb { font-weight: 700; }
#container .fwm { font-weight: 500; }
#container .fwn { font-weight: 400; }
#container .fwel { font-weight: 200; }
#container .fwl { font-weight: 300; }

.fzl {
    font-size: 2rem;
    line-height: 2.1;
}

.fsi { font-style: italic; }

@media screen and (max-width: 767px) {
    .fzl {
        font-size: 1.5rem;
        line-height: 2;
    }
}

.logo_ls{
    font-size: 2rem;
    font-weight: 800;
}

.logo_ls a{
    text-decoration: none;
    color: #ffffff;
}

/* ヘルパークラス
============================================================================================================ */
img.of {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

img.of.bg {
    pointer-events: none;
    user-select: none;
    z-index: -1;
}

.target {
    display: block;
    position: relative;
    width: 1px;
    top: -80px;
}

.target.pt { top: -120px; }

@media screen and (max-width: 767px) {
    .target { top: -60px; }
    .target.pt { top: -90px; }
}

.w, .xw { position: relative; }

@media screen and (min-width: 768px), print {
    body.init a[href].hv_zoom > *, 
    body.init a[href] .hv_zoom > * {
        transition: transform 0.6s, opacity .3s;
    }
    
    a[href]:hover .hv_zoom.s > * {
        transform: scale(1.03);
    }
    
    a[href]:hover.hv_zoom > *, 
    a[href]:hover .hv_zoom > * {
        transform: scale(1.05);
    }

    .w {
        max-width: 1160px;
        margin: 0 auto;
        padding-left: 30px;
        padding-right: 30px;
    }

    .xw {
        max-width: 1360px;
        margin: 0 auto;
        padding-left: 30px;
        padding-right: 30px;
    }

    .mw { min-width: 1140px; }
}

/* クレジット表記
============================================================================================================ */
.credit-container {
    max-width: 600px;
    width: 100%;
    color: #fff;
}

.credit_message {
    text-align: right;
    font-size: 18px;
    font-family: 'Cormorant Garamond', 'Garamond', 'Baskerville', 'Georgia', serif;
    font-weight: 400;
    letter-spacing: 0.15em;
    color: #fff;
    position: absolute;
    right: 40px;
    animation: fadeInOut 8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    opacity: 0;
    z-index: 100;
}

@media screen and (min-width: 768px) {
    .credit_message {
        bottom: 70px;
    }
}

@media screen and (max-width: 767px) {
    .credit_message {
        bottom: 100px;
        right: 20px;
        font-size: 14px;
    }
}

@keyframes fadeInOut {
    0% {
        opacity: 0;
        transform: scale(0.98);
    }
    40% {
        opacity: 1;
        transform: scale(1);
    }
    60% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(0.98);
    }
}
    
/* ヘッダー
============================================================================================================ */
#header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
}

@media print {
    #header { position: absolute; }
}

@media screen and (min-width: 768px), print {
    #header {
        top: 0;
        right: 10px;
        left: 10px;
        display: flex;
        min-width: 1120px;
        height: 120px;
        padding-left: clamp(10px, calc((100vw - 1160px) * .1 + 10px), 40px);
        justify-content: space-between;
        align-items: center;
    }

    #header .logo {
        margin-top: 50px;
        transition: all .5s;
    }

    .head-min #header .logo { margin-top: 0; }

    #header .logo img {
        width: 100%;
        max-width: 160px;
        display: block;
        transition: all .5s;
    }

    .head-min #header .logo img { max-width: 80px; }

    #header .logo-text {
        margin: 0;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.2;
    }
    
    #header .logo-text a {
        color: #fff;
        text-decoration: none;
        transition: color .5s;
    }

    #header nav { position: relative; }

    #header nav .gnav, #header nav ul {
        display: flex;
        align-items: center;
    }

    #header nav a {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 60px;
        padding: 0 clamp(10px, calc((100vw - 1160px) * .05 + 10px), 15px);
        text-align: center;
        text-decoration: none;
        font-size: 1.6rem;
        line-height: 1.5;
        font-weight: 500;
        letter-spacing: .08em;
        color: #fff;
    }

    #header nav .mnav li + li a::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        height: 14px;
        border-left: 1px solid;
        margin-top: -7px;
        transition: none;
    }

    #header nav .mnav a > span {
        position: relative;
        padding: 3px 0;
    }

    #header nav .mnav a > span::after {
        content: "";
        position: absolute;
        right: 0;
        left: 0;
        bottom: 0;
        border-top: 2px solid;
        transform: translateY(3px);
        opacity: 0;
    }

    body.init #header nav .mnav a > span::after {
        transition: transform .2s ease-in-out, opacity .2s ease-in-out;
    }

    #header nav .gnav a:hover > span::after, 
    #header nav .gnav a.current > span::after {
        transform: translateY(0);
        opacity: 1;
    }

    #header nav .rnav {
        margin-left: clamp(90px, calc((100vw - 1160px) * .1 + 90px), 130px);
    }

    #header nav .rnav a {
        width: clamp(190px, calc((100vw - 1160px) * .1 + 190px), 240px);
        background-color: #005133;
        color: #fff !important;
    }

    #header nav .rnav a::before {
        content: "";
        position: absolute;
        top: 50%;
        right: 8.33%;
        width: 9px;
        height: 9px;
        border-top: 1px solid #fff;
        border-right: 1px solid #fff;
        transform-origin: 100% 0;
        transform: rotate(45deg);
    }

    #header nav .rnav a > span {
        position: relative;
        padding-left: 15px;
    }

    #header nav .rnav a > span::before {
        content: "";
        position: absolute;
        top: 50%;
        left: clamp(-22px, calc((100vw - 1160px) * -.05 - 15px), -15px);
        width: 19px;
        height: 21px;
        margin-top: -12px;
        background: url(../images/ico-reservation_w.svg) no-repeat;
    }

    body.init #header nav .rnav a::before {
        transition: transform .2s ease-in-out;
    }

    #header nav .rnav a:hover { background-color: #000; }

    #header nav .rnav a:hover::before {
        transform: translateX(3px) rotate(45deg);
    }

    #header nav .lang {
        position: absolute;
        top: calc(50% - 30px);
        right: clamp(190px, calc((100vw - 1160px) * .1 + 190px), 240px);
        padding-right: clamp(10px, calc((100vw - 1160px) * .1 + 10px), 30px);
    }

    #header nav .lang a { padding: 0 8px; }
    #header nav .lang a[href] { text-decoration: underline; }
    #header nav .lang a[href]:hover { text-decoration: none; }

    #header nav .lang li + li a::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        height: 16px;
        border-left: 1px solid;
        margin-top: -8px;
        transition: none;
        transform: rotate(10deg);
    }
}

@media screen and (min-width: 768px) {
    .init #header {
        transition: background .5s, height .5s;
    }

    .init #header nav a {
        transition: color .5s, background .2s ease-in-out;
    }

    .head-min #header {
        height: 80px;
        background-color: #fff;
        top: 0;
    }

    .head-min #header .logo-text a {
        color: #231815;
    }

    .head-min #header nav a {
        color: #282828;
    }
}

@media screen and (max-width: 767px) {
    #header { height: 60px; }

    /* 背景レイヤー：デフォルトは透明、.head-minで白背景 */
    #header::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        bottom: 0;
        background-color: transparent;
        border-bottom: 1px solid transparent;
        z-index: 2;
    }

    body.init #header::before {
        transition: background-color .5s, border-color .5s;
    }

    .head-min #header::before {
        background-color: #fff;
        border-bottom: 1px solid #eee;
    }

    #header .logo {
        position: relative;
        display: flex;
        z-index: 3;
    }

    #header .logo a {
        display: block;
        padding: 0 5vw;
    }

    #header .logo a img {
        height: auto;
        width: 100%;
        max-width: 50px;
        margin-top: 5px;
    }

    #header .logo-text {
        position: relative;
        z-index: 3;
        padding: 0 5vw;
    }

    #header .logo-text a {
        color: #fff;
        font-size: 1.6rem;
        font-weight: 600;
        text-decoration: none;
        transition: color .5s;
    }

    .head-min #header .logo-text a {
        color: #231815 !important;
    }

    /* nav_btn */
    #header .nav_btn {
        position: absolute;
        right: 0;
        top: 0;
        width: 60px;
        height: 60px;
        z-index: 15;
    }

    #header .nav_btn a {
        position: relative;
        display: block;
        height: 60px;
    }

    #header .nav_btn::before, 
    #header .nav_btn a::before, 
    #header .nav_btn a::after {
        content: "";
        position: absolute;
        left: 50%;
        top: 50%;
        width: 22px;
        margin-top: -1px;
        margin-left: -11px;
        border-top: 1px solid #fff;
        pointer-events: none;
    }

    body.init #header .nav_btn::before, 
    body.init #header .nav_btn a::before, 
    body.init #header .nav_btn a::after {
        transition: all 0.3s ease-in-out;
    }

    .head-min #header .nav_btn::before, 
    .head-min #header .nav_btn a::before, 
    .head-min #header .nav_btn a::after {
        border-color: #28283c;
    }

    #header .nav_btn a::before { transform: translateY(-9px); }
    #header .nav_btn a::after { transform: translateY(9px); }

    /* nav_btn open */
    #header.open .nav_btn::before { opacity: 0; }
    #header.open .nav_btn a::before { transform: translateY(0) rotate(45deg); }
    #header.open .nav_btn a::after { transform: translateY(0) rotate(-45deg); }

    /* nav */
    #header .gnav {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        max-height: 100vh;
        padding-top: 70px;
        background-color: #fff;
        overflow-y: scroll;
        -webkit-overflow-scrolling: touch;
        transform: translateY(-110%);
        -webkit-box-shadow: 0 0 8px rgba(0,0,0,.2);
        box-shadow: 0 0 8px rgba(0,0,0,.2);
        z-index: 1;
    }

    body.init #header .gnav {
        transition: transform 0.3s ease-in-out;
    }

    /* open */
    #header.open .gnav { transform: translateY(0%); }

    #header .mnav a {
        display: block;
        padding: 15px 0;
        text-align: center;
        color: #282828;
        font-size: 1.8rem;
        text-decoration: none;
    }

    #header nav .rnav { padding: 5vw; }

    #header nav .rnav a {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 60px;
        background-color: #FFF;
        color: #005133;
        border: 1px solid #005133;
        font-size: 1.8rem;
        text-decoration: none;
        box-sizing: border-box;
    }

    #header nav .rnav a::before {
        content: "";
        position: absolute;
        top: 50%;
        right: 8.33%;
        width: 9px;
        height: 9px;
        border-top: 1px solid #005133;
        border-right: 1px solid #005133;
        transform-origin: 100% 0;
        transform: rotate(45deg);
    }

    #header nav .rnav a > span {
        position: relative;
        padding-left: 15px;
    }

    #header nav .rnav a > span::before {
        content: "";
        position: absolute;
        top: 50%;
        left: -22px;
        width: 19px;
        height: 21px;
        margin-top: -12px;
        background: url(../images/ico-reservation.svg) no-repeat;
    }

    /* lang */
    #header nav .lang {
        position: absolute;
        top: 30px;
        right: 60px;
        display: flex;
        transform: translateY(-50%);
        font-weight: 500;
        z-index: 3;
    }

    #header nav .lang a {
        position: relative;
        display: block;
        padding: 3px 8px;
        font-size: 1.4rem;
        color: #c9c9c9;
    }

    #header nav .lang a[href] {
        text-decoration: underline;
        color: #141414;
    }

    #header nav .lang li + li a::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        height: 14px;
        border-left: 1px solid #141414;
        margin-top: -7px;
        transform: rotate(10deg);
    }
}

/* フッター
============================================================================================================ */
#footer {
    position: relative;
    padding: 144px 0 30px;
    text-align: center;
    color: #fff;
}

#footer .logo {
    width: 300px;
    margin-bottom: 180px;
    margin: 0 auto;
}

@media screen and (min-width: 768px), print {
    #footer {
        margin: 0 10px 10px;
    }

    #footer .logo img {
        width: 142px !important;
    }
}

@media screen and (max-width: 767px) {
    #footer {
        padding: 40px 0 20px;
    }

    #footer .logo {
        width: 240px;
        margin-top: 40px;
        margin-bottom: 60px;
    }
}

/* pagetop */
#pagetop {
    position: fixed;
    overflow: hidden;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 60px;
    padding-top: 28px;
    border: 2px solid #fff;
    background-color: rgba(0,0,0,.8);
    border-radius: 60px;
    color: #fff;
    text-align: center;
    font-size: 1.2rem;
    line-height: 1;
    text-decoration: none;
    pointer-events: none;
    opacity: 0;
    z-index: 98;
}

#pagetop::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 9px;
    height: 9px;
    margin-top: -14px;
    border-top: 1px solid #fff;
    border-left: 1px solid #fff;
    transform-origin: 0 0;
    transform: rotate(45deg);
}

.init #pagetop {
    transition: opacity 0.3s, background .2s, border .2s;
}

#pagetop.show {
    opacity: 1;
    pointer-events: auto;
}

@media print {
    #pagetop { display: none; }
}

@media screen and (min-width: 768px) {
    #pagetop:hover {
        background-color: #005133;
        border-color: #005133;
    }
}

@media screen and (max-width: 767px) {
    #pagetop {
        bottom: 20px;
        right: 20px;
        transform-origin: 100% 100%;
        transform: scale(.8);
    }
}

/* nav */
#footer nav {
    margin-bottom: 80px;
}

#footer nav a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 60px;
    padding: 0 15px;
    text-align: center;
    text-decoration: none;
    font-size: 1.6rem;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: .08em;
    color: #fff;
}

#footer .mnav {
    margin-bottom: 40px;
}

#footer .mnav ul {
    display: flex;
    justify-content: center;
}

#footer .mnav li + li a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    height: 14px;
    border-left: 1px solid;
    margin-top: -7px;
    transition: none;
}

#footer .rnav a {
    width: 240px;
    margin: 0 auto;
    background-color: #FFF;
}

#footer .rnav a:hover {
    background-color: #d3d3d3;
}

#footer .rnav a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 8.33%;
    width: 9px;
    height: 9px;
    border-top: 1px solid #005133;
    border-right: 1px solid #005133;
    transform-origin: 100% 0;
    transform: rotate(45deg);
}

#footer .rnav a > span {
    position: relative;
    padding-left: 15px;
    color: #005133;
}

#footer .rnav a > span::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -22px;
    width: 19px;
    height: 21px;
    margin-top: -12px;
    background: url(../images/ico-reservation.svg) no-repeat;
}

@media screen and (min-width: 768px), print {
    #footer .mnav {
        display: flex;
        justify-content: center;
    }

    #footer .mnav ul + ul li:first-child a::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        height: 14px;
        border-left: 1px solid;
        margin-top: -7px;
        transition: none;
    }

    #footer .mnav a > span {
        position: relative;
        padding: 3px 0;
    }

    #footer .mnav a > span::after {
        content: "";
        position: absolute;
        right: 0;
        left: 0;
        bottom: 0;
        border-top: 1px solid;
        transform: translateY(3px);
        opacity: 0;
    }

    body.init #footer .mnav a > span::after {
        transition: transform .2s ease-in-out, opacity .2s ease-in-out;
    }

    #footer .mnav a:hover > span::after, 
    #footer .mnav a.current > span::after {
        transform: translateY(0);
        opacity: 1;
    }

    body.init #footer .rnav a::before {
        transition: transform .2s ease-in-out;
    }

    #footer nav .rnav a:hover {
        background-color: #a5a5a5;
    }

    #footer .rnav a:hover::before {
        transform: translateX(3px) rotate(45deg);
    }
}

@media screen and (max-width: 767px) {
    #footer nav {
        margin-bottom: 45px;
    }

    #footer nav a {
        height: 30px;
        font-size: 1.4rem;
    }

    #footer .mnav li + li a::before {
        height: 12px;
        margin-top: -6px;
    }

    #footer .rnav a {
        width: 230px;
        height: 50px;
        padding: 0;
        font-size: 1.5rem;
    }

    #footer .rnav a::before {
        right: 5%;
    }

    #footer .rnav a > span {
        display: block;
        width: 100%;
        padding-left: 10px;
    }

    #footer .rnav a > span::before {
        left: 15px;
    }
}

/* small */
#footer small {
    display: block;
    font-size: 1.4rem;
    font-family: 'Poppins', sans-serif;
}

@media screen and (max-width: 767px) {
    #footer small {
        font-size: 1.1rem;
    }
}

#footer .logo img {
    text-align: center;
    width: 340px !important;
}

/* コンテナ
============================================================================================================ */
#container {
    position: relative;
    font-size: 1.6rem;
    line-height: 1.78;
}

@media screen and (min-width: 768px), print {
    #container {
        padding: 10px;
    }
}

@media screen and (max-width: 767px) {
    #container {
        padding-top: 0;
        font-size: 1.4rem;
    }
}

/* メインムービー
============================================================================================================ */
#mainMovie {
    position: relative;
    height: calc(100vh - 20px);
    min-height: 600px;
    background-color: #000;
    padding-top: 160px;
    z-index: 1;
}

#mainMovie .copy {
    text-align: right;
    color: #fff;
    font-size: 5rem;
    line-height: 1.4;
}

#mainMovie .movie {
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

#mainMovie .movie::after {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    opacity: 0.3;
}

#mainMovie .movie iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    min-height: 100%;
    min-width: 100%;
    max-width: none;
    height: 56.25vw;
    width: 230.77777778vh;
    transform: translate(-50%, -50%);
    opacity: 1;
}

#mainMovie .movie::after {
    content: "";
    opacity: 0;
}

#mainMovie .movie iframe {
    opacity: 1;
}

#mainMovie .scroll {
    position: absolute;
    bottom: 60px;
    left: 50%;
    width: 120px;
    margin-left: -60px;
    color: #fff;
    text-align: center;
    text-decoration: none;
    font-size: 1.4rem;
    z-index: 5;
}

#mainMovie .scroll span {
    overflow: hidden;
    display: block;
    position: relative;
    height: 40px;
    margin-top: 10px;
}

#mainMovie .scroll span::after {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    height: 100%;
    border-left: 1px solid #fff;
    margin-left: -1px;
    -webkit-animation: scroll 1.5s ease-in-out infinite;
    animation: scroll 1.5s ease-in-out infinite;
}

@keyframes scroll {
    0% { top: -102%; }
    25% { top: 0; }
    70% { top: 0; }
    100% { top: 130%; }
}

#mainMovie .mv_main_img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
}

#mainMovie .mv_main_img .img {
    position: relative;
    height: 100vh;
    width: 100%;
    object-fit: cover;
}

#mainMovie .mv_main_img .slick-dots {
    position: absolute;
    right: 0;
    left: 0;
    bottom: 102px;
    display: flex;
    justify-content: flex-end;
    z-index: 5;
}

#mainMovie .mv_main_img .slick-dots li button {
    position: relative;
    overflow: hidden;
    width: 32px;
    height: 0;
    margin: 0;
    padding: 32px 0 0;
    border: 0;
    background: none;
}

#mainMovie .mv_main_img .slick-dots li button::after {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 8px;
    right: 8px;
    background-color: #ffffff;
    border: 1px solid #ffffff;
    border-radius: 100%;
    transition: background .2s;
}

#mainMovie .mv_main_img .slick-dots li.slick-active button::after {
    background-color: #005133;
}

@media screen and (min-width: 768px), print {
    #mainMovie .mv_main_img .slick-dots {
        max-width: 1360px;
        margin: 0 auto;
        padding-left: 22px;
        padding-right: 22px;
    }

    #mainMovie .mv_main_img .slick-dots li button:hover::after {
        background-color: #005133;
    }
}

@media screen and (max-width: 767px) {
    #mainMovie {
        height: 112vw;
        min-height: 0;
        padding-top: 110px;
    }

    #mainMovie .copy {
        font-size: 2.5rem;
        line-height: 1.6;
    }

    #mainMovie .scroll {
        bottom: 30px;
        font-size: 1.1rem;
    }

    #mainMovie .scroll span {
        height: 20px;
        margin-top: 3px;
    }

    #mainMovie .mv_main_img {
        height: 100%;
    }

    #mainMovie .mv_main_img .img {
        height: 100%;
    }

    #mainMovie .mv_main_img .slick-dots {
        right: calc(5vw - 5px);
        bottom: 40px;
    }

    #mainMovie .mv_main_img .slick-dots li button {
        width: 20px;
        padding-top: 20px;
    }

    #mainMovie .mv_main_img .slick-dots li button::after {
        top: 5px;
        bottom: 5px;
        left: 5px;
        right: 5px;
    }
}

/* ページタイトル
============================================================================================================ */
.page_title {
    position: relative;
    top: -60px;
    margin-bottom: 20px;
    z-index: 3;
}

.page_title::after {
    content: "";
    display: block;
    width: 40px;
    margin: 30px auto 0;
    border-top: 1px solid #005133;
}

.page_title > * {
    background-color: #fff;
    text-align: center;
}

.page_title h1 {
    padding-top: 60px;
    margin-bottom: 20px;
    font-size: 5rem;
    line-height: 1.3;
    color: #005133;
}

.page_title p {
    font-size: 1.8rem;
    line-height: 1.3;
    letter-spacing: 0.08em;
    font-weight: 300;
    color: #005133;
}

@media screen and (min-width: 768px), print {
    .page_title::before {
        content: "";
        position: absolute;
        top: 20px;
        left: 50%;
        height: 40px;
        border-left: 1px solid #e5e5e5;
    }
}

@media screen and (max-width: 767px) {
    .page_title {
        top: -30px;
        margin-bottom: 0;
    }

    .page_title::after {
        width: 20px;
        margin-top: 20px;
    }

    .page_title h1 {
        padding-top: 30px;
        margin-bottom: 15px;
        font-size: 2.4rem;
    }

    .page_title h1 span {
        display: block;
    }

    .page_title p {
        font-size: 1.3rem;
    }
}

@media screen and (max-width: 1201px) and (min-width: 767px) {
    .page_title h1 {
        font-size: 4.6rem;
    }
}

/* リードテキスト
============================================================================================================ */
.lead_text {
    margin-bottom: 25px;
    font-size: 3.2rem;
    line-height: 1.5625;
}

.lead_text.bold {
    font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", Verdana, Arial, Helvetica, sans-serif;
    font-weight: 700 !important;
}

.concept_contents p.fzl {
    width: 560px;
    text-align: justify;
    margin-bottom: 100px;
}

.concept_contents p.fzl.end {
    margin-bottom: 0px;
    width: 100%;
    letter-spacing: 0.018em;
}

@media screen and (max-width: 767px) {
    .lead_text {
        margin-bottom: 15px;
        font-size: 2rem;
        line-height: 1.7;
        padding:0 5%;
    }

    .concept_contents p.fzl {
        width: 100%;
        text-align: inherit;
        margin-bottom: 12.5%;
        padding:0 5%;
    }

    .concept_contents p.fzl.end {
        margin-bottom: 0px;
        width: 100%;
        letter-spacing: 0.018em;
    }
}

/* メインブロック
============================================================================================================ */
.main_block {
    position: relative;
    margin-bottom: 200px;
    color: #fff;
}

.main_block::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    top: 500px;
    width: calc(50% + 400px);
    background-color: #005133;
    z-index: -1;
}

.main_block .ph_main {
    position: relative;
}

.main_block .text {
    position: relative;
    padding-top: 60px;
    padding-bottom: 80px;
}

@media screen and (min-width: 768px), print {
    .main_block .ph_main {
        height: 600px;
        margin-left: auto;
        width: calc(50% + 550px);
        max-width: calc(100% - 50px);
    }

    .main_block .text {
        max-width: 1200px;
        padding-left: 50px;
        padding-right: 50px;
    }

    .main_block .ph_s {
        max-width: 1300px;
    }

    .main_block .ph_s p {
        position: absolute;
        right: 10px;
        bottom: -60px;
    }

    [lang="en"] .main_block .text > * {
        width: 45%;
    }

    [lang="en"] .main_block .text .lead_text {
        width: 550px;
        font-family: 'Poppins', sans-serif;
    }
}

@media screen and (max-width: 767px) {
    .main_block {
        margin-bottom: 60px;
    }

    .main_block::before {
        top: 50px;
        bottom: 10px;
        width: 90vw;
    }

    .main_block .ph_main {
        height: 190px;
        margin-left: 5vw;
    }

    .main_block .text {
        padding-top: 30px;
        padding-bottom: 30px;
    }

    .main_block .text > * {
        margin-left: 5vw;
        margin-right: 10vw;
    }

    .main_block .ph_s {
        position: relative;
        padding-right: 5vw;
        z-index: 2;
    }

    .main_block .ph_s::before {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 75%;
        background-color: #fff;
        z-index: -1;
    }

    .main_block .ph_s p {
        width: 66.66vw;
        margin-left: auto;
    }
}

/* セクションタイトル
============================================================================================================ */
.section_title {
    position: absolute;
    top: 0;
    left: 30px;
    font-size: 6rem;
    line-height: 1;
    font-weight: 200 !important;
    font-style: italic;
    transform-origin: 0 100%;
    transform: rotate(90deg);
    z-index: 10;
}

.section_title::after {
    content: "";
    display: block;
    width: 40px;
    border-top: 1px solid;
    margin-top: 20px;
}

@media screen and (max-width: 767px) {
    .section_title {
        left: 8vw;
        font-size: 3rem;
        line-height: 1;
    }

    .section_title::after {
        width: 20px;
        margin-top: 10px;
    }
}


/* コンセプトセクション
============================================================================================================ */
.concept_section {
    position: relative;
    margin-bottom: 140px;
}

.concept_section > header {
    position: relative;
    height: 640px;
    color: #fff;
    z-index: 5;
}

.concept_section > header li {
    position: relative;
}

.concept_section > header li + li::before, 
.concept_section > header li + li::after {
    content: "";
    position: absolute;
    width: 1em;
    border-top: 1px solid;
    transform: rotate(45deg);
}

.concept_section > header li + li::after {
    transform: rotate(-45deg);
}

.concept_section .concept_main_img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 700px;
}

.concept_section .concept_main_img::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    mix-blend-mode: multiply;
    opacity: 0.2;
    z-index: 3;
}

.concept_section .concept_main_img .img {
    position: relative;
    height: 700px;
}

.concept_section .concept_main_img .img ul {
    position: relative;
    height: 100%;
}

.concept_section .concept_main_img .img ul li {
    position: absolute;
    width: 36%;
}

.concept_section .concept_main_img .img ul li:nth-child(1) {
    top: 0;
    left: 0;
    width: 64%;
    height: 100%;
}

.concept_section .concept_main_img .img ul li:nth-child(2) {
    top: 0;
    right: 0;
    height: calc(50% - 30px);
}

.concept_section .concept_main_img .img ul li:nth-child(3) {
    bottom: 0;
    right: 0;
    height: calc(50% + 30px);
}

.concept_section .concept_main_img .slick-dots {
    position: absolute;
    right: 0;
    left: 0;
    bottom: 72px;
    display: flex;
    justify-content: flex-end;
    z-index: 5;
}

.concept_section .concept_main_img .slick-dots li button {
    position: relative;
    overflow: hidden;
    width: 32px;
    height: 0;
    margin: 0;
    padding: 32px 0 0;
    border: 0;
    background: none;
}

.concept_section .concept_main_img .slick-dots li button::after {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 8px;
    right: 8px;
    background-color: #ffffff;
    border: 1px solid #ffffff;
    border-radius: 100%;
    transition: background .2s;
}

.concept_section .concept_main_img .slick-dots li.slick-active button::after {
    background-color: #005133;
}

@media screen and (min-width: 768px), print {
    .concept_section .section_title {
        top: 20px;
    }

    .concept_section > header {
        padding-top: 215px;
    }

    .concept_section > header ul {
        display: flex;
        justify-content: center;
        padding-left: 0 !important;
        padding-right: 0 !important;
        font-size: 3.8rem;
        line-height: 1.2;
        white-space: nowrap;
        width: 100%;
        text-align: center;
    }

    @media screen and (min-width: 1160px) {
        .concept_section > header ul {
            font-size: 4rem;
        }
    }

    .concept_section > header li + li {
        padding-left: 70px;
    }

    .concept_section > header li + li::before, 
    .concept_section > header li + li::after {
        top: 52%;
        left: 35px;
        margin-left: -0.5em;
    }

    .concept_section .concept_main_img .slick-dots {
        max-width: 1360px;
        margin: 0 auto;
        padding-left: 22px;
        padding-right: 22px;
    }

    .concept_section .concept_main_img .slick-dots li button:hover::after {
        background-color: #005133;
    }
}

@media screen and (max-width: 1201px) and (min-width: 767px) {
    .concept_section > header ul {
        font-size: 3.6rem;
    }
}

@media screen and (max-width: 767px) {
    .concept_section {
        margin-bottom: 60px;
    }

    .concept_section > header {
        height: 270px;
    }

    .concept_section > header ul {
        text-align: center;
        font-size: 2rem;
        line-height: 1.2;
        padding-top:15%;
        padding-left:80px;
        margin:0 auto;
    }

    .concept_section > header li + li {
        padding-top: 35px;
    }

    .concept_section > header li + li::before, 
    .concept_section > header li + li::after {
        top: 15px;
        left: 50%;
        margin-left: -0.5em;
    }

    .concept_section .concept_main_img {
        height: 300px;
    }

    .concept_section .concept_main_img .img {
        height: 300px;
    }

    .concept_section .concept_main_img .slick-dots {
        right: calc(5vw - 5px);
        bottom: 40px;
    }

    .concept_section .concept_main_img .slick-dots li button {
        width: 20px;
        padding-top: 20px;
    }

    .concept_section .concept_main_img .slick-dots li button::after {
        top: 5px;
        bottom: 5px;
        left: 5px;
        right: 5px;
    }
}

.concept_contents {
    position: relative;
    z-index: 6;
}

.concept_contents > * {
    position: relative;
    background: #fff;
    padding-top: 70px;
    z-index: 1;
}

.concept_contents .hokkaido {
    z-index: -1;
    pointer-events: none;
}

.concept_contents .contents {
    margin-top: 100px;
}

.concept_contents .contents dl {
    text-align: center;
}

.concept_contents .contents dt {
    position: relative;
    margin-bottom: 10px;
    font-size: 3.2rem;
    line-height: 1.4;
}

.concept_contents .contents dd {
    font-size: 1.8rem;
    line-height: 1.66;
}

.concept_contents .contents dd::after {
    content: "";
    display: block;
    width: 40px;
    margin: 25px auto 0;
    border-top: 1px solid;
}

@media screen and (min-width: 768px) {
    .concept_contents .w {
        padding-left: 0;
        padding-right: 0;
    }
}

@media screen and (min-width: 768px), print {
    .concept_contents .hokkaido {
        position: absolute;
        top: -15px;
        right: -58px;
        text-align: center;
        margin: 0 auto;
    }

    .concept_contents .contents {
        display: flex;
        justify-content: space-between;
    }

    .concept_contents .main_txt {
        width: 514px;
    }

    .concept_contents .contents li {
        max-width: 30%;
    }

    .concept_contents .contents dt {
        padding-top: 50px;
    }

    .concept_contents .contents dt .ico {
        position: absolute;
        right: 0;
        left: 0;
        top: -30px;
    }

    .concept_contents .contents dd > span {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    [lang="en"] .concept_contents p {
        width: 550px;
    }

    [lang="en"] .concept_contents .hokkaido, 
    [lang="en"] .concept_contents .contents p {
        width: auto;
    }

    [lang="en"] .concept_contents .hokkaido {
        top: 0;
    }
}

@media screen and (max-width: 767px) {
    .concept_contents > * {
        padding-top: 35px;
    }

    .concept_contents .hokkaido {
        position: relative;
        overflow: hidden;
        margin: 0 auto; 
        text-align: center; 
        width: 380px;
        max-width: 100%;
    }

    .concept_contents .hokkaido img {
        max-width: none;
        width: 90%;
        max-width: 500px;
    }

    .concept_contents .contents {
        margin: 20px 0;
    }

    .concept_contents .contents li {
        display: flex;
        align-items: center;
    }

    .concept_contents .contents li + li {
        margin-top: 10px;
    }

    .concept_contents .contents li p {
        width: 45%;
    }

    .concept_contents .contents li p img {
        object-fit: cover;
        height: 230px;
    }

    .concept_contents .contents dl {
        width: 55%;
    }

    .concept_contents .contents dt {
        margin-bottom: 10px;
        font-size: 2rem;
    }

    .concept_contents .contents dt .ico {
        display: block;
        width: 45px;
        margin: 0 auto 10px;
    }

    .concept_contents .contents dd {
        padding: 0 10px;
        font-size: 1.3rem;
        line-height: 1.8;
    }

    .concept_contents .contents dd::after {
        width: 20px;
        margin-top: 15px;
    }
}

.concept_slider {
    overflow: hidden;
    position: relative;
    margin-top: 140px;
    padding: 120px 30px 150px;
    background-color: #ebedec;
}

.concept_slider .lead {
    margin-bottom: 70px;
    font-size: 3rem;
    line-height: 1.6;
    text-align: center;
}

.concept_slider .slide {
    position: relative;
    width: 200%;
}

.concept_slider .slide .img {
    transform-origin: 0 100%;
    transform: translateX(40px) scale(.5);
    opacity: 0.5;
}

.init .concept_slider .slide .img {
    transition: transform 0.6s ease, opacity 0.6s;
}

.concept_slider .slide .img.show {
    transform: translateX(0) scale(1);
    opacity: 1;
}

.concept_slider .slide .img.bl {
    transform: translateX(-40px) scale(1);
}

.concept_slider .nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-top: 30px;
}

.concept_slider .nav .count {
    display: flex;
    font-size: 3rem;
    line-height: 1;
}

.concept_slider .nav .count .total {
    position: relative;
    padding-left: 30px;
}

.concept_slider .nav .count .total::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 15px;
    border-left: 1px solid;
    transform: rotate(38deg);
}

.concept_slider .nav .arrow {
    position: relative;
    display: block;
    width: 30px;
    height: 30px;
    margin-left: 25px;
    border-radius: 100%;
    border: 1px solid #28324f;
}

.concept_slider .nav .arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    width: 9px;
    height: 9px;
    border-top: 1px solid;
    border-right: 1px solid;
    transform-origin: 100% 0;
    transform: rotate(45deg);
}

.concept_slider .nav .arrow.l {
    transform: rotate(180deg);
}

.concept_slider .slick-dots {
    display: flex;
    justify-content: flex-end;
}

.concept_slider .slick-dots li {
    margin-left: 3px;
}

.concept_slider .slick-dots li button {
    position: relative;
    overflow: hidden;
    width: 20px;
    height: 0;
    margin: 0;
    padding: 10px 0 0;
    border: 0;
    background: none;
}

.concept_slider .slick-dots li button::after {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 3px;
    left: 0;
    right: 0;
    background-color: #cccccc;
    transition: background .2s;
}

.concept_slider .slick-dots li.slick-active button::after {
    background-color: #282828;
}

@media screen and (min-width: 768px), print {
    .concept_slider .lead {
        margin-left: -30px;
        margin-right: -30px;
    }

    .concept_slider .slick-dots li button:hover::after {
        background-color: #282828;
    }

    .concept_slider .nav .arrow.l {
        display: none !important;
    }

    .concept_slider .dots {
        position: absolute;
        right: 30px;
        bottom: -50px;
    }
}

@media screen and (max-width: 1330px) and (min-width: 767px) {
    .concept_slider .lead {
        font-size: 2.8rem;
    }
}

@media screen and (max-width: 767px) {
    .concept_slider {
        margin-top: 60px;
        padding: 50px 8vw 55px;
    }

    .concept_slider .lead {
        margin-bottom: 30px;
        font-size: 1.8rem;
    }

    .concept_slider .slide .img {
        transform: translateX(10px) scale(.5);
    }

    .concept_slider .slide .img img {
        object-fit: cover;
        width: 100%;
        height: calc(84vw * (380 / 630));
    }

    .concept_slider .nav {
        margin-top: 20px;
        justify-content: space-between;
    }

    .concept_slider .nav .count {
        flex-shrink: 0;
        font-size: 2.25rem;
        margin-left: auto;
    }

    .concept_slider .nav .count .total {
        padding-left: 20px;
    }

    .concept_slider .nav .count .total::before {
        left: 10px;
    }

    .concept_slider .nav .arrow {
        flex-shrink: 0;
        width: 25px;
        height: 25px;
        margin-left: 15px;
    }

    .concept_slider .nav .arrow.l {
        margin-left: 0;
        margin-right: 15px;
    }

    .concept_slider .nav .arrow::before {
        right: 8px;
        width: 8px;
        height: 8px;
    }

    .concept_slider .dots {
        width: calc(100% - 80px - 90px);
    }

    .concept_slider .slick-dots li {
        margin-left: 0;
        width: 100%;
        padding: 0 1px;
    }

    .concept_slider .slick-dots li button {
        width: 100%;
    }
}

/* フィーチャーセクション
============================================================================================================ */
.features_section {
    position: relative;
    margin-bottom: 140px;
    color: #fff;
    z-index: 1;
}

.features_section::before {
    content: "";
    position: absolute;
    left: 0;
    top: 200px;
    bottom: 10px;
    width: 82%;
    max-width: calc(50% + 500px);
    background-color: #005133;
    z-index: -1;
}

.features_img_main {
    position: relative;
    width: calc(50% + 200px);
    height: 500px;
}

.features_contents {
    padding: 90px 0 100px;
}

.features_contents .lead {
    font-size: 5.4rem;
    line-height: 1.3;
}

.features_contents p + p {
    margin-top: 1.5em;
}

.features_img_column {
    position: relative;
    z-index: 2;
}

.features_img_column::before {
    content: "";
    position: absolute;
    right: -5px;
    left: -5px;
    bottom: 0;
    height: 50%;
    background-color: #fff;
    z-index: -1;
}

.features_img_column ul {
    display: flex;
    justify-content: space-between;
}

@media screen and (min-width: 768px), print {
    .features_section .section_title {
        top: 520px;
    }

    .features_contents {
        padding-left: 180px;
        padding-right: 450px;
        font-size: 1.8rem;
    }

    .features_img_sub li {
        position: absolute;
    }

    .features_img_sub .img01 {
        top: 10px;
        left: 71%;
        width: 280px;
    }

    .features_img_sub .img02 {
        top: 550px;
        right: 0;
        width: 33%;
        max-width: 510px;
    }

    .features_img_column ul {
        max-width: 1300px;
    }

    .features_img_column li {
        width: calc(50%);
    }

    [lang="en"] .features_contents {
        padding-right: 40%;
        font-size: 2rem;
    }

    .features_contents .main_txt02 {
        width: 623px;
    }
}

@media screen and (min-width: 1360px) {
    [lang="en"] .features_contents {
        padding-right: 520px;
    }
}

@media screen and (min-width: 1300px) {
    .features_img_sub .img02 {
        top: 590px;
    }
}

@media screen and (max-width: 767px) {
    .features_section {
        margin-bottom: 80px;
    }

    .features_section::before {
        top: 140px;
        bottom: 10px;
        width: 100%;
        max-width: 100%;
    }

    .features_section .section_title {
        top: 200px;
    }

    .features_img_main {
        width: 92vw;
        height: 190px;
    }

    .features_contents {
        padding: 45px 8vw 40px 25vw;
        font-size: 1.5rem;
    }

    .features_contents .lead {
        font-size: 3.0rem;
    }

    .features_contents p + p {
        margin-top: 1.2em;
    }

    .features_img_sub {
        display: flex;
    }

    .features_img_sub .img01 {
        width: calc(100% - 54.6%);
        padding: 0 8vw;
    }

    .features_img_sub .img02 {
        width: 54.6%;
        padding: 8vw 0;
    }

    .features_img_column {
        padding-right: 8vw;
    }

    .features_img_column::before {
        right: 0;
        left: 0;
        height: 50%;
    }
}

/* プランセクション
============================================================================================================ */
.plan_section {
    position: relative;
    overflow: hidden;
    padding: 140px 0;
    background-color: #005133;
}

.plan_section .section_title {
    color: #fff;
}

.plan_section .tab {
    position: relative;
    display: flex;
    z-index: 3;
    justify-content: space-between;
}

.plan_section .tab > li {
    width: calc((100% / 2) - 3px);
}

.plan_section .tab a {
    position: relative;
    display: flex;
    align-items: center;
    height: 80px;
    text-decoration: none;
    background-color: #999999;
    color: #fff;
    line-height: 1.4;
    justify-content: center;
}

.plan_section .tab a dt {
    margin-bottom: 10px;
    font-size: 3rem;
    line-height: 1.2;
}

.plan_section .tab a li {
    position: relative;
}

.plan_section .tab a li + li::before, 
.plan_section .tab a li + li::after {
    content: "";
    position: absolute;
    width: 1em;
    border-top: 1px solid;
    transform: rotate(45deg);
}

.plan_section .tab a li + li::after {
    transform: rotate(-45deg);
}

.plan_section .tab a::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    border-style: solid;
    border-width: 14px 9px 0 9px;
    border-color: #999999 transparent transparent transparent;
    transform: translate(-50%, -100%);
    pointer-events: none;
}

.init .plan_section .tab a::after {
    transition: transform 0.2s ease-in-out, border 0.2s ease-in-out;
}

.plan_section .tab a.active {
    background-color: #282828;
}

.plan_section .tab a.active::after {
    border-top-color: #282828;
    transform: translate(-50%, 0);
}

.plan_section .contents {
    position: relative;
    background-color: #fff;
    z-index: 2;
}

.plan_section .plan_contents {
    overflow: hidden;
    position: relative;
    line-height: calc(70/28);
    transition: height 0.5s ease;
    min-height: 800px;
}

.plan_section .plan_contents > section {
    position: absolute;
    top: 0;
    left: 0;
    padding: 70px 0 100px;
    width: 100%;
    opacity: 0;
    pointer-events: none;
}

.init .plan_section .plan_contents > section {
    transition: transform .5s, opacity .3s;
}

.plan_section .plan_contents.plan_b > section {
    transform: translateX(-100%);
}

.plan_section .plan_contents.plan_c > section {
    transform: translateX(-200%);
}

.plan_section .plan_contents > section + section {
    left: 100%;
}

.plan_section .plan_contents > section:nth-child(3) {
    left: 200%;
}

.plan_section .plan_contents > section:not(.hide) {
    opacity: 1;
    pointer-events: auto;
}

.plan_section .plan_contents > section.hide {
    position: absolute;
    top: 0;
}

.plan_section .plan_contents h3 {
    margin-bottom: 50px;
    padding-bottom: 8px;
    border-bottom: 1px solid #28283c;
    font-size: 4rem;
    line-height: 1.2;
}

.plan_section .plan_contents .type {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 40px;
    font-size: 2.4rem;
    line-height: 1.3;
}

.plan_section .plan_contents .type.xxx {
    font-size: 3.6rem;
    letter-spacing: 0.05em;
    margin-bottom: 0;
}

.plan_section .plan_contents .type li {
    position: relative;
    padding-right: 40px;
}

.plan_section .plan_contents .type li::before, 
.plan_section .plan_contents .type li::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 1em;
    margin-top: -1px;
    border-top: 2px solid;
    transform: scale(.8) rotate(45deg);
    margin-right: -0.5em;
}

.plan_section .plan_contents .type li::after {
    transform: scale(.8) rotate(-45deg);
}

.plan_section .plan_contents .type li:last-child {
    padding-right: 0;
}

.plan_section .plan_contents .type li:last-child:before, 
.plan_section .plan_contents .type li:last-child:after {
    content: none;
}

.plan_section .plan_contents p + p {
    margin-top: 1.2em;
}

.plan_section .plan_contents .ph_main {
    display: flex;
    justify-content: space-between;
    margin-top: 70px;
}

.plan_section .plan_contents .schedule {
    margin-top: 70px;
}

.plan_section .plan_contents .schedule + .schedule {
    margin-top: 100px;
}

.plan_section .plan_contents .schedule h4 {
    margin-bottom: 50px;
    font-size: 3.2rem;
    line-height: 1.4;
    white-space: nowrap;
}

.plan_section .plan_contents .schedule ol {
    position: relative;
}

.plan_section .plan_contents .schedule ol::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 30px;
    border-left: 1px solid #28283c;
}

.plan_section .plan_contents .schedule li {
    position: relative;
    margin-bottom: 50px;
    padding-left: 8%;
    z-index: 2;
}

.plan_section .plan_contents .schedule li:last-child {
    margin-bottom: 0;
}

.plan_section .plan_contents .schedule .clock {
    position: absolute;
    top: -5px;
    left: 10px;
    width: 40px;
    height: 40px;
    background-color: #005133;
    border-radius: 100%;
}

.plan_section .plan_contents .schedule .clock > span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    border-radius: 100%;
    background-color: #fff;
    transform: translate(-50%, -50%);
    z-index: 2;
}

.plan_section .plan_contents .schedule .clock::before, 
.plan_section .plan_contents .schedule .clock::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 50%;
    border-left: 2px solid #fff;
    margin-left: -1px;
    transform-origin: 50% 100%;
}

.plan_section .plan_contents .schedule .clock::before {
    height: 27.5%;
}

.plan_section .plan_contents .schedule .clock::after {
    height: 37.5%;
}

/* Clock angles for different times */
.plan_section .plan_contents .schedule .clock.hour0530::before {
    transform: rotate(125deg);
}

.plan_section .plan_contents .schedule .clock.hour0730::before {
    transform: rotate(225deg);
}

.plan_section .plan_contents .schedule .clock.hour0900::before {
    transform: rotate(270deg);
}

.plan_section .plan_contents .schedule .clock.hour0930::before {
    transform: rotate(285deg);
}

.plan_section .plan_contents .schedule .clock.hour1000::before {
    transform: rotate(300deg);
}

.plan_section .plan_contents .schedule .clock.hour1230::before {
    transform: rotate(15deg);
}

.plan_section .plan_contents .schedule .clock.hour1300::before {
    transform: rotate(30deg);
}

.plan_section .plan_contents .schedule .clock.hour1400::before {
    transform: rotate(60deg);
}

.plan_section .plan_contents .schedule .clock.hour1430::before {
    transform: rotate(75deg);
}

.plan_section .plan_contents .schedule .clock.hour1500::before {
    transform: rotate(90deg);
}

.plan_section .plan_contents .schedule .clock.hour1530::before {
    transform: rotate(105deg);
}

.plan_section .plan_contents .schedule .clock.hour1600::before {
    transform: rotate(120deg);
}

.plan_section .plan_contents .schedule .clock.hour1630::before {
    transform: rotate(135deg);
}

.plan_section .plan_contents .schedule .clock.hour1700::before {
    transform: rotate(150deg);
}

.plan_section .plan_contents .schedule .clock.hour1730::before {
    transform: rotate(165deg);
}

.plan_section .plan_contents .schedule .clock.hour1830::before {
    transform: rotate(195deg);
}

.plan_section .plan_contents .schedule .clock.hour1900::before {
    transform: rotate(210deg);
}

.plan_section .plan_contents .schedule .clock.hour2100::before {
    transform: rotate(270deg);
}

.plan_section .plan_contents .schedule .clock.hour2200::before {
    transform: rotate(300deg);
}

.plan_section .plan_contents .schedule .clock.time30::after {
    transform: rotate(180deg);
}

.plan_section .plan_contents .detail {
    margin-top: 90px;
}

.plan_section .plan_contents .detail h4 {
    margin-bottom: 30px;
    padding-bottom: 8px;
    border-bottom: 1px solid #28283c;
    font-size: 3.2rem;
    line-height: 1.4;
}

.plan_section .plan_contents .detail > dl {
    position: relative;
    margin-bottom: 25px;
    padding-bottom: 25px;
}

.plan_section .plan_contents .detail > dl::after {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    bottom: 0;
    height: 1px;
    background-image: linear-gradient(to right, #787885, #787885 2px, transparent 2px, transparent 7px);
    background-size: 7px 1px;
    background-repeat: repeat-x;
}

.plan_section .plan_contents .detail > dl:last-child {
    margin-bottom: 0;
}

.plan_section .plan_contents .detail > dl > dt::before {
    content: "【";
    margin-right: 0.5em;
}

.plan_section .plan_contents .detail > dl > dt::after {
    content: "】";
    margin-left: 0.5em;
}

.plan_section .plan_contents .detail dd .name {
    display: block;
    margin-bottom: 0.3em;
    font-size: 1.8rem;
}

.plan_section .plan_contents .detail dd .map {
    margin-top: 30px;
}

.plan_section .plan_contents .detail dd .map_link {
    margin-top: 15px;
    text-align: right;
}

.plan_section .plan_contents .detail dd .option + .option {
    margin-top: 2em;
}

.plan_section .plan_contents .detail dd .option dt {
    margin-bottom: 0.5em;
}

.plan_section .plan_contents .detail dd .option dd {
    font-size: 1.4rem;
}

.plan_section .plan_contents .detail dd .option ol {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.plan_section .plan_contents .detail dd strong {
    margin-right: 0.5em;
    font-size: 2rem;
    line-height: 1.2;
}

[lang="en"] .plan_section .plan_contents .detail dd strong {
    display: block;
}

.plan_section .plan_contents .detail dd .notes {
    font-size: 1.4rem;
}

.plan_section .plan_contents .detail dd .dot_li > li + li {
    margin-top: 0.8em;
}

.plan_section .plan_contents .detail dd .ast_txt {
    margin-top: 1.2em;
}

@media screen and (min-width: 768px), print {
    .plan_section {
        overflow: hidden;
    }

    .plan_section .section_title {
        top: -1.4em;
    }

    .plan_section .tab, .plan_section .contents {
        margin-left: 150px;
        max-width: 1000px;
    }

    .plan_section .tab a {
        padding-top: 5px;
        font-size: 1.5rem;
    }

    .plan_section .tab a ul {
        display: flex;
        white-space: nowrap;
    }

    .plan_section .tab a li + li {
        padding-left: 30px;
    }

    .plan_section .tab a li + li::before, 
    .plan_section .tab a li + li::after {
        top: 50%;
        left: 15px;
        margin-left: -0.5em;
    }

    .plan_section .contents::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        width: 2000px;
        background-color: #fff;
        z-index: -1;
    }

    .plan_section .plan_contents {
        font-size: 1.8rem;
        line-height: calc(40/18);
    }

    .plan_section .plan_contents > section {
        padding-left: 80px;
    }

    .plan_section .plan_contents .ph_main li {
        width: calc((100% - 24px) / 4);
        max-width: 220px;
    }

    .plan_section .plan_contents .schedule li {
        position: relative;
        padding-right: 250px;
        min-height: 140px;
    }

    .plan_section .plan_contents .schedule li.wide {
        padding-right: 0;
        min-height: 0;
    }

    .plan_section .plan_contents .schedule dl {
        display: flex;
    }

    .plan_section .plan_contents .schedule dt {
        width: 100px;
        flex-shrink: 0;
    }

    [lang="en"] .plan_section .plan_contents .schedule dd {
        font-size: 1.9rem;
        line-height: 1.6;
    }

    .plan_section .plan_contents .schedule li p {
        margin: 10px 0 0 100px;
        font-size: 1.6rem;
        line-height: 1.75;
    }

    [lang="ja"] .plan_section .plan_contents .schedule li p {
        text-align: justify;
    }

    .plan_section .plan_contents .schedule li .map {
        margin-top: 20px;
    }

    .plan_section .plan_contents .schedule li .ph {
        position: absolute;
        top: 0;
        right: 0;
        margin: 0;
    }

    .plan_section .plan_contents .detail {
        font-size: 1.6rem;
    }

    .plan_section .plan_contents .detail .icon {
        font-size: 1.4rem;
    }

    .plan_section .plan_contents .detail > dl {
        display: flex;
    }

    .plan_section .plan_contents .detail > dl > dt {
        width: calc(100px + 8%);
        padding-top: 0.2em;
        flex-shrink: 0;
        line-height: 1.3;
    }

    [lang="en"] .plan_section .plan_contents .detail > dl > dt::before {
        margin-left: -0.5em;
    }

    [lang="en"] .plan_section .plan_contents .detail > dl > dt::after {
        margin-right: -0.5em;
    }
}

@media screen and (min-width: 1200px) {
    .plan_section .tab a {
        font-size: 1.6rem;
    }
}

@media screen and (max-width: 767px) {
    .plan_section {
        margin-bottom: 60px;
        padding: 50px 0 60px 8vw;
    }

    .plan_section .section_title {
        position: static;
        margin-bottom: 30px;
        transform: none;
    }

    .plan_section .tab a {
        justify-content: center;
        height: 65px;
        text-align: center;
        font-size: 1.2rem;
        line-height: 1.4;
    }

    .plan_section .tab a dt {
        margin-bottom: 0;
        font-size: 1.5rem;
    }

    .plan_section .tab a li + li {
        padding-top: 6px;
    }

    .plan_section .tab a li + li::before, 
    .plan_section .tab a li + li::after {
        width: 0.6em;
        top: 3px;
        left: 50%;
        margin-left: -0.3em;
    }

    .plan_section .tab a::after {
        border-width: 10px 6px 0 6px;
    }

    .plan_section .plan_contents {
        overflow: hidden;
        position: relative;
        line-height: calc(70/35);
        min-height: 500px;
    }

    .plan_section .plan_contents > section {
        padding: 40px 8vw 50px;
    }

    .plan_section .plan_contents h3 {
        margin-bottom: 30px;
        padding-bottom: 10px;
        font-size: 2.7rem;
    }

    .plan_section .plan_contents .type {
        margin-bottom: 25px;
        font-size: 1.7rem;
        line-height: 1.3;
    }

    .plan_section .plan_contents .type.xxx {
        font-size: 2.5rem;
        letter-spacing: 0.05em;
    }

    .plan_section .plan_contents .ph_main {
        flex-wrap: wrap;
        margin-top: 30px;
    }

    .plan_section .plan_contents .ph_main li {
        width: calc(50% - 5px);
    }

    .plan_section .plan_contents .ph_main li:nth-child(n + 3) {
        margin-top: 10px;
    }

    .plan_section .plan_contents .ph_main li img {
        width: 100%;
    }

    .plan_section .plan_contents .schedule {
        margin-top: 40px;
    }

    .plan_section .plan_contents .schedule + .schedule {
        margin-top: 64px;
    }

    .plan_section .plan_contents .schedule h4 {
        margin-bottom: 35px;
        font-size: 2.5rem;
    }

    .plan_section .plan_contents .schedule ol::before {
        left: 15px;
    }

    .plan_section .plan_contents .schedule li {
        margin-bottom: 45px;
        padding-left: 12vw;
    }

    .plan_section .plan_contents .schedule .clock {
        top: -2px;
        left: 0;
        width: 30px;
        height: 30px;
    }

    .plan_section .plan_contents .schedule dt {
        font-size: 1.5rem;
    }

    .plan_section .plan_contents .schedule dd {
        font-size: 1.6rem;
        line-height: 1.4;
    }

    .plan_section .plan_contents .schedule li p {
        margin-top: 8px;
        font-size: 1.2rem;
        line-height: 1.75;
    }

    .plan_section .plan_contents .schedule li .map {
        margin-top: 20px;
    }

    .plan_section .plan_contents .schedule li .map img {
        aspect-ratio: 480 / 1000;
    }

    .plan_section .plan_contents .schedule li .ph {
        margin-top: 20px;
    }

    .plan_section .plan_contents .schedule li .ph img {
        width: 100%;
    }

    .plan_section .plan_contents .detail {
        margin-top: 60px;
    }

    .plan_section .plan_contents .detail .icon {
        font-size: 1.2rem;
    }

    .plan_section .plan_contents .detail h4 {
        margin-bottom: 20px;
        font-size: 2.5rem;
    }

    .plan_section .plan_contents .detail > dl {
        line-height: 1.6;
    }

    .plan_section .plan_contents .detail > dl > dt {
        margin-bottom: 0.3em;
        font-size: 1.6rem;
    }

    .plan_section .plan_contents .detail dd .name {
        margin-bottom: 0;
        font-size: 1.5rem;
    }

    .plan_section .plan_contents .detail dd .map {
        margin-top: 20px;
    }

    .plan_section .plan_contents .detail dd .map img {
        aspect-ratio: 480 / 1584;
    }

    .plan_section .plan_contents .detail dd .map_link {
        margin-top: 10px;
    }

    .plan_section .plan_contents .detail dd .option + .option {
        margin-top: 1.5em;
    }

    .plan_section .plan_contents .detail dd .option dt {
        font-size: 1.5rem;
        margin-bottom: 0.5em;
    }

    .plan_section .plan_contents .detail dd .option dd {
        font-size: 1.4rem;
    }

    .plan_section .plan_contents .detail dd .option ol {
        font-size: 1.2rem;
    }

    .plan_section .plan_contents .detail dd strong {
        display: block;
        margin-bottom: 0.5em;
        white-space: nowrap;
    }

    .plan_section .plan_contents .detail dd strong span {
        font-size: 70%;
    }

    [lang="en"] .plan_section .plan_contents .detail dd strong span {
        font-size: 50%;
    }

    .plan_section .plan_contents .detail dd .notes {
        display: block;
        font-size: 1.15rem;
    }

    .plan_section .plan_contents .type .peke::before, 
    .plan_section .plan_contents .type .peke::after {
        right: 120px;
        margin-top: 15px;
    }

    .plan_section .plan_contents .detail dd .dot_li > li + li {
        margin-top: 0.4em;
    }
}

/* Plan specific styles */
.plan_section .plan_contents .add_box {
    padding-bottom: 10px;
    border-bottom: none;
    margin-bottom: 0;
}

.plan_section .plan_contents .add_box .add_tit {
    font-size: 3.3rem;
    letter-spacing: 0.05em;
    border-bottom: none;
    margin-bottom: 24px;
}

.plan_section .plan_contents .add_box .add_tit span {
    color: #005133;
}

.plan_section .plan_contents .add_box .add_stit {
    font-size: 3.1rem;
    letter-spacing: 0.025em !important;
    color: #005133;
    margin-top: 46px;
}

.plan_section .plan_contents .add_box .add_txt01 {
    font-size: 2.6rem;
    letter-spacing: 0.05em;
    margin-top: 1em;
    font-weight: 700;
    line-height: 1.8;
}

.plan_section .plan_contents .add_box .add_txt {
    font-size: 1.8rem;
    letter-spacing: 0.05em;
    line-height: calc(40/18);
    font-weight: 500;
    font-style: normal;
    text-align: justify;
    font-feature-settings: "palt";
}

.plan_section .en .plan_contents .add_box .add_txt {
    line-height: calc(36/18);
}

.basic_plan .bcp_list dt, .basic_plan .bcp_list dd {
    font-size: 1.6rem;
    letter-spacing: 0.02em;
    line-height: calc(28/16);
}

.basic_plan .bcp_list dl {
    display: flex;
}

.basic_plan .bcp_list dt {
    position: relative;
    width: 15.5rem;
}

.basic_plan .bcp_list dt:before {
    position: absolute;
    top: 0;
    right: 0;
    content: "：";
    right: 0.4rem;
}

.basic_plan .bcp_list dd {
    width: calc(100% - 15.5rem);
}

.basic_plan .bcp_ask li {
    position: relative;
    padding-left: 1.8rem;
    font-size: 1.4rem;
}

.basic_plan .bcp_ask li:before {
    position: absolute;
    top: 0;
    left: 0;
    content: "※";
}

.plan_section .plan_contents .schedule .plan_txt {
    font-size: 2.4rem;
    color: #005133;
    font-weight: bold;
    margin-bottom:0.5rem;
}


/* slick */
.slick-slider * {
	outline: none;
}

.slick-slider {
	position: relative;
	display: block;
	box-sizing: border-box;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
	-khtml-user-select: none;
	-ms-touch-action: pan-y;
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
}

.slick-list {
	position: relative;
	display: block;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

.slick-list:focus {
	outline: none;
}

.slick-list.dragging {
	cursor: pointer;
	cursor: hand;
}

.slick-slider .slick-track, .slick-slider .slick-list {
	-webkit-transform: translate3d(0, 0, 0);
	-moz-transform: translate3d(0, 0, 0);
	-ms-transform: translate3d(0, 0, 0);
	-o-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}

.slick-track {
	position: relative;
	top: 0;
	left: 0;
	display: block;
}

.slick-track:before, .slick-track:after {
	display: table;
	content: '';
}

.slick-track:after {
	clear: both;
}

.slick-loading .slick-track {
	visibility: hidden;
}

.slick-slide {
	display: none;
	float: left;
	height: 100%;
	min-height: 1px;
}

[dir='rtl'] .slick-slide {
	float: right;
}

.slick-slide img {
	display: block;
}

.slick-slide.slick-loading img {
	display: none;
}

.slick-slide.dragging img {
	pointer-events: none;
}

.slick-initialized .slick-slide {
	display: block;
}

.slick-loading .slick-slide {
	visibility: hidden;
}

.slick-vertical .slick-slide {
	display: block;
	height: auto;
	border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
	display: none;
}

/* slickドット */
.concept_section .concept_main_img .slick-dots {
	position: absolute;
	right: 0;
	left: 0;
	bottom: 72px;
	display: flex;
	justify-content: flex-end;
	z-index: 5;
}

.concept_section .concept_main_img .slick-dots li button {
	position: relative;
	overflow: hidden;
	width: 32px;
	height: 0;
	margin: 0;
	padding: 32px 0 0;
	border: 0;
	background: none;
}

.concept_section .concept_main_img .slick-dots li button::after {
	content: "";
	position: absolute;
	top: 8px;
	bottom: 8px;
	left: 8px;
	right: 8px;
	background-color: #ffffff;
	border: 1px solid #ffffff;
	border-radius: 100%;
	transition: background .2s;
}

.concept_section .concept_main_img .slick-dots li.slick-active button::after {
	background-color: #005133;
}

@media screen and (min-width: 768px), print {
	.concept_section > header ul {
		padding-left: max(0px, calc((1240px - 100%) * .4));
	}
	.concept_section .concept_main_img .slick-dots {
		max-width: 1360px;
		margin: 0 auto;
		padding-left: 22px;
		padding-right: 22px;
	}
	.concept_section .concept_main_img .slick-dots li button:hover::after {
		background-color: #005133;
	}
}

@media screen and (max-width: 767px) {
	.concept_section .concept_main_img .slick-dots {
		right: calc(5vw - 5px);
		bottom: 40px;
	}
	.concept_section .concept_main_img .slick-dots li button {
		width: 20px;
		padding-top: 20px;
	}
	.concept_section .concept_main_img .slick-dots li button::after {
		top: 5px;
		bottom: 5px;
		left: 5px;
		right: 5px;
	}
}

/* concept_sliderのslickドット */
.concept_slider .slick-dots {
	display: flex;
	justify-content: flex-end;
}

.concept_slider .slick-dots li {
	margin-left: 3px;
}

.concept_slider .slick-dots li button {
	position: relative;
	overflow: hidden;
	width: 20px;
	height: 0;
	margin: 0;
	padding: 10px 0 0;
	border: 0;
	background: none;
}

.concept_slider .slick-dots li button::after {
	content: "";
	position: absolute;
	top: 4px;
	bottom: 3px;
	left: 0;
	right: 0;
	background-color: #cccccc;
	transition: background .2s;
}

.concept_slider .slick-dots li.slick-active button::after {
	background-color: #282828;
}

@media screen and (min-width: 768px), print {
	.concept_slider .slick-dots li button:hover::after {
		background-color: #282828;
	}
	.concept_slider .dots {
		position: absolute;
		right: 30px;
		bottom: -50px;
	}
}

@media screen and (max-width: 767px) {
	.concept_slider .dots {
		width: calc(100% - 80px - 90px);
	}
	.concept_slider .slick-dots li {
		margin-left: 0;
		width: 100%;
		padding: 0 1px;
	}
	.concept_slider .slick-dots li button {
		width: 100%;
	}
}

/* btn_reservation */
.btn_reservation {
	width: 100%;
	height: auto;
	margin: 5em auto 5em;
}

.btn_reservation a {
	width: 100%;
	height: 100%;
	display: flex;
    flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	text-decoration: none !important;
	background-color: #005133;
	transition: color .5s, background .2s ease-in-out;
    padding:30px 15%;
}

.btn_reservation a:hover {
	background-color: #000;
}

.btn_reservation a:after {
    content: '';
    position: absolute;
    top: 50%;
    right: 6%;
    width: 9px;
    height: 9px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform-origin: 100% 0;
    transform: rotate(45deg);
    transition: right 0.3s ease;
}

.btn_reservation a:hover:after {
    right: calc(6% - 10px);
}

.btn_reservation a p span {
	font-size: 2.0rem;
	font-weight: 300;
	color: #FFF;
	text-align: center;
	position: relative;
}

.btn_reservation a p span:before {
	content: '';
	width: 36px;
	height: 36px;
	background-image: url("../images/ico_reservation.svg");
	background-repeat: no-repeat;
	background-position: center center;
	position: absolute;
	top: calc(50% - 18px);
	left: -50px;
}

@media screen and (max-width: 767px) {
	.btn_reservation {
		width: 100%;
		height: auto;
		margin: 3em auto 0em;
    }
	.btn_reservation a {
		width: 100%;
		height: 100%;
		box-sizing: border-box;
		padding: 5%;
        padding-top:40px;
	}
	.btn_reservation a p span {
		font-size: 1.5rem;
		font-weight: 300;
		line-height: 1.6;
		color: #FFF;
		text-align: center;
		position: relative;
        margin-top:20px;
	}
	.btn_reservation a p span:before {
		content: '';
		width: 20px;
		height: 20px;
		background-image: url("../images/ico_reservation.svg");
		background-repeat: no-repeat;
		background-position: center center;
		background-size: contain;
		position: absolute;
		top: -25px;
		left: calc(50% - 10px);
	}
}



.btn_reservation a p:nth-child(2) {
	font-size: 1.2rem;
    line-height: 1.6rem;
	font-weight: 300;
	text-align: center;
    color:#ffffff;
}


/* timeline関連CSS */
.timeline-container {
	max-width: 1200px;
	margin: 0 auto;
}

.timeline {
	position: relative;
	padding-left: 20px;
}

.timeline::before {
	content: '';
	position: absolute;
	left: 37px;
	top: 0;
	bottom: 0;
	width: 0.5px;
	background: #282828;
	z-index: -1;
}

.timeline-txt{
    margin-left:40px !important;
}    

.timeline-item {
	position: relative;
	margin-bottom: 20px;
	display: flex;
	align-items: flex-start;
	gap: 0px;
}

.timeline-item:last-child {
	margin-bottom: 0;
}

.timeline-clock-container {
	position: relative;
	flex-shrink: 0;
	z-index: 2;
	display: flex;
	align-items: flex-start;
	gap: 20px;
}

.timeline-clock {
	width: 35px;
	height: 35px;
	border-radius: 50%;
	background: #005133;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.time-display {
	font-size: 1.9rem;
	font-weight: 500;
	color: #333;
	margin-left: 40px;
}

.hour-hand {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 2px;
	height: 10px;
	background: #ffffff;
	transform-origin: bottom center;
	transform: translate(-50%, -100%);
	border-radius: 1px;
	z-index: 3;
}

.minute-hand {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1px;
	height: 12px;
	background: #ffffff;
	transform-origin: bottom center;
	transform: translate(-50%, -100%);
	border-radius: 0.5px;
	z-index: 2;
}

.timeline-content {
	flex: 1;
	padding-top: 0px;
	margin-left: 30px;
	display: flex;
	gap: 20px;
	align-items: flex-start;
}

.timeline-content-text {
	flex: 1;
}

.activity-title {
	font-size: 1.9rem !important;
	border-bottom: none !important;
	margin: 9px 0px 10px 10px !important;
	font-weight: 500;
	color: #333;
	margin-left: 10px;
}

.activity-description {
	font-size: 1.5rem;
	color: #282828;
	line-height: 1.8;
	margin-left: 10px;
	margin-bottom: 20px;
}

.activity-image {
	width: 250px;
	object-fit: cover;
	flex-shrink: 0;
	margin-top: 15px;
}

@media (max-width: 768px) {
	.timeline-container {
		padding: 0px;
	}
	.timeline-item {
		display: block;
	}
	.timeline::before {
		content: '';
		position: absolute;
		left: 17px;
	}
	.timeline-content {
		display: block;
	}
	.time-display {
		margin-left: 58px;
		margin-top: -33px;
	}
	.timeline-clock-container {
		align-self: left;
		display: block;
		margin-left: -20px;
	}
	.activity-image {
		width: 100%;
		max-width: 320px;
		margin: 0 auto;
	}
	.timeline-content {
		padding-top: 0;
	}
	.activity-description {
		font-size: 1.4rem;
		line-height: 1.9rem !important;
	}
   .timeline-txt {
    line-height: 2rem;
   }

}

/* 写真関連CSS */
.ph100 {
	width: 100%;
	height: auto;
	margin-bottom: 24px;
}

.ph100.col2 {
	display: flex;
	justify-content: space-between;
}

/* ツアー詳細テーブル関連CSS */
.tour_Detail_line {
	border-bottom: 1px solid #282828;
}

.tour_Detail_table {
	border-bottom: 2px dotted #ddd;
	padding-bottom: 20px;
	margin-bottom: 20px;
}

.tour_Detail_table_row {
	display: flex;
}

.tour_Detail_table_title {
	width: 200px;
	font-size: 1.6rem;
	padding: 0px 15px;
	font-weight: bold;
	min-width: 150px;
	flex-shrink: 0;
}

.tour_Detail_table_access {
	padding: 0px 15px;
	flex: 1;
}

.tour_Detail_table_access p {
	font-size: 1.6rem;
	font-weight: bold;
	padding: 0 15px 0 0;
	flex: 1;
}

.tour_Detail_table_access p span {
	font-size: 1.4rem;
	padding: 0 15px 0 0;
    font-weight: 300;
	flex: 1;
}

.tour_Detail_table_content {
	font-size: 1.6rem;
	padding: 0px 15px;
	flex: 1;
	line-height: 2.8rem;
	color: #555;
}

.google-link {
	font-weight: normal;
	text-align: right;
	margin-top: 10px;
}

.google-link a {
	color: #4285f4;
	text-decoration: underline;
}

@media (max-width: 768px) {
	.tour_Detail_table_row {
		display: block;
	}
	.tour_Detail_table_title {
		font-size: 1.6rem;
		padding: 0px;
		font-weight: bold;
		min-width: 150px;
		flex-shrink: 0;
	}
	.tour_Detail_table_access {
		font-size: 1.5rem;
		font-weight: bold;
		padding: 0px;
		flex: 1;
	}
	.tour_Detail_table_content {
		font-size: 1.4rem;
		line-height: 2.4rem;
		padding: 0px;
		color: #555;
	}
}

/* コンタクトセクション
============================================================================================================ */

.contact_section {
  --contact-panel-bg: #eee;
  --contact-accent: #005133;
  --contact-text: #222;
}

.contact_section .contents {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
}

.contact_section .ph {
  position: relative;
  margin-left: auto;
  width: 70%;
  padding-top: calc(500 / 1065 * 100%);
  overflow: hidden;
}

.contact_section .ph img.of {
  position: absolute;
  top:0;
  width: 100%;
  height: 75%;
  object-fit: cover;
  object-position:right;
  transform: translateZ(0);
}

.contact_section dl.bold {
  position: absolute;
  top: 37%;
  left: 17%;
  transform: translateY(-50%);
  width: min(560px, 75%);
  background: var(--contact-panel-bg);
  color: var(--contact-text);
  margin: 0;
  padding: 90px 0 0;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}

.contact_section dl.bold dt {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
  row-gap: 16px;
  margin: 0 0 60px;
  font-weight: 500;
  line-height: 1.9;
  font-size: clamp(15px, 1.8vw, 18px);
}
.contact_section dl.bold dt .ico img {
  width: 28px;
  height: 28px;
  display: block;
}

/* 帯 */
.contact_section dl.bold dd {
  margin: 0;
  background: var(--contact-accent);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: clamp(16px, 3vw, 20px);
  font-weight: 500;
  letter-spacing: .2px;
  position: relative;
  padding:35px 0 35px;
}

.contact_section dl.bold dd p {
  margin-top:10px;
  max-width: 70%;
  text-align: center;
  font-size: clamp(11px, 3vw, 14px);
  font-weight: 300 !important;
}
.contact_section dl.bold dd:hover {
  background: #333;
}

.contact_section dl.bold dd::after {
  content: "";
  position: absolute;
  top: 55%;
  right: 40px;
  width: 9px;
  height: 9px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform-origin: 100% 0;
  transform: translateY(-50%) rotate(45deg);
  transition: right 0.3s ease;
}

.contact_section dl.bold dd:hover::after {
  right: 35px;
}

@media (hover:hover) {
  .contact_section .contents > a:hover dl.bold dd {
    filter: brightness(1.05);
  }
}

.contact_section > header {
  position: relative;
  min-height: 120px;
  max-width: 1360px;
  margin: 0 auto;
  padding: 0px;
}

@media (max-width: 900px) {
  .contact_section {
    margin-bottom:60px;
  }
  .contact_section .contents {
    display: flex;
    flex-direction: column;
    position: static;
    overflow: visible;
  }
  
  .contact_section .ph {
    position: relative;
    width: 80%;
    margin: 0 1% 0 19%;
    padding-top: calc(500 / 1065 * 80%);
    min-height: 250px;
    order: 1;
  }
  
  .contact_section .ph img.of {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
  
  .contact_section .contents > a {
    order: 2;
    display: block;
    width: 80%;
    margin: 0 1% 0 19%;
    text-decoration: none;
  }
  
.contact_section dl.bold dt {
    padding-top:30px;
  }

  .contact_section dl.bold {
    position: static;
    transform: none;
    left: auto;
    top: auto;
    width: 100%;
    margin: 0;
    padding: 22px 0 0;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
  }
  
  .contact_section dl.bold dd {
    height: auto;
    padding-top:37px;
  }
  
  .contact_section > header { 
    min-height: 80px; 
  }
}

@media (max-width: 480px) {
  .contact_section dl.bold dt { row-gap: 12px; }
  .contact_section dl.bold dt .ico img { width: 24px; height: 24px; }
  .contact_section dl.bold dd::after { right: 16px; }
}