
/* パララックスレイヤー */
.parallax-layer {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.parallax-layer.layer-1 {
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="80" r="3" fill="rgba(255,255,255,0.1)"/><circle cx="50" cy="50" r="1.5" fill="rgba(255,255,255,0.1)"/></svg>') repeat;
    background-size: 200px 200px;
}

/* セクション共通 */

.section-header {
    margin-bottom: 60px;
    opacity: 0;
    transform: translateY(30px);
}

.section-header.visible {
    animation: fadeInUp 1s ease forwards;
}

.section-header h2 {
    font-size: 2rem;
    font-weight: 400;
    margin-bottom: 10px;
}

.section-header .en {
    font-size: 1.2rem;
    color: #666;
    letter-spacing: 0.1em;
}
/* コンテンツセクション */
/* 閑静な立地セクション */
/* ロケーションセクション */
.content-section .content-wrapper {
    max-width: 100%;
    position: relative;
}
.content-section .content-wrapper,
.quiet-section .content-wrapper,
.location-section .content-wrapper,
.shopping-section .content-wrapper,
.education-section .content-wrapper,
.cycling-section .content-wrapper {
    text-align: center;
}
.content-section .content-wrapper h3 {
    font-weight: 400;
    font-size: 3.2rem;
    line-height: 170%;
    letter-spacing: 0.06em;
    text-align: center;
    white-space: nowrap;
}
.quiet-section .content-wrapper h3,
.location-section .content-wrapper h3,
.shopping-section .content-wrapper h3,
.education-section .content-wrapper h3,
.cycling-section .content-wrapper h3 {
    margin-top: 44px;
    font-weight: 400;
    font-size: 2.4rem;
    line-height: 170%;
    letter-spacing: 0.06em;
    text-align: center;
    white-space: nowrap;
}
.content-section .content-wrapper p {
    margin-top: 29px;
    font-weight: 400;
    font-size: 1.8rem;
    line-height: 200%;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
}
.quiet-section .content-wrapper p,
.location-section .content-wrapper p,
.shopping-section .content-wrapper p,
.education-section .content-wrapper p,
.cycling-section .content-wrapper p {
    margin-top: 29px;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 200%;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
}
.content-section .content-wrapper figure{
    margin: 73px auto 0;
    width: 100%;
    height: auto;
    max-width: 704px;
}
.content-section .content-wrapper img {
    width: 100%;
    object-fit: cover;
}
.content-section .content-wrapper span {
    position: absolute;
    bottom: 10px;
    right: 6%;
    color: #fff;
}
.quiet-section .map-wrapper {
    text-align: center;
    margin: 67px auto 0;
    width: 100%;
}
.quiet-section .map-flex {
    margin: 0 0;
    display: grid;
    grid-template-columns: 619px 224px;
    gap: 35px;
    justify-content: center;
}
.quiet-section .map-flex > .scroll{
    overflow: auto;
    width: 100%;
    aspect-ratio: 1.4844;
    position: relative;
}
.quiet-section .map-flex > .scroll img{
    max-width: unset;
    width: 1200px;
}
.quiet-section .map-flex > .scroll .swipe_icon{
    display: block;
    background: rgba(255, 255, 255, 0.6) url(../images/common/icon_cursor.svg) center / 80% auto no-repeat;
    right: unset;
    left: 360px;
    top: 160px;
}
.quiet-section .map img {
    width: 100%;
    height: auto;
    object-fit: cover;
    max-width: 704px;
}
.quiet-section .map-flex .around-image {
    position: relative;
}
.quiet-section .map-flex .around-images.flex {
    display: flex;
    gap: 33px;
    flex-direction: row;
}
.quiet-section .map-flex .around-images.flex .text {
    background-color: #d9d9d9;
    width: 224px;
    height: 189px;
    font-size: 1.6rem;
    line-height: 189px;
    letter-spacing: 0;
    vertical-align: middle;
}
.quiet-section .map-flex .around-images span{
    position: absolute;
    bottom: 6px;
    right: 7px;
}
/* 生活都市&文京都市 */
.location-section {
    margin-top: 135px;
}

/* ショッピング教育セクション */
.section-shopping-education {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 34px;
    margin-top: 135px;
    max-width: 510px;
    margin-left: auto;
    margin-right: auto;    
}

.section-shopping-education .shopping-education-contents {
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
    background-color: #f5f5f5;
}
.section-shopping-education .shopping-education-contents:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    background-color: #e1e1e1;
    cursor: pointer;
}

.section-shopping-education .shopping-education-contents .shopping-education-image {
    width: 100%;
    height: 92px;
    object-fit: cover;
}

.section-shopping-education .shopping-education-contents .contents-overlay {
    position: absolute;
    top: 8px;
    left: 8px;
    right: 8px;
    bottom: 8px;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.section-shopping-education .shopping-education-contents .contents-overlay .contents-title {
    font-family: 'Cinzel', serif;
    font-size: 2.4rem;
    color: white;
    line-height: 89%;
}

/* ショッピングセクション */
.shopping-section {
    background-color: white;
    position: relative;
}
.shopping-section .shopping-mv {
    margin-top: 64px;
    background-image: url('../images/location/shopping_main.png');
    background-size: cover;
    background-position: center;
    aspect-ratio: 2.829;
    position: relative;
}
.shopping-section .shopping-mv span{
    position: absolute;
    bottom: 8px;
    right: 10px;
}

.shopping-section .shopping-header {
    margin-top: 100px;
    text-align: center;
}

.shopping-section .shopping-title {
    font-family: 'Cinzel', serif;
    font-size: 5.6rem;
    color: #9E005D;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 89%;
}
.shopping-section .shopping-images {
    margin: 83px auto 0;
    max-width: 740px;
    width: 90%;
    text-align: center;
    position: relative;
}
.shopping-section .shopping-images img {
    max-width: 100%;
    vertical-align: bottom;
}
.shopping-section .shopping-images .shopping-image2 {
    position: relative;
    display: inline-block;
}
.shopping-section .shopping-images .shopping-image2 span {
    position: absolute;
    bottom: 6px;
    left: 10px;
    color: #fff;
    font-size: 1.2rem;
}
.shopping-section .shopping-images .shopping-image2 .shopping-image3-icon {
    position: absolute;
    top: 17px;
    right: 17px;
}
.shopping-section .shopping-images .shopping-image3-icon {
    margin-right: 20px;
}




.shopping-section .shop-info {
    display: flex;
    margin-top: 72px;
    justify-content: center;
}
.shopping-section .shop-info .shop-info-images {
    display: grid;
    grid-template-columns: 212px 212px 212px 212px;
    gap: 20px;
}
.shopping-section .shop-info .shop-info-images .shop-info-image {
    position: relative;
    width: 212px;
    height: 168px;
}
.shopping-section .shop-info .shop-info-images .shop-info-image span{
    position: absolute;
    bottom: 10px;
    left: 10px;
    color: #fff;
}
.shopping-section .shop-info .shop-info-text {
    margin-top: 61px;
}
.shopping-section .shop-info .shop-info-text h4 {
    text-align: center;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0.06em;
    font-family: "Shippori Mincho", serif;
}
.shopping-section .shop-info .shop-info-text .time{
    margin-top: 20px;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 180%;
    font-family: "Shippori Mincho", serif;
}
.shopping-section .shop-info .shop-info-text .info {
    margin-top: 8px;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 180%;
    font-family: "Shippori Mincho", serif;
}
.shopping-section .shop-info .shop-info-text .notice {
    margin-top: 24px;
    font-size: 1.0rem;
    font-weight: 400;
    line-height: 180%;
    font-family: "Shippori Mincho", serif;
}





/* 商店街セクション */
.shopping-street {
    margin-top: 135px;
    position: relative;
}
.shopping-street .shopping-street-header {
    text-align: center;
}
.shopping-street .shopping-street-header h2 {
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 89%;
    font-family: 'Cinzel', serif;
    color: #006d53;
}
.shopping-street .shopping-street-header h3 {
    margin-top: 9px;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 170%;
    font-family: "Shippori Mincho", serif;
    color: #231815;
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: center;
}
.shopping-street .shopping-street-header h3::before,
.shopping-street .shopping-street-header h3::after {
    content: "";
    display: inline-block;
    width: 123px;
    height: 1px;
    background-color: #484848;
}
.shopping-street .shopping-street-header p {
    padding: 0 5%;
    margin-top: 27px;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 170%;
    font-family: "Shippori Mincho", serif;
    color: #231815;
}
.shopping-street .shopping-street-image {
    margin: 77px auto 0;
    text-align: center;
}
.shopping-street .shopping-street-image img {
    width: 100%;
}

.shopping-street .shop-street-info {
    margin-top: 128px;
}

.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main {
    display: grid;
    grid-template-columns: 449px 594px;
    gap: 89px;
    justify-content: center;
}
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main .street-content {
    margin-top: 128px;
    font-size: 2.2rem;
    font-weight: 400;
    line-height: 200%;
    letter-spacing: 0.02em;
    font-family: "Shippori Mincho", serif;
    color: #231815;
    text-align: center;
}

.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main .street-name {
    position: relative;
}

.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main .street-name span {
    position: absolute;
    top: 0;
    left: 91px;
    background: linear-gradient(90deg, #C9AA6D 0%, #AE6C17 100%);
    color: white;
    padding: 8px 37px;
    font-size: 2.0rem;
    line-height: 200%;
    color: #fff;
}
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main .street-name img {
    margin-top: 30px;
}
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list {
    margin: 68px auto 0;
    width: 90%;
    max-width: 1200px;
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
}
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item {
    width: calc((100% - 80px) / 3);
}
.shopping-street .shop-street-info-shop .shop-street-info-shop-images img,
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item img{
    width: 100%;
    aspect-ratio: 1.4991;
    object-fit: cover;
}
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-category {
    margin-top: 23px;
    display: inline-block;
    background: linear-gradient(90deg, #C9AA6D 0%, #AE6C17 100%);
    color: white;
    padding: 3px 10px;
    font-size: 1.6rem;
    line-height: 200%;
}
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-name {
    margin-top: 14px;
    color: #231815;
    font-size: 1.2rem;
    line-height: 170%;
}
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-detail {
    color: #231815;
    font-size: 1.4rem;
    line-height: 160%;

}
.shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-detail::before {
    margin: 10px 0;
    content: "";
    width: 100%;
    height: 1px;
    display: block;
    background-color: #484848;
}
.shopping-street .shop-street-info .shop-street-info-contents.item2 {
    margin-top: 105px;
}
.shopping-street .shop-street-info .shop-street-info-contents.item2 .shop-street-info-contents-main .street-name span {
    position: absolute;
    top: 0;
    left: 165px;
    background: linear-gradient(90deg, #B26354 0%, #961609 100%);
    color: white;
    padding: 8px 37px;
    font-size: 2.0rem;
    line-height: 200%;
    color: #fff;
}
.shopping-street .shop-street-info .shop-street-info-contents.item2 .shop-street-info-contents-list .shop-item .shop-category {
    margin-top: 23px;
    display: inline-block;
    background: linear-gradient(90deg, #B26354 0%, #961609 100%);
    color: white;
    padding: 3px 10px;
    font-size: 1.6rem;
    line-height: 200%;
}

.shopping-street .shop-street-info-event {
    margin: 65px auto 0;
    padding: 60px 0 42px; 
    max-width: 965px;
    background-color: #FAF4F3;
}
.shopping-street .shop-street-info-event h3,
.shopping-street .shop-street-info-shop h3 {
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 89%;
    font-family: 'Cinzel', serif;
    color: #484848;
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: center;
}
.shopping-street .shop-street-info-event h3::before,
.shopping-street .shop-street-info-event h3::after,
.shopping-street .shop-street-info-shop h3::before,
.shopping-street .shop-street-info-shop h3::after {
    content: "";
    display: inline-block;
    width: 123px;
    height: 1px;
    background-color: #484848;
}
.shopping-street .shop-street-info-event .shop-street-info-title,
.shopping-street .shop-street-info-shop .shop-street-info-title {
    margin-top: 11px;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 170%;
    color: #cb2d6c;
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: center;
}
.shopping-street .shop-street-info-event .shop-street-info-event-images {
    margin-top: 35px;
    display: flex;
    justify-content: center;
    text-align: center;
}
.shopping-street .shop-street-info-event .shop-street-info-event-images .shop-street-info-event-image .shop-street-info-event-image-title {
    margin-top: 22px;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 170%;
    color: #231815;
}
.shopping-street .shop-street-info-event .shop-street-info-event-images .shop-street-info-event-image .shop-street-info-event-image-text {
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 160%;
    color: #231815;
}
.shopping-street .shop-street-info-event .shop-street-info-event-images .shop-street-info-event-image .shop-street-info-event-image-text::before {
    margin: 10px auto;
    content: "";
    width: 26px;
    height: 1px;
    display: block;
    background-color: #484848;
}
.shopping-street .shop-street-info-shop {
    margin-top: 135px;
}
.shopping-street .shop-street-info-shop .shop-street-info-title {
    color: #484848;
    padding: 0 5%;
}
.shopping-street .shop-street-info-shop .shop-street-info-shop-images {
    margin: 52px auto 0;
    max-width: 1200px;
    width: 90%;
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
}
.shopping-street .shop-street-info-shop .shop-street-info-shop-images > *{
    width: calc((100% - 120px) / 4);
}
.shopping-street .shop-street-info-shop .shop-street-info-shop-images .shop-item .shop-category {
    margin-top: 23px;
    display: inline-block;
    background: linear-gradient(90deg, #AE4C71 0%, #9A155A 100%);
    color: white;
    padding: 3px 10px;
    font-size: 1.6rem;
    line-height: 200%;
}
.shopping-street .shop-street-info-shop .shop-street-info-shop-images .shop-item .shop-name {
    margin-top: 14px;
    color: #231815;
    font-size: 1.2rem;
    line-height: 170%;
}
.shopping-street .shop-street-info-shop .shop-street-info-shop-images .shop-item .shop-detail {
    color: #231815;
    font-size: 1.4rem;
    line-height: 160%;

}
.shopping-street .shop-street-info-shop .shop-street-info-shop-images .shop-item .shop-detail::before {
    margin: 10px 0;
    content: "";
    width: 100%;
    height: 1px;
    display: block;
    background-color: #484848;
}





/* 教育セクション */
.education-section {
    background-color: white;
    position: relative;
}
.education-section .education-mv {
    margin-top: 64px;
    background-image: url('../images/location/education&nature.png');
    background-size: cover;
    background-position: center;
    height: 509px;
    position: relative;
}
.education-section .education-mv span{
    position: absolute;
    bottom: 8px;
    right: 10px;
}

.education-section .education-header {
    margin-top: 100px;
    text-align: center;
}

.education-section .education-title {
    font-family: 'Cinzel', serif;
    font-size: 5.6rem;
    color: #668675;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 89%;
}
.education-section .education-content .education-main-image {
    margin-top: 122px;
    text-align: right;
    position: relative;
}
.education-section .education-content .education-main-image h4{
    position: absolute;
    top: 108px;
    right: 774px;
    color: #fff;
    font-size: 4.8rem;
    font-weight: 400;
    line-height: 89%;
    font-family: 'Cinzel', serif;
}
.education-section .education-content .education-main-image span{
    position: absolute;
    bottom: 5px;
    right: 9px;
    color: #fff;
}

.education-section .education-content .education-school-area {
    background-color: #f0f3f2;
    margin-right: 10%;
    margin-top: -130px;
    padding-bottom: 94px;
}
.education-section .education-content .education-school-area .education-school{
    padding-top: 234px;
    display: grid;
    grid-template-columns: 304px 424px;
    gap: 94px;
    justify-content: center;
}
.education-section .education-content .education-school-area .education-school .education-school-text {
    margin-top: 70px;
    text-align: left;
}
.education-section .education-content .education-school-area .education-school .education-school-text h3 {
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0.05em;
}
.education-section .education-content .education-school-area .education-school .education-school-text p {
    margin-top: 29px;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 200%;
    letter-spacing: 0;
}
.education-section .education-content .education-school-area .education-school .schools-list {
    display: grid;
    grid-template-rows: 230px 230px;
    grid-template-columns: 212px 212px;
    gap: 0px;
}
.education-section .education-content .education-school-area .education-school .schools-list .school-item {
    position: relative;
}
.education-section .education-content .education-school-area .education-school .schools-list .school-name {
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 130%;
    letter-spacing: 0;
}
.education-section .education-content .education-school-area .education-school .schools-list .school-feature {
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 140%;
    letter-spacing: 0;
    color: #484848;
    margin-top: 10px;
}

.education-section .education-content .education-school-area .education-school-map{
    margin-top: 83px;
    display: grid;
    grid-template-columns: 681px 330px;
    gap: 59px;
    justify-content: center;
}

.education-section .education-map-image img {
    width: 681px;
}
.education-section .education-content .education-school-area .education-school-map .education-map-text {
    margin-top: 67px;
    text-align: left;
}
.education-section .education-content .education-school-area .education-school-map .education-map-text h3 {
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0.05em;
}
.education-section .education-content .education-school-area .education-school-map .education-map-text p {
    margin-top: 29px;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 200%;
    letter-spacing: 0;
}


/* 自然セクション */
.education-section .nature-content .nature-main-image {
    margin-top: 55px;
    position: relative;
    width: 100%;
    max-width: 1132px;
}
.education-section .nature-content .nature-main-image h4{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 13%;
    color: #fff;
    font-size: 4.8rem;
    font-weight: 400;
    line-height: 89%;
    font-family: 'Cinzel', serif;
}
.education-section .nature-content .nature-main-image span{
    position: absolute;
    bottom: 5px;
    left: 7px;
    color: #fff;
}
.education-section .nature-content .nature-content-area {
    background-color: #f0f3f2;
    margin-left: 10%;
    margin-top: -130px;
    padding-bottom: 110px;
}
.education-section .nature-content .nature-content-area .nature-intro {
    padding-top: 205px;
    text-align: center;
}
.education-section .nature-content .nature-content-area .nature-intro h3 {
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0.06em;
}
.education-section .nature-content .nature-content-area .nature-intro p {
    margin-top: 23px;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 180%;
    letter-spacing: 0;
}
.education-section .nature-content .nature-content-area .nature-park-image {
    display: grid;
    margin-top: 86px;
    grid-template-columns: 560px 205px;
    gap: 56px;
    justify-content: center;
}
.education-section .nature-content .nature-content-area .nature-park-image .nature-image {
    position:relative;
}
.education-section .nature-content .nature-content-area .nature-park-image .nature-image span{
    position: absolute;
    color: #fff;
    left: 11px;
    bottom: 9px;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 130%;
    letter-spacing: 0;
}
.education-section .nature-content .nature-content-area .nature-park-image .park-feature {
    margin-top: 71px;
}
.education-section .nature-content .nature-content-area .nature-park-image .park-feature h3 {
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0.06em;
}
.education-section .nature-content .nature-content-area .nature-park-image .park-feature p {
    margin-top: 29px;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 180%;
    letter-spacing: 0;
}

.education-section .nature-content .nature-content-area .nature-map-area{
    display: grid;
    margin-top: 102px;
    /* grid-template-columns: 539px 441px; */
    gap: 83px;
    justify-content: center;
}
.education-section .nature-content .nature-content-area .nature-map-area .nature-map-image {
    position: relative;
}
.education-section .nature-content .nature-content-area .nature-map-area .nature-map-image img.map-number{
    position: absolute;
    top: 3%;
    left: 2%;
    width: 64%;
}
.education-section .nature-content .nature-content-area .nature-map-area .nature-map-items{
    display: flex;
    flex-wrap: wrap;
    max-width: 1200px;
    width: 90%;
    margin: 0 auto;
    gap: 40px;
    justify-content: center;
}
.education-section .nature-content .nature-content-area .nature-map-area .nature-map-item{
    width: calc((100% - 120px) / 4);
}
.education-section .nature-content .nature-content-area .nature-map-area .nature-map-item h4{
    margin-top: 16px;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0;
}
.education-section .nature-content .nature-content-area .nature-map-area .nature-map-item h4 span{
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0;
    background-color: #668675;
    display: inline-block;
    width: 22px;
    height: 20px;
    color: #fff;
    text-align: center;
    margin-right: 10px;
}
.education-section .nature-content .nature-content-area .nature-map-area .nature-map-item p{
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 150%;
    letter-spacing: 0;
}

.education-section .nature-content .nature-content-area .nature-map-area .nature-map-item p::before{
    margin: 10px 0;
    content: "";
    width: 100%;
    height: 1px;
    display: block;
    background-color: #484848;
}
.education-section .nature-content .nature-park-image {
    margin-top: 87px;
    display: grid;
    grid-template-columns: 560px 205px;
    gap: 56px;
    justify-content: center;
}
.education-section .nature-content .nature-park-image .nature-image {
    position:relative;
}
.education-section .nature-content .nature-park-image .nature-image span{
    position: absolute;
    color: #fff;
    left: 11px;
    bottom: 9px;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 130%;
    letter-spacing: 0;
}
.education-section .nature-content .nature-park-image .park-feature {
    margin-top: 30px;
}
.education-section .nature-content .nature-park-image .park-feature h3 {
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0.06em;
}
.education-section .nature-content .nature-park-image .park-feature p {
    margin-top: 29px;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 180%;
    letter-spacing: 0.01em;
}

/* 広域ロケーション */
.cycling-section{
    margin-top: 117px;
}
.cycling-section .cycling-map{
    width: 100%;
    margin: 40px auto 0;
    position: relative;
    max-width: 900px;
    text-align: center;
}
.cycling-section .cycling-map img{
    width: 100%;
}
.cycling-section .cycling-map span{
    position: absolute;
    bottom: 2%;
    right: 5%;
}

.ection .clocation_map .section-divider {
    margin-top: 0;
    width: 100%;
}
.location_map .map-wrap {
    margin: 48px auto 0;
    max-width: 1220px;
}

.location_map .map-wrap .mapbox {
    width: 70%;
    height: 500px;
}

.location_map .map-wrap .map_tab {
    margin: 20px 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}
.location_map .map-wrap .map_tab .tab_label{
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 170%;
    letter-spacing: 0.05em;
    width: 16.5%;
    margin: 0 0 10px;
    height: 42px;
    color: #000;
    background: #C4C4C4;
    text-align: center;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    cursor: pointer;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 6px;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.location_map .map-wrap .map_tab .tab_label:hover{
    background-color: #f5f5f5;
}
.location_map .map-wrap .map_tab .tab_label.active{
    pointer-events: none;
    color: #fff;
    background: #666666;
}
.location_map .map-wrap .flex{
    display: flex;
    align-items: flex-end;
    gap: 20px;
}
.location_map .map-wrap .flex >  .mapbox {
    width: 880px;
}
.location_map .map-wrap .flex >  .panel_area {
    width: 310px;
    font-size: 1.2rem;
}

.tab_data {
    display: none;
}

.tab_data.active {
    display: flex;
    gap: 10px;
    width: 295px;
    flex-direction: column;
}

.panel_area {
    height: 500px;
    overflow-y: scroll;
}
.panel_area .databox {
    width: 295px;
    height: 39px;
    border-bottom: solid 1px #D2D2D2;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    background: #fff;
    text-align: left;
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 130%;
    letter-spacing: -0.06em;
}

.databox:hover {
    background-color: #f5f5f5;
}

.databox.active {
    background-color: #e8f0fe;
    border-left: 4px solid #4285f4;
}
.databox .data_number span{
    display: inline-block;
    width: 30px;
    height: 29px;
    background-color: #666666;
    color: #fff;
    text-align: center;
    padding-top: 4px;
}
.databox .data_name {
    padding: 0 5px;
}
.panel_area .databox .data_txt{
    width: 251px;
    padding-left: 11px;
}
.databox .data_line {
    flex: 1;
    position: relative;
}
.databox .data_line:before{
    content: "";
    display: block;
    height: 1px;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    border-top: 1px dotted #121212;
}
.databox .data_about {
    width: 20px;
    padding: 0 0 0 5px;
}
.databox .data_distance {
    width: 51px;
    text-align: right;
}
.databox .data_method{
    width: 30px;
}
.databox .data_time{
    width: 30px;
}

.contents-section {
    margin-top: 205px;
}

/* アニメーション定義 */
@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLeft {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInRight {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideDown {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes zoomIn {
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes popIn {
    to {
        transform: scale(1);
    }
}

@keyframes float {
    0%, 100% {
        transform: translate(0, 0) rotate(0deg);
    }
    33% {
        transform: translate(30px, -30px) rotate(120deg);
    }
    66% {
        transform: translate(-20px, 20px) rotate(240deg);
    }
}

@keyframes wave {
    to {
        background-position-x: 200px;
    }
}


@media (max-width: 1024px) {
    .shopping-street .shop-street-info-shop .shop-street-info-shop-images > *{
        width: calc((100% - 40px) / 2);
    }
    .education-section .nature-content .nature-content-area .nature-map-area .nature-map-items{
    }
    .education-section .nature-content .nature-content-area .nature-map-area .nature-map-item{
        width: calc((100% - 40px) / 2);
    }
}
/* レスポンシブ */
@media (max-width: 768px) {
    .hero-title {
        font-size: 3rem;
    }

    .section {
        padding: 60px 20px;
    }

    .street-cards {
        grid-template-columns: 1fr;
    }

    .schools-list {
        grid-template-columns: 1fr;
    }
}

/* ローディングアニメーション */
.loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.5s ease;
}

.loader.hidden {
    opacity: 0;
    pointer-events: none;
}

.loader-text {
    font-size: 2rem;
    font-weight: 300;
    letter-spacing: 0.2em;
    animation: pulse 1.5s ease infinite;
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.3;
    }
}




@media screen and (max-width: 768px){
    /* location */
    img{
    }
    .content-section .content-wrapper figure{
    }
    .content-section .content-wrapper figure img{
        width: 100%;
        aspect-ratio: 1.55;
    }
    .quiet-section .map-wrapper{
        width: 90%;
    }
    .quiet-section .map-flex{
        display: block;
    }
    .quiet-section .map-flex > .scroll{
        overflow: auto;
        width: 100%;
        aspect-ratio: 1.1978;
        position: relative;
    }
    .quiet-section .map-flex > .scroll img{
        max-width: unset;
        width: 1200px;
    }
    .quiet-section .map-flex > .scroll .swipe_icon{
        right: unset;
        background: rgba(255, 255, 255, 0.6) url(../images/common/icon_swipe.svg) center / 80% auto no-repeat;
        left: 440px;
        top: 160px;
    }
    .quiet-section .map-flex .around-images.flex{
        margin: 20px 0 0;
        grid-template-columns: 49% 49%;
        flex-direction: column;
        display: grid;
        gap: 8px;
    }
    .section-shopping-education{
        display: flex;
        gap: 20px;
        margin: 135px auto 0;
        width: 90%;
    }
    .quiet-section .map-flex .around-images.flex .around-image{
        width: 100%;
    }
    .shopping-section .shopping-images .shopping-image2{
        width: 100%;
    }
    .shopping-section .shopping-images img {
        width: 100%;
    }
    .shopping-section .shopping-images .shopping-image2 .shopping-image3-icon{
        width: 20vw;
    }
    .shopping-street .scroll-wrapper {
        overflow: hidden;
        width: 100%;

    }
    .shopping-street .scroll-wrapper .shopping-street-image {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch; /* iOS用のスムーズスクロール */
        white-space: nowrap;
        position: relative;
    }
    .shopping-street .scroll-wrapper .shopping-street-image img {
        display: block;
        width: auto;
        height: 374px;
        max-width: unset;
    }

    .education-section .education-content .education-school-area .education-school,
    .education-section .education-content .education-school-area .education-school-map,
    .education-section .nature-content .nature-park-image,
    .education-section .nature-content .nature-content-area .nature-park-image,
    .education-section .nature-content .nature-content-area .nature-map-area,
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list,
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main,
    .shopping-section .shop-info{
        display: flex;
        flex-wrap: wrap;
        width: 90%;
        margin-left: auto;
        margin-right: auto;
    }
    .shopping-street .shop-street-info-shop .shop-street-info-shop-images{
        gap: 30px 20px;
    }
    .education-section .nature-content .nature-content-area,
    .education-section .education-content .education-school-area{
    margin: 0;
    padding 0;
    }
    .shopping-section .shop-info > *{
        width: 100%;
    }
    .shopping-section .shopping-images img{
        margin: 0;
    }
    .education-section .education-title{
    font-size: 40px;
    word-break: break-word;
    }
    .education-section .nature-content .nature-content-area .nature-map-area .nature-map-items{
        display: flex;
        flex-wrap: wrap;
        gap: 20px 10px;
        justify-content: center;
    }
    .education-section .nature-content .nature-content-area .nature-map-area .nature-map-item{
        width: calc( (100% - 10px) / 2);
    }
    .shopping-street .shop-street-info-shop .shop-street-info-shop-images > *{
        width: calc( (100% - 20px) / 2);
    }
    .shopping-street .shop-street-info-shop .shop-street-info-shop-images .shop-item .shop-detail {
        letter-spacing: -0.16em;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item{
        margin: 0 auto 0 0;
        display: flex;
        flex-direction: row;
        gap: 10px;
        width: 100%;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item_image{
        /*min-width: 300px;*/
        width: calc(100% - 80px);
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-item_text {
        width: 60%;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-item_text.w100 {
        width: 100%;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item:nth-child(even){
        margin: 0 0 0 auto;
        flex-direction: row-reverse;
    }
    .shopping-street .shop-street-info .shop-street-info-contents.item2 .shop-street-info-contents-list .shop-item .shop-category,
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-category{
        margin: 0 0 10px;
    }
    .shopping-section .shop-info .shop-info-images{
        grid-template-rows: 50% 50%;
        grid-template-columns: 48% 48%;
        gap: 10px;
    }
    .shopping-section .shop-info .shop-info-images .shop-info-image{
        width: 100%;
        height: auto;
    }
    .education-section .education-content .education-school-area .education-school .schools-list img,
    .shopping-section .shop-info .shop-info-images .shop-info-image img{
        width: 100%;
        aspect-ratio: 1.2619;
        object-fit: cover;
        vertical-align: bottom;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main .street-content{
        margin: 0;
        font-size: 1.6rem;
        line-height: 1.6;
        letter-spacing: -0.05em;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main .street-name {
        text-align: center;

    }
    .shopping-street .shop-street-info .shop-street-info-contents.item2 .shop-street-info-contents-main .street-name span {
        display: inline-block;
        left: 0;
        margin: 0 15%;
        width: 70%;
        padding: 4px 10px;
        letter-spacing: -0.11em;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-name {
        margin-top: 0;
        line-height: 120%;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-list .shop-item .shop-detail {
        line-height: 120%;
    }
    .shopping-street .shop-street-info-event .shop-street-info-event-images{
        gap: 40px 20px;
        width: 90%;
        margin: 65px auto 0;
        flex-wrap: wrap;
    }
    .shopping-street .shop-street-info-event .shop-street-info-event-images > *{
        width: 100%;
    }
    .education-section .education-content .education-school-area .education-school .education-school-text{
        width: 100%;
    }
    .education-section .education-content .education-school-area .education-school{
        padding: 0;
    }
    .location_map .map-wrap .map_tab .tab_label{
        font-size: 12px;
    }
    .location_map .map-wrap .flex > .panel_area,
    .location_map .map-wrap .flex > .mapbox,
    .location_map .map-wrap > *{
        width: 100%;
    }
    .location_map .map-wrap{
        width: 90%;
        margin: 0 auto;
    }
    .education-section .nature-content .nature-content-area .nature-intro{
        padding: 100px 5% 0;
    }
    .education-section .education-content .education-school-area .education-school .schools-list{
        grid-template-rows: 50% 50%;
        grid-template-columns: 50% 50%;
        gap: 20px 0;
    }
    .quiet-section .content-wrapper h3,
    .location-section .content-wrapper h3,
    .shopping-section .content-wrapper h3,
    .education-section .content-wrapper h3,
    .cycling-section .content-wrapper h3{
        white-space: normal;
    }
    .shopping-street .shop-street-info-event .shop-street-info-title, .shopping-street .shop-street-info-shop .shop-street-info-title{
        padding: 5%;
        font-size: 2.4rem;
    }
    .shopping-street .shop-street-info .shop-street-info-contents .shop-street-info-contents-main .street-name span {
        left: 0;
        margin: 0 3%;
        width: 94%;
        padding: 8px 10px;
        letter-spacing: -0.11em;
    }
    .education-section .education-mv,
    .shopping-section .shopping-mv{
        height: unset;
        width: 100%;
        aspect-ratio: 2.829;
    }
    .education-section .nature-content .nature-main-image,
    .education-section .education-content .education-main-image{
        width: 90%;
        margin: 40px 0 -40px auto;
    }
    .education-section .education-content .education-main-image h4{
        font-size: 2.0rem;
        left: 10%;
        top: 41%;
    }
    .education-section .nature-content .nature-main-image h4{
        font-size: 2.0rem;
        right: 5%;
        top: 50%;
    }
    .education-section .nature-content .nature-content-area .nature-park-image .park-feature {
        margin-top: 0px;
    }
    .education-section .nature-content .nature-content-area .nature-map-area {
        margin-top: 30px;
    }
    .education-section .education-content .education-school-area .education-school-map .education-map-text{
        margin: 0;
    }
    .education-section .education-content .education-school-area .education-school-map{
        flex-direction: column-reverse;
    }
    .location_map .map-wrap .map_tab{
        gap: 10px;
        flex-wrap: wrap;
    }
    .location_map .map-wrap .map_tab .tab_label{
        width: calc( (100% - 20px) / 3 );
        margin: 0;
        height: 54px;
    }
    .cycling-section .cycling-map span {
        bottom: 1%;
        right: 8%;
    }
    /* Font size adjustment for mobile */
    .shopping-section .shop-info .shop-info-text .notice {
        font-size: 1.2rem;
    }
}
