@charset "utf-8";
:root {
    --max-width: 1400px;
    --max-width-sp: 94vw;
    --c-black: #000;
    --c-white: #fff;
    --c-light-gray: #dddddd;
    --c-dark-gray: #999999;
    --fw-600: 600;
    --section-padding: min(40px,2.5vw);
    --section-bottom: min(45px,3vw);
    --subsection-bottom: min(15px,1vw);
    --font-M: min(16px,1.5vw);
    --font-S: min(14px,1.3vw);
    --font-SS: min(12px,1.1vw);
    --font-en-roboto: "Roboto", sans-serif;
    --font-en-open-sans: "Open Sans", sans-serif;
}
@media screen and (max-width: 766px) {
    :root {
        --font-M: 3.5vw;
        --font-S: 3vw;
        --font-SS: 2.5vw;
        --section-padding: 3vw;
        --section-bottom: 4vw;
        --subsection-bottom: 2.5vw;
    }
}
body,p,td,th,ol,ul,h1, h2, h3, h4 {
    margin: 0;
    padding: 0;
}
ol,ul {
    list-style: none
}
img {
    width: 100%;
    vertical-align: middle;
}
body {
    font-family: var(--font-en-open-sans);
    font-size: 16px;
    font-weight: 400;
    color: var(--c-black);
}
a {
    color: var(--c-black);
    display: block;
    cursor: pointer;
    border: 0;
    text-decoration: none;
}
a:hover {
    opacity: 0.7;
}
p {
    line-height: 1.7;
}
p .caption {
    font-size: 70%;
    display: block;
    margin-top: min(10px,0.5vw);
}
p .caption > a {
    display: inline-block;
    text-decoration: underline;
}
header, main{
    width: min(var(--max-width), var(--max-width-sp));
    margin: 0 auto;
}
.temma_bg {
    background: #f3dac8;
}
.kitahama_bg {
    background: #E4EDE6;
}

#index_top {
    padding: min(50px,3vw) 0 min(80px,8vw);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: 
    "areaA areaC"
    "areaB areaC"
    "areaD areaD";
    gap: 40px;
}
#index_top h1 {
    position: relative;
    grid-area: areaA;
    width: 80%;
}
#index_top h1 .batch {
    position: absolute;
    top: min(50px,3vw);
    left: min(500px,35vw);
}
#index_top h1 .batch img {
    width: min(200px,16vw);
}
#index_top .introduction {
    grid-area: areaB;
}
#index_top .introduction span.lead {
    font-size: min(21px,1.5vw);
    font-weight: var(--fw-600);
    padding-bottom: 10px;
    display: inline-block;
}
#index_top .introduction span.place {
    display: inline-block;
    font-size: var(--font-M);
}
#index_top .main_visual {
    grid-area: areaC;
}
#index_top .index_nav {
    grid-area: areaD;
}
#index_top .index_nav ul {
    display: flex;
    justify-content: center;
    gap: min(30px,1.8vw);
}
#index_top .index_nav ul li a {
    display: block;
    font-size: min(16px,1.25vw);
    font-weight: bold;
    padding: min(20px,1.8vw) min(50px,2.5vw);
    background: #ebe4d6;
    border-radius: 8px;
}
#index_top .index_nav ul li a.current {
    color: #fff;
    background: #df5435;
}

header {
    padding: min(50px,3vw) 0 0;
    margin: 0 auto min(-30px,-1.2vw);
    display: grid;
    grid-template-areas: 
    "areaA areaB";
    gap: 40px;
}
header h1 {
    grid-area: areaA;
    width: min(400px,28vw);
    line-height: 0;
}
header nav {
    grid-area: areaB;
}
header nav ul {
    display: flex;
    justify-content: right;
    gap: min(20px,1.4vw);
}
header nav ul li a {
    display: block;
    font-size: min(14px,1.1vw);
    font-weight: bold;
    padding: min(20px,1.4vw) min(40px,1.6vw);
    background: #ebe4d6;
    border-radius: 8px;
}
header nav ul li a.current {
    color: #fff;
    background: #df5435;
}
header nav .hamburger {
    display: none;
}
.language {
    display: inline-block;
    position: absolute;
    top: min(150px,15vw);
    right: 0;
}
.index_nav .language {
    top: min(130px,7vw);
}
.language > a {
    padding: min(13px,1vw);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background-color: #ebe4d6;
    border-radius: 0 0 0 4px;
}
.language a.active {
    background-color: #df5435;
    border-radius: 4px 0 0px 0px;
}
.language img {
    width: auto;
    height: min(13px,1.3vw);
}
.language a::after {
    content: '';
    position: absolute;
    bottom: min(8px,1vw);
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 1px; 
    background-color: var(--c-black);
    transition: width 0.3s ease, left 0.3s ease;
}
.language a.active::after {
    background-color: var(--c-white);
}

@media (hover: hover) {
    .language a:hover {
        opacity: .9;
    }
    .language a:hover::after {
        width: 66%;
    }
}




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

    header {
        padding: 0 3vw 0;
        margin: 0 auto 3vw;
        display: flex;
        align-items: center;
        position: fixed;
        top: 4vw;
        z-index: 999;
    }
    header h1 {
        width: 48vw;
        position: relative;
        z-index: 9999;
    }
    header .hamburger {
        background-color: #df5435;
        border-radius: 3px;
        position: fixed;
        right: 3vw;
        width: 12vw;
        height: 12vw;
        z-index: 9999;
    }
    header .hamburger .line {
        position: absolute;
        width: 70%;
        height: 1vw;
        background-color: var(--c-white);
        border-radius: 2px;
        transition: 0.3s;
        left: 50%;
        transform: translateX(-50%);
    }
    header .hamburger .line1 {
        top: 3vw;
    }
    header .hamburger .line2 {
        top: 50%;
        transform: translate(-50%, -50%);
    }
    header .hamburger .line3 {
        bottom: 3vw;
    }
    header .hamburger.active .line1 {
        transform: translate(-50%, -50%) rotate(45deg);
        top: 6vw;
    }
    header .hamburger.active .line2 {
        opacity: 0;
    }
    header .hamburger.active .line3 {
        transform: translate(-50%, -50%) rotate(-45deg);
        bottom: 5vw;
    }
    header nav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 40vh;
        background: var(--c-white);
        transition: right 0.3s ease;
        z-index: 999;
        padding: 35vw 0 0;
    }
    header nav ul {
        width: 93%;
        gap: 4vw;
        display: flex;
        flex-direction: column;
        margin: 0 auto;
        text-align: center;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    header nav.open {
        right: 0;
    }
    header nav ul li a {
        display: block;
        font-size: 4vw;
        padding: 4vw;
        border-radius: 4px;
    }
    .language a.active svg path {
        fill: var(--c-white);
    }
    .index_nav a {
        padding: 3vw;
    }
    .index_nav .language a.active {
        border-radius: 4px 0 0 0;
    }
    .index_nav .language {
        background-color: #ebe4d6;
        display: inline-block;
        border-radius: 4px 0px 0px 4px;
        position: absolute;
        top: 35vw;
        right: 0;
    }
    .index_nav .language img {
        height: 2.4vw;
    }
    .sub_page .language {
        border-radius: 4px;
        display: flex;
        width: 94vw;
        margin: 0 0 0 auto;
        position: absolute;
        top: auto;
        bottom: 5%;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }
    .sub_page .language > a {
        border-radius: 0 4px 4px 0;
        width: 15vw;
    }
    .sub_page .language a.active {
        border-radius: 4px 0 0 4px;
    }
    .sub_page .language img {
        width: auto;
        height: 3vw;
    }


}

.content_wrapper {
    margin: min(80px,5vw) auto;
}
#route_map h2 {
    width: min(900px,75vw);
    margin: 0 auto 30px;
}
#route_map p.contents_lead {
    width: min(890px,74vw);
    margin: 0 auto;
    font-size: min(18px,2vw);
    font-family: var(--font-en-roboto);
    line-height: 1.6;
}
#route_map p.contents_lead:last-of-type {
    margin: min(2vw,15px) auto min(5vw,50px);
}
#route_map p.contents_lead .caption {
    font-size: 77%;
    margin-top: min(10px,0.5vw);
    line-height: 1.5;
}
#route_map .guide_tabs {
    display: flex;
}
#route_map .guide_tabs .tab_btn {
    flex: 1;
    background-color: var(--c-light-gray);
    text-align: center;
    line-height: 1.4;
    padding: 10px 0;
    cursor: pointer;
}
#route_map .guide_tabs .tab_btn.active {
    background-color: var(--c-dark-gray);
}
#route_map .tab_content {
    display: none;
}
#route_map .tab_content.active {
    display: block;
}
#route_map .time_table_wrap {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: min(3vw,25px) min(3vw,20px);
    background-color: #F5EBDE;
    padding: min(4vw,40px);
    margin-top: min(5vw,50px);
    font-size: var(--font-S);
}
#route_map .time_table_wrap h4{
    border-bottom: 3px solid transparent;
    background: radial-gradient(circle, var(--c-black) 1px, transparent 1px) bottom / 6px 6px repeat-x;
    padding-bottom: min(1.5vw,20px);
    padding-left: min(36vw,38px);
    grid-column: 1 / 4;
}
#route_map .time_table_wrap h4 svg{
    width: auto;
    height: 30px;
}
#route_map .time_table_wrap .place svg {
    display: block;
    width: auto;
    height: 20px;
    margin: 0 auto 20px;
}
#route_map .time_table_box{
    text-align: center;
    margin: 0 auto;
    font-family: var(--font-en-roboto);
}
#route_map .time_table_box table {
    width: 100%;
    margin: 0 auto;
}
#route_map .time_table_box table strong {
    font-size: var(--font-M);
    line-height: 1.2;
}
#route_map .time_table_box tr {
    display: flex;
    align-items: center;
    gap: min(12px,1vw);
    margin-bottom: min(10px,1vw);
    justify-content: space-between;
}
#route_map .time_table_box td, th {
    text-align: left;
}
#route_map .time_table_box th + td {
    width: min(260px,18vw);
}
#route_map .time_table_box td + td {
    padding: 2px 4px;
    display: inline-block;
    font-size: var(--font-S);
    width: min(60px,4.8vw);
    text-align: center;
}
#route_map .time_table_box td.brown {
    background-color: #594550;
    color: var(--c-white);
}
#route_map .time_table_box td.orange {
    background-color: #EA5520;
    color: var(--c-white);
}
#route_map .time_table_box tr.last {
    margin-top: min(12px,1vw);
}
#route_map .time_table_box .point {
    display: flex;
    align-items: center;
    gap: 0.6vw;
}
#route_map .time_table_box .point::after {
    content: "";
    display: inline-block;
    background-size: contain;
    background-repeat: no-repeat;
    height: auto;
    width: min(17px, 8vw);
    aspect-ratio: 1 / 1;
    flex-shrink: 0;
}
#route_map .time_table_box .pA::after {
    background-image: url('../../_assets/img/common/pointA.svg');
}
#route_map .time_table_box .pB::after {
    background-image: url('../../_assets/img/common/pointB.svg');
}
#route_map .time_table_box .pCD::after {
    background-image: url('../../_assets/img/common/pointCD.svg');
    width: min(43px,7vw);
    aspect-ratio: 2.53 / 1;
}
#route_map .time_table_box .pE::after {
    background-image: url('../../_assets/img/common/pointE.svg');
}
#route_map .time_table_box .pF::after {
    background-image: url('../../_assets/img/common/pointF.svg');
}
#route_map .time_table_box .c_org {
    color: #EA5520;
}
#banner .tourist_area_link {
    display: flex;
    gap: min(30px,4vw);
    margin-bottom: min(20px,3vw);
}
#banner .tourist_area_link a img {
    border-radius: 8px;
}
.sp {
    display: none;
}

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

    .sp {
        display: inline-block;
    }
    .pc {
        display: none;
    }
    #index_top {
        padding: 4vw 0 8vw;
        display: grid;
        grid-template-columns: 1fr;
        grid-template-areas: 
        "areaA"
        "areaC"
        "areaB"
        "areaD";
        gap: 0;
    }
    #index_top h1 {
        width: 70%;
    }
    #index_top h1 .batch {
        top: 0;
        left: 64vw;
    }
    #index_top h1 .batch img {
        width: 30vw;
    }
    #index_top .introduction {
        grid-area: areaB;
    }
    #index_top .introduction span.lead {
        font-size: 4vw;
        padding: 4vw 0 0;
    }
    #index_top .introduction span.place {
        padding: 2vw 0 10vw;
    }
    #index_top .index_nav ul {
        gap: 2vw;
        flex-direction: column;
        text-align: center;
    }
    #index_top .index_nav ul li a {
        font-size: 3.8vw;
        padding: 4vw;
        border-radius: 4px;
    }
    .content_wrapper {
        margin: 7vw auto;
    }
    #route_map h2 {
        width: 100%;
        margin: 0 auto 5vw;
    }
    #route_map p.contents_lead {
        width: 100%;
        margin: 8vw auto 4vw;
        font-size: var(--font-M);
    }
    #route_map .guide_tabs {
        display: flex;
    }
    #route_map .guide_tabs .tab_btn {
        flex: 1;
        background-color: var(--c-light-gray);
        text-align: center;
        line-height: 1.4;
        padding: 10px 0;
        cursor: pointer;
    }
    #route_map .guide_tabs .tab_btn.active {
        background-color: var(--c-dark-gray);
    }
    #route_map .tab_content {
        display: none;
    }
    #route_map .tab_content.active {
        display: block;
    }

    #route_map .time_table_wrap {
        grid-template-columns: 1fr;
        gap: 10vw;
        padding: 8vw 5vw 10vw;
        margin-top: 10vw;
        font-size: var(--font-M);
    }
    #route_map .time_table_wrap h4{
        background: radial-gradient(circle, var(--c-black) 1px, transparent 1px) bottom / 7px 6px repeat-x;
        padding-bottom: 3vw;
        padding-left: 0;
        grid-column: 1;
    }
    #route_map .time_table_wrap h4 svg{
        width: auto;
        height: 6vw;
    }
    #route_map .time_table_wrap .place svg {
        height: 5vw;
        margin: 0 auto 3vw;
    }
    #route_map .time_table_box{
        width: 100%;
    }
    #route_map .time_table_box table {
        width: 100%;
        margin: 0 auto;
    }
    #route_map .time_table_box table strong {
        font-size: 3.8vw;
    }
    #route_map .time_table_box tr {
        gap: 3vw;
        margin-bottom: 3vw;
    }
    #route_map .time_table_box th + td {
        width: auto;
        flex: 1;
    }
    #route_map .time_table_box td + td {
        padding: 2px 0;
        width: 15vw;
        display: inline-block;
        margin-top: min(8px, 0.5vw);
        font-size: var(--font-S);
    }
    #route_map .time_table_box .point {
        gap: 2vw;
        flex: 1;
    }
    #route_map .time_table_box .point::after {
        width: 4.2vw;
        height: 4vw;
    }
    #route_map .time_table_box .pCD::after {
        width: 11vw;
        height: 4vw;
    }
    #banner .tourist_area_link {
        flex-direction: column;
        gap: 3vw;
        margin: 12vw 0 3vw;
    }
    #banner .tourist_area_link a img {
        border-radius: 4px;
    }
}
@media screen and (min-width: 767px) and (max-width: 1280px) {
    #route_map .time_table_box th + td {
        width: 15.4vw;
    }
}
/* AREA */
#subpage_top {
    display: grid;
    grid-template-columns: 1.8fr 1fr;
    grid-template-areas: 
    "areaA areaC"
    "areaB areaC";
    gap: 40px;
    padding: var(--section-padding);
    margin-bottom: var(--section-bottom);
    border-radius: 8px;
}
#subpage_top h2 {
    grid-area: areaA;
}
#subpage_top .top_illust {
    grid-area: areaC;
    width: min(400px,32vw);
    justify-self: end;
}
#subpage_top .top_copy {
    grid-area: areaB;
    font-size: min(18px,1.3vw); 
    font-family: var(--font-en-roboto);
}

#shop_map {
    padding: var(--section-padding);
    margin-bottom: var(--section-bottom);
    border-radius: 8px;
}
#shop_map map_img {
    width: 1000px;
}

#shop_list {
    padding: 0;
    margin-bottom: var(--section-bottom);
}
#shop_list h2 {
    font-size: min(32px,4vw);
    line-height: 2;
    text-align: center;
    margin-bottom: var(--section-bottom);
}
#shop_list ul {
    display: grid;
    flex-wrap: wrap;
    justify-content: space-between;
    column-gap: 30px;
    grid-template-columns: 1fr 1fr 1fr;
}
#shop_list ul li {
    margin-bottom: min(45px,3vw);
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 6;
}
#shop_list li h3 {
    font-size: min(19px,1.8vw);
    padding-bottom: 8px;
    border-bottom: #666 dotted 1px;
}
#shop_list ul li h3 span {
    display: inline-block;
    margin-right: 10px;
}
#shop_list ul li .shop_tag {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: var(--subsection-bottom);
    justify-content: space-between;
    column-gap: min(10px,1vw);
}
#shop_list ul li .shop_tag p {
    font-size: var(--font-S);
    line-height: 1.2;
    padding-top: min(8px,0.5vw);
}
#shop_list ul li .shop_tag p.spot {
    color: #df5435;
}
#shop_list ul li .shop_tag p.type {
    text-align: right;
}
#shop_list ul li .shop_gallery ul {
    grid-template-columns: 1fr;
}
#shop_list ul li .shop_gallery li {
    width: 100%;
    height: auto;
    margin-bottom: var(--subsection-bottom);
}
#shop_list ul li .shop_gallery li img {
    border-radius: 8px;
}
#shop_list ul li .description p {
    font-size: calc(var(--font-S) * 0.95);
    margin-bottom: var(--subsection-bottom);
    line-height: 1.65;
}
#shop_list ul li .description p.lead {
    font-size: var(--font-M);
    font-weight: var(--fw-600);
}
#shop_list ul li .shop_info {
    margin-bottom: var(--subsection-bottom);
}
#shop_list ul li .shop_info p {
    position: relative;
    display: inline-block;
    font-size: var(--font-S);
    padding-left: min(18px,2vw);
    margin-right: min(7px,0.7vw);
    z-index: 0;
}
#shop_list ul li .shop_info p a {
    display: inline-block;
    text-decoration: underline;
}
#shop_list ul li .shop_info p.address,
#shop_list ul li .shop_info p.hours {
    display: inline;
}
#shop_list ul li .shop_info p.hours::before {
    display: inline;
    top: min(3px,0.15vw);
}
#shop_list ul li .shop_info p.address::before {
    top: min(3px,0.4vw);
}
#shop_list ul li .shop_info p::before{
    position: absolute;
    content: "";
    display: inline-block;
    background-size: cover;
    background-repeat: no-repeat;
    width: min(14px,1.6vw);
    aspect-ratio: 1 / 1;
    height: auto;
    top: min(6px,0.3vw);
    left: 0;
}
#shop_list p.address::before{background-image: url('../../_assets/img/common/ico-address.svg');}
#shop_list p.tel::before{background-image: url('../../_assets/img/common/ico-tel.svg');}
#shop_list p.hours::before{background-image: url('../../_assets/img/common/ico-hours.svg');}
#shop_list p.holiday::before{background-image: url('../../_assets/img/common/ico-holiday.svg');}
#shop_list p.card::before{background-image: url('../../_assets/img/common/ico-card.svg');}
#shop_list p.seat::before{background-image: url('../../_assets/img/common/ico-seat.svg');}
#shop_list p.hp::before{background-image: url('../../_assets/img/common/ico-hp.svg');}
#shop_list p.ig::before{background-image: url('../../_assets/img/common/ico-ig.svg');}
#shop_list p.time::before{background-image: url('../../_assets/img/common/ico-time.svg');}

#shop_list ul li .link_btn {
    margin-top: auto;
}
#shop_list ul li .link_btn a {
    width: 100%;
    font-size: var(--font-M);
    font-weight: var(--fw-600);
    color: #fff;
    line-height: 3;
    text-align: center;
    background: #df5435;
    border-radius: 8px;
}
#shop_note{
    margin-bottom: var(--section-bottom);
}
#shop_note ul{
    display: block;
    font-size: var(--font-SS);
    font-family: var(--font-en-roboto);
    line-height: 1.8;
}

#shop_map.temma_bg .shop_list_map {
    display: grid;
    gap: min(20px,3vw);
    grid-template-columns: 1fr 1.5fr;
}
#shop_map.temma_bg .map_img {
    grid-row: 1 / 3;
}
#shop_map.temma_bg .map_shop_wrap {
    flex: 1.5;
}
#shop_map .map_img img {
    border-radius: 8px;
}
#shop_map .map_shop_wrap {
    display: grid;
    gap: min(20px,3vw);
}
#shop_map.kitahama_bg .map_shop_wrap {
    margin-top: min(20px,2vw);
}
#shop_map.temma_bg .map_shop_wrap {
    grid-template-columns: 1fr 1fr;
}
#shop_map.kitahama_bg .map_shop_wrap {
    grid-template-columns: 1fr 1fr 1fr;
}
#shop_map .shop_list_box {
    background-color: var(--c-white);
    padding: min(1.5vw,15px) min(1.5vw,20px);
    border-radius: 8px;
    display: flex;
}
#shop_map .shop_list_box a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
#shop_map .shop_list_box a::after {
    content: "";
    display: block;
    width: min(3vw,35px);
    height: min(3vw,35px);
}
#shop_map.temma_bg .shop_list_box a::after {
    background: url( "../../_assets/img/common/arrow_pnk.svg" ) center center / cover no-repeat;
}
#shop_map.kitahama_bg .shop_list_box a::after {
    background: url( "../../_assets/img/common/arrow_grn.svg" ) center center / cover no-repeat;
}
#shop_map .shop_list_box .text_box {
    width: 80%;
}
#shop_map .shop_list_box .shop_name {
    line-height: 1.6;
    font-weight: var(--fw-600);
    border-bottom: #666 dotted 1px;
    padding-bottom: 8px;
    margin-bottom: 8px;
    color: #E60012;
    display: flex;
    gap: min(5px,0.5vw);
    font-size: var(--font-M);
}
#shop_map .shop_list_box .shop_type {
    font-size: var(--font-S);
}
#shop_map .shop_list_box .shop_time {
    font-size: var(--font-S);
    display: flex;
    align-items: center;
    gap: 5px;
}
#shop_map .shop_list_box .shop_time::before {
    content: "";
    display: block;
    background: url( "../../_assets/img/common/ico-time.svg" ) center center / cover no-repeat;
    width: min(1.5vw,20px);
    height: min(1.5vw,15px);
}
#shop_map .icon_info {
    display: flex;
    flex-wrap: wrap;
    gap: min(5px,0.5vw) min(20px,2vw);
    align-items: baseline;
    margin-bottom: auto;
}
#shop_map.kitahama_bg .icon_info {
    width: 60%;
    margin-top: min(2vw,20px);
    gap: min(5px,0.5vw) min(20px,2vw);
}
#shop_map .icon_info p {
    position: relative;
    padding-left: min(20px,3vw);
    font-size: var(--font-SS);
    line-height: 1.5;
}
#shop_map .icon_info p::before{
    position: absolute;
    content: "";
    display: inline-block;
    background-size: cover;
    background-repeat: no-repeat;
    width: min(16px,1.5vw);
    height: min(16px,1.5vw);
    top: min(0.1vw,3px);
    left: 0;
}
#shop_map .icon_info p.address::before{background-image: url('../../_assets/img/common/ico-address.svg');}
#shop_map .icon_info p.tel::before{background-image: url('../../_assets/img/common/ico-tel.svg');}
#shop_map .icon_info p.hours::before{background-image: url('../../_assets/img/common/ico-hours.svg');}
#shop_map .icon_info p.holiday::before{background-image: url('../../_assets/img/common/ico-holiday.svg');}
#shop_map .icon_info p.card::before{background-image: url('../../_assets/img/common/ico-card.svg');}
#shop_map .icon_info p.seat::before{background-image: url('../../_assets/img/common/ico-seat.svg');}
#shop_map .icon_info p.hp::before{background-image: url('../../_assets/img/common/ico-hp.svg');}
#shop_map .icon_info p.ig::before{background-image: url('../../_assets/img/common/ico-ig.svg');}
#shop_map .icon_info p.time::before{background-image: url('../../_assets/img/common/ico-time.svg');}


@media screen and (max-width: 766px) {
    #subpage_top {
        grid-template-columns: 1fr;
        grid-template-areas: 
        "areaA"
        "areaC"
        "areaB";
        gap: 5vw;
        padding: 8vw 3vw;
        margin-bottom: 8vw;
        border-radius: 4px;
        margin-top: 15vw;
    }
    #subpage_top .top_illust {
        width: 80vw;
        justify-self: center;
    }
    #subpage_top .top_copy {
        font-size: var(--font-M);
    }
    #shop_map {
        padding: 6vw var(--section-padding);
        margin-bottom: 10vw;        border-radius: 8px;
    }
    #shop_map map_img {
        width: 1000px;
    }
    #shop_list {
        padding: 0;
    }
    #shop_list h2 {
        font-size: 6vw;
    }
    #shop_list ul {
        display: flex;
        gap: 14vw;
    }
    #shop_list ul li {
        width: 100%;
        margin-bottom: 0;
    }
    #shop_list li h3 {
        font-size: 4.5vw;
        padding-bottom: 2vw;
    }
    #shop_list ul li h3 span {
        display: inline-block;
        margin-right: 10px;
    }
    #shop_list ul li .shop_tag {
        margin-bottom: var(--subsection-bottom);
    }
    #shop_list ul li .shop_tag p {
        padding-top: 1vw;
    }
    #shop_list ul li .shop_gallery li {
        width: 100%;
        height: auto;
        margin-bottom: var(--subsection-bottom);
    }
    #shop_list ul li .shop_gallery li img {
        border-radius: 4px;
    }
    #shop_list ul li .description p {
        font-size: 3.25vw;
    }
    #shop_list ul li .description p.lead {
        font-size: var(--font-M);
        font-weight: var(--fw-600);
    }
    #shop_list ul li .shop_info {
        margin-bottom: var(--subsection-bottom);
        font-size: 0;
    }
    #shop_list ul li .shop_info p {
        padding-left: 4.2vw;
        margin-right: 2vw;
    }
    #shop_list ul li .shop_info p a {
        display: inline-block;
        text-decoration: underline;
    }
    #shop_list ul li .shop_info p::before{
        width: 3.65vw;
        height: 3.65vw;
        top: 0.8vw;
    }
    #shop_list ul li .shop_info p.hours::before{
        top: 0.25vw;
    }
    #shop_list ul li .link_btn {
        margin-top: auto;
    }
    #shop_list ul li .link_btn a {
        border-radius: 4px;
    }
    #shop_map.temma_bg .shop_list_map {
        display: grid;
        gap: min(20px,3vw);
        grid-template-columns: 1fr 1fr;
    }
    #shop_map.temma_bg .map_img {
        grid-row: 1;
        grid-column: 1 / 3;
    }
    #shop_map.temma_bg .map_shop_wrap {
        grid-column: 1 / 3;
    }
    #shop_map.temma_bg .icon_info {
        grid-column: 1 / 3;
    }
    #shop_map .map_img img {
        border-radius: 8px;
    }
    #shop_map.kitahama_bg .map_wrapper {
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }
    #shop_map.kitahama_bg .map_img img {
        display: block;
        max-width: none;
        width: 215%;
    }
    #shop_map .map_shop_wrap {
        margin-top: 3vw;
    }
    #shop_map.kitahama_bg .map_shop_wrap {
        margin-top: 3vw;
    }
    #shop_map.temma_bg .map_shop_wrap {
        grid-template-columns: 1fr 1fr;
    }
    #shop_map.kitahama_bg .map_shop_wrap {
        grid-template-columns: 1fr 1fr;
    }
    #shop_map .shop_list_box {
        padding: 4vw 3vw;
        border-radius: 4px;
    }
    #shop_map .shop_list_box a {
        flex-direction: column;
        gap: 2vw;
        align-items: normal;
        position: relative;
    }
    #shop_map .shop_list_box a::after {
        width: 5vw;
        height: 5vw;
        margin: 0 auto;
        position: absolute;
        right: 0;
        bottom: 0;
    }
    #shop_map .shop_list_box .text_box {
        width: 100%;
        display: flex;
        flex-direction: column;
        flex-grow: 1;
    }
    #shop_map .shop_list_box .shop_name {
        padding-bottom: 2vw;
        margin-bottom: 2vw;
        font-size: var(--font-M);
        gap: 1vw;
        flex-grow: 1;
        line-height: 1.4;
    }
    #shop_map .shop_list_box .shop_type {
        line-height: 1.5;
    }
    #shop_map .shop_list_box .shop_time {
        display: flex;
        align-items: center;
        gap: 5px;
    }
    #shop_map .shop_list_box .shop_time::before {
        width: 3vw;
        height: 3vw;
    }
    #shop_map .icon_info {
        gap: 1vw 3vw;
    }
    #shop_map.kitahama_bg .icon_info {
        width: 100%;
        margin-top: 3vw;
        gap: 1vw 3vw;
    }
    #shop_map .icon_info p {
        padding-left: 3.5vw;
    }
    #shop_map .icon_info p::before{
        width: 3vw;
        height: 3vw;
        top: 0.5vw;
    }
    
}

/* BUS TOUR DATA */
#data_head {
    padding: 40px 80px;
    margin-bottom: var(--section-bottom);
    border-radius: 8px;
    background: #f3dac8;
}
#data_head .top_copy {
    font-size: min(1.43vw,20px);
    font-family: var(--font-en-roboto);
    line-height: 1.6;
    margin-top: 30px;
}
.tour_btn-comingsoon {
    padding-top: 40px;
    text-align: center;
    font-size: min(1.43vw,20px);
}
.tour_btn-comingsoon br {
    display: none;
}
.tour_btn {
    width: 45%;
    margin: auto;
}
.tour_btn > a {
    position: relative;
    display: block;
    background-color: #df5435;
    padding: min(2.5vw,35px) 0;
    color: #fff;
    font-size: min(1.71vw,24px);
    font-weight: var(--fw-600);
    border-radius: 12px;
    text-align: center;
}
.tour_btn > a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: min(2.86vw,40px);
    transform: translateY(-50%);
    width: 2.86vw;
    max-width: 40px;
    height: 2.86vw;
    max-height: 40px;
    background: url(../img/data/ico_btn-arrow.png) no-repeat center center / 100% auto;
}
.data_info_wrap {
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin-top: 40px;
}
.data_info_item {
    position: relative;
    display: flex;
    background-color: #f1ede4;
}
.data_info_wrap .info_no {
    width: 15%;
    padding: 20px 25px;
    box-sizing: border-box;
    background-color: #f9f8f5;
}
.data_info_wrap .info_no img {
    width: auto;
    height: 50px;
}
.data_info_wrap .info_detail {
    width: 85%;
    padding: 20px 30px;
    box-sizing: border-box;
}
.data_info_wrap .column_wrap {
    display: flex;
    gap: 20px;
    justify-content: space-between;
}
.data_info_wrap .column_inner > p {
    font-size: calc(var(--font-M) * 1.3);
    line-height: 1.4;
}
.data_info_wrap .info_detail.column .info_map_img  {
    width: 30%;
}
.data_info_wrap .info_ttl {
    margin-bottom: 20px;
    padding-bottom: 8px;
    border-bottom: #666 dotted 1px;
    font-size: var(--font-M);
    font-family: var(--font-en-roboto);
    font-weight: normal;
}
.data_info_wrap .info_detail > p {
    font-size: calc(var(--font-M) * 1.3);
    line-height: 1.4;
}
.data_info_wrap .info_detail > p > small {
    font-size: var(--font-S);
    line-height: 1!important;
}
.data_info_wrap .info_detail a {
    display: inline-block;
    border-bottom: 0.25px solid var(--c-black);
    margin-bottom: 5px;
}
.data_info_wrap .info_notes {
    font-size: var(--font-SS);
    margin-top: 10px;
}
.data_info_wrap .info_discount {
    border: 1px solid #df5435;
    border-radius: 8px;
    margin-top: 8px;
    overflow: hidden;
    text-align: center;
    width: 54%;
}
.data_info_wrap .info_discount_ttl {
    background-color: #df5435;
    color: #fff;
    font-size: calc(var(--font-M) * 0.9);
    font-weight: normal;
    padding: 7px 0;
}
.data_info_wrap .info_discount p {
    color: #df5435;
    font-size: calc(var(--font-M) * 1.3);
    line-height: 1;
    padding: 12px 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    text-align: left;
    gap: 10px;
}
.data_info_wrap .info_discount p > span {
    display: flex;
    gap: 8px;
    align-items: center;
}
.data_info_wrap .info_discount p > small {
    color: var(--c-black);
    font-size: var(--font-S);
}
.data_info_wrap .info_discount p > span > small {
    color: var(--c-black);
    font-size: var(--font-S);
}
.data_attention {
    margin-top: 60px;
    font-size: var(--font-SS);
    line-height: 1.8;
}
.data_attention > ul > li {
    position: relative;
    padding-left: 15px;
}
.data_attention > ul > li::before {
    content: "●";
    position: absolute;
    left: 0;
}
.data_attention > ul + .attention_title {
    margin-top: 20px;
}
.data_attention .operation {
    margin-bottom: 30px;
    font-size: var(--font-M);
    text-align: center;
}
.data_attention .operation > strong {
    font-size: calc(var(--font-M) * 1.5);
    font-weight: normal;
}
.data_attention .operation > a {
    display: initial;
}
.data_attention + .tour_btn {
    margin-top: 60px;
}
.expo_url {
    font-size: var(--font-M);
    text-align: center;
    margin: 60px 0 0;
}
.expo_url > a {
    border-bottom: 0.5px solid var(--c-black);
    display: inline-block;
}


@media screen and (max-width: 766px) {
    #data_head {
        padding: 4vw;
        margin-top: 15vw;
    }
    #data_head .top_copy {
        font-size: 3.2vw;
        margin-top: 10px;
    }
    .tour_btn-comingsoon {
        font-size: 3.6vw;
        padding-top: 6vw;
    }
    .tour_btn-comingsoon br {
        display: inherit;
    }
    .tour_btn {
        width: 100%;
        padding-top: 3vw;
    }
    .tour_btn > a {
        padding: 20px 0;
        font-size: 4vw;
        border-radius: 8px;
    }
    .tour_btn > a::after {
        right: 5vw;
        width: 5vw;
        height: 5vw;
    }
    .data_info_wrap {
        display: flex;
        flex-direction: column;
        row-gap: 4vw;
        margin-top: 8vw;
    }
    .data_info_wrap .info_no {
        width: 18%;
        padding: 5vw;
    }
    .data_info_wrap .info_no img {
        height: 8vw;
    }
    .data_info_wrap .info_detail {
        width: 82%;
        padding: 5vw;
    }
    .data_info_wrap .info_ttl {
        margin-bottom: 15px;
    }
    .data_info_wrap .info_discount {
        margin-top: 10px;
        width: 100%;
    }
    .data_info_wrap .info_detail > p {
        font-size: var(--font-M);
    }
    .data_info_wrap .info_discount_ttl {
        font-size: var(--font-M);
    }
    .data_info_wrap .info_discount p {
        font-size: var(--font-M);
        flex-direction: column;
        gap: 10px;
    }
    .data_info_wrap .column_wrap {
        flex-direction: column;
    }
    .data_info_wrap .info_detail.column .info_map_img {
        width: 100%;
    }
    .data_info_wrap .info_discount p > span {
        flex-direction: column;
        gap: 1vw;
    }
    .data_info_wrap .column_inner > p {
        font-size: var(--font-M);
    }
    .data_info_wrap .info_discount p > span > small {
        line-height: 1.4;
    }
    .data_attention {
        margin-top: 40px;
    }
    .data_attention .operation {
        margin-bottom: 5vw;
    }
    .data_attention .operation > strong {
        font-size: calc(var(--font-M) * 1.2);
    }
    .data_attention .operation > a {
        display: block;
    }
    .data_attention + .tour_btn {
        margin-top: 3vw;
    }
    .expo_url {
        margin: 8vw 0;
    }
    .expo_url > a {
        margin: 2.5vw 0;
    }
    .expo_url > a img {
        width: 100%;
    }
}
#footer{
    padding: 40px 0 20px;
}
#footer .footer_logo {
    width: min(400px,40vw);
    margin: 30px auto 20px;
}
#footer .copyright {
    text-align: center;
    font-size: 75%;
}
@media screen and (max-width: 766px) {
    #footer{
        padding: 5vw 0;
    }
    #footer .footer_logo {
        width: 65vw;
        margin: 2vw auto 4vw;
    }
    #footer .copyright {
        font-size: 60%;
    }
}