body {
    font-family: 'Noto Sans JP', sans-serif;
    margin: 0;
    padding: 0;
    background-color: #fff5e4;
    line-height: 1.6;
    color: #333;}
@media screen and (max-width:700px){.pc{display:none}}
@media screen and (min-width:701px){.smp{display:none}}

.marker {
    background: linear-gradient(transparent 60%, rgba(254, 246, 7,0.8) 60%);}

/*ヘッダー・メインビジュアル（トップページ）*/
header {
    position: relative;
    background-image: url('images/facebook/20240521.jpg'); /* 背景画像を指定 */
    background-size: cover;
    background-position: center;
    height: 50vw;
    display: flex;
    align-items: center;
    padding: 1vw 2vw;
    color: #fff;}
.header {
    position: relative;
    height: 15vw;}
header .nav, .header .nav {
    width: 75%;
    padding: 1vw 2vw;
    position: fixed;
    top: 2vw;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    background-color: #fff;
    box-shadow: 1px 1px 10px 0px rgba(0, 0, 0, 0.4);
    border-radius: 1vw;
    gap: 2vw;
    z-index:99;}
.nav a {
    text-decoration: none;
    color: #000;
    font-size: 1.3vw;
    text-align: center;
    padding: 1vw 1.5vw;}
.ham_btn, .ham.span{
    display: none;}
.hero {
    text-align: center;
    position: absolute;
    bottom: -25%;
    left:50%;
    width: 75%;
    transform: translateX(-50%);
    margin-top: -10vw; /* ヘッダーの下に浮くように調整 */
    z-index:50;}
.hero.top{
    width:20vw;
    padding: 7vw 2vw;
    background-color: #fff5e4;
    border-radius: 25vw;}
.hero img{
    width:70%;}
.headline {
    margin: 0 auto;
    font-size: 3.5vw;}
@media screen and (max-width: 700px) {
header {
    height: 80vw;}
header .nav,.header .nav {
    opacity: 0;
    top: 40%;
    transform: translate(-50%,-50%);
    flex-direction: column;
    transition: ease .4s;
    z-index: -1;}
.nav a {
    font-size: 4vw;
    padding: 5vw;}
.ham_btn {
    display: block;
    width: 3vw;
    position: fixed;
    box-shadow: 1px 1px 10px 0px rgba(0, 0, 0, 0.4);
    top: 5vw;
    right: 5vw;}
.ham{
    width: 9.5vw;
    height: 9.5vw;
    background-color: #fff;
    border-color: transparent;
    border-radius: 5vw;
    z-index: 9999;
    cursor: pointer;}
.ham span {
    display: block;
    width: 5vw;
    height: 1px;
    background-color: #000;
    position: relative;
    transition: ease .4s;
    display: block;}
.ham span:nth-child(1) {top: 0;}
.ham span:nth-child(2) {margin: 1.5vw 0;}
.ham span:nth-child(3) {top: 0;}
.hero{
    width: 90%;}
.hero.top {
    padding: 14vw 2vw;
    bottom: -30%;
    width: 50vw;
    border-radius: 50vw;}
header .nav.active, .header .nav.active {
    opacity: 1;
    z-index:99;}
.ham.active span:nth-child(1) {
  top: 1.5vw;
  transform: rotate(45deg);}
.ham.active span:nth-child(2) {
  opacity: 0;}
.ham.active span:nth-child(3) {
  top: -1.9vw;
  transform: rotate(-45deg);}
.headline {
    font-size: 7.5vw;}
}

/*各セクション設定・ページ内ナビゲーション*/
.section-title {
    text-align: center;
    font-size:3vw;
    margin: 4vw 0 2vw;}
.features, .schedule, .activities, .events, .facility {
    max-width: 90%;
    background-color:#fff;
    margin: 5vw auto;
    padding: 5vw;
    box-sizing: border-box;
    border-radius: 3vw;}
.features h2, .schedule h2, .activities h2, .events h2, .facility h2{
    margin: 0;}
.navigation{
    width: 85%;
    margin: 5vw auto 5vw;
    text-align: center;}
.navigation.top{
    margin: 15vw auto 5vw;}
.navigation a{
    text-decoration: none;
    color: #000;}
.navigation a:hover{
    text-decoration: underline;}
@media screen and (max-width: 700px) {
.navigation{
    margin: 10vw auto 5vw;
    font-size:3.5vw;}
.navigation.top{
    margin: 30vw auto 5vw;}
.features h2, .schedule h2, .activities h2, .events h2, .facility h2{
    font-size:6vw;}
}

/*TOPページ*/
/*特徴*/
.features .feature-items{
    width: 100%;
    display: flex;
    justify-content: center;
    gap: 3%;
    margin: 3vw auto;}
.features .feature-item {
    width: 45%;}
.features .feature-item .feature-item__title{
    display: block;
    font-size: 2vw;
    font-weight: bold;
    text-align: center;
    margin-bottom: 1vw;}
.features .feature-item img {
    width: 100%;
    height: 20vw;
    object-fit: cover;}
.features .feature-item p {
    padding: 1.5vw;
    font-size: 1.4vw;}
@media screen and (max-width: 700px) {
.features .feature-items{
    flex-direction: column;}
.features .feature-item {
    width: 100%;}
.features .feature-item p {
    font-size: 3vw;}
.features .feature-item .feature-item__title{
    font-size: 5vw;
    margin-bottom:5vw;
}
}

/*日々の活動*/
.activities .activity-items{
    width: 100%;
    display: flex;
    gap: 3%;
    margin: 0 auto;
    overflow-x: scroll;}
.activities .activity-item {
    width: 40%;
    margin: 5px;
    flex-shrink: 0;}
.activities .activity-item img {
    width: 100%;
    height: 20vw;
    object-fit: cover;}
.activities .activity-item p {
    padding: 1.5vw;
    font-size: 1.4vw;}
@media screen and (max-width: 700px) {
.activities .activity-item {
    width: 70%;}
.activities .activity-item p {
    font-size: 3vw;}  
.activities .activity-item img {
    height: 50vw;}  
}

/*1日の流れ*/
.schedule-wrap{
    display: flex;
    margin-top:5vw;}
.time-schedule {
  min-width: 30vw;
  max-width: 30vw;
  list-style: none;
  margin: 0 auto 0  6vw;
  padding-left: 1.8vw;
  border-left: 6px solid #ccc;
  box-sizing: border-box;}
.time-schedule li {
  width: 100%;
  margin: 1vw 0 5vw;
  padding: 5px 0;
  position: relative;}
.time-schedule span.time {
  width: 7.5vw;
  display: inline-block;
  margin-left: -12vw;
  padding: 0 0 5px;
  margin-top: 1vw;
  vertical-align: top;
  position: relative;
  text-align: right;
  box-sizing: border-box;}
.time-schedule span.time::after {
  content: "";
  position: absolute;
  right: -3.4vw;
  top: 0;
  background: #ccc;
  width: 2vw;
  height: 2vw;
  border-radius: 1vw;}
.time-schedule .schedule_box {
  display: inline-block;
  width: 100%;
  margin-left: 4vw;
  padding: 1.5vw;
  vertical-align: middle;
  background: #efefef;
  box-sizing: border-box;
  border-radius: 2vw;}
.time-schedule .schedule_title {
    margin: 0;
    margin-bottom: 1.5vw;
    font-size: 1.8vw;
    font-weight: 700;}
.time-schedule .schedule_tx {
    margin:0;
    font-size: 1.3vw;
    font-weight: normal;}
@media screen and (max-width: 700px) {
.schedule-wrap{
    flex-direction: column;
    margin-top:10vw;}
.time-schedule {
    min-width: 80%;
    max-width: 80%;
    margin: 0 auto 0 10vw;
    padding-left: 5vw;}
.time-schedule span.time{
    margin-left: -18vw;
    font-size:3.6vw}
.time-schedule span.time::after {
    right: -6.5vw;
    width: 4vw;
    height: 4vw;
    border-radius: 4vw;}
.time-schedule .schedule_box{
    margin-left:9vw;}
.time-schedule .schedule_title {
    font-size: 3.5vw;
    }
.time-schedule .schedule_tx {
    font-size: 2.5vw;}
}

/*年間行事*/
.new-event{
    font-size: 1.6vw;
    text-align: center;}
.new-event a,.new-event a:hover,.new-event a:visited{
    color: #000;}
.events-table {
    border-collapse: collapse;
    width: 100%;
    margin-top: 2vw;}
.events-table th, .events-table td {
    border-bottom: 1px solid #ddd;
    padding: 2vw 1vw;
    font-size: 1.5vw;
    text-align: center;}
.events-table thead th, .events-table thead td{
    border-top:1px solid #ddd;
    background-color: #ddd;
    font-size: 1.8vw;
    padding: 1vw;}
.events-table .sub-text{
    font-size:1.3vw;}
@media screen and (max-width: 700px) {
.new-event {
    font-size: 3vw;}
.events-table th, .events-table td {
    font-size: 2.5vw;}
.events-table thead th, .events-table thead td{
    font-size: 3vw;}
.events-table .sub-text{
    font-size:3vw;}
}

/*施設概要*/
.facility .facility-box{
    display: flex;
    justify-content: space-between;}
.facility .facility-text{
    width:35vw;}
.facility .map {
    text-align: center;
    margin-top: 2vw;}
.facility .map iframe {
    width: 40vw;
    height: 40vw;
    border: none;}
.facility-table {
    border-collapse: collapse;
    width: 100%;
    margin-top: 2vw;}
.facility-table tr{
    display: block;
    border-bottom: 1px solid #ddd;
    padding: 2vw 1vw;}
.facility-table tr:first-child{
    border-top: 1px solid #ddd;}
.facility-table td {
    display: inline-block;}
.facility-table td.label{
    width: 7vw;}
.facility-table td a{
    display: block;
    width: 20vw;
    margin: 0.5vw auto;
    padding: 0.5vw 2vw;
    border: 1px solid #ddd;
    border-radius: 1vw;
    text-decoration: none;
    color: #000;}
.facility-table i{
    color: #b50a00;}
.facility-table td a:hover{
    background-color:#ddd;}
@media screen and (max-width: 700px) {
.facility .facility-box{
    flex-direction: column;}
.facility .facility-text{
    width:100%;}
.facility .map {
    margin-top: 5vw;}
.facility .map iframe {
    width: 100%;
    height: 70vw;}
.facility-table td{
    display: block;}
.facility-table td.label{
    width: 100%;
    font-weight: bold;
    font-size: 5vw;}
.facility-table td a{
    width: 90%;
    margin: 1.5vw auto;
    padding: 1.5vw 2vw;}
}

/*フッター*/
.footer {
    border-top: 1px solid #000;
    padding: 2vw;
    text-align: center;
    margin-top: 4vw;}
.footer p {
    margin: 5px;
    color: #555;}
@media screen and (max-width: 700px) {
    
}

/*下層ページ*/
/*本文*/
.description{
    max-width: 90%;
    background-color:#fff;
    margin: 5vw auto;
    padding: 5vw;
    box-sizing: border-box;
    border-radius: 3vw;}
.description h2{
    margin: 0;}
.description .description-items{
    width: 85%;
    margin: 3vw auto;}
.price-table {
    border-collapse: collapse;
    width: 100%;
    margin-top: 2vw;}
.price-table th, .price-table td {
    border: 1px solid #ddd;
    padding: 2vw 1vw;
    font-size: 1.5vw;
    text-align: center;}
.price-table thead th, .price-table thead td{
    border-top:1px solid #ddd;
    background-color: #ddd;
    font-size: 1.8vw;
    padding: 1vw;}
.price-table .sub-text{
    font-size:1.3vw;}
.price-table.option th:nth-child(3), .price-table.option td:nth-child(3){
    width: 60%;}
.dinner-image{
    display: flex;
    justify-content: space-between;}
.dinner-image img{
    width: calc(100% / 4.5);}
.description.facebook .description-items{
    display: flex;
    gap: 5vw;
    margin: 0;
    width: 100%;}
.description.facebook .description-items img{
    width: 15vw;
    height:15vw;
    object-fit: cover;}
.description.facebook .description-items p{
    width: calc(100% - 20vw);
    margin:0;
    font-size: 1.6vw;}
.description.facebook .description-items span{
    display: block;
    font-size: 2vw;
    font-weight: bold;}
.facebook_btn{
    display: block;
    width: 50%;
    color: #fff;
    background-color: #3B5998;
    border-bottom: 5px solid #133784;
    border-radius: 5vw;
    text-align: center;
    text-decoration: none;
    margin: auto;
    margin-top: 10vw;
    padding: 1vw 2vw;}
.facebook_btn:hover{
    margin-top: calc(10vw + 3px);
    background-color: #3B5998;
    border-bottom: 2px solid #133784;}
@media screen and (max-width: 700px) {
.description h2{
    font-size:6vw;}
.events-table th, .events-table td {
    font-size: 2.5vw;}
.events-table thead th, .events-table thead td{
    font-size: 3vw;}
.description .description-items{
    overflow-x: auto;}
.price-table{
    min-width: 600px;}
.price-table thead th, .price-table thead td{
    font-size:4vw;}
.price-table th, .price-table td{
    font-size: 3.5vw;}
.sub-description{
    font-size: 3.5vw;}
.dinner-image{
    flex-wrap: wrap;
    gap: 3vw;}
.dinner-image img{
    width: calc(100% / 2.1);}
.description.facebook .description-items{
    flex-direction: column-reverse;
    gap: 3vw;}
.description.facebook .description-items img{
    width: 100%;
    height:80vw;}
.description.facebook .description-items p{
    width: 100%;
    font-size: 3vw;}
.description.facebook .description-items span{
    font-size: 6vw;
    margin-bottom: 2vw;}
.facebook_btn{
    width: 65%;
    border-radius: 10vw;
    padding: 2vw 4vw;}
}


/*フェードインアニメーション*/
.fadeIn {
  transform: translate3d(0, 50px, 0);
  transition: 1s;
  opacity: 0;}
.fadeIn.show {
  transform: translate3d(0, 0, 0);
  opacity: 1;}


/* --- 追加CSS --- */
.feature-icon {
    text-align: center;
    font-size: 4vw;
    color: #ff6347; /* トマト色 */
    margin-bottom: 1vw;}
.schedule_title i {
    margin-right: 0.5rem;
    color: #ff6347;}
.slider-track {
    margin-top: 3vw;
    margin-bottom: 5vw;}
.slider-track img {
    height: 15vw;
    width: 100%;
    object-fit: cover;
    margin: 0 10px;
    border-radius: 1vw;}
.slide-description {
    display: flex;
    justify-content: end;
    align-items: center;
    gap: 1vw;
    font-size: 1.5vw;
    margin: 3vw auto 1vw;}
.slide-description .pc{
    font-size: 1.1vw;}
@media screen and (max-width: 700px) {
.feature-icon {
    font-size: 10vw;}
.slider-track img {
    height: 30vw;}
.slide-description {
    font-size: 1.5vw;
    margin: 3vw auto 0;}
}